@syncfusion/ej2-richtexteditor 18.4.34 → 18.4.42-70943

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 (92) hide show
  1. package/CHANGELOG.md +782 -718
  2. package/README.md +67 -67
  3. package/dist/ej2-richtexteditor.umd.min.js +1 -1
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +271 -153
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +393 -275
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/helpers/e2e/index.js +3 -3
  10. package/license +9 -9
  11. package/package.json +76 -53
  12. package/src/editor-manager/plugin/image.js +2 -1
  13. package/src/editor-manager/plugin/inserthtml.js +14 -10
  14. package/src/editor-manager/plugin/link.js +6 -6
  15. package/src/editor-manager/plugin/lists.js +6 -2
  16. package/src/editor-manager/plugin/ms-word-clean-up.js +22 -6
  17. package/src/editor-manager/plugin/selection-commands.d.ts +1 -0
  18. package/src/editor-manager/plugin/selection-commands.js +34 -3
  19. package/src/editor-manager/plugin/table.js +2 -1
  20. package/src/global.d.ts +1 -0
  21. package/src/rich-text-editor/actions/full-screen.d.ts +0 -1
  22. package/src/rich-text-editor/actions/full-screen.js +6 -4
  23. package/src/rich-text-editor/actions/keyboard-model.d.ts +13 -13
  24. package/src/rich-text-editor/actions/keyboard.js +21 -20
  25. package/src/rich-text-editor/actions/resize.js +3 -0
  26. package/src/rich-text-editor/base/constant.d.ts +5 -0
  27. package/src/rich-text-editor/base/constant.js +5 -0
  28. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +701 -701
  29. package/src/rich-text-editor/base/rich-text-editor.js +61 -36
  30. package/src/rich-text-editor/formatter/html-formatter.js +13 -13
  31. package/src/rich-text-editor/formatter/markdown-formatter.js +13 -13
  32. package/src/rich-text-editor/models/iframe-settings-model.d.ts +21 -21
  33. package/src/rich-text-editor/models/iframe-settings.js +19 -19
  34. package/src/rich-text-editor/models/inline-mode-model.d.ts +9 -9
  35. package/src/rich-text-editor/models/inline-mode.js +19 -19
  36. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +328 -328
  37. package/src/rich-text-editor/models/toolbar-settings.js +19 -19
  38. package/src/rich-text-editor/renderer/iframe-content-renderer.js +13 -13
  39. package/src/rich-text-editor/renderer/image-module.d.ts +2 -0
  40. package/src/rich-text-editor/renderer/image-module.js +28 -8
  41. package/src/rich-text-editor/renderer/table-module.js +6 -1
  42. package/styles/_all.scss +2 -2
  43. package/styles/bootstrap-dark.css +22 -1
  44. package/styles/bootstrap.css +22 -1
  45. package/styles/bootstrap4.css +22 -1
  46. package/styles/bootstrap5-dark.css +0 -0
  47. package/styles/bootstrap5-dark.scss +0 -0
  48. package/styles/bootstrap5.css +0 -0
  49. package/styles/bootstrap5.scss +0 -0
  50. package/styles/fabric-dark.css +22 -1
  51. package/styles/fabric.css +22 -1
  52. package/styles/highcontrast-light.css +22 -1
  53. package/styles/highcontrast.css +22 -1
  54. package/styles/material-dark.css +22 -1
  55. package/styles/material.css +22 -1
  56. package/styles/rich-text-editor/_all.scss +2 -2
  57. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +151 -151
  58. package/styles/rich-text-editor/_bootstrap-definition.scss +184 -184
  59. package/styles/rich-text-editor/_bootstrap4-definition.scss +307 -307
  60. package/styles/rich-text-editor/_fabric-dark-definition.scss +150 -150
  61. package/styles/rich-text-editor/_fabric-definition.scss +148 -148
  62. package/styles/rich-text-editor/_highcontrast-definition.scss +148 -148
  63. package/styles/rich-text-editor/_highcontrast-light-definition.scss +148 -148
  64. package/styles/rich-text-editor/_layout.scss +1416 -1405
  65. package/styles/rich-text-editor/_material-dark-definition.scss +151 -151
  66. package/styles/rich-text-editor/_material-definition.scss +150 -150
  67. package/styles/rich-text-editor/_theme.scss +499 -489
  68. package/styles/rich-text-editor/bootstrap-dark.css +22 -1
  69. package/styles/rich-text-editor/bootstrap.css +22 -1
  70. package/styles/rich-text-editor/bootstrap4.css +22 -1
  71. package/styles/rich-text-editor/fabric-dark.css +22 -1
  72. package/styles/rich-text-editor/fabric.css +22 -1
  73. package/styles/rich-text-editor/highcontrast-light.css +22 -1
  74. package/styles/rich-text-editor/highcontrast.css +22 -1
  75. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +289 -289
  76. package/styles/rich-text-editor/icons/_bootstrap.scss +288 -288
  77. package/styles/rich-text-editor/icons/_bootstrap4.scss +288 -288
  78. package/styles/rich-text-editor/icons/_fabric-dark.scss +288 -288
  79. package/styles/rich-text-editor/icons/_fabric.scss +288 -288
  80. package/styles/rich-text-editor/icons/_highcontrast-light.scss +288 -288
  81. package/styles/rich-text-editor/icons/_highcontrast.scss +288 -288
  82. package/styles/rich-text-editor/icons/_material-dark.scss +288 -288
  83. package/styles/rich-text-editor/icons/_material.scss +288 -288
  84. package/styles/rich-text-editor/material-dark.css +22 -1
  85. package/styles/rich-text-editor/material.css +22 -1
  86. package/styles/tailwind-dark.css +0 -0
  87. package/styles/tailwind-dark.scss +0 -0
  88. package/styles/tailwind.css +0 -0
  89. package/styles/tailwind.scss +0 -0
  90. package/dist/global/ej2-richtexteditor.min.js +0 -2
  91. package/dist/global/ej2-richtexteditor.min.js.map +0 -1
  92. package/dist/global/index.d.ts +0 -5
@@ -159,6 +159,11 @@ const imageToolbarAction = 'image-toolbar-action';
159
159
  * @deprecated
160
160
  */
161
161
  const linkToolbarAction = 'link-toolbar-action';
162
+ /**
163
+ * @hidden
164
+ * @deprecated
165
+ */
166
+ const windowResize = 'resize';
162
167
  /**
163
168
  * @hidden
164
169
  * @deprecated
@@ -3966,12 +3971,12 @@ class Toolbar$2 {
3966
3971
  }
3967
3972
  }
3968
3973
 
3969
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3970
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3971
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3972
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3973
- return c > 3 && r && Object.defineProperty(target, key, r), r;
3974
- };
3974
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3975
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3976
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3977
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3978
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3979
+ };
3975
3980
  var KeyboardEvents_1;
3976
3981
  let keyCode = {
3977
3982
  'backspace': 8,
@@ -4054,13 +4059,14 @@ let KeyboardEvents$1 = KeyboardEvents_1 = class KeyboardEvents$$1 extends Base {
4054
4059
  let isAltKey = e.altKey;
4055
4060
  let isCtrlKey = e.ctrlKey;
4056
4061
  let isShiftKey = e.shiftKey;
4062
+ let isMetaKey = e.metaKey;
4057
4063
  let curkeyCode = e.which;
4058
4064
  let keys = Object.keys(this.keyConfigs);
4059
4065
  for (let key of keys) {
4060
4066
  let configCollection = this.keyConfigs[key].split(',');
4061
4067
  for (let rconfig of configCollection) {
4062
4068
  let rKeyObj = KeyboardEvents_1.getKeyConfigData(rconfig.trim());
4063
- if (isAltKey === rKeyObj.altKey && isCtrlKey === rKeyObj.ctrlKey &&
4069
+ if (isAltKey === rKeyObj.altKey && (isCtrlKey === rKeyObj.ctrlKey || isMetaKey) &&
4064
4070
  isShiftKey === rKeyObj.shiftKey && curkeyCode === rKeyObj.keyCode) {
4065
4071
  e.action = key;
4066
4072
  }
@@ -9196,11 +9202,15 @@ class Lists {
9196
9202
  startNode = startNode.nodeName === 'BR' ? startNode.parentElement : startNode;
9197
9203
  endNode = endNode.nodeName === 'BR' ? endNode.parentElement : endNode;
9198
9204
  if (startNode === endNode && !isNullOrUndefined(closest(startNode, 'li')) &&
9199
- startNode.textContent.trim() === '' && startNode.textContent.charCodeAt(0) === 65279) {
9205
+ ((startNode.textContent.trim() === '' && startNode.textContent.charCodeAt(0) === 65279) ||
9206
+ (startNode.textContent.length === 1 && startNode.textContent.charCodeAt(0) === 8203))) {
9200
9207
  startNode.textContent = '';
9201
9208
  }
9202
9209
  if (startNode === endNode && startNode.textContent === '') {
9203
- if (startNode.closest('ul') || startNode.closest('ol')) {
9210
+ if (startNode.parentElement.tagName === 'LI' && endNode.parentElement.tagName === 'LI') {
9211
+ detach(startNode);
9212
+ }
9213
+ else if (startNode.closest('ul') || startNode.closest('ol')) {
9204
9214
  let parentList = !isNullOrUndefined(startNode.closest('ul')) ? startNode.closest('ul') : startNode.closest('ol');
9205
9215
  if (parentList.firstElementChild === startNode && !isNullOrUndefined(parentList.children[1]) &&
9206
9216
  (parentList.children[1].tagName === 'OL' || parentList.children[1].tagName === 'UL')) {
@@ -10260,7 +10270,7 @@ class InsertHtml {
10260
10270
  let isCursor = range.startOffset === range.endOffset && range.startOffset === 0 &&
10261
10271
  range.startContainer === range.endContainer;
10262
10272
  let isCollapsed = range.collapsed;
10263
- let nodes = this.getNodeCollection(range, nodeSelection);
10273
+ let nodes = this.getNodeCollection(range, nodeSelection, node);
10264
10274
  let closestParentNode = (node.nodeName.toLowerCase() === 'table') ? this.closestEle(nodes[0].parentNode, editNode) : nodes[0];
10265
10275
  if (isExternal || (!isNullOrUndefined(node) && !isNullOrUndefined(node.classList) &&
10266
10276
  node.classList.contains('pasteContent'))) {
@@ -10485,9 +10495,10 @@ class InsertHtml {
10485
10495
  }
10486
10496
  }
10487
10497
  static placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode) {
10488
- lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? lastSelectionNode.previousSibling : lastSelectionNode;
10498
+ lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNullOrUndefined(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode
10499
+ : lastSelectionNode.previousSibling) : lastSelectionNode;
10489
10500
  while (!isNullOrUndefined(lastSelectionNode) && lastSelectionNode.nodeName !== '#text' && lastSelectionNode.nodeName !== 'IMG' &&
10490
- lastSelectionNode.nodeName !== 'BR') {
10501
+ lastSelectionNode.nodeName !== 'BR' && lastSelectionNode.nodeName !== 'HR') {
10491
10502
  lastSelectionNode = lastSelectionNode.lastChild;
10492
10503
  }
10493
10504
  lastSelectionNode = isNullOrUndefined(lastSelectionNode) ? node : lastSelectionNode;
@@ -10499,10 +10510,11 @@ class InsertHtml {
10499
10510
  }
10500
10511
  this.removeEmptyElements(editNode);
10501
10512
  }
10502
- static getNodeCollection(range, nodeSelection) {
10513
+ static getNodeCollection(range, nodeSelection, node) {
10503
10514
  let nodes = [];
10504
- if (range.startOffset === range.endOffset && range.startContainer === range.endContainer &&
10505
- range.startContainer.nodeName === 'TD') {
10515
+ if (range.startOffset === range.endOffset && range.startContainer === range.endContainer
10516
+ && (range.startContainer.nodeName === 'TD' || (range.startContainer.nodeType !== 3 &&
10517
+ node.classList && node.classList.contains('pasteContent')))) {
10506
10518
  nodes.push(range.startContainer.childNodes[range.endOffset]);
10507
10519
  }
10508
10520
  else {
@@ -10541,10 +10553,12 @@ class InsertHtml {
10541
10553
  lastSelectionNode.classList.add('lastNode');
10542
10554
  editNode.innerHTML = updateTextNode$1(editNode.innerHTML);
10543
10555
  lastSelectionNode = editNode.querySelector('.lastNode');
10544
- this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);
10545
- lastSelectionNode.classList.remove('lastNode');
10546
- if (lastSelectionNode.classList.length === 0) {
10547
- lastSelectionNode.removeAttribute('class');
10556
+ if (!isNullOrUndefined(lastSelectionNode)) {
10557
+ this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);
10558
+ lastSelectionNode.classList.remove('lastNode');
10559
+ if (lastSelectionNode.classList.length === 0) {
10560
+ lastSelectionNode.removeAttribute('class');
10561
+ }
10548
10562
  }
10549
10563
  }
10550
10564
  static imageFocus(node, nodeSelection, docElement) {
@@ -10737,17 +10751,17 @@ class LinkCommand {
10737
10751
  let check = true;
10738
10752
  currentNode = txtArray[i];
10739
10753
  while (check === true) {
10740
- if (currentNode.parentElement.nodeName === 'A') {
10741
- let anchorEle = currentNode.parentElement;
10742
- currentNode.parentElement.parentElement.insertBefore(anchorEle.firstChild, anchorEle);
10743
- currentNode.parentElement.removeChild(anchorEle);
10754
+ if (currentNode.parentNode.nodeName === 'A') {
10755
+ let anchorEle = currentNode.parentNode;
10756
+ currentNode.parentNode.parentNode.insertBefore(anchorEle.firstChild, anchorEle);
10757
+ currentNode.parentNode.removeChild(anchorEle);
10744
10758
  }
10745
- if (this.isBlockNode(currentNode.parentElement) || txtArray.length === 0 || i === 0 || i === txtArray.length - 1) {
10759
+ if (this.isBlockNode(currentNode.parentNode) || txtArray.length === 0 || i === 0 || i === txtArray.length - 1) {
10746
10760
  inlineNodes[i] = currentNode;
10747
10761
  check = false;
10748
10762
  }
10749
10763
  else {
10750
- currentNode = currentNode.parentElement;
10764
+ currentNode = currentNode.parentNode;
10751
10765
  }
10752
10766
  }
10753
10767
  }
@@ -11200,8 +11214,9 @@ class ImageCommand {
11200
11214
  }
11201
11215
  }
11202
11216
  if (e.callBack && (isNullOrUndefined(e.selector) || !isNullOrUndefined(e.selector) && e.selector !== 'pasteCleanupModule')) {
11217
+ let selectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0];
11203
11218
  let imgElm = e.value === 'Replace' ? e.item.selectParent[0] :
11204
- this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument)[0].previousElementSibling;
11219
+ (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);
11205
11220
  imgElm.addEventListener('load', () => {
11206
11221
  e.callBack({
11207
11222
  requestType: 'Image',
@@ -11471,7 +11486,8 @@ class TableCommand {
11471
11486
  if (!isNullOrUndefined(e.item.width.maxWidth)) {
11472
11487
  table.style.maxWidth = this.calculateStyleValue(e.item.width.maxWidth);
11473
11488
  }
11474
- let tdWid = parseInt(e.item.width.width, 10) / e.item.columns;
11489
+ let tdWid = parseInt(e.item.width.width, 10) > 100 ?
11490
+ 100 / e.item.columns : parseInt(e.item.width.width, 10) / e.item.columns;
11475
11491
  for (let i = 0; i < e.item.row; i++) {
11476
11492
  let row = createElement('tr');
11477
11493
  for (let j = 0; j < e.item.columns; j++) {
@@ -11983,6 +11999,7 @@ class SelectionCommands {
11983
11999
  if (format === 'backgroundcolor' && value === '') {
11984
12000
  value = 'transparent';
11985
12001
  }
12002
+ let preventRestore = false;
11986
12003
  let domSelection = new NodeSelection();
11987
12004
  let nodeCutter = new NodeCutter();
11988
12005
  let isFormatted = new IsFormatted();
@@ -11999,10 +12016,23 @@ class SelectionCommands {
11999
12016
  isCollapsed = true;
12000
12017
  range = nodeCutter.GetCursorRange(docElement, range, nodes[0]);
12001
12018
  }
12019
+ else if (range.startContainer.nodeType === 3 && range.startContainer.parentElement.childElementCount > 0 &&
12020
+ range.startOffset > 0 && range.startContainer.parentElement.firstElementChild.tagName.toLowerCase() !== 'br') {
12021
+ isCollapsed = true;
12022
+ range = nodeCutter.GetCursorRange(docElement, range, range.startContainer);
12023
+ nodes.push(range.startContainer);
12024
+ }
12002
12025
  else if (range.startContainer.nodeName.toLowerCase() !== 'td') {
12003
12026
  let cursorNode = this.insertCursorNode(docElement, domSelection, range, isFormatted, nodeCutter, format, value, endNode);
12004
12027
  domSelection.endContainer = domSelection.startContainer = domSelection.getNodeArray(cursorNode, true);
12005
- domSelection.endOffset = domSelection.startOffset = 1;
12028
+ const childNodes = cursorNode.nodeName === 'BR' && cursorNode.parentNode.childNodes;
12029
+ if (!isNullOrUndefined(childNodes) && childNodes.length === 1 && childNodes[0].nodeName === 'BR' && nodes.length === 0) {
12030
+ domSelection.setSelectionText(docElement, range.startContainer, range.endContainer, 0, 0);
12031
+ preventRestore = true;
12032
+ }
12033
+ else {
12034
+ domSelection.endOffset = domSelection.startOffset = 1;
12035
+ }
12006
12036
  }
12007
12037
  }
12008
12038
  isCursor = range.collapsed;
@@ -12033,7 +12063,9 @@ class SelectionCommands {
12033
12063
  if (isIDevice$1()) {
12034
12064
  setEditFrameFocus(endNode, selector);
12035
12065
  }
12036
- save.restore();
12066
+ if (!preventRestore) {
12067
+ save.restore();
12068
+ }
12037
12069
  if (isSubSup) {
12038
12070
  this.applyFormat(docElement, format, endNode);
12039
12071
  }
@@ -12041,17 +12073,32 @@ class SelectionCommands {
12041
12073
  }
12042
12074
  static insertCursorNode(docElement, domSelection, range, isFormatted, nodeCutter, format, value, endNode) {
12043
12075
  let cursorNodes = domSelection.getNodeCollection(range);
12044
- let cursorFormat = (cursorNodes.length > 0) ? isFormatted.getFormattedNode(cursorNodes[0], format, endNode) : null;
12076
+ let cursorFormat = (cursorNodes.length > 0) ?
12077
+ (cursorNodes.length > 1 && range.startContainer === range.endContainer) ?
12078
+ this.getCursorFormat(isFormatted, cursorNodes, format, endNode) :
12079
+ isFormatted.getFormattedNode(cursorNodes[0], format, endNode) : null;
12045
12080
  let cursorNode = null;
12046
12081
  if (cursorFormat) {
12047
12082
  cursorNode = cursorNodes[0];
12048
12083
  InsertMethods.unwrap(cursorFormat);
12049
12084
  }
12050
12085
  else {
12086
+ if (cursorNodes.length > 1 && range.startOffset > 0 && (cursorNodes[0].firstElementChild &&
12087
+ cursorNodes[0].firstElementChild.tagName.toLowerCase() === 'br')) {
12088
+ cursorNodes[0].innerHTML = '';
12089
+ }
12051
12090
  cursorNode = this.getInsertNode(docElement, range, format, value).firstChild;
12052
12091
  }
12053
12092
  return cursorNode;
12054
12093
  }
12094
+ static getCursorFormat(isFormatted, cursorNodes, format, endNode) {
12095
+ let currentNode;
12096
+ for (let index = 0; index < cursorNodes.length; index++) {
12097
+ currentNode = cursorNodes[index].lastElementChild ?
12098
+ cursorNodes[index].lastElementChild : cursorNodes[index];
12099
+ }
12100
+ return isFormatted.getFormattedNode(currentNode, format, endNode);
12101
+ }
12055
12102
  static removeFormat(nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domSelection) {
12056
12103
  let splitNode = null;
12057
12104
  if (!(range.startContainer === range.endContainer && range.startOffset === 0
@@ -13408,18 +13455,34 @@ class MsWordPaste {
13408
13455
  }
13409
13456
  getListContent(elem) {
13410
13457
  let pushContent = '';
13411
- if (elem.firstElementChild.textContent.trim() === '' &&
13412
- !isNullOrUndefined(elem.firstElementChild.firstElementChild) &&
13413
- elem.firstElementChild.firstElementChild.nodeName === 'IMG') {
13458
+ const firstChild = elem.firstElementChild;
13459
+ if (firstChild.textContent.trim() === '' && !isNullOrUndefined(firstChild.firstElementChild) &&
13460
+ firstChild.firstElementChild.nodeName === 'IMG') {
13414
13461
  pushContent = elem.innerHTML.trim();
13415
13462
  this.listContents.push('');
13416
13463
  this.listContents.push(pushContent);
13417
13464
  }
13418
13465
  else {
13419
- pushContent = elem.firstElementChild.textContent.trim();
13420
- this.listContents.push(pushContent);
13466
+ const styleNodes = ['b', 'em'];
13467
+ if (firstChild.childNodes.length > 0 && (firstChild.querySelectorAll('b').length > 0
13468
+ || firstChild.querySelectorAll('em').length > 0)) {
13469
+ for (let i = 0; i < firstChild.childNodes.length; i++) {
13470
+ const nodeName = firstChild.childNodes[i].nodeName.toLowerCase();
13471
+ if (firstChild.childNodes[i].textContent.trim().length > 1 && styleNodes.indexOf(nodeName) !== -1) {
13472
+ pushContent = '<' + nodeName + '>' + firstChild.childNodes[i].textContent + '</' + nodeName + '>';
13473
+ this.listContents.push(pushContent);
13474
+ }
13475
+ else if (firstChild.childNodes[i].textContent.trim().length === 1) {
13476
+ this.listContents.push(firstChild.childNodes[i].textContent.trim());
13477
+ }
13478
+ }
13479
+ }
13480
+ else {
13481
+ pushContent = firstChild.textContent.trim();
13482
+ this.listContents.push(pushContent);
13483
+ }
13421
13484
  }
13422
- detach(elem.firstElementChild);
13485
+ detach(firstChild);
13423
13486
  this.listContents.push(elem.innerHTML);
13424
13487
  }
13425
13488
  }
@@ -14014,81 +14077,81 @@ class ContentRender {
14014
14077
  }
14015
14078
 
14016
14079
  /* tslint:disable */
14017
- const IFRAMEHEADER = `
14018
- <!DOCTYPE html>
14019
- <html>
14020
- <head>
14021
- <meta charset='utf-8' />
14022
- <style>
14023
- @charset "UTF-8";
14024
- body {
14025
- font-family: "Roboto", sans-serif;
14026
- font-size: 14px;
14027
- }
14028
- html, body{height: 100%;margin: 0;}
14029
- body.e-cursor{cursor:default}
14030
- span.e-selected-node {background-color: #939393;color: white;}
14031
- span.e-selected-node.e-highlight {background-color: #1d9dd8;}
14032
- body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}
14033
- .e-rte-image {border: 0;cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
14034
- .e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}
14035
- .e-img-caption.e-caption-inline {display: inline-block;float: none;margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));position: relativetext-align: center;vertical-align: bottom;}
14036
- .e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;margin: auto;opacity: .9;text-align: center;width: 100%;}
14037
- .e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}
14038
- .e-imgleft {float: left;margin: 0 5px 0 0;text-align: left;}
14039
- .e-imgright {float: right;margin: 0 0 0 5px;text-align: right;}
14040
- .e-imgcenter {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
14041
- .e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}
14042
- .e-imginline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));vertical-align: bottom;}
14043
- .e-imgbreak {border: 0;cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
14044
- .e-rte-image.e-img-focus:not(.e-resize) {border: solid 2px #4a90e2;}
14045
- img::selection { background: transparent;color: transparent;}
14046
- span.e-rte-imageboxmark { width: 10px; height: 10px; position: absolute; display: block; background: #4a90e2; border: 1px solid #fff; z-index: 1000;}
14047
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
14048
- .e-mob-rte span.e-rte-imageboxmark { background: #fff; border: 1px solid #4a90e2; border-radius: 15px; height: 20px; width: 20px; }
14049
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
14050
- .e-rte-content .e-content img.e-resize { z-index: 1000; }
14051
- .e-img-caption .e-img-inner { outline: 0; }
14052
- .e-img-caption .e-rte-image.e-imgright, .e-img-caption .e-rte-image.e-imgleft { float: none; margin: 0;}
14053
- body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}
14054
- p{margin: 0 0 10px;margin-bottom: 10px;}
14055
- li{margin-bottom: 10px;}
14056
- h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}
14057
- h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}
14058
- h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}
14059
- h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}
14060
- h5{font-size: 00.8em;font-weight: 400;margin: 0;}
14061
- h6{font-size: 00.65em;font-weight: 400;margin: 0;}
14062
- blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}
14063
- pre{background-color: inherit;border: 0;border-radius: 0;color: #333;font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}
14064
- strong, b{font-weight: 700;}
14065
- a{text-decoration: none;user-select: auto;}
14066
- a:hover{text-decoration: underline;};
14067
- p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}
14068
- h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}
14069
- ul:last-child{margin-bottom: 0;}
14070
- table { border-collapse: collapse; empty-cells: show;}
14071
- table td,table th {border: 1px solid #BDBDBD; height: 20px; vertical-align: middle;}
14072
- table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}
14073
- table th {background-color: #E0E0E0;}
14074
- table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD}
14075
- table .e-cell-select {border: 1px double #4a90e2;}
14076
- span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }
14077
- span.e-table-box.e-rmob {height: 14px;width: 14px;}
14078
- .e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat; bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }
14079
- .e-row-resize { cursor: row-resize; height: 1px;}
14080
- .e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}
14081
- .e-table-rhelper.e-column-helper { width: 1px; }
14082
- .e-table-rhelper.e-row-helper {height: 1px;}
14083
- .e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid; border-top: 6px solid transparent; content: ''; display: block; height: 0; position: absolute; right: 4px; top: 4px; width: 20px; }
14084
- .e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid; border-top: 6px solid transparent; content: ''; display: block; height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }
14085
- .e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }
14086
- .e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }
14087
- span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }
14088
- span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }
14089
- .e-table-rhelper { background-color: #4a90e2;}
14090
- .e-rtl { direction: rtl; }
14091
- </style>
14080
+ const IFRAMEHEADER = `
14081
+ <!DOCTYPE html>
14082
+ <html>
14083
+ <head>
14084
+ <meta charset='utf-8' />
14085
+ <style>
14086
+ @charset "UTF-8";
14087
+ body {
14088
+ font-family: "Roboto", sans-serif;
14089
+ font-size: 14px;
14090
+ }
14091
+ html, body{height: 100%;margin: 0;}
14092
+ body.e-cursor{cursor:default}
14093
+ span.e-selected-node {background-color: #939393;color: white;}
14094
+ span.e-selected-node.e-highlight {background-color: #1d9dd8;}
14095
+ body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}
14096
+ .e-rte-image {border: 0;cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
14097
+ .e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}
14098
+ .e-img-caption.e-caption-inline {display: inline-block;float: none;margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));position: relativetext-align: center;vertical-align: bottom;}
14099
+ .e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;margin: auto;opacity: .9;text-align: center;width: 100%;}
14100
+ .e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}
14101
+ .e-imgleft {float: left;margin: 0 5px 0 0;text-align: left;}
14102
+ .e-imgright {float: right;margin: 0 0 0 5px;text-align: right;}
14103
+ .e-imgcenter {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
14104
+ .e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}
14105
+ .e-imginline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));vertical-align: bottom;}
14106
+ .e-imgbreak {border: 0;cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
14107
+ .e-rte-image.e-img-focus:not(.e-resize) {border: solid 2px #4a90e2;}
14108
+ img::selection { background: transparent;color: transparent;}
14109
+ span.e-rte-imageboxmark { width: 10px; height: 10px; position: absolute; display: block; background: #4a90e2; border: 1px solid #fff; z-index: 1000;}
14110
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
14111
+ .e-mob-rte span.e-rte-imageboxmark { background: #fff; border: 1px solid #4a90e2; border-radius: 15px; height: 20px; width: 20px; }
14112
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
14113
+ .e-rte-content .e-content img.e-resize { z-index: 1000; }
14114
+ .e-img-caption .e-img-inner { outline: 0; }
14115
+ .e-img-caption .e-rte-image.e-imgright, .e-img-caption .e-rte-image.e-imgleft { float: none; margin: 0;}
14116
+ body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}
14117
+ p{margin: 0 0 10px;margin-bottom: 10px;}
14118
+ li{margin-bottom: 10px;}
14119
+ h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}
14120
+ h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}
14121
+ h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}
14122
+ h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}
14123
+ h5{font-size: 00.8em;font-weight: 400;margin: 0;}
14124
+ h6{font-size: 00.65em;font-weight: 400;margin: 0;}
14125
+ blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}
14126
+ pre{background-color: inherit;border: 0;border-radius: 0;color: #333;font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}
14127
+ strong, b{font-weight: 700;}
14128
+ a{text-decoration: none;user-select: auto;}
14129
+ a:hover{text-decoration: underline;};
14130
+ p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}
14131
+ h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}
14132
+ ul:last-child{margin-bottom: 0;}
14133
+ table { border-collapse: collapse; empty-cells: show;}
14134
+ table td,table th {border: 1px solid #BDBDBD; height: 20px; vertical-align: middle;}
14135
+ table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}
14136
+ table th {background-color: #E0E0E0;}
14137
+ table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD}
14138
+ table .e-cell-select {border: 1px double #4a90e2;}
14139
+ span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }
14140
+ span.e-table-box.e-rmob {height: 14px;width: 14px;}
14141
+ .e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat; bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }
14142
+ .e-row-resize { cursor: row-resize; height: 1px;}
14143
+ .e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}
14144
+ .e-table-rhelper.e-column-helper { width: 1px; }
14145
+ .e-table-rhelper.e-row-helper {height: 1px;}
14146
+ .e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid; border-top: 6px solid transparent; content: ''; display: block; height: 0; position: absolute; right: 4px; top: 4px; width: 20px; }
14147
+ .e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid; border-top: 6px solid transparent; content: ''; display: block; height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }
14148
+ .e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }
14149
+ .e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }
14150
+ span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }
14151
+ span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }
14152
+ .e-table-rhelper { background-color: #4a90e2;}
14153
+ .e-rtl { direction: rtl; }
14154
+ </style>
14092
14155
  </head>`;
14093
14156
  /* tslint:enable */
14094
14157
  /**
@@ -15580,6 +15643,9 @@ class Resize {
15580
15643
  this.parent.element.style.height = eventType.clientY - boundRect.top + 'px';
15581
15644
  this.parent.element.style.width = eventType.clientX - boundRect.left + 'px';
15582
15645
  }
15646
+ if (!this.parent.toolbarSettings.enable) {
15647
+ this.parent.setContentHeight('', false);
15648
+ }
15583
15649
  this.parent.refreshUI();
15584
15650
  }
15585
15651
  stopResize(e) {
@@ -15875,7 +15941,8 @@ class FullScreen {
15875
15941
  * @deprecated
15876
15942
  */
15877
15943
  showFullScreen(event) {
15878
- if (this.parent.toolbarSettings.enable === true && this.parent.editorMode !== 'Markdown') {
15944
+ if (this.parent.toolbarSettings.enable === true && this.parent.editorMode !== 'Markdown'
15945
+ && !isNullOrUndefined(this.parent.quickToolbarModule)) {
15879
15946
  this.parent.quickToolbarModule.hideQuickToolbars();
15880
15947
  }
15881
15948
  this.scrollableParent = getScrollableParent(this.parent.element);
@@ -15911,7 +15978,8 @@ class FullScreen {
15911
15978
  * @deprecated
15912
15979
  */
15913
15980
  hideFullScreen(event) {
15914
- if (this.parent.toolbarSettings.enable === true && this.parent.editorMode !== 'Markdown') {
15981
+ if (this.parent.toolbarSettings.enable === true && this.parent.editorMode !== 'Markdown'
15982
+ && !isNullOrUndefined(this.parent.quickToolbarModule)) {
15915
15983
  this.parent.quickToolbarModule.hideQuickToolbars();
15916
15984
  }
15917
15985
  if (this.parent.element.classList.contains(CLS_FULL_SCREEN)) {
@@ -16591,6 +16659,7 @@ class Image {
16591
16659
  this.parent.on(keyDown, this.onKeyDown, this);
16592
16660
  this.parent.on(keyUp, this.onKeyUp, this);
16593
16661
  this.parent.on(insertImage, this.insertImage, this);
16662
+ this.parent.on(windowResize, this.onWindowResize, this);
16594
16663
  this.parent.on(insertCompleted, this.showImageQuickToolbar, this);
16595
16664
  this.parent.on(imageToolbarAction, this.onToolbarAction, this);
16596
16665
  this.parent.on(imageCaption, this.caption, this);
@@ -16611,6 +16680,7 @@ class Image {
16611
16680
  }
16612
16681
  this.parent.off(keyDown, this.onKeyDown);
16613
16682
  this.parent.off(keyUp, this.onKeyUp);
16683
+ this.parent.off(windowResize, this.onWindowResize);
16614
16684
  this.parent.off(insertImage, this.insertImage);
16615
16685
  this.parent.off(insertCompleted, this.showImageQuickToolbar);
16616
16686
  this.parent.off(imageCaption, this.caption);
@@ -16697,6 +16767,7 @@ class Image {
16697
16767
  return;
16698
16768
  }
16699
16769
  let target = ele ? ele : e.target;
16770
+ this.prevSelectedImgEle = this.imgEle;
16700
16771
  if (target.tagName === 'IMG') {
16701
16772
  this.parent.preventDefaultResize(e);
16702
16773
  let img = target;
@@ -16831,7 +16902,6 @@ class Image {
16831
16902
  calcPos(elem) {
16832
16903
  let ignoreOffset = ['TD', 'TH', 'TABLE', 'A'];
16833
16904
  let parentOffset = { top: 0, left: 0 };
16834
- let offset = elem.getBoundingClientRect();
16835
16905
  let doc = elem.ownerDocument;
16836
16906
  let offsetParent = ((elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption') ||
16837
16907
  ignoreOffset.indexOf(elem.offsetParent.tagName) > -1)) ?
@@ -16845,8 +16915,8 @@ class Image {
16845
16915
  parentOffset = offsetParent.getBoundingClientRect();
16846
16916
  }
16847
16917
  return {
16848
- top: offset.top - parentOffset.top,
16849
- left: offset.left - parentOffset.left
16918
+ top: elem.offsetTop,
16919
+ left: elem.offsetLeft
16850
16920
  };
16851
16921
  }
16852
16922
  setAspectRatio(img, expectedX, expectedY) {
@@ -16901,6 +16971,11 @@ class Image {
16901
16971
  }
16902
16972
  }
16903
16973
  }
16974
+ onWindowResize() {
16975
+ if (!isNullOrUndefined(this.contentModule.getEditPanel().querySelector('.e-img-resize'))) {
16976
+ this.cancelResizeAction();
16977
+ }
16978
+ }
16904
16979
  pixToPerc(expected, parentEle) {
16905
16980
  return expected / parseFloat(getComputedStyle(parentEle).width) * 100;
16906
16981
  }
@@ -16912,7 +16987,8 @@ class Image {
16912
16987
  }
16913
16988
  else {
16914
16989
  if ((parseInt(this.parent.insertImageSettings.minWidth, 10) >= parseInt(width, 10) ||
16915
- parseInt(this.parent.getInsertImgMaxWidth(), 10) <= parseInt(width, 10))) {
16990
+ (parseInt(this.parent.getInsertImgMaxWidth(), 10) <= parseInt(width, 10) &&
16991
+ isNullOrUndefined(this.imgEle.style.width)))) {
16916
16992
  return;
16917
16993
  }
16918
16994
  if (!this.parent.insertImageSettings.resizeByPercent &&
@@ -17534,7 +17610,11 @@ class Image {
17534
17610
  }
17535
17611
  }
17536
17612
  imageRemovePost(src) {
17537
- let ajax = new Ajax(this.parent.insertImageSettings.removeUrl, 'POST', true, null);
17613
+ const removeUrl = this.parent.insertImageSettings.removeUrl;
17614
+ if (isNullOrUndefined(removeUrl) || removeUrl === '') {
17615
+ return;
17616
+ }
17617
+ const ajax = new Ajax(removeUrl, 'POST', true, null);
17538
17618
  let formData = new FormData();
17539
17619
  formData.append(name, src);
17540
17620
  ajax.send(formData);
@@ -17764,9 +17844,16 @@ class Image {
17764
17844
  this.contentModule.getEditPanel().contains(this.imgResizeDiv)) {
17765
17845
  this.cancelResizeAction();
17766
17846
  }
17767
- if (target.tagName !== 'IMG' && this.contentModule.getEditPanel().querySelector('.e-img-resize')) {
17768
- this.removeResizeEle();
17769
- this.contentModule.getEditPanel().querySelector('img').style.outline = '';
17847
+ if (this.contentModule.getEditPanel().querySelector('.e-img-resize')) {
17848
+ if (target.tagName !== 'IMG') {
17849
+ this.removeResizeEle();
17850
+ }
17851
+ if (target.tagName !== 'IMG' && !isNullOrUndefined(this.imgEle)) {
17852
+ this.imgEle.style.outline = '';
17853
+ }
17854
+ else if (!isNullOrUndefined(this.prevSelectedImgEle) && this.prevSelectedImgEle !== target) {
17855
+ this.prevSelectedImgEle.style.outline = '';
17856
+ }
17770
17857
  }
17771
17858
  }
17772
17859
  removeResizeEle() {
@@ -18487,6 +18574,7 @@ class Image {
18487
18574
  * @deprecated
18488
18575
  */
18489
18576
  destroy() {
18577
+ this.prevSelectedImgEle = undefined;
18490
18578
  this.removeEventListener();
18491
18579
  }
18492
18580
  /**
@@ -19168,6 +19256,11 @@ class Table {
19168
19256
  }
19169
19257
  let target = e.target || e.targetTouches[0].target;
19170
19258
  let closestTable = closest(target, 'table');
19259
+ if (!isNullOrUndefined(this.curTable) && !isNullOrUndefined(closestTable) && closestTable !== this.curTable) {
19260
+ this.removeResizeElement();
19261
+ this.removeHelper(e);
19262
+ this.cancelResizeAction();
19263
+ }
19171
19264
  if (target.nodeName === 'TABLE' || target.nodeName === 'TD' || target.nodeName === 'TH') {
19172
19265
  this.curTable = (closestTable && this.parent.contentModule.getEditPanel().contains(closestTable))
19173
19266
  && (target.nodeName === 'TD' || target.nodeName === 'TH') ?
@@ -19417,7 +19510,7 @@ class Table {
19417
19510
  'px; left:' + (this.calcPos(this.curTable).left + tableWidth - 4) + 'px;';
19418
19511
  this.updateHelper();
19419
19512
  }
19420
- else if (this.resizeBtnStat.tableBox) {
19513
+ else if (this.resizeBtnStat.tableBox && !isNullOrUndefined(tableReBox)) {
19421
19514
  if (!Browser.isDevice) {
19422
19515
  EventHandler.remove(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper);
19423
19516
  }
@@ -20055,12 +20148,12 @@ const executeGroup = {
20055
20148
  }
20056
20149
  };
20057
20150
 
20058
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20059
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20060
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20061
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20062
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20063
- };
20151
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20152
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20153
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20154
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20155
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20156
+ };
20064
20157
  const predefinedItems = ['Bold', 'Italic', 'Underline', '|', 'Formats', 'Alignments',
20065
20158
  'OrderedList', 'UnorderedList', '|', 'CreateLink', 'Image', '|', 'SourceCode', 'Undo', 'Redo'];
20066
20159
  const fontFamily = [
@@ -20382,12 +20475,12 @@ __decorate$2([
20382
20475
  Property(false)
20383
20476
  ], BackgroundColor.prototype, "modeSwitcher", void 0);
20384
20477
 
20385
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20386
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20387
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20388
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20389
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20390
- };
20478
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20479
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20480
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20481
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20482
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20483
+ };
20391
20484
  /**
20392
20485
  * Objects used for configuring the iframe resources properties.
20393
20486
  */
@@ -20414,12 +20507,12 @@ __decorate$3([
20414
20507
  Complex({}, Resources)
20415
20508
  ], IFrameSettings.prototype, "resources", void 0);
20416
20509
 
20417
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20418
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20419
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20420
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20421
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20422
- };
20510
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20511
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20512
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20513
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20514
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20515
+ };
20423
20516
  /**
20424
20517
  * Configures the inlineMode property of the RTE.
20425
20518
  */
@@ -20432,12 +20525,12 @@ __decorate$4([
20432
20525
  Property(true)
20433
20526
  ], InlineMode.prototype, "onSelection", void 0);
20434
20527
 
20435
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20436
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20437
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20438
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20439
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20440
- };
20528
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20529
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20530
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20531
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20532
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
20533
+ };
20441
20534
  /**
20442
20535
  * Represents the Rich Text Editor component.
20443
20536
  * ```html
@@ -20908,6 +21001,17 @@ let RichTextEditor = class RichTextEditor extends Component {
20908
21001
  this.autoResize();
20909
21002
  }
20910
21003
  keyUp(e) {
21004
+ if (this.editorMode === "HTML") {
21005
+ const range = this.getRange();
21006
+ if (Browser.userAgent.indexOf('Firefox') != -1 && range.startContainer.nodeName === '#text' &&
21007
+ range.startContainer.parentElement === this.inputElement) {
21008
+ const range = this.getRange();
21009
+ const tempElem = this.createElement('p');
21010
+ range.startContainer.parentElement.insertBefore(tempElem, range.startContainer);
21011
+ tempElem.appendChild(range.startContainer);
21012
+ this.formatter.editorManager.nodeSelection.setSelectionText(this.contentModule.getDocument(), tempElem.childNodes[0], tempElem.childNodes[0], tempElem.childNodes[0].textContent.length, tempElem.childNodes[0].textContent.length);
21013
+ }
21014
+ }
20911
21015
  this.notify(keyUp, { member: 'keyup', args: e });
20912
21016
  if (e.code === 'KeyX' && e.which === 88 && e.keyCode === 88 && e.ctrlKey && (this.inputElement.innerHTML === '' ||
20913
21017
  this.inputElement.innerHTML === '<br>')) {
@@ -20918,11 +21022,14 @@ let RichTextEditor = class RichTextEditor extends Component {
20918
21022
  && ((e.key !== 'shift' && !e.ctrlKey) && e.key && e.key.length === 1 || allowedKeys)) && !this.inlineMode.enable) {
20919
21023
  this.formatter.onKeyHandler(this, e);
20920
21024
  }
20921
- if (this.inputElement && this.inputElement.textContent.length !== 0) {
21025
+ if (this.inputElement && this.inputElement.textContent.length !== 0
21026
+ || this.element.querySelectorAll('.e-toolbar-item.e-active').length > 0) {
20922
21027
  this.notify(toolbarRefresh, { args: e });
20923
21028
  }
20924
21029
  if (!isNullOrUndefined(this.placeholder)) {
20925
- this.setPlaceHolder();
21030
+ if (!(e.key === 'Enter' && e.keyCode === 13) && this.inputElement.innerHTML === '<p><br></p>') {
21031
+ this.setPlaceHolder();
21032
+ }
20926
21033
  }
20927
21034
  }
20928
21035
  /**
@@ -21106,7 +21213,9 @@ let RichTextEditor = class RichTextEditor extends Component {
21106
21213
  return;
21107
21214
  }
21108
21215
  if (this.element.offsetParent === null) {
21109
- this.toolbarModule.destroy();
21216
+ if (!isNullOrUndefined(this.toolbarModule)) {
21217
+ this.toolbarModule.destroy();
21218
+ }
21110
21219
  return;
21111
21220
  }
21112
21221
  this.notify(destroy, {});
@@ -21485,8 +21594,7 @@ let RichTextEditor = class RichTextEditor extends Component {
21485
21594
  this.placeHolderWrapper.innerHTML = this.placeholder;
21486
21595
  if (this.inputElement.textContent.length === 0 &&
21487
21596
  !isNullOrUndefined(this.inputElement.firstChild) && this.inputElement.firstChild.nodeName === 'P' &&
21488
- !isNullOrUndefined(this.inputElement.firstChild.firstChild) && this.inputElement.firstChild.firstChild.nodeName === 'BR' &&
21489
- this.inputElement.innerHTML !== '<p><br></p><p><br></p>') {
21597
+ !isNullOrUndefined(this.inputElement.firstChild.firstChild) && this.inputElement.firstChild.firstChild.nodeName === 'BR') {
21490
21598
  this.placeHolderWrapper.style.display = 'block';
21491
21599
  }
21492
21600
  else {
@@ -21713,7 +21821,9 @@ let RichTextEditor = class RichTextEditor extends Component {
21713
21821
  let item = compiledTemplate[i];
21714
21822
  append([item], this.element);
21715
21823
  }
21716
- this.setProperties({ value: this.element.innerHTML.trim() });
21824
+ if (this.element.innerHTML.trim() !== '') {
21825
+ this.setProperties({ value: this.element.innerHTML.trim() });
21826
+ }
21717
21827
  }
21718
21828
  }
21719
21829
  else {
@@ -21907,11 +22017,16 @@ let RichTextEditor = class RichTextEditor extends Component {
21907
22017
  }
21908
22018
  resizeHandler() {
21909
22019
  let isExpand = false;
22020
+ if (!document.body.contains(this.element)) {
22021
+ document.defaultView.removeEventListener('resize', this.onResizeHandler, true);
22022
+ return;
22023
+ }
21910
22024
  if (this.toolbarSettings.enable && !this.inlineMode.enable) {
21911
22025
  this.toolbarModule.refreshToolbarOverflow();
21912
22026
  isExpand = this.toolbarModule.baseToolbar.toolbarObj.element.classList.contains(CLS_EXPAND_OPEN);
21913
22027
  }
21914
22028
  this.setContentHeight('', isExpand);
22029
+ this.notify(windowResize, null);
21915
22030
  }
21916
22031
  scrollHandler(e) {
21917
22032
  this.notify(scroll, { args: e });
@@ -21987,6 +22102,9 @@ let RichTextEditor = class RichTextEditor extends Component {
21987
22102
  return value;
21988
22103
  }
21989
22104
  updateValueOnIdle() {
22105
+ if (!isNullOrUndefined(this.tableModule) && !isNullOrUndefined(this.inputElement.querySelector('.e-table-box.e-rbox-select'))) {
22106
+ return;
22107
+ }
21990
22108
  this.setProperties({ value: this.getUpdatedValue() }, true);
21991
22109
  this.valueContainer.value = this.value;
21992
22110
  this.invokeChangeEvent();
@@ -22521,5 +22639,5 @@ RichTextEditor = __decorate$1([
22521
22639
  * Rich Text Editor component exported items
22522
22640
  */
22523
22641
 
22524
- export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, toolbarStatusUpdate, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, pasteClean, beforeDialogOpen, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, afterImageDelete, drop, xhtmlValidation, beforeImageUpload, resizeInitialized, renderFileManager, beforeImageDrop, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_TB_STATIC, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, ServiceLocator, RendererFactory, EditorManager, IMAGE, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP };
22642
+ export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, toolbarStatusUpdate, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, pasteClean, beforeDialogOpen, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, afterImageDelete, drop, xhtmlValidation, beforeImageUpload, resizeInitialized, renderFileManager, beforeImageDrop, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_TB_STATIC, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, ServiceLocator, RendererFactory, EditorManager, IMAGE, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP };
22525
22643
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map