tinymce-rails 5.0.1 → 5.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/source/tinymce/tinymce.js +167 -106
  3. data/lib/tinymce/rails/version.rb +2 -2
  4. data/vendor/assets/javascripts/tinymce/plugins/advlist/plugin.js +1 -1
  5. data/vendor/assets/javascripts/tinymce/plugins/anchor/plugin.js +1 -1
  6. data/vendor/assets/javascripts/tinymce/plugins/autolink/plugin.js +1 -1
  7. data/vendor/assets/javascripts/tinymce/plugins/autoresize/plugin.js +1 -1
  8. data/vendor/assets/javascripts/tinymce/plugins/autosave/plugin.js +1 -1
  9. data/vendor/assets/javascripts/tinymce/plugins/bbcode/plugin.js +1 -1
  10. data/vendor/assets/javascripts/tinymce/plugins/charmap/plugin.js +1 -1
  11. data/vendor/assets/javascripts/tinymce/plugins/code/plugin.js +1 -1
  12. data/vendor/assets/javascripts/tinymce/plugins/codesample/plugin.js +1 -1
  13. data/vendor/assets/javascripts/tinymce/plugins/colorpicker/plugin.js +1 -1
  14. data/vendor/assets/javascripts/tinymce/plugins/contextmenu/plugin.js +1 -1
  15. data/vendor/assets/javascripts/tinymce/plugins/directionality/plugin.js +1 -1
  16. data/vendor/assets/javascripts/tinymce/plugins/emoticons/plugin.js +1 -1
  17. data/vendor/assets/javascripts/tinymce/plugins/fullpage/plugin.js +1 -1
  18. data/vendor/assets/javascripts/tinymce/plugins/fullscreen/plugin.js +1 -1
  19. data/vendor/assets/javascripts/tinymce/plugins/help/plugin.js +2 -2
  20. data/vendor/assets/javascripts/tinymce/plugins/hr/plugin.js +1 -1
  21. data/vendor/assets/javascripts/tinymce/plugins/image/plugin.js +1 -1
  22. data/vendor/assets/javascripts/tinymce/plugins/imagetools/plugin.js +1 -1
  23. data/vendor/assets/javascripts/tinymce/plugins/importcss/plugin.js +1 -1
  24. data/vendor/assets/javascripts/tinymce/plugins/insertdatetime/plugin.js +1 -1
  25. data/vendor/assets/javascripts/tinymce/plugins/legacyoutput/plugin.js +1 -1
  26. data/vendor/assets/javascripts/tinymce/plugins/link/plugin.js +2 -2
  27. data/vendor/assets/javascripts/tinymce/plugins/lists/plugin.js +1 -1
  28. data/vendor/assets/javascripts/tinymce/plugins/media/plugin.js +1 -1
  29. data/vendor/assets/javascripts/tinymce/plugins/nonbreaking/plugin.js +1 -1
  30. data/vendor/assets/javascripts/tinymce/plugins/noneditable/plugin.js +1 -1
  31. data/vendor/assets/javascripts/tinymce/plugins/pagebreak/plugin.js +1 -1
  32. data/vendor/assets/javascripts/tinymce/plugins/paste/plugin.js +1 -1
  33. data/vendor/assets/javascripts/tinymce/plugins/preview/plugin.js +1 -1
  34. data/vendor/assets/javascripts/tinymce/plugins/print/plugin.js +1 -1
  35. data/vendor/assets/javascripts/tinymce/plugins/quickbars/plugin.js +2 -2
  36. data/vendor/assets/javascripts/tinymce/plugins/save/plugin.js +1 -1
  37. data/vendor/assets/javascripts/tinymce/plugins/searchreplace/plugin.js +1 -1
  38. data/vendor/assets/javascripts/tinymce/plugins/spellchecker/plugin.js +1 -1
  39. data/vendor/assets/javascripts/tinymce/plugins/tabfocus/plugin.js +1 -1
  40. data/vendor/assets/javascripts/tinymce/plugins/table/plugin.js +2 -2
  41. data/vendor/assets/javascripts/tinymce/plugins/template/plugin.js +2 -2
  42. data/vendor/assets/javascripts/tinymce/plugins/textcolor/plugin.js +1 -1
  43. data/vendor/assets/javascripts/tinymce/plugins/textpattern/plugin.js +1 -1
  44. data/vendor/assets/javascripts/tinymce/plugins/toc/plugin.js +1 -1
  45. data/vendor/assets/javascripts/tinymce/plugins/visualblocks/plugin.js +1 -1
  46. data/vendor/assets/javascripts/tinymce/plugins/visualchars/plugin.js +1 -1
  47. data/vendor/assets/javascripts/tinymce/plugins/wordcount/plugin.js +1 -1
  48. data/vendor/assets/javascripts/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  49. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.min.css +1 -1
  50. data/vendor/assets/javascripts/tinymce/skins/ui/oxide/skin.mobile.min.css +1 -1
  51. data/vendor/assets/javascripts/tinymce/themes/mobile/theme.js +2 -2
  52. data/vendor/assets/javascripts/tinymce/themes/silver/theme.js +2 -2
  53. data/vendor/assets/javascripts/tinymce/tinymce.js +2 -2
  54. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 486f69724a2f5d6f560450aedf93d5f9b03cae609cc485418ae6b3b82df68d09
4
- data.tar.gz: 87c0a9b7b1edb8f20ca0822ea801f2051d6e0dae1a2ea1f761341a50a46369cc
3
+ metadata.gz: bcf039faea2a5ab932c4c4cccca8220fc3367c01613a94145c07266a6fe4b0e9
4
+ data.tar.gz: 16717e16d1abd1693b8f6b9f05d3485627f3b8d1854cb2d05db2d8c8616e653c
5
5
  SHA512:
6
- metadata.gz: c179c370ca67c49da0f9d7fb9c6d49230eb5560e84f981e14aa5797f7a05b9a4c20b99f2be86de0b78e7fa1353e08c446efb036ebcf90cec228dad980c4a95fe
7
- data.tar.gz: 0413d8fc7f269047f41b659a94575811ab2c6ea4ab72176878e425ff20cdedc11f277ce2f447085b7f06761547431026ef0afa3808070e228fe61ba19da94762
6
+ metadata.gz: 2c0f124382e123ba5ca346f6cfe5700f8002ce3621e897960826b6d27715276c6fc0f664bcecf5504472bb32934047760d1db8ece726802eb5e5d73aac477594
7
+ data.tar.gz: '00287527f826b48d847b9120505e60482f489719d13d5daa81c714be1c2590a9264bcb36c3c8991fbf6dfb521fd29c409c8414d5aa78b07152c16d4e0d8eb85b'
@@ -4,7 +4,7 @@
4
4
  * For LGPL see License.txt in the project root for license information.
5
5
  * For commercial licenses see https://www.tiny.cloud/
6
6
  *
7
- * Version: 5.0.1 (2019-02-21)
7
+ * Version: 5.0.2 (2019-03-05)
8
8
  */
9
9
  (function () {
10
10
  (function (domGlobals) {
@@ -13695,17 +13695,23 @@
13695
13695
  var container = pos.container();
13696
13696
  return NodeType.isText(container) && container.data.length === 0;
13697
13697
  };
13698
- var isNextToContentEditableFalse = function (relativeOffset, caretPosition) {
13699
- var node = getChildNodeAtRelativeOffset(relativeOffset, caretPosition);
13700
- return NodeType.isContentEditableFalse(node) && !NodeType.isBogusAll(node);
13698
+ var matchesElementPosition = function (before, predicate) {
13699
+ return function (pos) {
13700
+ return Option.from(getChildNodeAtRelativeOffset(before ? 0 : -1, pos)).filter(predicate).isSome();
13701
+ };
13701
13702
  };
13702
- var isBeforeContentEditableFalse = curry(isNextToContentEditableFalse, 0);
13703
- var isAfterContentEditableFalse = curry(isNextToContentEditableFalse, -1);
13704
- var isNextToTable = function (relativeOffset, caretPosition) {
13705
- return NodeType.isTable(getChildNodeAtRelativeOffset(relativeOffset, caretPosition));
13703
+ var isImageBlock = function (node) {
13704
+ return node.nodeName === 'IMG' && get$2(Element.fromDom(node), 'display') === 'block';
13706
13705
  };
13707
- var isBeforeTable = curry(isNextToTable, 0);
13708
- var isAfterTable = curry(isNextToTable, -1);
13706
+ var isCefNode = function (node) {
13707
+ return NodeType.isContentEditableFalse(node) && !NodeType.isBogusAll(node);
13708
+ };
13709
+ var isBeforeImageBlock = matchesElementPosition(true, isImageBlock);
13710
+ var isAfterImageBlock = matchesElementPosition(false, isImageBlock);
13711
+ var isBeforeTable = matchesElementPosition(true, NodeType.isTable);
13712
+ var isAfterTable = matchesElementPosition(false, NodeType.isTable);
13713
+ var isBeforeContentEditableFalse = matchesElementPosition(true, isCefNode);
13714
+ var isAfterContentEditableFalse = matchesElementPosition(false, isCefNode);
13709
13715
 
13710
13716
  var isContentEditableTrue$4 = NodeType.isContentEditableTrue;
13711
13717
  var isContentEditableFalse$9 = NodeType.isContentEditableFalse;
@@ -16135,69 +16141,96 @@
16135
16141
  };
16136
16142
  var ApplyFormat = { applyFormat: applyFormat };
16137
16143
 
16138
- var each$e = Tools.each;
16139
- var setup$5 = function (formatChangeData, editor) {
16140
- var currentFormats = {};
16141
- formatChangeData.set({});
16144
+ var setup$5 = function (registeredFormatListeners, editor) {
16145
+ var currentFormats = Cell({});
16146
+ registeredFormatListeners.set({});
16142
16147
  editor.on('NodeChange', function (e) {
16143
- var parents = FormatUtils.getParents(editor.dom, e.element);
16144
- var matchedFormats = {};
16145
- parents = Tools.grep(parents, function (node) {
16146
- return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');
16147
- });
16148
- each$e(formatChangeData.get(), function (callbacks, format) {
16149
- each$e(parents, function (node) {
16150
- if (editor.formatter.matchNode(node, format, {}, callbacks.similar)) {
16151
- if (!currentFormats[format]) {
16152
- each$e(callbacks, function (callback) {
16153
- callback(true, {
16154
- node: node,
16155
- format: format,
16156
- parents: parents
16157
- });
16148
+ updateAndFireChangeCallbacks(editor, e.element, currentFormats, registeredFormatListeners.get());
16149
+ });
16150
+ };
16151
+ var updateAndFireChangeCallbacks = function (editor, elm, currentFormats, formatChangeData) {
16152
+ var formatsList = keys(currentFormats.get());
16153
+ var newFormats = {};
16154
+ var matchedFormats = {};
16155
+ var parents = filter(FormatUtils.getParents(editor.dom, elm), function (node) {
16156
+ return node.nodeType === 1 && !node.getAttribute('data-mce-bogus');
16157
+ });
16158
+ each$3(formatChangeData, function (data, format) {
16159
+ Tools.each(parents, function (node) {
16160
+ if (editor.formatter.matchNode(node, format, {}, data.similar)) {
16161
+ if (formatsList.indexOf(format) === -1) {
16162
+ each(data.callbacks, function (callback) {
16163
+ callback(true, {
16164
+ node: node,
16165
+ format: format,
16166
+ parents: parents
16158
16167
  });
16159
- currentFormats[format] = callbacks;
16160
- }
16161
- matchedFormats[format] = callbacks;
16162
- return false;
16163
- }
16164
- if (MatchFormat.matchesUnInheritedFormatSelector(editor, node, format)) {
16165
- return false;
16166
- }
16167
- });
16168
- });
16169
- each$e(currentFormats, function (callbacks, format) {
16170
- if (!matchedFormats[format]) {
16171
- delete currentFormats[format];
16172
- each$e(callbacks, function (callback) {
16173
- callback(false, {
16174
- node: e.element,
16175
- format: format,
16176
- parents: parents
16177
16168
  });
16178
- });
16169
+ newFormats[format] = data.callbacks;
16170
+ }
16171
+ matchedFormats[format] = data.callbacks;
16172
+ return false;
16173
+ }
16174
+ if (MatchFormat.matchesUnInheritedFormatSelector(editor, node, format)) {
16175
+ return false;
16179
16176
  }
16180
16177
  });
16181
16178
  });
16179
+ var remainingFormats = filterRemainingFormats(currentFormats.get(), matchedFormats, elm, parents);
16180
+ currentFormats.set(__assign({}, newFormats, remainingFormats));
16181
+ };
16182
+ var filterRemainingFormats = function (currentFormats, matchedFormats, elm, parents) {
16183
+ return bifilter(currentFormats, function (callbacks, format) {
16184
+ if (!has(matchedFormats, format)) {
16185
+ each(callbacks, function (callback) {
16186
+ callback(false, {
16187
+ node: elm,
16188
+ format: format,
16189
+ parents: parents
16190
+ });
16191
+ });
16192
+ return false;
16193
+ } else {
16194
+ return true;
16195
+ }
16196
+ }).t;
16182
16197
  };
16183
- var addListeners = function (formatChangeData, formats, callback, similar) {
16184
- var formatChangeItems = formatChangeData.get();
16185
- each$e(formats.split(','), function (format) {
16198
+ var addListeners = function (registeredFormatListeners, formats, callback, similar) {
16199
+ var formatChangeItems = registeredFormatListeners.get();
16200
+ each(formats.split(','), function (format) {
16186
16201
  if (!formatChangeItems[format]) {
16187
- formatChangeItems[format] = [];
16188
- formatChangeItems[format].similar = similar;
16202
+ formatChangeItems[format] = {
16203
+ similar: similar,
16204
+ callbacks: []
16205
+ };
16189
16206
  }
16190
- formatChangeItems[format].push(callback);
16207
+ formatChangeItems[format].callbacks.push(callback);
16191
16208
  });
16192
- formatChangeData.set(formatChangeItems);
16209
+ registeredFormatListeners.set(formatChangeItems);
16193
16210
  };
16194
- var formatChanged = function (editor, formatChangeState, formats, callback, similar) {
16195
- if (formatChangeState.get() === null) {
16196
- setup$5(formatChangeState, editor);
16211
+ var removeListeners = function (registeredFormatListeners, formats, callback) {
16212
+ var formatChangeItems = registeredFormatListeners.get();
16213
+ each(formats.split(','), function (format) {
16214
+ formatChangeItems[format].callbacks = filter(formatChangeItems[format].callbacks, function (c) {
16215
+ return c !== callback;
16216
+ });
16217
+ if (formatChangeItems[format].callbacks.length === 0) {
16218
+ delete formatChangeItems[format];
16219
+ }
16220
+ });
16221
+ registeredFormatListeners.set(formatChangeItems);
16222
+ };
16223
+ var formatChanged = function (editor, registeredFormatListeners, formats, callback, similar) {
16224
+ if (registeredFormatListeners.get() === null) {
16225
+ setup$5(registeredFormatListeners, editor);
16197
16226
  }
16198
- addListeners(formatChangeState, formats, callback, similar);
16227
+ addListeners(registeredFormatListeners, formats, callback, similar);
16228
+ return {
16229
+ unbind: function () {
16230
+ return removeListeners(registeredFormatListeners, formats, callback);
16231
+ }
16232
+ };
16199
16233
  };
16200
- var FormatChanged = { formatChanged: formatChanged };
16201
16234
 
16202
16235
  var get$6 = function (dom) {
16203
16236
  var formats = {
@@ -16500,7 +16533,7 @@
16500
16533
  };
16501
16534
  }
16502
16535
 
16503
- var each$f = Tools.each;
16536
+ var each$e = Tools.each;
16504
16537
  var dom = DOMUtils$1.DOM;
16505
16538
  var parsedSelectorToHtml = function (ancestry, editor) {
16506
16539
  var elm, item, fragment;
@@ -16666,19 +16699,19 @@
16666
16699
  previewFrag = parsedSelectorToHtml([name], editor);
16667
16700
  }
16668
16701
  previewElm = dom.select(name, previewFrag)[0] || previewFrag.firstChild;
16669
- each$f(format.styles, function (value, name) {
16702
+ each$e(format.styles, function (value, name) {
16670
16703
  value = removeVars(value);
16671
16704
  if (value) {
16672
16705
  dom.setStyle(previewElm, name, value);
16673
16706
  }
16674
16707
  });
16675
- each$f(format.attributes, function (value, name) {
16708
+ each$e(format.attributes, function (value, name) {
16676
16709
  value = removeVars(value);
16677
16710
  if (value) {
16678
16711
  dom.setAttrib(previewElm, name, value);
16679
16712
  }
16680
16713
  });
16681
- each$f(format.classes, function (value) {
16714
+ each$e(format.classes, function (value) {
16682
16715
  value = removeVars(value);
16683
16716
  if (!dom.hasClass(previewElm, value)) {
16684
16717
  dom.addClass(previewElm, value);
@@ -16692,7 +16725,7 @@
16692
16725
  editor.getBody().appendChild(previewFrag);
16693
16726
  parentFontSize = dom.getStyle(editor.getBody(), 'fontSize', true);
16694
16727
  parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;
16695
- each$f(previewStyles.split(' '), function (name) {
16728
+ each$e(previewStyles.split(' '), function (name) {
16696
16729
  var value = dom.getStyle(previewElm, name, true);
16697
16730
  if (name === 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) {
16698
16731
  value = dom.getStyle(editor.getBody(), name, true);
@@ -16785,7 +16818,7 @@
16785
16818
  matchAll: curry(MatchFormat.matchAll, editor),
16786
16819
  matchNode: curry(MatchFormat.matchNode, editor),
16787
16820
  canApply: curry(MatchFormat.canApply, editor),
16788
- formatChanged: curry(FormatChanged.formatChanged, editor, formatChangeState),
16821
+ formatChanged: curry(formatChanged, editor, formatChangeState),
16789
16822
  getCssText: curry(Preview.getCssText, editor)
16790
16823
  };
16791
16824
  }
@@ -16837,7 +16870,11 @@
16837
16870
  while (i--) {
16838
16871
  node = nodes[i];
16839
16872
  if (node.attributes.map['data-mce-type'] === 'bookmark' && !args.cleanup) {
16840
- node.remove();
16873
+ if (node.firstChild !== undefined && !Zwsp.isZwsp(node.firstChild.value)) {
16874
+ node.unwrap();
16875
+ } else {
16876
+ node.remove();
16877
+ }
16841
16878
  }
16842
16879
  }
16843
16880
  });
@@ -17211,7 +17248,7 @@
17211
17248
  }
17212
17249
  };
17213
17250
 
17214
- var makeMap$4 = Tools.makeMap, each$g = Tools.each, explode$2 = Tools.explode, extend$2 = Tools.extend;
17251
+ var makeMap$4 = Tools.makeMap, each$f = Tools.each, explode$2 = Tools.explode, extend$2 = Tools.extend;
17215
17252
  function DomParser (settings, schema) {
17216
17253
  if (schema === void 0) {
17217
17254
  schema = Schema();
@@ -17335,7 +17372,7 @@
17335
17372
  return node;
17336
17373
  };
17337
17374
  var addNodeFilter = function (name, callback) {
17338
- each$g(explode$2(name), function (name) {
17375
+ each$f(explode$2(name), function (name) {
17339
17376
  var list = nodeFilters[name];
17340
17377
  if (!list) {
17341
17378
  nodeFilters[name] = list = [];
@@ -17356,7 +17393,7 @@
17356
17393
  return out;
17357
17394
  };
17358
17395
  var addAttributeFilter = function (name, callback) {
17359
- each$g(explode$2(name), function (name) {
17396
+ each$f(explode$2(name), function (name) {
17360
17397
  var i;
17361
17398
  for (i = 0; i < attributeFilters.length; i++) {
17362
17399
  if (attributeFilters[i].name === name) {
@@ -21243,6 +21280,22 @@
21243
21280
  };
21244
21281
  var TableDelete = { backspaceDelete: backspaceDelete$6 };
21245
21282
 
21283
+ var deleteCaret$2 = function (editor, forward) {
21284
+ var fromPos = CaretPosition$1.fromRangeStart(editor.selection.getRng());
21285
+ return CaretFinder.fromPosition(forward, editor.getBody(), fromPos).filter(function (pos) {
21286
+ return forward ? isBeforeImageBlock(pos) : isAfterImageBlock(pos);
21287
+ }).bind(function (pos) {
21288
+ return Option.from(getChildNodeAtRelativeOffset(forward ? 0 : -1, pos));
21289
+ }).map(function (elm) {
21290
+ editor.selection.select(elm);
21291
+ return true;
21292
+ }).getOr(false);
21293
+ };
21294
+ var backspaceDelete$7 = function (editor, forward) {
21295
+ return editor.selection.isCollapsed() ? deleteCaret$2(editor, forward) : false;
21296
+ };
21297
+ var PageBreakDelete = { backspaceDelete: backspaceDelete$7 };
21298
+
21246
21299
  var executeKeydownOverride$1 = function (editor, caret, evt) {
21247
21300
  MatchKeys.execute([
21248
21301
  {
@@ -21277,6 +21330,14 @@
21277
21330
  keyCode: VK.DELETE,
21278
21331
  action: MatchKeys.action(TableDelete.backspaceDelete, editor, true)
21279
21332
  },
21333
+ {
21334
+ keyCode: VK.BACKSPACE,
21335
+ action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, false)
21336
+ },
21337
+ {
21338
+ keyCode: VK.DELETE,
21339
+ action: MatchKeys.action(PageBreakDelete.backspaceDelete, editor, true)
21340
+ },
21280
21341
  {
21281
21342
  keyCode: VK.BACKSPACE,
21282
21343
  action: MatchKeys.action(BlockRangeDelete.backspaceDelete, editor, false)
@@ -21662,7 +21723,7 @@
21662
21723
  } else {
21663
21724
  do {
21664
21725
  if (textInlineElements[node.nodeName]) {
21665
- if (isCaretNode(node)) {
21726
+ if (isCaretNode(node) || Bookmarks.isBookmarkNode(node)) {
21666
21727
  continue;
21667
21728
  }
21668
21729
  clonedNode = node.cloneNode(false);
@@ -23241,7 +23302,7 @@
23241
23302
  'indeterminate': '<svg width="24" height="24"><path d="M12 21a9 9 0 1 1 0-18 9 9 0 0 1 0 18zM9 11a1 1 0 0 0 0 2h6a1 1 0 0 0 0-2H9z" fill-rule="evenodd"/></svg>',
23242
23303
  'info': '<svg width="24" height="24"><path d="M12 4a7.8 7.8 0 0 1 5.7 2.3A8 8 0 1 1 12 4zm-1 3v2h2V7h-2zm3 10v-1h-1v-5h-3v1h1v4h-1v1h4z" fill-rule="evenodd"/></svg>',
23243
23304
  'insert-character': '<svg width="24" height="24"><path d="M15 18h4l1-2v4h-6v-3.3l1.4-1a6 6 0 0 0 1.8-2.9 6.3 6.3 0 0 0-.1-4.1 5.8 5.8 0 0 0-3-3.2c-.6-.3-1.3-.5-2.1-.5a5.1 5.1 0 0 0-3.9 1.8 6.3 6.3 0 0 0-1.3 6 6.2 6.2 0 0 0 1.8 3l1.4.9V20H4v-4l1 2h4v-.5l-2-1L5.4 15A6.5 6.5 0 0 1 4 11c0-1 .2-1.9.6-2.7A7 7 0 0 1 6.3 6C7.1 5.4 8 5 9 4.5c1-.3 2-.5 3.1-.5a8.8 8.8 0 0 1 5.7 2 7 7 0 0 1 1.7 2.3 6 6 0 0 1 .2 4.8c-.2.7-.6 1.3-1 1.9a7.6 7.6 0 0 1-3.6 2.5v.5z" fill-rule="evenodd"/></svg>',
23244
- 'insert-time': '<svg width="24" height="24"><g fill-rule="nonzero"><path d="M19 2H5a3 3 0 0 0-3 3v14a3 3 0 0 0 3 3h14a3 3 0 0 0 3-3V5a3 3 0 0 0-3-3zm-7 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"/><path d="M15 12h-3V7a.5.5 0 0 0-1 0v6h4a.5.5 0 0 0 0-1z"/></g></svg>',
23305
+ 'insert-time': '<svg width="24" height="24"><g fill-rule="nonzero"><path d="M12 19a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0 2a9 9 0 1 1 0-18 9 9 0 0 1 0 18z"/><path d="M16 12h-3V7c0-.6-.4-1-1-1a1 1 0 0 0-1 1v7h5c.6 0 1-.4 1-1s-.4-1-1-1z"/></g></svg>',
23245
23306
  'invert': '<svg width="24" height="24"><path d="M18 19.3L16.5 18a5.8 5.8 0 0 1-3.1 1.9 6.1 6.1 0 0 1-5.5-1.6A5.8 5.8 0 0 1 6 14v-.3l.1-1.2A13.9 13.9 0 0 1 7.7 9l-3-3 .7-.8 2.8 2.9 9 8.9 1.5 1.6-.7.6zm0-5.5v.3l-.1 1.1-.4 1-1.2-1.2a4.3 4.3 0 0 0 .2-1v-.2c0-.4 0-.8-.2-1.3l-.5-1.4a14.8 14.8 0 0 0-3-4.2L12 6a26.1 26.1 0 0 0-2.2 2.5l-1-1a20.9 20.9 0 0 1 2.9-3.3L12 4l1 .8a22.2 22.2 0 0 1 4 5.4c.6 1.2 1 2.4 1 3.6z" fill-rule="evenodd"/></svg>',
23246
23307
  'italic': '<svg width="24" height="24"><path d="M16.7 4.7l-.1.9h-.3c-.6 0-1 0-1.4.3-.3.3-.4.6-.5 1.1l-2.1 9.8v.6c0 .5.4.8 1.4.8h.2l-.2.8H8l.2-.8h.2c1.1 0 1.8-.5 2-1.5l2-9.8.1-.5c0-.6-.4-.8-1.4-.8h-.3l.2-.9h5.8z" fill-rule="evenodd"/></svg>',
23247
23308
  'line': '<svg width="24" height="24"><path d="M15 9l-8 8H4v-3l8-8 3 3zm1-1l-3-3 1-1h1c-.2 0 0 0 0 0l2 2s0 .2 0 0v1l-1 1zM4 18h16v2H4v-2z" fill-rule="evenodd"/></svg>',
@@ -23313,7 +23374,7 @@
23313
23374
  'table-top-header': '<svg width="24" height="24"><path d="M4 5h16v13H4V5zm5 12v-3H5v3h4zm0-4v-3H5v3h4zm5 4v-3h-4v3h4zm0-4v-3h-4v3h4zm5 4v-3h-4v3h4zm0-4v-3h-4v3h4z" fill-rule="evenodd"/></svg>',
23314
23375
  'table': '<svg width="24" height="24"><path d="M4 5h16v14H4V5zm6 9h4v-3h-4v3zm4 1h-4v3h4v-3zm0-8h-4v3h4V7zM9 7H5v3h4V7zm-4 4v3h4v-3H5zm10 0v3h4v-3h-4zm0-1h4V7h-4v3zM5 15v3h4v-3H5zm10 3h4v-3h-4v3z" fill-rule="evenodd"/></svg>',
23315
23376
  'template': '<svg width="24" height="24"><path d="M19 19v-1H5v1h14zM9 16v-4a5 5 0 1 1 6 0v4h4a2 2 0 0 1 2 2v3H3v-3c0-1.1.9-2 2-2h4zm4 0v-5l.8-.6a3 3 0 1 0-3.6 0l.8.6v5h2z" fill-rule="nonzero"/></svg>',
23316
- 'temporary-placeholder': '<svg width="24" height="24"><path d="M20.5 2.5c-.8 0-1.5.7-1.5 1.5a1.5 1.5 0 0 1-3 0 3 3 0 0 0-6 0v2H8.5c-.3 0-.5.2-.5.5v1a8 8 0 1 0 6 0v-1c0-.3-.2-.5-.5-.5H11V4a2 2 0 0 1 4 0 2.5 2.5 0 0 0 5 0c0-.3.2-.5.5-.5a.5.5 0 0 0 0-1zM8.1 10.9a5 5 0 0 0-1.2 7 .5.5 0 0 1-.8.5 6 6 0 0 1 1.5-8.3.5.5 0 1 1 .5.8z" fill-rule="nonzero"/></svg>',
23377
+ 'temporary-placeholder': '<svg width="24" height="24"><g fill-rule="evenodd"><path d="M9 7.6V6h2.5V4.5a.5.5 0 1 1 1 0V6H15v1.6a8 8 0 1 1-6 0zm-2.6 5.3a.5.5 0 0 0 .3.6c.3 0 .6 0 .6-.3l.1-.2a5 5 0 0 1 3.3-2.8c.3-.1.4-.4.4-.6-.1-.3-.4-.5-.6-.4a6 6 0 0 0-4.1 3.7z"/><circle cx="14" cy="4" r="1"/><circle cx="12" cy="2" r="1"/><circle cx="10" cy="4" r="1"/></g></svg>',
23317
23378
  'text-color': '<svg width="24" height="24"><g fill-rule="evenodd"><path id="tox-icon-text-color__color" d="M3 18h18v3H3z"/><path d="M8.7 16h-.8a.5.5 0 0 1-.5-.6l2.7-9c.1-.3.3-.4.5-.4h2.8c.2 0 .4.1.5.4l2.7 9a.5.5 0 0 1-.5.6h-.8a.5.5 0 0 1-.4-.4l-.7-2.2c0-.3-.3-.4-.5-.4h-3.4c-.2 0-.4.1-.5.4l-.7 2.2c0 .3-.2.4-.4.4zm2.6-7.6l-.6 2a.5.5 0 0 0 .5.6h1.6a.5.5 0 0 0 .5-.6l-.6-2c0-.3-.3-.4-.5-.4h-.4c-.2 0-.4.1-.5.4z"/></g></svg>',
23318
23379
  'toc': '<svg width="24" height="24"><path d="M5 5c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 1 1 0-2zm3 0h11c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 1 1 0-2zm-3 8c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h11c.6 0 1 .4 1 1s-.4 1-1 1H8a1 1 0 0 1 0-2zm0-4c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 1 1 0-2zm3 0h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2zm-3 8c.6 0 1 .4 1 1s-.4 1-1 1a1 1 0 0 1 0-2zm3 0h8c.6 0 1 .4 1 1s-.4 1-1 1h-8a1 1 0 0 1 0-2z" fill-rule="evenodd"/></svg>',
23319
23380
  'translate': '<svg width="24" height="24"><path d="M12.7 14.3l-.3.7-.4.7-2.2-2.2-3.1 3c-.3.4-.8.4-1 0a.7.7 0 0 1 0-1l3.1-3A12.4 12.4 0 0 1 6.7 9H8a10.1 10.1 0 0 0 1.7 2.4c.5-.5 1-1.1 1.4-1.8l.9-2H4.7a.7.7 0 1 1 0-1.5h4.4v-.7c0-.4.3-.8.7-.8.4 0 .7.4.7.8v.7H15c.4 0 .8.3.8.7 0 .4-.4.8-.8.8h-1.4a12.3 12.3 0 0 1-1 2.4 13.5 13.5 0 0 1-1.7 2.3l1.9 1.8zm4.3-3l2.7 7.3a.5.5 0 0 1-.4.7 1 1 0 0 1-1-.7l-.6-1.5h-3.4l-.6 1.5a1 1 0 0 1-1 .7.5.5 0 0 1-.4-.7l2.7-7.4a1 1 0 1 1 2 0zm-2.2 4.4h2.4L16 12.5l-1.2 3.2z" fill-rule="evenodd"/></svg>',
@@ -24318,7 +24379,7 @@
24318
24379
  });
24319
24380
  };
24320
24381
 
24321
- var each$h = Tools.each, extend$3 = Tools.extend;
24382
+ var each$g = Tools.each, extend$3 = Tools.extend;
24322
24383
  var map$3 = Tools.map, inArray$2 = Tools.inArray;
24323
24384
  function EditorCommands (editor) {
24324
24385
  var dom, selection, formatter;
@@ -24361,7 +24422,7 @@
24361
24422
  });
24362
24423
  return true;
24363
24424
  }
24364
- each$h(editor.plugins, function (p) {
24425
+ each$g(editor.plugins, function (p) {
24365
24426
  if (p.execCommand && p.execCommand(command, ui, value)) {
24366
24427
  editor.fire('ExecCommand', {
24367
24428
  command: command,
@@ -24428,8 +24489,8 @@
24428
24489
  };
24429
24490
  var addCommands = function (commandList, type) {
24430
24491
  type = type || 'exec';
24431
- each$h(commandList, function (callback, command) {
24432
- each$h(command.toLowerCase().split(','), function (command) {
24492
+ each$g(commandList, function (callback, command) {
24493
+ each$g(command.toLowerCase().split(','), function (command) {
24433
24494
  commands[type][command] = callback;
24434
24495
  });
24435
24496
  });
@@ -24543,7 +24604,7 @@
24543
24604
  if (align === 'full') {
24544
24605
  align = 'justify';
24545
24606
  }
24546
- each$h('left,center,right,justify'.split(','), function (name) {
24607
+ each$g('left,center,right,justify'.split(','), function (name) {
24547
24608
  if (align !== name) {
24548
24609
  formatter.remove('align' + name);
24549
24610
  }
@@ -25038,7 +25099,7 @@
25038
25099
  EditorObservable = Tools.extend({}, Observable, EditorObservable);
25039
25100
  var EditorObservable$1 = EditorObservable;
25040
25101
 
25041
- var each$i = Tools.each, explode$3 = Tools.explode;
25102
+ var each$h = Tools.each, explode$3 = Tools.explode;
25042
25103
  var keyCodeLookup = {
25043
25104
  f1: 112,
25044
25105
  f2: 113,
@@ -25061,7 +25122,7 @@
25061
25122
  var parseShortcut = function (pattern) {
25062
25123
  var id, key;
25063
25124
  var shortcut = {};
25064
- each$i(explode$3(pattern, '+'), function (value) {
25125
+ each$h(explode$3(pattern, '+'), function (value) {
25065
25126
  if (value in modifierNames) {
25066
25127
  shortcut[value] = true;
25067
25128
  } else {
@@ -25139,7 +25200,7 @@
25139
25200
  };
25140
25201
  editor.on('keyup keypress keydown', function (e) {
25141
25202
  if ((hasModifier(e) || isFunctionKey(e)) && !e.isDefaultPrevented()) {
25142
- each$i(shortcuts, function (shortcut) {
25203
+ each$h(shortcuts, function (shortcut) {
25143
25204
  if (matchShortcut(e, shortcut)) {
25144
25205
  pendingPatterns = shortcut.subpatterns.slice(0);
25145
25206
  if (e.type === 'keydown') {
@@ -25170,7 +25231,7 @@
25170
25231
  editor.execCommand(cmd[0], cmd[1], cmd[2]);
25171
25232
  };
25172
25233
  }
25173
- each$i(explode$3(Tools.trim(pattern.toLowerCase())), function (pattern) {
25234
+ each$h(explode$3(Tools.trim(pattern.toLowerCase())), function (pattern) {
25174
25235
  var shortcut = createShortcut(pattern, desc, cmdFunc, scope);
25175
25236
  shortcuts[shortcut.id] = shortcut;
25176
25237
  });
@@ -25186,7 +25247,7 @@
25186
25247
  };
25187
25248
  }
25188
25249
 
25189
- var each$j = Tools.each, trim$4 = Tools.trim;
25250
+ var each$i = Tools.each, trim$4 = Tools.trim;
25190
25251
  var queryParts = 'source protocol authority userInfo user password host port relative path directory file query anchor'.split(' ');
25191
25252
  var DEFAULT_PORTS = {
25192
25253
  ftp: 21,
@@ -25219,7 +25280,7 @@
25219
25280
  }
25220
25281
  url = url.replace(/@@/g, '(mce_at)');
25221
25282
  url = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(url);
25222
- each$j(queryParts, function (v, i) {
25283
+ each$i(queryParts, function (v, i) {
25223
25284
  var part = url[i];
25224
25285
  if (part) {
25225
25286
  part = part.replace(/\(mce_at\)/g, '@@');
@@ -25335,7 +25396,7 @@
25335
25396
  tr = /\/$/.test(path) ? '/' : '';
25336
25397
  base = base.split('/');
25337
25398
  path = path.split('/');
25338
- each$j(base, function (k) {
25399
+ each$i(base, function (k) {
25339
25400
  if (k) {
25340
25401
  o.push(k);
25341
25402
  }
@@ -25433,7 +25494,7 @@
25433
25494
  };
25434
25495
 
25435
25496
  var DOM$7 = DOMUtils$1.DOM;
25436
- var extend$4 = Tools.extend, each$k = Tools.each;
25497
+ var extend$4 = Tools.extend, each$j = Tools.each;
25437
25498
  var resolve$4 = Tools.resolve;
25438
25499
  var ie$2 = Env.ie;
25439
25500
  var Editor = function (id, settings, editorManager) {
@@ -25640,7 +25701,7 @@
25640
25701
  elm.innerHTML = html;
25641
25702
  }
25642
25703
  if (form = DOM$7.getParent(self.id, 'form')) {
25643
- each$k(form.elements, function (elm) {
25704
+ each$j(form.elements, function (elm) {
25644
25705
  if (elm.name === self.id) {
25645
25706
  elm.value = html;
25646
25707
  return false;
@@ -25746,7 +25807,7 @@
25746
25807
  if (self.hasVisual === undefined) {
25747
25808
  self.hasVisual = settings.visual;
25748
25809
  }
25749
- each$k(dom.select('table,a', elm), function (elm) {
25810
+ each$j(dom.select('table,a', elm), function (elm) {
25750
25811
  var value;
25751
25812
  switch (elm.nodeName) {
25752
25813
  case 'TABLE':
@@ -25927,7 +25988,7 @@
25927
25988
  };
25928
25989
 
25929
25990
  var DOM$9 = DOMUtils$1.DOM;
25930
- var explode$4 = Tools.explode, each$l = Tools.each, extend$5 = Tools.extend;
25991
+ var explode$4 = Tools.explode, each$k = Tools.each, extend$5 = Tools.extend;
25931
25992
  var instanceCounter = 0, beforeUnloadDelegate, EditorManager, boundGlobalEvents = false;
25932
25993
  var legacyEditors = [];
25933
25994
  var editors = [];
@@ -25936,7 +25997,7 @@
25936
25997
  };
25937
25998
  var globalEventDelegate = function (e) {
25938
25999
  var type = e.type;
25939
- each$l(EditorManager.get(), function (editor) {
26000
+ each$k(EditorManager.get(), function (editor) {
25940
26001
  switch (type) {
25941
26002
  case 'scroll':
25942
26003
  editor.fire('ScrollWindow', e);
@@ -25991,8 +26052,8 @@
25991
26052
  defaultSettings: {},
25992
26053
  $: DomQuery,
25993
26054
  majorVersion: '5',
25994
- minorVersion: '0.1',
25995
- releaseDate: '2019-02-21',
26055
+ minorVersion: '0.2',
26056
+ releaseDate: '2019-03-05',
25996
26057
  editors: legacyEditors,
25997
26058
  i18n: I18n,
25998
26059
  activeEditor: null,
@@ -26092,7 +26153,7 @@
26092
26153
  return [];
26093
26154
  }
26094
26155
  if (settings.types) {
26095
- each$l(settings.types, function (type) {
26156
+ each$k(settings.types, function (type) {
26096
26157
  targets = targets.concat(DOM$9.select(type.selector));
26097
26158
  });
26098
26159
  return targets;
@@ -26105,13 +26166,13 @@
26105
26166
  case 'exact':
26106
26167
  l = settings.elements || '';
26107
26168
  if (l.length > 0) {
26108
- each$l(explode$4(l), function (id) {
26169
+ each$k(explode$4(l), function (id) {
26109
26170
  var elm;
26110
26171
  if (elm = DOM$9.get(id)) {
26111
26172
  targets.push(elm);
26112
26173
  } else {
26113
- each$l(domGlobals.document.forms, function (f) {
26114
- each$l(f.elements, function (e) {
26174
+ each$k(domGlobals.document.forms, function (f) {
26175
+ each$k(f.elements, function (e) {
26115
26176
  if (e.name === id) {
26116
26177
  id = 'mce_editor_' + instanceCounter++;
26117
26178
  DOM$9.setAttrib(e, 'id', id);
@@ -26125,7 +26186,7 @@
26125
26186
  break;
26126
26187
  case 'textareas':
26127
26188
  case 'specific_textareas':
26128
- each$l(DOM$9.select('textarea'), function (elm) {
26189
+ each$k(DOM$9.select('textarea'), function (elm) {
26129
26190
  if (settings.editor_deselector && hasClass(elm, settings.editor_deselector)) {
26130
26191
  return;
26131
26192
  }
@@ -26159,7 +26220,7 @@
26159
26220
  execCallback('onpageload');
26160
26221
  targets = DomQuery.unique(findTargets(settings));
26161
26222
  if (settings.types) {
26162
- each$l(settings.types, function (type) {
26223
+ each$k(settings.types, function (type) {
26163
26224
  Tools.each(targets, function (elm) {
26164
26225
  if (DOM$9.is(elm, type.selector)) {
26165
26226
  createEditor(createId(elm), extend$5({}, settings, type), elm);
@@ -26179,7 +26240,7 @@
26179
26240
  if (targets.length === 0) {
26180
26241
  provideResults([]);
26181
26242
  } else {
26182
- each$l(targets, function (elm) {
26243
+ each$k(targets, function (elm) {
26183
26244
  if (isInvalidInlineTarget(settings, elm)) {
26184
26245
  ErrorReporter.initError('Could not initialize inline editor on invalid inline target element', elm);
26185
26246
  } else {
@@ -26251,7 +26312,7 @@
26251
26312
  return;
26252
26313
  }
26253
26314
  if (isString(selector)) {
26254
- each$l(DOM$9.select(selector), function (elm) {
26315
+ each$k(DOM$9.select(selector), function (elm) {
26255
26316
  editor = self.get(elm.id);
26256
26317
  if (editor) {
26257
26318
  self.remove(editor);
@@ -26304,7 +26365,7 @@
26304
26365
  return false;
26305
26366
  },
26306
26367
  triggerSave: function () {
26307
- each$l(editors, function (editor) {
26368
+ each$k(editors, function (editor) {
26308
26369
  editor.save();
26309
26370
  });
26310
26371
  },
@@ -26460,7 +26521,7 @@
26460
26521
  fromClientRect: fromClientRect
26461
26522
  };
26462
26523
 
26463
- var each$m = Tools.each, extend$6 = Tools.extend;
26524
+ var each$l = Tools.each, extend$6 = Tools.extend;
26464
26525
  var extendClass, initializing;
26465
26526
  var Class = function () {
26466
26527
  };
@@ -26505,7 +26566,7 @@
26505
26566
  prototype = new self();
26506
26567
  initializing = false;
26507
26568
  if (prop.Mixins) {
26508
- each$m(prop.Mixins, function (mixin) {
26569
+ each$l(prop.Mixins, function (mixin) {
26509
26570
  for (var name_1 in mixin) {
26510
26571
  if (name_1 !== 'init') {
26511
26572
  prop[name_1] = mixin[name_1];
@@ -26517,12 +26578,12 @@
26517
26578
  }
26518
26579
  }
26519
26580
  if (prop.Methods) {
26520
- each$m(prop.Methods.split(','), function (name) {
26581
+ each$l(prop.Methods.split(','), function (name) {
26521
26582
  prop[name] = dummy;
26522
26583
  });
26523
26584
  }
26524
26585
  if (prop.Properties) {
26525
- each$m(prop.Properties.split(','), function (name) {
26586
+ each$l(prop.Properties.split(','), function (name) {
26526
26587
  var fieldName = '_' + name;
26527
26588
  prop[name] = function (value) {
26528
26589
  var self = this;
@@ -26535,7 +26596,7 @@
26535
26596
  });
26536
26597
  }
26537
26598
  if (prop.Statics) {
26538
- each$m(prop.Statics, function (func, name) {
26599
+ each$l(prop.Statics, function (func, name) {
26539
26600
  Class[name] = func;
26540
26601
  });
26541
26602
  }