run:R W Run
DIR
2026-03-11 16:18:51
R W Run
9.23 KB
2026-03-11 16:18:51
R W Run
4.03 KB
2026-03-11 16:18:51
R W Run
error_log
📄plugin.js
1/**
2 * plugin.js
3 *
4 * Released under LGPL License.
5 * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
6 *
7 * License: http://www.tinymce.com/license
8 * Contributing: http://www.tinymce.com/contributing
9 */
10
11/*global tinymce:true, console:true */
12/*eslint no-console:0, new-cap:0 */
13
14/**
15 * This plugin adds missing events form the 4.x API back. Not every event is
16 * properly supported but most things should work.
17 *
18 * Unsupported things:
19 * - No editor.onEvent
20 * - Can't cancel execCommands with beforeExecCommand
21 */
22(function (tinymce) {
23 var reported;
24
25 function noop() {
26 }
27
28 function log(apiCall) {
29 if (!reported && window && window.console) {
30 reported = true;
31 console.log("Deprecated TinyMCE API call: " + apiCall);
32 }
33 }
34
35 function Dispatcher(target, newEventName, argsMap, defaultScope) {
36 target = target || this;
37 var cbs = [];
38
39 if (!newEventName) {
40 this.add = this.addToTop = this.remove = this.dispatch = noop;
41 return;
42 }
43
44 this.add = function (callback, scope, prepend) {
45 log('<target>.on' + newEventName + ".add(..)");
46
47 // Convert callback({arg1:x, arg2:x}) -> callback(arg1, arg2)
48 function patchedEventCallback(e) {
49 var callbackArgs = [];
50
51 if (typeof argsMap == "string") {
52 argsMap = argsMap.split(" ");
53 }
54
55 if (argsMap && typeof argsMap !== "function") {
56 for (var i = 0; i < argsMap.length; i++) {
57 callbackArgs.push(e[argsMap[i]]);
58 }
59 }
60
61 if (typeof argsMap == "function") {
62 callbackArgs = argsMap(newEventName, e, target);
63 if (!callbackArgs) {
64 return;
65 }
66 }
67
68 if (!argsMap) {
69 callbackArgs = [e];
70 }
71
72 callbackArgs.unshift(defaultScope || target);
73
74 if (callback.apply(scope || defaultScope || target, callbackArgs) === false) {
75 e.stopImmediatePropagation();
76 }
77 }
78
79 target.on(newEventName, patchedEventCallback, prepend);
80
81 var handlers = {
82 original: callback,
83 patched: patchedEventCallback
84 };
85
86 cbs.push(handlers);
87 return patchedEventCallback;
88 };
89
90 this.addToTop = function (callback, scope) {
91 this.add(callback, scope, true);
92 };
93
94 this.remove = function (callback) {
95 cbs.forEach(function (item, i) {
96 if (item.original === callback) {
97 cbs.splice(i, 1);
98 return target.off(newEventName, item.patched);
99 }
100 });
101
102 return target.off(newEventName, callback);
103 };
104
105 this.dispatch = function () {
106 target.fire(newEventName);
107 return true;
108 };
109 }
110
111 tinymce.util.Dispatcher = Dispatcher;
112 tinymce.onBeforeUnload = new Dispatcher(tinymce, "BeforeUnload");
113 tinymce.onAddEditor = new Dispatcher(tinymce, "AddEditor", "editor");
114 tinymce.onRemoveEditor = new Dispatcher(tinymce, "RemoveEditor", "editor");
115
116 tinymce.util.Cookie = {
117 get: noop, getHash: noop, remove: noop, set: noop, setHash: noop
118 };
119
120 function patchEditor(editor) {
121
122 function translate(str) {
123 var prefix = editor.settings.language || "en";
124 var prefixedStr = [prefix, str].join('.');
125 var translatedStr = tinymce.i18n.translate(prefixedStr);
126
127 return prefixedStr !== translatedStr ? translatedStr : tinymce.i18n.translate(str);
128 }
129
130 function patchEditorEvents(oldEventNames, argsMap) {
131 tinymce.each(oldEventNames.split(" "), function (oldName) {
132 editor["on" + oldName] = new Dispatcher(editor, oldName, argsMap);
133 });
134 }
135
136 function convertUndoEventArgs(type, event, target) {
137 return [
138 event.level,
139 target
140 ];
141 }
142
143 function filterSelectionEvents(needsSelection) {
144 return function (type, e) {
145 if ((!e.selection && !needsSelection) || e.selection == needsSelection) {
146 return [e];
147 }
148 };
149 }
150
151 if (editor.controlManager) {
152 return;
153 }
154
155 function cmNoop() {
156 var obj = {}, methods = 'add addMenu addSeparator collapse createMenu destroy displayColor expand focus ' +
157 'getLength hasMenus hideMenu isActive isCollapsed isDisabled isRendered isSelected mark ' +
158 'postRender remove removeAll renderHTML renderMenu renderNode renderTo select selectByIndex ' +
159 'setActive setAriaProperty setColor setDisabled setSelected setState showMenu update';
160
161 log('editor.controlManager.*');
162
163 function _noop() {
164 return cmNoop();
165 }
166
167 tinymce.each(methods.split(' '), function (method) {
168 obj[method] = _noop;
169 });
170
171 return obj;
172 }
173
174 editor.controlManager = {
175 buttons: {},
176
177 setDisabled: function (name, state) {
178 log("controlManager.setDisabled(..)");
179
180 if (this.buttons[name]) {
181 this.buttons[name].disabled(state);
182 }
183 },
184
185 setActive: function (name, state) {
186 log("controlManager.setActive(..)");
187
188 if (this.buttons[name]) {
189 this.buttons[name].active(state);
190 }
191 },
192
193 onAdd: new Dispatcher(),
194 onPostRender: new Dispatcher(),
195
196 add: function (obj) {
197 return obj;
198 },
199 createButton: cmNoop,
200 createColorSplitButton: cmNoop,
201 createControl: cmNoop,
202 createDropMenu: cmNoop,
203 createListBox: cmNoop,
204 createMenuButton: cmNoop,
205 createSeparator: cmNoop,
206 createSplitButton: cmNoop,
207 createToolbar: cmNoop,
208 createToolbarGroup: cmNoop,
209 destroy: noop,
210 get: noop,
211 setControlType: cmNoop
212 };
213
214 patchEditorEvents("PreInit BeforeRenderUI PostRender Load Init Remove Activate Deactivate", "editor");
215 patchEditorEvents("Click MouseUp MouseDown DblClick KeyDown KeyUp KeyPress ContextMenu Paste Submit Reset");
216 patchEditorEvents("BeforeExecCommand ExecCommand", "command ui value args"); // args.terminate not supported
217 patchEditorEvents("PreProcess PostProcess LoadContent SaveContent Change");
218 patchEditorEvents("BeforeSetContent BeforeGetContent SetContent GetContent", filterSelectionEvents(false));
219 patchEditorEvents("SetProgressState", "state time");
220 patchEditorEvents("VisualAid", "element hasVisual");
221 patchEditorEvents("Undo Redo", convertUndoEventArgs);
222
223 patchEditorEvents("NodeChange", function (type, e) {
224 return [
225 editor.controlManager,
226 e.element,
227 editor.selection.isCollapsed(),
228 e
229 ];
230 });
231
232 var originalAddButton = editor.addButton;
233 editor.addButton = function (name, settings) {
234 var originalOnPostRender;
235
236 function patchedPostRender() {
237 editor.controlManager.buttons[name] = this;
238
239 if (originalOnPostRender) {
240 return originalOnPostRender.apply(this, arguments);
241 }
242 }
243
244 for (var key in settings) {
245 if (key.toLowerCase() === "onpostrender") {
246 originalOnPostRender = settings[key];
247 settings.onPostRender = patchedPostRender;
248 }
249 }
250
251 if (!originalOnPostRender) {
252 settings.onPostRender = patchedPostRender;
253 }
254
255 if (settings.title) {
256 settings.title = translate(settings.title);
257 }
258
259 return originalAddButton.call(this, name, settings);
260 };
261
262 editor.on('init', function () {
263 var undoManager = editor.undoManager, selection = editor.selection;
264
265 undoManager.onUndo = new Dispatcher(editor, "Undo", convertUndoEventArgs, null, undoManager);
266 undoManager.onRedo = new Dispatcher(editor, "Redo", convertUndoEventArgs, null, undoManager);
267 undoManager.onBeforeAdd = new Dispatcher(editor, "BeforeAddUndo", null, undoManager);
268 undoManager.onAdd = new Dispatcher(editor, "AddUndo", null, undoManager);
269
270 selection.onBeforeGetContent = new Dispatcher(editor, "BeforeGetContent", filterSelectionEvents(true), selection);
271 selection.onGetContent = new Dispatcher(editor, "GetContent", filterSelectionEvents(true), selection);
272 selection.onBeforeSetContent = new Dispatcher(editor, "BeforeSetContent", filterSelectionEvents(true), selection);
273 selection.onSetContent = new Dispatcher(editor, "SetContent", filterSelectionEvents(true), selection);
274 });
275
276 editor.on('BeforeRenderUI', function () {
277 var windowManager = editor.windowManager;
278
279 windowManager.onOpen = new Dispatcher();
280 windowManager.onClose = new Dispatcher();
281 windowManager.createInstance = function (className, a, b, c, d, e) {
282 log("windowManager.createInstance(..)");
283
284 var constr = tinymce.resolve(className);
285 return new constr(a, b, c, d, e);
286 };
287 });
288 }
289
290 tinymce.on('SetupEditor', function (e) {
291 patchEditor(e.editor);
292 });
293
294 tinymce.PluginManager.add("compat3x", patchEditor);
295
296 tinymce.addI18n = function (prefix, o) {
297 var I18n = tinymce.util.I18n, each = tinymce.each;
298
299 if (typeof prefix == "string" && prefix.indexOf('.') === -1) {
300 I18n.add(prefix, o);
301 return;
302 }
303
304 if (!tinymce.is(prefix, 'string')) {
305 each(prefix, function (o, lc) {
306 each(o, function (o, g) {
307 each(o, function (o, k) {
308 if (g === 'common') {
309 I18n.data[lc + '.' + k] = o;
310 } else {
311 I18n.data[lc + '.' + g + '.' + k] = o;
312 }
313 });
314 });
315 });
316 } else {
317 each(o, function (o, k) {
318 I18n.data[prefix + '.' + k] = o;
319 });
320 }
321 };
322})(tinymce);
323
Ui Ux Design – Teachers Night Out https://cardgames4educators.com Wed, 16 Oct 2024 22:24:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://cardgames4educators.com/wp-content/uploads/2024/06/cropped-Card-4-Educators-logo-32x32.png Ui Ux Design – Teachers Night Out https://cardgames4educators.com 32 32 Masters In English How English Speaker https://cardgames4educators.com/masters-in-english-how-english-speaker/ https://cardgames4educators.com/masters-in-english-how-english-speaker/#comments Mon, 27 May 2024 08:54:45 +0000 https://themexriver.com/wp/kadu/?p=1

Erat himenaeos neque id sagittis massa. Hac suscipit pulvinar dignissim platea magnis eu. Don tellus a pharetra inceptos efficitur dui pulvinar. Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent pulvinar odio volutpat parturient. Quisque risus finibus suspendisse mus purus magnis facilisi condimentum consectetur dui. Curae elit suspendisse cursus vehicula.

Turpis taciti class non vel pretium quis pulvinar tempor lobortis nunc. Libero phasellus parturient sapien volutpat malesuada ornare. Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae. Porta est tempor ex eget feugiat vulputate ipsum. Justo nec iaculis habitant diam arcu fermentum.

We offer comprehen sive emplo ment services such as assistance wit employer compliance.Our company is your strategic HR partner as instead of HR. john smithson

Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae.

Exploring Learning Landscapes in Academic

Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent.

]]>
https://cardgames4educators.com/masters-in-english-how-english-speaker/feed/ 1