tinymce-rails 5.0.1 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
  }