@syncfusion/ej2-richtexteditor 27.1.55 → 27.1.57-643705

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 (233) hide show
  1. package/.eslintignore +4 -4
  2. package/.eslintrc.json +260 -260
  3. package/README.md +76 -76
  4. package/dist/ej2-richtexteditor.umd.min.js +1 -10
  5. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es2015.js +985 -738
  7. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  8. package/dist/es6/ej2-richtexteditor.es5.js +601 -352
  9. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  10. package/ej2-richtexteditor-component.sln +30 -0
  11. package/helpers/e2e/index.js +3 -3
  12. package/helpers/e2e/rte-helper.js +13 -13
  13. package/license +9 -9
  14. package/package.json +85 -85
  15. package/src/common/config.d.ts +7 -0
  16. package/src/common/config.js +12 -0
  17. package/src/common/interface.d.ts +10 -8
  18. package/src/common/util.js +2 -1
  19. package/src/editor-manager/base/classes.d.ts +1 -1
  20. package/src/editor-manager/base/classes.js +1 -1
  21. package/src/editor-manager/base/constant.d.ts +4 -0
  22. package/src/editor-manager/base/constant.js +4 -0
  23. package/src/editor-manager/base/editor-manager.d.ts +3 -3
  24. package/src/editor-manager/base/editor-manager.js +3 -3
  25. package/src/editor-manager/base/enum.d.ts +2 -2
  26. package/src/editor-manager/base/interface.d.ts +9 -9
  27. package/src/editor-manager/base/types.d.ts +1 -1
  28. package/src/editor-manager/plugin/alignments.d.ts +2 -2
  29. package/src/editor-manager/plugin/alignments.js +2 -2
  30. package/src/editor-manager/plugin/audio.d.ts +3 -3
  31. package/src/editor-manager/plugin/audio.js +3 -3
  32. package/src/editor-manager/plugin/clearformat-exec.d.ts +2 -2
  33. package/src/editor-manager/plugin/clearformat-exec.js +2 -2
  34. package/src/editor-manager/plugin/clearformat.d.ts +1 -1
  35. package/src/editor-manager/plugin/clearformat.js +1 -1
  36. package/src/editor-manager/plugin/dom-node.d.ts +36 -36
  37. package/src/editor-manager/plugin/dom-node.js +36 -36
  38. package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -1
  39. package/src/editor-manager/plugin/format-painter-actions.js +1 -1
  40. package/src/editor-manager/plugin/formats.d.ts +3 -2
  41. package/src/editor-manager/plugin/formats.js +27 -2
  42. package/src/editor-manager/plugin/image.d.ts +3 -3
  43. package/src/editor-manager/plugin/image.js +11 -5
  44. package/src/editor-manager/plugin/indents.d.ts +2 -2
  45. package/src/editor-manager/plugin/indents.js +2 -2
  46. package/src/editor-manager/plugin/insert-methods.d.ts +4 -4
  47. package/src/editor-manager/plugin/insert-methods.js +4 -4
  48. package/src/editor-manager/plugin/insert-text.d.ts +2 -2
  49. package/src/editor-manager/plugin/insert-text.js +2 -2
  50. package/src/editor-manager/plugin/inserthtml-exec.d.ts +2 -2
  51. package/src/editor-manager/plugin/inserthtml-exec.js +2 -2
  52. package/src/editor-manager/plugin/inserthtml.d.ts +4 -2
  53. package/src/editor-manager/plugin/inserthtml.js +98 -19
  54. package/src/editor-manager/plugin/isformatted.d.ts +9 -9
  55. package/src/editor-manager/plugin/isformatted.js +9 -9
  56. package/src/editor-manager/plugin/link.d.ts +2 -2
  57. package/src/editor-manager/plugin/link.js +2 -2
  58. package/src/editor-manager/plugin/lists.d.ts +2 -2
  59. package/src/editor-manager/plugin/lists.js +2 -2
  60. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +2 -1
  61. package/src/editor-manager/plugin/ms-word-clean-up.js +17 -1
  62. package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
  63. package/src/editor-manager/plugin/nodecutter.js +8 -8
  64. package/src/editor-manager/plugin/selection-commands.d.ts +1 -1
  65. package/src/editor-manager/plugin/selection-commands.js +1 -1
  66. package/src/editor-manager/plugin/selection-exec.d.ts +2 -2
  67. package/src/editor-manager/plugin/selection-exec.js +2 -2
  68. package/src/editor-manager/plugin/table.d.ts +2 -2
  69. package/src/editor-manager/plugin/table.js +2 -2
  70. package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
  71. package/src/editor-manager/plugin/toolbar-status.js +2 -2
  72. package/src/editor-manager/plugin/undo.d.ts +6 -6
  73. package/src/editor-manager/plugin/undo.js +6 -6
  74. package/src/editor-manager/plugin/video.d.ts +3 -3
  75. package/src/editor-manager/plugin/video.js +3 -3
  76. package/src/markdown-parser/base/interface.d.ts +10 -10
  77. package/src/markdown-parser/base/markdown-parser.d.ts +3 -3
  78. package/src/markdown-parser/base/markdown-parser.js +3 -3
  79. package/src/markdown-parser/base/types.d.ts +1 -1
  80. package/src/markdown-parser/plugin/clearformat.d.ts +2 -2
  81. package/src/markdown-parser/plugin/clearformat.js +2 -2
  82. package/src/markdown-parser/plugin/formats.d.ts +2 -2
  83. package/src/markdown-parser/plugin/formats.js +2 -2
  84. package/src/markdown-parser/plugin/insert-text.d.ts +2 -2
  85. package/src/markdown-parser/plugin/insert-text.js +2 -2
  86. package/src/markdown-parser/plugin/link.d.ts +2 -2
  87. package/src/markdown-parser/plugin/link.js +2 -2
  88. package/src/markdown-parser/plugin/markdown-selection.d.ts +14 -14
  89. package/src/markdown-parser/plugin/markdown-selection.js +14 -14
  90. package/src/markdown-parser/plugin/md-selection-formats.d.ts +1 -1
  91. package/src/markdown-parser/plugin/md-selection-formats.js +1 -1
  92. package/src/markdown-parser/plugin/table.d.ts +3 -3
  93. package/src/markdown-parser/plugin/table.js +3 -3
  94. package/src/markdown-parser/plugin/undo.d.ts +6 -6
  95. package/src/markdown-parser/plugin/undo.js +6 -6
  96. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +9 -9
  97. package/src/rich-text-editor/actions/base-quick-toolbar.js +9 -9
  98. package/src/rich-text-editor/actions/base-toolbar.d.ts +3 -3
  99. package/src/rich-text-editor/actions/base-toolbar.js +3 -3
  100. package/src/rich-text-editor/actions/color-picker.d.ts +2 -2
  101. package/src/rich-text-editor/actions/color-picker.js +2 -2
  102. package/src/rich-text-editor/actions/count.d.ts +3 -3
  103. package/src/rich-text-editor/actions/count.js +3 -3
  104. package/src/rich-text-editor/actions/dropdown-buttons.d.ts +2 -2
  105. package/src/rich-text-editor/actions/dropdown-buttons.js +2 -2
  106. package/src/rich-text-editor/actions/emoji-picker.d.ts +1 -1
  107. package/src/rich-text-editor/actions/emoji-picker.js +1 -1
  108. package/src/rich-text-editor/actions/full-screen.d.ts +3 -3
  109. package/src/rich-text-editor/actions/full-screen.js +3 -3
  110. package/src/rich-text-editor/actions/html-editor.d.ts +3 -3
  111. package/src/rich-text-editor/actions/html-editor.js +12 -4
  112. package/src/rich-text-editor/actions/keyboard-model.d.ts +16 -16
  113. package/src/rich-text-editor/actions/keyboard.d.ts +1 -1
  114. package/src/rich-text-editor/actions/keyboard.js +20 -20
  115. package/src/rich-text-editor/actions/markdown-editor.d.ts +2 -2
  116. package/src/rich-text-editor/actions/markdown-editor.js +2 -2
  117. package/src/rich-text-editor/actions/paste-clean-up.d.ts +1 -1
  118. package/src/rich-text-editor/actions/paste-clean-up.js +49 -22
  119. package/src/rich-text-editor/actions/quick-toolbar.d.ts +9 -9
  120. package/src/rich-text-editor/actions/quick-toolbar.js +9 -9
  121. package/src/rich-text-editor/actions/resize.js +4 -0
  122. package/src/rich-text-editor/actions/toolbar.d.ts +13 -13
  123. package/src/rich-text-editor/actions/toolbar.js +13 -13
  124. package/src/rich-text-editor/actions/xhtml-validation.d.ts +1 -1
  125. package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
  126. package/src/rich-text-editor/base/classes.d.ts +125 -125
  127. package/src/rich-text-editor/base/classes.js +125 -125
  128. package/src/rich-text-editor/base/constant.d.ts +158 -158
  129. package/src/rich-text-editor/base/constant.js +158 -158
  130. package/src/rich-text-editor/base/enum.d.ts +1 -1
  131. package/src/rich-text-editor/base/enum.js +1 -1
  132. package/src/rich-text-editor/base/interface.d.ts +51 -51
  133. package/src/rich-text-editor/base/interface.js +1 -1
  134. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +958 -958
  135. package/src/rich-text-editor/base/rich-text-editor.d.ts +62 -62
  136. package/src/rich-text-editor/base/rich-text-editor.js +68 -65
  137. package/src/rich-text-editor/base/util.d.ts +1 -1
  138. package/src/rich-text-editor/base/util.js +1 -1
  139. package/src/rich-text-editor/formatter/formatter.d.ts +8 -8
  140. package/src/rich-text-editor/formatter/formatter.js +8 -8
  141. package/src/rich-text-editor/formatter/html-formatter.d.ts +2 -2
  142. package/src/rich-text-editor/formatter/html-formatter.js +15 -15
  143. package/src/rich-text-editor/formatter/markdown-formatter.d.ts +2 -2
  144. package/src/rich-text-editor/formatter/markdown-formatter.js +15 -15
  145. package/src/rich-text-editor/models/iframe-settings-model.d.ts +38 -38
  146. package/src/rich-text-editor/models/iframe-settings.js +19 -19
  147. package/src/rich-text-editor/models/inline-mode-model.d.ts +11 -11
  148. package/src/rich-text-editor/models/inline-mode.js +19 -19
  149. package/src/rich-text-editor/models/slash-menu-settings-model.d.ts +25 -25
  150. package/src/rich-text-editor/models/slash-menu-settings.js +19 -19
  151. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +807 -807
  152. package/src/rich-text-editor/models/toolbar-settings.js +19 -19
  153. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
  154. package/src/rich-text-editor/renderer/audio-module.js +8 -2
  155. package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
  156. package/src/rich-text-editor/renderer/content-renderer.js +6 -6
  157. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -2
  158. package/src/rich-text-editor/renderer/dialog-renderer.js +2 -2
  159. package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
  160. package/src/rich-text-editor/renderer/iframe-content-renderer.js +17 -17
  161. package/src/rich-text-editor/renderer/image-module.d.ts +1 -1
  162. package/src/rich-text-editor/renderer/image-module.js +58 -21
  163. package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
  164. package/src/rich-text-editor/renderer/link-module.js +4 -1
  165. package/src/rich-text-editor/renderer/markdown-renderer.d.ts +6 -6
  166. package/src/rich-text-editor/renderer/markdown-renderer.js +6 -6
  167. package/src/rich-text-editor/renderer/popup-renderer.d.ts +5 -5
  168. package/src/rich-text-editor/renderer/popup-renderer.js +5 -5
  169. package/src/rich-text-editor/renderer/render.d.ts +2 -2
  170. package/src/rich-text-editor/renderer/render.js +2 -2
  171. package/src/rich-text-editor/renderer/slash-menu.js +9 -0
  172. package/src/rich-text-editor/renderer/table-module.d.ts +1 -1
  173. package/src/rich-text-editor/renderer/table-module.js +5 -4
  174. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +9 -9
  175. package/src/rich-text-editor/renderer/toolbar-renderer.js +9 -9
  176. package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
  177. package/src/rich-text-editor/renderer/video-module.js +8 -2
  178. package/src/rich-text-editor/renderer/view-source.d.ts +5 -5
  179. package/src/rich-text-editor/renderer/view-source.js +5 -5
  180. package/src/rich-text-editor/services/renderer-factory.d.ts +3 -3
  181. package/src/rich-text-editor/services/renderer-factory.js +3 -3
  182. package/src/rich-text-editor/services/service-locator.d.ts +3 -3
  183. package/src/rich-text-editor/services/service-locator.js +3 -3
  184. package/src/selection/selection.d.ts +24 -23
  185. package/src/selection/selection.js +37 -34
  186. package/styles/_all.scss +1 -1
  187. package/styles/material3-dark.scss +1 -1
  188. package/styles/material3.scss +1 -1
  189. package/styles/rich-text-editor/_all.scss +2 -2
  190. package/styles/rich-text-editor/_bds-definition.scss +290 -290
  191. package/styles/rich-text-editor/_bigger.scss +610 -610
  192. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +291 -291
  193. package/styles/rich-text-editor/_bootstrap-definition.scss +349 -349
  194. package/styles/rich-text-editor/_bootstrap4-definition.scss +476 -476
  195. package/styles/rich-text-editor/_bootstrap5-definition.scss +278 -278
  196. package/styles/rich-text-editor/_bootstrap5.3-definition.scss +278 -278
  197. package/styles/rich-text-editor/_fabric-dark-definition.scss +275 -275
  198. package/styles/rich-text-editor/_fabric-definition.scss +273 -273
  199. package/styles/rich-text-editor/_fluent-definition.scss +279 -279
  200. package/styles/rich-text-editor/_fluent2-definition.scss +287 -287
  201. package/styles/rich-text-editor/_fusionnew-definition.scss +276 -276
  202. package/styles/rich-text-editor/_highcontrast-definition.scss +274 -274
  203. package/styles/rich-text-editor/_highcontrast-light-definition.scss +273 -273
  204. package/styles/rich-text-editor/_layout.scss +2180 -2180
  205. package/styles/rich-text-editor/_material-dark-definition.scss +278 -278
  206. package/styles/rich-text-editor/_material-definition.scss +276 -276
  207. package/styles/rich-text-editor/_material3-definition.scss +278 -278
  208. package/styles/rich-text-editor/_tailwind-definition.scss +273 -273
  209. package/styles/rich-text-editor/_theme.scss +844 -844
  210. package/styles/rich-text-editor/icons/_bds.scss +372 -372
  211. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +373 -373
  212. package/styles/rich-text-editor/icons/_bootstrap.scss +373 -373
  213. package/styles/rich-text-editor/icons/_bootstrap4.scss +373 -373
  214. package/styles/rich-text-editor/icons/_bootstrap5.3.scss +372 -372
  215. package/styles/rich-text-editor/icons/_bootstrap5.scss +372 -372
  216. package/styles/rich-text-editor/icons/_fabric-dark.scss +373 -373
  217. package/styles/rich-text-editor/icons/_fabric.scss +373 -373
  218. package/styles/rich-text-editor/icons/_fluent.scss +372 -372
  219. package/styles/rich-text-editor/icons/_fluent2.scss +369 -369
  220. package/styles/rich-text-editor/icons/_fusionnew.scss +357 -357
  221. package/styles/rich-text-editor/icons/_highcontrast-light.scss +361 -361
  222. package/styles/rich-text-editor/icons/_highcontrast.scss +373 -373
  223. package/styles/rich-text-editor/icons/_material-dark.scss +373 -373
  224. package/styles/rich-text-editor/icons/_material.scss +373 -373
  225. package/styles/rich-text-editor/icons/_material3.scss +372 -372
  226. package/styles/rich-text-editor/icons/_tailwind.scss +372 -372
  227. package/styles/rich-text-editor/material3-dark.scss +1 -1
  228. package/styles/rich-text-editor/material3.scss +1 -1
  229. package/dist/ej2-richtexteditor.min.js +0 -10
  230. package/dist/global/ej2-richtexteditor.min.js +0 -11
  231. package/dist/global/ej2-richtexteditor.min.js.map +0 -1
  232. package/dist/global/index.d.ts +0 -14
  233. package/tslint.json +0 -111
@@ -779,18 +779,18 @@ const autoResize = 'autoResize';
779
779
  * @hidden
780
780
  * @deprecated
781
781
  */
782
- const blockEmptyNodes = `address:empty, article:empty, aside:empty, blockquote:empty,
783
- details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,
784
- h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,
782
+ const blockEmptyNodes = `address:empty, article:empty, aside:empty, blockquote:empty,
783
+ details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,
784
+ h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,
785
785
  noscript:empty, output:empty, p:empty, pre:empty, section:empty, td:empty, th:empty`;
786
786
  /**
787
787
  * @hidden
788
788
  * @deprecated
789
789
  */
790
- const inlineEmptyNodes = `a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,
791
- canvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,
792
- ins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,
793
- q:empty, ruby:empty, s:empty, samp:empty, script:empty, select:empty, slot:empty, small:empty, span:empty, strong:empty, strike:empty, sub:empty, sup:empty, svg:empty,
790
+ const inlineEmptyNodes = `a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,
791
+ canvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,
792
+ ins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,
793
+ q:empty, ruby:empty, s:empty, samp:empty, script:empty, select:empty, slot:empty, small:empty, span:empty, strong:empty, strike:empty, sub:empty, sup:empty, svg:empty,
794
794
  template:empty, textarea:empty, time:empty, u:empty, tt:empty, var:empty, wbr:empty`;
795
795
  /**
796
796
  * @hidden
@@ -4246,6 +4246,10 @@ const SELF_CLOSING_TAGS = ['area', 'base', 'br', 'embed', 'hr', 'img', 'input',
4246
4246
  * @hidden
4247
4247
  */
4248
4248
  const PASTE_SOURCE = ['word', 'excel', 'onenote'];
4249
+ /**
4250
+ * @hidden
4251
+ */
4252
+ const ALLOWED_TABLE_BLOCK_TAGS = ['article', 'aside', 'blockquote', 'body', 'canvas', 'details', 'div', 'fieldset', 'figure', 'footer', 'form', 'header', 'li', 'main', 'nav', 'noscript', 'section'];
4249
4253
 
4250
4254
  /**
4251
4255
  * `Selection` module is used to handle RTE Selections.
@@ -4374,7 +4378,8 @@ class NodeSelection {
4374
4378
  const tableCursor = this.processedTableImageCursor(range);
4375
4379
  if (tableCursor.start || tableCursor.end) {
4376
4380
  if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
4377
- return [];
4381
+ const tableNode = tableCursor.start ? tableCursor.startNode : tableCursor.endNode;
4382
+ return [tableNode];
4378
4383
  }
4379
4384
  }
4380
4385
  if ((startNode === endNode || (startNode.nodeName === 'BR' && startNode === range.endContainer.childNodes[range.endOffset])) &&
@@ -4700,34 +4705,36 @@ class NodeSelection {
4700
4705
  const customHandlerElements = ['TABLE'];
4701
4706
  const startContainer = range.startContainer;
4702
4707
  const startOffset = range.startOffset;
4708
+ const startNode = startContainer.childNodes[startOffset];
4703
4709
  const isCursorAtStart = range.collapsed && (startContainer.nodeType === 1) &&
4704
- startContainer.isContentEditable && startContainer.childNodes[startOffset] &&
4705
- (customHandlerElements.indexOf(startContainer.childNodes[startOffset].nodeName) > -1);
4710
+ startContainer.isContentEditable && startNode &&
4711
+ (customHandlerElements.indexOf(startNode.nodeName) > -1);
4706
4712
  if (isCursorAtStart) {
4707
- return { start: isCursorAtStart, startNodeName: startContainer.childNodes[startOffset].nodeName };
4713
+ return { start: isCursorAtStart, startNodeName: startNode.nodeName, startNode: startNode };
4708
4714
  }
4709
4715
  else {
4710
- return { start: false, startNodeName: '' };
4716
+ return { start: false, startNodeName: '', startNode: undefined };
4711
4717
  }
4712
4718
  }
4713
4719
  isTableOrImageEnd(range) {
4714
4720
  const customHandlerElements = ['TABLE'];
4715
4721
  const startContainer = range.startContainer;
4716
4722
  const startOffset = range.startOffset;
4723
+ const endNode = startContainer.childNodes[startOffset - 1];
4717
4724
  const isCursorAtEnd = range.collapsed && (startContainer.nodeType === 1) &&
4718
- startContainer.isContentEditable && startContainer.childNodes[startOffset - 1] &&
4719
- (customHandlerElements.indexOf(startContainer.childNodes[startOffset - 1].nodeName) > -1);
4725
+ startContainer.isContentEditable && endNode &&
4726
+ (customHandlerElements.indexOf(endNode.nodeName) > -1);
4720
4727
  if (isCursorAtEnd) {
4721
- return { end: isCursorAtEnd, endNodeName: startContainer.childNodes[startOffset - 1].nodeName };
4728
+ return { end: isCursorAtEnd, endNodeName: endNode.nodeName, endNode: endNode };
4722
4729
  }
4723
4730
  else {
4724
- return { end: false, endNodeName: '' };
4731
+ return { end: false, endNodeName: '', endNode: undefined };
4725
4732
  }
4726
4733
  }
4727
4734
  processedTableImageCursor(range) {
4728
- const { start, startNodeName } = this.isTableOrImageStart(range);
4729
- const { end, endNodeName } = this.isTableOrImageEnd(range);
4730
- return { start, startName: startNodeName, end, endName: endNodeName };
4735
+ const { start, startNodeName, startNode } = this.isTableOrImageStart(range);
4736
+ const { end, endNodeName, endNode } = this.isTableOrImageEnd(range);
4737
+ return { start, startName: startNodeName, end, endName: endNodeName, startNode, endNode };
4731
4738
  }
4732
4739
  }
4733
4740
 
@@ -4814,7 +4821,8 @@ function updateTextNode$1(value, enterAction) {
4814
4821
  }
4815
4822
  const tableElm = resultElm.querySelectorAll('table');
4816
4823
  for (let i = 0; i < tableElm.length; i++) {
4817
- if (tableElm[i].classList.length > 0 && !tableElm[i].classList.contains('e-rte-table')) {
4824
+ if (tableElm[i].classList.length > 0 && !tableElm[i].classList.contains('e-rte-table') &&
4825
+ !tableElm[i].classList.contains('e-rte-custom-table')) {
4818
4826
  tableElm[i].classList.add('e-rte-paste-table');
4819
4827
  if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
4820
4828
  tableElm[i].classList.remove('e-rte-paste-word-table');
@@ -6615,6 +6623,9 @@ class Link {
6615
6623
  if (document.body.contains(proxy.dialogObj.element)) {
6616
6624
  this.selfLink.dialogObj.hide({ returnValue: false });
6617
6625
  }
6626
+ if (this.selfLink.dialogObj !== null) {
6627
+ return;
6628
+ }
6618
6629
  if (isIDevice$1() && proxy.parent.iframeSettings.enable) {
6619
6630
  select('iframe', proxy.parent.element).contentWindow.focus();
6620
6631
  }
@@ -6911,6 +6922,18 @@ const imageResizeFactor = {
6911
6922
  botRight: [1, 1],
6912
6923
  botLeft: [-1, 1]
6913
6924
  };
6925
+ /**
6926
+ * Resize factor for image in iframe editor.
6927
+ *
6928
+ *@hidden
6929
+ *
6930
+ */
6931
+ const iframeResizeFactor = {
6932
+ topLeft: [-1.2, -1.2],
6933
+ topRight: [1.2, -1.2],
6934
+ botRight: [1.2, 1.2],
6935
+ botLeft: [-1.2, 1.2]
6936
+ };
6914
6937
  /**
6915
6938
  * Mention restrict key configuration.
6916
6939
  *
@@ -7123,8 +7146,14 @@ class Image$1 {
7123
7146
  if (this.parent.formatter.getUndoRedoStack().length === 0) {
7124
7147
  this.parent.formatter.saveData();
7125
7148
  }
7126
- this.pageX = this.getPointX(e);
7127
- this.pageY = this.getPointY(e);
7149
+ if (this.parent.iframeSettings.enable) {
7150
+ this.pageX = e.screenX;
7151
+ this.pageY = e.screenY;
7152
+ }
7153
+ else {
7154
+ this.pageX = this.getPointX(e);
7155
+ this.pageY = this.getPointY(e);
7156
+ }
7128
7157
  e.preventDefault();
7129
7158
  e.stopImmediatePropagation();
7130
7159
  this.resizeBtnInit();
@@ -7353,7 +7382,7 @@ class Image$1 {
7353
7382
  width = Math.round(height * aspectRatio);
7354
7383
  height = Math.round(width / aspectRatio);
7355
7384
  }
7356
- return { width, height };
7385
+ return { width: width, height: height };
7357
7386
  }
7358
7387
  pixToPerc(expected, parentEle) {
7359
7388
  return expected / parseFloat(getComputedStyle(parentEle).width) * 100;
@@ -7388,29 +7417,50 @@ class Image$1 {
7388
7417
  return;
7389
7418
  }
7390
7419
  if (this.resizeBtnStat.botRight || this.resizeBtnStat.botLeft || this.resizeBtnStat.topRight || this.resizeBtnStat.topLeft) {
7391
- const pageX = this.getPointX(e);
7392
- const pageY = this.getPointY(e);
7393
- const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7394
- const diffX = (pageX - this.pageX);
7395
- const diffY = (pageY - this.pageY);
7396
- const currentWidth = this.imgEle.clientWidth;
7397
- const currentHeight = this.imgEle.clientHeight;
7398
- const width = diffX * resizeFactor[0] + currentWidth;
7399
- const height = diffY * resizeFactor[1] + currentHeight;
7400
- const dimensions = this.adjustDimensions(width, height, diffX, diffY, this.aspectRatio);
7401
- this.pageX = pageX;
7402
- this.pageY = pageY;
7403
- this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7420
+ if (this.parent.iframeSettings.enable) {
7421
+ const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7422
+ const currentScreenX = e.screenX;
7423
+ const currentScreenY = e.screenY;
7424
+ const currentWidth = this.imgEle.clientWidth;
7425
+ const currentHeight = this.imgEle.clientHeight;
7426
+ const deltaX = currentScreenX - this.pageX;
7427
+ const deltaY = currentScreenY - this.pageY;
7428
+ const width = deltaX * resizeFactor[0] + currentWidth;
7429
+ const height = deltaY * resizeFactor[1] + currentHeight;
7430
+ const dimensions = this.adjustDimensions(width, height, deltaX, deltaY, this.aspectRatio);
7431
+ this.pageX = currentScreenX;
7432
+ this.pageY = currentScreenY;
7433
+ this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7434
+ this.parent.autoResize();
7435
+ }
7436
+ else {
7437
+ const pageX = this.getPointX(e);
7438
+ const pageY = this.getPointY(e);
7439
+ const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7440
+ const diffX = (pageX - this.pageX);
7441
+ const diffY = (pageY - this.pageY);
7442
+ const currentWidth = this.imgEle.clientWidth;
7443
+ const currentHeight = this.imgEle.clientHeight;
7444
+ const width = diffX * resizeFactor[0] + currentWidth;
7445
+ const height = diffY * resizeFactor[1] + currentHeight;
7446
+ const dimensions = this.adjustDimensions(width, height, diffX, diffY, this.aspectRatio);
7447
+ this.pageX = pageX;
7448
+ this.pageY = pageY;
7449
+ this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7450
+ }
7404
7451
  }
7405
7452
  }
7406
7453
  adjustDimensions(width, height, diffX, diffY, aspectRatio) {
7407
7454
  width = (width < 16) ? 16 : width;
7408
7455
  height = (height < 16) ? 16 : height;
7409
- const isWidthPrimary = Math.abs(diffX) > Math.abs(diffY);
7456
+ const isWidthPrimary = width > height;
7410
7457
  const dimensions = this.adjustDimensionsByAspectRatio(width, height, aspectRatio, isWidthPrimary);
7411
7458
  return dimensions;
7412
7459
  }
7413
7460
  getResizeFactor(value) {
7461
+ if (this.parent.iframeSettings.enable) {
7462
+ return iframeResizeFactor[value];
7463
+ }
7414
7464
  return imageResizeFactor[value];
7415
7465
  }
7416
7466
  findAspectRatio(image) {
@@ -7825,7 +7875,9 @@ class Image$1 {
7825
7875
  this.parent.formatter.editorManager.nodeSelection.Clear(this.contentModule.getDocument());
7826
7876
  this.parent.formatter.editorManager.nodeSelection.setSelectionContents(this.contentModule.getDocument(), target);
7827
7877
  this.quickToolObj.imageQTBar.showPopup(args.pageX, pageY, target);
7828
- this.resizeStart(e.args, target);
7878
+ if (this.parent.insertImageSettings.resize === true) {
7879
+ this.resizeStart(e.args, target);
7880
+ }
7829
7881
  }, 400);
7830
7882
  }
7831
7883
  else {
@@ -8497,6 +8549,9 @@ class Image$1 {
8497
8549
  proxy.uploadUrl.cssClass = (proxy.parent.insertImageSettings.display === 'inline' ?
8498
8550
  CLS_IMGINLINE : CLS_IMGBREAK);
8499
8551
  proxy.dialogObj.hide({ returnValue: false });
8552
+ if (proxy.dialogObj !== null) {
8553
+ return;
8554
+ }
8500
8555
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
8501
8556
  proxy.uploadUrl.url = '';
8502
8557
  if (proxy.contentModule.getEditPanel().querySelector('.e-img-resize')) {
@@ -8527,8 +8582,11 @@ class Image$1 {
8527
8582
  maxHeight: proxy.parent.insertImageSettings.maxHeight
8528
8583
  }
8529
8584
  };
8530
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
8531
8585
  proxy.dialogObj.hide({ returnValue: false });
8586
+ if (proxy.dialogObj !== null) {
8587
+ return;
8588
+ }
8589
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
8532
8590
  }
8533
8591
  }
8534
8592
  imgsizeInput(e) {
@@ -9285,7 +9343,9 @@ class Image$1 {
9285
9343
  if (imageElement) {
9286
9344
  this.showImageQTbarTime = setTimeout(() => {
9287
9345
  this.showImageQuickToolbar(args);
9288
- this.resizeStart(e.args, imageElement);
9346
+ if (this.parent.insertImageSettings.resize) {
9347
+ this.resizeStart(e.args, imageElement);
9348
+ }
9289
9349
  }, 0);
9290
9350
  }
9291
9351
  }
@@ -10173,6 +10233,9 @@ class Audio {
10173
10233
  proxy.uploadUrl.cssClass = (proxy.parent.insertAudioSettings.layoutOption === 'Inline' ?
10174
10234
  CLS_AUDIOINLINE : CLS_AUDIOBREAK);
10175
10235
  proxy.dialogObj.hide({ returnValue: false });
10236
+ if (proxy.dialogObj !== null) {
10237
+ return;
10238
+ }
10176
10239
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
10177
10240
  proxy.uploadUrl.url = '';
10178
10241
  }
@@ -10191,8 +10254,11 @@ class Audio {
10191
10254
  url: url, selection: this.selection, fileName: name,
10192
10255
  selectParent: this.selectParent
10193
10256
  };
10194
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
10195
10257
  proxy.dialogObj.hide({ returnValue: false });
10258
+ if (proxy.dialogObj !== null) {
10259
+ return;
10260
+ }
10261
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
10196
10262
  }
10197
10263
  }
10198
10264
  /* eslint-disable */
@@ -11657,6 +11723,9 @@ class Video {
11657
11723
  maxHeight: proxy.parent.insertVideoSettings.maxHeight
11658
11724
  };
11659
11725
  proxy.dialogObj.hide({ returnValue: false });
11726
+ if (proxy.dialogObj !== null) {
11727
+ return;
11728
+ }
11660
11729
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
11661
11730
  proxy.uploadUrl.url = '';
11662
11731
  }
@@ -11683,8 +11752,11 @@ class Video {
11683
11752
  maxHeight: proxy.parent.insertVideoSettings.maxHeight
11684
11753
  }
11685
11754
  };
11686
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
11687
11755
  proxy.dialogObj.hide({ returnValue: false });
11756
+ if (proxy.dialogObj !== null) {
11757
+ return;
11758
+ }
11759
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
11688
11760
  }
11689
11761
  }
11690
11762
  /* eslint-disable */
@@ -11839,12 +11911,12 @@ const DESTROY = 'destroy';
11839
11911
  */
11840
11912
  const INTERNAL_DESTROY = 'internal_destroy';
11841
11913
 
11842
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11843
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11844
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11845
- 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;
11846
- return c > 3 && r && Object.defineProperty(target, key, r), r;
11847
- };
11914
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11915
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11916
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11917
+ 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;
11918
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11919
+ };
11848
11920
  var KeyboardEvents_1;
11849
11921
  const keyCode = {
11850
11922
  'backspace': 8,
@@ -13347,7 +13419,7 @@ class Table {
13347
13419
  return;
13348
13420
  }
13349
13421
  const target = e.target || e.targetTouches[0].target;
13350
- const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table');
13422
+ const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table, table.e-rte-custom-table');
13351
13423
  const isResizing = this.parent.contentModule.getEditPanel().querySelectorAll('.e-table-box.e-rbox-select, .e-table-rhelper.e-column-helper, .e-table-rhelper.e-row-helper').length > 0;
13352
13424
  if (!isResizing && !isNullOrUndefined(this.curTable) && !isNullOrUndefined(closestTable) && closestTable !== this.curTable &&
13353
13425
  this.parent.contentModule.getEditPanel().contains(closestTable)) {
@@ -13696,7 +13768,8 @@ class Table {
13696
13768
  else {
13697
13769
  const tableReBox = this.contentModule.getEditPanel().querySelector('.e-table-box');
13698
13770
  const tableWidth = parseInt(getComputedStyle(this.curTable).width, 10);
13699
- const tableHeight = parseInt(getComputedStyle(this.curTable).height, 10);
13771
+ const tableHeight = !isNaN(parseInt(this.curTable.style.height, 10)) ?
13772
+ parseInt(this.curTable.style.height, 10) : parseInt(getComputedStyle(this.curTable).height, 10);
13700
13773
  const paddingSize = +getComputedStyle(this.contentModule.getEditPanel()).paddingRight.match(/\d/g).join('');
13701
13774
  const rteWidth = this.contentModule.getEditPanel().offsetWidth -
13702
13775
  (this.contentModule.getEditPanel().offsetWidth -
@@ -13841,7 +13914,7 @@ class Table {
13841
13914
  this.curTable.style.height = tableHeight + mouseY + 'px';
13842
13915
  if (!isNullOrUndefined(tableReBox)) {
13843
13916
  tableReBox.classList.add('e-rbox-select');
13844
- tableReBox.style.cssText = 'top: ' + (this.calcPos(this.curTable).top + tableHeight - 4) +
13917
+ tableReBox.style.cssText = 'top: ' + (this.calcPos(this.curTable).top + parseInt(getComputedStyle(this.curTable).height, 10) - 4) +
13845
13918
  'px; left:' + (this.calcPos(this.curTable).left + tableWidth - 4) + 'px;';
13846
13919
  }
13847
13920
  if (this.curTable.closest('li')) {
@@ -14590,623 +14663,623 @@ class DialogRenderer {
14590
14663
  }
14591
14664
  }
14592
14665
 
14593
- const IFRAME_EDITOR_STYLES = `
14594
- @charset "UTF-8";
14595
-
14596
- html {
14597
- height: auto;
14598
- }
14599
-
14600
- html, body {
14601
- margin: 0;
14602
- }
14603
-
14604
- body {
14605
- color: #333;
14606
- word-wrap: break-word;
14607
- }
14608
-
14609
- .e-content {
14610
- background: unset;
14611
- box-sizing: border-box;
14612
- min-height: 100px;
14613
- outline: 0 solid transparent;
14614
- padding: 16px;
14615
- position: relative;
14616
- overflow-x: auto;
14617
- font-weight: normal;
14618
- line-height: 1.5;
14619
- font-size: 14px;
14620
- text-align: inherit;
14621
- font-family: "Roboto", "Segoe UI", "GeezaPro", "DejaVu Serif", "sans-serif", "-apple-system", "BlinkMacSystemFont";
14622
- }
14623
-
14624
- .e-content p {
14625
- margin: 0 0 10px;
14626
- margin-bottom: 10px;
14627
- }
14628
-
14629
- .e-content h1 {
14630
- font-size: 2.857em;
14631
- font-weight: 600;
14632
- line-height: 1.2;
14633
- margin: 10px 0;
14634
- }
14635
-
14636
- .e-content h2 {
14637
- font-size: 2.285em;
14638
- font-weight: 600;
14639
- line-height: 1.2;
14640
- margin: 10px 0;
14641
- }
14642
-
14643
- .e-content h3 {
14644
- font-size: 2em;
14645
- font-weight: 600;
14646
- line-height: 1.2;
14647
- margin: 10px 0;
14648
- }
14649
-
14650
- .e-content h4 {
14651
- font-size: 1.714em;
14652
- font-weight: 600;
14653
- line-height: 1.2;
14654
- margin: 10px 0;
14655
- }
14656
-
14657
- .e-content h5 {
14658
- font-size: 1.428em;
14659
- font-weight: 600;
14660
- line-height: 1.2;
14661
- margin: 10px 0;
14662
- }
14663
-
14664
- .e-content h6 {
14665
- font-size: 1.142em;
14666
- font-weight: 600;
14667
- line-height: 1.5;
14668
- margin: 10px 0;
14669
- }
14670
-
14671
- .e-content blockquote {
14672
- margin: 10px 0;
14673
- padding-left: 12px;
14674
- border-left: 2px solid #5c5c5c;
14675
- }
14676
-
14677
- .e-rtl.e-content blockquote {
14678
- padding-left: 0;
14679
- padding-right: 12px;
14680
- }
14681
-
14682
- .e-content pre {
14683
- border: 0;
14684
- border-radius: 0;
14685
- color: #333;
14686
- font-size: inherit;
14687
- line-height: inherit;
14688
- margin: 0 0 10px;
14689
- overflow: visible;
14690
- padding: 0;
14691
- white-space: pre-wrap;
14692
- word-break: inherit;
14693
- word-wrap: break-word;
14694
- }
14695
-
14696
- .e-content code {
14697
- background: #9d9d9d26;
14698
- color: #ed484c;
14699
- }
14700
-
14701
- .e-content strong,
14702
- .e-content b {
14703
- font-weight: bold;
14704
- }
14705
-
14706
- .e-content a {
14707
- text-decoration: none;
14708
- user-select: auto;
14709
- }
14710
-
14711
- .e-content a:hover {
14712
- text-decoration: underline;
14713
- }
14714
-
14715
- .e-content li {
14716
- margin-bottom: 10px;
14717
- }
14718
-
14719
- .e-content li ol,
14720
- .e-content li ul {
14721
- margin-block-start: 10px;
14722
- }
14723
-
14724
- .e-content ul {
14725
- list-style-type: disc;
14726
- }
14727
-
14728
- .e-content ul ul,
14729
- .e-content ol ul {
14730
- list-style-type: circle;
14731
- }
14732
-
14733
- .e-content ul ul ul,
14734
- .e-content ol ul ul,
14735
- .e-content ul ol ul,
14736
- .e-content ol ol ul {
14737
- list-style-type: square;
14738
- }
14739
-
14740
- .e-rte-image,
14741
- .e-rte-video {
14742
- border: 0;
14743
- cursor: pointer;
14744
- display: block;
14745
- float: none;
14746
- height: auto;
14747
- margin: 5px auto;
14748
- max-width: 100%;
14749
- position: relative;
14750
- }
14751
-
14752
- .e-content p:last-child,
14753
- .e-content pre:last-child,
14754
- .e-content blockquote:last-child {
14755
- margin-bottom: 0;
14756
- }
14757
-
14758
- .e-content h3 + h4,
14759
- .e-content h4 + h5,
14760
- .e-content h5 + h6 {
14761
- margin-top: 0.6em;
14762
- }
14763
-
14764
- .e-content ul:last-child {
14765
- margin-bottom: 0;
14766
- }
14767
-
14768
- .e-content table {
14769
- margin-bottom: 10px;
14770
- border-collapse: collapse;
14771
- empty-cells: show;
14772
- }
14773
-
14774
- .e-content table.e-cell-select {
14775
- position: relative;
14776
- }
14777
-
14778
- .e-content table.e-cell-select::after {
14779
- content: '';
14780
- position: absolute;
14781
- top: 0;
14782
- left: 0;
14783
- right: 0;
14784
- bottom: 0;
14785
- border: 2px solid #4a90e2;
14786
- pointer-events: none;
14787
- }
14788
-
14789
- table .e-cell-select {
14790
- border: 1px double #4a90e2 !important;
14791
- }
14792
-
14793
- .e-content table.e-rte-table th {
14794
- background-color: #E0E0E0;
14795
- }
14796
-
14797
- .e-rte-table td,
14798
- .e-rte-table th {
14799
- border: 1px solid #BDBDBD;
14800
- height: 20px;
14801
- min-width: 20px;
14802
- padding: 2px 5px;
14803
- box-sizing: border-box;
14804
- }
14805
-
14806
- .e-rte-table td.e-cell-select.e-multi-cells-select,
14807
- .e-rte-table th.e-cell-select.e-multi-cells-select {
14808
- position: relative;
14809
- }
14810
-
14811
- .e-rte-table td.e-cell-select.e-multi-cells-select::after,
14812
- .e-rte-table th.e-cell-select.e-multi-cells-select::after {
14813
- background-color: rgba(13, 110, 253, 0.08);
14814
- content: "";
14815
- position: absolute;
14816
- top: 0;
14817
- left: 0;
14818
- width: 100%;
14819
- height: 100%;
14820
- bottom: 0;
14821
- pointer-events: none;
14822
- right: 0;
14823
- }
14824
-
14825
- table td.e-multi-cells-select ::selection,
14826
- table th.e-multi-cells-select ::selection {
14827
- background-color: transparent;
14828
- }
14829
-
14830
- td.e-multi-cells-select,
14831
- th.e-multi-cells-select {
14832
- user-select: none !important;
14833
- }
14834
-
14835
- .e-rte-table.e-dashed-border td,
14836
- .e-rte-table.e-dashed-border th {
14837
- border-style: dashed;
14838
- }
14839
-
14840
- .e-rte-table .e-alternate-border tbody tr:nth-child(2n) {
14841
- background-color: #F5F5F5;
14842
- }
14843
-
14844
- .e-rte-audio {
14845
- border: 0;
14846
- cursor: pointer;
14847
- display: block;
14848
- float: none;
14849
- margin: 5px auto;
14850
- max-width: 100%;
14851
- position: relative;
14852
- }
14853
-
14854
- .e-rte-image.e-imginline,
14855
- .e-rte-audio.e-audio-inline,
14856
- .e-rte-video.e-video-inline {
14857
- display: inline-block;
14858
- float: none;
14859
- margin-left: 5px;
14860
- margin-right: 5px;
14861
- max-width: calc(100% - (2 * 5px));
14862
- padding: 1px;
14863
- vertical-align: bottom;
14864
- }
14865
-
14866
- .e-rte-image.e-imgcenter,
14867
- .e-rte-video.e-video-center {
14868
- cursor: pointer;
14869
- display: block;
14870
- float: none;
14871
- margin: 5px auto;
14872
- max-width: 100%;
14873
- position: relative;
14874
- }
14875
-
14876
- .e-rte-image.e-imgright,
14877
- .e-rte-video.e-video-right {
14878
- float: right;
14879
- margin: 0 auto;
14880
- margin-left: 5px;
14881
- text-align: right;
14882
- }
14883
-
14884
- .e-rte-image.e-imgleft,
14885
- .e-rte-video.e-video-left {
14886
- float: left;
14887
- margin: 0 auto;
14888
- margin-right: 5px;
14889
- text-align: left;
14890
- }
14891
-
14892
- .e-img-caption {
14893
- display: inline-block;
14894
- float: none;
14895
- margin: 5px auto;
14896
- max-width: 100%;
14897
- position: relative;
14898
- }
14899
-
14900
- .e-img-caption.e-caption-inline {
14901
- display: inline-block;
14902
- float: none;
14903
- margin: 5px auto;
14904
- margin-left: 5px;
14905
- margin-right: 5px;
14906
- max-width: calc(100% - (2 * 5px));
14907
- position: relative;
14908
- text-align: center;
14909
- vertical-align: bottom;
14910
- }
14911
-
14912
- .e-rte-img-caption.e-imgcenter {
14913
- display: contents;
14914
- margin-left: auto;
14915
- margin-right: auto;
14916
- }
14917
-
14918
- .e-rte-img-caption.e-imgright {
14919
- display: contents;
14920
- margin-left: auto;
14921
- margin-right: 0;
14922
- }
14923
-
14924
- .e-rte-img-caption.e-imgleft {
14925
- display: contents;
14926
- margin-left: 0;
14927
- margin-right: auto;
14928
- }
14929
-
14930
- .e-img-caption.e-rte-img-caption.e-imgbreak {
14931
- display: contents;
14932
- }
14933
-
14934
- .e-img-inner {
14935
- box-sizing: border-box;
14936
- display: block;
14937
- font-size: 16px;
14938
- font-weight: initial;
14939
- margin: auto;
14940
- opacity: .9;
14941
- text-align: center;
14942
- width: 100%;
14943
- }
14944
-
14945
- .e-img-wrap {
14946
- display: inline-block;
14947
- margin: auto;
14948
- padding: 0;
14949
- text-align: center;
14950
- width: 100%;
14951
- }
14952
-
14953
- .e-imgleft,
14954
- .e-video-left {
14955
- float: left;
14956
- margin: 0 5px 0 0;
14957
- text-align: left;
14958
- }
14959
-
14960
- .e-imgright,
14961
- .e-video-right {
14962
- float: right;
14963
- margin: 0 0 0 5px;
14964
- text-align: right;
14965
- }
14966
-
14967
- .e-imgcenter,
14968
- .e-video-center {
14969
- cursor: pointer;
14970
- display: block;
14971
- float: none;
14972
- height: auto;
14973
- margin: 5px auto;
14974
- max-width: 100%;
14975
- position: relative;
14976
- }
14977
-
14978
- .e-control img:not(.e-resize) {
14979
- border: 2px solid transparent;
14980
- z-index: 1000
14981
- }
14982
-
14983
- .e-imginline,
14984
- .e-audio-inline,
14985
- .e-video-inline {
14986
- display: inline-block;
14987
- float: none;
14988
- margin-left: 5px;
14989
- margin-right: 5px;
14990
- max-width: calc(100% - (2 * 5px));
14991
- vertical-align: bottom;
14992
- }
14993
-
14994
- .e-imgbreak,
14995
- .e-audio-break,
14996
- .e-video-break {
14997
- border: 0;
14998
- cursor: pointer;
14999
- display: block;
15000
- float: none;
15001
- height: auto;
15002
- margin: 5px auto;
15003
- max-width: 100%;
15004
- position: relative;
15005
- }
15006
-
15007
- .e-rte-image.e-img-focus:not(.e-resize),
15008
- .e-audio-focus:not(.e-resize),
15009
- .e-video-focus:not(.e-resize) {
15010
- border: solid 2px #4a90e2;
15011
- }
15012
-
15013
- img.e-img-focus::selection,
15014
- audio.e-audio-focus::selection,
15015
- .e-video-focus::selection {
15016
- background: transparent;
15017
- color: transparent;
15018
- }
15019
-
15020
- span.e-rte-imageboxmark,
15021
- span.e-rte-videoboxmark {
15022
- width: 10px;
15023
- height: 10px;
15024
- position: absolute;
15025
- display: block;
15026
- background: #4a90e2;
15027
- border: 1px solid #fff;
15028
- z-index: 1000;
15029
- }
15030
-
15031
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark,
15032
- .e-mob-rte.e-mob-span span.e-rte-videoboxmark {
15033
- background: #4a90e2;
15034
- border: 1px solid #fff;
15035
- }
15036
-
15037
- .e-mob-rte span.e-rte-imageboxmark,
15038
- .e-mob-rte span.e-rte-videoboxmark {
15039
- background: #fff;
15040
- border: 1px solid #4a90e2;
15041
- border-radius: 15px;
15042
- height: 20px;
15043
- width: 20px;
15044
- }
15045
-
15046
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark,
15047
- .e-mob-rte.e-mob-span span.e-rte-videoboxmark {
15048
- background: #4a90e2;
15049
- border: 1px solid #fff;
15050
- }
15051
-
15052
- .e-content img.e-resize,
15053
- .e-content video.e-resize {
15054
- z-index: 1000;
15055
- }
15056
-
15057
- .e-img-caption .e-img-inner {
15058
- outline: 0;
15059
- }
15060
-
15061
- .e-rte-img-caption.e-imgleft .e-img-inner {
15062
- float: left;
15063
- text-align: left;
15064
- }
15065
-
15066
- .e-rte-img-caption.e-imgright .e-img-inner {
15067
- float: right;
15068
- text-align: right;
15069
- }
15070
-
15071
- .e-rte-img-caption.e-imgleft .e-img-wrap,
15072
- .e-rte-img-caption.e-imgright .e-img-wrap {
15073
- display: contents;
15074
- }
15075
-
15076
- .e-img-caption a:focus-visible {
15077
- outline: none;
15078
- }
15079
-
15080
- .e-rte-img-caption .e-rte-image.e-imgright {
15081
- margin-left: auto;
15082
- margin-right: 0;
15083
- }
15084
-
15085
- .e-rte-img-caption .e-rte-image.e-imgleft {
15086
- margin: 0;
15087
- }
15088
-
15089
- span.e-table-box {
15090
- cursor: nwse-resize;
15091
- display: block;
15092
- height: 10px;
15093
- position: absolute;
15094
- width: 10px;
15095
- background-color: #ffffff;
15096
- border: 1px solid #BDBDBD;
15097
- }
15098
-
15099
- span.e-table-box.e-rmob {
15100
- height: 14px;
15101
- width: 14px;
15102
- background-color: #BDBDBD;
15103
- border: 1px solid #BDBDBD;
15104
- }
15105
-
15106
- .e-row-resize,
15107
- .e-column-resize {
15108
- background-color: transparent;
15109
- background-repeat: repeat;
15110
- bottom: 0;
15111
- cursor: col-resize;
15112
- height: 1px;
15113
- overflow: visible;
15114
- position: absolute;
15115
- width: 1px;
15116
- }
15117
-
15118
- .e-row-resize {
15119
- cursor: row-resize;
15120
- height: 1px;
15121
- }
15122
-
15123
- .e-table-rhelper {
15124
- cursor: col-resize;
15125
- opacity: .87;
15126
- position: absolute;
15127
- }
15128
-
15129
- .e-table-rhelper.e-column-helper {
15130
- width: 1px;
15131
- }
15132
-
15133
- .e-table-rhelper.e-row-helper {
15134
- height: 1px;
15135
- }
15136
-
15137
- .e-reicon::before {
15138
- border-bottom: 6px solid transparent;
15139
- border-right: 6px solid;
15140
- border-top: 6px solid transparent;
15141
- content: '';
15142
- display: block;
15143
- height: 0;
15144
- position: absolute;
15145
- right: 4px;
15146
- top: 4px;
15147
- width: 20px;
15148
- }
15149
-
15150
- .e-reicon::after {
15151
- border-bottom: 6px solid transparent;
15152
- border-left: 6px solid;
15153
- border-top: 6px solid transparent;
15154
- content: '';
15155
- display: block;
15156
- height: 0;
15157
- left: 4px;
15158
- position: absolute;
15159
- top: 4px;
15160
- width: 20px;
15161
- z-index: 3;
15162
- }
15163
-
15164
- .e-row-helper.e-reicon::after {
15165
- top: 10px;
15166
- transform: rotate(90deg);
15167
- }
15168
-
15169
- .e-row-helper.e-reicon::before {
15170
- left: 4px;
15171
- top: -20px;
15172
- transform: rotate(90deg);
15173
- }
15174
-
15175
-
15176
- .e-table-rhelper {
15177
- background-color: #4a90e2;
15178
- }
15179
-
15180
- .e-rtl {
15181
- direction: rtl;
15182
- }
15183
-
15184
- .e-rte-placeholder::before {
15185
- content: attr(placeholder);
15186
- opacity: 0.54;
15187
- overflow: hidden;
15188
- padding-top: 16px;
15189
- position: absolute;
15190
- text-align: start;
15191
- top: 0;
15192
- z-index: 1;
15193
- }
15194
-
15195
- .e-resize-enabled,
15196
- .e-count-enabled {
15197
- padding-bottom: 0px;
15198
- }
14666
+ const IFRAME_EDITOR_STYLES = `
14667
+ @charset "UTF-8";
14668
+
14669
+ html {
14670
+ height: auto;
14671
+ }
14672
+
14673
+ html, body {
14674
+ margin: 0;
14675
+ }
14676
+
14677
+ body {
14678
+ color: #333;
14679
+ word-wrap: break-word;
14680
+ }
14681
+
14682
+ .e-content {
14683
+ background: unset;
14684
+ box-sizing: border-box;
14685
+ min-height: 100px;
14686
+ outline: 0 solid transparent;
14687
+ padding: 16px;
14688
+ position: relative;
14689
+ overflow-x: auto;
14690
+ font-weight: normal;
14691
+ line-height: 1.5;
14692
+ font-size: 14px;
14693
+ text-align: inherit;
14694
+ font-family: "Roboto", "Segoe UI", "GeezaPro", "DejaVu Serif", "sans-serif", "-apple-system", "BlinkMacSystemFont";
14695
+ }
14696
+
14697
+ .e-content p {
14698
+ margin: 0 0 10px;
14699
+ margin-bottom: 10px;
14700
+ }
14701
+
14702
+ .e-content h1 {
14703
+ font-size: 2.857em;
14704
+ font-weight: 600;
14705
+ line-height: 1.2;
14706
+ margin: 10px 0;
14707
+ }
14708
+
14709
+ .e-content h2 {
14710
+ font-size: 2.285em;
14711
+ font-weight: 600;
14712
+ line-height: 1.2;
14713
+ margin: 10px 0;
14714
+ }
14715
+
14716
+ .e-content h3 {
14717
+ font-size: 2em;
14718
+ font-weight: 600;
14719
+ line-height: 1.2;
14720
+ margin: 10px 0;
14721
+ }
14722
+
14723
+ .e-content h4 {
14724
+ font-size: 1.714em;
14725
+ font-weight: 600;
14726
+ line-height: 1.2;
14727
+ margin: 10px 0;
14728
+ }
14729
+
14730
+ .e-content h5 {
14731
+ font-size: 1.428em;
14732
+ font-weight: 600;
14733
+ line-height: 1.2;
14734
+ margin: 10px 0;
14735
+ }
14736
+
14737
+ .e-content h6 {
14738
+ font-size: 1.142em;
14739
+ font-weight: 600;
14740
+ line-height: 1.5;
14741
+ margin: 10px 0;
14742
+ }
14743
+
14744
+ .e-content blockquote {
14745
+ margin: 10px 0;
14746
+ padding-left: 12px;
14747
+ border-left: 2px solid #5c5c5c;
14748
+ }
14749
+
14750
+ .e-rtl.e-content blockquote {
14751
+ padding-left: 0;
14752
+ padding-right: 12px;
14753
+ }
14754
+
14755
+ .e-content pre {
14756
+ border: 0;
14757
+ border-radius: 0;
14758
+ color: #333;
14759
+ font-size: inherit;
14760
+ line-height: inherit;
14761
+ margin: 0 0 10px;
14762
+ overflow: visible;
14763
+ padding: 0;
14764
+ white-space: pre-wrap;
14765
+ word-break: inherit;
14766
+ word-wrap: break-word;
14767
+ }
14768
+
14769
+ .e-content code {
14770
+ background: #9d9d9d26;
14771
+ color: #ed484c;
14772
+ }
14773
+
14774
+ .e-content strong,
14775
+ .e-content b {
14776
+ font-weight: bold;
14777
+ }
14778
+
14779
+ .e-content a {
14780
+ text-decoration: none;
14781
+ user-select: auto;
14782
+ }
14783
+
14784
+ .e-content a:hover {
14785
+ text-decoration: underline;
14786
+ }
14787
+
14788
+ .e-content li {
14789
+ margin-bottom: 10px;
14790
+ }
14791
+
14792
+ .e-content li ol,
14793
+ .e-content li ul {
14794
+ margin-block-start: 10px;
14795
+ }
14796
+
14797
+ .e-content ul {
14798
+ list-style-type: disc;
14799
+ }
14800
+
14801
+ .e-content ul ul,
14802
+ .e-content ol ul {
14803
+ list-style-type: circle;
14804
+ }
14805
+
14806
+ .e-content ul ul ul,
14807
+ .e-content ol ul ul,
14808
+ .e-content ul ol ul,
14809
+ .e-content ol ol ul {
14810
+ list-style-type: square;
14811
+ }
14812
+
14813
+ .e-rte-image,
14814
+ .e-rte-video {
14815
+ border: 0;
14816
+ cursor: pointer;
14817
+ display: block;
14818
+ float: none;
14819
+ height: auto;
14820
+ margin: 5px auto;
14821
+ max-width: 100%;
14822
+ position: relative;
14823
+ }
14824
+
14825
+ .e-content p:last-child,
14826
+ .e-content pre:last-child,
14827
+ .e-content blockquote:last-child {
14828
+ margin-bottom: 0;
14829
+ }
14830
+
14831
+ .e-content h3 + h4,
14832
+ .e-content h4 + h5,
14833
+ .e-content h5 + h6 {
14834
+ margin-top: 0.6em;
14835
+ }
14836
+
14837
+ .e-content ul:last-child {
14838
+ margin-bottom: 0;
14839
+ }
14840
+
14841
+ .e-content table {
14842
+ margin-bottom: 10px;
14843
+ border-collapse: collapse;
14844
+ empty-cells: show;
14845
+ }
14846
+
14847
+ .e-content table.e-cell-select {
14848
+ position: relative;
14849
+ }
14850
+
14851
+ .e-content table.e-cell-select::after {
14852
+ content: '';
14853
+ position: absolute;
14854
+ top: 0;
14855
+ left: 0;
14856
+ right: 0;
14857
+ bottom: 0;
14858
+ border: 2px solid #4a90e2;
14859
+ pointer-events: none;
14860
+ }
14861
+
14862
+ table .e-cell-select {
14863
+ border: 1px double #4a90e2 !important;
14864
+ }
14865
+
14866
+ .e-content table.e-rte-table th {
14867
+ background-color: #E0E0E0;
14868
+ }
14869
+
14870
+ .e-rte-table td,
14871
+ .e-rte-table th {
14872
+ border: 1px solid #BDBDBD;
14873
+ height: 20px;
14874
+ min-width: 20px;
14875
+ padding: 2px 5px;
14876
+ box-sizing: border-box;
14877
+ }
14878
+
14879
+ .e-rte-table td.e-cell-select.e-multi-cells-select,
14880
+ .e-rte-table th.e-cell-select.e-multi-cells-select {
14881
+ position: relative;
14882
+ }
14883
+
14884
+ .e-rte-table td.e-cell-select.e-multi-cells-select::after,
14885
+ .e-rte-table th.e-cell-select.e-multi-cells-select::after {
14886
+ background-color: rgba(13, 110, 253, 0.08);
14887
+ content: "";
14888
+ position: absolute;
14889
+ top: 0;
14890
+ left: 0;
14891
+ width: 100%;
14892
+ height: 100%;
14893
+ bottom: 0;
14894
+ pointer-events: none;
14895
+ right: 0;
14896
+ }
14897
+
14898
+ table td.e-multi-cells-select ::selection,
14899
+ table th.e-multi-cells-select ::selection {
14900
+ background-color: transparent;
14901
+ }
14902
+
14903
+ td.e-multi-cells-select,
14904
+ th.e-multi-cells-select {
14905
+ user-select: none !important;
14906
+ }
14907
+
14908
+ .e-rte-table.e-dashed-border td,
14909
+ .e-rte-table.e-dashed-border th {
14910
+ border-style: dashed;
14911
+ }
14912
+
14913
+ .e-rte-table .e-alternate-border tbody tr:nth-child(2n) {
14914
+ background-color: #F5F5F5;
14915
+ }
14916
+
14917
+ .e-rte-audio {
14918
+ border: 0;
14919
+ cursor: pointer;
14920
+ display: block;
14921
+ float: none;
14922
+ margin: 5px auto;
14923
+ max-width: 100%;
14924
+ position: relative;
14925
+ }
14926
+
14927
+ .e-rte-image.e-imginline,
14928
+ .e-rte-audio.e-audio-inline,
14929
+ .e-rte-video.e-video-inline {
14930
+ display: inline-block;
14931
+ float: none;
14932
+ margin-left: 5px;
14933
+ margin-right: 5px;
14934
+ max-width: calc(100% - (2 * 5px));
14935
+ padding: 1px;
14936
+ vertical-align: bottom;
14937
+ }
14938
+
14939
+ .e-rte-image.e-imgcenter,
14940
+ .e-rte-video.e-video-center {
14941
+ cursor: pointer;
14942
+ display: block;
14943
+ float: none;
14944
+ margin: 5px auto;
14945
+ max-width: 100%;
14946
+ position: relative;
14947
+ }
14948
+
14949
+ .e-rte-image.e-imgright,
14950
+ .e-rte-video.e-video-right {
14951
+ float: right;
14952
+ margin: 0 auto;
14953
+ margin-left: 5px;
14954
+ text-align: right;
14955
+ }
14956
+
14957
+ .e-rte-image.e-imgleft,
14958
+ .e-rte-video.e-video-left {
14959
+ float: left;
14960
+ margin: 0 auto;
14961
+ margin-right: 5px;
14962
+ text-align: left;
14963
+ }
14964
+
14965
+ .e-img-caption {
14966
+ display: inline-block;
14967
+ float: none;
14968
+ margin: 5px auto;
14969
+ max-width: 100%;
14970
+ position: relative;
14971
+ }
14972
+
14973
+ .e-img-caption.e-caption-inline {
14974
+ display: inline-block;
14975
+ float: none;
14976
+ margin: 5px auto;
14977
+ margin-left: 5px;
14978
+ margin-right: 5px;
14979
+ max-width: calc(100% - (2 * 5px));
14980
+ position: relative;
14981
+ text-align: center;
14982
+ vertical-align: bottom;
14983
+ }
14984
+
14985
+ .e-rte-img-caption.e-imgcenter {
14986
+ display: contents;
14987
+ margin-left: auto;
14988
+ margin-right: auto;
14989
+ }
14990
+
14991
+ .e-rte-img-caption.e-imgright {
14992
+ display: contents;
14993
+ margin-left: auto;
14994
+ margin-right: 0;
14995
+ }
14996
+
14997
+ .e-rte-img-caption.e-imgleft {
14998
+ display: contents;
14999
+ margin-left: 0;
15000
+ margin-right: auto;
15001
+ }
15002
+
15003
+ .e-img-caption.e-rte-img-caption.e-imgbreak {
15004
+ display: contents;
15005
+ }
15006
+
15007
+ .e-img-inner {
15008
+ box-sizing: border-box;
15009
+ display: block;
15010
+ font-size: 16px;
15011
+ font-weight: initial;
15012
+ margin: auto;
15013
+ opacity: .9;
15014
+ text-align: center;
15015
+ width: 100%;
15016
+ }
15017
+
15018
+ .e-img-wrap {
15019
+ display: inline-block;
15020
+ margin: auto;
15021
+ padding: 0;
15022
+ text-align: center;
15023
+ width: 100%;
15024
+ }
15025
+
15026
+ .e-imgleft,
15027
+ .e-video-left {
15028
+ float: left;
15029
+ margin: 0 5px 0 0;
15030
+ text-align: left;
15031
+ }
15032
+
15033
+ .e-imgright,
15034
+ .e-video-right {
15035
+ float: right;
15036
+ margin: 0 0 0 5px;
15037
+ text-align: right;
15038
+ }
15039
+
15040
+ .e-imgcenter,
15041
+ .e-video-center {
15042
+ cursor: pointer;
15043
+ display: block;
15044
+ float: none;
15045
+ height: auto;
15046
+ margin: 5px auto;
15047
+ max-width: 100%;
15048
+ position: relative;
15049
+ }
15050
+
15051
+ .e-control img:not(.e-resize) {
15052
+ border: 2px solid transparent;
15053
+ z-index: 1000
15054
+ }
15055
+
15056
+ .e-imginline,
15057
+ .e-audio-inline,
15058
+ .e-video-inline {
15059
+ display: inline-block;
15060
+ float: none;
15061
+ margin-left: 5px;
15062
+ margin-right: 5px;
15063
+ max-width: calc(100% - (2 * 5px));
15064
+ vertical-align: bottom;
15065
+ }
15066
+
15067
+ .e-imgbreak,
15068
+ .e-audio-break,
15069
+ .e-video-break {
15070
+ border: 0;
15071
+ cursor: pointer;
15072
+ display: block;
15073
+ float: none;
15074
+ height: auto;
15075
+ margin: 5px auto;
15076
+ max-width: 100%;
15077
+ position: relative;
15078
+ }
15079
+
15080
+ .e-rte-image.e-img-focus:not(.e-resize),
15081
+ .e-audio-focus:not(.e-resize),
15082
+ .e-video-focus:not(.e-resize) {
15083
+ border: solid 2px #4a90e2;
15084
+ }
15085
+
15086
+ img.e-img-focus::selection,
15087
+ audio.e-audio-focus::selection,
15088
+ .e-video-focus::selection {
15089
+ background: transparent;
15090
+ color: transparent;
15091
+ }
15092
+
15093
+ span.e-rte-imageboxmark,
15094
+ span.e-rte-videoboxmark {
15095
+ width: 10px;
15096
+ height: 10px;
15097
+ position: absolute;
15098
+ display: block;
15099
+ background: #4a90e2;
15100
+ border: 1px solid #fff;
15101
+ z-index: 1000;
15102
+ }
15103
+
15104
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark,
15105
+ .e-mob-rte.e-mob-span span.e-rte-videoboxmark {
15106
+ background: #4a90e2;
15107
+ border: 1px solid #fff;
15108
+ }
15109
+
15110
+ .e-mob-rte span.e-rte-imageboxmark,
15111
+ .e-mob-rte span.e-rte-videoboxmark {
15112
+ background: #fff;
15113
+ border: 1px solid #4a90e2;
15114
+ border-radius: 15px;
15115
+ height: 20px;
15116
+ width: 20px;
15117
+ }
15118
+
15119
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark,
15120
+ .e-mob-rte.e-mob-span span.e-rte-videoboxmark {
15121
+ background: #4a90e2;
15122
+ border: 1px solid #fff;
15123
+ }
15124
+
15125
+ .e-content img.e-resize,
15126
+ .e-content video.e-resize {
15127
+ z-index: 1000;
15128
+ }
15129
+
15130
+ .e-img-caption .e-img-inner {
15131
+ outline: 0;
15132
+ }
15133
+
15134
+ .e-rte-img-caption.e-imgleft .e-img-inner {
15135
+ float: left;
15136
+ text-align: left;
15137
+ }
15138
+
15139
+ .e-rte-img-caption.e-imgright .e-img-inner {
15140
+ float: right;
15141
+ text-align: right;
15142
+ }
15143
+
15144
+ .e-rte-img-caption.e-imgleft .e-img-wrap,
15145
+ .e-rte-img-caption.e-imgright .e-img-wrap {
15146
+ display: contents;
15147
+ }
15148
+
15149
+ .e-img-caption a:focus-visible {
15150
+ outline: none;
15151
+ }
15152
+
15153
+ .e-rte-img-caption .e-rte-image.e-imgright {
15154
+ margin-left: auto;
15155
+ margin-right: 0;
15156
+ }
15157
+
15158
+ .e-rte-img-caption .e-rte-image.e-imgleft {
15159
+ margin: 0;
15160
+ }
15161
+
15162
+ span.e-table-box {
15163
+ cursor: nwse-resize;
15164
+ display: block;
15165
+ height: 10px;
15166
+ position: absolute;
15167
+ width: 10px;
15168
+ background-color: #ffffff;
15169
+ border: 1px solid #BDBDBD;
15170
+ }
15171
+
15172
+ span.e-table-box.e-rmob {
15173
+ height: 14px;
15174
+ width: 14px;
15175
+ background-color: #BDBDBD;
15176
+ border: 1px solid #BDBDBD;
15177
+ }
15178
+
15179
+ .e-row-resize,
15180
+ .e-column-resize {
15181
+ background-color: transparent;
15182
+ background-repeat: repeat;
15183
+ bottom: 0;
15184
+ cursor: col-resize;
15185
+ height: 1px;
15186
+ overflow: visible;
15187
+ position: absolute;
15188
+ width: 1px;
15189
+ }
15190
+
15191
+ .e-row-resize {
15192
+ cursor: row-resize;
15193
+ height: 1px;
15194
+ }
15195
+
15196
+ .e-table-rhelper {
15197
+ cursor: col-resize;
15198
+ opacity: .87;
15199
+ position: absolute;
15200
+ }
15201
+
15202
+ .e-table-rhelper.e-column-helper {
15203
+ width: 1px;
15204
+ }
15205
+
15206
+ .e-table-rhelper.e-row-helper {
15207
+ height: 1px;
15208
+ }
15209
+
15210
+ .e-reicon::before {
15211
+ border-bottom: 6px solid transparent;
15212
+ border-right: 6px solid;
15213
+ border-top: 6px solid transparent;
15214
+ content: '';
15215
+ display: block;
15216
+ height: 0;
15217
+ position: absolute;
15218
+ right: 4px;
15219
+ top: 4px;
15220
+ width: 20px;
15221
+ }
15222
+
15223
+ .e-reicon::after {
15224
+ border-bottom: 6px solid transparent;
15225
+ border-left: 6px solid;
15226
+ border-top: 6px solid transparent;
15227
+ content: '';
15228
+ display: block;
15229
+ height: 0;
15230
+ left: 4px;
15231
+ position: absolute;
15232
+ top: 4px;
15233
+ width: 20px;
15234
+ z-index: 3;
15235
+ }
15236
+
15237
+ .e-row-helper.e-reicon::after {
15238
+ top: 10px;
15239
+ transform: rotate(90deg);
15240
+ }
15241
+
15242
+ .e-row-helper.e-reicon::before {
15243
+ left: 4px;
15244
+ top: -20px;
15245
+ transform: rotate(90deg);
15246
+ }
15247
+
15248
+
15249
+ .e-table-rhelper {
15250
+ background-color: #4a90e2;
15251
+ }
15252
+
15253
+ .e-rtl {
15254
+ direction: rtl;
15255
+ }
15256
+
15257
+ .e-rte-placeholder::before {
15258
+ content: attr(placeholder);
15259
+ opacity: 0.54;
15260
+ overflow: hidden;
15261
+ padding-top: 16px;
15262
+ position: absolute;
15263
+ text-align: start;
15264
+ top: 0;
15265
+ z-index: 1;
15266
+ }
15267
+
15268
+ .e-resize-enabled,
15269
+ .e-count-enabled {
15270
+ padding-bottom: 0px;
15271
+ }
15199
15272
  `;
15200
15273
 
15201
- const IFRAMEHEADER = `
15202
- <!DOCTYPE html>
15203
- <html>
15204
- <head>
15205
- <meta charset='utf-8' />
15274
+ const IFRAMEHEADER = `
15275
+ <!DOCTYPE html>
15276
+ <html>
15277
+ <head>
15278
+ <meta charset='utf-8' />
15206
15279
  <style>` +
15207
- IFRAME_EDITOR_STYLES.replace(/[\n\t]/g, '') + `
15208
- </style>
15209
- </head>
15280
+ IFRAME_EDITOR_STYLES.replace(/[\n\t]/g, '') + `
15281
+ </style>
15282
+ </head>
15210
15283
  `;
15211
15284
  /**
15212
15285
  * Content module is used to render Rich Text Editor content
@@ -15467,12 +15540,12 @@ class PopupRenderer {
15467
15540
  }
15468
15541
  }
15469
15542
 
15470
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15471
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15472
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15473
- 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;
15474
- return c > 3 && r && Object.defineProperty(target, key, r), r;
15475
- };
15543
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15544
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15545
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15546
+ 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;
15547
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
15548
+ };
15476
15549
  /**
15477
15550
  * Configures the slash menu settings of the RichTextEditor.
15478
15551
  */
@@ -15734,6 +15807,15 @@ class SlashMenu {
15734
15807
  break;
15735
15808
  }
15736
15809
  }
15810
+ else {
15811
+ if (this.parent.inputElement.classList.contains('e-mention')) {
15812
+ const slashMenuPopup = this.parent.inputElement.ownerDocument.getElementById(this.parent.inputElement.id + '_slash_menu_popup');
15813
+ const isSlashMenuPopupOpen = slashMenuPopup && slashMenuPopup.classList.contains('e-popup-open');
15814
+ if (isSlashMenuPopupOpen) {
15815
+ this.mention.hidePopup();
15816
+ }
15817
+ }
15818
+ }
15737
15819
  }
15738
15820
  });
15739
15821
  }
@@ -23814,7 +23896,7 @@ class NodeCutter {
23814
23896
  fragment = this.spliceEmptyNode(fragment, false);
23815
23897
  if (fragment && fragment.childNodes.length > 0) {
23816
23898
  const isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG' && !(fragment.querySelectorAll('img').length > 0)
23817
- && this.isRteElm(fragment) && fragment.textContent.trim() === '') ? true : false;
23899
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent !== ' ' && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23818
23900
  if (!isEmpty) {
23819
23901
  if (node) {
23820
23902
  InsertMethods.AppendBefore(fragment, node);
@@ -23835,7 +23917,7 @@ class NodeCutter {
23835
23917
  fragment = this.spliceEmptyNode(fragment, true);
23836
23918
  if (fragment && fragment.childNodes.length > 0) {
23837
23919
  const isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'
23838
- && this.isRteElm(fragment) && fragment.textContent.trim() === '') ? true : false;
23920
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent !== ' ' && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23839
23921
  if (!isEmpty) {
23840
23922
  if (node) {
23841
23923
  InsertMethods.AppendBefore(fragment, node, true);
@@ -24234,6 +24316,14 @@ class Formats {
24234
24316
  }
24235
24317
  applyFormats(e) {
24236
24318
  const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
24319
+ const tableCursor = this.parent.nodeSelection.processedTableImageCursor(range);
24320
+ if (tableCursor.start || tableCursor.end) {
24321
+ if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
24322
+ const tableNode = tableCursor.start ? tableCursor.startNode : tableCursor.endNode;
24323
+ this.applyTableSidesFormat(e, tableCursor.start, tableNode);
24324
+ return;
24325
+ }
24326
+ }
24237
24327
  let isSelectAll = false;
24238
24328
  if (this.parent.editableElement === range.endContainer &&
24239
24329
  !isNullOrUndefined(this.parent.editableElement.children[range.endOffset - 1]) &&
@@ -24482,6 +24572,23 @@ class Formats {
24482
24572
  element.style.removeProperty(ignoreAttr[i]);
24483
24573
  }
24484
24574
  }
24575
+ applyTableSidesFormat(e, start, table) {
24576
+ const formatNode = createElement(e.subCommand);
24577
+ if (!(e.enterAction === 'BR')) {
24578
+ formatNode.appendChild(createElement('br'));
24579
+ }
24580
+ table.insertAdjacentElement(start ? 'beforebegin' : 'afterend', formatNode);
24581
+ this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, formatNode, 0);
24582
+ if (e.callBack) {
24583
+ e.callBack({
24584
+ requestType: e.subCommand,
24585
+ editorMode: 'HTML',
24586
+ event: e.event,
24587
+ range: this.parent.nodeSelection.getRange(this.parent.currentDocument),
24588
+ elements: this.parent.domNode.blockNodes()
24589
+ });
24590
+ }
24591
+ }
24485
24592
  destroy() {
24486
24593
  this.removeEventListener();
24487
24594
  }
@@ -24588,7 +24695,12 @@ class InsertHtml {
24588
24695
  }
24589
24696
  }
24590
24697
  if (!isNullOrUndefined(sibNode) && !isNullOrUndefined(sibNode.parentNode)) {
24591
- InsertMethods.AppendBefore(node, sibNode, true);
24698
+ if (docElement.contains(sibNode)) {
24699
+ InsertMethods.AppendBefore(node, sibNode, true);
24700
+ }
24701
+ else {
24702
+ range.insertNode(node);
24703
+ }
24592
24704
  }
24593
24705
  else {
24594
24706
  let previousNode = null;
@@ -24876,24 +24988,95 @@ class InsertHtml {
24876
24988
  this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);
24877
24989
  }
24878
24990
  this.alignCheck(editNode);
24879
- const currentRange = nodeSelection.getRange(docElement);
24880
- this.listCleanUp(currentRange);
24991
+ this.listCleanUp(nodeSelection, docElement);
24881
24992
  }
24882
- static listCleanUp(range) {
24993
+ static listCleanUp(nodeSelection, docElement) {
24994
+ const range = nodeSelection.getRange(docElement);
24995
+ const startContainer = range.startContainer;
24996
+ const startOffset = range.startOffset;
24883
24997
  if (range.startContainer.parentElement.closest('ol,ul') !== null && range.endContainer.parentElement.closest('ol,ul') !== null) {
24884
- const liElems = range.startContainer.parentElement.closest('ol,ul').querySelectorAll('li');
24885
- if (liElems.length > 0) {
24886
- liElems.forEach((item) => {
24887
- if (!isNullOrUndefined(item.firstChild) && (item.firstChild.nodeName === 'OL' || item.firstChild.nodeName === 'UL')) {
24888
- item.style.listStyleType = 'none';
24889
- }
24890
- const nestedLi = Array.from(item.children).find((child) => child.tagName === 'LI' && (child.parentElement && child.parentElement.tagName !== 'OL' && child.parentElement.tagName !== 'UL'));
24891
- if (nestedLi) {
24892
- item.parentNode.replaceChild(nestedLi, item);
24998
+ const haslistCleanUp = this.cleanUpListItems(range.startContainer.parentElement.closest('ol,ul'));
24999
+ const haslistContainerCleanUp = this.cleanUpListContainer(range.startContainer.parentElement.closest('ol,ul'));
25000
+ if (haslistCleanUp || haslistContainerCleanUp) {
25001
+ range.setStart(startContainer, startOffset);
25002
+ range.setEnd(startContainer, startOffset);
25003
+ }
25004
+ }
25005
+ }
25006
+ static cleanUpListItems(parentContainer) {
25007
+ let hasListCleanUp = false;
25008
+ const listItems = parentContainer.closest('ol, ul').querySelectorAll('li');
25009
+ if (listItems.length === 0) {
25010
+ return false;
25011
+ }
25012
+ let nearestListItem = null;
25013
+ listItems.forEach((listItem) => {
25014
+ if (!isNullOrUndefined(listItem.firstChild) && (listItem.firstChild.nodeName === 'OL' || listItem.firstChild.nodeName === 'UL')) {
25015
+ listItem.style.listStyleType = 'none';
25016
+ }
25017
+ const parentElement = listItem.parentElement;
25018
+ if (!isNullOrUndefined(parentElement) && parentElement.nodeName !== 'OL' && parentElement.nodeName !== 'UL') {
25019
+ if (isNullOrUndefined(nearestListItem)) {
25020
+ nearestListItem = parentElement.closest('li');
25021
+ }
25022
+ if (!isNullOrUndefined(nearestListItem)) {
25023
+ const nextSibling = listItem.nextSibling;
25024
+ if (!isNullOrUndefined(nextSibling) && nextSibling.nodeName !== 'LI') {
25025
+ const startIndex = Array.prototype.indexOf.call(parentElement.childNodes, nextSibling);
25026
+ const clonedParent = parentElement.cloneNode(false);
25027
+ const totalChildren = parentElement.childNodes.length;
25028
+ for (let i = startIndex; i < totalChildren; i++) {
25029
+ clonedParent.appendChild(parentElement.childNodes[startIndex]);
25030
+ }
25031
+ if (clonedParent.childNodes.length > 0) {
25032
+ const newListItem = document.createElement('li');
25033
+ newListItem.appendChild(clonedParent);
25034
+ nearestListItem.insertAdjacentElement('afterend', newListItem);
25035
+ }
25036
+ else {
25037
+ clonedParent.remove();
25038
+ }
24893
25039
  }
24894
- });
25040
+ const closestList = parentElement.closest('ol, ul');
25041
+ nearestListItem.insertAdjacentElement('afterend', listItem);
25042
+ nearestListItem = nearestListItem.nextSibling;
25043
+ this.removeEmptyElements(closestList);
25044
+ hasListCleanUp = true;
25045
+ }
25046
+ }
25047
+ const nestedLi = Array.from(listItem.children).find((child) => child.tagName === 'LI' && (child.parentElement && child.parentElement.tagName !== 'OL' && child.parentElement.tagName !== 'UL'));
25048
+ if (nestedLi && listItem.parentNode) {
25049
+ listItem.parentNode.replaceChild(nestedLi, listItem);
25050
+ hasListCleanUp = true;
24895
25051
  }
25052
+ });
25053
+ return hasListCleanUp;
25054
+ }
25055
+ static cleanUpListContainer(parentList) {
25056
+ let hasListContainerCleanUp = false;
25057
+ let nonLiElementCollection = [];
25058
+ const replacements = [];
25059
+ if (!isNullOrUndefined(parentList)) {
25060
+ parentList.childNodes.forEach((childNode) => {
25061
+ if (childNode.nodeName.toLocaleUpperCase() !== 'LI') {
25062
+ nonLiElementCollection.push(childNode);
25063
+ }
25064
+ if ((childNode.nodeName.toLocaleUpperCase() === 'LI' || parentList.lastChild === childNode) && nonLiElementCollection.length > 0) {
25065
+ replacements.push({ elements: [...nonLiElementCollection] });
25066
+ nonLiElementCollection = [];
25067
+ }
25068
+ });
25069
+ replacements.forEach(({ elements }) => {
25070
+ const newListItem = document.createElement('li');
25071
+ elements[0].parentNode.replaceChild(newListItem, elements[0]);
25072
+ elements.forEach((child) => newListItem.appendChild(child));
25073
+ if (newListItem.textContent && newListItem.textContent.trim() === '') {
25074
+ parentList.removeChild(newListItem);
25075
+ }
25076
+ hasListContainerCleanUp = true;
25077
+ });
24896
25078
  }
25079
+ return hasListContainerCleanUp;
24897
25080
  }
24898
25081
  static placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode) {
24899
25082
  lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNullOrUndefined(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode
@@ -25107,7 +25290,8 @@ class InsertHtml {
25107
25290
  while (el && el.nodeType === 1) {
25108
25291
  if (el.parentNode === editNode ||
25109
25292
  (!isNullOrUndefined(el.parentNode.tagName) &&
25110
- IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1)) {
25293
+ (IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1
25294
+ || ALLOWED_TABLE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1))) {
25111
25295
  return el;
25112
25296
  }
25113
25297
  el = el.parentNode;
@@ -25884,8 +26068,14 @@ class ImageCommand {
25884
26068
  (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);
25885
26069
  const onImageLoadEvent = () => {
25886
26070
  if (!isNullOrUndefined(this.parent.currentDocument)) {
25887
- imgElm.setAttribute('width', this.calculateStyleValue(imgElm.offsetWidth));
25888
- imgElm.setAttribute('height', this.calculateStyleValue(imgElm.offsetHeight));
26071
+ const imgWidth = imgElm.getAttribute('width');
26072
+ const imgHeight = imgElm.getAttribute('height');
26073
+ if (isNullOrUndefined(imgWidth) || imgWidth === 'auto') {
26074
+ imgElm.setAttribute('width', imgElm.offsetWidth.toString());
26075
+ }
26076
+ if (isNullOrUndefined(imgHeight) || imgHeight === 'auto') {
26077
+ imgElm.setAttribute('height', imgElm.offsetHeight.toString());
26078
+ }
25889
26079
  e.callBack({
25890
26080
  requestType: (e.value === 'Replace') ? (e.item.subCommand = 'Replace', 'Replace') : 'Images',
25891
26081
  editorMode: 'HTML',
@@ -29478,6 +29668,9 @@ class MsWordPaste {
29478
29668
  e.callBack(elm.innerHTML, this.cropImageDimensions, source);
29479
29669
  }
29480
29670
  else {
29671
+ if (source === PASTE_SOURCE[2]) {
29672
+ this.handleOneNoteContent(elm);
29673
+ }
29481
29674
  e.callBack(elm.innerHTML, null, source);
29482
29675
  }
29483
29676
  }
@@ -30472,6 +30665,18 @@ class MsWordPaste {
30472
30665
  }
30473
30666
  return 'html';
30474
30667
  }
30668
+ handleOneNoteContent(element) {
30669
+ const allListElements = element.querySelectorAll('ul, ol');
30670
+ if (allListElements.length > 0) {
30671
+ for (let i = 0; i < allListElements.length; i++) {
30672
+ // Removing the ul and ol parent node for the p tag
30673
+ const currentList = allListElements[i];
30674
+ if (currentList.querySelectorAll('li').length === 0 && currentList.childNodes.length > 0) {
30675
+ InsertMethods.unwrap(currentList);
30676
+ }
30677
+ }
30678
+ }
30679
+ }
30475
30680
  destroy() {
30476
30681
  this.removeEventListener();
30477
30682
  }
@@ -31953,7 +32158,11 @@ class HtmlEditor {
31953
32158
  isTableClassAdded() {
31954
32159
  const tableElement = this.parent.inputElement.querySelectorAll('table');
31955
32160
  for (let i = 0; i < tableElement.length; i++) {
31956
- if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')) {
32161
+ // e-rte-table class is added to the table element for styling.
32162
+ // e-rte-paste-table class is added for pasted table element from MS Word and other sources such as Web will not have any styles.
32163
+ // e-rte-custom-table class is added for custom table element will not have any styles.
32164
+ if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')
32165
+ && !tableElement[i].classList.contains('e-rte-custom-table')) {
31957
32166
  tableElement[i].classList.add('e-rte-table');
31958
32167
  }
31959
32168
  }
@@ -32466,12 +32675,16 @@ class HtmlEditor {
32466
32675
  }
32467
32676
  const brNode = this.deleteRangeElement.querySelector('BR');
32468
32677
  const brLastChildNode = this.deleteRangeElement.lastChild;
32678
+ const brParentNode = brLastChildNode.parentNode;
32469
32679
  if (brNode && brNode.classList.contains('e-rte-image-remove-focus')) {
32470
32680
  removeClass([brNode], ['e-rte-image-focus']);
32471
32681
  return;
32472
32682
  }
32473
32683
  else if (brNode && brLastChildNode && brLastChildNode.nodeName === 'BR') {
32474
32684
  detach(brLastChildNode);
32685
+ if (!isNullOrUndefined(brParentNode) && brParentNode.childNodes.length === 0) {
32686
+ detach(brParentNode);
32687
+ }
32475
32688
  e.args.preventDefault();
32476
32689
  }
32477
32690
  if (!isNullOrUndefined(this.deleteRangeElement) && (this.deleteOldRangeElement.tagName !== 'OL' && this.deleteOldRangeElement.tagName !== 'UL')
@@ -33142,38 +33355,62 @@ class PasteCleanup {
33142
33355
  }
33143
33356
  }
33144
33357
  splitBreakLine(value) {
33145
- const enterSplitText = value.split('\n');
33146
- let contentInnerElem = '';
33358
+ const enterSplitText = value.split('\r\n\r\n');
33359
+ let finalText = '';
33147
33360
  const startNode = this.parent.enterKey === 'P' ? '<p>' : (this.parent.enterKey === 'DIV' ? '<div>' : '');
33148
33361
  const endNode = this.parent.enterKey === 'P' ? '</p>' : (this.parent.enterKey === 'DIV' ? '</div>' : '<br>');
33149
33362
  for (let i = 0; i < enterSplitText.length; i++) {
33150
- if (enterSplitText[i].trim() === '') {
33151
- contentInnerElem += getDefaultValue(this.parent);
33363
+ const content = enterSplitText[i];
33364
+ const contentWithSpace = this.makeSpace(content);
33365
+ const contentWithLineBreak = contentWithSpace.replace(/\r\n|\n/g, '<br>');
33366
+ if (i === 0) {
33367
+ if (this.parent.enterKey === 'BR') {
33368
+ finalText += (contentWithLineBreak + endNode);
33369
+ }
33370
+ else {
33371
+ finalText += contentWithLineBreak; // In order to merge the content in current line. No P/Div tag is added.
33372
+ }
33152
33373
  }
33153
33374
  else {
33154
- const contentWithSpace = this.makeSpace(enterSplitText[i]);
33155
- contentInnerElem += (i === 0 && this.parent.enterKey !== 'BR' ? '<span>' : startNode) +
33156
- (contentWithSpace.trim() === '' ? '<br>' : contentWithSpace.trim()) +
33157
- (enterSplitText.length - 1 === i && this.parent.enterKey === 'BR' ? '' : (i === 0 && this.parent.enterKey !== 'BR' ? '</span>' : endNode));
33375
+ if (this.parent.enterKey === 'BR') {
33376
+ if (i === enterSplitText.length - 1) {
33377
+ finalText += (contentWithLineBreak + endNode);
33378
+ }
33379
+ else {
33380
+ finalText += (contentWithLineBreak + endNode + endNode);
33381
+ }
33382
+ }
33383
+ else {
33384
+ finalText += startNode + contentWithLineBreak + endNode;
33385
+ }
33158
33386
  }
33159
33387
  }
33160
- return contentInnerElem;
33388
+ return finalText;
33161
33389
  }
33162
- makeSpace(enterSplitText) {
33163
- let contentWithSpace = '';
33164
- let spaceBetweenContent = true;
33165
- enterSplitText = enterSplitText.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
33166
- const spaceSplit = enterSplitText.split(' ');
33167
- for (let j = 0; j < spaceSplit.length; j++) {
33168
- if (spaceSplit[j].trim() === '') {
33169
- contentWithSpace += spaceBetweenContent ? '&nbsp;' : ' ';
33390
+ makeSpace(text) {
33391
+ let spacedContent = '';
33392
+ if (text === '') {
33393
+ return text;
33394
+ }
33395
+ const lineBreakSplitText = text.split(' ');
33396
+ for (let i = 0; i < lineBreakSplitText.length; i++) {
33397
+ const currentText = lineBreakSplitText[i];
33398
+ if (currentText === '') {
33399
+ spacedContent += '&nbsp;';
33400
+ }
33401
+ else if (currentText === '\t') {
33402
+ spacedContent += '&nbsp;&nbsp;&nbsp;&nbsp;';
33170
33403
  }
33171
33404
  else {
33172
- spaceBetweenContent = false;
33173
- contentWithSpace += spaceSplit[j] + ' ';
33405
+ if (i > 0 && i < lineBreakSplitText.length) {
33406
+ spacedContent += ' ';
33407
+ }
33408
+ spacedContent += currentText;
33174
33409
  }
33175
33410
  }
33176
- return contentWithSpace;
33411
+ spacedContent = spacedContent.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
33412
+ spacedContent = spacedContent.replace(/&nbsp;&nbsp;/g, '&nbsp; ');
33413
+ return spacedContent;
33177
33414
  }
33178
33415
  imgUploading(elm) {
33179
33416
  const allImgElm = elm.querySelectorAll('.pasteContent_Img');
@@ -33747,6 +33984,9 @@ class PasteCleanup {
33747
33984
  const tableElement = element.querySelectorAll('table');
33748
33985
  for (let i = 0; i < tableElement.length; i++) {
33749
33986
  const isMSTeamsTable = tableElement[i].parentElement.nodeName === 'FIGURE';
33987
+ if (tableElement[i].classList.length > 0 && tableElement[i].classList.contains('e-rte-custom-table')) {
33988
+ continue; // Skip the custom table class
33989
+ }
33750
33990
  if (this.parent.pasteCleanupSettings.keepFormat && source && !isMSTeamsTable) {
33751
33991
  tableElement[i].classList.add('e-rte-paste-' + source + '-table');
33752
33992
  }
@@ -34200,6 +34440,10 @@ class Resize {
34200
34440
  this.parent.element.style.height = eventType.clientY - boundRect.top + 'px';
34201
34441
  this.parent.element.style.width = (!this.parent.enableRtl) ? eventType.clientX - boundRect.left + 'px' : boundRect.right - eventType.clientX + 'px';
34202
34442
  }
34443
+ const rteContent = this.parent.element.querySelector('#' + this.parent.getID() + '_source-view');
34444
+ if (!isNullOrUndefined(rteContent)) {
34445
+ rteContent.style.height = this.parent.element.style.height;
34446
+ }
34203
34447
  this.parent.refreshUI();
34204
34448
  }
34205
34449
  stopResize(e) {
@@ -36148,12 +36392,12 @@ class RendererFactory {
36148
36392
  }
36149
36393
  }
36150
36394
 
36151
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36152
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36153
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36154
- 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;
36155
- return c > 3 && r && Object.defineProperty(target, key, r), r;
36156
- };
36395
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36396
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36397
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36398
+ 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;
36399
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
36400
+ };
36157
36401
  /**
36158
36402
  * Configures the toolbar settings of the RichTextEditor.
36159
36403
  */
@@ -36579,12 +36823,12 @@ __decorate$2([
36579
36823
  Property(bulletFormatList)
36580
36824
  ], BulletFormatList.prototype, "types", void 0);
36581
36825
 
36582
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36583
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36584
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36585
- 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;
36586
- return c > 3 && r && Object.defineProperty(target, key, r), r;
36587
- };
36826
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36827
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36828
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36829
+ 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;
36830
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
36831
+ };
36588
36832
  /**
36589
36833
  * Objects used for configuring the iframe resources properties.
36590
36834
  */
@@ -36617,12 +36861,12 @@ __decorate$3([
36617
36861
  Property(null)
36618
36862
  ], IFrameSettings.prototype, "sandbox", void 0);
36619
36863
 
36620
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36621
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36622
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36623
- 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;
36624
- return c > 3 && r && Object.defineProperty(target, key, r), r;
36625
- };
36864
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36865
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36866
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36867
+ 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;
36868
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
36869
+ };
36626
36870
  /**
36627
36871
  * Configures the inlineMode property of the RTE.
36628
36872
  */
@@ -37310,12 +37554,12 @@ class EnterKeyAction {
37310
37554
  }
37311
37555
  }
37312
37556
 
37313
- var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37314
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37315
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37316
- 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;
37317
- return c > 3 && r && Object.defineProperty(target, key, r), r;
37318
- };
37557
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37558
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37559
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37560
+ 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;
37561
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
37562
+ };
37319
37563
  /**
37320
37564
  * Represents the Rich Text Editor component.
37321
37565
  * ```html
@@ -38035,7 +38279,7 @@ let RichTextEditor = class RichTextEditor extends Component {
38035
38279
  }
38036
38280
  const notFormatPainterCopy = isNullOrUndefined(e.action) ? true : (e.action !== 'format-copy' ? true : false);
38037
38281
  if (this.formatter.getUndoRedoStack().length === 0 && notFormatPainterCopy &&
38038
- !(e.altKey || e.shiftKey || (e.altKey && e.shiftKey && e.which === 67))) {
38282
+ !(e.altKey || (e.shiftKey && e.which === 16) || (e.altKey && e.shiftKey && e.which === 67))) {
38039
38283
  this.formatter.saveData();
38040
38284
  }
38041
38285
  let preventingMention = false;
@@ -39085,7 +39329,10 @@ let RichTextEditor = class RichTextEditor extends Component {
39085
39329
  const item = compiledTemplate[i];
39086
39330
  append([item], appendElem);
39087
39331
  }
39088
- this.setProperties({ value: appendElem.innerHTML.trim() });
39332
+ const content = appendElem.innerHTML.trim();
39333
+ if (content.length > 0) {
39334
+ this.setProperties({ value: content });
39335
+ }
39089
39336
  this.renderReactTemplates();
39090
39337
  }
39091
39338
  }
@@ -40227,5 +40474,5 @@ RichTextEditor = __decorate$5([
40227
40474
  NotifyPropertyChanges
40228
40475
  ], RichTextEditor);
40229
40476
 
40230
- export { ACTION, ALIGNMENT_TYPE, ALLOWED_ACTIONKEYS, AUDIO, Alignments, Audio, AudioCommand, BLOCKQUOTE_LIST_HANDLE, BLOCK_TAGS, BaseQuickToolbar, BaseToolbar, CLASS_AUDIO, CLASS_AUDIO_BREAK, CLASS_AUDIO_FOCUS, CLASS_AUDIO_INLINE, CLASS_AUDIO_WRAP, CLASS_CAPTION, CLASS_CAPTION_INLINE, CLASS_CLICK_ELEM, CLASS_EMBED_VIDEO_WRAP, CLASS_IMAGE_BREAK, CLASS_IMAGE_CENTER, CLASS_IMAGE_INLINE, CLASS_IMAGE_LEFT, CLASS_IMAGE_RIGHT, CLASS_RTE_CAPTION, CLASS_VIDEO, CLASS_VIDEO_BREAK, CLASS_VIDEO_CENTER, CLASS_VIDEO_CLICK_ELEM, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, CLASS_VIDEO_LEFT, CLASS_VIDEO_RIGHT, CLASS_VIDEO_WRAP, CLEAR_COMMAND, CLEAR_TYPE, CLS_ACTIVE, CLS_ALIGN_TB_BTN, CLS_AUDIOBREAK, CLS_AUDIOINLINE, CLS_AUDIOWRAP, CLS_AUD_FOCUS, CLS_BACK, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_PICKER, CLS_BACKGROUND_COLOR_TARGET, CLS_BULLETFORMATLIST_TB_BTN, CLS_CAPINLINE, CLS_CAPTION, CLS_CLICKELEM, CLS_COLOR_CONTENT, CLS_COLOR_PALETTE, CLS_CONTENT, CLS_COUNT, CLS_CUSTOM_TILE, CLS_DISABLED, CLS_DROPAREA, CLS_DROPDOWN_BTN, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_POPUP, CLS_ERROR, CLS_EXPAND_OPEN, CLS_FOCUS, CLS_FONT_COLOR_DROPDOWN, CLS_FONT_COLOR_PICKER, CLS_FONT_COLOR_TARGET, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FULL_SCREEN, CLS_HIDE, CLS_HR_SEPARATOR, CLS_ICONS, CLS_IMAGE_POP, CLS_IMGBREAK, CLS_IMGCENTER, CLS_IMGINLINE, CLS_IMGLEFT, CLS_IMGRIGHT, CLS_IMG_FOCUS, CLS_IMG_INNER, CLS_IMG_RESIZE, CLS_INLINE, CLS_INLINE_DROPDOWN, CLS_INLINE_POP, CLS_LIST_PRIMARY_CONTENT, CLS_MAXIMIZE, CLS_MINIMIZE, CLS_NOCOLOR_ITEM, CLS_NUMBERFORMATLIST_TB_BTN, CLS_POP, CLS_POPUP, CLS_POPUP_OPEN, CLS_QUICK_DROPDOWN, CLS_QUICK_POP, CLS_QUICK_TB, CLS_RESIZE, CLS_RM_WHITE_SPACE, CLS_RTE, CLS_RTE_CAPTION, CLS_RTE_CONTAINER, CLS_RTE_CONTENT, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_DRAG_IMAGE, CLS_RTE_ELEMENTS, CLS_RTE_EXPAND_TB, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_HIDDEN, CLS_RTE_IMAGE, CLS_RTE_PASTE_CANCEL, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_READONLY, CLS_RTE_RES_CNT, CLS_RTE_RES_EAST, CLS_RTE_RES_HANDLE, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, CLS_RTE_TABLE_RESIZE, CLS_RTE_TB_ENABLED, CLS_RTE_UPLOAD_POPUP, CLS_RTL, CLS_SCRIPT_SHEET, CLS_SEPARATOR, CLS_SHOW, CLS_STYLE_SHEET, CLS_TABLE, CLS_TABLE_BORDER, CLS_TABLE_MULTI_CELL, CLS_TABLE_SEL, CLS_TABLE_SEL_END, CLS_TB_ALT_BOR, CLS_TB_BOX_RES, CLS_TB_BTN, CLS_TB_COL_RES, CLS_TB_DASH_BOR, CLS_TB_EXTENDED, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_INLINE, CLS_TB_IOS_FIX, CLS_TB_ITEM, CLS_TB_ROW_RES, CLS_TB_STATIC, CLS_TB_WRAP, CLS_TEXT_POP, CLS_TEXT_QUICK_TB, CLS_TOOLBAR, CLS_UPLOAD_FILES, CLS_VIDEOBREAK, CLS_VIDEOINLINE, CLS_VIDEOWRAP, CLS_VID_CLICK_ELEM, CLS_VID_FOCUS, CLS_VISIBLE, CLS_WARNING, ClearFormat, ClearFormatExec, ColorPickerInput, ContentRender, Count, DEFAULT_TAG, DELETECOLUMN, DELETEROW, DESTROY, DOMNode, DialogRenderer, DialogType, DropDownButtons, EMOJI_PICKER_ACTIONS, EditorManager, EmojiPicker, EmojiPickerAction, ExecCommandCallBack, FORMAT_PAINTER_ACTIONS, FORMAT_TYPE, FileManager, FormatPainter, FormatPainterActions, Formats, Formatter, FullScreen, HTMLFormatter, HtmlEditor, HtmlToolbarStatus, IGNORE_BLOCK_TAGS, IMAGE, INDENT_TYPE, INSERTHTML_TYPE, INSERT_COLUMN, INSERT_ROW, INSERT_TEXT_COMMAND, INSERT_TEXT_TYPE, INTERNAL_DESTROY, IframeContentRender, Image$1 as Image, ImageCommand, ImageInputSource, ImportExport, Indents, InsertHtml, InsertHtmlExec, InsertMethods, InsertTextExec, IsFormatted, KEY_DOWN, KEY_DOWN_HANDLER, KEY_UP, KEY_UP_HANDLER, KeyboardEvents, LINK, LINK_COMMAND, LISTS_COMMAND, LIST_TYPE, Link, LinkCommand, Lists, MDFormats, MDLink, MDLists, MDSelectionFormats, MDTable, MD_TABLE, MODEL_CHANGED, MODEL_CHANGED_PLUGIN, MOUSE_DOWN, MS_WORD_CLEANUP, MS_WORD_CLEANUP_PLUGIN, MarkdownEditor, MarkdownFormatter, MarkdownParser, MarkdownRender, MarkdownSelection, MarkdownToolbarStatus, MsWordPaste, NodeCutter, NodeSelection, ON_BEGIN, PASTE_SOURCE, PasteCleanup, PopupRenderer, QuickToolbar, REMOVETABLE, Render, RenderType, RendererFactory, Resize, RichTextEditor, SELECTION_TYPE, SELF_CLOSING_TAGS, SPACE_ACTION, SelectionBasedExec, SelectionCommands, ServiceLocator, SlashMenu, TABLE, TABLEHEADER, TABLE_BLOCK_TAGS, TABLE_HORIZONTAL_SPLIT, TABLE_MERGE, TABLE_MOVE, TABLE_VERTICAL_ALIGN, TABLE_VERTICAL_SPLIT, Table, TableCommand, Toolbar, ToolbarAction, ToolbarRenderer, ToolbarStatus, ToolbarType, UndoRedoCommands, UndoRedoManager, VIDEO, Video, VideoCommand, ViewSource, XhtmlValidation, actionBegin, actionComplete, actionSuccess, afterImageDelete, afterKeyDown, afterMediaDelete, afterPasteCleanup, audioDelete, audioToolbarAction, autoResize, beforeDialogClose, beforeDialogOpen, beforeDropDownItemRender, beforeDropDownOpen, beforeFileUpload, beforeImageDrop, beforeImageUpload, beforePasteCleanup, beforeQuickToolbarOpen, bindCssClass, bindOnEnd, blockEmptyNodes, checkUndo, cleanupResizeElements, clearDialogObj, closeAudioDialog, closeImageDialog, closeLinkDialog, closeTableDialog, closeTooltip, closeVideoDialog, colorPickerChanged, contentBlur, contentChanged, contentFocus, contentscroll, conversionFactors, convertToBlob, count, createTable, created, decode, destroy, destroyTooltip, destroyed, dialogClose, dialogOpen, disableFullScreen, dispatchEvent, docClick, documentClickClosedBy, drop, dropDownSelect, dynamicModule, editAreaClick, editLink, emojiPicker, enableFullScreen, enterHandler, execCommandCallBack, executeGroup, expandPopupClick, fileRemoving, fileSelected, fileUploadFailed, fileUploadSuccess, fileUploading, focusChange, formatPainterClick, formatPainterDoubleClick, getCollection, getDefaultValue, getDropDownValue, getEditValue, getFormattedFontSize, getIndex, getLocaleFontFormat, getSelectedHtml, getTBarItemsIndex, getTextNodesUnder, getTooltipText, hasClass, hidePopup, htmlKeyConfig, htmlToolbarClick, iframeMouseDown, imageAlt, imageBreak, imageCaption, imageCenter, imageDelete, imageInline, imageLeft, imageLink, imageRemoving, imageResizeFactor, imageRight, imageSelected, imageSize, imageToolbarAction, imageUploadFailed, imageUploadSuccess, imageUploading, imgModule, initialEnd, initialLoad, inlineEmptyNodes, insertAudio, insertCompleted, insertImage, insertLink, insertVideo, isEditableValueEmpty, isIDevice, keyDown, keyUp, linkToolbarAction, listConversionFilters, load, markdownFormatTags, markdownKeyConfig, markdownListsTags, markdownSelectionTags, markdownToolbarClick, markerClassName, mentionRestrictKeys, modelChanged, mouseDown, mouseUp, onExport, onHandleFontsizeChange, onImport, onResize, openLink, pageYOffset, parseHtml, paste, pasteClean, pasteCleanupGroupingTags, popupHide, quickToolbarClose, quickToolbarOpen, readOnlyMode, redo, refreshBegin, renderFileManager, renderInlineToolbar, resizeInitialized, resizeStart, resizeStop, rtlMode, sanitizeHelper, scroll, selectAll, selectRange, selectionCommand, selectionRestore, selectionSave, selfClosingTags, setAttributes, setToolbarStatus, showAudioDialog, showColorPicker, showImageDialog, showLinkDialog, showTableDialog, showVideoDialog, sourceCode, sourceCodeMouseDown, statusCollection, supportedUnits, tableColorPickerChanged, tableModulekeyUp, tableToolbarAction, tableclass, toObjectLowerCase, toolbarClick, toolbarCreated, toolbarOpen, toolbarRefresh, toolbarRenderComplete, toolbarUpdated, unLink, undo, updateDropDownFontFormatLocale, updateSource, updateTbItemsStatus, updateTextNode, updateToolbarItem, updateUndoRedoStatus, updateValueOnIdle, updatedToolbarStatus, videoDelete, videoSize, videoToolbarAction, windowResize, xhtmlValidation };
40477
+ export { ACTION, ALIGNMENT_TYPE, ALLOWED_ACTIONKEYS, ALLOWED_TABLE_BLOCK_TAGS, AUDIO, Alignments, Audio, AudioCommand, BLOCKQUOTE_LIST_HANDLE, BLOCK_TAGS, BaseQuickToolbar, BaseToolbar, CLASS_AUDIO, CLASS_AUDIO_BREAK, CLASS_AUDIO_FOCUS, CLASS_AUDIO_INLINE, CLASS_AUDIO_WRAP, CLASS_CAPTION, CLASS_CAPTION_INLINE, CLASS_CLICK_ELEM, CLASS_EMBED_VIDEO_WRAP, CLASS_IMAGE_BREAK, CLASS_IMAGE_CENTER, CLASS_IMAGE_INLINE, CLASS_IMAGE_LEFT, CLASS_IMAGE_RIGHT, CLASS_RTE_CAPTION, CLASS_VIDEO, CLASS_VIDEO_BREAK, CLASS_VIDEO_CENTER, CLASS_VIDEO_CLICK_ELEM, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, CLASS_VIDEO_LEFT, CLASS_VIDEO_RIGHT, CLASS_VIDEO_WRAP, CLEAR_COMMAND, CLEAR_TYPE, CLS_ACTIVE, CLS_ALIGN_TB_BTN, CLS_AUDIOBREAK, CLS_AUDIOINLINE, CLS_AUDIOWRAP, CLS_AUD_FOCUS, CLS_BACK, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_PICKER, CLS_BACKGROUND_COLOR_TARGET, CLS_BULLETFORMATLIST_TB_BTN, CLS_CAPINLINE, CLS_CAPTION, CLS_CLICKELEM, CLS_COLOR_CONTENT, CLS_COLOR_PALETTE, CLS_CONTENT, CLS_COUNT, CLS_CUSTOM_TILE, CLS_DISABLED, CLS_DROPAREA, CLS_DROPDOWN_BTN, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_POPUP, CLS_ERROR, CLS_EXPAND_OPEN, CLS_FOCUS, CLS_FONT_COLOR_DROPDOWN, CLS_FONT_COLOR_PICKER, CLS_FONT_COLOR_TARGET, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FULL_SCREEN, CLS_HIDE, CLS_HR_SEPARATOR, CLS_ICONS, CLS_IMAGE_POP, CLS_IMGBREAK, CLS_IMGCENTER, CLS_IMGINLINE, CLS_IMGLEFT, CLS_IMGRIGHT, CLS_IMG_FOCUS, CLS_IMG_INNER, CLS_IMG_RESIZE, CLS_INLINE, CLS_INLINE_DROPDOWN, CLS_INLINE_POP, CLS_LIST_PRIMARY_CONTENT, CLS_MAXIMIZE, CLS_MINIMIZE, CLS_NOCOLOR_ITEM, CLS_NUMBERFORMATLIST_TB_BTN, CLS_POP, CLS_POPUP, CLS_POPUP_OPEN, CLS_QUICK_DROPDOWN, CLS_QUICK_POP, CLS_QUICK_TB, CLS_RESIZE, CLS_RM_WHITE_SPACE, CLS_RTE, CLS_RTE_CAPTION, CLS_RTE_CONTAINER, CLS_RTE_CONTENT, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_DRAG_IMAGE, CLS_RTE_ELEMENTS, CLS_RTE_EXPAND_TB, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_HIDDEN, CLS_RTE_IMAGE, CLS_RTE_PASTE_CANCEL, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_READONLY, CLS_RTE_RES_CNT, CLS_RTE_RES_EAST, CLS_RTE_RES_HANDLE, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, CLS_RTE_TABLE_RESIZE, CLS_RTE_TB_ENABLED, CLS_RTE_UPLOAD_POPUP, CLS_RTL, CLS_SCRIPT_SHEET, CLS_SEPARATOR, CLS_SHOW, CLS_STYLE_SHEET, CLS_TABLE, CLS_TABLE_BORDER, CLS_TABLE_MULTI_CELL, CLS_TABLE_SEL, CLS_TABLE_SEL_END, CLS_TB_ALT_BOR, CLS_TB_BOX_RES, CLS_TB_BTN, CLS_TB_COL_RES, CLS_TB_DASH_BOR, CLS_TB_EXTENDED, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_INLINE, CLS_TB_IOS_FIX, CLS_TB_ITEM, CLS_TB_ROW_RES, CLS_TB_STATIC, CLS_TB_WRAP, CLS_TEXT_POP, CLS_TEXT_QUICK_TB, CLS_TOOLBAR, CLS_UPLOAD_FILES, CLS_VIDEOBREAK, CLS_VIDEOINLINE, CLS_VIDEOWRAP, CLS_VID_CLICK_ELEM, CLS_VID_FOCUS, CLS_VISIBLE, CLS_WARNING, ClearFormat, ClearFormatExec, ColorPickerInput, ContentRender, Count, DEFAULT_TAG, DELETECOLUMN, DELETEROW, DESTROY, DOMNode, DialogRenderer, DialogType, DropDownButtons, EMOJI_PICKER_ACTIONS, EditorManager, EmojiPicker, EmojiPickerAction, ExecCommandCallBack, FORMAT_PAINTER_ACTIONS, FORMAT_TYPE, FileManager, FormatPainter, FormatPainterActions, Formats, Formatter, FullScreen, HTMLFormatter, HtmlEditor, HtmlToolbarStatus, IGNORE_BLOCK_TAGS, IMAGE, INDENT_TYPE, INSERTHTML_TYPE, INSERT_COLUMN, INSERT_ROW, INSERT_TEXT_COMMAND, INSERT_TEXT_TYPE, INTERNAL_DESTROY, IframeContentRender, Image$1 as Image, ImageCommand, ImageInputSource, ImportExport, Indents, InsertHtml, InsertHtmlExec, InsertMethods, InsertTextExec, IsFormatted, KEY_DOWN, KEY_DOWN_HANDLER, KEY_UP, KEY_UP_HANDLER, KeyboardEvents, LINK, LINK_COMMAND, LISTS_COMMAND, LIST_TYPE, Link, LinkCommand, Lists, MDFormats, MDLink, MDLists, MDSelectionFormats, MDTable, MD_TABLE, MODEL_CHANGED, MODEL_CHANGED_PLUGIN, MOUSE_DOWN, MS_WORD_CLEANUP, MS_WORD_CLEANUP_PLUGIN, MarkdownEditor, MarkdownFormatter, MarkdownParser, MarkdownRender, MarkdownSelection, MarkdownToolbarStatus, MsWordPaste, NodeCutter, NodeSelection, ON_BEGIN, PASTE_SOURCE, PasteCleanup, PopupRenderer, QuickToolbar, REMOVETABLE, Render, RenderType, RendererFactory, Resize, RichTextEditor, SELECTION_TYPE, SELF_CLOSING_TAGS, SPACE_ACTION, SelectionBasedExec, SelectionCommands, ServiceLocator, SlashMenu, TABLE, TABLEHEADER, TABLE_BLOCK_TAGS, TABLE_HORIZONTAL_SPLIT, TABLE_MERGE, TABLE_MOVE, TABLE_VERTICAL_ALIGN, TABLE_VERTICAL_SPLIT, Table, TableCommand, Toolbar, ToolbarAction, ToolbarRenderer, ToolbarStatus, ToolbarType, UndoRedoCommands, UndoRedoManager, VIDEO, Video, VideoCommand, ViewSource, XhtmlValidation, actionBegin, actionComplete, actionSuccess, afterImageDelete, afterKeyDown, afterMediaDelete, afterPasteCleanup, audioDelete, audioToolbarAction, autoResize, beforeDialogClose, beforeDialogOpen, beforeDropDownItemRender, beforeDropDownOpen, beforeFileUpload, beforeImageDrop, beforeImageUpload, beforePasteCleanup, beforeQuickToolbarOpen, bindCssClass, bindOnEnd, blockEmptyNodes, checkUndo, cleanupResizeElements, clearDialogObj, closeAudioDialog, closeImageDialog, closeLinkDialog, closeTableDialog, closeTooltip, closeVideoDialog, colorPickerChanged, contentBlur, contentChanged, contentFocus, contentscroll, conversionFactors, convertToBlob, count, createTable, created, decode, destroy, destroyTooltip, destroyed, dialogClose, dialogOpen, disableFullScreen, dispatchEvent, docClick, documentClickClosedBy, drop, dropDownSelect, dynamicModule, editAreaClick, editLink, emojiPicker, enableFullScreen, enterHandler, execCommandCallBack, executeGroup, expandPopupClick, fileRemoving, fileSelected, fileUploadFailed, fileUploadSuccess, fileUploading, focusChange, formatPainterClick, formatPainterDoubleClick, getCollection, getDefaultValue, getDropDownValue, getEditValue, getFormattedFontSize, getIndex, getLocaleFontFormat, getSelectedHtml, getTBarItemsIndex, getTextNodesUnder, getTooltipText, hasClass, hidePopup, htmlKeyConfig, htmlToolbarClick, iframeMouseDown, iframeResizeFactor, imageAlt, imageBreak, imageCaption, imageCenter, imageDelete, imageInline, imageLeft, imageLink, imageRemoving, imageResizeFactor, imageRight, imageSelected, imageSize, imageToolbarAction, imageUploadFailed, imageUploadSuccess, imageUploading, imgModule, initialEnd, initialLoad, inlineEmptyNodes, insertAudio, insertCompleted, insertImage, insertLink, insertVideo, isEditableValueEmpty, isIDevice, keyDown, keyUp, linkToolbarAction, listConversionFilters, load, markdownFormatTags, markdownKeyConfig, markdownListsTags, markdownSelectionTags, markdownToolbarClick, markerClassName, mentionRestrictKeys, modelChanged, mouseDown, mouseUp, onExport, onHandleFontsizeChange, onImport, onResize, openLink, pageYOffset, parseHtml, paste, pasteClean, pasteCleanupGroupingTags, popupHide, quickToolbarClose, quickToolbarOpen, readOnlyMode, redo, refreshBegin, renderFileManager, renderInlineToolbar, resizeInitialized, resizeStart, resizeStop, rtlMode, sanitizeHelper, scroll, selectAll, selectRange, selectionCommand, selectionRestore, selectionSave, selfClosingTags, setAttributes, setToolbarStatus, showAudioDialog, showColorPicker, showImageDialog, showLinkDialog, showTableDialog, showVideoDialog, sourceCode, sourceCodeMouseDown, statusCollection, supportedUnits, tableColorPickerChanged, tableModulekeyUp, tableToolbarAction, tableclass, toObjectLowerCase, toolbarClick, toolbarCreated, toolbarOpen, toolbarRefresh, toolbarRenderComplete, toolbarUpdated, unLink, undo, updateDropDownFontFormatLocale, updateSource, updateTbItemsStatus, updateTextNode, updateToolbarItem, updateUndoRedoStatus, updateValueOnIdle, updatedToolbarStatus, videoDelete, videoSize, videoToolbarAction, windowResize, xhtmlValidation };
40231
40478
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map