TinyMCE Advanced - Version 4.6.7

Version Description

  • Fixed compatibility with Gutenberg freeform block.
  • Forced refresh of the TinyMCE plugins after activation.
  • Updated for WordPress 4.9 and TinyMCE 4.6.7.
Download this release

Release Info

Developer azaozz
Plugin Icon 128x128 TinyMCE Advanced
Version 4.6.7
Comparing to
See all releases

Code changes from version 4.6.3 to 4.6.7

mce/advlist/plugin.js CHANGED
@@ -186,35 +186,8 @@ define(
186
  ulMenuItems = buildMenuItems('UL', editor.getParam("advlist_bullet_styles", "default,circle,disc,square"));
187
 
188
  function applyListFormat(listName, styleValue) {
189
- editor.undoManager.transact(function () {
190
- var list, dom = editor.dom, sel = editor.selection;
191
-
192
- // Check for existing list element
193
- list = dom.getParent(sel.getNode(), 'ol,ul');
194
-
195
- // Switch/add list type if needed
196
- if (!list || list.nodeName != listName || styleValue === false) {
197
- var detail = {
198
- 'list-style-type': styleValue ? styleValue : ''
199
- };
200
-
201
- editor.execCommand(listName == 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList', false, detail);
202
- }
203
-
204
- list = dom.getParent(sel.getNode(), 'ol,ul');
205
- if (list) {
206
- Tools.each(dom.select('ol,ul', list).concat([list]), function (list) {
207
- if (list.nodeName !== listName && styleValue !== false) {
208
- list = dom.rename(list, listName);
209
- }
210
-
211
- dom.setStyle(list, 'listStyleType', styleValue ? styleValue : null);
212
- list.removeAttribute('data-mce-style');
213
- });
214
- }
215
-
216
- editor.focus();
217
- });
218
  }
219
 
220
  function updateSelection(e) {
@@ -255,7 +228,7 @@ define(
255
  applyListFormat('OL', e.control.settings.data);
256
  },
257
  onclick: function () {
258
- applyListFormat('OL', false);
259
  }
260
  });
261
 
@@ -269,7 +242,7 @@ define(
269
  applyListFormat('UL', e.control.settings.data);
270
  },
271
  onclick: function () {
272
- applyListFormat('UL', false);
273
  }
274
  });
275
  }
186
  ulMenuItems = buildMenuItems('UL', editor.getParam("advlist_bullet_styles", "default,circle,disc,square"));
187
 
188
  function applyListFormat(listName, styleValue) {
189
+ var cmd = listName == 'UL' ? 'InsertUnorderedList' : 'InsertOrderedList';
190
+ editor.execCommand(cmd, false, styleValue === false ? null : { 'list-style-type': styleValue });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  }
192
 
193
  function updateSelection(e) {
228
  applyListFormat('OL', e.control.settings.data);
229
  },
230
  onclick: function () {
231
+ editor.execCommand('InsertOrderedList');
232
  }
233
  });
234
 
242
  applyListFormat('UL', e.control.settings.data);
243
  },
244
  onclick: function () {
245
+ editor.execCommand('InsertUnorderedList');
246
  }
247
  });
248
  }
mce/advlist/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("3",tinymce.util.Tools.resolve),g("1",["3"],function(a){return a("tinymce.PluginManager")}),g("2",["3"],function(a){return a("tinymce.util.Tools")}),g("0",["1","2"],function(a,b){return a.add("advlist",function(a){function c(b){return a.$.contains(a.getBody(),b)}function d(a){return a&&/^(OL|UL|DL)$/.test(a.nodeName)&&c(a)}function e(a,c){var d=[];return c&&b.each(c.split(/[ ,]/),function(a){d.push({text:a.replace(/\-/g," ").replace(/\b\w/g,function(a){return a.toUpperCase()}),data:"default"==a?"":a})}),d}function f(c,d){a.undoManager.transact(function(){var e,f=a.dom,g=a.selection;if(e=f.getParent(g.getNode(),"ol,ul"),!e||e.nodeName!=c||d===!1){var h={"list-style-type":d?d:""};a.execCommand("UL"==c?"InsertUnorderedList":"InsertOrderedList",!1,h)}e=f.getParent(g.getNode(),"ol,ul"),e&&b.each(f.select("ol,ul",e).concat([e]),function(a){a.nodeName!==c&&d!==!1&&(a=f.rename(a,c)),f.setStyle(a,"listStyleType",d?d:null),a.removeAttribute("data-mce-style")}),a.focus()})}function g(b){var c=a.dom.getStyle(a.dom.getParent(a.selection.getNode(),"ol,ul"),"listStyleType")||"";b.control.items().each(function(a){a.active(a.settings.data===c)})}var h,i,j=function(a,c){var d=a.settings.plugins?a.settings.plugins:"";return b.inArray(d.split(/[ ,]/),c)!==-1};h=e("OL",a.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),i=e("UL",a.getParam("advlist_bullet_styles","default,circle,disc,square"));var k=function(c){return function(){var e=this;a.on("NodeChange",function(a){var f=b.grep(a.parents,d);e.active(f.length>0&&f[0].nodeName===c)})}};j(a,"lists")&&(a.addCommand("ApplyUnorderedListStyle",function(a,b){f("UL",b["list-style-type"])}),a.addCommand("ApplyOrderedListStyle",function(a,b){f("OL",b["list-style-type"])}),a.addButton("numlist",{type:h.length>0?"splitbutton":"button",tooltip:"Numbered list",menu:h,onPostRender:k("OL"),onshow:g,onselect:function(a){f("OL",a.control.settings.data)},onclick:function(){f("OL",!1)}}),a.addButton("bullist",{type:i.length>0?"splitbutton":"button",tooltip:"Bullet list",onPostRender:k("UL"),menu:i,onshow:g,onselect:function(a){f("UL",a.control.settings.data)},onclick:function(){f("UL",!1)}}))}),function(){}}),d("0")()}();
1
+ !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("3",tinymce.util.Tools.resolve),g("1",["3"],function(a){return a("tinymce.PluginManager")}),g("2",["3"],function(a){return a("tinymce.util.Tools")}),g("0",["1","2"],function(a,b){return a.add("advlist",function(a){function c(b){return a.$.contains(a.getBody(),b)}function d(a){return a&&/^(OL|UL|DL)$/.test(a.nodeName)&&c(a)}function e(a,c){var d=[];return c&&b.each(c.split(/[ ,]/),function(a){d.push({text:a.replace(/\-/g," ").replace(/\b\w/g,function(a){return a.toUpperCase()}),data:"default"==a?"":a})}),d}function f(b,c){var d="UL"==b?"InsertUnorderedList":"InsertOrderedList";a.execCommand(d,!1,c===!1?null:{"list-style-type":c})}function g(b){var c=a.dom.getStyle(a.dom.getParent(a.selection.getNode(),"ol,ul"),"listStyleType")||"";b.control.items().each(function(a){a.active(a.settings.data===c)})}var h,i,j=function(a,c){var d=a.settings.plugins?a.settings.plugins:"";return b.inArray(d.split(/[ ,]/),c)!==-1};h=e("OL",a.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),i=e("UL",a.getParam("advlist_bullet_styles","default,circle,disc,square"));var k=function(c){return function(){var e=this;a.on("NodeChange",function(a){var f=b.grep(a.parents,d);e.active(f.length>0&&f[0].nodeName===c)})}};j(a,"lists")&&(a.addCommand("ApplyUnorderedListStyle",function(a,b){f("UL",b["list-style-type"])}),a.addCommand("ApplyOrderedListStyle",function(a,b){f("OL",b["list-style-type"])}),a.addButton("numlist",{type:h.length>0?"splitbutton":"button",tooltip:"Numbered list",menu:h,onPostRender:k("OL"),onshow:g,onselect:function(a){f("OL",a.control.settings.data)},onclick:function(){a.execCommand("InsertOrderedList")}}),a.addButton("bullist",{type:i.length>0?"splitbutton":"button",tooltip:"Bullet list",onPostRender:k("UL"),menu:i,onshow:g,onselect:function(a){f("UL",a.control.settings.data)},onclick:function(){a.execCommand("InsertUnorderedList")}}))}),function(){}}),d("0")()}();
mce/contextmenu/plugin.js CHANGED
@@ -81,7 +81,7 @@ var defineGlobal = function (id, ref) {
81
  define(id, [], function () { return ref; });
82
  };
83
  /*jsc
84
- ["tinymce.plugins.contextmenu.Plugin","tinymce.core.dom.DOMUtils","tinymce.core.Env","tinymce.core.PluginManager","tinymce.core.ui.Menu","tinymce.core.util.Tools","global!tinymce.util.Tools.resolve"]
85
  jsc*/
86
  defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve);
87
  /**
@@ -155,12 +155,12 @@ define(
155
  */
156
 
157
  define(
158
- 'tinymce.core.ui.Menu',
159
  [
160
  'global!tinymce.util.Tools.resolve'
161
  ],
162
  function (resolve) {
163
- return resolve('tinymce.ui.Menu');
164
  }
165
  );
166
 
@@ -184,6 +184,619 @@ define(
184
  }
185
  );
186
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
187
  /**
188
  * Plugin.js
189
  *
@@ -206,10 +819,11 @@ define(
206
  'tinymce.core.dom.DOMUtils',
207
  'tinymce.core.Env',
208
  'tinymce.core.PluginManager',
209
- 'tinymce.core.ui.Menu',
210
- 'tinymce.core.util.Tools'
 
211
  ],
212
- function (DOMUtils, Env, PluginManager, Menu, Tools) {
213
  var DOM = DOMUtils.DOM;
214
 
215
  PluginManager.add('contextmenu', function (editor) {
@@ -227,6 +841,14 @@ define(
227
  return visibleState === true;
228
  };
229
 
 
 
 
 
 
 
 
 
230
  /**
231
  * This takes care of a os x native issue where it expands the selection
232
  * to the word at the caret position to do "lookups". Since we are overriding
@@ -234,12 +856,12 @@ define(
234
  * normalized. Firefox on os x doesn't expand to the word when using the context menu.
235
  */
236
  editor.on('mousedown', function (e) {
237
- if (isMacWebKit() && e.button === 2 && !isNativeOverrideKeyEvent(e)) {
238
- if (editor.selection.isCollapsed()) {
239
- editor.once('contextmenu', function (e) {
240
- editor.selection.placeCaretAt(e.clientX, e.clientY);
241
- });
242
- }
243
  }
244
  });
245
 
@@ -250,6 +872,10 @@ define(
250
  return;
251
  }
252
 
 
 
 
 
253
  e.preventDefault();
254
  contextmenu = editor.settings.contextmenu || 'link openlink image inserttable | cell row column deletetable';
255
 
@@ -278,7 +904,7 @@ define(
278
  }
279
  }
280
 
281
- menu = new Menu({
282
  items: items,
283
  context: 'contextmenu',
284
  classes: 'contextmenu'
81
  define(id, [], function () { return ref; });
82
  };
83
  /*jsc
84
+ ["tinymce.plugins.contextmenu.Plugin","tinymce.core.dom.DOMUtils","tinymce.core.Env","tinymce.core.PluginManager","tinymce.core.ui.Factory","tinymce.core.util.Tools","tinymce.plugins.contextmenu.RangePoint","global!tinymce.util.Tools.resolve","ephox.katamari.api.Arr","ephox.katamari.api.Option","global!Array","global!Error","global!String","ephox.katamari.api.Fun","global!Object"]
85
  jsc*/
86
  defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve);
87
  /**
155
  */
156
 
157
  define(
158
+ 'tinymce.core.ui.Factory',
159
  [
160
  'global!tinymce.util.Tools.resolve'
161
  ],
162
  function (resolve) {
163
+ return resolve('tinymce.ui.Factory');
164
  }
165
  );
166
 
184
  }
185
  );
186
 
187
+ defineGlobal("global!Array", Array);
188
+ defineGlobal("global!Error", Error);
189
+ define(
190
+ 'ephox.katamari.api.Fun',
191
+
192
+ [
193
+ 'global!Array',
194
+ 'global!Error'
195
+ ],
196
+
197
+ function (Array, Error) {
198
+
199
+ var noop = function () { };
200
+
201
+ var compose = function (fa, fb) {
202
+ return function () {
203
+ return fa(fb.apply(null, arguments));
204
+ };
205
+ };
206
+
207
+ var constant = function (value) {
208
+ return function () {
209
+ return value;
210
+ };
211
+ };
212
+
213
+ var identity = function (x) {
214
+ return x;
215
+ };
216
+
217
+ var tripleEquals = function(a, b) {
218
+ return a === b;
219
+ };
220
+
221
+ // Don't use array slice(arguments), makes the whole function unoptimisable on Chrome
222
+ var curry = function (f) {
223
+ // equivalent to arguments.slice(1)
224
+ // starting at 1 because 0 is the f, makes things tricky.
225
+ // Pay attention to what variable is where, and the -1 magic.
226
+ // thankfully, we have tests for this.
227
+ var args = new Array(arguments.length - 1);
228
+ for (var i = 1; i < arguments.length; i++) args[i-1] = arguments[i];
229
+
230
+ return function () {
231
+ var newArgs = new Array(arguments.length);
232
+ for (var j = 0; j < newArgs.length; j++) newArgs[j] = arguments[j];
233
+
234
+ var all = args.concat(newArgs);
235
+ return f.apply(null, all);
236
+ };
237
+ };
238
+
239
+ var not = function (f) {
240
+ return function () {
241
+ return !f.apply(null, arguments);
242
+ };
243
+ };
244
+
245
+ var die = function (msg) {
246
+ return function () {
247
+ throw new Error(msg);
248
+ };
249
+ };
250
+
251
+ var apply = function (f) {
252
+ return f();
253
+ };
254
+
255
+ var call = function(f) {
256
+ f();
257
+ };
258
+
259
+ var never = constant(false);
260
+ var always = constant(true);
261
+
262
+
263
+ return {
264
+ noop: noop,
265
+ compose: compose,
266
+ constant: constant,
267
+ identity: identity,
268
+ tripleEquals: tripleEquals,
269
+ curry: curry,
270
+ not: not,
271
+ die: die,
272
+ apply: apply,
273
+ call: call,
274
+ never: never,
275
+ always: always
276
+ };
277
+ }
278
+ );
279
+
280
+ defineGlobal("global!Object", Object);
281
+ define(
282
+ 'ephox.katamari.api.Option',
283
+
284
+ [
285
+ 'ephox.katamari.api.Fun',
286
+ 'global!Object'
287
+ ],
288
+
289
+ function (Fun, Object) {
290
+
291
+ var never = Fun.never;
292
+ var always = Fun.always;
293
+
294
+ /**
295
+ Option objects support the following methods:
296
+
297
+ fold :: this Option a -> ((() -> b, a -> b)) -> Option b
298
+
299
+ is :: this Option a -> a -> Boolean
300
+
301
+ isSome :: this Option a -> () -> Boolean
302
+
303
+ isNone :: this Option a -> () -> Boolean
304
+
305
+ getOr :: this Option a -> a -> a
306
+
307
+ getOrThunk :: this Option a -> (() -> a) -> a
308
+
309
+ getOrDie :: this Option a -> String -> a
310
+
311
+ or :: this Option a -> Option a -> Option a
312
+ - if some: return self
313
+ - if none: return opt
314
+
315
+ orThunk :: this Option a -> (() -> Option a) -> Option a
316
+ - Same as "or", but uses a thunk instead of a value
317
+
318
+ map :: this Option a -> (a -> b) -> Option b
319
+ - "fmap" operation on the Option Functor.
320
+ - same as 'each'
321
+
322
+ ap :: this Option a -> Option (a -> b) -> Option b
323
+ - "apply" operation on the Option Apply/Applicative.
324
+ - Equivalent to <*> in Haskell/PureScript.
325
+
326
+ each :: this Option a -> (a -> b) -> Option b
327
+ - same as 'map'
328
+
329
+ bind :: this Option a -> (a -> Option b) -> Option b
330
+ - "bind"/"flatMap" operation on the Option Bind/Monad.
331
+ - Equivalent to >>= in Haskell/PureScript; flatMap in Scala.
332
+
333
+ flatten :: {this Option (Option a))} -> () -> Option a
334
+ - "flatten"/"join" operation on the Option Monad.
335
+
336
+ exists :: this Option a -> (a -> Boolean) -> Boolean
337
+
338
+ forall :: this Option a -> (a -> Boolean) -> Boolean
339
+
340
+ filter :: this Option a -> (a -> Boolean) -> Option a
341
+
342
+ equals :: this Option a -> Option a -> Boolean
343
+
344
+ equals_ :: this Option a -> (Option a, a -> Boolean) -> Boolean
345
+
346
+ toArray :: this Option a -> () -> [a]
347
+
348
+ */
349
+
350
+ var none = function () { return NONE; };
351
+
352
+ var NONE = (function () {
353
+ var eq = function (o) {
354
+ return o.isNone();
355
+ };
356
+
357
+ // inlined from peanut, maybe a micro-optimisation?
358
+ var call = function (thunk) { return thunk(); };
359
+ var id = function (n) { return n; };
360
+ var noop = function () { };
361
+
362
+ var me = {
363
+ fold: function (n, s) { return n(); },
364
+ is: never,
365
+ isSome: never,
366
+ isNone: always,
367
+ getOr: id,
368
+ getOrThunk: call,
369
+ getOrDie: function (msg) {
370
+ throw new Error(msg || 'error: getOrDie called on none.');
371
+ },
372
+ or: id,
373
+ orThunk: call,
374
+ map: none,
375
+ ap: none,
376
+ each: noop,
377
+ bind: none,
378
+ flatten: none,
379
+ exists: never,
380
+ forall: always,
381
+ filter: none,
382
+ equals: eq,
383
+ equals_: eq,
384
+ toArray: function () { return []; },
385
+ toString: Fun.constant("none()")
386
+ };
387
+ if (Object.freeze) Object.freeze(me);
388
+ return me;
389
+ })();
390
+
391
+
392
+ /** some :: a -> Option a */
393
+ var some = function (a) {
394
+
395
+ // inlined from peanut, maybe a micro-optimisation?
396
+ var constant_a = function () { return a; };
397
+
398
+ var self = function () {
399
+ // can't Fun.constant this one
400
+ return me;
401
+ };
402
+
403
+ var map = function (f) {
404
+ return some(f(a));
405
+ };
406
+
407
+ var bind = function (f) {
408
+ return f(a);
409
+ };
410
+
411
+ var me = {
412
+ fold: function (n, s) { return s(a); },
413
+ is: function (v) { return a === v; },
414
+ isSome: always,
415
+ isNone: never,
416
+ getOr: constant_a,
417
+ getOrThunk: constant_a,
418
+ getOrDie: constant_a,
419
+ or: self,
420
+ orThunk: self,
421
+ map: map,
422
+ ap: function (optfab) {
423
+ return optfab.fold(none, function(fab) {
424
+ return some(fab(a));
425
+ });
426
+ },
427
+ each: function (f) {
428
+ f(a);
429
+ },
430
+ bind: bind,
431
+ flatten: constant_a,
432
+ exists: bind,
433
+ forall: bind,
434
+ filter: function (f) {
435
+ return f(a) ? me : NONE;
436
+ },
437
+ equals: function (o) {
438
+ return o.is(a);
439
+ },
440
+ equals_: function (o, elementEq) {
441
+ return o.fold(
442
+ never,
443
+ function (b) { return elementEq(a, b); }
444
+ );
445
+ },
446
+ toArray: function () {
447
+ return [a];
448
+ },
449
+ toString: function () {
450
+ return 'some(' + a + ')';
451
+ }
452
+ };
453
+ return me;
454
+ };
455
+
456
+ /** from :: undefined|null|a -> Option a */
457
+ var from = function (value) {
458
+ return value === null || value === undefined ? NONE : some(value);
459
+ };
460
+
461
+ return {
462
+ some: some,
463
+ none: none,
464
+ from: from
465
+ };
466
+ }
467
+ );
468
+
469
+ defineGlobal("global!String", String);
470
+ define(
471
+ 'ephox.katamari.api.Arr',
472
+
473
+ [
474
+ 'ephox.katamari.api.Option',
475
+ 'global!Array',
476
+ 'global!Error',
477
+ 'global!String'
478
+ ],
479
+
480
+ function (Option, Array, Error, String) {
481
+ // Use the native Array.indexOf if it is available (IE9+) otherwise fall back to manual iteration
482
+ // https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf
483
+ var rawIndexOf = (function () {
484
+ var pIndexOf = Array.prototype.indexOf;
485
+
486
+ var fastIndex = function (xs, x) { return pIndexOf.call(xs, x); };
487
+
488
+ var slowIndex = function(xs, x) { return slowIndexOf(xs, x); };
489
+
490
+ return pIndexOf === undefined ? slowIndex : fastIndex;
491
+ })();
492
+
493
+ var indexOf = function (xs, x) {
494
+ // The rawIndexOf method does not wrap up in an option. This is for performance reasons.
495
+ var r = rawIndexOf(xs, x);
496
+ return r === -1 ? Option.none() : Option.some(r);
497
+ };
498
+
499
+ var contains = function (xs, x) {
500
+ return rawIndexOf(xs, x) > -1;
501
+ };
502
+
503
+ // Using findIndex is likely less optimal in Chrome (dynamic return type instead of bool)
504
+ // but if we need that micro-optimisation we can inline it later.
505
+ var exists = function (xs, pred) {
506
+ return findIndex(xs, pred).isSome();
507
+ };
508
+
509
+ var range = function (num, f) {
510
+ var r = [];
511
+ for (var i = 0; i < num; i++) {
512
+ r.push(f(i));
513
+ }
514
+ return r;
515
+ };
516
+
517
+ // It's a total micro optimisation, but these do make some difference.
518
+ // Particularly for browsers other than Chrome.
519
+ // - length caching
520
+ // http://jsperf.com/browser-diet-jquery-each-vs-for-loop/69
521
+ // - not using push
522
+ // http://jsperf.com/array-direct-assignment-vs-push/2
523
+
524
+ var chunk = function (array, size) {
525
+ var r = [];
526
+ for (var i = 0; i < array.length; i += size) {
527
+ var s = array.slice(i, i + size);
528
+ r.push(s);
529
+ }
530
+ return r;
531
+ };
532
+
533
+ var map = function(xs, f) {
534
+ // pre-allocating array size when it's guaranteed to be known
535
+ // http://jsperf.com/push-allocated-vs-dynamic/22
536
+ var len = xs.length;
537
+ var r = new Array(len);
538
+ for (var i = 0; i < len; i++) {
539
+ var x = xs[i];
540
+ r[i] = f(x, i, xs);
541
+ }
542
+ return r;
543
+ };
544
+
545
+ // Unwound implementing other functions in terms of each.
546
+ // The code size is roughly the same, and it should allow for better optimisation.
547
+ var each = function(xs, f) {
548
+ for (var i = 0, len = xs.length; i < len; i++) {
549
+ var x = xs[i];
550
+ f(x, i, xs);
551
+ }
552
+ };
553
+
554
+ var eachr = function (xs, f) {
555
+ for (var i = xs.length - 1; i >= 0; i--) {
556
+ var x = xs[i];
557
+ f(x, i, xs);
558
+ }
559
+ };
560
+
561
+ var partition = function(xs, pred) {
562
+ var pass = [];
563
+ var fail = [];
564
+ for (var i = 0, len = xs.length; i < len; i++) {
565
+ var x = xs[i];
566
+ var arr = pred(x, i, xs) ? pass : fail;
567
+ arr.push(x);
568
+ }
569
+ return { pass: pass, fail: fail };
570
+ };
571
+
572
+ var filter = function(xs, pred) {
573
+ var r = [];
574
+ for (var i = 0, len = xs.length; i < len; i++) {
575
+ var x = xs[i];
576
+ if (pred(x, i, xs)) {
577
+ r.push(x);
578
+ }
579
+ }
580
+ return r;
581
+ };
582
+
583
+ /*
584
+ * Groups an array into contiguous arrays of like elements. Whether an element is like or not depends on f.
585
+ *
586
+ * f is a function that derives a value from an element - e.g. true or false, or a string.
587
+ * Elements are like if this function generates the same value for them (according to ===).
588
+ *
589
+ *
590
+ * Order of the elements is preserved. Arr.flatten() on the result will return the original list, as with Haskell groupBy function.
591
+ * For a good explanation, see the group function (which is a special case of groupBy)
592
+ * http://hackage.haskell.org/package/base-4.7.0.0/docs/Data-List.html#v:group
593
+ */
594
+ var groupBy = function (xs, f) {
595
+ if (xs.length === 0) {
596
+ return [];
597
+ } else {
598
+ var wasType = f(xs[0]); // initial case for matching
599
+ var r = [];
600
+ var group = [];
601
+
602
+ for (var i = 0, len = xs.length; i < len; i++) {
603
+ var x = xs[i];
604
+ var type = f(x);
605
+ if (type !== wasType) {
606
+ r.push(group);
607
+ group = [];
608
+ }
609
+ wasType = type;
610
+ group.push(x);
611
+ }
612
+ if (group.length !== 0) {
613
+ r.push(group);
614
+ }
615
+ return r;
616
+ }
617
+ };
618
+
619
+ var foldr = function (xs, f, acc) {
620
+ eachr(xs, function (x) {
621
+ acc = f(acc, x);
622
+ });
623
+ return acc;
624
+ };
625
+
626
+ var foldl = function (xs, f, acc) {
627
+ each(xs, function (x) {
628
+ acc = f(acc, x);
629
+ });
630
+ return acc;
631
+ };
632
+
633
+ var find = function (xs, pred) {
634
+ for (var i = 0, len = xs.length; i < len; i++) {
635
+ var x = xs[i];
636
+ if (pred(x, i, xs)) {
637
+ return Option.some(x);
638
+ }
639
+ }
640
+ return Option.none();
641
+ };
642
+
643
+ var findIndex = function (xs, pred) {
644
+ for (var i = 0, len = xs.length; i < len; i++) {
645
+ var x = xs[i];
646
+ if (pred(x, i, xs)) {
647
+ return Option.some(i);
648
+ }
649
+ }
650
+
651
+ return Option.none();
652
+ };
653
+
654
+ var slowIndexOf = function (xs, x) {
655
+ for (var i = 0, len = xs.length; i < len; ++i) {
656
+ if (xs[i] === x) {
657
+ return i;
658
+ }
659
+ }
660
+
661
+ return -1;
662
+ };
663
+
664
+ var push = Array.prototype.push;
665
+ var flatten = function (xs) {
666
+ // Note, this is possible because push supports multiple arguments:
667
+ // http://jsperf.com/concat-push/6
668
+ // Note that in the past, concat() would silently work (very slowly) for array-like objects.
669
+ // With this change it will throw an error.
670
+ var r = [];
671
+ for (var i = 0, len = xs.length; i < len; ++i) {
672
+ // Ensure that each value is an array itself
673
+ if (! Array.prototype.isPrototypeOf(xs[i])) throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs);
674
+ push.apply(r, xs[i]);
675
+ }
676
+ return r;
677
+ };
678
+
679
+ var bind = function (xs, f) {
680
+ var output = map(xs, f);
681
+ return flatten(output);
682
+ };
683
+
684
+ var forall = function (xs, pred) {
685
+ for (var i = 0, len = xs.length; i < len; ++i) {
686
+ var x = xs[i];
687
+ if (pred(x, i, xs) !== true) {
688
+ return false;
689
+ }
690
+ }
691
+ return true;
692
+ };
693
+
694
+ var equal = function (a1, a2) {
695
+ return a1.length === a2.length && forall(a1, function (x, i) {
696
+ return x === a2[i];
697
+ });
698
+ };
699
+
700
+ var slice = Array.prototype.slice;
701
+ var reverse = function (xs) {
702
+ var r = slice.call(xs, 0);
703
+ r.reverse();
704
+ return r;
705
+ };
706
+
707
+ var difference = function (a1, a2) {
708
+ return filter(a1, function (x) {
709
+ return !contains(a2, x);
710
+ });
711
+ };
712
+
713
+ var mapToObject = function(xs, f) {
714
+ var r = {};
715
+ for (var i = 0, len = xs.length; i < len; i++) {
716
+ var x = xs[i];
717
+ r[String(x)] = f(x, i);
718
+ }
719
+ return r;
720
+ };
721
+
722
+ var pure = function(x) {
723
+ return [x];
724
+ };
725
+
726
+ var sort = function (xs, comparator) {
727
+ var copy = slice.call(xs, 0);
728
+ copy.sort(comparator);
729
+ return copy;
730
+ };
731
+
732
+ return {
733
+ map: map,
734
+ each: each,
735
+ eachr: eachr,
736
+ partition: partition,
737
+ filter: filter,
738
+ groupBy: groupBy,
739
+ indexOf: indexOf,
740
+ foldr: foldr,
741
+ foldl: foldl,
742
+ find: find,
743
+ findIndex: findIndex,
744
+ flatten: flatten,
745
+ bind: bind,
746
+ forall: forall,
747
+ exists: exists,
748
+ contains: contains,
749
+ equal: equal,
750
+ reverse: reverse,
751
+ chunk: chunk,
752
+ difference: difference,
753
+ mapToObject: mapToObject,
754
+ pure: pure,
755
+ sort: sort,
756
+ range: range
757
+ };
758
+ }
759
+ );
760
+ /**
761
+ * RangePoint.js
762
+ *
763
+ * Released under LGPL License.
764
+ * Copyright (c) 1999-2017 Ephox Corp. All rights reserved
765
+ *
766
+ * License: http://www.tinymce.com/license
767
+ * Contributing: http://www.tinymce.com/contributing
768
+ */
769
+
770
+ define(
771
+ 'tinymce.plugins.contextmenu.RangePoint',
772
+ [
773
+ 'ephox.katamari.api.Arr'
774
+ ],
775
+ function (Arr) {
776
+ var containsXY = function (clientRect, clientX, clientY) {
777
+ return (
778
+ clientX >= clientRect.left &&
779
+ clientX <= clientRect.right &&
780
+ clientY >= clientRect.top &&
781
+ clientY <= clientRect.bottom
782
+ );
783
+ };
784
+
785
+ var isXYWithinRange = function (clientX, clientY, range) {
786
+ if (range.collapsed) {
787
+ return false;
788
+ }
789
+
790
+ return Arr.foldl(range.getClientRects(), function (state, rect) {
791
+ return state || containsXY(rect, clientX, clientY);
792
+ }, false);
793
+ };
794
+
795
+ return {
796
+ isXYWithinRange: isXYWithinRange
797
+ };
798
+ }
799
+ );
800
  /**
801
  * Plugin.js
802
  *
819
  'tinymce.core.dom.DOMUtils',
820
  'tinymce.core.Env',
821
  'tinymce.core.PluginManager',
822
+ 'tinymce.core.ui.Factory',
823
+ 'tinymce.core.util.Tools',
824
+ 'tinymce.plugins.contextmenu.RangePoint'
825
  ],
826
+ function (DOMUtils, Env, PluginManager, Factory, Tools, RangePoint) {
827
  var DOM = DOMUtils.DOM;
828
 
829
  PluginManager.add('contextmenu', function (editor) {
841
  return visibleState === true;
842
  };
843
 
844
+ var isImage = function (elm) {
845
+ return elm && elm.nodeName === 'IMG';
846
+ };
847
+
848
+ var isEventOnImageOutsideRange = function (evt, range) {
849
+ return isImage(evt.target) && RangePoint.isXYWithinRange(evt.clientX, evt.clientY, range) === false;
850
+ };
851
+
852
  /**
853
  * This takes care of a os x native issue where it expands the selection
854
  * to the word at the caret position to do "lookups". Since we are overriding
856
  * normalized. Firefox on os x doesn't expand to the word when using the context menu.
857
  */
858
  editor.on('mousedown', function (e) {
859
+ if (isMacWebKit() && e.button === 2 && !isNativeOverrideKeyEvent(e) && editor.selection.isCollapsed()) {
860
+ editor.once('contextmenu', function (e2) {
861
+ if (!isImage(e2.target)) {
862
+ editor.selection.placeCaretAt(e2.clientX, e2.clientY);
863
+ }
864
+ });
865
  }
866
  });
867
 
872
  return;
873
  }
874
 
875
+ if (isEventOnImageOutsideRange(e, editor.selection.getRng())) {
876
+ editor.selection.select(e.target);
877
+ }
878
+
879
  e.preventDefault();
880
  contextmenu = editor.settings.contextmenu || 'link openlink image inserttable | cell row column deletetable';
881
 
904
  }
905
  }
906
 
907
+ menu = Factory.create('menu', {
908
  items: items,
909
  context: 'contextmenu',
910
  classes: 'contextmenu'
mce/contextmenu/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("6",tinymce.util.Tools.resolve),g("1",["6"],function(a){return a("tinymce.dom.DOMUtils")}),g("2",["6"],function(a){return a("tinymce.Env")}),g("3",["6"],function(a){return a("tinymce.PluginManager")}),g("4",["6"],function(a){return a("tinymce.ui.Menu")}),g("5",["6"],function(a){return a("tinymce.util.Tools")}),g("0",["1","2","3","4","5"],function(a,b,c,d,e){var f=a.DOM;return c.add("contextmenu",function(a){var c,g,h=a.settings.contextmenu_never_use_native,i=function(a){return a.ctrlKey&&!h},j=function(){return b.mac&&b.webkit},k=function(){return g===!0};return a.on("mousedown",function(b){j()&&2===b.button&&!i(b)&&a.selection.isCollapsed()&&a.once("contextmenu",function(b){a.selection.placeCaretAt(b.clientX,b.clientY)})}),a.on("contextmenu",function(b){var h;if(!i(b)){if(b.preventDefault(),h=a.settings.contextmenu||"link openlink image inserttable | cell row column deletetable",c)c.show();else{var j=[];e.each(h.split(/[ ,]/),function(b){var c=a.menuItems[b];"|"==b&&(c={text:b}),c&&(c.shortcut="",j.push(c))});for(var k=0;k<j.length;k++)"|"==j[k].text&&(0!==k&&k!=j.length-1||j.splice(k,1));c=new d({items:j,context:"contextmenu",classes:"contextmenu"}).renderTo(),c.on("hide",function(a){a.control===this&&(g=!1)}),a.on("remove",function(){c.remove(),c=null})}var l={x:b.pageX,y:b.pageY};a.inline||(l=f.getPos(a.getContentAreaContainer()),l.x+=b.clientX,l.y+=b.clientY),c.moveTo(l.x,l.y),g=!0}}),{isContextMenuVisible:k}}),function(){}}),d("0")()}();
1
+ !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("7",tinymce.util.Tools.resolve),g("1",["7"],function(a){return a("tinymce.dom.DOMUtils")}),g("2",["7"],function(a){return a("tinymce.Env")}),g("3",["7"],function(a){return a("tinymce.PluginManager")}),g("4",["7"],function(a){return a("tinymce.ui.Factory")}),g("5",["7"],function(a){return a("tinymce.util.Tools")}),h("a",Array),h("b",Error),g("d",["a","b"],function(a,b){var c=function(){},d=function(a,b){return function(){return a(b.apply(null,arguments))}},e=function(a){return function(){return a}},f=function(a){return a},g=function(a,b){return a===b},h=function(b){for(var c=new a(arguments.length-1),d=1;d<arguments.length;d++)c[d-1]=arguments[d];return function(){for(var d=new a(arguments.length),e=0;e<d.length;e++)d[e]=arguments[e];var f=c.concat(d);return b.apply(null,f)}},i=function(a){return function(){return!a.apply(null,arguments)}},j=function(a){return function(){throw new b(a)}},k=function(a){return a()},l=function(a){a()},m=e(!1),n=e(!0);return{noop:c,compose:d,constant:e,identity:f,tripleEquals:g,curry:h,not:i,die:j,apply:k,call:l,never:m,always:n}}),h("e",Object),g("9",["d","e"],function(a,b){var c=a.never,d=a.always,e=function(){return f},f=function(){var f=function(a){return a.isNone()},g=function(a){return a()},h=function(a){return a},i=function(){},j={fold:function(a,b){return a()},is:c,isSome:c,isNone:d,getOr:h,getOrThunk:g,getOrDie:function(a){throw new Error(a||"error: getOrDie called on none.")},or:h,orThunk:g,map:e,ap:e,each:i,bind:e,flatten:e,exists:c,forall:d,filter:e,equals:f,equals_:f,toArray:function(){return[]},toString:a.constant("none()")};return b.freeze&&b.freeze(j),j}(),g=function(a){var b=function(){return a},h=function(){return k},i=function(b){return g(b(a))},j=function(b){return b(a)},k={fold:function(b,c){return c(a)},is:function(b){return a===b},isSome:d,isNone:c,getOr:b,getOrThunk:b,getOrDie:b,or:h,orThunk:h,map:i,ap:function(b){return b.fold(e,function(b){return g(b(a))})},each:function(b){b(a)},bind:j,flatten:b,exists:j,forall:j,filter:function(b){return b(a)?k:f},equals:function(b){return b.is(a)},equals_:function(b,d){return b.fold(c,function(b){return d(a,b)})},toArray:function(){return[a]},toString:function(){return"some("+a+")"}};return k},h=function(a){return null===a||void 0===a?f:g(a)};return{some:g,none:e,from:h}}),h("c",String),g("8",["9","a","b","c"],function(a,b,c,d){var e=function(){var a=b.prototype.indexOf,c=function(b,c){return a.call(b,c)},d=function(a,b){return u(a,b)};return void 0===a?d:c}(),f=function(b,c){var d=e(b,c);return d===-1?a.none():a.some(d)},g=function(a,b){return e(a,b)>-1},h=function(a,b){return t(a,b).isSome()},i=function(a,b){for(var c=[],d=0;d<a;d++)c.push(b(d));return c},j=function(a,b){for(var c=[],d=0;d<a.length;d+=b){var e=a.slice(d,d+b);c.push(e)}return c},k=function(a,c){for(var d=a.length,e=new b(d),f=0;f<d;f++){var g=a[f];e[f]=c(g,f,a)}return e},l=function(a,b){for(var c=0,d=a.length;c<d;c++){var e=a[c];b(e,c,a)}},m=function(a,b){for(var c=a.length-1;c>=0;c--){var d=a[c];b(d,c,a)}},n=function(a,b){for(var c=[],d=[],e=0,f=a.length;e<f;e++){var g=a[e],h=b(g,e,a)?c:d;h.push(g)}return{pass:c,fail:d}},o=function(a,b){for(var c=[],d=0,e=a.length;d<e;d++){var f=a[d];b(f,d,a)&&c.push(f)}return c},p=function(a,b){if(0===a.length)return[];for(var c=b(a[0]),d=[],e=[],f=0,g=a.length;f<g;f++){var h=a[f],i=b(h);i!==c&&(d.push(e),e=[]),c=i,e.push(h)}return 0!==e.length&&d.push(e),d},q=function(a,b,c){return m(a,function(a){c=b(c,a)}),c},r=function(a,b,c){return l(a,function(a){c=b(c,a)}),c},s=function(b,c){for(var d=0,e=b.length;d<e;d++){var f=b[d];if(c(f,d,b))return a.some(f)}return a.none()},t=function(b,c){for(var d=0,e=b.length;d<e;d++){var f=b[d];if(c(f,d,b))return a.some(d)}return a.none()},u=function(a,b){for(var c=0,d=a.length;c<d;++c)if(a[c]===b)return c;return-1},v=b.prototype.push,w=function(a){for(var d=[],e=0,f=a.length;e<f;++e){if(!b.prototype.isPrototypeOf(a[e]))throw new c("Arr.flatten item "+e+" was not an array, input: "+a);v.apply(d,a[e])}return d},x=function(a,b){var c=k(a,b);return w(c)},y=function(a,b){for(var c=0,d=a.length;c<d;++c){var e=a[c];if(b(e,c,a)!==!0)return!1}return!0},z=function(a,b){return a.length===b.length&&y(a,function(a,c){return a===b[c]})},A=b.prototype.slice,B=function(a){var b=A.call(a,0);return b.reverse(),b},C=function(a,b){return o(a,function(a){return!g(b,a)})},D=function(a,b){for(var c={},e=0,f=a.length;e<f;e++){var g=a[e];c[d(g)]=b(g,e)}return c},E=function(a){return[a]},F=function(a,b){var c=A.call(a,0);return c.sort(b),c};return{map:k,each:l,eachr:m,partition:n,filter:o,groupBy:p,indexOf:f,foldr:q,foldl:r,find:s,findIndex:t,flatten:w,bind:x,forall:y,exists:h,contains:g,equal:z,reverse:B,chunk:j,difference:C,mapToObject:D,pure:E,sort:F,range:i}}),g("6",["8"],function(a){var b=function(a,b,c){return b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom},c=function(c,d,e){return!e.collapsed&&a.foldl(e.getClientRects(),function(a,e){return a||b(e,c,d)},!1)};return{isXYWithinRange:c}}),g("0",["1","2","3","4","5","6"],function(a,b,c,d,e,f){var g=a.DOM;return c.add("contextmenu",function(a){var c,h,i=a.settings.contextmenu_never_use_native,j=function(a){return a.ctrlKey&&!i},k=function(){return b.mac&&b.webkit},l=function(){return h===!0},m=function(a){return a&&"IMG"===a.nodeName},n=function(a,b){return m(a.target)&&f.isXYWithinRange(a.clientX,a.clientY,b)===!1};return a.on("mousedown",function(b){k()&&2===b.button&&!j(b)&&a.selection.isCollapsed()&&a.once("contextmenu",function(b){m(b.target)||a.selection.placeCaretAt(b.clientX,b.clientY)})}),a.on("contextmenu",function(b){var f;if(!j(b)){if(n(b,a.selection.getRng())&&a.selection.select(b.target),b.preventDefault(),f=a.settings.contextmenu||"link openlink image inserttable | cell row column deletetable",c)c.show();else{var i=[];e.each(f.split(/[ ,]/),function(b){var c=a.menuItems[b];"|"==b&&(c={text:b}),c&&(c.shortcut="",i.push(c))});for(var k=0;k<i.length;k++)"|"==i[k].text&&(0!==k&&k!=i.length-1||i.splice(k,1));c=d.create("menu",{items:i,context:"contextmenu",classes:"contextmenu"}).renderTo(),c.on("hide",function(a){a.control===this&&(h=!1)}),a.on("remove",function(){c.remove(),c=null})}var l={x:b.pageX,y:b.pageY};a.inline||(l=g.getPos(a.getContentAreaContainer()),l.x+=b.clientX,l.y+=b.clientY),c.moveTo(l.x,l.y),h=!0}}),{isContextMenuVisible:l}}),function(){}}),d("0")()}();
mce/link/plugin.js CHANGED
@@ -286,22 +286,26 @@ define(
286
  function (Tools, Settings, RegExp) {
287
 
288
  var toggleTargetRules = function (rel, isUnsafe) {
289
- var rules = 'noopener';
 
 
 
 
 
290
 
291
  var addTargetRules = function (rel) {
292
  rel = removeTargetRules(rel);
293
- return rel ? [rel, rules].join(' ') : rules;
294
  };
295
 
296
  var removeTargetRules = function (rel) {
297
- var regExp = new RegExp('(' + rules.replace(' ', '|') + ')', 'g');
298
- if (rel) {
299
- rel = Tools.trim(rel.replace(regExp, ''));
300
- }
301
- return rel ? rel : null;
302
  };
303
 
304
- return isUnsafe ? addTargetRules(rel) : removeTargetRules(rel);
 
305
  };
306
 
307
 
@@ -365,7 +369,7 @@ define(
365
  title: data.title ? data.title : null
366
  };
367
 
368
- if (Settings.allowUnsafeLinkTarget(editor.settings) === false) {
369
  linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target == '_blank');
370
  }
371
 
@@ -447,7 +451,8 @@ define(
447
  hasLinks: hasLinks,
448
  isOnlyTextSelected: isOnlyTextSelected,
449
  getAnchorElement: getAnchorElement,
450
- getAnchorText: getAnchorText
 
451
  };
452
  }
453
  );
@@ -691,7 +696,14 @@ define(
691
  name: 'rel',
692
  type: 'listbox',
693
  label: 'Rel',
694
- values: buildListItems(Settings.getRelList(editor.settings))
 
 
 
 
 
 
 
695
  };
696
  }
697
 
286
  function (Tools, Settings, RegExp) {
287
 
288
  var toggleTargetRules = function (rel, isUnsafe) {
289
+ var rules = ['noopener'];
290
+ var newRel = rel ? rel.split(/\s+/) : [];
291
+
292
+ var toString = function (rel) {
293
+ return Tools.trim(rel.sort().join(' '));
294
+ };
295
 
296
  var addTargetRules = function (rel) {
297
  rel = removeTargetRules(rel);
298
+ return rel.length ? rel.concat(rules) : rules;
299
  };
300
 
301
  var removeTargetRules = function (rel) {
302
+ return rel.filter(function (val) {
303
+ return Tools.inArray(rules, val) === -1;
304
+ });
 
 
305
  };
306
 
307
+ newRel = isUnsafe ? addTargetRules(newRel) : removeTargetRules(newRel);
308
+ return newRel.length ? toString(newRel) : null;
309
  };
310
 
311
 
369
  title: data.title ? data.title : null
370
  };
371
 
372
+ if (!Settings.hasRelList(editor.settings) && Settings.allowUnsafeLinkTarget(editor.settings) === false) {
373
  linkAttrs.rel = toggleTargetRules(linkAttrs.rel, linkAttrs.target == '_blank');
374
  }
375
 
451
  hasLinks: hasLinks,
452
  isOnlyTextSelected: isOnlyTextSelected,
453
  getAnchorElement: getAnchorElement,
454
+ getAnchorText: getAnchorText,
455
+ toggleTargetRules: toggleTargetRules
456
  };
457
  }
458
  );
696
  name: 'rel',
697
  type: 'listbox',
698
  label: 'Rel',
699
+ values: buildListItems(
700
+ Settings.getRelList(editor.settings),
701
+ function (item) {
702
+ if (Settings.allowUnsafeLinkTarget(editor.settings) === false) {
703
+ item.value = Utils.toggleTargetRules(item.value, data.target === '_blank');
704
+ }
705
+ }
706
+ )
707
  };
708
  }
709
 
mce/link/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("4",tinymce.util.Tools.resolve),g("1",["4"],function(a){return a("tinymce.PluginManager")}),g("5",["4"],function(a){return a("tinymce.util.VK")}),g("a",["4"],function(a){return a("tinymce.util.Delay")}),g("b",["4"],function(a){return a("tinymce.util.Tools")}),g("c",["4"],function(a){return a("tinymce.util.XHR")}),g("9",[],function(){var a=function(a){return"boolean"==typeof a.link_assume_external_targets&&a.link_assume_external_targets},b=function(a){return"boolean"==typeof a.link_context_toolbar&&a.link_context_toolbar},c=function(a){return a.link_list},d=function(a){return"string"==typeof a.default_link_target},e=function(a){return a.default_link_target},f=function(a){return a.target_list},g=function(a,b){a.settings.target_list=b},h=function(a){return f(a)!==!1},i=function(a){return a.rel_list},j=function(a){return void 0!==i(a)},k=function(a){return a.link_class_list},l=function(a){return void 0!==k(a)},m=function(a){return a.link_title!==!1},n=function(a){return"boolean"==typeof a.allow_unsafe_link_target&&a.allow_unsafe_link_target};return{assumeExternalTargets:a,hasContextToolbar:b,getLinkList:c,hasDefaultLinkTarget:d,getDefaultLinkTarget:e,getTargetList:f,setTargetList:g,shouldShowTargetList:h,getRelList:i,hasRelList:j,getLinkClassList:k,hasLinkClassList:l,shouldShowLinkTitle:m,allowUnsafeLinkTarget:n}}),h("d",RegExp),g("8",["b","9","d"],function(a,b,c){var d=function(b,d){var e="noopener",f=function(a){return a=g(a),a?[a,e].join(" "):e},g=function(b){var d=new c("("+e.replace(" ","|")+")","g");return b&&(b=a.trim(b.replace(d,""))),b?b:null};return d?f(b):g(b)},e=function(a){return a.replace(/\uFEFF/g,"")},f=function(a,b){return b=b||a.selection.getStart(),k(b)?a.dom.select("a[href]",b)[0]:a.dom.getParent(b,"a[href]")},g=function(a,b){var c=b?b.innerText||b.textContent:a.getContent({format:"text"});return e(c)},h=function(a){return a&&"A"===a.nodeName&&a.href},i=function(b){return a.grep(b,h).length>0},j=function(a){return!(/</.test(a)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(a)||a.indexOf("href=")==-1))},k=function(a){return a&&"FIGURE"===a.nodeName&&/\bimage\b/i.test(a.className)},l=function(a,c){return function(e){a.undoManager.transact(function(){var g=a.selection.getNode(),h=f(a,g),i={href:e.href,target:e.target?e.target:null,rel:e.rel?e.rel:null,"class":e["class"]?e["class"]:null,title:e.title?e.title:null};b.allowUnsafeLinkTarget(a.settings)===!1&&(i.rel=d(i.rel,"_blank"==i.target)),e.href===c.href&&(c.attach(),c={}),h?(a.focus(),e.hasOwnProperty("text")&&("innerText"in h?h.innerText=e.text:h.textContent=e.text),a.dom.setAttribs(h,i),a.selection.select(h),a.undoManager.add()):k(g)?o(a,g,i):e.hasOwnProperty("text")?a.insertContent(a.dom.createHTML("a",i,a.dom.encode(e.text))):a.execCommand("mceInsertLink",!1,i)})}},m=function(a){return function(){a.undoManager.transact(function(){var b=a.selection.getNode();k(b)?n(a,b):a.execCommand("unlink")})}},n=function(a,b){var c,d;d=a.dom.select("img",b)[0],d&&(c=a.dom.getParents(d,"a[href]",b)[0],c&&(c.parentNode.insertBefore(d,c),a.dom.remove(c)))},o=function(a,b,c){var d,e;e=a.dom.select("img",b)[0],e&&(d=a.dom.create("a",c),e.parentNode.insertBefore(d,e),d.appendChild(e))};return{link:l,unlink:m,isLink:h,hasLinks:i,isOnlyTextSelected:j,getAnchorElement:f,getAnchorText:g}}),g("6",["a","b","c","8","9"],function(a,b,c,d,e){var f={},g=function(a,b){var d=e.getLinkList(a.settings);"string"==typeof d?c.send({url:d,success:function(c){b(a,JSON.parse(c))}}):"function"==typeof d?d(function(c){b(a,c)}):b(a,d)},h=function(a,c,d){var e=function(a,d){return d=d||[],b.each(a,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d};return e(a,d||[])},i=function(b,c,d){var e=b.selection.getRng();a.setEditorTimeout(b,function(){b.windowManager.confirm(c,function(a){b.selection.setRng(e),d(a)})})},j=function(a,c){var g,j,k,l,m,n,o,p,q,r,s,t={},u=a.selection,v=a.dom,w=function(a){var b=k.find("#text");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),k.find("#href").value(a.control.value())},x=function(c){var d=[];if(b.each(a.dom.select("a:not([href])"),function(a){var b=a.name||a.id;b&&d.push({text:b,value:"#"+b,selected:c.indexOf("#"+b)!=-1})}),d.length)return d.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:d,onselect:w}},y=function(){j||!l||t.text||this.parent().parent().find("#text")[0].value(this.value())},z=function(c){var d=c.meta||{};n&&n.value(a.convertURL(this.value(),"href")),b.each(c.meta,function(a,b){var c=k.find("#"+b);"text"===b?0===j.length&&(c.value(a),t.text=a):c.value(a)}),d.attach&&(f={href:this.value(),attach:d.attach}),d.text||y.call(this)},A=function(a){a.meta=k.toJSON()};l=d.isOnlyTextSelected(u.getContent()),g=d.getAnchorElement(a),t.text=j=d.getAnchorText(a.selection,g),t.href=g?v.getAttrib(g,"href"):"",g?t.target=v.getAttrib(g,"target"):e.hasDefaultLinkTarget(a.settings)&&(t.target=e.getDefaultLinkTarget(a.settings)),(s=v.getAttrib(g,"rel"))&&(t.rel=s),(s=v.getAttrib(g,"class"))&&(t["class"]=s),(s=v.getAttrib(g,"title"))&&(t.title=s),l&&(m={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){t.text=this.value()}}),c&&(n={type:"listbox",label:"Link list",values:h(c,function(b){b.value=a.convertURL(b.value||b.url,"href")},[{text:"None",value:""}]),onselect:w,value:a.convertURL(t.href,"href"),onPostRender:function(){n=this}}),e.shouldShowTargetList(a.settings)&&(void 0===e.getTargetList(a.settings)&&e.setTargetList(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),p={name:"target",type:"listbox",label:"Target",values:h(e.getTargetList(a.settings))}),e.hasRelList(a.settings)&&(o={name:"rel",type:"listbox",label:"Rel",values:h(e.getRelList(a.settings))}),e.hasLinkClassList(a.settings)&&(q={name:"class",type:"listbox",label:"Class",values:h(e.getLinkClassList(a.settings),function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[b.value]})})})}),e.shouldShowLinkTitle(a.settings)&&(r={name:"title",type:"textbox",label:"Title",value:t.title}),k=a.windowManager.open({title:"Insert link",data:t,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:z,onkeyup:y,onbeforecall:A},m,r,x(t.href),n,o,p,q],onSubmit:function(c){var g=e.assumeExternalTargets(a.settings),h=d.link(a,f),k=d.unlink(a),m=b.extend({},t,c.data),n=m.href;return n?(l&&m.text!==j||delete m.text,n.indexOf("@")>0&&n.indexOf("//")==-1&&n.indexOf("mailto:")==-1?void i(a,"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(a){a&&(m.href="mailto:"+n),h(m)}):g===!0&&!/^\w+:/i.test(n)||g===!1&&/^\s*www[\.|\d\.]/i.test(n)?void i(a,"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){a&&(m.href="http://"+n),h(m)}):void h(m)):void k()}})},k=function(a){g(a,j)};return{open:k}}),g("e",["4"],function(a){return a("tinymce.dom.DOMUtils")}),g("f",["4"],function(a){return a("tinymce.Env")}),g("7",["e","f"],function(a,b){var c=function(a,b){document.body.appendChild(a),a.dispatchEvent(b),document.body.removeChild(a)},d=function(d){if(!b.ie||b.ie>10){var e=document.createElement("a");e.target="_blank",e.href=d,e.rel="noreferrer noopener";var f=document.createEvent("MouseEvents");f.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),c(e,f)}else{var g=window.open("","_blank");if(g){g.opener=null;var h=g.document;h.open(),h.write('<meta http-equiv="refresh" content="0; url='+a.DOM.encode(d)+'">'),h.close()}}};return{open:d}}),g("2",["5","6","7","8","9"],function(a,b,c,d,e){var f=function(a,b){return a.dom.getParent(b,"a[href]")},g=function(a){return f(a,a.selection.getStart())},h=function(a){var b=a.getAttribute("data-mce-href");return b?b:a.getAttribute("href")},i=function(a){var b=a.plugins.contextmenu;return!!b&&b.isContextMenuVisible()},j=function(a){return a.altKey===!0&&a.shiftKey===!1&&a.ctrlKey===!1&&a.metaKey===!1},k=function(a,b){if(b){var d=h(b);if(/^#/.test(d)){var e=a.$(d);e.length&&a.selection.scrollIntoView(e[0],!0)}else c.open(b.href)}},l=function(a){return function(){b.open(a)}},m=function(a){return function(){k(a,g(a))}},n=function(a){return function(b){var c,f,g;return!!(e.hasContextToolbar(a.settings)&&!i(a)&&d.isLink(b)&&(c=a.selection,f=c.getRng(),g=f.startContainer,3==g.nodeType&&c.isCollapsed()&&f.startOffset>0&&f.startOffset<g.data.length))}},o=function(b){b.on("click",function(c){var d=f(b,c.target);d&&a.metaKeyPressed(c)&&(c.preventDefault(),k(b,d))}),b.on("keydown",function(a){var c=g(b);c&&13===a.keyCode&&j(a)&&(a.preventDefault(),k(b,c))})},p=function(a){return function(){var b=this;a.on("nodechange",function(c){b.active(!a.readonly&&!!d.getAnchorElement(a,c.element))})}},q=function(a){return function(){var b=this,c=function(a){d.hasLinks(a.parents)?b.show():b.hide()};d.hasLinks(a.dom.getParents(a.selection.getStart()))||b.hide(),a.on("nodechange",c),b.on("remove",function(){a.off("nodechange",c)})}};return{openDialog:l,gotoSelectedLink:m,leftClickedOnAHref:n,setupGotoLinks:o,toggleActiveState:p,toggleViewLinkState:q}}),g("3",["2","8"],function(a,b){var c=function(c){c.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Meta+K",onclick:a.openDialog(c),onpostrender:a.toggleActiveState(c)}),c.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onclick:b.unlink(c),onpostrender:a.toggleActiveState(c)}),c.addContextToolbar&&c.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:a.gotoSelectedLink(c)})},d=function(b){b.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:a.gotoSelectedLink(b),onPostRender:a.toggleViewLinkState(b),prependToContext:!0}),b.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:a.openDialog(b),stateSelector:"a[href]",context:"insert",prependToContext:!0})},e=function(b){b.addContextToolbar&&b.addContextToolbar(a.leftClickedOnAHref(b),"openlink | link unlink")};return{setupButtons:c,setupMenuItems:d,setupContextToolbars:e}}),g("0",["1","2","3"],function(a,b,c){return a.add("link",function(a){c.setupButtons(a),c.setupMenuItems(a),c.setupContextToolbars(a),b.setupGotoLinks(a),a.addShortcut("Meta+K","",b.openDialog(a)),a.addCommand("mceLink",b.openDialog(a))}),function(){}}),d("0")()}();
1
+ !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("4",tinymce.util.Tools.resolve),g("1",["4"],function(a){return a("tinymce.PluginManager")}),g("5",["4"],function(a){return a("tinymce.util.VK")}),g("a",["4"],function(a){return a("tinymce.util.Delay")}),g("b",["4"],function(a){return a("tinymce.util.Tools")}),g("c",["4"],function(a){return a("tinymce.util.XHR")}),g("9",[],function(){var a=function(a){return"boolean"==typeof a.link_assume_external_targets&&a.link_assume_external_targets},b=function(a){return"boolean"==typeof a.link_context_toolbar&&a.link_context_toolbar},c=function(a){return a.link_list},d=function(a){return"string"==typeof a.default_link_target},e=function(a){return a.default_link_target},f=function(a){return a.target_list},g=function(a,b){a.settings.target_list=b},h=function(a){return f(a)!==!1},i=function(a){return a.rel_list},j=function(a){return void 0!==i(a)},k=function(a){return a.link_class_list},l=function(a){return void 0!==k(a)},m=function(a){return a.link_title!==!1},n=function(a){return"boolean"==typeof a.allow_unsafe_link_target&&a.allow_unsafe_link_target};return{assumeExternalTargets:a,hasContextToolbar:b,getLinkList:c,hasDefaultLinkTarget:d,getDefaultLinkTarget:e,getTargetList:f,setTargetList:g,shouldShowTargetList:h,getRelList:i,hasRelList:j,getLinkClassList:k,hasLinkClassList:l,shouldShowLinkTitle:m,allowUnsafeLinkTarget:n}}),h("d",RegExp),g("8",["b","9","d"],function(a,b,c){var d=function(b,c){var d=["noopener"],e=b?b.split(/\s+/):[],f=function(b){return a.trim(b.sort().join(" "))},g=function(a){return a=h(a),a.length?a.concat(d):d},h=function(b){return b.filter(function(b){return a.inArray(d,b)===-1})};return e=c?g(e):h(e),e.length?f(e):null},e=function(a){return a.replace(/\uFEFF/g,"")},f=function(a,b){return b=b||a.selection.getStart(),k(b)?a.dom.select("a[href]",b)[0]:a.dom.getParent(b,"a[href]")},g=function(a,b){var c=b?b.innerText||b.textContent:a.getContent({format:"text"});return e(c)},h=function(a){return a&&"A"===a.nodeName&&a.href},i=function(b){return a.grep(b,h).length>0},j=function(a){return!(/</.test(a)&&(!/^<a [^>]+>[^<]+<\/a>$/.test(a)||a.indexOf("href=")==-1))},k=function(a){return a&&"FIGURE"===a.nodeName&&/\bimage\b/i.test(a.className)},l=function(a,c){return function(e){a.undoManager.transact(function(){var g=a.selection.getNode(),h=f(a,g),i={href:e.href,target:e.target?e.target:null,rel:e.rel?e.rel:null,"class":e["class"]?e["class"]:null,title:e.title?e.title:null};b.hasRelList(a.settings)||b.allowUnsafeLinkTarget(a.settings)!==!1||(i.rel=d(i.rel,"_blank"==i.target)),e.href===c.href&&(c.attach(),c={}),h?(a.focus(),e.hasOwnProperty("text")&&("innerText"in h?h.innerText=e.text:h.textContent=e.text),a.dom.setAttribs(h,i),a.selection.select(h),a.undoManager.add()):k(g)?o(a,g,i):e.hasOwnProperty("text")?a.insertContent(a.dom.createHTML("a",i,a.dom.encode(e.text))):a.execCommand("mceInsertLink",!1,i)})}},m=function(a){return function(){a.undoManager.transact(function(){var b=a.selection.getNode();k(b)?n(a,b):a.execCommand("unlink")})}},n=function(a,b){var c,d;d=a.dom.select("img",b)[0],d&&(c=a.dom.getParents(d,"a[href]",b)[0],c&&(c.parentNode.insertBefore(d,c),a.dom.remove(c)))},o=function(a,b,c){var d,e;e=a.dom.select("img",b)[0],e&&(d=a.dom.create("a",c),e.parentNode.insertBefore(d,e),d.appendChild(e))};return{link:l,unlink:m,isLink:h,hasLinks:i,isOnlyTextSelected:j,getAnchorElement:f,getAnchorText:g,toggleTargetRules:d}}),g("6",["a","b","c","8","9"],function(a,b,c,d,e){var f={},g=function(a,b){var d=e.getLinkList(a.settings);"string"==typeof d?c.send({url:d,success:function(c){b(a,JSON.parse(c))}}):"function"==typeof d?d(function(c){b(a,c)}):b(a,d)},h=function(a,c,d){var e=function(a,d){return d=d||[],b.each(a,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d};return e(a,d||[])},i=function(b,c,d){var e=b.selection.getRng();a.setEditorTimeout(b,function(){b.windowManager.confirm(c,function(a){b.selection.setRng(e),d(a)})})},j=function(a,c){var g,j,k,l,m,n,o,p,q,r,s,t={},u=a.selection,v=a.dom,w=function(a){var b=k.find("#text");(!b.value()||a.lastControl&&b.value()==a.lastControl.text())&&b.value(a.control.text()),k.find("#href").value(a.control.value())},x=function(c){var d=[];if(b.each(a.dom.select("a:not([href])"),function(a){var b=a.name||a.id;b&&d.push({text:b,value:"#"+b,selected:c.indexOf("#"+b)!=-1})}),d.length)return d.unshift({text:"None",value:""}),{name:"anchor",type:"listbox",label:"Anchors",values:d,onselect:w}},y=function(){j||!l||t.text||this.parent().parent().find("#text")[0].value(this.value())},z=function(c){var d=c.meta||{};n&&n.value(a.convertURL(this.value(),"href")),b.each(c.meta,function(a,b){var c=k.find("#"+b);"text"===b?0===j.length&&(c.value(a),t.text=a):c.value(a)}),d.attach&&(f={href:this.value(),attach:d.attach}),d.text||y.call(this)},A=function(a){a.meta=k.toJSON()};l=d.isOnlyTextSelected(u.getContent()),g=d.getAnchorElement(a),t.text=j=d.getAnchorText(a.selection,g),t.href=g?v.getAttrib(g,"href"):"",g?t.target=v.getAttrib(g,"target"):e.hasDefaultLinkTarget(a.settings)&&(t.target=e.getDefaultLinkTarget(a.settings)),(s=v.getAttrib(g,"rel"))&&(t.rel=s),(s=v.getAttrib(g,"class"))&&(t["class"]=s),(s=v.getAttrib(g,"title"))&&(t.title=s),l&&(m={name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){t.text=this.value()}}),c&&(n={type:"listbox",label:"Link list",values:h(c,function(b){b.value=a.convertURL(b.value||b.url,"href")},[{text:"None",value:""}]),onselect:w,value:a.convertURL(t.href,"href"),onPostRender:function(){n=this}}),e.shouldShowTargetList(a.settings)&&(void 0===e.getTargetList(a.settings)&&e.setTargetList(a,[{text:"None",value:""},{text:"New window",value:"_blank"}]),p={name:"target",type:"listbox",label:"Target",values:h(e.getTargetList(a.settings))}),e.hasRelList(a.settings)&&(o={name:"rel",type:"listbox",label:"Rel",values:h(e.getRelList(a.settings),function(b){e.allowUnsafeLinkTarget(a.settings)===!1&&(b.value=d.toggleTargetRules(b.value,"_blank"===t.target))})}),e.hasLinkClassList(a.settings)&&(q={name:"class",type:"listbox",label:"Class",values:h(e.getLinkClassList(a.settings),function(b){b.value&&(b.textStyle=function(){return a.formatter.getCssText({inline:"a",classes:[b.value]})})})}),e.shouldShowLinkTitle(a.settings)&&(r={name:"title",type:"textbox",label:"Title",value:t.title}),k=a.windowManager.open({title:"Insert link",data:t,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:z,onkeyup:y,onbeforecall:A},m,r,x(t.href),n,o,p,q],onSubmit:function(c){var g=e.assumeExternalTargets(a.settings),h=d.link(a,f),k=d.unlink(a),m=b.extend({},t,c.data),n=m.href;return n?(l&&m.text!==j||delete m.text,n.indexOf("@")>0&&n.indexOf("//")==-1&&n.indexOf("mailto:")==-1?void i(a,"The URL you entered seems to be an email address. Do you want to add the required mailto: prefix?",function(a){a&&(m.href="mailto:"+n),h(m)}):g===!0&&!/^\w+:/i.test(n)||g===!1&&/^\s*www[\.|\d\.]/i.test(n)?void i(a,"The URL you entered seems to be an external link. Do you want to add the required http:// prefix?",function(a){a&&(m.href="http://"+n),h(m)}):void h(m)):void k()}})},k=function(a){g(a,j)};return{open:k}}),g("e",["4"],function(a){return a("tinymce.dom.DOMUtils")}),g("f",["4"],function(a){return a("tinymce.Env")}),g("7",["e","f"],function(a,b){var c=function(a,b){document.body.appendChild(a),a.dispatchEvent(b),document.body.removeChild(a)},d=function(d){if(!b.ie||b.ie>10){var e=document.createElement("a");e.target="_blank",e.href=d,e.rel="noreferrer noopener";var f=document.createEvent("MouseEvents");f.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),c(e,f)}else{var g=window.open("","_blank");if(g){g.opener=null;var h=g.document;h.open(),h.write('<meta http-equiv="refresh" content="0; url='+a.DOM.encode(d)+'">'),h.close()}}};return{open:d}}),g("2",["5","6","7","8","9"],function(a,b,c,d,e){var f=function(a,b){return a.dom.getParent(b,"a[href]")},g=function(a){return f(a,a.selection.getStart())},h=function(a){var b=a.getAttribute("data-mce-href");return b?b:a.getAttribute("href")},i=function(a){var b=a.plugins.contextmenu;return!!b&&b.isContextMenuVisible()},j=function(a){return a.altKey===!0&&a.shiftKey===!1&&a.ctrlKey===!1&&a.metaKey===!1},k=function(a,b){if(b){var d=h(b);if(/^#/.test(d)){var e=a.$(d);e.length&&a.selection.scrollIntoView(e[0],!0)}else c.open(b.href)}},l=function(a){return function(){b.open(a)}},m=function(a){return function(){k(a,g(a))}},n=function(a){return function(b){var c,f,g;return!!(e.hasContextToolbar(a.settings)&&!i(a)&&d.isLink(b)&&(c=a.selection,f=c.getRng(),g=f.startContainer,3==g.nodeType&&c.isCollapsed()&&f.startOffset>0&&f.startOffset<g.data.length))}},o=function(b){b.on("click",function(c){var d=f(b,c.target);d&&a.metaKeyPressed(c)&&(c.preventDefault(),k(b,d))}),b.on("keydown",function(a){var c=g(b);c&&13===a.keyCode&&j(a)&&(a.preventDefault(),k(b,c))})},p=function(a){return function(){var b=this;a.on("nodechange",function(c){b.active(!a.readonly&&!!d.getAnchorElement(a,c.element))})}},q=function(a){return function(){var b=this,c=function(a){d.hasLinks(a.parents)?b.show():b.hide()};d.hasLinks(a.dom.getParents(a.selection.getStart()))||b.hide(),a.on("nodechange",c),b.on("remove",function(){a.off("nodechange",c)})}};return{openDialog:l,gotoSelectedLink:m,leftClickedOnAHref:n,setupGotoLinks:o,toggleActiveState:p,toggleViewLinkState:q}}),g("3",["2","8"],function(a,b){var c=function(c){c.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Meta+K",onclick:a.openDialog(c),onpostrender:a.toggleActiveState(c)}),c.addButton("unlink",{icon:"unlink",tooltip:"Remove link",onclick:b.unlink(c),onpostrender:a.toggleActiveState(c)}),c.addContextToolbar&&c.addButton("openlink",{icon:"newtab",tooltip:"Open link",onclick:a.gotoSelectedLink(c)})},d=function(b){b.addMenuItem("openlink",{text:"Open link",icon:"newtab",onclick:a.gotoSelectedLink(b),onPostRender:a.toggleViewLinkState(b),prependToContext:!0}),b.addMenuItem("link",{icon:"link",text:"Link",shortcut:"Meta+K",onclick:a.openDialog(b),stateSelector:"a[href]",context:"insert",prependToContext:!0})},e=function(b){b.addContextToolbar&&b.addContextToolbar(a.leftClickedOnAHref(b),"openlink | link unlink")};return{setupButtons:c,setupMenuItems:d,setupContextToolbars:e}}),g("0",["1","2","3"],function(a,b,c){return a.add("link",function(a){c.setupButtons(a),c.setupMenuItems(a),c.setupContextToolbars(a),b.setupGotoLinks(a),a.addShortcut("Meta+K","",b.openDialog(a)),a.addCommand("mceLink",b.openDialog(a))}),function(){}}),d("0")()}();
mce/nonbreaking/plugin.js CHANGED
@@ -128,14 +128,23 @@ define(
128
  function (PluginManager) {
129
  PluginManager.add('nonbreaking', function (editor) {
130
  var setting = editor.getParam('nonbreaking_force_tab');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
131
 
132
  editor.addCommand('mceNonBreaking', function () {
133
- editor.insertContent(
134
- (editor.plugins.visualchars && editor.plugins.visualchars.state) ?
135
- '<span class="mce-nbsp">&nbsp;</span>' : '&nbsp;'
136
- );
137
-
138
- editor.dom.setAttrib(editor.dom.select('span.mce-nbsp'), 'data-mce-bogus', '1');
139
  });
140
 
141
  editor.addButton('nonbreaking', {
@@ -160,9 +169,7 @@ define(
160
  }
161
 
162
  e.preventDefault();
163
- for (var i = 0; i < spaces; i++) {
164
- editor.execCommand('mceNonBreaking');
165
- }
166
  }
167
  });
168
  }
128
  function (PluginManager) {
129
  PluginManager.add('nonbreaking', function (editor) {
130
  var setting = editor.getParam('nonbreaking_force_tab');
131
+ var stringRepeat = function (string, repeats) {
132
+ var str = '';
133
+ for (var index = 0; index < repeats; index++) {
134
+ str += string;
135
+ }
136
+ return str;
137
+ };
138
+
139
+ var insertNbsp = function (times) {
140
+ var nbsp = (editor.plugins.visualchars && editor.plugins.visualchars.state) ? '<span class="mce-nbsp">&nbsp;</span>' : '&nbsp;';
141
+
142
+ editor.insertContent(stringRepeat(nbsp, times));
143
+ editor.dom.setAttrib(editor.dom.select('span.mce-nbsp'), 'data-mce-bogus', '1');
144
+ };
145
 
146
  editor.addCommand('mceNonBreaking', function () {
147
+ insertNbsp(1);
 
 
 
 
 
148
  });
149
 
150
  editor.addButton('nonbreaking', {
169
  }
170
 
171
  e.preventDefault();
172
+ insertNbsp(spaces);
 
 
173
  }
174
  });
175
  }
mce/nonbreaking/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("2",tinymce.util.Tools.resolve),g("1",["2"],function(a){return a("tinymce.PluginManager")}),g("0",["1"],function(a){return a.add("nonbreaking",function(a){var b=a.getParam("nonbreaking_force_tab");if(a.addCommand("mceNonBreaking",function(){a.insertContent(a.plugins.visualchars&&a.plugins.visualchars.state?'<span class="mce-nbsp">&nbsp;</span>':"&nbsp;"),a.dom.setAttrib(a.dom.select("span.mce-nbsp"),"data-mce-bogus","1")}),a.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),a.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),b){var c=+b>1?+b:3;a.on("keydown",function(b){if(9==b.keyCode){if(b.shiftKey)return;b.preventDefault();for(var d=0;d<c;d++)a.execCommand("mceNonBreaking")}})}}),function(){}}),d("0")()}();
1
+ !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("2",tinymce.util.Tools.resolve),g("1",["2"],function(a){return a("tinymce.PluginManager")}),g("0",["1"],function(a){return a.add("nonbreaking",function(a){var b=a.getParam("nonbreaking_force_tab"),c=function(a,b){for(var c="",d=0;d<b;d++)c+=a;return c},d=function(b){var d=a.plugins.visualchars&&a.plugins.visualchars.state?'<span class="mce-nbsp">&nbsp;</span>':"&nbsp;";a.insertContent(c(d,b)),a.dom.setAttrib(a.dom.select("span.mce-nbsp"),"data-mce-bogus","1")};if(a.addCommand("mceNonBreaking",function(){d(1)}),a.addButton("nonbreaking",{title:"Nonbreaking space",cmd:"mceNonBreaking"}),a.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),b){var e=+b>1?+b:3;a.on("keydown",function(a){if(9==a.keyCode){if(a.shiftKey)return;a.preventDefault(),d(e)}})}}),function(){}}),d("0")()}();
mce/searchreplace/plugin.js CHANGED
@@ -656,6 +656,7 @@ define(
656
 
657
  self.find = function (text, matchCase, wholeWord) {
658
  text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
 
659
  text = wholeWord ? '\\b' + text + '\\b' : text;
660
 
661
  var count = markAllMatches(new RegExp(text, matchCase ? 'g' : 'gi'));
656
 
657
  self.find = function (text, matchCase, wholeWord) {
658
  text = text.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&");
659
+ text = text.replace(/\s/g, '\\s');
660
  text = wholeWord ? '\\b' + text + '\\b' : text;
661
 
662
  var count = markAllMatches(new RegExp(text, matchCase ? 'g' : 'gi'));
mce/searchreplace/plugin.min.js CHANGED
@@ -1 +1 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("4",tinymce.util.Tools.resolve),g("1",["4"],function(a){return a("tinymce.PluginManager")}),g("2",["4"],function(a){return a("tinymce.util.Tools")}),g("3",[],function(){function a(a){return a&&1==a.nodeType&&"false"===a.contentEditable}function b(b,c,d,e,f){function g(a,b){if(b=b||0,!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var c=a.index;if(b>0){var d=a[b];if(!d)throw"Invalid capture group";c+=a[0].indexOf(d),a[0]=d}return[c,c+a[0].length,[a[0]]]}function h(b){var c;if(3===b.nodeType)return b.data;if(o[b.nodeName]&&!n[b.nodeName])return"";if(c="",a(b))return"\n";if((n[b.nodeName]||p[b.nodeName])&&(c+="\n"),b=b.firstChild)do c+=h(b);while(b=b.nextSibling);return c}function i(b,c,d){var e,f,g,h,i=[],j=0,k=b,l=c.shift(),m=0;a:for(;;){if((n[k.nodeName]||p[k.nodeName]||a(k))&&j++,3===k.nodeType&&(!f&&k.length+j>=l[1]?(f=k,h=l[1]-j):e&&i.push(k),!e&&k.length+j>l[0]&&(e=k,g=l[0]-j),j+=k.length),e&&f){if(k=d({startNode:e,startNodeIndex:g,endNode:f,endNodeIndex:h,innerNodes:i,match:l[2],matchIndex:m}),j-=f.length-h,e=null,f=null,i=[],l=c.shift(),m++,!l)break}else if(o[k.nodeName]&&!n[k.nodeName]||!k.firstChild){if(k.nextSibling){k=k.nextSibling;continue}}else if(!a(k)){k=k.firstChild;continue}for(;;){if(k.nextSibling){k=k.nextSibling;break}if(k.parentNode===b)break a;k=k.parentNode}}}function j(a){var b;if("function"!=typeof a){var c=a.nodeType?a:m.createElement(a);b=function(a,b){var d=c.cloneNode(!1);return d.setAttribute("data-mce-index",b),a&&d.appendChild(m.createTextNode(a)),d}}else b=a;return function(a){var c,d,e,f=a.startNode,g=a.endNode,h=a.matchIndex;if(f===g){var i=f;e=i.parentNode,a.startNodeIndex>0&&(c=m.createTextNode(i.data.substring(0,a.startNodeIndex)),e.insertBefore(c,i));var j=b(a.match[0],h);return e.insertBefore(j,i),a.endNodeIndex<i.length&&(d=m.createTextNode(i.data.substring(a.endNodeIndex)),e.insertBefore(d,i)),i.parentNode.removeChild(i),j}c=m.createTextNode(f.data.substring(0,a.startNodeIndex)),d=m.createTextNode(g.data.substring(a.endNodeIndex));for(var k=b(f.data.substring(a.startNodeIndex),h),l=[],n=0,o=a.innerNodes.length;n<o;++n){var p=a.innerNodes[n],q=b(p.data,h);p.parentNode.replaceChild(q,p),l.push(q)}var r=b(g.data.substring(0,a.endNodeIndex),h);return e=f.parentNode,e.insertBefore(c,f),e.insertBefore(k,f),e.removeChild(f),e=g.parentNode,e.insertBefore(r,g),e.insertBefore(d,g),e.removeChild(g),r}}var k,l,m,n,o,p,q=[],r=0;if(m=c.ownerDocument,n=f.getBlockElements(),o=f.getWhiteSpaceElements(),p=f.getShortEndedElements(),l=h(c)){if(b.global)for(;k=b.exec(l);)q.push(g(k,e));else k=l.match(b),q.push(g(k,e));return q.length&&(r=q.length,i(c,q,j(d))),r}}return{findAndReplaceDOMText:b}}),g("0",["1","2","3"],function(a,b,c){function d(a){function d(){function c(){g.statusbar.find("#next").disabled(!h(m+1).length),g.statusbar.find("#prev").disabled(!h(m-1).length)}function d(){a.windowManager.alert("Could not find the specified string.",function(){g.find("#find")[0].focus()})}var e,f={};e=b.trim(a.selection.getContent({format:"text"}));var g=a.windowManager.open({layout:"flex",pack:"center",align:"center",onClose:function(){a.focus(),l.done()},onSubmit:function(a){var b,e,i,j;return a.preventDefault(),e=g.find("#case").checked(),j=g.find("#words").checked(),i=g.find("#find").value(),i.length?f.text==i&&f.caseState==e&&f.wholeWord==j?0===h(m+1).length?void d():(l.next(),void c()):(b=l.find(i,e,j),b||d(),g.statusbar.items().slice(1).disabled(0===b),c(),void(f={text:i,caseState:e,wholeWord:j})):(l.done(!1),void g.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){g.submit()}},{text:"Replace",disabled:!0,onclick:function(){l.replace(g.find("#replace").value())||(g.statusbar.items().slice(1).disabled(!0),m=-1,f={})}},{text:"Replace all",disabled:!0,onclick:function(){l.replace(g.find("#replace").value(),!0,!0),g.statusbar.items().slice(1).disabled(!0),f={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){l.prev(),c()}},{text:"Next",name:"next",disabled:!0,onclick:function(){l.next(),c()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:e},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}})}function e(a){var b=a.getAttribute("data-mce-index");return"number"==typeof b?""+b:b}function f(b){var d,e;return e=a.dom.create("span",{"data-mce-bogus":1}),e.className="mce-match-marker",d=a.getBody(),l.done(!1),c.findAndReplaceDOMText(b,d,e,!1,a.schema)}function g(a){var b=a.parentNode;a.firstChild&&b.insertBefore(a.firstChild,a),a.parentNode.removeChild(a)}function h(c){var d,f=[];if(d=b.toArray(a.getBody().getElementsByTagName("span")),d.length)for(var g=0;g<d.length;g++){var h=e(d[g]);null!==h&&h.length&&h===c.toString()&&f.push(d[g])}return f}function i(b){var c=m,d=a.dom;b=b!==!1,b?c++:c--,d.removeClass(h(m),"mce-match-marker-selected");var e=h(c);return e.length?(d.addClass(h(c),"mce-match-marker-selected"),a.selection.scrollIntoView(e[0]),c):-1}function j(b){var c=a.dom,d=b.parentNode;c.remove(b),c.isEmpty(d)&&c.remove(d)}function k(a){var b=e(a);return null!==b&&b.length>0}var l=this,m=-1;l.init=function(a){a.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:d,separator:"before",context:"edit"}),a.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Meta+F",onclick:d}),a.addCommand("SearchReplace",d),a.shortcuts.add("Meta+F","",d)},l.find=function(a,b,c){a=a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),a=c?"\\b"+a+"\\b":a;var d=f(new RegExp(a,b?"g":"gi"));return d&&(m=-1,m=i(!0)),d},l.next=function(){var a=i(!0);a!==-1&&(m=a)},l.prev=function(){var a=i(!1);a!==-1&&(m=a)},l.replace=function(c,d,f){var i,n,o,p,q,r,s=m;for(d=d!==!1,o=a.getBody(),n=b.grep(b.toArray(o.getElementsByTagName("span")),k),i=0;i<n.length;i++){var t=e(n[i]);if(p=q=parseInt(t,10),f||p===m){for(c.length?(n[i].firstChild.nodeValue=c,g(n[i])):j(n[i]);n[++i];){if(p=parseInt(e(n[i]),10),p!==q){i--;break}j(n[i])}d&&s--}else q>m&&n[i].setAttribute("data-mce-index",q-1)}return a.undoManager.add(),m=s,d?(r=h(s+1).length>0,l.next()):(r=h(s-1).length>0,l.prev()),!f&&r},l.done=function(c){var d,f,h,i;for(f=b.toArray(a.getBody().getElementsByTagName("span")),d=0;d<f.length;d++){var j=e(f[d]);null!==j&&j.length&&(j===m.toString()&&(h||(h=f[d].firstChild),i=f[d].firstChild),g(f[d]))}if(h&&i){var k=a.dom.createRng();return k.setStart(h,0),k.setEnd(i,i.data.length),c!==!1&&a.selection.setRng(k),k}}}return a.add("searchreplace",d),function(){}}),d("0")()}();
1
+ !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("4",tinymce.util.Tools.resolve),g("1",["4"],function(a){return a("tinymce.PluginManager")}),g("2",["4"],function(a){return a("tinymce.util.Tools")}),g("3",[],function(){function a(a){return a&&1==a.nodeType&&"false"===a.contentEditable}function b(b,c,d,e,f){function g(a,b){if(b=b||0,!a[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var c=a.index;if(b>0){var d=a[b];if(!d)throw"Invalid capture group";c+=a[0].indexOf(d),a[0]=d}return[c,c+a[0].length,[a[0]]]}function h(b){var c;if(3===b.nodeType)return b.data;if(o[b.nodeName]&&!n[b.nodeName])return"";if(c="",a(b))return"\n";if((n[b.nodeName]||p[b.nodeName])&&(c+="\n"),b=b.firstChild)do c+=h(b);while(b=b.nextSibling);return c}function i(b,c,d){var e,f,g,h,i=[],j=0,k=b,l=c.shift(),m=0;a:for(;;){if((n[k.nodeName]||p[k.nodeName]||a(k))&&j++,3===k.nodeType&&(!f&&k.length+j>=l[1]?(f=k,h=l[1]-j):e&&i.push(k),!e&&k.length+j>l[0]&&(e=k,g=l[0]-j),j+=k.length),e&&f){if(k=d({startNode:e,startNodeIndex:g,endNode:f,endNodeIndex:h,innerNodes:i,match:l[2],matchIndex:m}),j-=f.length-h,e=null,f=null,i=[],l=c.shift(),m++,!l)break}else if(o[k.nodeName]&&!n[k.nodeName]||!k.firstChild){if(k.nextSibling){k=k.nextSibling;continue}}else if(!a(k)){k=k.firstChild;continue}for(;;){if(k.nextSibling){k=k.nextSibling;break}if(k.parentNode===b)break a;k=k.parentNode}}}function j(a){var b;if("function"!=typeof a){var c=a.nodeType?a:m.createElement(a);b=function(a,b){var d=c.cloneNode(!1);return d.setAttribute("data-mce-index",b),a&&d.appendChild(m.createTextNode(a)),d}}else b=a;return function(a){var c,d,e,f=a.startNode,g=a.endNode,h=a.matchIndex;if(f===g){var i=f;e=i.parentNode,a.startNodeIndex>0&&(c=m.createTextNode(i.data.substring(0,a.startNodeIndex)),e.insertBefore(c,i));var j=b(a.match[0],h);return e.insertBefore(j,i),a.endNodeIndex<i.length&&(d=m.createTextNode(i.data.substring(a.endNodeIndex)),e.insertBefore(d,i)),i.parentNode.removeChild(i),j}c=m.createTextNode(f.data.substring(0,a.startNodeIndex)),d=m.createTextNode(g.data.substring(a.endNodeIndex));for(var k=b(f.data.substring(a.startNodeIndex),h),l=[],n=0,o=a.innerNodes.length;n<o;++n){var p=a.innerNodes[n],q=b(p.data,h);p.parentNode.replaceChild(q,p),l.push(q)}var r=b(g.data.substring(0,a.endNodeIndex),h);return e=f.parentNode,e.insertBefore(c,f),e.insertBefore(k,f),e.removeChild(f),e=g.parentNode,e.insertBefore(r,g),e.insertBefore(d,g),e.removeChild(g),r}}var k,l,m,n,o,p,q=[],r=0;if(m=c.ownerDocument,n=f.getBlockElements(),o=f.getWhiteSpaceElements(),p=f.getShortEndedElements(),l=h(c)){if(b.global)for(;k=b.exec(l);)q.push(g(k,e));else k=l.match(b),q.push(g(k,e));return q.length&&(r=q.length,i(c,q,j(d))),r}}return{findAndReplaceDOMText:b}}),g("0",["1","2","3"],function(a,b,c){function d(a){function d(){function c(){g.statusbar.find("#next").disabled(!h(m+1).length),g.statusbar.find("#prev").disabled(!h(m-1).length)}function d(){a.windowManager.alert("Could not find the specified string.",function(){g.find("#find")[0].focus()})}var e,f={};e=b.trim(a.selection.getContent({format:"text"}));var g=a.windowManager.open({layout:"flex",pack:"center",align:"center",onClose:function(){a.focus(),l.done()},onSubmit:function(a){var b,e,i,j;return a.preventDefault(),e=g.find("#case").checked(),j=g.find("#words").checked(),i=g.find("#find").value(),i.length?f.text==i&&f.caseState==e&&f.wholeWord==j?0===h(m+1).length?void d():(l.next(),void c()):(b=l.find(i,e,j),b||d(),g.statusbar.items().slice(1).disabled(0===b),c(),void(f={text:i,caseState:e,wholeWord:j})):(l.done(!1),void g.statusbar.items().slice(1).disabled(!0))},buttons:[{text:"Find",subtype:"primary",onclick:function(){g.submit()}},{text:"Replace",disabled:!0,onclick:function(){l.replace(g.find("#replace").value())||(g.statusbar.items().slice(1).disabled(!0),m=-1,f={})}},{text:"Replace all",disabled:!0,onclick:function(){l.replace(g.find("#replace").value(),!0,!0),g.statusbar.items().slice(1).disabled(!0),f={}}},{type:"spacer",flex:1},{text:"Prev",name:"prev",disabled:!0,onclick:function(){l.prev(),c()}},{text:"Next",name:"next",disabled:!0,onclick:function(){l.next(),c()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,items:[{type:"textbox",name:"find",size:40,label:"Find",value:e},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}})}function e(a){var b=a.getAttribute("data-mce-index");return"number"==typeof b?""+b:b}function f(b){var d,e;return e=a.dom.create("span",{"data-mce-bogus":1}),e.className="mce-match-marker",d=a.getBody(),l.done(!1),c.findAndReplaceDOMText(b,d,e,!1,a.schema)}function g(a){var b=a.parentNode;a.firstChild&&b.insertBefore(a.firstChild,a),a.parentNode.removeChild(a)}function h(c){var d,f=[];if(d=b.toArray(a.getBody().getElementsByTagName("span")),d.length)for(var g=0;g<d.length;g++){var h=e(d[g]);null!==h&&h.length&&h===c.toString()&&f.push(d[g])}return f}function i(b){var c=m,d=a.dom;b=b!==!1,b?c++:c--,d.removeClass(h(m),"mce-match-marker-selected");var e=h(c);return e.length?(d.addClass(h(c),"mce-match-marker-selected"),a.selection.scrollIntoView(e[0]),c):-1}function j(b){var c=a.dom,d=b.parentNode;c.remove(b),c.isEmpty(d)&&c.remove(d)}function k(a){var b=e(a);return null!==b&&b.length>0}var l=this,m=-1;l.init=function(a){a.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Meta+F",onclick:d,separator:"before",context:"edit"}),a.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Meta+F",onclick:d}),a.addCommand("SearchReplace",d),a.shortcuts.add("Meta+F","",d)},l.find=function(a,b,c){a=a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),a=a.replace(/\s/g,"\\s"),a=c?"\\b"+a+"\\b":a;var d=f(new RegExp(a,b?"g":"gi"));return d&&(m=-1,m=i(!0)),d},l.next=function(){var a=i(!0);a!==-1&&(m=a)},l.prev=function(){var a=i(!1);a!==-1&&(m=a)},l.replace=function(c,d,f){var i,n,o,p,q,r,s=m;for(d=d!==!1,o=a.getBody(),n=b.grep(b.toArray(o.getElementsByTagName("span")),k),i=0;i<n.length;i++){var t=e(n[i]);if(p=q=parseInt(t,10),f||p===m){for(c.length?(n[i].firstChild.nodeValue=c,g(n[i])):j(n[i]);n[++i];){if(p=parseInt(e(n[i]),10),p!==q){i--;break}j(n[i])}d&&s--}else q>m&&n[i].setAttribute("data-mce-index",q-1)}return a.undoManager.add(),m=s,d?(r=h(s+1).length>0,l.next()):(r=h(s-1).length>0,l.prev()),!f&&r},l.done=function(c){var d,f,h,i;for(f=b.toArray(a.getBody().getElementsByTagName("span")),d=0;d<f.length;d++){var j=e(f[d]);null!==j&&j.length&&(j===m.toString()&&(h||(h=f[d].firstChild),i=f[d].firstChild),g(f[d]))}if(h&&i){var k=a.dom.createRng();return k.setStart(h,0),k.setEnd(i,i.data.length),c!==!1&&a.selection.setRng(k),k}}}return a.add("searchreplace",d),function(){}}),d("0")()}();
mce/table/plugin.js CHANGED
@@ -81,7 +81,7 @@ var defineGlobal = function (id, ref) {
81
  define(id, [], function () { return ref; });
82
  };
83
  /*jsc
84
- ["tinymce.plugins.table.Plugin","tinymce.core.dom.TreeWalker","tinymce.core.Env","tinymce.core.PluginManager","tinymce.core.util.Tools","tinymce.core.util.VK","tinymce.plugins.table.model.TableGrid","tinymce.plugins.table.selection.CellSelection","tinymce.plugins.table.ui.Dialogs","tinymce.plugins.table.ui.ResizeBars","tinymce.plugins.table.util.Quirks","global!tinymce.util.Tools.resolve","tinymce.plugins.table.util.Utils","tinymce.plugins.table.model.SplitCols","tinymce.core.util.Delay"]
85
  jsc*/
86
  defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve);
87
  /**
@@ -2434,7 +2434,12 @@ define(
2434
  if (!parentElm) {
2435
  parentElm = dom.create(toType);
2436
  if (tableElm.firstChild) {
2437
- tableElm.insertBefore(parentElm, tableElm.firstChild);
 
 
 
 
 
2438
  } else {
2439
  tableElm.appendChild(parentElm);
2440
  }
@@ -3723,7 +3728,8 @@ define(
3723
  }
3724
 
3725
  function moveCursorToStartOfElement(n) {
3726
- editor.selection.setCursorLocation(n, 0);
 
3727
  }
3728
 
3729
  function isVerticalMovement() {
@@ -4170,9 +4176,10 @@ define(
4170
  'tinymce.plugins.table.selection.CellSelection',
4171
  'tinymce.plugins.table.ui.Dialogs',
4172
  'tinymce.plugins.table.ui.ResizeBars',
 
4173
  'tinymce.plugins.table.util.Quirks'
4174
  ],
4175
- function (TreeWalker, Env, PluginManager, Tools, VK, TableGrid, CellSelection, Dialogs, ResizeBars, Quirks) {
4176
  var each = Tools.each;
4177
 
4178
  function Plugin(editor) {
@@ -4275,6 +4282,25 @@ define(
4275
  handleDisabledState(this, 'table');
4276
  }
4277
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4278
  function postRenderCell() {
4279
  /*jshint validthis:true*/
4280
  handleDisabledState(this, 'td,th');
@@ -4433,7 +4459,7 @@ define(
4433
  menu: [
4434
  { text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell },
4435
  { text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderMergeCell },
4436
- { text: 'Split cell', onclick: cmd('mceTableSplitCells'), onPostRender: postRenderCell }
4437
  ]
4438
  });
4439
 
81
  define(id, [], function () { return ref; });
82
  };
83
  /*jsc
84
+ ["tinymce.plugins.table.Plugin","tinymce.core.dom.TreeWalker","tinymce.core.Env","tinymce.core.PluginManager","tinymce.core.util.Tools","tinymce.core.util.VK","tinymce.plugins.table.model.TableGrid","tinymce.plugins.table.selection.CellSelection","tinymce.plugins.table.ui.Dialogs","tinymce.plugins.table.ui.ResizeBars","tinymce.plugins.table.util.Utils","tinymce.plugins.table.util.Quirks","global!tinymce.util.Tools.resolve","tinymce.plugins.table.model.SplitCols","tinymce.core.util.Delay"]
85
  jsc*/
86
  defineGlobal("global!tinymce.util.Tools.resolve", tinymce.util.Tools.resolve);
87
  /**
2434
  if (!parentElm) {
2435
  parentElm = dom.create(toType);
2436
  if (tableElm.firstChild) {
2437
+ // caption tag should be the first descendant of the table tag (see TINY-1167)
2438
+ if (tableElm.firstChild.nodeName === 'CAPTION') {
2439
+ dom.insertAfter(parentElm, tableElm.firstChild);
2440
+ } else {
2441
+ tableElm.insertBefore(parentElm, tableElm.firstChild);
2442
+ }
2443
  } else {
2444
  tableElm.appendChild(parentElm);
2445
  }
3728
  }
3729
 
3730
  function moveCursorToStartOfElement(n) {
3731
+ editor.selection.select(n, true);
3732
+ editor.selection.collapse(true);
3733
  }
3734
 
3735
  function isVerticalMovement() {
4176
  'tinymce.plugins.table.selection.CellSelection',
4177
  'tinymce.plugins.table.ui.Dialogs',
4178
  'tinymce.plugins.table.ui.ResizeBars',
4179
+ 'tinymce.plugins.table.util.Utils',
4180
  'tinymce.plugins.table.util.Quirks'
4181
  ],
4182
+ function (TreeWalker, Env, PluginManager, Tools, VK, TableGrid, CellSelection, Dialogs, ResizeBars, Utils, Quirks) {
4183
  var each = Tools.each;
4184
 
4185
  function Plugin(editor) {
4282
  handleDisabledState(this, 'table');
4283
  }
4284
 
4285
+ var hasMergedCellsSelected = function (node) {
4286
+ var cell = editor.dom.getParent(node, 'th,td');
4287
+ var selectedCells = editor.dom.select('td[data-mce-selected],th[data-mce-selected]').concat(cell ? [cell] : []);
4288
+ var mergedCellsSelected = Tools.grep(selectedCells, function (elm) {
4289
+ return Utils.getColSpan(elm) > 1 || Utils.getRowSpan(elm) > 1;
4290
+ });
4291
+
4292
+ return mergedCellsSelected.length > 0;
4293
+ };
4294
+
4295
+ var postRenderSplitCell = function (e) {
4296
+ var ctrl = e.control;
4297
+
4298
+ ctrl.disabled(!hasMergedCellsSelected(editor.selection.getStart()));
4299
+ editor.on('nodechange', function (e) {
4300
+ ctrl.disabled(!hasMergedCellsSelected(e.element));
4301
+ });
4302
+ };
4303
+
4304
  function postRenderCell() {
4305
  /*jshint validthis:true*/
4306
  handleDisabledState(this, 'td,th');
4459
  menu: [
4460
  { text: 'Cell properties', onclick: cmd('mceTableCellProps'), onPostRender: postRenderCell },
4461
  { text: 'Merge cells', onclick: cmd('mceTableMergeCells'), onPostRender: postRenderMergeCell },
4462
+ { text: 'Split cell', disabled: true, onclick: cmd('mceTableSplitCells'), onPostRender: postRenderSplitCell }
4463
  ]
4464
  });
4465
 
mce/table/plugin.min.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("b",tinymce.util.Tools.resolve),g("1",["b"],function(a){return a("tinymce.dom.TreeWalker")}),g("2",["b"],function(a){return a("tinymce.Env")}),g("3",["b"],function(a){return a("tinymce.PluginManager")}),g("4",["b"],function(a){return a("tinymce.util.Tools")}),g("5",["b"],function(a){return a("tinymce.util.VK")}),g("c",["2"],function(a){function b(b){(!a.ie||a.ie>9)&&(b.hasChildNodes()||(b.innerHTML='<br data-mce-bogus="1" />'))}var c=function(a){return function(b,c){b&&(c=parseInt(c,10),1===c||0===c?b.removeAttribute(a,1):b.setAttribute(a,c,1))}},d=function(a){return function(b){return parseInt(b.getAttribute(a)||1,10)}};return{setColSpan:c("colSpan"),setRowSpan:c("rowspan"),getColSpan:d("colSpan"),getRowSpan:d("rowSpan"),setSpanVal:function(a,b,d){c(b)(a,d)},getSpanVal:function(a,b){return d(b)(a)},paddCell:b}}),g("d",["4","c"],function(a,b){var c=function(a,b,c){return a[c]?a[c][b]:null},d=function(a,b,d){var e=c(a,b,d);return e?e.elm:null},e=function(a,b,e,f){var g,h,i=0,j=d(a,b,e);for(g=e;(f>0?g<a.length:g>=0)&&(h=c(a,b,g),j===h.elm);g+=f)i++;return i},f=function(a,b,c){for(var d,e=a[c],f=b;f<e.length;f++)if(d=e[f],d.real)return d.elm;return null},g=function(a,c){for(var d,f=[],g=a[c],h=0;h<g.length;h++)d=g[h],f.push({elm:d.elm,above:e(a,h,c,-1)-1,below:e(a,h,c,1)-1}),h+=b.getColSpan(d.elm)-1;return f},h=function(a,c){var d=a.elm.ownerDocument,e=d.createElement("td");return b.setColSpan(e,b.getColSpan(a.elm)),b.setRowSpan(e,c),b.paddCell(e),e},i=function(a,b,c,d){var e=f(a,c+1,d);e?e.parentNode.insertBefore(b,e):(e=f(a,0,d),e.parentNode.appendChild(b))},j=function(a,c,d,e){if(0!==c.above){b.setRowSpan(c.elm,c.above);var f=h(c,c.below+1);return i(a,f,d,e),f}return null},k=function(a,c,d,e){if(0!==c.below){b.setRowSpan(c.elm,c.above+1);var f=h(c,c.below);return i(a,f,d,e+1),f}return null},l=function(b,c,e,f){var h=g(b,e),i=d(b,c,e).parentNode,l=[];return a.each(h,function(a,c){var d=f?j(b,a,c,e):k(b,a,c,e);null!==d&&l.push(l)}),{cells:l,row:i}};return{splitAt:l}}),g("6",["4","2","c","d"],function(a,b,c,d){var e=a.each,f=c.getSpanVal,g=c.setSpanVal;return function(h,i,j){function k(){h.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected")}function l(a){return a===h.getBody()}function m(b,c){return b?(c=a.map(c.split(","),function(a){return a.toLowerCase()}),a.grep(b.childNodes,function(b){return a.inArray(c,b.nodeName.toLowerCase())!==-1})):[]}function n(){var a=0;Z=[],$=0,e(["thead","tbody","tfoot"],function(b){var c=m(i,b)[0],d=m(c,"tr");e(d,function(c,d){d+=a,e(m(c,"td,th"),function(a,c){var e,g,h,i;if(Z[d])for(;Z[d][c];)c++;for(h=f(a,"rowspan"),i=f(a,"colspan"),g=d;g<d+h;g++)for(Z[g]||(Z[g]=[]),e=c;e<c+i;e++)Z[g][e]={part:b,real:g==d&&e==c,elm:a,rowspan:h,colspan:i};$=Math.max($,c+1)})}),a+=d.length})}function o(a){return h.fire("newrow",{node:a}),a}function p(a){return h.fire("newcell",{node:a}),a}function q(a,b){return a=a.cloneNode(b),a.removeAttribute("id"),a}function r(a,b){var c;if(c=Z[b])return c[a]}function s(a,b){return a[b]?a[b]:null}function t(a,b){for(var c=[],d=0;d<a.length;d++)c.push(r(b,d));return c}function u(a){return a&&(!!ca.getAttrib(a.elm,"data-mce-selected")||a==j)}function v(){var a=[];return e(i.rows,function(b){e(b.cells,function(c){if(ca.getAttrib(c,"data-mce-selected")||j&&c==j.elm)return a.push(b),!1})}),a}function w(){var a=0;return e(Z,function(b){if(e(b,function(b){u(b)&&a++}),a)return!1}),a}function x(){var a=ca.createRng();l(i)||(a.setStartAfter(i),a.setEndAfter(i),ba.setRng(a),ca.remove(i))}function y(d){var f,i={};return h.settings.table_clone_elements!==!1&&(i=a.makeMap((h.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),a.walk(d,function(a){var c;if(3==a.nodeType)return e(ca.getParents(a.parentNode,null,d).reverse(),function(a){i[a.nodeName]&&(a=q(a,!1),f?c&&c.appendChild(a):f=c=a,c=a)}),c&&(c.innerHTML=b.ie&&b.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'),!1},"childNodes"),d=q(d,!1),p(d),g(d,"rowSpan",1),g(d,"colSpan",1),f?d.appendChild(f):c.paddCell(d),d}function z(){var a,b=ca.createRng();return e(ca.select("tr",i),function(a){0===a.cells.length&&ca.remove(a)}),0===ca.select("tr",i).length?(b.setStartBefore(i),b.setEndBefore(i),ba.setRng(b),void ca.remove(i)):(e(ca.select("thead,tbody,tfoot",i),function(a){0===a.rows.length&&ca.remove(a)}),n(),void(_&&(a=Z[Math.min(Z.length-1,_.y)],a&&(ba.select(a[Math.min(a.length-1,_.x)].elm,!0),ba.collapse(!0)))))}function A(a,b,c,d){var e,f,g,h,i;for(e=Z[b][a].elm.parentNode,g=1;g<=c;g++)if(e=ca.getNext(e,"tr")){for(f=a;f>=0;f--)if(i=Z[b+g][f].elm,i.parentNode==e){for(h=1;h<=d;h++)ca.insertAfter(y(i),i);break}if(f==-1)for(h=1;h<=d;h++)e.insertBefore(y(e.cells[0]),e.cells[0])}}function B(){e(Z,function(a,b){e(a,function(a,c){var d,e,h;if(u(a)&&(a=a.elm,d=f(a,"colspan"),e=f(a,"rowspan"),d>1||e>1)){for(g(a,"rowSpan",1),g(a,"colSpan",1),h=0;h<d-1;h++)ca.insertAfter(y(a),a);A(c,b,e-1,d)}})})}function C(a,b,c){for(var d=[],e=0;e<a.length;e++)(e<b||e>c)&&d.push(a[e]);return d}function D(b){return a.grep(b,function(a){return a.real===!1})}function E(a){for(var b=[],c=0;c<a.length;c++){var d=a[c].elm;b[b.length-1]!==d&&b.push(d)}return b}function F(b,d,e,f,g){var h=0;if(g-e<1)return 0;for(var i=e+1;i<=g;i++){var j=C(s(b,i),d,f),k=D(j);j.length===k.length&&(a.each(E(k),function(a){c.setRowSpan(a,c.getRowSpan(a)-1)}),h++)}return h}function G(b,d,e,f,g){var h=0;if(f-d<1)return 0;for(var i=d+1;i<=f;i++){var j=C(t(b,i),e,g),k=D(j);j.length===k.length&&(a.each(E(k),function(a){c.setColSpan(a,c.getColSpan(a)-1)}),h++)}return h}function H(b,c,d){var f,h,i,j,k,l,m,o,p,q,s,t,v;if(b?(f=T(b),h=f.x,i=f.y,j=h+(c-1),k=i+(d-1)):(_=aa=null,e(Z,function(a,b){e(a,function(a,c){u(a)&&(_||(_={x:c,y:b}),aa={x:c,y:b})})}),_&&(h=_.x,i=_.y,j=aa.x,k=aa.y)),o=r(h,i),p=r(j,k),o&&p&&o.part==p.part){B(),n(),t=F(Z,h,i,j,k),v=G(Z,h,i,j,k),o=r(h,i).elm;var w=j-h-v+1,x=k-i-t+1;for(w===$&&x===Z.length&&(w=1,x=1),w===$&&x>1&&(x=1),g(o,"colSpan",w),g(o,"rowSpan",x),m=i;m<=k;m++)for(l=h;l<=j;l++)Z[m]&&Z[m][l]&&(b=Z[m][l].elm,b!=o&&(q=a.grep(b.childNodes),e(q,function(a){o.appendChild(a)}),q.length&&(q=a.grep(o.childNodes),s=0,e(q,function(a){"BR"==a.nodeName&&s++<q.length-1&&o.removeChild(a)})),ca.remove(b)));z()}}function I(a){var b,c,d,h,i,j,k,l,m,n;if(e(Z,function(c,d){if(e(c,function(c){if(u(c)&&(c=c.elm,i=c.parentNode,j=o(q(i,!1)),b=d,a))return!1}),a)return void 0===b}),void 0!==b){for(h=0,n=0;h<Z[0].length;h+=n)if(Z[b][h]&&(c=Z[b][h].elm,n=f(c,"colspan"),c!=d)){if(a){if(b>0&&Z[b-1][h]&&(l=Z[b-1][h].elm,m=f(l,"rowSpan"),m>1)){g(l,"rowSpan",m+1);continue}}else if(m=f(c,"rowspan"),m>1){g(c,"rowSpan",m+1);continue}k=y(c),g(k,"colSpan",c.colSpan),j.appendChild(k),d=c}j.hasChildNodes()&&(a?i.parentNode.insertBefore(j,i):ca.insertAfter(j,i))}}function J(a,b){b=b||v().length||1;for(var c=0;c<b;c++)I(a)}function K(a){var b,c;e(Z,function(c){if(e(c,function(c,d){if(u(c)&&(b=d,a))return!1}),a)return void 0===b}),e(Z,function(d,e){var h,i,j;d[b]&&(h=d[b].elm,h!=c&&(j=f(h,"colspan"),i=f(h,"rowspan"),1==j?a?(h.parentNode.insertBefore(y(h),h),A(b,e,i-1,j)):(ca.insertAfter(y(h),h),A(b,e,i-1,j)):g(h,"colSpan",h.colSpan+1),c=h))})}function L(a,b){b=b||w()||1;for(var c=0;c<b;c++)K(a)}function M(b){return a.grep(N(b),u)}function N(a){var b=[];return e(a,function(a){e(a,function(a){b.push(a)})}),b}function O(){var b=[];if(l(i)){if(1==Z[0].length)return;if(M(Z).length==N(Z).length)return}e(Z,function(c){e(c,function(c,d){u(c)&&a.inArray(b,d)===-1&&(e(Z,function(a){var b,c=a[d].elm;b=f(c,"colSpan"),b>1?g(c,"colSpan",b-1):ca.remove(c)}),b.push(d))})}),z()}function P(){function a(a){var b,c;e(a.cells,function(a){var c=f(a,"rowSpan");c>1&&(g(a,"rowSpan",c-1),b=T(a),A(b.x,b.y,1,1))}),b=T(a.cells[0]),e(Z[b.y],function(a){var b;a=a.elm,a!=c&&(b=f(a,"rowSpan"),b<=1?ca.remove(a):g(a,"rowSpan",b-1),c=a)})}var b;b=v(),l(i)&&b.length==i.rows.length||(e(b.reverse(),function(b){a(b)}),z())}function Q(){var a=v();if(!l(i)||a.length!=i.rows.length)return ca.remove(a),z(),a}function R(){var a=v();return e(a,function(b,c){a[c]=q(b,!0)}),a}function S(b,c){var h,i,j,l=[];b&&(h=d.splitAt(Z,_.x,_.y,c),i=h.row,a.each(h.cells,p),j=a.map(b,function(a){return a.cloneNode(!0)}),e(j,function(a,b,d){var h,j,k,m,n=a.cells.length,q=0;for(o(a),h=0;h<n;h++)j=a.cells[h],m=f(j,"colspan"),k=f(j,"rowspan"),q+=m,k>1&&(q--,b+k>d.length?(k=d.length-b,g(j,"rowSpan",k),l.push(d.length-1)):l.push(b+k-1)),p(j);for(e(l,function(a){b<=a&&q++}),h=q;h<$;h++)a.appendChild(y(a.cells[n-1]));for(h=$;h<q;h++)j=a.cells[a.cells.length-1],m=f(j,"colspan"),m>1?g(j,"colSpan",m-1):ca.remove(j);c?i.parentNode.insertBefore(a,i):i=ca.insertAfter(a,i)}),k())}function T(a){var b;return e(Z,function(c,d){return e(c,function(c,e){if(c.elm==a)return b={x:e,y:d},!1}),!b}),b}function U(a){_=T(a)}function V(){var a,b;return a=b=0,e(Z,function(c,d){e(c,function(c,e){var f,g;u(c)&&(c=Z[d][e],e>a&&(a=e),d>b&&(b=d),c.real&&(f=c.colspan-1,g=c.rowspan-1,f&&e+f>a&&(a=e+f),g&&d+g>b&&(b=d+g)))})}),{x:a,y:b}}function W(a){var b,c,d,e,f,g,h,i,j,l;if(aa=T(a),_&&aa){for(b=Math.min(_.x,aa.x),c=Math.min(_.y,aa.y),d=Math.max(_.x,aa.x),e=Math.max(_.y,aa.y),f=d,g=e,l=c;l<=e;l++)for(j=b;j<=d;j++)a=Z[l][j],a.real&&(h=a.colspan-1,i=a.rowspan-1,h&&j+h>f&&(f=j+h),i&&l+i>g&&(g=l+i));for(k(),l=c;l<=g;l++)for(j=b;j<=f;j++)Z[l][j]&&ca.setAttrib(Z[l][j].elm,"data-mce-selected","1")}}function X(a,b){var c,d,e;c=T(a),d=c.y*$+c.x;do{if(d+=b,e=r(d%$,Math.floor(d/$)),!e)break;if(e.elm!=a)return ba.select(e.elm,!0),ca.isEmpty(e.elm)&&ba.collapse(!0),!0}while(e.elm==a);return!1}function Y(b){if(_){var c=d.splitAt(Z,_.x,_.y,b);a.each(c.cells,p)}}var Z,$,_,aa,ba=h.selection,ca=ba.dom;i=i||ca.getParent(ba.getStart(!0),"table"),n(),j=j||ca.getParent(ba.getStart(!0),"th,td"),j&&(_=T(j),aa=V(),j=r(_.x,_.y)),a.extend(this,{deleteTable:x,split:B,merge:H,insertRow:I,insertRows:J,insertCol:K,insertCols:L,splitCols:Y,deleteCols:O,deleteRows:P,cutRows:Q,copyRows:R,pasteRows:S,getPos:T,setStartCell:U,setEndCell:W,moveRelIdx:X,refresh:n})}}),g("7",["6","1","4"],function(a,b,c){return function(d,e){function f(a){d.getBody().style.webkitUserSelect="",(a||p)&&(d.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected"),p=!1)}function g(a,b){return!(!a||!b)&&a===o.getParent(b,"table")}function h(b){var c,f,h=b.target;if(!m&&!n&&h!==l&&(l=h,k&&j)){if(f=o.getParent(h,"td,th"),g(k,f)||(f=o.getParent(k,"td,th")),j===f&&!p)return;if(e(!0),g(k,f)){b.preventDefault(),i||(i=new a(d,k,j),d.getBody().style.webkitUserSelect="none"),i.setEndCell(f),p=!0,c=d.selection.getSel();try{c.removeAllRanges?c.removeAllRanges():c.empty()}catch(a){}}}}var i,j,k,l,m,n,o=d.dom,p=!0,q=function(){j=i=k=l=null,e(!1)};return d.on("SelectionChange",function(a){p&&a.stopImmediatePropagation()},!0),d.on("MouseDown",function(a){2==a.button||m||n||(f(),j=o.getParent(a.target,"td,th"),k=o.getParent(j,"table"))}),d.on("mouseover",h),d.on("remove",function(){o.unbind(d.getDoc(),"mouseover",h),f()}),d.on("MouseUp",function(){function a(a,d){var f=new b(a,a);do{if(3==a.nodeType&&0!==c.trim(a.nodeValue).length)return void(d?e.setStart(a,0):e.setEnd(a,a.nodeValue.length));if("BR"==a.nodeName)return void(d?e.setStartBefore(a):e.setEndBefore(a))}while(a=d?f.next():f.prev())}var e,f,g,h,k,l=d.selection;if(j){if(i&&(d.getBody().style.webkitUserSelect=""),f=o.select("td[data-mce-selected],th[data-mce-selected]"),f.length>0){e=o.createRng(),h=f[0],e.setStartBefore(h),e.setEndAfter(h),a(h,1),g=new b(h,o.getParent(f[0],"table"));do if("TD"==h.nodeName||"TH"==h.nodeName){if(!o.getAttrib(h,"data-mce-selected"))break;k=h}while(h=g.next());a(k),l.setRng(e)}d.nodeChanged(),q()}}),d.on("KeyUp Drop SetContent",function(a){f("setcontent"==a.type),q(),m=!1}),d.on("ObjectResizeStart ObjectResized",function(a){m="objectresized"!=a.type}),d.on("dragstart",function(){n=!0}),d.on("drop dragend",function(){n=!1}),{clear:f}}}),g("8",["4","2"],function(a,b){var c=a.each;return function(d){function e(){var a=d.settings.color_picker_callback;if(a)return function(){var b=this;a.call(d,function(a){b.value(a).fire("change")},b.value())}}function f(a){return{title:"Advanced",type:"form",defaults:{onchange:function(){l(a,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}}function g(a){return a?a.replace(/px$/,""):""}function h(a){return/^[0-9]+$/.test(a)&&(a+="px"),a}function i(a){c("left center right".split(" "),function(b){d.formatter.remove("align"+b,{},a)})}function j(a){c("top middle bottom".split(" "),function(b){d.formatter.remove("valign"+b,{},a)})}function k(b,c,d){function e(b,d){return d=d||[],a.each(b,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d}return e(b,d||[])}function l(a,b,c){var d=b.toJSON(),e=a.parseStyle(d.style);c?(b.find("#borderColor").value(e["border-color"]||"")[0].fire("change"),b.find("#backgroundColor").value(e["background-color"]||"")[0].fire("change")):(e["border-color"]=d.borderColor,e["background-color"]=d.backgroundColor),b.find("#style").value(a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}function m(a,b,c){var d=a.parseStyle(a.getAttrib(c,"style"));d["border-color"]&&(b.borderColor=d["border-color"]),d["background-color"]&&(b.backgroundColor=d["background-color"]),b.style=a.serializeStyle(d)}function n(a,b,d){var e=a.parseStyle(a.getAttrib(b,"style"));c(d,function(a){e[a.name]=a.value}),a.setAttrib(b,"style",a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}var o=this;o.tableProps=function(){o.table(!0)},o.table=function(e){function j(){function c(a,b,d){if("TD"===a.tagName||"TH"===a.tagName)v.setStyle(a,b,d);else if(a.children)for(var e=0;e<a.children.length;e++)c(a.children[e],b,d)}var e;l(v,this),w=a.extend(w,this.toJSON()),w["class"]===!1&&delete w["class"],d.undoManager.transact(function(){if(p||(p=d.plugins.table.insertTable(w.cols||1,w.rows||1)),d.dom.setAttribs(p,{style:w.style,"class":w["class"]}),d.settings.table_style_by_css){if(u=[],u.push({name:"border",value:w.border}),u.push({name:"border-spacing",value:h(w.cellspacing)}),n(v,p,u),v.setAttribs(p,{"data-mce-border-color":w.borderColor,"data-mce-cell-padding":w.cellpadding,"data-mce-border":w.border}),p.children)for(var a=0;a<p.children.length;a++)c(p.children[a],"border",w.border),c(p.children[a],"padding",h(w.cellpadding))}else d.dom.setAttribs(p,{border:w.border,cellpadding:w.cellpadding,cellspacing:w.cellspacing});v.getAttrib(p,"width")&&!d.settings.table_style_by_css?v.setAttrib(p,"width",g(w.width)):v.setStyle(p,"width",h(w.width)),v.setStyle(p,"height",h(w.height)),e=v.select("caption",p)[0],e&&!w.caption&&v.remove(e),!e&&w.caption&&(e=v.create("caption"),e.innerHTML=b.ie?"\xa0":'<br data-mce-bogus="1"/>',p.insertBefore(e,p.firstChild)),i(p),w.align&&d.formatter.apply("align"+w.align,{},p),d.focus(),d.addVisual()})}function o(a,b){function c(a,c){for(var d=0;d<c.length;d++){var e=v.getStyle(c[d],b);if("undefined"==typeof a&&(a=e),a!=e)return""}return a}var e,f=d.dom.select("td,th",a);return e=c(e,f)}var p,q,r,s,t,u,v=d.dom,w={};e===!0?(p=v.getParent(d.selection.getStart(),"table"),p&&(w={width:g(v.getStyle(p,"width")||v.getAttrib(p,"width")),height:g(v.getStyle(p,"height")||v.getAttrib(p,"height")),cellspacing:g(v.getStyle(p,"border-spacing")||v.getAttrib(p,"cellspacing")),cellpadding:v.getAttrib(p,"data-mce-cell-padding")||v.getAttrib(p,"cellpadding")||o(p,"padding"),border:v.getAttrib(p,"data-mce-border")||v.getAttrib(p,"border")||o(p,"border"),borderColor:v.getAttrib(p,"data-mce-border-color"),caption:!!v.select("caption",p)[0],"class":v.getAttrib(p,"class")},c("left center right".split(" "),function(a){d.formatter.matchNode(p,"align"+a)&&(w.align=a)}))):(q={label:"Cols",name:"cols"},r={label:"Rows",name:"rows"}),d.settings.table_class_list&&(w["class"]&&(w["class"]=w["class"].replace(/\s*mce\-item\-table\s*/g,"")),s={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"table",classes:[a.value]})})})}),t={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:d.settings.table_appearance_options!==!1?[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},s]},d.settings.table_advtab!==!1?(m(v,w,p),d.windowManager.open({title:"Table properties",data:w,bodyType:"tabpanel",body:[{title:"General",type:"form",items:t},f(v)],onsubmit:j})):d.windowManager.open({title:"Table properties",data:w,body:t,onsubmit:j})},o.merge=function(a,b){d.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var c=this.toJSON();d.undoManager.transact(function(){a.merge(b,c.cols,c.rows)})}})},o.cell=function(){function b(a,b,c){(1===s.length||c)&&r.setAttrib(a,b,c)}function e(a,b,c){(1===s.length||c)&&r.setStyle(a,b,c)}function n(){l(r,this),p=a.extend(p,this.toJSON()),d.undoManager.transact(function(){c(s,function(a){b(a,"scope",p.scope),b(a,"style",p.style),b(a,"class",p["class"]),e(a,"width",h(p.width)),e(a,"height",h(p.height)),p.type&&a.nodeName.toLowerCase()!==p.type&&(a=r.rename(a,p.type)),1===s.length&&(i(a),j(a)),p.align&&d.formatter.apply("align"+p.align,{},a),p.valign&&d.formatter.apply("valign"+p.valign,{},a)}),d.focus()})}var o,p,q,r=d.dom,s=[];if(s=d.dom.select("td[data-mce-selected],th[data-mce-selected]"),o=d.dom.getParent(d.selection.getStart(),"td,th"),!s.length&&o&&s.push(o),o=o||s[0]){s.length>1?p={width:"",height:"",scope:"","class":"",align:"",style:"",type:o.nodeName.toLowerCase()}:(p={width:g(r.getStyle(o,"width")||r.getAttrib(o,"width")),height:g(r.getStyle(o,"height")||r.getAttrib(o,"height")),scope:r.getAttrib(o,"scope"),"class":r.getAttrib(o,"class")},p.type=o.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(o,"align"+a)&&(p.align=a)}),c("top middle bottom".split(" "),function(a){d.formatter.matchNode(o,"valign"+a)&&(p.valign=a)}),m(r,p,o)),d.settings.table_cell_class_list&&(q={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_cell_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"td",classes:[a.value]})})})});var t={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},q]};d.settings.table_cell_advtab!==!1?d.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:p,body:[{title:"General",type:"form",items:t},f(r)],onsubmit:n}):d.windowManager.open({title:"Cell properties",data:p,body:t,onsubmit:n})}},o.row=function(){function b(a,b,c){(1===u.length||c)&&t.setAttrib(a,b,c)}function e(a,b,c){(1===u.length||c)&&t.setStyle(a,b,c)}function j(){var f,g,j;l(t,this),r=a.extend(r,this.toJSON()),d.undoManager.transact(function(){var a=r.type;c(u,function(c){b(c,"scope",r.scope),b(c,"style",r.style),b(c,"class",r["class"]),e(c,"height",h(r.height)),a!==c.parentNode.nodeName.toLowerCase()&&(f=t.getParent(c,"table"),g=c.parentNode,j=t.select(a,f)[0],j||(j=t.create(a),f.firstChild?f.insertBefore(j,f.firstChild):f.appendChild(j)),j.appendChild(c),g.hasChildNodes()||t.remove(g)),1===u.length&&i(c),r.align&&d.formatter.apply("align"+r.align,{},c)}),d.focus()})}var n,o,p,q,r,s,t=d.dom,u=[];n=d.dom.getParent(d.selection.getStart(),"table"),o=d.dom.getParent(d.selection.getStart(),"td,th"),c(n.rows,function(a){c(a.cells,function(b){if(t.getAttrib(b,"data-mce-selected")||b==o)return u.push(a),!1})}),p=u[0],p&&(u.length>1?r={height:"",scope:"","class":"",align:"",type:p.parentNode.nodeName.toLowerCase()}:(r={height:g(t.getStyle(p,"height")||t.getAttrib(p,"height")),scope:t.getAttrib(p,"scope"),"class":t.getAttrib(p,"class")},r.type=p.parentNode.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(p,"align"+a)&&(r.align=a)}),m(t,r,p)),d.settings.table_row_class_list&&(q={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_row_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"tr",classes:[a.value]})})})}),s={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},q]},d.settings.table_row_advtab!==!1?d.windowManager.open({title:"Row properties",data:r,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},f(t)],onsubmit:j}):d.windowManager.open({title:"Row properties",data:r,body:s,onsubmit:j}))}}}),g("9",["4","5"],function(a,b){var c;return function(d){function e(a,b){return{index:a,y:d.dom.getPos(b).y}}function f(a,b){return{index:a,y:d.dom.getPos(b).y+b.offsetHeight}}function g(a,b){return{index:a,x:d.dom.getPos(b).x}}function h(a,b){return{index:a,x:d.dom.getPos(b).x+b.offsetWidth}}function i(){var a=d.getBody().dir;return"rtl"===a}function j(){return d.inline}function k(){return j?d.getBody().ownerDocument.body:d.getBody()}function l(a,b){return i()?h(a,b):g(a,b)}function m(a,b){return i()?g(a,b):h(a,b)}function n(a,b){return o(a,"width")/o(b,"width")*100}function o(a,b){var c=d.dom.getStyle(a,b,!0),e=parseInt(c,10);return e}function p(a){var b=o(a,"width"),c=o(a.parentElement,"width");return b/c*100}function q(a,b){var c=o(a,"width");return b/c*100}function r(a,b){var c=o(a.parentElement,"width");return b/c*100}function s(a,b,c){for(var d=[],e=1;e<c.length;e++){var f=c[e].element;d.push(a(e-1,f))}var g=c[c.length-1];return d.push(b(c.length-1,g.element)),d}function t(){var b=d.dom.select("."+la,k());a.each(b,function(a){d.dom.remove(a)})}function u(a){t(),E(a)}function v(a,b,c,d,e,f,g,h){var i={"data-mce-bogus":"all","class":la+" "+a,unselectable:"on","data-mce-resize":!1,style:"cursor: "+b+"; margin: 0; padding: 0; position: absolute; left: "+c+"px; top: "+d+"px; height: "+e+"px; width: "+f+"px; "};return i[g]=h,i}function w(b,c,e){a.each(b,function(a){var b=e.x,f=a.y-ua/2,g=ua,h=c;d.dom.add(k(),"div",v(ma,na,b,f,g,h,oa,a.index))})}function x(b,c,e){a.each(b,function(a){var b=a.x-ua/2,f=e.y,g=c,h=ua;d.dom.add(k(),"div",v(qa,ra,b,f,g,h,sa,a.index))})}function y(b){return a.map(b.rows,function(b){var c=a.map(b.cells,function(a){var b=a.hasAttribute("rowspan")?parseInt(a.getAttribute("rowspan"),10):1,c=a.hasAttribute("colspan")?parseInt(a.getAttribute("colspan"),10):1;return{element:a,rowspan:b,colspan:c}});return{element:b,cells:c}})}function z(b){function c(a,b){return a+","+b}function d(a,b){return g[c(a,b)]}function e(){var b=[];return a.each(h,function(a){b=b.concat(a.cells)}),b}function f(){return h}var g={},h=[],i=0,j=0;return a.each(b,function(b,d){var e=[];a.each(b.cells,function(a){for(var b=0;void 0!==g[c(d,b)];)b++;for(var f={element:a.element,colspan:a.colspan,rowspan:a.rowspan,rowIndex:d,colIndex:b},h=0;h<a.colspan;h++)for(var k=0;k<a.rowspan;k++){var l=d+k,m=b+h;g[c(l,m)]=f,i=Math.max(i,l+1),j=Math.max(j,m+1)}e.push(f)}),h.push({element:b.element,cells:e})}),{grid:{maxRows:i,maxCols:j},getAt:d,getAllCells:e,getAllRows:f}}function A(a,b){for(var c=[],d=a;d<b;d++)c.push(d);return c}function B(a,b,c){for(var d,e=a(),f=0;f<e.length;f++)b(e[f])&&(d=e[f]);return d?d:c()}function C(b){var c=A(0,b.grid.maxCols),d=A(0,b.grid.maxRows);return a.map(c,function(a){function c(){for(var c=[],e=0;e<d.length;e++){var f=b.getAt(e,a);f&&f.colIndex===a&&c.push(f)}return c}function e(a){return 1===a.colspan}function f(){for(var c,e=0;e<d.length;e++)if(c=b.getAt(e,a))return c;return null}return B(c,e,f)})}function D(b){var c=A(0,b.grid.maxCols),d=A(0,b.grid.maxRows);return a.map(d,function(a){function d(){for(var d=[],e=0;e<c.length;e++){var f=b.getAt(a,e);f&&f.rowIndex===a&&d.push(f)}return d}function e(a){return 1===a.rowspan}function f(){return b.getAt(a,0)}return B(d,e,f)})}function E(a){var b=y(a),c=z(b),g=D(c),h=C(c),i=d.dom.getPos(a),j=g.length>0?s(e,f,g):[],k=h.length>0?s(l,m,h):[];w(j,a.offsetWidth,i),x(k,a.offsetHeight,i)}function F(a,b,c,d){if(b<0||b>=a.length-1)return"";var e=a[b];if(e)e={value:e,delta:0};else for(var f=a.slice(0,b).reverse(),g=0;g<f.length;g++)f[g]&&(e={value:f[g],delta:g+1});var h=a[b+1];if(h)h={value:h,delta:1};else for(var i=a.slice(b+1),j=0;j<i.length;j++)i[j]&&(h={value:i[j],delta:j+1});var k=h.delta-e.delta,l=Math.abs(h.value-e.value)/k;return c?l/o(d,"width")*100:l}function G(a,b){var c=d.dom.getStyle(a,b);return c||(c=d.dom.getAttrib(a,b)),c||(c=d.dom.getStyle(a,b,!0)),c}function H(a,b,c){var d=G(a,"width"),e=parseInt(d,10),f=b?n(a,c):o(a,"width");return(b&&!Q(d)||!b&&!R(d))&&(e=0),!isNaN(e)&&e>0?e:f}function I(b,c,d){for(var e=C(b),f=a.map(e,function(a){return l(a.colIndex,a.element).x}),g=[],h=0;h<e.length;h++){var i=e[h].element.hasAttribute("colspan")?parseInt(e[h].element.getAttribute("colspan"),10):1,j=i>1?F(f,h):H(e[h].element,c,d);j=j?j:va,g.push(j)}return g}function J(a){var b=G(a,"height"),c=parseInt(b,10);return Q(b)&&(c=0),!isNaN(c)&&c>0?c:o(a,"height")}function K(b){for(var c=D(b),d=a.map(c,function(a){return e(a.rowIndex,a.element).y}),f=[],g=0;g<c.length;g++){var h=c[g].element.hasAttribute("rowspan")?parseInt(c[g].element.getAttribute("rowspan"),10):1,i=h>1?F(d,g):J(c[g].element);i=i?i:wa,f.push(i)}return f}function L(b,c,d,e,f){function g(b){return a.map(b,function(){return 0})}function h(){var a;if(f)a=[100-l[0]];else{var b=Math.max(e,l[0]+d);a=[b-l[0]]}return a}function i(a,b){var c,f=g(l.slice(0,a)),h=g(l.slice(b+1));if(d>=0){var i=Math.max(e,l[b]-d);c=f.concat([d,i-l[b]]).concat(h)}else{var j=Math.max(e,l[a]+d),k=l[a]-j;c=f.concat([j-l[a],k]).concat(h)}return c}function j(a,b){var c,f=g(l.slice(0,b));if(d>=0)c=f.concat([d]);else{var h=Math.max(e,l[b]+d);c=f.concat([h-l[b]])}return c}var k,l=b.slice(0);return k=0===b.length?[]:1===b.length?h():0===c?i(0,1):c>0&&c<b.length-1?i(c,c+1):c===b.length-1?j(c-1,c):[]}function M(a,b,c){for(var d=0,e=a;e<b;e++)d+=c[e];return d}function N(b,c){var d=b.getAllCells();return a.map(d,function(a){var b=M(a.colIndex,a.colIndex+a.colspan,c);return{element:a.element,width:b,colspan:a.colspan}})}function O(b,c){var d=b.getAllCells();return a.map(d,function(a){var b=M(a.rowIndex,a.rowIndex+a.rowspan,c);return{element:a.element,height:b,rowspan:a.rowspan}})}function P(b,c){var d=b.getAllRows();return a.map(d,function(a,b){return{element:a.element,height:c[b]}})}function Q(a){return ya.test(a)}function R(a){return za.test(a)}function S(b,c,e){function f(b,c){a.each(b,function(a){d.dom.setStyle(a.element,"width",a.width+c),d.dom.setAttrib(a.element,"width",null)})}function g(){return e<k.grid.maxCols-1?p(b):p(b)+r(b,c)}function h(){return e<k.grid.maxCols-1?o(b,"width"):o(b,"width")+c}function i(a,c,f){e!=k.grid.maxCols-1&&f||(d.dom.setStyle(b,"width",a+c),d.dom.setAttrib(b,"width",null))}for(var j=y(b),k=z(j),l=Q(b.width)||Q(b.style.width),m=I(k,l,b),n=l?q(b,c):c,s=L(m,e,n,va,l,b),t=[],u=0;u<s.length;u++)t.push(s[u]+m[u]);var v=N(k,t),w=l?"%":"px",x=l?g():h();d.undoManager.transact(function(){f(v,w),i(x,w,l)})}function T(b,c,e){for(var f=y(b),g=z(f),h=K(g),i=[],j=0,k=0;k<h.length;k++)i.push(k===e?c+h[k]:h[k]),j+=j[k];var l=O(g,i),m=P(g,i);d.undoManager.transact(function(){a.each(m,function(a){d.dom.setStyle(a.element,"height",a.height+"px"),d.dom.setAttrib(a.element,"height",null)}),a.each(l,function(a){d.dom.setStyle(a.element,"height",a.height+"px"),d.dom.setAttrib(a.element,"height",null)}),d.dom.setStyle(b,"height",j+"px"),d.dom.setAttrib(b,"height",null)})}function U(){fa=setTimeout(function(){Y()},200)}function V(){clearTimeout(fa)}function W(){var a=document.createElement("div");return a.setAttribute("style","margin: 0; padding: 0; position: fixed; left: 0px; top: 0px; height: 100%; width: 100%;"),a.setAttribute("data-mce-bogus","all"),a}function X(a,b){d.dom.bind(a,"mouseup",function(){Y()}),d.dom.bind(a,"mousemove",function(a){V(),ga&&b(a)}),d.dom.bind(a,"mouseout",function(){U()})}function Y(){if(d.dom.remove(ha),ga){d.dom.removeClass(ia,xa),ga=!1;var a,b;if($(ia)){var e=parseInt(d.dom.getAttrib(ia,ta),10),f=d.dom.getPos(ia).x;a=parseInt(d.dom.getAttrib(ia,sa),10),b=i()?e-f:f-e,Math.abs(b)>=1&&S(c,b,a)}else if(_(ia)){var g=parseInt(d.dom.getAttrib(ia,pa),10),h=d.dom.getPos(ia).y;a=parseInt(d.dom.getAttrib(ia,oa),10),b=h-g,Math.abs(b)>=1&&T(c,b,a)}u(c),d.nodeChanged()}}function Z(a,b){ha=ha?ha:W(),ga=!0,d.dom.addClass(a,xa),ia=a,X(ha,b),d.dom.add(k(),ha)}function $(a){return d.dom.hasClass(a,qa)}function _(a){return d.dom.hasClass(a,ma)}function aa(a){ja=void 0!==ja?ja:a.clientX;var b=a.clientX-ja;ja=a.clientX;var c=d.dom.getPos(ia).x;d.dom.setStyle(ia,"left",c+b+"px")}function ba(a){ka=void 0!==ka?ka:a.clientY;var b=a.clientY-ka;ka=a.clientY;var c=d.dom.getPos(ia).y;d.dom.setStyle(ia,"top",c+b+"px")}function ca(a){ja=void 0,Z(a,aa)}function da(a){ka=void 0,Z(a,ba)}function ea(a){var b=a.target,e=d.getBody();if(d.$.contains(e,c)||c===e)if($(b)){a.preventDefault();var f=d.dom.getPos(b).x;d.dom.setAttrib(b,ta,f),ca(b)}else if(_(b)){a.preventDefault();var g=d.dom.getPos(b).y;d.dom.setAttrib(b,pa,g),da(b)}else t()}var fa,ga,ha,ia,ja,ka,la="mce-resize-bar",ma="mce-resize-bar-row",na="row-resize",oa="data-row",pa="data-initial-top",qa="mce-resize-bar-col",ra="col-resize",sa="data-col",ta="data-initial-left",ua=4,va=10,wa=10,xa="mce-resize-bar-dragging",ya=new RegExp(/(\d+(\.\d+)?%)/),za=new RegExp(/px|em/);
2
- return d.on("init",function(){d.dom.bind(k(),"mousedown",ea)}),d.on("ObjectResized",function(b){var c=b.target;if("TABLE"===c.nodeName){var e=[];a.each(c.rows,function(b){a.each(b.cells,function(a){var b=d.dom.getStyle(a,"width",!0);e.push({cell:a,width:b})})}),a.each(e,function(a){d.dom.setStyle(a.cell,"width",a.width),d.dom.setAttrib(a.cell,"width",null)})}}),d.on("mouseover",function(a){if(!ga){var b=d.dom.getParent(a.target,"table");("TABLE"===a.target.nodeName||b)&&(c=b,u(b))}}),d.on("keydown",function(a){switch(a.keyCode){case b.LEFT:case b.RIGHT:case b.UP:case b.DOWN:t()}}),d.on("remove",function(){t(),d.dom.unbind(k(),"mousedown",ea)}),{adjustWidth:S,adjustHeight:T,clearBars:t,drawBars:E,determineDeltas:L,getTableGrid:z,getTableDetails:y,getWidths:I,getPixelHeights:K,isPercentageBasedSize:Q,isPixelBasedSize:R,recalculateWidths:N,recalculateCellHeights:O,recalculateRowHeights:P}}}),g("e",["b"],function(a){return a("tinymce.util.Delay")}),g("a",["5","e","2","4","c"],function(a,b,c,d,e){var f=d.each,g=e.getSpanVal;return function(h){function i(){function c(c){function d(a,b){var d=a?"previousSibling":"nextSibling",f=h.dom.getParent(b,"tr"),g=f[d];if(g)return r(h,b,g,a),c.preventDefault(),!0;var i=h.dom.getParent(f,"table"),l=f.parentNode,m=l.nodeName.toLowerCase();if("tbody"===m||m===(a?"tfoot":"thead")){var n=e(a,i,l,"tbody");if(null!==n)return j(a,n,b)}return k(a,f,d,i)}function e(a,b,c,d){var e=h.dom.select(">"+d,b),f=e.indexOf(c);if(a&&0===f||!a&&f===e.length-1)return i(a,b);if(f===-1){var g="thead"===c.tagName.toLowerCase()?0:e.length-1;return e[g]}return e[f+(a?-1:1)]}function i(a,b){var c=a?"thead":"tfoot",d=h.dom.select(">"+c,b);return 0!==d.length?d[0]:null}function j(a,b,d){var e=l(b,a);return e&&r(h,d,e,a),c.preventDefault(),!0}function k(a,b,e,f){var g=f[e];if(g)return m(g),!0;var i=h.dom.getParent(f,"td,th");if(i)return d(a,i,c);var j=l(b,!a);return m(j),c.preventDefault(),!1}function l(a,b){var c=a&&a[b?"lastChild":"firstChild"];return c&&"BR"===c.nodeName?h.dom.getParent(c,"td,th"):c}function m(a){h.selection.setCursorLocation(a,0)}function n(){return u==a.UP||u==a.DOWN}function o(a){var b=a.selection.getNode(),c=a.dom.getParent(b,"tr");return null!==c}function p(a){for(var b=0,c=a;c.previousSibling;)c=c.previousSibling,b+=g(c,"colspan");return b}function q(a,b){var c=0,d=0;return f(a.children,function(a,e){if(c+=g(a,"colspan"),d=e,c>b)return!1}),d}function r(a,b,c,d){var e=p(h.dom.getParent(b,"td,th")),f=q(c,e),g=c.childNodes[f],i=l(g,d);m(i||g)}function s(a){var b=h.selection.getNode(),c=h.dom.getParent(b,"td,th"),d=h.dom.getParent(a,"td,th");return c&&c!==d&&t(c,d)}function t(a,b){return h.dom.getParent(a,"TABLE")===h.dom.getParent(b,"TABLE")}var u=c.keyCode;if(n()&&o(h)){var v=h.selection.getNode();b.setEditorTimeout(h,function(){s(v)&&d(!c.shiftKey&&u===a.UP,v,c)},0)}}h.on("KeyDown",function(a){c(a)})}function j(){function a(a,b){var c,d=b.ownerDocument,e=d.createRange();return e.setStartBefore(b),e.setEnd(a.endContainer,a.endOffset),c=d.createElement("body"),c.appendChild(e.cloneContents()),0===c.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}h.on("KeyDown",function(b){var c,d,e=h.dom;37!=b.keyCode&&38!=b.keyCode||(c=h.selection.getRng(),d=e.getParent(c.startContainer,"table"),d&&h.getBody().firstChild==d&&a(c,d)&&(c=e.createRng(),c.setStartBefore(d),c.setEndBefore(d),h.selection.setRng(c),b.preventDefault()))})}function k(){h.on("KeyDown SetContent VisualAid",function(){var a;for(a=h.getBody().lastChild;a;a=a.previousSibling)if(3==a.nodeType){if(a.nodeValue.length>0)break}else if(1==a.nodeType&&("BR"==a.tagName||!a.getAttribute("data-mce-bogus")))break;a&&"TABLE"==a.nodeName&&(h.settings.forced_root_block?h.dom.add(h.getBody(),h.settings.forced_root_block,h.settings.forced_root_block_attrs,c.ie&&c.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'):h.dom.add(h.getBody(),"br",{"data-mce-bogus":"1"}))}),h.on("PreProcess",function(a){var b=a.node.lastChild;b&&("BR"==b.nodeName||1==b.childNodes.length&&("BR"==b.firstChild.nodeName||"\xa0"==b.firstChild.nodeValue))&&b.previousSibling&&"TABLE"==b.previousSibling.nodeName&&h.dom.remove(b)})}function l(){function a(a,b,c,d){var e,f,g,h=3,i=a.dom.getParent(b.startContainer,"TABLE");return i&&(e=i.parentNode),f=b.startContainer.nodeType==h&&0===b.startOffset&&0===b.endOffset&&d&&("TR"==c.nodeName||c==e),g=("TD"==c.nodeName||"TH"==c.nodeName)&&!d,f||g}function b(){var b=h.selection.getRng(),c=h.selection.getNode(),d=h.dom.getParent(b.startContainer,"TD,TH");if(a(h,b,c,d)){d||(d=c);for(var e=d.lastChild;e.lastChild;)e=e.lastChild;3==e.nodeType&&(b.setEnd(e,e.data.length),h.selection.setRng(b))}}h.on("KeyDown",function(){b()}),h.on("MouseDown",function(a){2!=a.button&&b()})}function m(){function b(a){h.selection.select(a,!0),h.selection.collapse(!0)}function c(a){h.$(a).empty(),e.paddCell(a)}h.on("keydown",function(e){if((e.keyCode==a.DELETE||e.keyCode==a.BACKSPACE)&&!e.isDefaultPrevented()){var f,g,i,j;if(f=h.dom.getParent(h.selection.getStart(),"table")){if(g=h.dom.select("td,th",f),i=d.grep(g,function(a){return!!h.dom.getAttrib(a,"data-mce-selected")}),0===i.length)return j=h.dom.getParent(h.selection.getStart(),"td,th"),void(h.selection.isCollapsed()&&j&&h.dom.isEmpty(j)&&(e.preventDefault(),c(j),b(j)));e.preventDefault(),h.undoManager.transact(function(){g.length==i.length?h.execCommand("mceTableDelete"):(d.each(i,c),b(i[0]))})}}})}function n(){var b="\ufeff",c=function(a){return h.dom.isEmpty(a)||a.firstChild===a.lastChild&&f(a.firstChild)},d=function(a){return a&&"CAPTION"==a.nodeName&&"TABLE"==a.parentNode.nodeName},e=function(a,b){var c=b.firstChild;do if(c===a)return!0;while(c=c.firstChild);return!1},f=function(a){if(3===a.nodeType){if(a.data===b)return!0;a=a.parentNode}return 1===a.nodeType&&a.hasAttribute("data-mce-caret")},g=function(a){var b=h.selection.getRng();return!b.startOffset&&!b.startContainer.previousSibling&&e(b.startContainer,a)},i=function(a,c){var d;d=c?h.dom.create("p",{"data-mce-caret":"after","data-mce-bogus":"all"},'<br data-mce-bogus="1">'):a.ownerDocument.createTextNode(b),a.appendChild(d)},j=function(a,d){var e=a.lastChild,g=h.selection.getRng(),j=g.startContainer,k=g.startOffset;c(a)?(a.innerHTML=b,j=a.lastChild,k=0):f(e)||i(a,h.dom.isBlock(e)),h.selection.setCursorLocation(j,k)},k=function(a){var b=h.selection.getRng(),c=h.dom.createRng(),d=a.firstChild;b.commonAncestorContainer===a.parentNode&&e(b.startContainer,a)&&(c.setStart(a,0),1===d.nodeType?c.setEnd(a,a.childNodes.length):c.setEnd(d,d.nodeValue.length),h.selection.setRng(c))};h.on("keydown",function(b){if(!(b.keyCode!==a.DELETE&&b.keyCode!==a.BACKSPACE||b.isDefaultPrevented())){var e=h.dom.getParent(h.selection.getStart(),"caption");d(e)&&(h.selection.isCollapsed()?(j(e),(c(e)||b.keyCode===a.BACKSPACE&&g(e))&&b.preventDefault()):(k(e),h.undoManager.transact(function(){h.execCommand("Delete"),j(e)}),b.preventDefault()))}})}n(),m(),c.webkit&&(i(),l()),c.gecko&&(j(),k()),c.ie>9&&(j(),k())}}),g("0",["1","2","3","4","5","6","7","8","9","a"],function(a,b,c,d,e,f,g,h,i,j){function k(a){function c(b){return function(){a.execCommand(b)}}function d(c,d){var e,f,g,h;for(g='<table id="__mce"><tbody>',e=0;e<d;e++){for(g+="<tr>",f=0;f<c;f++)g+="<td>"+(b.ie&&b.ie<10?"&nbsp;":"<br>")+"</td>";g+="</tr>"}return g+="</tbody></table>",a.undoManager.transact(function(){a.insertContent(g),h=a.dom.get("__mce"),a.dom.setAttrib(h,"id",null),a.$("tr",h).each(function(b,c){a.fire("newrow",{node:c}),a.$("th,td",c).each(function(b,c){a.fire("newcell",{node:c})})}),a.dom.setAttribs(h,a.settings.table_default_attributes||{}),a.dom.setStyles(h,a.settings.table_default_styles||{})}),h}function k(b,c,d){function e(){var e,f,g,h={},i=0;f=a.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=f[0],e||(e=a.selection.getStart()),d&&f.length>0?(l(f,function(a){return h[a.parentNode.parentNode.nodeName]=1}),l(h,function(a){i+=a}),g=1!==i):g=!a.dom.getParent(e,c),b.disabled(g),a.selection.selectorChanged(c,function(a){b.disabled(!a)})}a.initialized?e():a.on("init",e)}function m(){k(this,"table")}function n(){k(this,"td,th")}function o(){k(this,"td,th",!0)}function p(){var a="";a='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var b=0;b<10;b++){a+="<tr>";for(var c=0;c<10;c++)a+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*b+c)+'" href="#" data-mce-x="'+c+'" data-mce-y="'+b+'"></a></td>';a+="</tr>"}return a+="</table>",a+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function q(b,c,d){var e,f,g,h,i,j=d.getEl().getElementsByTagName("table")[0],k=d.isRtl()||"tl-tr"==d.parent().rel;for(j.nextSibling.innerHTML=b+1+" x "+(c+1),k&&(b=9-b),f=0;f<10;f++)for(e=0;e<10;e++)h=j.rows[f].childNodes[e].firstChild,i=(k?e>=b:e<=b)&&f<=c,a.dom.toggleClass(h,"mce-active",i),i&&(g=h);return g.parentNode}function r(){a.addButton("tableprops",{title:"Table properties",onclick:z.tableProps,icon:"table"}),a.addButton("tabledelete",{title:"Delete table",onclick:c("mceTableDelete")}),a.addButton("tablecellprops",{title:"Cell properties",onclick:c("mceTableCellProps")}),a.addButton("tablemergecells",{title:"Merge cells",onclick:c("mceTableMergeCells")}),a.addButton("tablesplitcells",{title:"Split cell",onclick:c("mceTableSplitCells")}),a.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:c("mceTableInsertRowBefore")}),a.addButton("tableinsertrowafter",{title:"Insert row after",onclick:c("mceTableInsertRowAfter")}),a.addButton("tabledeleterow",{title:"Delete row",onclick:c("mceTableDeleteRow")}),a.addButton("tablerowprops",{title:"Row properties",onclick:c("mceTableRowProps")}),a.addButton("tablecutrow",{title:"Cut row",onclick:c("mceTableCutRow")}),a.addButton("tablecopyrow",{title:"Copy row",onclick:c("mceTableCopyRow")}),a.addButton("tablepasterowbefore",{title:"Paste row before",onclick:c("mceTablePasteRowBefore")}),a.addButton("tablepasterowafter",{title:"Paste row after",onclick:c("mceTablePasteRowAfter")}),a.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:c("mceTableInsertColBefore")}),a.addButton("tableinsertcolafter",{title:"Insert column after",onclick:c("mceTableInsertColAfter")}),a.addButton("tabledeletecol",{title:"Delete column",onclick:c("mceTableDeleteCol")})}function s(b){var c=a.dom.is(b,"table")&&a.getBody().contains(b);return c}function t(){var b=a.settings.table_toolbar;""!==b&&b!==!1&&(b||(b="tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"),a.addContextToolbar(s,b))}function u(){return w}function v(a){w=a}var w,x,y=this,z=new h(a);!a.settings.object_resizing||a.settings.table_resize_bars===!1||a.settings.object_resizing!==!0&&"table"!==a.settings.object_resizing||(x=i(a)),a.settings.table_grid===!1?a.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",onclick:z.table}):a.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(a){a.aria&&(this.parent().hideAll(),a.stopImmediatePropagation(),z.table())},onshow:function(){q(0,0,this.menu.items()[0])},onhide:function(){var b=this.menu.items()[0].getEl().getElementsByTagName("a");a.dom.removeClass(b,"mce-active"),a.dom.addClass(b[0],"mce-active")},menu:[{type:"container",html:p(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(a){var b,c,d=a.target;"A"==d.tagName.toUpperCase()&&(b=parseInt(d.getAttribute("data-mce-x"),10),c=parseInt(d.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(b=9-b),b===this.lastX&&c===this.lastY||(q(b,c,a.control),this.lastX=b,this.lastY=c))},onclick:function(b){var c=this;"A"==b.target.tagName.toUpperCase()&&(b.preventDefault(),b.stopPropagation(),c.parent().cancel(),a.undoManager.transact(function(){d(c.lastX+1,c.lastY+1)}),a.addVisual())}}]}),a.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:m,onclick:z.tableProps}),a.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:m,cmd:"mceTableDelete"}),a.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:c("mceTableCellProps"),onPostRender:n},{text:"Merge cells",onclick:c("mceTableMergeCells"),onPostRender:o},{text:"Split cell",onclick:c("mceTableSplitCells"),onPostRender:n}]}),a.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:c("mceTableInsertRowBefore"),onPostRender:n},{text:"Insert row after",onclick:c("mceTableInsertRowAfter"),onPostRender:n},{text:"Delete row",onclick:c("mceTableDeleteRow"),onPostRender:n},{text:"Row properties",onclick:c("mceTableRowProps"),onPostRender:n},{text:"-"},{text:"Cut row",onclick:c("mceTableCutRow"),onPostRender:n},{text:"Copy row",onclick:c("mceTableCopyRow"),onPostRender:n},{text:"Paste row before",onclick:c("mceTablePasteRowBefore"),onPostRender:n},{text:"Paste row after",onclick:c("mceTablePasteRowAfter"),onPostRender:n}]}),a.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:c("mceTableInsertColBefore"),onPostRender:n},{text:"Insert column after",onclick:c("mceTableInsertColAfter"),onPostRender:n},{text:"Delete column",onclick:c("mceTableDeleteCol"),onPostRender:n}]});var A=[];l("inserttable tableprops deletetable | cell row column".split(" "),function(b){"|"==b?A.push({text:"-"}):A.push(a.menuItems[b])}),a.addButton("table",{type:"menubutton",title:"Table",menu:A}),b.isIE||a.on("click",function(b){b=b.target,"TABLE"===b.nodeName&&(a.selection.select(b),a.nodeChanged())}),y.quirks=new j(a),a.on("Init",function(){y.cellSelection=new g(a,function(a){a&&x&&x.clearBars()}),y.resizeBars=x}),a.on("PreInit",function(){a.serializer.addAttributeFilter("data-mce-cell-padding,data-mce-border,data-mce-border-color",function(a,b){for(var c=a.length;c--;)a[c].attr(b,null)})}),l({mceTableSplitCells:function(a){a.split()},mceTableMergeCells:function(b){var c;c=a.dom.getParent(a.selection.getStart(),"th,td"),a.dom.select("td[data-mce-selected],th[data-mce-selected]").length?b.merge():z.merge(b,c)},mceTableInsertRowBefore:function(a){a.insertRows(!0)},mceTableInsertRowAfter:function(a){a.insertRows()},mceTableInsertColBefore:function(a){a.insertCols(!0)},mceTableInsertColAfter:function(a){a.insertCols()},mceTableDeleteCol:function(a){a.deleteCols()},mceTableDeleteRow:function(a){a.deleteRows()},mceTableCutRow:function(a){w=a.cutRows()},mceTableCopyRow:function(a){w=a.copyRows()},mceTablePasteRowBefore:function(a){a.pasteRows(w,!0)},mceTablePasteRowAfter:function(a){a.pasteRows(w)},mceSplitColsBefore:function(a){a.splitCols(!0)},mceSplitColsAfter:function(a){a.splitCols(!1)},mceTableDelete:function(a){x&&x.clearBars(),a.deleteTable()}},function(b,c){a.addCommand(c,function(){var c=new f(a);c&&(b(c),a.execCommand("mceRepaint"),y.cellSelection.clear())})}),l({mceInsertTable:z.table,mceTableProps:function(){z.table(!0)},mceTableRowProps:z.row,mceTableCellProps:z.cell},function(b,c){a.addCommand(c,function(a,c){b(c)})}),r(),t(),a.settings.table_tab_navigation!==!1&&a.on("keydown",function(b){var c,d,g,h=a.selection.getStart();if(b.keyCode===e.TAB){if(a.dom.getParent(h,"LI,DT,DD"))return;c=a.dom.getParent(h,"th,td"),c&&(b.preventDefault(),d=new f(a),g=b.shiftKey?-1:1,a.undoManager.transact(function(){!d.moveRelIdx(c,g)&&g>0&&(d.insertRow(),d.refresh(),d.moveRelIdx(c,g))}))}}),y.insertTable=d,y.setClipboardRows=v,y.getClipboardRows=u}var l=d.each;return c.add("table",k),function(){}}),d("0")()}();
1
+ !function(){var a={},b=function(b){for(var c=a[b],e=c.deps,f=c.defn,g=e.length,h=new Array(g),i=0;i<g;++i)h[i]=d(e[i]);var j=f.apply(null,h);if(void 0===j)throw"module ["+b+"] returned undefined";c.instance=j},c=function(b,c,d){if("string"!=typeof b)throw"module id must be a string";if(void 0===c)throw"no dependencies for "+b;if(void 0===d)throw"no definition function for "+b;a[b]={deps:c,defn:d,instance:void 0}},d=function(c){var d=a[c];if(void 0===d)throw"module ["+c+"] was undefined";return void 0===d.instance&&b(c),d.instance},e=function(a,b){for(var c=a.length,e=new Array(c),f=0;f<c;++f)e.push(d(a[f]));b.apply(null,b)},f={};f.bolt={module:{api:{define:c,require:e,demand:d}}};var g=c,h=function(a,b){g(a,[],function(){return b})};h("c",tinymce.util.Tools.resolve),g("1",["c"],function(a){return a("tinymce.dom.TreeWalker")}),g("2",["c"],function(a){return a("tinymce.Env")}),g("3",["c"],function(a){return a("tinymce.PluginManager")}),g("4",["c"],function(a){return a("tinymce.util.Tools")}),g("5",["c"],function(a){return a("tinymce.util.VK")}),g("a",["2"],function(a){function b(b){(!a.ie||a.ie>9)&&(b.hasChildNodes()||(b.innerHTML='<br data-mce-bogus="1" />'))}var c=function(a){return function(b,c){b&&(c=parseInt(c,10),1===c||0===c?b.removeAttribute(a,1):b.setAttribute(a,c,1))}},d=function(a){return function(b){return parseInt(b.getAttribute(a)||1,10)}};return{setColSpan:c("colSpan"),setRowSpan:c("rowspan"),getColSpan:d("colSpan"),getRowSpan:d("rowSpan"),setSpanVal:function(a,b,d){c(b)(a,d)},getSpanVal:function(a,b){return d(b)(a)},paddCell:b}}),g("d",["4","a"],function(a,b){var c=function(a,b,c){return a[c]?a[c][b]:null},d=function(a,b,d){var e=c(a,b,d);return e?e.elm:null},e=function(a,b,e,f){var g,h,i=0,j=d(a,b,e);for(g=e;(f>0?g<a.length:g>=0)&&(h=c(a,b,g),j===h.elm);g+=f)i++;return i},f=function(a,b,c){for(var d,e=a[c],f=b;f<e.length;f++)if(d=e[f],d.real)return d.elm;return null},g=function(a,c){for(var d,f=[],g=a[c],h=0;h<g.length;h++)d=g[h],f.push({elm:d.elm,above:e(a,h,c,-1)-1,below:e(a,h,c,1)-1}),h+=b.getColSpan(d.elm)-1;return f},h=function(a,c){var d=a.elm.ownerDocument,e=d.createElement("td");return b.setColSpan(e,b.getColSpan(a.elm)),b.setRowSpan(e,c),b.paddCell(e),e},i=function(a,b,c,d){var e=f(a,c+1,d);e?e.parentNode.insertBefore(b,e):(e=f(a,0,d),e.parentNode.appendChild(b))},j=function(a,c,d,e){if(0!==c.above){b.setRowSpan(c.elm,c.above);var f=h(c,c.below+1);return i(a,f,d,e),f}return null},k=function(a,c,d,e){if(0!==c.below){b.setRowSpan(c.elm,c.above+1);var f=h(c,c.below);return i(a,f,d,e+1),f}return null},l=function(b,c,e,f){var h=g(b,e),i=d(b,c,e).parentNode,l=[];return a.each(h,function(a,c){var d=f?j(b,a,c,e):k(b,a,c,e);null!==d&&l.push(l)}),{cells:l,row:i}};return{splitAt:l}}),g("6",["4","2","a","d"],function(a,b,c,d){var e=a.each,f=c.getSpanVal,g=c.setSpanVal;return function(h,i,j){function k(){h.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected")}function l(a){return a===h.getBody()}function m(b,c){return b?(c=a.map(c.split(","),function(a){return a.toLowerCase()}),a.grep(b.childNodes,function(b){return a.inArray(c,b.nodeName.toLowerCase())!==-1})):[]}function n(){var a=0;Z=[],$=0,e(["thead","tbody","tfoot"],function(b){var c=m(i,b)[0],d=m(c,"tr");e(d,function(c,d){d+=a,e(m(c,"td,th"),function(a,c){var e,g,h,i;if(Z[d])for(;Z[d][c];)c++;for(h=f(a,"rowspan"),i=f(a,"colspan"),g=d;g<d+h;g++)for(Z[g]||(Z[g]=[]),e=c;e<c+i;e++)Z[g][e]={part:b,real:g==d&&e==c,elm:a,rowspan:h,colspan:i};$=Math.max($,c+1)})}),a+=d.length})}function o(a){return h.fire("newrow",{node:a}),a}function p(a){return h.fire("newcell",{node:a}),a}function q(a,b){return a=a.cloneNode(b),a.removeAttribute("id"),a}function r(a,b){var c;if(c=Z[b])return c[a]}function s(a,b){return a[b]?a[b]:null}function t(a,b){for(var c=[],d=0;d<a.length;d++)c.push(r(b,d));return c}function u(a){return a&&(!!ca.getAttrib(a.elm,"data-mce-selected")||a==j)}function v(){var a=[];return e(i.rows,function(b){e(b.cells,function(c){if(ca.getAttrib(c,"data-mce-selected")||j&&c==j.elm)return a.push(b),!1})}),a}function w(){var a=0;return e(Z,function(b){if(e(b,function(b){u(b)&&a++}),a)return!1}),a}function x(){var a=ca.createRng();l(i)||(a.setStartAfter(i),a.setEndAfter(i),ba.setRng(a),ca.remove(i))}function y(d){var f,i={};return h.settings.table_clone_elements!==!1&&(i=a.makeMap((h.settings.table_clone_elements||"strong em b i span font h1 h2 h3 h4 h5 h6 p div").toUpperCase(),/[ ,]/)),a.walk(d,function(a){var c;if(3==a.nodeType)return e(ca.getParents(a.parentNode,null,d).reverse(),function(a){i[a.nodeName]&&(a=q(a,!1),f?c&&c.appendChild(a):f=c=a,c=a)}),c&&(c.innerHTML=b.ie&&b.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'),!1},"childNodes"),d=q(d,!1),p(d),g(d,"rowSpan",1),g(d,"colSpan",1),f?d.appendChild(f):c.paddCell(d),d}function z(){var a,b=ca.createRng();return e(ca.select("tr",i),function(a){0===a.cells.length&&ca.remove(a)}),0===ca.select("tr",i).length?(b.setStartBefore(i),b.setEndBefore(i),ba.setRng(b),void ca.remove(i)):(e(ca.select("thead,tbody,tfoot",i),function(a){0===a.rows.length&&ca.remove(a)}),n(),void(_&&(a=Z[Math.min(Z.length-1,_.y)],a&&(ba.select(a[Math.min(a.length-1,_.x)].elm,!0),ba.collapse(!0)))))}function A(a,b,c,d){var e,f,g,h,i;for(e=Z[b][a].elm.parentNode,g=1;g<=c;g++)if(e=ca.getNext(e,"tr")){for(f=a;f>=0;f--)if(i=Z[b+g][f].elm,i.parentNode==e){for(h=1;h<=d;h++)ca.insertAfter(y(i),i);break}if(f==-1)for(h=1;h<=d;h++)e.insertBefore(y(e.cells[0]),e.cells[0])}}function B(){e(Z,function(a,b){e(a,function(a,c){var d,e,h;if(u(a)&&(a=a.elm,d=f(a,"colspan"),e=f(a,"rowspan"),d>1||e>1)){for(g(a,"rowSpan",1),g(a,"colSpan",1),h=0;h<d-1;h++)ca.insertAfter(y(a),a);A(c,b,e-1,d)}})})}function C(a,b,c){for(var d=[],e=0;e<a.length;e++)(e<b||e>c)&&d.push(a[e]);return d}function D(b){return a.grep(b,function(a){return a.real===!1})}function E(a){for(var b=[],c=0;c<a.length;c++){var d=a[c].elm;b[b.length-1]!==d&&b.push(d)}return b}function F(b,d,e,f,g){var h=0;if(g-e<1)return 0;for(var i=e+1;i<=g;i++){var j=C(s(b,i),d,f),k=D(j);j.length===k.length&&(a.each(E(k),function(a){c.setRowSpan(a,c.getRowSpan(a)-1)}),h++)}return h}function G(b,d,e,f,g){var h=0;if(f-d<1)return 0;for(var i=d+1;i<=f;i++){var j=C(t(b,i),e,g),k=D(j);j.length===k.length&&(a.each(E(k),function(a){c.setColSpan(a,c.getColSpan(a)-1)}),h++)}return h}function H(b,c,d){var f,h,i,j,k,l,m,o,p,q,s,t,v;if(b?(f=T(b),h=f.x,i=f.y,j=h+(c-1),k=i+(d-1)):(_=aa=null,e(Z,function(a,b){e(a,function(a,c){u(a)&&(_||(_={x:c,y:b}),aa={x:c,y:b})})}),_&&(h=_.x,i=_.y,j=aa.x,k=aa.y)),o=r(h,i),p=r(j,k),o&&p&&o.part==p.part){B(),n(),t=F(Z,h,i,j,k),v=G(Z,h,i,j,k),o=r(h,i).elm;var w=j-h-v+1,x=k-i-t+1;for(w===$&&x===Z.length&&(w=1,x=1),w===$&&x>1&&(x=1),g(o,"colSpan",w),g(o,"rowSpan",x),m=i;m<=k;m++)for(l=h;l<=j;l++)Z[m]&&Z[m][l]&&(b=Z[m][l].elm,b!=o&&(q=a.grep(b.childNodes),e(q,function(a){o.appendChild(a)}),q.length&&(q=a.grep(o.childNodes),s=0,e(q,function(a){"BR"==a.nodeName&&s++<q.length-1&&o.removeChild(a)})),ca.remove(b)));z()}}function I(a){var b,c,d,h,i,j,k,l,m,n;if(e(Z,function(c,d){if(e(c,function(c){if(u(c)&&(c=c.elm,i=c.parentNode,j=o(q(i,!1)),b=d,a))return!1}),a)return void 0===b}),void 0!==b){for(h=0,n=0;h<Z[0].length;h+=n)if(Z[b][h]&&(c=Z[b][h].elm,n=f(c,"colspan"),c!=d)){if(a){if(b>0&&Z[b-1][h]&&(l=Z[b-1][h].elm,m=f(l,"rowSpan"),m>1)){g(l,"rowSpan",m+1);continue}}else if(m=f(c,"rowspan"),m>1){g(c,"rowSpan",m+1);continue}k=y(c),g(k,"colSpan",c.colSpan),j.appendChild(k),d=c}j.hasChildNodes()&&(a?i.parentNode.insertBefore(j,i):ca.insertAfter(j,i))}}function J(a,b){b=b||v().length||1;for(var c=0;c<b;c++)I(a)}function K(a){var b,c;e(Z,function(c){if(e(c,function(c,d){if(u(c)&&(b=d,a))return!1}),a)return void 0===b}),e(Z,function(d,e){var h,i,j;d[b]&&(h=d[b].elm,h!=c&&(j=f(h,"colspan"),i=f(h,"rowspan"),1==j?a?(h.parentNode.insertBefore(y(h),h),A(b,e,i-1,j)):(ca.insertAfter(y(h),h),A(b,e,i-1,j)):g(h,"colSpan",h.colSpan+1),c=h))})}function L(a,b){b=b||w()||1;for(var c=0;c<b;c++)K(a)}function M(b){return a.grep(N(b),u)}function N(a){var b=[];return e(a,function(a){e(a,function(a){b.push(a)})}),b}function O(){var b=[];if(l(i)){if(1==Z[0].length)return;if(M(Z).length==N(Z).length)return}e(Z,function(c){e(c,function(c,d){u(c)&&a.inArray(b,d)===-1&&(e(Z,function(a){var b,c=a[d].elm;b=f(c,"colSpan"),b>1?g(c,"colSpan",b-1):ca.remove(c)}),b.push(d))})}),z()}function P(){function a(a){var b,c;e(a.cells,function(a){var c=f(a,"rowSpan");c>1&&(g(a,"rowSpan",c-1),b=T(a),A(b.x,b.y,1,1))}),b=T(a.cells[0]),e(Z[b.y],function(a){var b;a=a.elm,a!=c&&(b=f(a,"rowSpan"),b<=1?ca.remove(a):g(a,"rowSpan",b-1),c=a)})}var b;b=v(),l(i)&&b.length==i.rows.length||(e(b.reverse(),function(b){a(b)}),z())}function Q(){var a=v();if(!l(i)||a.length!=i.rows.length)return ca.remove(a),z(),a}function R(){var a=v();return e(a,function(b,c){a[c]=q(b,!0)}),a}function S(b,c){var h,i,j,l=[];b&&(h=d.splitAt(Z,_.x,_.y,c),i=h.row,a.each(h.cells,p),j=a.map(b,function(a){return a.cloneNode(!0)}),e(j,function(a,b,d){var h,j,k,m,n=a.cells.length,q=0;for(o(a),h=0;h<n;h++)j=a.cells[h],m=f(j,"colspan"),k=f(j,"rowspan"),q+=m,k>1&&(q--,b+k>d.length?(k=d.length-b,g(j,"rowSpan",k),l.push(d.length-1)):l.push(b+k-1)),p(j);for(e(l,function(a){b<=a&&q++}),h=q;h<$;h++)a.appendChild(y(a.cells[n-1]));for(h=$;h<q;h++)j=a.cells[a.cells.length-1],m=f(j,"colspan"),m>1?g(j,"colSpan",m-1):ca.remove(j);c?i.parentNode.insertBefore(a,i):i=ca.insertAfter(a,i)}),k())}function T(a){var b;return e(Z,function(c,d){return e(c,function(c,e){if(c.elm==a)return b={x:e,y:d},!1}),!b}),b}function U(a){_=T(a)}function V(){var a,b;return a=b=0,e(Z,function(c,d){e(c,function(c,e){var f,g;u(c)&&(c=Z[d][e],e>a&&(a=e),d>b&&(b=d),c.real&&(f=c.colspan-1,g=c.rowspan-1,f&&e+f>a&&(a=e+f),g&&d+g>b&&(b=d+g)))})}),{x:a,y:b}}function W(a){var b,c,d,e,f,g,h,i,j,l;if(aa=T(a),_&&aa){for(b=Math.min(_.x,aa.x),c=Math.min(_.y,aa.y),d=Math.max(_.x,aa.x),e=Math.max(_.y,aa.y),f=d,g=e,l=c;l<=e;l++)for(j=b;j<=d;j++)a=Z[l][j],a.real&&(h=a.colspan-1,i=a.rowspan-1,h&&j+h>f&&(f=j+h),i&&l+i>g&&(g=l+i));for(k(),l=c;l<=g;l++)for(j=b;j<=f;j++)Z[l][j]&&ca.setAttrib(Z[l][j].elm,"data-mce-selected","1")}}function X(a,b){var c,d,e;c=T(a),d=c.y*$+c.x;do{if(d+=b,e=r(d%$,Math.floor(d/$)),!e)break;if(e.elm!=a)return ba.select(e.elm,!0),ca.isEmpty(e.elm)&&ba.collapse(!0),!0}while(e.elm==a);return!1}function Y(b){if(_){var c=d.splitAt(Z,_.x,_.y,b);a.each(c.cells,p)}}var Z,$,_,aa,ba=h.selection,ca=ba.dom;i=i||ca.getParent(ba.getStart(!0),"table"),n(),j=j||ca.getParent(ba.getStart(!0),"th,td"),j&&(_=T(j),aa=V(),j=r(_.x,_.y)),a.extend(this,{deleteTable:x,split:B,merge:H,insertRow:I,insertRows:J,insertCol:K,insertCols:L,splitCols:Y,deleteCols:O,deleteRows:P,cutRows:Q,copyRows:R,pasteRows:S,getPos:T,setStartCell:U,setEndCell:W,moveRelIdx:X,refresh:n})}}),g("7",["6","1","4"],function(a,b,c){return function(d,e){function f(a){d.getBody().style.webkitUserSelect="",(a||p)&&(d.$("td[data-mce-selected],th[data-mce-selected]").removeAttr("data-mce-selected"),p=!1)}function g(a,b){return!(!a||!b)&&a===o.getParent(b,"table")}function h(b){var c,f,h=b.target;if(!m&&!n&&h!==l&&(l=h,k&&j)){if(f=o.getParent(h,"td,th"),g(k,f)||(f=o.getParent(k,"td,th")),j===f&&!p)return;if(e(!0),g(k,f)){b.preventDefault(),i||(i=new a(d,k,j),d.getBody().style.webkitUserSelect="none"),i.setEndCell(f),p=!0,c=d.selection.getSel();try{c.removeAllRanges?c.removeAllRanges():c.empty()}catch(a){}}}}var i,j,k,l,m,n,o=d.dom,p=!0,q=function(){j=i=k=l=null,e(!1)};return d.on("SelectionChange",function(a){p&&a.stopImmediatePropagation()},!0),d.on("MouseDown",function(a){2==a.button||m||n||(f(),j=o.getParent(a.target,"td,th"),k=o.getParent(j,"table"))}),d.on("mouseover",h),d.on("remove",function(){o.unbind(d.getDoc(),"mouseover",h),f()}),d.on("MouseUp",function(){function a(a,d){var f=new b(a,a);do{if(3==a.nodeType&&0!==c.trim(a.nodeValue).length)return void(d?e.setStart(a,0):e.setEnd(a,a.nodeValue.length));if("BR"==a.nodeName)return void(d?e.setStartBefore(a):e.setEndBefore(a))}while(a=d?f.next():f.prev())}var e,f,g,h,k,l=d.selection;if(j){if(i&&(d.getBody().style.webkitUserSelect=""),f=o.select("td[data-mce-selected],th[data-mce-selected]"),f.length>0){e=o.createRng(),h=f[0],e.setStartBefore(h),e.setEndAfter(h),a(h,1),g=new b(h,o.getParent(f[0],"table"));do if("TD"==h.nodeName||"TH"==h.nodeName){if(!o.getAttrib(h,"data-mce-selected"))break;k=h}while(h=g.next());a(k),l.setRng(e)}d.nodeChanged(),q()}}),d.on("KeyUp Drop SetContent",function(a){f("setcontent"==a.type),q(),m=!1}),d.on("ObjectResizeStart ObjectResized",function(a){m="objectresized"!=a.type}),d.on("dragstart",function(){n=!0}),d.on("drop dragend",function(){n=!1}),{clear:f}}}),g("8",["4","2"],function(a,b){var c=a.each;return function(d){function e(){var a=d.settings.color_picker_callback;if(a)return function(){var b=this;a.call(d,function(a){b.value(a).fire("change")},b.value())}}function f(a){return{title:"Advanced",type:"form",defaults:{onchange:function(){l(a,this.parents().reverse()[0],"style"==this.name())}},items:[{label:"Style",name:"style",type:"textbox"},{type:"form",padding:0,formItemDefaults:{layout:"grid",alignH:["start","right"]},defaults:{size:7},items:[{label:"Border color",type:"colorbox",name:"borderColor",onaction:e()},{label:"Background color",type:"colorbox",name:"backgroundColor",onaction:e()}]}]}}function g(a){return a?a.replace(/px$/,""):""}function h(a){return/^[0-9]+$/.test(a)&&(a+="px"),a}function i(a){c("left center right".split(" "),function(b){d.formatter.remove("align"+b,{},a)})}function j(a){c("top middle bottom".split(" "),function(b){d.formatter.remove("valign"+b,{},a)})}function k(b,c,d){function e(b,d){return d=d||[],a.each(b,function(a){var b={text:a.text||a.title};a.menu?b.menu=e(a.menu):(b.value=a.value,c&&c(b)),d.push(b)}),d}return e(b,d||[])}function l(a,b,c){var d=b.toJSON(),e=a.parseStyle(d.style);c?(b.find("#borderColor").value(e["border-color"]||"")[0].fire("change"),b.find("#backgroundColor").value(e["background-color"]||"")[0].fire("change")):(e["border-color"]=d.borderColor,e["background-color"]=d.backgroundColor),b.find("#style").value(a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}function m(a,b,c){var d=a.parseStyle(a.getAttrib(c,"style"));d["border-color"]&&(b.borderColor=d["border-color"]),d["background-color"]&&(b.backgroundColor=d["background-color"]),b.style=a.serializeStyle(d)}function n(a,b,d){var e=a.parseStyle(a.getAttrib(b,"style"));c(d,function(a){e[a.name]=a.value}),a.setAttrib(b,"style",a.serializeStyle(a.parseStyle(a.serializeStyle(e))))}var o=this;o.tableProps=function(){o.table(!0)},o.table=function(e){function j(){function c(a,b,d){if("TD"===a.tagName||"TH"===a.tagName)v.setStyle(a,b,d);else if(a.children)for(var e=0;e<a.children.length;e++)c(a.children[e],b,d)}var e;l(v,this),w=a.extend(w,this.toJSON()),w["class"]===!1&&delete w["class"],d.undoManager.transact(function(){if(p||(p=d.plugins.table.insertTable(w.cols||1,w.rows||1)),d.dom.setAttribs(p,{style:w.style,"class":w["class"]}),d.settings.table_style_by_css){if(u=[],u.push({name:"border",value:w.border}),u.push({name:"border-spacing",value:h(w.cellspacing)}),n(v,p,u),v.setAttribs(p,{"data-mce-border-color":w.borderColor,"data-mce-cell-padding":w.cellpadding,"data-mce-border":w.border}),p.children)for(var a=0;a<p.children.length;a++)c(p.children[a],"border",w.border),c(p.children[a],"padding",h(w.cellpadding))}else d.dom.setAttribs(p,{border:w.border,cellpadding:w.cellpadding,cellspacing:w.cellspacing});v.getAttrib(p,"width")&&!d.settings.table_style_by_css?v.setAttrib(p,"width",g(w.width)):v.setStyle(p,"width",h(w.width)),v.setStyle(p,"height",h(w.height)),e=v.select("caption",p)[0],e&&!w.caption&&v.remove(e),!e&&w.caption&&(e=v.create("caption"),e.innerHTML=b.ie?"\xa0":'<br data-mce-bogus="1"/>',p.insertBefore(e,p.firstChild)),i(p),w.align&&d.formatter.apply("align"+w.align,{},p),d.focus(),d.addVisual()})}function o(a,b){function c(a,c){for(var d=0;d<c.length;d++){var e=v.getStyle(c[d],b);if("undefined"==typeof a&&(a=e),a!=e)return""}return a}var e,f=d.dom.select("td,th",a);return e=c(e,f)}var p,q,r,s,t,u,v=d.dom,w={};e===!0?(p=v.getParent(d.selection.getStart(),"table"),p&&(w={width:g(v.getStyle(p,"width")||v.getAttrib(p,"width")),height:g(v.getStyle(p,"height")||v.getAttrib(p,"height")),cellspacing:g(v.getStyle(p,"border-spacing")||v.getAttrib(p,"cellspacing")),cellpadding:v.getAttrib(p,"data-mce-cell-padding")||v.getAttrib(p,"cellpadding")||o(p,"padding"),border:v.getAttrib(p,"data-mce-border")||v.getAttrib(p,"border")||o(p,"border"),borderColor:v.getAttrib(p,"data-mce-border-color"),caption:!!v.select("caption",p)[0],"class":v.getAttrib(p,"class")},c("left center right".split(" "),function(a){d.formatter.matchNode(p,"align"+a)&&(w.align=a)}))):(q={label:"Cols",name:"cols"},r={label:"Rows",name:"rows"}),d.settings.table_class_list&&(w["class"]&&(w["class"]=w["class"].replace(/\s*mce\-item\-table\s*/g,"")),s={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"table",classes:[a.value]})})})}),t={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",labelGapCalc:!1,padding:0,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:d.settings.table_appearance_options!==!1?[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"}]:[q,r,{label:"Width",name:"width"},{label:"Height",name:"height"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},s]},d.settings.table_advtab!==!1?(m(v,w,p),d.windowManager.open({title:"Table properties",data:w,bodyType:"tabpanel",body:[{title:"General",type:"form",items:t},f(v)],onsubmit:j})):d.windowManager.open({title:"Table properties",data:w,body:t,onsubmit:j})},o.merge=function(a,b){d.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",value:"1",size:10},{label:"Rows",name:"rows",type:"textbox",value:"1",size:10}],onsubmit:function(){var c=this.toJSON();d.undoManager.transact(function(){a.merge(b,c.cols,c.rows)})}})},o.cell=function(){function b(a,b,c){(1===s.length||c)&&r.setAttrib(a,b,c)}function e(a,b,c){(1===s.length||c)&&r.setStyle(a,b,c)}function n(){l(r,this),p=a.extend(p,this.toJSON()),d.undoManager.transact(function(){c(s,function(a){b(a,"scope",p.scope),b(a,"style",p.style),b(a,"class",p["class"]),e(a,"width",h(p.width)),e(a,"height",h(p.height)),p.type&&a.nodeName.toLowerCase()!==p.type&&(a=r.rename(a,p.type)),1===s.length&&(i(a),j(a)),p.align&&d.formatter.apply("align"+p.align,{},a),p.valign&&d.formatter.apply("valign"+p.valign,{},a)}),d.focus()})}var o,p,q,r=d.dom,s=[];if(s=d.dom.select("td[data-mce-selected],th[data-mce-selected]"),o=d.dom.getParent(d.selection.getStart(),"td,th"),!s.length&&o&&s.push(o),o=o||s[0]){s.length>1?p={width:"",height:"",scope:"","class":"",align:"",style:"",type:o.nodeName.toLowerCase()}:(p={width:g(r.getStyle(o,"width")||r.getAttrib(o,"width")),height:g(r.getStyle(o,"height")||r.getAttrib(o,"height")),scope:r.getAttrib(o,"scope"),"class":r.getAttrib(o,"class")},p.type=o.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(o,"align"+a)&&(p.align=a)}),c("top middle bottom".split(" "),function(a){d.formatter.matchNode(o,"valign"+a)&&(p.valign=a)}),m(r,p,o)),d.settings.table_cell_class_list&&(q={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_cell_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"td",classes:[a.value]})})})});var t={type:"form",layout:"flex",direction:"column",labelGapCalc:"children",padding:0,items:[{type:"form",layout:"grid",columns:2,labelGapCalc:!1,padding:0,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"H Align",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"V Align",name:"valign",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Top",value:"top"},{text:"Middle",value:"middle"},{text:"Bottom",value:"bottom"}]}]},q]};d.settings.table_cell_advtab!==!1?d.windowManager.open({title:"Cell properties",bodyType:"tabpanel",data:p,body:[{title:"General",type:"form",items:t},f(r)],onsubmit:n}):d.windowManager.open({title:"Cell properties",data:p,body:t,onsubmit:n})}},o.row=function(){function b(a,b,c){(1===u.length||c)&&t.setAttrib(a,b,c)}function e(a,b,c){(1===u.length||c)&&t.setStyle(a,b,c)}function j(){var f,g,j;l(t,this),r=a.extend(r,this.toJSON()),d.undoManager.transact(function(){var a=r.type;c(u,function(c){b(c,"scope",r.scope),b(c,"style",r.style),b(c,"class",r["class"]),e(c,"height",h(r.height)),a!==c.parentNode.nodeName.toLowerCase()&&(f=t.getParent(c,"table"),g=c.parentNode,j=t.select(a,f)[0],j||(j=t.create(a),f.firstChild?"CAPTION"===f.firstChild.nodeName?t.insertAfter(j,f.firstChild):f.insertBefore(j,f.firstChild):f.appendChild(j)),j.appendChild(c),g.hasChildNodes()||t.remove(g)),1===u.length&&i(c),r.align&&d.formatter.apply("align"+r.align,{},c)}),d.focus()})}var n,o,p,q,r,s,t=d.dom,u=[];n=d.dom.getParent(d.selection.getStart(),"table"),o=d.dom.getParent(d.selection.getStart(),"td,th"),c(n.rows,function(a){c(a.cells,function(b){if(t.getAttrib(b,"data-mce-selected")||b==o)return u.push(a),!1})}),p=u[0],p&&(u.length>1?r={height:"",scope:"","class":"",align:"",type:p.parentNode.nodeName.toLowerCase()}:(r={height:g(t.getStyle(p,"height")||t.getAttrib(p,"height")),scope:t.getAttrib(p,"scope"),"class":t.getAttrib(p,"class")},r.type=p.parentNode.nodeName.toLowerCase(),c("left center right".split(" "),function(a){d.formatter.matchNode(p,"align"+a)&&(r.align=a)}),m(t,r,p)),d.settings.table_row_class_list&&(q={name:"class",type:"listbox",label:"Class",values:k(d.settings.table_row_class_list,function(a){a.value&&(a.textStyle=function(){return d.formatter.getCssText({block:"tr",classes:[a.value]})})})}),s={type:"form",columns:2,padding:0,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"Header",maxWidth:null,values:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"},q]},d.settings.table_row_advtab!==!1?d.windowManager.open({title:"Row properties",data:r,bodyType:"tabpanel",body:[{title:"General",type:"form",items:s},f(t)],onsubmit:j}):d.windowManager.open({title:"Row properties",data:r,body:s,onsubmit:j}))}}}),g("9",["4","5"],function(a,b){var c;return function(d){function e(a,b){return{index:a,y:d.dom.getPos(b).y}}function f(a,b){return{index:a,y:d.dom.getPos(b).y+b.offsetHeight}}function g(a,b){return{index:a,x:d.dom.getPos(b).x}}function h(a,b){return{index:a,x:d.dom.getPos(b).x+b.offsetWidth}}function i(){var a=d.getBody().dir;return"rtl"===a}function j(){return d.inline}function k(){return j?d.getBody().ownerDocument.body:d.getBody()}function l(a,b){return i()?h(a,b):g(a,b)}function m(a,b){return i()?g(a,b):h(a,b)}function n(a,b){return o(a,"width")/o(b,"width")*100}function o(a,b){var c=d.dom.getStyle(a,b,!0),e=parseInt(c,10);return e}function p(a){var b=o(a,"width"),c=o(a.parentElement,"width");return b/c*100}function q(a,b){var c=o(a,"width");return b/c*100}function r(a,b){var c=o(a.parentElement,"width");return b/c*100}function s(a,b,c){for(var d=[],e=1;e<c.length;e++){var f=c[e].element;d.push(a(e-1,f))}var g=c[c.length-1];return d.push(b(c.length-1,g.element)),d}function t(){var b=d.dom.select("."+la,k());a.each(b,function(a){d.dom.remove(a)})}function u(a){t(),E(a)}function v(a,b,c,d,e,f,g,h){var i={"data-mce-bogus":"all","class":la+" "+a,unselectable:"on","data-mce-resize":!1,style:"cursor: "+b+"; margin: 0; padding: 0; position: absolute; left: "+c+"px; top: "+d+"px; height: "+e+"px; width: "+f+"px; "};return i[g]=h,i}function w(b,c,e){a.each(b,function(a){var b=e.x,f=a.y-ua/2,g=ua,h=c;d.dom.add(k(),"div",v(ma,na,b,f,g,h,oa,a.index))})}function x(b,c,e){a.each(b,function(a){var b=a.x-ua/2,f=e.y,g=c,h=ua;d.dom.add(k(),"div",v(qa,ra,b,f,g,h,sa,a.index))})}function y(b){return a.map(b.rows,function(b){var c=a.map(b.cells,function(a){var b=a.hasAttribute("rowspan")?parseInt(a.getAttribute("rowspan"),10):1,c=a.hasAttribute("colspan")?parseInt(a.getAttribute("colspan"),10):1;return{element:a,rowspan:b,colspan:c}});return{element:b,cells:c}})}function z(b){function c(a,b){return a+","+b}function d(a,b){return g[c(a,b)]}function e(){var b=[];return a.each(h,function(a){b=b.concat(a.cells)}),b}function f(){return h}var g={},h=[],i=0,j=0;return a.each(b,function(b,d){var e=[];a.each(b.cells,function(a){for(var b=0;void 0!==g[c(d,b)];)b++;for(var f={element:a.element,colspan:a.colspan,rowspan:a.rowspan,rowIndex:d,colIndex:b},h=0;h<a.colspan;h++)for(var k=0;k<a.rowspan;k++){var l=d+k,m=b+h;g[c(l,m)]=f,i=Math.max(i,l+1),j=Math.max(j,m+1)}e.push(f)}),h.push({element:b.element,cells:e})}),{grid:{maxRows:i,maxCols:j},getAt:d,getAllCells:e,getAllRows:f}}function A(a,b){for(var c=[],d=a;d<b;d++)c.push(d);return c}function B(a,b,c){for(var d,e=a(),f=0;f<e.length;f++)b(e[f])&&(d=e[f]);return d?d:c()}function C(b){var c=A(0,b.grid.maxCols),d=A(0,b.grid.maxRows);return a.map(c,function(a){function c(){for(var c=[],e=0;e<d.length;e++){var f=b.getAt(e,a);f&&f.colIndex===a&&c.push(f)}return c}function e(a){return 1===a.colspan}function f(){for(var c,e=0;e<d.length;e++)if(c=b.getAt(e,a))return c;return null}return B(c,e,f)})}function D(b){var c=A(0,b.grid.maxCols),d=A(0,b.grid.maxRows);return a.map(d,function(a){function d(){for(var d=[],e=0;e<c.length;e++){var f=b.getAt(a,e);f&&f.rowIndex===a&&d.push(f)}return d}function e(a){return 1===a.rowspan}function f(){return b.getAt(a,0)}return B(d,e,f)})}function E(a){var b=y(a),c=z(b),g=D(c),h=C(c),i=d.dom.getPos(a),j=g.length>0?s(e,f,g):[],k=h.length>0?s(l,m,h):[];w(j,a.offsetWidth,i),x(k,a.offsetHeight,i)}function F(a,b,c,d){if(b<0||b>=a.length-1)return"";var e=a[b];if(e)e={value:e,delta:0};else for(var f=a.slice(0,b).reverse(),g=0;g<f.length;g++)f[g]&&(e={value:f[g],delta:g+1});var h=a[b+1];if(h)h={value:h,delta:1};else for(var i=a.slice(b+1),j=0;j<i.length;j++)i[j]&&(h={value:i[j],delta:j+1});var k=h.delta-e.delta,l=Math.abs(h.value-e.value)/k;return c?l/o(d,"width")*100:l}function G(a,b){var c=d.dom.getStyle(a,b);return c||(c=d.dom.getAttrib(a,b)),c||(c=d.dom.getStyle(a,b,!0)),c}function H(a,b,c){var d=G(a,"width"),e=parseInt(d,10),f=b?n(a,c):o(a,"width");return(b&&!Q(d)||!b&&!R(d))&&(e=0),!isNaN(e)&&e>0?e:f}function I(b,c,d){for(var e=C(b),f=a.map(e,function(a){return l(a.colIndex,a.element).x}),g=[],h=0;h<e.length;h++){var i=e[h].element.hasAttribute("colspan")?parseInt(e[h].element.getAttribute("colspan"),10):1,j=i>1?F(f,h):H(e[h].element,c,d);j=j?j:va,g.push(j)}return g}function J(a){var b=G(a,"height"),c=parseInt(b,10);return Q(b)&&(c=0),!isNaN(c)&&c>0?c:o(a,"height")}function K(b){for(var c=D(b),d=a.map(c,function(a){return e(a.rowIndex,a.element).y}),f=[],g=0;g<c.length;g++){var h=c[g].element.hasAttribute("rowspan")?parseInt(c[g].element.getAttribute("rowspan"),10):1,i=h>1?F(d,g):J(c[g].element);i=i?i:wa,f.push(i)}return f}function L(b,c,d,e,f){function g(b){return a.map(b,function(){return 0})}function h(){var a;if(f)a=[100-l[0]];else{var b=Math.max(e,l[0]+d);a=[b-l[0]]}return a}function i(a,b){var c,f=g(l.slice(0,a)),h=g(l.slice(b+1));if(d>=0){var i=Math.max(e,l[b]-d);c=f.concat([d,i-l[b]]).concat(h)}else{var j=Math.max(e,l[a]+d),k=l[a]-j;c=f.concat([j-l[a],k]).concat(h)}return c}function j(a,b){var c,f=g(l.slice(0,b));if(d>=0)c=f.concat([d]);else{var h=Math.max(e,l[b]+d);c=f.concat([h-l[b]])}return c}var k,l=b.slice(0);return k=0===b.length?[]:1===b.length?h():0===c?i(0,1):c>0&&c<b.length-1?i(c,c+1):c===b.length-1?j(c-1,c):[]}function M(a,b,c){for(var d=0,e=a;e<b;e++)d+=c[e];return d}function N(b,c){var d=b.getAllCells();return a.map(d,function(a){var b=M(a.colIndex,a.colIndex+a.colspan,c);return{element:a.element,width:b,colspan:a.colspan}})}function O(b,c){var d=b.getAllCells();return a.map(d,function(a){var b=M(a.rowIndex,a.rowIndex+a.rowspan,c);return{element:a.element,height:b,rowspan:a.rowspan}})}function P(b,c){var d=b.getAllRows();return a.map(d,function(a,b){return{element:a.element,height:c[b]}})}function Q(a){return ya.test(a)}function R(a){return za.test(a)}function S(b,c,e){function f(b,c){a.each(b,function(a){d.dom.setStyle(a.element,"width",a.width+c),d.dom.setAttrib(a.element,"width",null)})}function g(){return e<k.grid.maxCols-1?p(b):p(b)+r(b,c)}function h(){return e<k.grid.maxCols-1?o(b,"width"):o(b,"width")+c}function i(a,c,f){e!=k.grid.maxCols-1&&f||(d.dom.setStyle(b,"width",a+c),d.dom.setAttrib(b,"width",null))}for(var j=y(b),k=z(j),l=Q(b.width)||Q(b.style.width),m=I(k,l,b),n=l?q(b,c):c,s=L(m,e,n,va,l,b),t=[],u=0;u<s.length;u++)t.push(s[u]+m[u]);var v=N(k,t),w=l?"%":"px",x=l?g():h();d.undoManager.transact(function(){f(v,w),i(x,w,l)})}function T(b,c,e){for(var f=y(b),g=z(f),h=K(g),i=[],j=0,k=0;k<h.length;k++)i.push(k===e?c+h[k]:h[k]),j+=j[k];var l=O(g,i),m=P(g,i);d.undoManager.transact(function(){a.each(m,function(a){d.dom.setStyle(a.element,"height",a.height+"px"),d.dom.setAttrib(a.element,"height",null)}),a.each(l,function(a){d.dom.setStyle(a.element,"height",a.height+"px"),d.dom.setAttrib(a.element,"height",null)}),d.dom.setStyle(b,"height",j+"px"),d.dom.setAttrib(b,"height",null)})}function U(){fa=setTimeout(function(){Y()},200)}function V(){clearTimeout(fa)}function W(){var a=document.createElement("div");return a.setAttribute("style","margin: 0; padding: 0; position: fixed; left: 0px; top: 0px; height: 100%; width: 100%;"),a.setAttribute("data-mce-bogus","all"),a}function X(a,b){d.dom.bind(a,"mouseup",function(){Y()}),d.dom.bind(a,"mousemove",function(a){V(),ga&&b(a)}),d.dom.bind(a,"mouseout",function(){U()})}function Y(){if(d.dom.remove(ha),ga){d.dom.removeClass(ia,xa),ga=!1;var a,b;if($(ia)){var e=parseInt(d.dom.getAttrib(ia,ta),10),f=d.dom.getPos(ia).x;a=parseInt(d.dom.getAttrib(ia,sa),10),b=i()?e-f:f-e,Math.abs(b)>=1&&S(c,b,a)}else if(_(ia)){var g=parseInt(d.dom.getAttrib(ia,pa),10),h=d.dom.getPos(ia).y;a=parseInt(d.dom.getAttrib(ia,oa),10),b=h-g,Math.abs(b)>=1&&T(c,b,a)}u(c),d.nodeChanged()}}function Z(a,b){ha=ha?ha:W(),ga=!0,d.dom.addClass(a,xa),ia=a,X(ha,b),d.dom.add(k(),ha)}function $(a){return d.dom.hasClass(a,qa)}function _(a){return d.dom.hasClass(a,ma)}function aa(a){ja=void 0!==ja?ja:a.clientX;var b=a.clientX-ja;ja=a.clientX;var c=d.dom.getPos(ia).x;d.dom.setStyle(ia,"left",c+b+"px")}function ba(a){ka=void 0!==ka?ka:a.clientY;var b=a.clientY-ka;ka=a.clientY;var c=d.dom.getPos(ia).y;d.dom.setStyle(ia,"top",c+b+"px")}function ca(a){ja=void 0,Z(a,aa)}function da(a){ka=void 0,Z(a,ba)}function ea(a){var b=a.target,e=d.getBody();if(d.$.contains(e,c)||c===e)if($(b)){a.preventDefault();var f=d.dom.getPos(b).x;d.dom.setAttrib(b,ta,f),ca(b)}else if(_(b)){a.preventDefault();var g=d.dom.getPos(b).y;d.dom.setAttrib(b,pa,g),da(b)}else t()}var fa,ga,ha,ia,ja,ka,la="mce-resize-bar",ma="mce-resize-bar-row",na="row-resize",oa="data-row",pa="data-initial-top",qa="mce-resize-bar-col",ra="col-resize",sa="data-col",ta="data-initial-left",ua=4,va=10,wa=10,xa="mce-resize-bar-dragging",ya=new RegExp(/(\d+(\.\d+)?%)/),za=new RegExp(/px|em/);
2
+ return d.on("init",function(){d.dom.bind(k(),"mousedown",ea)}),d.on("ObjectResized",function(b){var c=b.target;if("TABLE"===c.nodeName){var e=[];a.each(c.rows,function(b){a.each(b.cells,function(a){var b=d.dom.getStyle(a,"width",!0);e.push({cell:a,width:b})})}),a.each(e,function(a){d.dom.setStyle(a.cell,"width",a.width),d.dom.setAttrib(a.cell,"width",null)})}}),d.on("mouseover",function(a){if(!ga){var b=d.dom.getParent(a.target,"table");("TABLE"===a.target.nodeName||b)&&(c=b,u(b))}}),d.on("keydown",function(a){switch(a.keyCode){case b.LEFT:case b.RIGHT:case b.UP:case b.DOWN:t()}}),d.on("remove",function(){t(),d.dom.unbind(k(),"mousedown",ea)}),{adjustWidth:S,adjustHeight:T,clearBars:t,drawBars:E,determineDeltas:L,getTableGrid:z,getTableDetails:y,getWidths:I,getPixelHeights:K,isPercentageBasedSize:Q,isPixelBasedSize:R,recalculateWidths:N,recalculateCellHeights:O,recalculateRowHeights:P}}}),g("e",["c"],function(a){return a("tinymce.util.Delay")}),g("b",["5","e","2","4","a"],function(a,b,c,d,e){var f=d.each,g=e.getSpanVal;return function(h){function i(){function c(c){function d(a,b){var d=a?"previousSibling":"nextSibling",f=h.dom.getParent(b,"tr"),g=f[d];if(g)return r(h,b,g,a),c.preventDefault(),!0;var i=h.dom.getParent(f,"table"),l=f.parentNode,m=l.nodeName.toLowerCase();if("tbody"===m||m===(a?"tfoot":"thead")){var n=e(a,i,l,"tbody");if(null!==n)return j(a,n,b)}return k(a,f,d,i)}function e(a,b,c,d){var e=h.dom.select(">"+d,b),f=e.indexOf(c);if(a&&0===f||!a&&f===e.length-1)return i(a,b);if(f===-1){var g="thead"===c.tagName.toLowerCase()?0:e.length-1;return e[g]}return e[f+(a?-1:1)]}function i(a,b){var c=a?"thead":"tfoot",d=h.dom.select(">"+c,b);return 0!==d.length?d[0]:null}function j(a,b,d){var e=l(b,a);return e&&r(h,d,e,a),c.preventDefault(),!0}function k(a,b,e,f){var g=f[e];if(g)return m(g),!0;var i=h.dom.getParent(f,"td,th");if(i)return d(a,i,c);var j=l(b,!a);return m(j),c.preventDefault(),!1}function l(a,b){var c=a&&a[b?"lastChild":"firstChild"];return c&&"BR"===c.nodeName?h.dom.getParent(c,"td,th"):c}function m(a){h.selection.select(a,!0),h.selection.collapse(!0)}function n(){return u==a.UP||u==a.DOWN}function o(a){var b=a.selection.getNode(),c=a.dom.getParent(b,"tr");return null!==c}function p(a){for(var b=0,c=a;c.previousSibling;)c=c.previousSibling,b+=g(c,"colspan");return b}function q(a,b){var c=0,d=0;return f(a.children,function(a,e){if(c+=g(a,"colspan"),d=e,c>b)return!1}),d}function r(a,b,c,d){var e=p(h.dom.getParent(b,"td,th")),f=q(c,e),g=c.childNodes[f],i=l(g,d);m(i||g)}function s(a){var b=h.selection.getNode(),c=h.dom.getParent(b,"td,th"),d=h.dom.getParent(a,"td,th");return c&&c!==d&&t(c,d)}function t(a,b){return h.dom.getParent(a,"TABLE")===h.dom.getParent(b,"TABLE")}var u=c.keyCode;if(n()&&o(h)){var v=h.selection.getNode();b.setEditorTimeout(h,function(){s(v)&&d(!c.shiftKey&&u===a.UP,v,c)},0)}}h.on("KeyDown",function(a){c(a)})}function j(){function a(a,b){var c,d=b.ownerDocument,e=d.createRange();return e.setStartBefore(b),e.setEnd(a.endContainer,a.endOffset),c=d.createElement("body"),c.appendChild(e.cloneContents()),0===c.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}h.on("KeyDown",function(b){var c,d,e=h.dom;37!=b.keyCode&&38!=b.keyCode||(c=h.selection.getRng(),d=e.getParent(c.startContainer,"table"),d&&h.getBody().firstChild==d&&a(c,d)&&(c=e.createRng(),c.setStartBefore(d),c.setEndBefore(d),h.selection.setRng(c),b.preventDefault()))})}function k(){h.on("KeyDown SetContent VisualAid",function(){var a;for(a=h.getBody().lastChild;a;a=a.previousSibling)if(3==a.nodeType){if(a.nodeValue.length>0)break}else if(1==a.nodeType&&("BR"==a.tagName||!a.getAttribute("data-mce-bogus")))break;a&&"TABLE"==a.nodeName&&(h.settings.forced_root_block?h.dom.add(h.getBody(),h.settings.forced_root_block,h.settings.forced_root_block_attrs,c.ie&&c.ie<10?"&nbsp;":'<br data-mce-bogus="1" />'):h.dom.add(h.getBody(),"br",{"data-mce-bogus":"1"}))}),h.on("PreProcess",function(a){var b=a.node.lastChild;b&&("BR"==b.nodeName||1==b.childNodes.length&&("BR"==b.firstChild.nodeName||"\xa0"==b.firstChild.nodeValue))&&b.previousSibling&&"TABLE"==b.previousSibling.nodeName&&h.dom.remove(b)})}function l(){function a(a,b,c,d){var e,f,g,h=3,i=a.dom.getParent(b.startContainer,"TABLE");return i&&(e=i.parentNode),f=b.startContainer.nodeType==h&&0===b.startOffset&&0===b.endOffset&&d&&("TR"==c.nodeName||c==e),g=("TD"==c.nodeName||"TH"==c.nodeName)&&!d,f||g}function b(){var b=h.selection.getRng(),c=h.selection.getNode(),d=h.dom.getParent(b.startContainer,"TD,TH");if(a(h,b,c,d)){d||(d=c);for(var e=d.lastChild;e.lastChild;)e=e.lastChild;3==e.nodeType&&(b.setEnd(e,e.data.length),h.selection.setRng(b))}}h.on("KeyDown",function(){b()}),h.on("MouseDown",function(a){2!=a.button&&b()})}function m(){function b(a){h.selection.select(a,!0),h.selection.collapse(!0)}function c(a){h.$(a).empty(),e.paddCell(a)}h.on("keydown",function(e){if((e.keyCode==a.DELETE||e.keyCode==a.BACKSPACE)&&!e.isDefaultPrevented()){var f,g,i,j;if(f=h.dom.getParent(h.selection.getStart(),"table")){if(g=h.dom.select("td,th",f),i=d.grep(g,function(a){return!!h.dom.getAttrib(a,"data-mce-selected")}),0===i.length)return j=h.dom.getParent(h.selection.getStart(),"td,th"),void(h.selection.isCollapsed()&&j&&h.dom.isEmpty(j)&&(e.preventDefault(),c(j),b(j)));e.preventDefault(),h.undoManager.transact(function(){g.length==i.length?h.execCommand("mceTableDelete"):(d.each(i,c),b(i[0]))})}}})}function n(){var b="\ufeff",c=function(a){return h.dom.isEmpty(a)||a.firstChild===a.lastChild&&f(a.firstChild)},d=function(a){return a&&"CAPTION"==a.nodeName&&"TABLE"==a.parentNode.nodeName},e=function(a,b){var c=b.firstChild;do if(c===a)return!0;while(c=c.firstChild);return!1},f=function(a){if(3===a.nodeType){if(a.data===b)return!0;a=a.parentNode}return 1===a.nodeType&&a.hasAttribute("data-mce-caret")},g=function(a){var b=h.selection.getRng();return!b.startOffset&&!b.startContainer.previousSibling&&e(b.startContainer,a)},i=function(a,c){var d;d=c?h.dom.create("p",{"data-mce-caret":"after","data-mce-bogus":"all"},'<br data-mce-bogus="1">'):a.ownerDocument.createTextNode(b),a.appendChild(d)},j=function(a,d){var e=a.lastChild,g=h.selection.getRng(),j=g.startContainer,k=g.startOffset;c(a)?(a.innerHTML=b,j=a.lastChild,k=0):f(e)||i(a,h.dom.isBlock(e)),h.selection.setCursorLocation(j,k)},k=function(a){var b=h.selection.getRng(),c=h.dom.createRng(),d=a.firstChild;b.commonAncestorContainer===a.parentNode&&e(b.startContainer,a)&&(c.setStart(a,0),1===d.nodeType?c.setEnd(a,a.childNodes.length):c.setEnd(d,d.nodeValue.length),h.selection.setRng(c))};h.on("keydown",function(b){if(!(b.keyCode!==a.DELETE&&b.keyCode!==a.BACKSPACE||b.isDefaultPrevented())){var e=h.dom.getParent(h.selection.getStart(),"caption");d(e)&&(h.selection.isCollapsed()?(j(e),(c(e)||b.keyCode===a.BACKSPACE&&g(e))&&b.preventDefault()):(k(e),h.undoManager.transact(function(){h.execCommand("Delete"),j(e)}),b.preventDefault()))}})}n(),m(),c.webkit&&(i(),l()),c.gecko&&(j(),k()),c.ie>9&&(j(),k())}}),g("0",["1","2","3","4","5","6","7","8","9","a","b"],function(a,b,c,d,e,f,g,h,i,j,k){function l(a){function c(b){return function(){a.execCommand(b)}}function l(c,d){var e,f,g,h;for(g='<table id="__mce"><tbody>',e=0;e<d;e++){for(g+="<tr>",f=0;f<c;f++)g+="<td>"+(b.ie&&b.ie<10?"&nbsp;":"<br>")+"</td>";g+="</tr>"}return g+="</tbody></table>",a.undoManager.transact(function(){a.insertContent(g),h=a.dom.get("__mce"),a.dom.setAttrib(h,"id",null),a.$("tr",h).each(function(b,c){a.fire("newrow",{node:c}),a.$("th,td",c).each(function(b,c){a.fire("newcell",{node:c})})}),a.dom.setAttribs(h,a.settings.table_default_attributes||{}),a.dom.setStyles(h,a.settings.table_default_styles||{})}),h}function n(b,c,d){function e(){var e,f,g,h={},i=0;f=a.dom.select("td[data-mce-selected],th[data-mce-selected]"),e=f[0],e||(e=a.selection.getStart()),d&&f.length>0?(m(f,function(a){return h[a.parentNode.parentNode.nodeName]=1}),m(h,function(a){i+=a}),g=1!==i):g=!a.dom.getParent(e,c),b.disabled(g),a.selection.selectorChanged(c,function(a){b.disabled(!a)})}a.initialized?e():a.on("init",e)}function o(){n(this,"table")}function p(){n(this,"td,th")}function q(){n(this,"td,th",!0)}function r(){var a="";a='<table role="grid" class="mce-grid mce-grid-border" aria-readonly="true">';for(var b=0;b<10;b++){a+="<tr>";for(var c=0;c<10;c++)a+='<td role="gridcell" tabindex="-1"><a id="mcegrid'+(10*b+c)+'" href="#" data-mce-x="'+c+'" data-mce-y="'+b+'"></a></td>';a+="</tr>"}return a+="</table>",a+='<div class="mce-text-center" role="presentation">1 x 1</div>'}function s(b,c,d){var e,f,g,h,i,j=d.getEl().getElementsByTagName("table")[0],k=d.isRtl()||"tl-tr"==d.parent().rel;for(j.nextSibling.innerHTML=b+1+" x "+(c+1),k&&(b=9-b),f=0;f<10;f++)for(e=0;e<10;e++)h=j.rows[f].childNodes[e].firstChild,i=(k?e>=b:e<=b)&&f<=c,a.dom.toggleClass(h,"mce-active",i),i&&(g=h);return g.parentNode}function t(){a.addButton("tableprops",{title:"Table properties",onclick:B.tableProps,icon:"table"}),a.addButton("tabledelete",{title:"Delete table",onclick:c("mceTableDelete")}),a.addButton("tablecellprops",{title:"Cell properties",onclick:c("mceTableCellProps")}),a.addButton("tablemergecells",{title:"Merge cells",onclick:c("mceTableMergeCells")}),a.addButton("tablesplitcells",{title:"Split cell",onclick:c("mceTableSplitCells")}),a.addButton("tableinsertrowbefore",{title:"Insert row before",onclick:c("mceTableInsertRowBefore")}),a.addButton("tableinsertrowafter",{title:"Insert row after",onclick:c("mceTableInsertRowAfter")}),a.addButton("tabledeleterow",{title:"Delete row",onclick:c("mceTableDeleteRow")}),a.addButton("tablerowprops",{title:"Row properties",onclick:c("mceTableRowProps")}),a.addButton("tablecutrow",{title:"Cut row",onclick:c("mceTableCutRow")}),a.addButton("tablecopyrow",{title:"Copy row",onclick:c("mceTableCopyRow")}),a.addButton("tablepasterowbefore",{title:"Paste row before",onclick:c("mceTablePasteRowBefore")}),a.addButton("tablepasterowafter",{title:"Paste row after",onclick:c("mceTablePasteRowAfter")}),a.addButton("tableinsertcolbefore",{title:"Insert column before",onclick:c("mceTableInsertColBefore")}),a.addButton("tableinsertcolafter",{title:"Insert column after",onclick:c("mceTableInsertColAfter")}),a.addButton("tabledeletecol",{title:"Delete column",onclick:c("mceTableDeleteCol")})}function u(b){var c=a.dom.is(b,"table")&&a.getBody().contains(b);return c}function v(){var b=a.settings.table_toolbar;""!==b&&b!==!1&&(b||(b="tableprops tabledelete | tableinsertrowbefore tableinsertrowafter tabledeleterow | tableinsertcolbefore tableinsertcolafter tabledeletecol"),a.addContextToolbar(u,b))}function w(){return y}function x(a){y=a}var y,z,A=this,B=new h(a);!a.settings.object_resizing||a.settings.table_resize_bars===!1||a.settings.object_resizing!==!0&&"table"!==a.settings.object_resizing||(z=i(a));var C=function(b){var c=a.dom.getParent(b,"th,td"),e=a.dom.select("td[data-mce-selected],th[data-mce-selected]").concat(c?[c]:[]),f=d.grep(e,function(a){return j.getColSpan(a)>1||j.getRowSpan(a)>1});return f.length>0},D=function(b){var c=b.control;c.disabled(!C(a.selection.getStart())),a.on("nodechange",function(a){c.disabled(!C(a.element))})};a.settings.table_grid===!1?a.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",onclick:B.table}):a.addMenuItem("inserttable",{text:"Table",icon:"table",context:"table",ariaHideMenu:!0,onclick:function(a){a.aria&&(this.parent().hideAll(),a.stopImmediatePropagation(),B.table())},onshow:function(){s(0,0,this.menu.items()[0])},onhide:function(){var b=this.menu.items()[0].getEl().getElementsByTagName("a");a.dom.removeClass(b,"mce-active"),a.dom.addClass(b[0],"mce-active")},menu:[{type:"container",html:r(),onPostRender:function(){this.lastX=this.lastY=0},onmousemove:function(a){var b,c,d=a.target;"A"==d.tagName.toUpperCase()&&(b=parseInt(d.getAttribute("data-mce-x"),10),c=parseInt(d.getAttribute("data-mce-y"),10),(this.isRtl()||"tl-tr"==this.parent().rel)&&(b=9-b),b===this.lastX&&c===this.lastY||(s(b,c,a.control),this.lastX=b,this.lastY=c))},onclick:function(b){var c=this;"A"==b.target.tagName.toUpperCase()&&(b.preventDefault(),b.stopPropagation(),c.parent().cancel(),a.undoManager.transact(function(){l(c.lastX+1,c.lastY+1)}),a.addVisual())}}]}),a.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:o,onclick:B.tableProps}),a.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:o,cmd:"mceTableDelete"}),a.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:c("mceTableCellProps"),onPostRender:p},{text:"Merge cells",onclick:c("mceTableMergeCells"),onPostRender:q},{text:"Split cell",disabled:!0,onclick:c("mceTableSplitCells"),onPostRender:D}]}),a.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:c("mceTableInsertRowBefore"),onPostRender:p},{text:"Insert row after",onclick:c("mceTableInsertRowAfter"),onPostRender:p},{text:"Delete row",onclick:c("mceTableDeleteRow"),onPostRender:p},{text:"Row properties",onclick:c("mceTableRowProps"),onPostRender:p},{text:"-"},{text:"Cut row",onclick:c("mceTableCutRow"),onPostRender:p},{text:"Copy row",onclick:c("mceTableCopyRow"),onPostRender:p},{text:"Paste row before",onclick:c("mceTablePasteRowBefore"),onPostRender:p},{text:"Paste row after",onclick:c("mceTablePasteRowAfter"),onPostRender:p}]}),a.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:c("mceTableInsertColBefore"),onPostRender:p},{text:"Insert column after",onclick:c("mceTableInsertColAfter"),onPostRender:p},{text:"Delete column",onclick:c("mceTableDeleteCol"),onPostRender:p}]});var E=[];m("inserttable tableprops deletetable | cell row column".split(" "),function(b){"|"==b?E.push({text:"-"}):E.push(a.menuItems[b])}),a.addButton("table",{type:"menubutton",title:"Table",menu:E}),b.isIE||a.on("click",function(b){b=b.target,"TABLE"===b.nodeName&&(a.selection.select(b),a.nodeChanged())}),A.quirks=new k(a),a.on("Init",function(){A.cellSelection=new g(a,function(a){a&&z&&z.clearBars()}),A.resizeBars=z}),a.on("PreInit",function(){a.serializer.addAttributeFilter("data-mce-cell-padding,data-mce-border,data-mce-border-color",function(a,b){for(var c=a.length;c--;)a[c].attr(b,null)})}),m({mceTableSplitCells:function(a){a.split()},mceTableMergeCells:function(b){var c;c=a.dom.getParent(a.selection.getStart(),"th,td"),a.dom.select("td[data-mce-selected],th[data-mce-selected]").length?b.merge():B.merge(b,c)},mceTableInsertRowBefore:function(a){a.insertRows(!0)},mceTableInsertRowAfter:function(a){a.insertRows()},mceTableInsertColBefore:function(a){a.insertCols(!0)},mceTableInsertColAfter:function(a){a.insertCols()},mceTableDeleteCol:function(a){a.deleteCols()},mceTableDeleteRow:function(a){a.deleteRows()},mceTableCutRow:function(a){y=a.cutRows()},mceTableCopyRow:function(a){y=a.copyRows()},mceTablePasteRowBefore:function(a){a.pasteRows(y,!0)},mceTablePasteRowAfter:function(a){a.pasteRows(y)},mceSplitColsBefore:function(a){a.splitCols(!0)},mceSplitColsAfter:function(a){a.splitCols(!1)},mceTableDelete:function(a){z&&z.clearBars(),a.deleteTable()}},function(b,c){a.addCommand(c,function(){var c=new f(a);c&&(b(c),a.execCommand("mceRepaint"),A.cellSelection.clear())})}),m({mceInsertTable:B.table,mceTableProps:function(){B.table(!0)},mceTableRowProps:B.row,mceTableCellProps:B.cell},function(b,c){a.addCommand(c,function(a,c){b(c)})}),t(),v(),a.settings.table_tab_navigation!==!1&&a.on("keydown",function(b){var c,d,g,h=a.selection.getStart();if(b.keyCode===e.TAB){if(a.dom.getParent(h,"LI,DT,DD"))return;c=a.dom.getParent(h,"th,td"),c&&(b.preventDefault(),d=new f(a),g=b.shiftKey?-1:1,a.undoManager.transact(function(){!d.moveRelIdx(c,g)&&g>0&&(d.insertRow(),d.refresh(),d.moveRelIdx(c,g))}))}}),A.insertTable=l,A.setClipboardRows=x,A.getClipboardRows=w}var m=d.each;return c.add("table",l),function(){}}),d("0")()}();
readme.txt CHANGED
@@ -1,9 +1,9 @@
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: wysiwyg, formatting, tinymce, write, editor
4
- Requires at least: 4.8
5
- Tested up to: 4.8
6
- Stable tag: 4.6.3
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -25,12 +25,23 @@ It includes 15 plugins for [TinyMCE](http://tinymce.com/) that are automatically
25
 
26
  With this plugin you can also enable the TinyMCE menu above the toolbars. This will make the editor even more powerful and convenient.
27
 
 
 
 
 
 
 
28
  == Installation ==
29
 
30
  Best is to install directly from WordPress. If manual installation is required, please make sure that the plugin files are in a folder named "tinymce-advanced" (not two nested folders) in the WordPress plugins folder, usually "wp-content/plugins".
31
 
32
  == Changelog ==
33
 
 
 
 
 
 
34
  = 4.6.3 =
35
  * Updated for WordPress 4.8 and TinyMCE 4.6.3.
36
 
1
  === TinyMCE Advanced ===
2
  Contributors: azaozz
3
  Tags: wysiwyg, formatting, tinymce, write, editor
4
+ Requires at least: 4.9
5
+ Tested up to: 4.9
6
+ Stable tag: 4.6.7
7
  License: GPLv2
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
25
 
26
  With this plugin you can also enable the TinyMCE menu above the toolbars. This will make the editor even more powerful and convenient.
27
 
28
+ = Privacy =
29
+
30
+ TinyMCE Advanced does not collect or store any user related data. It does not set cookies, and it does not connect to any third-party websites. It only uses functionality that is available in WordPress, and in the TinyMCE editor.
31
+
32
+ In that terms TinyMCE Advanced does not affect your website's privacy laws compliance in any way.
33
+
34
  == Installation ==
35
 
36
  Best is to install directly from WordPress. If manual installation is required, please make sure that the plugin files are in a folder named "tinymce-advanced" (not two nested folders) in the WordPress plugins folder, usually "wp-content/plugins".
37
 
38
  == Changelog ==
39
 
40
+ = 4.6.7 =
41
+ * Fixed compatibility with Gutenberg freeform block.
42
+ * Forced refresh of the TinyMCE plugins after activation.
43
+ * Updated for WordPress 4.9 and TinyMCE 4.6.7.
44
+
45
  = 4.6.3 =
46
  * Updated for WordPress 4.8 and TinyMCE 4.6.3.
47
 
tinymce-advanced.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
  Description: Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
6
- Version: 4.6.3
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2
@@ -24,14 +24,16 @@ Domain Path: /langs
24
  You should have received a copy of the GNU General Public License along
25
  with TinyMCE Advanced. If not, see https://www.gnu.org/licenses/gpl-2.0.html.
26
 
27
- Copyright (c) 2007-2016 Andrew Ozz. All rights reserved.
28
  */
29
 
30
  if ( ! class_exists('Tinymce_Advanced') ) :
31
 
32
  class Tinymce_Advanced {
33
 
34
- private $required_version = '4.7-beta';
 
 
35
  private $user_settings;
36
  private $admin_settings;
37
  private $admin_options;
@@ -265,6 +267,11 @@ class Tinymce_Advanced {
265
 
266
  $this->used_buttons = array_merge( $this->toolbar_1, $this->toolbar_2, $this->toolbar_3, $this->toolbar_4 );
267
  $this->get_all_buttons();
 
 
 
 
 
268
  }
269
 
270
  public function show_version_warning() {
@@ -289,7 +296,7 @@ class Tinymce_Advanced {
289
  echo '<br>';
290
 
291
  printf( __( 'Please upgrade your WordPress installation or download an <a href="%s">older version of the plugin</a>.', 'tinymce-advanced' ),
292
- 'https://wordpress.org/plugins/tinymce-advanced/download/'
293
  );
294
 
295
  ?>
@@ -634,6 +641,10 @@ class Tinymce_Advanced {
634
  }
635
 
636
  public function mce_external_plugins( $mce_plugins ) {
 
 
 
 
637
  if ( $this->is_disabled() ) {
638
  return $mce_plugins;
639
  }
3
  Plugin Name: TinyMCE Advanced
4
  Plugin URI: http://www.laptoptips.ca/projects/tinymce-advanced/
5
  Description: Enables advanced features and plugins in TinyMCE, the visual editor in WordPress.
6
+ Version: 4.6.7
7
  Author: Andrew Ozz
8
  Author URI: http://www.laptoptips.ca/
9
  License: GPL2
24
  You should have received a copy of the GNU General Public License along
25
  with TinyMCE Advanced. If not, see https://www.gnu.org/licenses/gpl-2.0.html.
26
 
27
+ Copyright (c) 2007-2017 Andrew Ozz. All rights reserved.
28
  */
29
 
30
  if ( ! class_exists('Tinymce_Advanced') ) :
31
 
32
  class Tinymce_Advanced {
33
 
34
+ private $required_version = '4.9-beta';
35
+ private $plugin_version = '4.6.7';
36
+
37
  private $user_settings;
38
  private $admin_settings;
39
  private $admin_options;
267
 
268
  $this->used_buttons = array_merge( $this->toolbar_1, $this->toolbar_2, $this->toolbar_3, $this->toolbar_4 );
269
  $this->get_all_buttons();
270
+
271
+ // Force refresh after activation.
272
+ if ( ! empty( $GLOBALS['tinymce_version'] ) && strpos( $GLOBALS['tinymce_version'], '-tadv-' ) === false ) {
273
+ $GLOBALS['tinymce_version'] .= '-tadv-' . $this->plugin_version;
274
+ }
275
  }
276
 
277
  public function show_version_warning() {
296
  echo '<br>';
297
 
298
  printf( __( 'Please upgrade your WordPress installation or download an <a href="%s">older version of the plugin</a>.', 'tinymce-advanced' ),
299
+ 'https://wordpress.org/plugins/tinymce-advanced/advanced/'
300
  );
301
 
302
  ?>
641
  }
642
 
643
  public function mce_external_plugins( $mce_plugins ) {
644
+ if ( ! is_array( $this->options ) ) {
645
+ $this->load_settings();
646
+ }
647
+
648
  if ( $this->is_disabled() ) {
649
  return $mce_plugins;
650
  }