@syncfusion/ej2-richtexteditor 18.4.39 → 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 (210) hide show
  1. package/CHANGELOG.md +782 -728
  2. package/README.md +67 -67
  3. package/dist/ej2-richtexteditor.umd.min.js +1 -10
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +249 -145
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +371 -267
  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 -75
  12. package/src/common/interface.d.ts +6 -6
  13. package/src/editor-manager/base/classes.d.ts +1 -1
  14. package/src/editor-manager/base/classes.js +1 -1
  15. package/src/editor-manager/base/editor-manager.d.ts +3 -3
  16. package/src/editor-manager/base/editor-manager.js +3 -3
  17. package/src/editor-manager/base/interface.d.ts +7 -7
  18. package/src/editor-manager/base/types.d.ts +1 -1
  19. package/src/editor-manager/plugin/alignments.d.ts +2 -2
  20. package/src/editor-manager/plugin/alignments.js +2 -2
  21. package/src/editor-manager/plugin/clearformat-exec.d.ts +2 -2
  22. package/src/editor-manager/plugin/clearformat-exec.js +2 -2
  23. package/src/editor-manager/plugin/clearformat.d.ts +1 -1
  24. package/src/editor-manager/plugin/clearformat.js +1 -1
  25. package/src/editor-manager/plugin/dom-node.d.ts +34 -34
  26. package/src/editor-manager/plugin/dom-node.js +34 -34
  27. package/src/editor-manager/plugin/formats.d.ts +2 -2
  28. package/src/editor-manager/plugin/formats.js +2 -2
  29. package/src/editor-manager/plugin/image.d.ts +3 -3
  30. package/src/editor-manager/plugin/image.js +5 -4
  31. package/src/editor-manager/plugin/indents.d.ts +2 -2
  32. package/src/editor-manager/plugin/indents.js +2 -2
  33. package/src/editor-manager/plugin/insert-methods.d.ts +4 -4
  34. package/src/editor-manager/plugin/insert-methods.js +4 -4
  35. package/src/editor-manager/plugin/insert-text.d.ts +2 -2
  36. package/src/editor-manager/plugin/insert-text.js +2 -2
  37. package/src/editor-manager/plugin/inserthtml-exec.d.ts +2 -2
  38. package/src/editor-manager/plugin/inserthtml-exec.js +2 -2
  39. package/src/editor-manager/plugin/inserthtml.d.ts +2 -2
  40. package/src/editor-manager/plugin/inserthtml.js +16 -12
  41. package/src/editor-manager/plugin/isformatted.d.ts +8 -8
  42. package/src/editor-manager/plugin/isformatted.js +8 -8
  43. package/src/editor-manager/plugin/link.d.ts +2 -2
  44. package/src/editor-manager/plugin/link.js +8 -8
  45. package/src/editor-manager/plugin/lists.d.ts +2 -2
  46. package/src/editor-manager/plugin/lists.js +8 -4
  47. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +1 -1
  48. package/src/editor-manager/plugin/ms-word-clean-up.js +23 -7
  49. package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
  50. package/src/editor-manager/plugin/nodecutter.js +6 -6
  51. package/src/editor-manager/plugin/selection-commands.d.ts +2 -1
  52. package/src/editor-manager/plugin/selection-commands.js +35 -4
  53. package/src/editor-manager/plugin/selection-exec.d.ts +2 -2
  54. package/src/editor-manager/plugin/selection-exec.js +2 -2
  55. package/src/editor-manager/plugin/table.d.ts +2 -2
  56. package/src/editor-manager/plugin/table.js +4 -3
  57. package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
  58. package/src/editor-manager/plugin/toolbar-status.js +2 -2
  59. package/src/editor-manager/plugin/undo.d.ts +6 -6
  60. package/src/editor-manager/plugin/undo.js +6 -6
  61. package/src/global.d.ts +1 -0
  62. package/src/markdown-parser/base/interface.d.ts +10 -10
  63. package/src/markdown-parser/base/markdown-parser.d.ts +3 -3
  64. package/src/markdown-parser/base/markdown-parser.js +3 -3
  65. package/src/markdown-parser/base/types.d.ts +1 -1
  66. package/src/markdown-parser/plugin/clearformat.d.ts +2 -2
  67. package/src/markdown-parser/plugin/clearformat.js +2 -2
  68. package/src/markdown-parser/plugin/formats.d.ts +2 -2
  69. package/src/markdown-parser/plugin/formats.js +2 -2
  70. package/src/markdown-parser/plugin/link.d.ts +2 -2
  71. package/src/markdown-parser/plugin/link.js +2 -2
  72. package/src/markdown-parser/plugin/markdown-selection.d.ts +14 -14
  73. package/src/markdown-parser/plugin/markdown-selection.js +14 -14
  74. package/src/markdown-parser/plugin/md-selection-formats.d.ts +2 -2
  75. package/src/markdown-parser/plugin/md-selection-formats.js +2 -2
  76. package/src/markdown-parser/plugin/table.d.ts +3 -3
  77. package/src/markdown-parser/plugin/table.js +3 -3
  78. package/src/markdown-parser/plugin/undo.d.ts +6 -6
  79. package/src/markdown-parser/plugin/undo.js +6 -6
  80. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +9 -9
  81. package/src/rich-text-editor/actions/base-quick-toolbar.js +9 -9
  82. package/src/rich-text-editor/actions/base-toolbar.d.ts +3 -3
  83. package/src/rich-text-editor/actions/base-toolbar.js +3 -3
  84. package/src/rich-text-editor/actions/color-picker.d.ts +2 -2
  85. package/src/rich-text-editor/actions/color-picker.js +2 -2
  86. package/src/rich-text-editor/actions/count.d.ts +3 -3
  87. package/src/rich-text-editor/actions/count.js +3 -3
  88. package/src/rich-text-editor/actions/dropdown-buttons.d.ts +2 -2
  89. package/src/rich-text-editor/actions/dropdown-buttons.js +2 -2
  90. package/src/rich-text-editor/actions/full-screen.d.ts +3 -3
  91. package/src/rich-text-editor/actions/full-screen.js +3 -3
  92. package/src/rich-text-editor/actions/html-editor.d.ts +3 -3
  93. package/src/rich-text-editor/actions/html-editor.js +3 -3
  94. package/src/rich-text-editor/actions/keyboard-model.d.ts +13 -13
  95. package/src/rich-text-editor/actions/keyboard.d.ts +1 -1
  96. package/src/rich-text-editor/actions/keyboard.js +22 -21
  97. package/src/rich-text-editor/actions/markdown-editor.d.ts +2 -2
  98. package/src/rich-text-editor/actions/markdown-editor.js +2 -2
  99. package/src/rich-text-editor/actions/paste-clean-up.d.ts +1 -1
  100. package/src/rich-text-editor/actions/paste-clean-up.js +1 -1
  101. package/src/rich-text-editor/actions/quick-toolbar.d.ts +9 -9
  102. package/src/rich-text-editor/actions/quick-toolbar.js +9 -9
  103. package/src/rich-text-editor/actions/toolbar.d.ts +13 -13
  104. package/src/rich-text-editor/actions/toolbar.js +13 -13
  105. package/src/rich-text-editor/actions/xhtml-validation.d.ts +1 -1
  106. package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
  107. package/src/rich-text-editor/base/classes.d.ts +103 -103
  108. package/src/rich-text-editor/base/classes.js +103 -103
  109. package/src/rich-text-editor/base/constant.d.ts +112 -107
  110. package/src/rich-text-editor/base/constant.js +112 -107
  111. package/src/rich-text-editor/base/enum.d.ts +1 -1
  112. package/src/rich-text-editor/base/enum.js +1 -1
  113. package/src/rich-text-editor/base/interface.d.ts +40 -40
  114. package/src/rich-text-editor/base/interface.js +1 -1
  115. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +701 -701
  116. package/src/rich-text-editor/base/rich-text-editor.d.ts +51 -51
  117. package/src/rich-text-editor/base/rich-text-editor.js +88 -66
  118. package/src/rich-text-editor/base/util.d.ts +1 -1
  119. package/src/rich-text-editor/base/util.js +1 -1
  120. package/src/rich-text-editor/formatter/formatter.d.ts +8 -8
  121. package/src/rich-text-editor/formatter/formatter.js +8 -8
  122. package/src/rich-text-editor/formatter/html-formatter.d.ts +2 -2
  123. package/src/rich-text-editor/formatter/html-formatter.js +15 -15
  124. package/src/rich-text-editor/formatter/markdown-formatter.d.ts +2 -2
  125. package/src/rich-text-editor/formatter/markdown-formatter.js +15 -15
  126. package/src/rich-text-editor/models/iframe-settings-model.d.ts +21 -21
  127. package/src/rich-text-editor/models/iframe-settings.js +19 -19
  128. package/src/rich-text-editor/models/inline-mode-model.d.ts +9 -9
  129. package/src/rich-text-editor/models/inline-mode.js +19 -19
  130. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +328 -328
  131. package/src/rich-text-editor/models/toolbar-settings.js +19 -19
  132. package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
  133. package/src/rich-text-editor/renderer/content-renderer.js +6 -6
  134. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -2
  135. package/src/rich-text-editor/renderer/dialog-renderer.js +2 -2
  136. package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
  137. package/src/rich-text-editor/renderer/iframe-content-renderer.js +17 -17
  138. package/src/rich-text-editor/renderer/image-module.d.ts +2 -1
  139. package/src/rich-text-editor/renderer/image-module.js +21 -7
  140. package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
  141. package/src/rich-text-editor/renderer/link-module.js +1 -1
  142. package/src/rich-text-editor/renderer/markdown-renderer.d.ts +6 -6
  143. package/src/rich-text-editor/renderer/markdown-renderer.js +6 -6
  144. package/src/rich-text-editor/renderer/popup-renderer.d.ts +5 -5
  145. package/src/rich-text-editor/renderer/popup-renderer.js +5 -5
  146. package/src/rich-text-editor/renderer/render.d.ts +2 -2
  147. package/src/rich-text-editor/renderer/render.js +2 -2
  148. package/src/rich-text-editor/renderer/table-module.d.ts +1 -1
  149. package/src/rich-text-editor/renderer/table-module.js +7 -2
  150. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +8 -8
  151. package/src/rich-text-editor/renderer/toolbar-renderer.js +8 -8
  152. package/src/rich-text-editor/renderer/view-source.d.ts +6 -6
  153. package/src/rich-text-editor/renderer/view-source.js +6 -6
  154. package/src/rich-text-editor/services/renderer-factory.d.ts +3 -3
  155. package/src/rich-text-editor/services/renderer-factory.js +3 -3
  156. package/src/rich-text-editor/services/service-locator.d.ts +3 -3
  157. package/src/rich-text-editor/services/service-locator.js +3 -3
  158. package/src/selection/selection.d.ts +22 -22
  159. package/src/selection/selection.js +22 -22
  160. package/styles/_all.scss +2 -2
  161. package/styles/bootstrap-dark.css +13 -1
  162. package/styles/bootstrap.css +13 -1
  163. package/styles/bootstrap4.css +13 -1
  164. package/styles/bootstrap5-dark.css +0 -0
  165. package/styles/bootstrap5-dark.scss +0 -0
  166. package/styles/bootstrap5.css +0 -0
  167. package/styles/bootstrap5.scss +0 -0
  168. package/styles/fabric-dark.css +13 -1
  169. package/styles/fabric.css +13 -1
  170. package/styles/highcontrast-light.css +13 -1
  171. package/styles/highcontrast.css +13 -1
  172. package/styles/material-dark.css +13 -1
  173. package/styles/material.css +13 -1
  174. package/styles/rich-text-editor/_all.scss +2 -2
  175. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +151 -151
  176. package/styles/rich-text-editor/_bootstrap-definition.scss +184 -184
  177. package/styles/rich-text-editor/_bootstrap4-definition.scss +307 -307
  178. package/styles/rich-text-editor/_fabric-dark-definition.scss +150 -150
  179. package/styles/rich-text-editor/_fabric-definition.scss +148 -148
  180. package/styles/rich-text-editor/_highcontrast-definition.scss +148 -148
  181. package/styles/rich-text-editor/_highcontrast-light-definition.scss +148 -148
  182. package/styles/rich-text-editor/_layout.scss +1416 -1404
  183. package/styles/rich-text-editor/_material-dark-definition.scss +151 -151
  184. package/styles/rich-text-editor/_material-definition.scss +150 -150
  185. package/styles/rich-text-editor/_theme.scss +499 -499
  186. package/styles/rich-text-editor/bootstrap-dark.css +13 -1
  187. package/styles/rich-text-editor/bootstrap.css +13 -1
  188. package/styles/rich-text-editor/bootstrap4.css +13 -1
  189. package/styles/rich-text-editor/fabric-dark.css +13 -1
  190. package/styles/rich-text-editor/fabric.css +13 -1
  191. package/styles/rich-text-editor/highcontrast-light.css +13 -1
  192. package/styles/rich-text-editor/highcontrast.css +13 -1
  193. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +289 -289
  194. package/styles/rich-text-editor/icons/_bootstrap.scss +288 -288
  195. package/styles/rich-text-editor/icons/_bootstrap4.scss +288 -288
  196. package/styles/rich-text-editor/icons/_fabric-dark.scss +288 -288
  197. package/styles/rich-text-editor/icons/_fabric.scss +288 -288
  198. package/styles/rich-text-editor/icons/_highcontrast-light.scss +288 -288
  199. package/styles/rich-text-editor/icons/_highcontrast.scss +288 -288
  200. package/styles/rich-text-editor/icons/_material-dark.scss +288 -288
  201. package/styles/rich-text-editor/icons/_material.scss +288 -288
  202. package/styles/rich-text-editor/material-dark.css +13 -1
  203. package/styles/rich-text-editor/material.css +13 -1
  204. package/styles/tailwind-dark.css +0 -0
  205. package/styles/tailwind-dark.scss +0 -0
  206. package/styles/tailwind.css +0 -0
  207. package/styles/tailwind.scss +0 -0
  208. package/dist/global/ej2-richtexteditor.min.js +0 -11
  209. package/dist/global/ej2-richtexteditor.min.js.map +0 -1
  210. package/dist/global/index.d.ts +0 -14
@@ -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
  /**
@@ -16596,6 +16659,7 @@ class Image {
16596
16659
  this.parent.on(keyDown, this.onKeyDown, this);
16597
16660
  this.parent.on(keyUp, this.onKeyUp, this);
16598
16661
  this.parent.on(insertImage, this.insertImage, this);
16662
+ this.parent.on(windowResize, this.onWindowResize, this);
16599
16663
  this.parent.on(insertCompleted, this.showImageQuickToolbar, this);
16600
16664
  this.parent.on(imageToolbarAction, this.onToolbarAction, this);
16601
16665
  this.parent.on(imageCaption, this.caption, this);
@@ -16616,6 +16680,7 @@ class Image {
16616
16680
  }
16617
16681
  this.parent.off(keyDown, this.onKeyDown);
16618
16682
  this.parent.off(keyUp, this.onKeyUp);
16683
+ this.parent.off(windowResize, this.onWindowResize);
16619
16684
  this.parent.off(insertImage, this.insertImage);
16620
16685
  this.parent.off(insertCompleted, this.showImageQuickToolbar);
16621
16686
  this.parent.off(imageCaption, this.caption);
@@ -16837,7 +16902,6 @@ class Image {
16837
16902
  calcPos(elem) {
16838
16903
  let ignoreOffset = ['TD', 'TH', 'TABLE', 'A'];
16839
16904
  let parentOffset = { top: 0, left: 0 };
16840
- let offset = elem.getBoundingClientRect();
16841
16905
  let doc = elem.ownerDocument;
16842
16906
  let offsetParent = ((elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption') ||
16843
16907
  ignoreOffset.indexOf(elem.offsetParent.tagName) > -1)) ?
@@ -16851,8 +16915,8 @@ class Image {
16851
16915
  parentOffset = offsetParent.getBoundingClientRect();
16852
16916
  }
16853
16917
  return {
16854
- top: offset.top - parentOffset.top,
16855
- left: offset.left - parentOffset.left
16918
+ top: elem.offsetTop,
16919
+ left: elem.offsetLeft
16856
16920
  };
16857
16921
  }
16858
16922
  setAspectRatio(img, expectedX, expectedY) {
@@ -16907,6 +16971,11 @@ class Image {
16907
16971
  }
16908
16972
  }
16909
16973
  }
16974
+ onWindowResize() {
16975
+ if (!isNullOrUndefined(this.contentModule.getEditPanel().querySelector('.e-img-resize'))) {
16976
+ this.cancelResizeAction();
16977
+ }
16978
+ }
16910
16979
  pixToPerc(expected, parentEle) {
16911
16980
  return expected / parseFloat(getComputedStyle(parentEle).width) * 100;
16912
16981
  }
@@ -16918,7 +16987,8 @@ class Image {
16918
16987
  }
16919
16988
  else {
16920
16989
  if ((parseInt(this.parent.insertImageSettings.minWidth, 10) >= parseInt(width, 10) ||
16921
- parseInt(this.parent.getInsertImgMaxWidth(), 10) <= parseInt(width, 10))) {
16990
+ (parseInt(this.parent.getInsertImgMaxWidth(), 10) <= parseInt(width, 10) &&
16991
+ isNullOrUndefined(this.imgEle.style.width)))) {
16922
16992
  return;
16923
16993
  }
16924
16994
  if (!this.parent.insertImageSettings.resizeByPercent &&
@@ -17540,7 +17610,11 @@ class Image {
17540
17610
  }
17541
17611
  }
17542
17612
  imageRemovePost(src) {
17543
- 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);
17544
17618
  let formData = new FormData();
17545
17619
  formData.append(name, src);
17546
17620
  ajax.send(formData);
@@ -17774,7 +17848,10 @@ class Image {
17774
17848
  if (target.tagName !== 'IMG') {
17775
17849
  this.removeResizeEle();
17776
17850
  }
17777
- if (!isNullOrUndefined(this.prevSelectedImgEle)) {
17851
+ if (target.tagName !== 'IMG' && !isNullOrUndefined(this.imgEle)) {
17852
+ this.imgEle.style.outline = '';
17853
+ }
17854
+ else if (!isNullOrUndefined(this.prevSelectedImgEle) && this.prevSelectedImgEle !== target) {
17778
17855
  this.prevSelectedImgEle.style.outline = '';
17779
17856
  }
17780
17857
  }
@@ -19179,6 +19256,11 @@ class Table {
19179
19256
  }
19180
19257
  let target = e.target || e.targetTouches[0].target;
19181
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
+ }
19182
19264
  if (target.nodeName === 'TABLE' || target.nodeName === 'TD' || target.nodeName === 'TH') {
19183
19265
  this.curTable = (closestTable && this.parent.contentModule.getEditPanel().contains(closestTable))
19184
19266
  && (target.nodeName === 'TD' || target.nodeName === 'TH') ?
@@ -19428,7 +19510,7 @@ class Table {
19428
19510
  'px; left:' + (this.calcPos(this.curTable).left + tableWidth - 4) + 'px;';
19429
19511
  this.updateHelper();
19430
19512
  }
19431
- else if (this.resizeBtnStat.tableBox) {
19513
+ else if (this.resizeBtnStat.tableBox && !isNullOrUndefined(tableReBox)) {
19432
19514
  if (!Browser.isDevice) {
19433
19515
  EventHandler.remove(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper);
19434
19516
  }
@@ -20066,12 +20148,12 @@ const executeGroup = {
20066
20148
  }
20067
20149
  };
20068
20150
 
20069
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20070
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20071
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20072
- 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;
20073
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20074
- };
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
+ };
20075
20157
  const predefinedItems = ['Bold', 'Italic', 'Underline', '|', 'Formats', 'Alignments',
20076
20158
  'OrderedList', 'UnorderedList', '|', 'CreateLink', 'Image', '|', 'SourceCode', 'Undo', 'Redo'];
20077
20159
  const fontFamily = [
@@ -20393,12 +20475,12 @@ __decorate$2([
20393
20475
  Property(false)
20394
20476
  ], BackgroundColor.prototype, "modeSwitcher", void 0);
20395
20477
 
20396
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20397
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20398
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20399
- 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;
20400
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20401
- };
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
+ };
20402
20484
  /**
20403
20485
  * Objects used for configuring the iframe resources properties.
20404
20486
  */
@@ -20425,12 +20507,12 @@ __decorate$3([
20425
20507
  Complex({}, Resources)
20426
20508
  ], IFrameSettings.prototype, "resources", void 0);
20427
20509
 
20428
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20429
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20430
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20431
- 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;
20432
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20433
- };
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
+ };
20434
20516
  /**
20435
20517
  * Configures the inlineMode property of the RTE.
20436
20518
  */
@@ -20443,12 +20525,12 @@ __decorate$4([
20443
20525
  Property(true)
20444
20526
  ], InlineMode.prototype, "onSelection", void 0);
20445
20527
 
20446
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
20447
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20448
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20449
- 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;
20450
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20451
- };
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
+ };
20452
20534
  /**
20453
20535
  * Represents the Rich Text Editor component.
20454
20536
  * ```html
@@ -20919,6 +21001,17 @@ let RichTextEditor = class RichTextEditor extends Component {
20919
21001
  this.autoResize();
20920
21002
  }
20921
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
+ }
20922
21015
  this.notify(keyUp, { member: 'keyup', args: e });
20923
21016
  if (e.code === 'KeyX' && e.which === 88 && e.keyCode === 88 && e.ctrlKey && (this.inputElement.innerHTML === '' ||
20924
21017
  this.inputElement.innerHTML === '<br>')) {
@@ -20929,7 +21022,8 @@ let RichTextEditor = class RichTextEditor extends Component {
20929
21022
  && ((e.key !== 'shift' && !e.ctrlKey) && e.key && e.key.length === 1 || allowedKeys)) && !this.inlineMode.enable) {
20930
21023
  this.formatter.onKeyHandler(this, e);
20931
21024
  }
20932
- 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) {
20933
21027
  this.notify(toolbarRefresh, { args: e });
20934
21028
  }
20935
21029
  if (!isNullOrUndefined(this.placeholder)) {
@@ -21727,7 +21821,9 @@ let RichTextEditor = class RichTextEditor extends Component {
21727
21821
  let item = compiledTemplate[i];
21728
21822
  append([item], this.element);
21729
21823
  }
21730
- this.setProperties({ value: this.element.innerHTML.trim() });
21824
+ if (this.element.innerHTML.trim() !== '') {
21825
+ this.setProperties({ value: this.element.innerHTML.trim() });
21826
+ }
21731
21827
  }
21732
21828
  }
21733
21829
  else {
@@ -21921,11 +22017,16 @@ let RichTextEditor = class RichTextEditor extends Component {
21921
22017
  }
21922
22018
  resizeHandler() {
21923
22019
  let isExpand = false;
22020
+ if (!document.body.contains(this.element)) {
22021
+ document.defaultView.removeEventListener('resize', this.onResizeHandler, true);
22022
+ return;
22023
+ }
21924
22024
  if (this.toolbarSettings.enable && !this.inlineMode.enable) {
21925
22025
  this.toolbarModule.refreshToolbarOverflow();
21926
22026
  isExpand = this.toolbarModule.baseToolbar.toolbarObj.element.classList.contains(CLS_EXPAND_OPEN);
21927
22027
  }
21928
22028
  this.setContentHeight('', isExpand);
22029
+ this.notify(windowResize, null);
21929
22030
  }
21930
22031
  scrollHandler(e) {
21931
22032
  this.notify(scroll, { args: e });
@@ -22001,6 +22102,9 @@ let RichTextEditor = class RichTextEditor extends Component {
22001
22102
  return value;
22002
22103
  }
22003
22104
  updateValueOnIdle() {
22105
+ if (!isNullOrUndefined(this.tableModule) && !isNullOrUndefined(this.inputElement.querySelector('.e-table-box.e-rbox-select'))) {
22106
+ return;
22107
+ }
22004
22108
  this.setProperties({ value: this.getUpdatedValue() }, true);
22005
22109
  this.valueContainer.value = this.value;
22006
22110
  this.invokeChangeEvent();
@@ -22535,5 +22639,5 @@ RichTextEditor = __decorate$1([
22535
22639
  * Rich Text Editor component exported items
22536
22640
  */
22537
22641
 
22538
- 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 };
22539
22643
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map