@syncfusion/ej2-richtexteditor 27.1.55 → 27.1.57-637882

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 (234) 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 +994 -749
  7. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  8. package/dist/es6/ej2-richtexteditor.es5.js +622 -364
  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/editor-styles.js +1 -1
  16. package/src/common/interface.d.ts +10 -8
  17. package/src/common/util.js +2 -1
  18. package/src/editor-manager/base/classes.d.ts +1 -1
  19. package/src/editor-manager/base/classes.js +1 -1
  20. package/src/editor-manager/base/constant.d.ts +4 -0
  21. package/src/editor-manager/base/constant.js +4 -0
  22. package/src/editor-manager/base/editor-manager.d.ts +3 -3
  23. package/src/editor-manager/base/editor-manager.js +3 -3
  24. package/src/editor-manager/base/enum.d.ts +2 -2
  25. package/src/editor-manager/base/interface.d.ts +9 -9
  26. package/src/editor-manager/base/types.d.ts +1 -1
  27. package/src/editor-manager/plugin/alignments.d.ts +2 -2
  28. package/src/editor-manager/plugin/alignments.js +2 -2
  29. package/src/editor-manager/plugin/audio.d.ts +3 -3
  30. package/src/editor-manager/plugin/audio.js +3 -3
  31. package/src/editor-manager/plugin/clearformat-exec.d.ts +2 -2
  32. package/src/editor-manager/plugin/clearformat-exec.js +2 -2
  33. package/src/editor-manager/plugin/clearformat.d.ts +1 -1
  34. package/src/editor-manager/plugin/clearformat.js +1 -1
  35. package/src/editor-manager/plugin/dom-node.d.ts +36 -36
  36. package/src/editor-manager/plugin/dom-node.js +36 -36
  37. package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -1
  38. package/src/editor-manager/plugin/format-painter-actions.js +1 -1
  39. package/src/editor-manager/plugin/formats.d.ts +3 -2
  40. package/src/editor-manager/plugin/formats.js +27 -2
  41. package/src/editor-manager/plugin/image.d.ts +3 -3
  42. package/src/editor-manager/plugin/image.js +11 -5
  43. package/src/editor-manager/plugin/indents.d.ts +2 -2
  44. package/src/editor-manager/plugin/indents.js +2 -2
  45. package/src/editor-manager/plugin/insert-methods.d.ts +4 -4
  46. package/src/editor-manager/plugin/insert-methods.js +4 -4
  47. package/src/editor-manager/plugin/insert-text.d.ts +2 -2
  48. package/src/editor-manager/plugin/insert-text.js +2 -2
  49. package/src/editor-manager/plugin/inserthtml-exec.d.ts +2 -2
  50. package/src/editor-manager/plugin/inserthtml-exec.js +2 -2
  51. package/src/editor-manager/plugin/inserthtml.d.ts +4 -2
  52. package/src/editor-manager/plugin/inserthtml.js +98 -19
  53. package/src/editor-manager/plugin/isformatted.d.ts +9 -9
  54. package/src/editor-manager/plugin/isformatted.js +9 -9
  55. package/src/editor-manager/plugin/link.d.ts +2 -2
  56. package/src/editor-manager/plugin/link.js +2 -2
  57. package/src/editor-manager/plugin/lists.d.ts +2 -2
  58. package/src/editor-manager/plugin/lists.js +2 -2
  59. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +2 -1
  60. package/src/editor-manager/plugin/ms-word-clean-up.js +17 -1
  61. package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
  62. package/src/editor-manager/plugin/nodecutter.js +8 -8
  63. package/src/editor-manager/plugin/selection-commands.d.ts +1 -1
  64. package/src/editor-manager/plugin/selection-commands.js +1 -1
  65. package/src/editor-manager/plugin/selection-exec.d.ts +2 -2
  66. package/src/editor-manager/plugin/selection-exec.js +2 -2
  67. package/src/editor-manager/plugin/table.d.ts +2 -2
  68. package/src/editor-manager/plugin/table.js +2 -2
  69. package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
  70. package/src/editor-manager/plugin/toolbar-status.js +2 -2
  71. package/src/editor-manager/plugin/undo.d.ts +6 -6
  72. package/src/editor-manager/plugin/undo.js +6 -6
  73. package/src/editor-manager/plugin/video.d.ts +3 -3
  74. package/src/editor-manager/plugin/video.js +3 -3
  75. package/src/markdown-parser/base/interface.d.ts +10 -10
  76. package/src/markdown-parser/base/markdown-parser.d.ts +3 -3
  77. package/src/markdown-parser/base/markdown-parser.js +3 -3
  78. package/src/markdown-parser/base/types.d.ts +1 -1
  79. package/src/markdown-parser/plugin/clearformat.d.ts +2 -2
  80. package/src/markdown-parser/plugin/clearformat.js +2 -2
  81. package/src/markdown-parser/plugin/formats.d.ts +2 -2
  82. package/src/markdown-parser/plugin/formats.js +2 -2
  83. package/src/markdown-parser/plugin/insert-text.d.ts +2 -2
  84. package/src/markdown-parser/plugin/insert-text.js +2 -2
  85. package/src/markdown-parser/plugin/link.d.ts +2 -2
  86. package/src/markdown-parser/plugin/link.js +2 -2
  87. package/src/markdown-parser/plugin/markdown-selection.d.ts +14 -14
  88. package/src/markdown-parser/plugin/markdown-selection.js +14 -14
  89. package/src/markdown-parser/plugin/md-selection-formats.d.ts +1 -1
  90. package/src/markdown-parser/plugin/md-selection-formats.js +1 -1
  91. package/src/markdown-parser/plugin/table.d.ts +3 -3
  92. package/src/markdown-parser/plugin/table.js +3 -3
  93. package/src/markdown-parser/plugin/undo.d.ts +6 -6
  94. package/src/markdown-parser/plugin/undo.js +6 -6
  95. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +9 -9
  96. package/src/rich-text-editor/actions/base-quick-toolbar.js +9 -9
  97. package/src/rich-text-editor/actions/base-toolbar.d.ts +3 -3
  98. package/src/rich-text-editor/actions/base-toolbar.js +3 -3
  99. package/src/rich-text-editor/actions/color-picker.d.ts +2 -2
  100. package/src/rich-text-editor/actions/color-picker.js +2 -2
  101. package/src/rich-text-editor/actions/count.d.ts +3 -3
  102. package/src/rich-text-editor/actions/count.js +3 -3
  103. package/src/rich-text-editor/actions/dropdown-buttons.d.ts +2 -2
  104. package/src/rich-text-editor/actions/dropdown-buttons.js +2 -2
  105. package/src/rich-text-editor/actions/emoji-picker.d.ts +1 -1
  106. package/src/rich-text-editor/actions/emoji-picker.js +1 -1
  107. package/src/rich-text-editor/actions/enter-key.js +10 -2
  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 +21 -5
  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/default-locale.js +5 -5
  146. package/src/rich-text-editor/models/iframe-settings-model.d.ts +38 -38
  147. package/src/rich-text-editor/models/iframe-settings.js +19 -19
  148. package/src/rich-text-editor/models/inline-mode-model.d.ts +11 -11
  149. package/src/rich-text-editor/models/inline-mode.js +19 -19
  150. package/src/rich-text-editor/models/slash-menu-settings-model.d.ts +25 -25
  151. package/src/rich-text-editor/models/slash-menu-settings.js +19 -19
  152. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +807 -807
  153. package/src/rich-text-editor/models/toolbar-settings.js +19 -19
  154. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
  155. package/src/rich-text-editor/renderer/audio-module.js +8 -2
  156. package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
  157. package/src/rich-text-editor/renderer/content-renderer.js +6 -6
  158. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -2
  159. package/src/rich-text-editor/renderer/dialog-renderer.js +2 -2
  160. package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
  161. package/src/rich-text-editor/renderer/iframe-content-renderer.js +17 -17
  162. package/src/rich-text-editor/renderer/image-module.d.ts +1 -1
  163. package/src/rich-text-editor/renderer/image-module.js +65 -23
  164. package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
  165. package/src/rich-text-editor/renderer/link-module.js +4 -1
  166. package/src/rich-text-editor/renderer/markdown-renderer.d.ts +6 -6
  167. package/src/rich-text-editor/renderer/markdown-renderer.js +6 -6
  168. package/src/rich-text-editor/renderer/popup-renderer.d.ts +5 -5
  169. package/src/rich-text-editor/renderer/popup-renderer.js +5 -5
  170. package/src/rich-text-editor/renderer/render.d.ts +2 -2
  171. package/src/rich-text-editor/renderer/render.js +2 -2
  172. package/src/rich-text-editor/renderer/slash-menu.js +9 -0
  173. package/src/rich-text-editor/renderer/table-module.d.ts +1 -1
  174. package/src/rich-text-editor/renderer/table-module.js +5 -4
  175. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +9 -9
  176. package/src/rich-text-editor/renderer/toolbar-renderer.js +9 -9
  177. package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
  178. package/src/rich-text-editor/renderer/video-module.js +8 -2
  179. package/src/rich-text-editor/renderer/view-source.d.ts +5 -5
  180. package/src/rich-text-editor/renderer/view-source.js +5 -5
  181. package/src/rich-text-editor/services/renderer-factory.d.ts +3 -3
  182. package/src/rich-text-editor/services/renderer-factory.js +3 -3
  183. package/src/rich-text-editor/services/service-locator.d.ts +3 -3
  184. package/src/rich-text-editor/services/service-locator.js +3 -3
  185. package/src/selection/selection.d.ts +24 -23
  186. package/src/selection/selection.js +37 -34
  187. package/styles/_all.scss +1 -1
  188. package/styles/material3-dark.scss +1 -1
  189. package/styles/material3.scss +1 -1
  190. package/styles/rich-text-editor/_all.scss +2 -2
  191. package/styles/rich-text-editor/_bds-definition.scss +290 -290
  192. package/styles/rich-text-editor/_bigger.scss +610 -610
  193. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +291 -291
  194. package/styles/rich-text-editor/_bootstrap-definition.scss +349 -349
  195. package/styles/rich-text-editor/_bootstrap4-definition.scss +476 -476
  196. package/styles/rich-text-editor/_bootstrap5-definition.scss +278 -278
  197. package/styles/rich-text-editor/_bootstrap5.3-definition.scss +278 -278
  198. package/styles/rich-text-editor/_fabric-dark-definition.scss +275 -275
  199. package/styles/rich-text-editor/_fabric-definition.scss +273 -273
  200. package/styles/rich-text-editor/_fluent-definition.scss +279 -279
  201. package/styles/rich-text-editor/_fluent2-definition.scss +287 -287
  202. package/styles/rich-text-editor/_fusionnew-definition.scss +276 -276
  203. package/styles/rich-text-editor/_highcontrast-definition.scss +274 -274
  204. package/styles/rich-text-editor/_highcontrast-light-definition.scss +273 -273
  205. package/styles/rich-text-editor/_layout.scss +2180 -2180
  206. package/styles/rich-text-editor/_material-dark-definition.scss +278 -278
  207. package/styles/rich-text-editor/_material-definition.scss +276 -276
  208. package/styles/rich-text-editor/_material3-definition.scss +278 -278
  209. package/styles/rich-text-editor/_tailwind-definition.scss +273 -273
  210. package/styles/rich-text-editor/_theme.scss +844 -844
  211. package/styles/rich-text-editor/icons/_bds.scss +372 -372
  212. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +373 -373
  213. package/styles/rich-text-editor/icons/_bootstrap.scss +373 -373
  214. package/styles/rich-text-editor/icons/_bootstrap4.scss +373 -373
  215. package/styles/rich-text-editor/icons/_bootstrap5.3.scss +372 -372
  216. package/styles/rich-text-editor/icons/_bootstrap5.scss +372 -372
  217. package/styles/rich-text-editor/icons/_fabric-dark.scss +373 -373
  218. package/styles/rich-text-editor/icons/_fabric.scss +373 -373
  219. package/styles/rich-text-editor/icons/_fluent.scss +372 -372
  220. package/styles/rich-text-editor/icons/_fluent2.scss +369 -369
  221. package/styles/rich-text-editor/icons/_fusionnew.scss +357 -357
  222. package/styles/rich-text-editor/icons/_highcontrast-light.scss +361 -361
  223. package/styles/rich-text-editor/icons/_highcontrast.scss +373 -373
  224. package/styles/rich-text-editor/icons/_material-dark.scss +373 -373
  225. package/styles/rich-text-editor/icons/_material.scss +373 -373
  226. package/styles/rich-text-editor/icons/_material3.scss +372 -372
  227. package/styles/rich-text-editor/icons/_tailwind.scss +372 -372
  228. package/styles/rich-text-editor/material3-dark.scss +1 -1
  229. package/styles/rich-text-editor/material3.scss +1 -1
  230. package/dist/ej2-richtexteditor.min.js +0 -10
  231. package/dist/global/ej2-richtexteditor.min.js +0 -11
  232. package/dist/global/ej2-richtexteditor.min.js.map +0 -1
  233. package/dist/global/index.d.ts +0 -14
  234. 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
@@ -3055,11 +3055,11 @@ let formatsLocale = [
3055
3055
  let numberFormatListLocale = [
3056
3056
  { locale: 'numberFormatListNone', value: 'none' },
3057
3057
  { locale: 'numberFormatListNumber', value: 'decimal' },
3058
- { locale: 'numberFormatListLowerAlpha', value: 'lower-alpha' },
3059
- { locale: 'numberFormatListUpperAlpha', value: 'upper-alpha' },
3060
- { locale: 'numberFormatListLowerRoman', value: 'lower-roman' },
3061
- { locale: 'numberFormatListUpperRoman', value: 'upper-roman' },
3062
- { locale: 'numberFormatListLowerGreek', value: 'lower-greek' }
3058
+ { locale: 'numberFormatListLowerAlpha', value: 'lowerAlpha' },
3059
+ { locale: 'numberFormatListUpperAlpha', value: 'upperAlpha' },
3060
+ { locale: 'numberFormatListLowerRoman', value: 'lowerRoman' },
3061
+ { locale: 'numberFormatListUpperRoman', value: 'upperRoman' },
3062
+ { locale: 'numberFormatListLowerGreek', value: 'lowerGreek' }
3063
3063
  ];
3064
3064
  let bulletFormatListLocale = [
3065
3065
  { locale: 'bulletFormatListNone', value: 'none' },
@@ -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
  }
@@ -7123,8 +7134,14 @@ class Image$1 {
7123
7134
  if (this.parent.formatter.getUndoRedoStack().length === 0) {
7124
7135
  this.parent.formatter.saveData();
7125
7136
  }
7126
- this.pageX = this.getPointX(e);
7127
- this.pageY = this.getPointY(e);
7137
+ if (this.parent.iframeSettings.enable) {
7138
+ this.pageX = e.screenX;
7139
+ this.pageY = e.screenY;
7140
+ }
7141
+ else {
7142
+ this.pageX = this.getPointX(e);
7143
+ this.pageY = this.getPointY(e);
7144
+ }
7128
7145
  e.preventDefault();
7129
7146
  e.stopImmediatePropagation();
7130
7147
  this.resizeBtnInit();
@@ -7353,7 +7370,7 @@ class Image$1 {
7353
7370
  width = Math.round(height * aspectRatio);
7354
7371
  height = Math.round(width / aspectRatio);
7355
7372
  }
7356
- return { width, height };
7373
+ return { width: width, height: height };
7357
7374
  }
7358
7375
  pixToPerc(expected, parentEle) {
7359
7376
  return expected / parseFloat(getComputedStyle(parentEle).width) * 100;
@@ -7388,25 +7405,43 @@ class Image$1 {
7388
7405
  return;
7389
7406
  }
7390
7407
  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);
7408
+ if (this.parent.iframeSettings.enable) {
7409
+ const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7410
+ const currentScreenX = e.screenX;
7411
+ const currentScreenY = e.screenY;
7412
+ const currentWidth = this.imgEle.clientWidth;
7413
+ const currentHeight = this.imgEle.clientHeight;
7414
+ const deltaX = currentScreenX - this.pageX;
7415
+ const deltaY = currentScreenY - this.pageY;
7416
+ const width = deltaX * resizeFactor[0] + currentWidth;
7417
+ const height = deltaY * resizeFactor[1] + currentHeight;
7418
+ const dimensions = this.adjustDimensions(width, height, deltaX, deltaY, this.aspectRatio);
7419
+ this.pageX = currentScreenX;
7420
+ this.pageY = currentScreenY;
7421
+ this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7422
+ this.parent.autoResize();
7423
+ }
7424
+ else {
7425
+ const pageX = this.getPointX(e);
7426
+ const pageY = this.getPointY(e);
7427
+ const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7428
+ const diffX = (pageX - this.pageX);
7429
+ const diffY = (pageY - this.pageY);
7430
+ const currentWidth = this.imgEle.clientWidth;
7431
+ const currentHeight = this.imgEle.clientHeight;
7432
+ const width = diffX * resizeFactor[0] + currentWidth;
7433
+ const height = diffY * resizeFactor[1] + currentHeight;
7434
+ const dimensions = this.adjustDimensions(width, height, diffX, diffY, this.aspectRatio);
7435
+ this.pageX = pageX;
7436
+ this.pageY = pageY;
7437
+ this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7438
+ }
7404
7439
  }
7405
7440
  }
7406
7441
  adjustDimensions(width, height, diffX, diffY, aspectRatio) {
7407
7442
  width = (width < 16) ? 16 : width;
7408
7443
  height = (height < 16) ? 16 : height;
7409
- const isWidthPrimary = Math.abs(diffX) > Math.abs(diffY);
7444
+ const isWidthPrimary = width > height;
7410
7445
  const dimensions = this.adjustDimensionsByAspectRatio(width, height, aspectRatio, isWidthPrimary);
7411
7446
  return dimensions;
7412
7447
  }
@@ -7825,7 +7860,9 @@ class Image$1 {
7825
7860
  this.parent.formatter.editorManager.nodeSelection.Clear(this.contentModule.getDocument());
7826
7861
  this.parent.formatter.editorManager.nodeSelection.setSelectionContents(this.contentModule.getDocument(), target);
7827
7862
  this.quickToolObj.imageQTBar.showPopup(args.pageX, pageY, target);
7828
- this.resizeStart(e.args, target);
7863
+ if (this.parent.insertImageSettings.resize === true) {
7864
+ this.resizeStart(e.args, target);
7865
+ }
7829
7866
  }, 400);
7830
7867
  }
7831
7868
  else {
@@ -8497,6 +8534,9 @@ class Image$1 {
8497
8534
  proxy.uploadUrl.cssClass = (proxy.parent.insertImageSettings.display === 'inline' ?
8498
8535
  CLS_IMGINLINE : CLS_IMGBREAK);
8499
8536
  proxy.dialogObj.hide({ returnValue: false });
8537
+ if (proxy.dialogObj !== null) {
8538
+ return;
8539
+ }
8500
8540
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
8501
8541
  proxy.uploadUrl.url = '';
8502
8542
  if (proxy.contentModule.getEditPanel().querySelector('.e-img-resize')) {
@@ -8527,8 +8567,11 @@ class Image$1 {
8527
8567
  maxHeight: proxy.parent.insertImageSettings.maxHeight
8528
8568
  }
8529
8569
  };
8530
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
8531
8570
  proxy.dialogObj.hide({ returnValue: false });
8571
+ if (proxy.dialogObj !== null) {
8572
+ return;
8573
+ }
8574
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
8532
8575
  }
8533
8576
  }
8534
8577
  imgsizeInput(e) {
@@ -8702,9 +8745,17 @@ class Image$1 {
8702
8745
  }
8703
8746
  };
8704
8747
  proxy.inputUrl.setAttribute('disabled', 'true');
8705
- if (isNullOrUndefined(proxy.parent.insertImageSettings.saveUrl) && this.isAllowedTypes
8706
- && !isNullOrUndefined(this.dialogObj) && selectArgs.filesData[0].size <= this.uploadObj.maxFileSize) {
8707
- this.dialogObj.getButtons(0).element.removeAttribute('disabled');
8748
+ if (!isNullOrUndefined(this.dialogObj)) {
8749
+ const button = this.dialogObj.getButtons(0);
8750
+ if (!isNullOrUndefined(button)) {
8751
+ if (isNullOrUndefined(proxy.parent.insertImageSettings.saveUrl) && this.isAllowedTypes
8752
+ && selectArgs.filesData[0].size <= this.uploadObj.maxFileSize) {
8753
+ button.element.removeAttribute('disabled');
8754
+ }
8755
+ else {
8756
+ button.element.setAttribute('disabled', 'true');
8757
+ }
8758
+ }
8708
8759
  }
8709
8760
  });
8710
8761
  reader.readAsDataURL(selectArgs.filesData[0].rawFile);
@@ -9285,7 +9336,9 @@ class Image$1 {
9285
9336
  if (imageElement) {
9286
9337
  this.showImageQTbarTime = setTimeout(() => {
9287
9338
  this.showImageQuickToolbar(args);
9288
- this.resizeStart(e.args, imageElement);
9339
+ if (this.parent.insertImageSettings.resize) {
9340
+ this.resizeStart(e.args, imageElement);
9341
+ }
9289
9342
  }, 0);
9290
9343
  }
9291
9344
  }
@@ -10173,6 +10226,9 @@ class Audio {
10173
10226
  proxy.uploadUrl.cssClass = (proxy.parent.insertAudioSettings.layoutOption === 'Inline' ?
10174
10227
  CLS_AUDIOINLINE : CLS_AUDIOBREAK);
10175
10228
  proxy.dialogObj.hide({ returnValue: false });
10229
+ if (proxy.dialogObj !== null) {
10230
+ return;
10231
+ }
10176
10232
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
10177
10233
  proxy.uploadUrl.url = '';
10178
10234
  }
@@ -10191,8 +10247,11 @@ class Audio {
10191
10247
  url: url, selection: this.selection, fileName: name,
10192
10248
  selectParent: this.selectParent
10193
10249
  };
10194
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
10195
10250
  proxy.dialogObj.hide({ returnValue: false });
10251
+ if (proxy.dialogObj !== null) {
10252
+ return;
10253
+ }
10254
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
10196
10255
  }
10197
10256
  }
10198
10257
  /* eslint-disable */
@@ -11657,6 +11716,9 @@ class Video {
11657
11716
  maxHeight: proxy.parent.insertVideoSettings.maxHeight
11658
11717
  };
11659
11718
  proxy.dialogObj.hide({ returnValue: false });
11719
+ if (proxy.dialogObj !== null) {
11720
+ return;
11721
+ }
11660
11722
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
11661
11723
  proxy.uploadUrl.url = '';
11662
11724
  }
@@ -11683,8 +11745,11 @@ class Video {
11683
11745
  maxHeight: proxy.parent.insertVideoSettings.maxHeight
11684
11746
  }
11685
11747
  };
11686
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
11687
11748
  proxy.dialogObj.hide({ returnValue: false });
11749
+ if (proxy.dialogObj !== null) {
11750
+ return;
11751
+ }
11752
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
11688
11753
  }
11689
11754
  }
11690
11755
  /* eslint-disable */
@@ -11839,12 +11904,12 @@ const DESTROY = 'destroy';
11839
11904
  */
11840
11905
  const INTERNAL_DESTROY = 'internal_destroy';
11841
11906
 
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
- };
11907
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11908
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11909
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11910
+ 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;
11911
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11912
+ };
11848
11913
  var KeyboardEvents_1;
11849
11914
  const keyCode = {
11850
11915
  'backspace': 8,
@@ -13347,7 +13412,7 @@ class Table {
13347
13412
  return;
13348
13413
  }
13349
13414
  const target = e.target || e.targetTouches[0].target;
13350
- const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table');
13415
+ const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table, table.e-rte-custom-table');
13351
13416
  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
13417
  if (!isResizing && !isNullOrUndefined(this.curTable) && !isNullOrUndefined(closestTable) && closestTable !== this.curTable &&
13353
13418
  this.parent.contentModule.getEditPanel().contains(closestTable)) {
@@ -13696,7 +13761,8 @@ class Table {
13696
13761
  else {
13697
13762
  const tableReBox = this.contentModule.getEditPanel().querySelector('.e-table-box');
13698
13763
  const tableWidth = parseInt(getComputedStyle(this.curTable).width, 10);
13699
- const tableHeight = parseInt(getComputedStyle(this.curTable).height, 10);
13764
+ const tableHeight = !isNaN(parseInt(this.curTable.style.height, 10)) ?
13765
+ parseInt(this.curTable.style.height, 10) : parseInt(getComputedStyle(this.curTable).height, 10);
13700
13766
  const paddingSize = +getComputedStyle(this.contentModule.getEditPanel()).paddingRight.match(/\d/g).join('');
13701
13767
  const rteWidth = this.contentModule.getEditPanel().offsetWidth -
13702
13768
  (this.contentModule.getEditPanel().offsetWidth -
@@ -13841,7 +13907,7 @@ class Table {
13841
13907
  this.curTable.style.height = tableHeight + mouseY + 'px';
13842
13908
  if (!isNullOrUndefined(tableReBox)) {
13843
13909
  tableReBox.classList.add('e-rbox-select');
13844
- tableReBox.style.cssText = 'top: ' + (this.calcPos(this.curTable).top + tableHeight - 4) +
13910
+ tableReBox.style.cssText = 'top: ' + (this.calcPos(this.curTable).top + parseInt(getComputedStyle(this.curTable).height, 10) - 4) +
13845
13911
  'px; left:' + (this.calcPos(this.curTable).left + tableWidth - 4) + 'px;';
13846
13912
  }
13847
13913
  if (this.curTable.closest('li')) {
@@ -14590,623 +14656,612 @@ class DialogRenderer {
14590
14656
  }
14591
14657
  }
14592
14658
 
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
- }
14659
+ const IFRAME_EDITOR_STYLES = `
14660
+ @charset "UTF-8";
14661
+
14662
+ * {
14663
+ box-sizing: border-box;
14664
+ }
14665
+
14666
+ html {
14667
+ height: auto;
14668
+ }
14669
+
14670
+ html, body {
14671
+ margin: 0;
14672
+ }
14673
+
14674
+ body {
14675
+ color: #333;
14676
+ word-wrap: break-word;
14677
+ }
14678
+
14679
+ .e-content {
14680
+ background: unset;
14681
+ min-height: 100px;
14682
+ outline: 0 solid transparent;
14683
+ padding: 16px;
14684
+ position: relative;
14685
+ overflow-x: auto;
14686
+ font-weight: normal;
14687
+ line-height: 1.5;
14688
+ font-size: 14px;
14689
+ text-align: inherit;
14690
+ font-family: "Roboto", "Segoe UI", "GeezaPro", "DejaVu Serif", "sans-serif", "-apple-system", "BlinkMacSystemFont";
14691
+ }
14692
+
14693
+ .e-content p {
14694
+ margin: 0 0 10px;
14695
+ margin-bottom: 10px;
14696
+ }
14697
+
14698
+ .e-content h1 {
14699
+ font-size: 2.857em;
14700
+ font-weight: 600;
14701
+ line-height: 1.2;
14702
+ margin: 10px 0;
14703
+ }
14704
+
14705
+ .e-content h2 {
14706
+ font-size: 2.285em;
14707
+ font-weight: 600;
14708
+ line-height: 1.2;
14709
+ margin: 10px 0;
14710
+ }
14711
+
14712
+ .e-content h3 {
14713
+ font-size: 2em;
14714
+ font-weight: 600;
14715
+ line-height: 1.2;
14716
+ margin: 10px 0;
14717
+ }
14718
+
14719
+ .e-content h4 {
14720
+ font-size: 1.714em;
14721
+ font-weight: 600;
14722
+ line-height: 1.2;
14723
+ margin: 10px 0;
14724
+ }
14725
+
14726
+ .e-content h5 {
14727
+ font-size: 1.428em;
14728
+ font-weight: 600;
14729
+ line-height: 1.2;
14730
+ margin: 10px 0;
14731
+ }
14732
+
14733
+ .e-content h6 {
14734
+ font-size: 1.142em;
14735
+ font-weight: 600;
14736
+ line-height: 1.5;
14737
+ margin: 10px 0;
14738
+ }
14739
+
14740
+ .e-content blockquote {
14741
+ margin: 10px 0;
14742
+ padding-left: 12px;
14743
+ border-left: 2px solid #5c5c5c;
14744
+ }
14745
+
14746
+ .e-rtl.e-content blockquote {
14747
+ padding-left: 0;
14748
+ padding-right: 12px;
14749
+ }
14750
+
14751
+ .e-content pre {
14752
+ border: 0;
14753
+ border-radius: 0;
14754
+ color: #333;
14755
+ font-size: inherit;
14756
+ line-height: inherit;
14757
+ margin: 0 0 10px;
14758
+ overflow: visible;
14759
+ padding: 0;
14760
+ white-space: pre-wrap;
14761
+ word-break: inherit;
14762
+ word-wrap: break-word;
14763
+ }
14764
+
14765
+ .e-content code {
14766
+ background: #9d9d9d26;
14767
+ color: #ed484c;
14768
+ }
14769
+
14770
+ .e-content strong,
14771
+ .e-content b {
14772
+ font-weight: bold;
14773
+ }
14774
+
14775
+ .e-content a {
14776
+ text-decoration: none;
14777
+ user-select: auto;
14778
+ }
14779
+
14780
+ .e-content a:hover {
14781
+ text-decoration: underline;
14782
+ }
14783
+
14784
+ .e-content li {
14785
+ margin-bottom: 10px;
14786
+ }
14787
+
14788
+ .e-content li ol,
14789
+ .e-content li ul {
14790
+ margin-block-start: 10px;
14791
+ }
14792
+
14793
+ .e-content ul {
14794
+ list-style-type: disc;
14795
+ }
14796
+
14797
+ .e-content ul ul,
14798
+ .e-content ol ul {
14799
+ list-style-type: circle;
14800
+ }
14801
+
14802
+ .e-content ul ul ul,
14803
+ .e-content ol ul ul,
14804
+ .e-content ul ol ul,
14805
+ .e-content ol ol ul {
14806
+ list-style-type: square;
14807
+ }
14808
+
14809
+ .e-content p:last-child,
14810
+ .e-content pre:last-child,
14811
+ .e-content blockquote:last-child {
14812
+ margin-bottom: 0;
14813
+ }
14814
+
14815
+ .e-content h3 + h4,
14816
+ .e-content h4 + h5,
14817
+ .e-content h5 + h6 {
14818
+ margin-top: 0.6em;
14819
+ }
14820
+
14821
+ .e-content ul:last-child {
14822
+ margin-bottom: 0;
14823
+ }
14824
+
14825
+ .e-content table {
14826
+ margin-bottom: 10px;
14827
+ border-collapse: collapse;
14828
+ empty-cells: show;
14829
+ }
14830
+
14831
+ .e-content table.e-cell-select {
14832
+ position: relative;
14833
+ }
14834
+
14835
+ .e-content table.e-cell-select::after {
14836
+ content: '';
14837
+ position: absolute;
14838
+ top: 0;
14839
+ left: 0;
14840
+ right: 0;
14841
+ bottom: 0;
14842
+ border: 2px solid #4a90e2;
14843
+ pointer-events: none;
14844
+ }
14845
+
14846
+ table .e-cell-select {
14847
+ border: 1px double #4a90e2 !important;
14848
+ }
14849
+
14850
+ .e-content table.e-rte-table th {
14851
+ background-color: #E0E0E0;
14852
+ }
14853
+
14854
+ .e-rte-table td,
14855
+ .e-rte-table th {
14856
+ border: 1px solid #BDBDBD;
14857
+ height: 20px;
14858
+ min-width: 20px;
14859
+ padding: 2px 5px;
14860
+ }
14861
+
14862
+ .e-rte-table td.e-cell-select.e-multi-cells-select,
14863
+ .e-rte-table th.e-cell-select.e-multi-cells-select {
14864
+ position: relative;
14865
+ }
14866
+
14867
+ .e-rte-table td.e-cell-select.e-multi-cells-select::after,
14868
+ .e-rte-table th.e-cell-select.e-multi-cells-select::after {
14869
+ background-color: rgba(13, 110, 253, 0.08);
14870
+ content: "";
14871
+ position: absolute;
14872
+ top: 0;
14873
+ left: 0;
14874
+ width: 100%;
14875
+ height: 100%;
14876
+ bottom: 0;
14877
+ pointer-events: none;
14878
+ right: 0;
14879
+ }
14880
+
14881
+ table td.e-multi-cells-select ::selection,
14882
+ table th.e-multi-cells-select ::selection {
14883
+ background-color: transparent;
14884
+ }
14885
+
14886
+ td.e-multi-cells-select,
14887
+ th.e-multi-cells-select {
14888
+ user-select: none !important;
14889
+ }
14890
+
14891
+ .e-rte-table.e-dashed-border td,
14892
+ .e-rte-table.e-dashed-border th {
14893
+ border-style: dashed;
14894
+ }
14895
+
14896
+ .e-rte-table .e-alternate-border tbody tr:nth-child(2n) {
14897
+ background-color: #F5F5F5;
14898
+ }
14899
+
14900
+ .e-rte-image,
14901
+ .e-rte-audio,
14902
+ .e-rte-video {
14903
+ border: 0;
14904
+ cursor: pointer;
14905
+ display: block;
14906
+ float: none;
14907
+ margin: auto;
14908
+ max-width: 100%;
14909
+ position: relative;
14910
+ }
14911
+
14912
+ .e-rte-image.e-imginline,
14913
+ .e-rte-audio.e-audio-inline,
14914
+ .e-rte-video.e-video-inline {
14915
+ margin-left: 5px;
14916
+ margin-right: 5px;
14917
+ display: inline-block;
14918
+ float: none;
14919
+ max-width: 100%;
14920
+ padding: 1px;
14921
+ vertical-align: bottom;
14922
+ }
14923
+
14924
+ .e-rte-image.e-imgcenter,
14925
+ .e-rte-video.e-video-center {
14926
+ cursor: pointer;
14927
+ display: block;
14928
+ float: none;
14929
+ margin: 5px auto;
14930
+ max-width: 100%;
14931
+ position: relative;
14932
+ }
14933
+
14934
+ .e-rte-image.e-imgright,
14935
+ .e-rte-video.e-video-right {
14936
+ float: right;
14937
+ margin: 0 auto;
14938
+ margin-left: 5px;
14939
+ text-align: right;
14940
+ }
14941
+
14942
+ .e-rte-image.e-imgleft,
14943
+ .e-rte-video.e-video-left {
14944
+ float: left;
14945
+ margin: 0 auto;
14946
+ margin-right: 5px;
14947
+ text-align: left;
14948
+ }
14949
+
14950
+ .e-rte-img-caption {
14951
+ display: inline-block;
14952
+ margin: 5px auto;
14953
+ max-width: 100%;
14954
+ position: relative;
14955
+ }
14956
+
14957
+ .e-rte-img-caption.e-caption-inline {
14958
+ display: inline-block;
14959
+ margin: 5px auto;
14960
+ margin-left: 5px;
14961
+ margin-right: 5px;
14962
+ max-width: calc(100% - (2 * 5px));
14963
+ position: relative;
14964
+ text-align: center;
14965
+ vertical-align: bottom;
14966
+ }
14967
+
14968
+ .e-rte-img-caption.e-imgcenter {
14969
+ display: contents;
14970
+ margin-left: auto;
14971
+ margin-right: auto;
14972
+ }
14973
+
14974
+ .e-rte-img-caption.e-imgright {
14975
+ display: contents;
14976
+ margin-left: auto;
14977
+ margin-right: 0;
14978
+ }
14979
+
14980
+ .e-rte-img-caption.e-imgleft {
14981
+ display: contents;
14982
+ margin-left: 0;
14983
+ margin-right: auto;
14984
+ }
14985
+
14986
+ .e-img-caption.e-rte-img-caption.e-imgbreak {
14987
+ display: contents;
14988
+ }
14989
+
14990
+ .e-rte-img-caption .e-img-inner {
14991
+ display: block;
14992
+ font-size: 16px;
14993
+ font-weight: initial;
14994
+ margin: auto;
14995
+ opacity: .9;
14996
+ position: relative;
14997
+ text-align: center;
14998
+ width: 100%;
14999
+ }
15000
+
15001
+ .e-img-wrap {
15002
+ display: inline-block;
15003
+ margin: auto;
15004
+ padding: 0;
15005
+ text-align: center;
15006
+ width: 100%;
15007
+ }
15008
+
15009
+ .e-imgleft,
15010
+ .e-video-left {
15011
+ float: left;
15012
+ margin: 0 5px 0 0;
15013
+ text-align: left;
15014
+ }
15015
+
15016
+ .e-imgright,
15017
+ .e-video-right {
15018
+ float: right;
15019
+ margin: 0 0 0 5px;
15020
+ text-align: right;
15021
+ }
15022
+
15023
+ .e-imgcenter,
15024
+ .e-video-center {
15025
+ cursor: pointer;
15026
+ display: block;
15027
+ float: none;
15028
+ height: auto;
15029
+ margin: 5px auto;
15030
+ max-width: 100%;
15031
+ position: relative;
15032
+ }
15033
+
15034
+ .e-control img:not(.e-resize) {
15035
+ border: 2px solid transparent;
15036
+ z-index: 1000
15037
+ }
15038
+
15039
+ .e-imginline,
15040
+ .e-audio-inline,
15041
+ .e-video-inline {
15042
+ display: inline-block;
15043
+ float: none;
15044
+ margin-left: 5px;
15045
+ margin-right: 5px;
15046
+ vertical-align: bottom;
15047
+ }
15048
+
15049
+ .e-imgbreak,
15050
+ .e-audio-break,
15051
+ .e-video-break {
15052
+ border: 0;
15053
+ cursor: pointer;
15054
+ display: block;
15055
+ float: none;
15056
+ height: auto;
15057
+ margin: 5px auto;
15058
+ max-width: 100%;
15059
+ position: relative;
15060
+ }
15061
+
15062
+ .e-rte-image.e-img-focus:not(.e-resize),
15063
+ .e-audio-focus:not(.e-resize),
15064
+ .e-video-focus:not(.e-resize) {
15065
+ border: solid 2px #4a90e2;
15066
+ }
15067
+
15068
+ img.e-img-focus::selection,
15069
+ audio.e-audio-focus::selection,
15070
+ .e-video-focus::selection {
15071
+ background: transparent;
15072
+ color: transparent;
15073
+ }
15074
+
15075
+ span.e-rte-imageboxmark,
15076
+ span.e-rte-videoboxmark {
15077
+ width: 10px;
15078
+ height: 10px;
15079
+ position: absolute;
15080
+ display: block;
15081
+ background: #4a90e2;
15082
+ border: 1px solid #fff;
15083
+ z-index: 1000;
15084
+ }
15085
+
15086
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark,
15087
+ .e-mob-rte.e-mob-span span.e-rte-videoboxmark {
15088
+ background: #4a90e2;
15089
+ border: 1px solid #fff;
15090
+ }
15091
+
15092
+ .e-mob-rte span.e-rte-imageboxmark,
15093
+ .e-mob-rte span.e-rte-videoboxmark {
15094
+ background: #fff;
15095
+ border: 1px solid #4a90e2;
15096
+ border-radius: 15px;
15097
+ height: 20px;
15098
+ width: 20px;
15099
+ }
15100
+
15101
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark,
15102
+ .e-mob-rte.e-mob-span span.e-rte-videoboxmark {
15103
+ background: #4a90e2;
15104
+ border: 1px solid #fff;
15105
+ }
15106
+
15107
+ .e-content img.e-resize,
15108
+ .e-content video.e-resize {
15109
+ z-index: 1000;
15110
+ }
15111
+
15112
+ .e-img-caption .e-img-inner {
15113
+ outline: 0;
15114
+ }
15115
+
15116
+ .e-rte-img-caption.e-imgleft .e-img-inner {
15117
+ float: left;
15118
+ text-align: left;
15119
+ }
15120
+
15121
+ .e-rte-img-caption.e-imgright .e-img-inner {
15122
+ float: right;
15123
+ text-align: right;
15124
+ }
15125
+
15126
+ .e-rte-img-caption.e-imgleft .e-img-wrap,
15127
+ .e-rte-img-caption.e-imgright .e-img-wrap {
15128
+ display: contents;
15129
+ }
15130
+
15131
+ .e-img-caption a:focus-visible {
15132
+ outline: none;
15133
+ }
15134
+
15135
+ .e-rte-img-caption .e-rte-image.e-imgright {
15136
+ margin-left: auto;
15137
+ margin-right: 0;
15138
+ }
15139
+
15140
+ .e-rte-img-caption .e-rte-image.e-imgleft {
15141
+ margin: 0;
15142
+ }
15143
+
15144
+ span.e-table-box {
15145
+ cursor: nwse-resize;
15146
+ display: block;
15147
+ height: 10px;
15148
+ position: absolute;
15149
+ width: 10px;
15150
+ background-color: #ffffff;
15151
+ border: 1px solid #BDBDBD;
15152
+ }
15153
+
15154
+ span.e-table-box.e-rmob {
15155
+ height: 14px;
15156
+ width: 14px;
15157
+ background-color: #BDBDBD;
15158
+ border: 1px solid #BDBDBD;
15159
+ }
15160
+
15161
+ .e-row-resize,
15162
+ .e-column-resize {
15163
+ background-color: transparent;
15164
+ background-repeat: repeat;
15165
+ bottom: 0;
15166
+ cursor: col-resize;
15167
+ height: 1px;
15168
+ overflow: visible;
15169
+ position: absolute;
15170
+ width: 1px;
15171
+ }
15172
+
15173
+ .e-row-resize {
15174
+ cursor: row-resize;
15175
+ height: 1px;
15176
+ }
15177
+
15178
+ .e-table-rhelper {
15179
+ cursor: col-resize;
15180
+ opacity: .87;
15181
+ position: absolute;
15182
+ }
15183
+
15184
+ .e-table-rhelper.e-column-helper {
15185
+ width: 1px;
15186
+ }
15187
+
15188
+ .e-table-rhelper.e-row-helper {
15189
+ height: 1px;
15190
+ }
15191
+
15192
+ .e-reicon::before {
15193
+ border-bottom: 6px solid transparent;
15194
+ border-right: 6px solid;
15195
+ border-top: 6px solid transparent;
15196
+ content: '';
15197
+ display: block;
15198
+ height: 0;
15199
+ position: absolute;
15200
+ right: 4px;
15201
+ top: 4px;
15202
+ width: 20px;
15203
+ }
15204
+
15205
+ .e-reicon::after {
15206
+ border-bottom: 6px solid transparent;
15207
+ border-left: 6px solid;
15208
+ border-top: 6px solid transparent;
15209
+ content: '';
15210
+ display: block;
15211
+ height: 0;
15212
+ left: 4px;
15213
+ position: absolute;
15214
+ top: 4px;
15215
+ width: 20px;
15216
+ z-index: 3;
15217
+ }
15218
+
15219
+ .e-row-helper.e-reicon::after {
15220
+ top: 10px;
15221
+ transform: rotate(90deg);
15222
+ }
15223
+
15224
+ .e-row-helper.e-reicon::before {
15225
+ left: 4px;
15226
+ top: -20px;
15227
+ transform: rotate(90deg);
15228
+ }
15229
+
15230
+
15231
+ .e-table-rhelper {
15232
+ background-color: #4a90e2;
15233
+ }
15234
+
15235
+ .e-rtl {
15236
+ direction: rtl;
15237
+ }
15238
+
15239
+ .e-rte-placeholder::before {
15240
+ content: attr(placeholder);
15241
+ opacity: 0.54;
15242
+ overflow: hidden;
15243
+ padding-top: 16px;
15244
+ position: absolute;
15245
+ text-align: start;
15246
+ top: 0;
15247
+ z-index: 1;
15248
+ }
15249
+
15250
+ .e-resize-enabled,
15251
+ .e-count-enabled {
15252
+ padding-bottom: 0px;
15253
+ }
15199
15254
  `;
15200
15255
 
15201
- const IFRAMEHEADER = `
15202
- <!DOCTYPE html>
15203
- <html>
15204
- <head>
15205
- <meta charset='utf-8' />
15256
+ const IFRAMEHEADER = `
15257
+ <!DOCTYPE html>
15258
+ <html>
15259
+ <head>
15260
+ <meta charset='utf-8' />
15206
15261
  <style>` +
15207
- IFRAME_EDITOR_STYLES.replace(/[\n\t]/g, '') + `
15208
- </style>
15209
- </head>
15262
+ IFRAME_EDITOR_STYLES.replace(/[\n\t]/g, '') + `
15263
+ </style>
15264
+ </head>
15210
15265
  `;
15211
15266
  /**
15212
15267
  * Content module is used to render Rich Text Editor content
@@ -15467,12 +15522,12 @@ class PopupRenderer {
15467
15522
  }
15468
15523
  }
15469
15524
 
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
- };
15525
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15526
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15527
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15528
+ 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;
15529
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
15530
+ };
15476
15531
  /**
15477
15532
  * Configures the slash menu settings of the RichTextEditor.
15478
15533
  */
@@ -15734,6 +15789,15 @@ class SlashMenu {
15734
15789
  break;
15735
15790
  }
15736
15791
  }
15792
+ else {
15793
+ if (this.parent.inputElement.classList.contains('e-mention')) {
15794
+ const slashMenuPopup = this.parent.inputElement.ownerDocument.getElementById(this.parent.inputElement.id + '_slash_menu_popup');
15795
+ const isSlashMenuPopupOpen = slashMenuPopup && slashMenuPopup.classList.contains('e-popup-open');
15796
+ if (isSlashMenuPopupOpen) {
15797
+ this.mention.hidePopup();
15798
+ }
15799
+ }
15800
+ }
15737
15801
  }
15738
15802
  });
15739
15803
  }
@@ -23814,7 +23878,7 @@ class NodeCutter {
23814
23878
  fragment = this.spliceEmptyNode(fragment, false);
23815
23879
  if (fragment && fragment.childNodes.length > 0) {
23816
23880
  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;
23881
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent.charCodeAt(0) !== 32 && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23818
23882
  if (!isEmpty) {
23819
23883
  if (node) {
23820
23884
  InsertMethods.AppendBefore(fragment, node);
@@ -23835,7 +23899,7 @@ class NodeCutter {
23835
23899
  fragment = this.spliceEmptyNode(fragment, true);
23836
23900
  if (fragment && fragment.childNodes.length > 0) {
23837
23901
  const isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'
23838
- && this.isRteElm(fragment) && fragment.textContent.trim() === '') ? true : false;
23902
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent.charCodeAt(0) !== 32 && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23839
23903
  if (!isEmpty) {
23840
23904
  if (node) {
23841
23905
  InsertMethods.AppendBefore(fragment, node, true);
@@ -24234,6 +24298,14 @@ class Formats {
24234
24298
  }
24235
24299
  applyFormats(e) {
24236
24300
  const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
24301
+ const tableCursor = this.parent.nodeSelection.processedTableImageCursor(range);
24302
+ if (tableCursor.start || tableCursor.end) {
24303
+ if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
24304
+ const tableNode = tableCursor.start ? tableCursor.startNode : tableCursor.endNode;
24305
+ this.applyTableSidesFormat(e, tableCursor.start, tableNode);
24306
+ return;
24307
+ }
24308
+ }
24237
24309
  let isSelectAll = false;
24238
24310
  if (this.parent.editableElement === range.endContainer &&
24239
24311
  !isNullOrUndefined(this.parent.editableElement.children[range.endOffset - 1]) &&
@@ -24482,6 +24554,23 @@ class Formats {
24482
24554
  element.style.removeProperty(ignoreAttr[i]);
24483
24555
  }
24484
24556
  }
24557
+ applyTableSidesFormat(e, start, table) {
24558
+ const formatNode = createElement(e.subCommand);
24559
+ if (!(e.enterAction === 'BR')) {
24560
+ formatNode.appendChild(createElement('br'));
24561
+ }
24562
+ table.insertAdjacentElement(start ? 'beforebegin' : 'afterend', formatNode);
24563
+ this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, formatNode, 0);
24564
+ if (e.callBack) {
24565
+ e.callBack({
24566
+ requestType: e.subCommand,
24567
+ editorMode: 'HTML',
24568
+ event: e.event,
24569
+ range: this.parent.nodeSelection.getRange(this.parent.currentDocument),
24570
+ elements: this.parent.domNode.blockNodes()
24571
+ });
24572
+ }
24573
+ }
24485
24574
  destroy() {
24486
24575
  this.removeEventListener();
24487
24576
  }
@@ -24588,7 +24677,12 @@ class InsertHtml {
24588
24677
  }
24589
24678
  }
24590
24679
  if (!isNullOrUndefined(sibNode) && !isNullOrUndefined(sibNode.parentNode)) {
24591
- InsertMethods.AppendBefore(node, sibNode, true);
24680
+ if (docElement.contains(sibNode)) {
24681
+ InsertMethods.AppendBefore(node, sibNode, true);
24682
+ }
24683
+ else {
24684
+ range.insertNode(node);
24685
+ }
24592
24686
  }
24593
24687
  else {
24594
24688
  let previousNode = null;
@@ -24876,24 +24970,95 @@ class InsertHtml {
24876
24970
  this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);
24877
24971
  }
24878
24972
  this.alignCheck(editNode);
24879
- const currentRange = nodeSelection.getRange(docElement);
24880
- this.listCleanUp(currentRange);
24973
+ this.listCleanUp(nodeSelection, docElement);
24881
24974
  }
24882
- static listCleanUp(range) {
24975
+ static listCleanUp(nodeSelection, docElement) {
24976
+ const range = nodeSelection.getRange(docElement);
24977
+ const startContainer = range.startContainer;
24978
+ const startOffset = range.startOffset;
24883
24979
  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);
24980
+ const haslistCleanUp = this.cleanUpListItems(range.startContainer.parentElement.closest('ol,ul'));
24981
+ const haslistContainerCleanUp = this.cleanUpListContainer(range.startContainer.parentElement.closest('ol,ul'));
24982
+ if (haslistCleanUp || haslistContainerCleanUp) {
24983
+ range.setStart(startContainer, startOffset);
24984
+ range.setEnd(startContainer, startOffset);
24985
+ }
24986
+ }
24987
+ }
24988
+ static cleanUpListItems(parentContainer) {
24989
+ let hasListCleanUp = false;
24990
+ const listItems = parentContainer.closest('ol, ul').querySelectorAll('li');
24991
+ if (listItems.length === 0) {
24992
+ return false;
24993
+ }
24994
+ let nearestListItem = null;
24995
+ listItems.forEach((listItem) => {
24996
+ if (!isNullOrUndefined(listItem.firstChild) && (listItem.firstChild.nodeName === 'OL' || listItem.firstChild.nodeName === 'UL')) {
24997
+ listItem.style.listStyleType = 'none';
24998
+ }
24999
+ const parentElement = listItem.parentElement;
25000
+ if (!isNullOrUndefined(parentElement) && parentElement.nodeName !== 'OL' && parentElement.nodeName !== 'UL') {
25001
+ if (isNullOrUndefined(nearestListItem)) {
25002
+ nearestListItem = parentElement.closest('li');
25003
+ }
25004
+ if (!isNullOrUndefined(nearestListItem)) {
25005
+ const nextSibling = listItem.nextSibling;
25006
+ if (!isNullOrUndefined(nextSibling) && nextSibling.nodeName !== 'LI') {
25007
+ const startIndex = Array.prototype.indexOf.call(parentElement.childNodes, nextSibling);
25008
+ const clonedParent = parentElement.cloneNode(false);
25009
+ const totalChildren = parentElement.childNodes.length;
25010
+ for (let i = startIndex; i < totalChildren; i++) {
25011
+ clonedParent.appendChild(parentElement.childNodes[startIndex]);
25012
+ }
25013
+ if (clonedParent.childNodes.length > 0) {
25014
+ const newListItem = document.createElement('li');
25015
+ newListItem.appendChild(clonedParent);
25016
+ nearestListItem.insertAdjacentElement('afterend', newListItem);
25017
+ }
25018
+ else {
25019
+ clonedParent.remove();
25020
+ }
24893
25021
  }
24894
- });
25022
+ const closestList = parentElement.closest('ol, ul');
25023
+ nearestListItem.insertAdjacentElement('afterend', listItem);
25024
+ nearestListItem = nearestListItem.nextSibling;
25025
+ this.removeEmptyElements(closestList);
25026
+ hasListCleanUp = true;
25027
+ }
24895
25028
  }
25029
+ const nestedLi = Array.from(listItem.children).find((child) => child.tagName === 'LI' && (child.parentElement && child.parentElement.tagName !== 'OL' && child.parentElement.tagName !== 'UL'));
25030
+ if (nestedLi && listItem.parentNode) {
25031
+ listItem.parentNode.replaceChild(nestedLi, listItem);
25032
+ hasListCleanUp = true;
25033
+ }
25034
+ });
25035
+ return hasListCleanUp;
25036
+ }
25037
+ static cleanUpListContainer(parentList) {
25038
+ let hasListContainerCleanUp = false;
25039
+ let nonLiElementCollection = [];
25040
+ const replacements = [];
25041
+ if (!isNullOrUndefined(parentList)) {
25042
+ parentList.childNodes.forEach((childNode) => {
25043
+ if (childNode.nodeName.toLocaleUpperCase() !== 'LI') {
25044
+ nonLiElementCollection.push(childNode);
25045
+ }
25046
+ if ((childNode.nodeName.toLocaleUpperCase() === 'LI' || parentList.lastChild === childNode) && nonLiElementCollection.length > 0) {
25047
+ replacements.push({ elements: [...nonLiElementCollection] });
25048
+ nonLiElementCollection = [];
25049
+ }
25050
+ });
25051
+ replacements.forEach(({ elements }) => {
25052
+ const newListItem = document.createElement('li');
25053
+ elements[0].parentNode.replaceChild(newListItem, elements[0]);
25054
+ elements.forEach((child) => newListItem.appendChild(child));
25055
+ if (newListItem.textContent && newListItem.textContent.trim() === '') {
25056
+ parentList.removeChild(newListItem);
25057
+ }
25058
+ hasListContainerCleanUp = true;
25059
+ });
24896
25060
  }
25061
+ return hasListContainerCleanUp;
24897
25062
  }
24898
25063
  static placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode) {
24899
25064
  lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNullOrUndefined(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode
@@ -25107,7 +25272,8 @@ class InsertHtml {
25107
25272
  while (el && el.nodeType === 1) {
25108
25273
  if (el.parentNode === editNode ||
25109
25274
  (!isNullOrUndefined(el.parentNode.tagName) &&
25110
- IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1)) {
25275
+ (IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1
25276
+ || ALLOWED_TABLE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1))) {
25111
25277
  return el;
25112
25278
  }
25113
25279
  el = el.parentNode;
@@ -25884,8 +26050,14 @@ class ImageCommand {
25884
26050
  (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);
25885
26051
  const onImageLoadEvent = () => {
25886
26052
  if (!isNullOrUndefined(this.parent.currentDocument)) {
25887
- imgElm.setAttribute('width', this.calculateStyleValue(imgElm.offsetWidth));
25888
- imgElm.setAttribute('height', this.calculateStyleValue(imgElm.offsetHeight));
26053
+ const imgWidth = imgElm.getAttribute('width');
26054
+ const imgHeight = imgElm.getAttribute('height');
26055
+ if (isNullOrUndefined(imgWidth) || imgWidth === 'auto') {
26056
+ imgElm.setAttribute('width', imgElm.offsetWidth.toString());
26057
+ }
26058
+ if (isNullOrUndefined(imgHeight) || imgHeight === 'auto') {
26059
+ imgElm.setAttribute('height', imgElm.offsetHeight.toString());
26060
+ }
25889
26061
  e.callBack({
25890
26062
  requestType: (e.value === 'Replace') ? (e.item.subCommand = 'Replace', 'Replace') : 'Images',
25891
26063
  editorMode: 'HTML',
@@ -29478,6 +29650,9 @@ class MsWordPaste {
29478
29650
  e.callBack(elm.innerHTML, this.cropImageDimensions, source);
29479
29651
  }
29480
29652
  else {
29653
+ if (source === PASTE_SOURCE[2]) {
29654
+ this.handleOneNoteContent(elm);
29655
+ }
29481
29656
  e.callBack(elm.innerHTML, null, source);
29482
29657
  }
29483
29658
  }
@@ -30472,6 +30647,18 @@ class MsWordPaste {
30472
30647
  }
30473
30648
  return 'html';
30474
30649
  }
30650
+ handleOneNoteContent(element) {
30651
+ const allListElements = element.querySelectorAll('ul, ol');
30652
+ if (allListElements.length > 0) {
30653
+ for (let i = 0; i < allListElements.length; i++) {
30654
+ // Removing the ul and ol parent node for the p tag
30655
+ const currentList = allListElements[i];
30656
+ if (currentList.querySelectorAll('li').length === 0 && currentList.childNodes.length > 0) {
30657
+ InsertMethods.unwrap(currentList);
30658
+ }
30659
+ }
30660
+ }
30661
+ }
30475
30662
  destroy() {
30476
30663
  this.removeEventListener();
30477
30664
  }
@@ -31953,7 +32140,11 @@ class HtmlEditor {
31953
32140
  isTableClassAdded() {
31954
32141
  const tableElement = this.parent.inputElement.querySelectorAll('table');
31955
32142
  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')) {
32143
+ // e-rte-table class is added to the table element for styling.
32144
+ // 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.
32145
+ // e-rte-custom-table class is added for custom table element will not have any styles.
32146
+ if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')
32147
+ && !tableElement[i].classList.contains('e-rte-custom-table')) {
31957
32148
  tableElement[i].classList.add('e-rte-table');
31958
32149
  }
31959
32150
  }
@@ -32232,7 +32423,10 @@ class HtmlEditor {
32232
32423
  const editorValue = currentRange.startContainer.textContent.slice(0, currentRange.startOffset);
32233
32424
  const orderedList = this.isOrderedList(editorValue);
32234
32425
  const unOrderedList = this.isUnOrderedList(editorValue);
32235
- const hasSplitedText = this.hasMultipleTextNode(currentRange);
32426
+ let hasSplitedText = false;
32427
+ if (orderedList || unOrderedList) {
32428
+ hasSplitedText = this.hasMultipleTextNode(currentRange);
32429
+ }
32236
32430
  if (!hasSplitedText && (orderedList && !unOrderedList || unOrderedList && !orderedList)) {
32237
32431
  const eventArgs = {
32238
32432
  callBack: null,
@@ -32302,6 +32496,11 @@ class HtmlEditor {
32302
32496
  hasMultipleTextNode(range) {
32303
32497
  if (range && range.startContainer && range.startContainer.parentNode) {
32304
32498
  const parentNode = range.startContainer.parentNode;
32499
+ if (range.startContainer.previousElementSibling &&
32500
+ range.startContainer.previousElementSibling.classList.contains('e-mention-chip')
32501
+ && !range.startContainer.previousElementSibling.isContentEditable) {
32502
+ return true;
32503
+ }
32305
32504
  if (this.parent.enterKey === 'BR' || closest(parentNode, 'table')) {
32306
32505
  return false;
32307
32506
  }
@@ -32466,12 +32665,16 @@ class HtmlEditor {
32466
32665
  }
32467
32666
  const brNode = this.deleteRangeElement.querySelector('BR');
32468
32667
  const brLastChildNode = this.deleteRangeElement.lastChild;
32668
+ const brParentNode = brLastChildNode.parentNode;
32469
32669
  if (brNode && brNode.classList.contains('e-rte-image-remove-focus')) {
32470
32670
  removeClass([brNode], ['e-rte-image-focus']);
32471
32671
  return;
32472
32672
  }
32473
32673
  else if (brNode && brLastChildNode && brLastChildNode.nodeName === 'BR') {
32474
32674
  detach(brLastChildNode);
32675
+ if (!isNullOrUndefined(brParentNode) && brParentNode.childNodes.length === 0) {
32676
+ detach(brParentNode);
32677
+ }
32475
32678
  e.args.preventDefault();
32476
32679
  }
32477
32680
  if (!isNullOrUndefined(this.deleteRangeElement) && (this.deleteOldRangeElement.tagName !== 'OL' && this.deleteOldRangeElement.tagName !== 'UL')
@@ -33142,38 +33345,62 @@ class PasteCleanup {
33142
33345
  }
33143
33346
  }
33144
33347
  splitBreakLine(value) {
33145
- const enterSplitText = value.split('\n');
33146
- let contentInnerElem = '';
33348
+ const enterSplitText = value.split('\r\n\r\n');
33349
+ let finalText = '';
33147
33350
  const startNode = this.parent.enterKey === 'P' ? '<p>' : (this.parent.enterKey === 'DIV' ? '<div>' : '');
33148
33351
  const endNode = this.parent.enterKey === 'P' ? '</p>' : (this.parent.enterKey === 'DIV' ? '</div>' : '<br>');
33149
33352
  for (let i = 0; i < enterSplitText.length; i++) {
33150
- if (enterSplitText[i].trim() === '') {
33151
- contentInnerElem += getDefaultValue(this.parent);
33353
+ const content = enterSplitText[i];
33354
+ const contentWithSpace = this.makeSpace(content);
33355
+ const contentWithLineBreak = contentWithSpace.replace(/\r\n|\n/g, '<br>');
33356
+ if (i === 0) {
33357
+ if (this.parent.enterKey === 'BR') {
33358
+ finalText += (contentWithLineBreak + endNode);
33359
+ }
33360
+ else {
33361
+ finalText += contentWithLineBreak; // In order to merge the content in current line. No P/Div tag is added.
33362
+ }
33152
33363
  }
33153
33364
  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));
33365
+ if (this.parent.enterKey === 'BR') {
33366
+ if (i === enterSplitText.length - 1) {
33367
+ finalText += (contentWithLineBreak + endNode);
33368
+ }
33369
+ else {
33370
+ finalText += (contentWithLineBreak + endNode + endNode);
33371
+ }
33372
+ }
33373
+ else {
33374
+ finalText += startNode + contentWithLineBreak + endNode;
33375
+ }
33158
33376
  }
33159
33377
  }
33160
- return contentInnerElem;
33378
+ return finalText;
33161
33379
  }
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;' : ' ';
33380
+ makeSpace(text) {
33381
+ let spacedContent = '';
33382
+ if (text === '') {
33383
+ return text;
33384
+ }
33385
+ const lineBreakSplitText = text.split(' ');
33386
+ for (let i = 0; i < lineBreakSplitText.length; i++) {
33387
+ const currentText = lineBreakSplitText[i];
33388
+ if (currentText === '') {
33389
+ spacedContent += '&nbsp;';
33390
+ }
33391
+ else if (currentText === '\t') {
33392
+ spacedContent += '&nbsp;&nbsp;&nbsp;&nbsp;';
33170
33393
  }
33171
33394
  else {
33172
- spaceBetweenContent = false;
33173
- contentWithSpace += spaceSplit[j] + ' ';
33395
+ if (i > 0 && i < lineBreakSplitText.length) {
33396
+ spacedContent += ' ';
33397
+ }
33398
+ spacedContent += currentText;
33174
33399
  }
33175
33400
  }
33176
- return contentWithSpace;
33401
+ spacedContent = spacedContent.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
33402
+ spacedContent = spacedContent.replace(/&nbsp;&nbsp;/g, '&nbsp; ');
33403
+ return spacedContent;
33177
33404
  }
33178
33405
  imgUploading(elm) {
33179
33406
  const allImgElm = elm.querySelectorAll('.pasteContent_Img');
@@ -33747,6 +33974,9 @@ class PasteCleanup {
33747
33974
  const tableElement = element.querySelectorAll('table');
33748
33975
  for (let i = 0; i < tableElement.length; i++) {
33749
33976
  const isMSTeamsTable = tableElement[i].parentElement.nodeName === 'FIGURE';
33977
+ if (tableElement[i].classList.length > 0 && tableElement[i].classList.contains('e-rte-custom-table')) {
33978
+ continue; // Skip the custom table class
33979
+ }
33750
33980
  if (this.parent.pasteCleanupSettings.keepFormat && source && !isMSTeamsTable) {
33751
33981
  tableElement[i].classList.add('e-rte-paste-' + source + '-table');
33752
33982
  }
@@ -34200,6 +34430,10 @@ class Resize {
34200
34430
  this.parent.element.style.height = eventType.clientY - boundRect.top + 'px';
34201
34431
  this.parent.element.style.width = (!this.parent.enableRtl) ? eventType.clientX - boundRect.left + 'px' : boundRect.right - eventType.clientX + 'px';
34202
34432
  }
34433
+ const rteContent = this.parent.element.querySelector('#' + this.parent.getID() + '_source-view');
34434
+ if (!isNullOrUndefined(rteContent)) {
34435
+ rteContent.style.height = this.parent.element.style.height;
34436
+ }
34203
34437
  this.parent.refreshUI();
34204
34438
  }
34205
34439
  stopResize(e) {
@@ -36148,12 +36382,12 @@ class RendererFactory {
36148
36382
  }
36149
36383
  }
36150
36384
 
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
- };
36385
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36386
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36387
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36388
+ 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;
36389
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
36390
+ };
36157
36391
  /**
36158
36392
  * Configures the toolbar settings of the RichTextEditor.
36159
36393
  */
@@ -36579,12 +36813,12 @@ __decorate$2([
36579
36813
  Property(bulletFormatList)
36580
36814
  ], BulletFormatList.prototype, "types", void 0);
36581
36815
 
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
- };
36816
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36817
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36818
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36819
+ 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;
36820
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
36821
+ };
36588
36822
  /**
36589
36823
  * Objects used for configuring the iframe resources properties.
36590
36824
  */
@@ -36617,12 +36851,12 @@ __decorate$3([
36617
36851
  Property(null)
36618
36852
  ], IFrameSettings.prototype, "sandbox", void 0);
36619
36853
 
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
- };
36854
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
36855
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
36856
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
36857
+ 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;
36858
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
36859
+ };
36626
36860
  /**
36627
36861
  * Configures the inlineMode property of the RTE.
36628
36862
  */
@@ -36806,13 +37040,21 @@ class EnterKeyAction {
36806
37040
  }
36807
37041
  let isMediaNode = false; // To check the image audio and video node cases
36808
37042
  let isFocusedFirst = false;
37043
+ const parentElement = this.range.startContainer.parentElement;
37044
+ const isPreWrapApplied = parentElement ? this.parent.contentModule.getDocument().defaultView.getComputedStyle(this.range.startContainer.parentElement, null).getPropertyValue('white-space') === 'pre-wrap' : false;
36809
37045
  if (this.range.startOffset !== 0 && this.range.endOffset !== 0 &&
36810
37046
  this.range.startContainer === this.range.endContainer && !(!isNullOrUndefined(nearBlockNode.childNodes[0])
36811
37047
  && (nearBlockNode.childNodes[0].nodeName === 'IMG' || nearBlockNode.querySelectorAll('img, audio, video').length > 0))) {
36812
37048
  const startNodeText = this.range.startContainer.textContent;
36813
37049
  const splitFirstText = startNodeText.substring(0, this.range.startOffset);
36814
- // eslint-disable-next-line max-len
36815
- if (splitFirstText.charCodeAt(this.range.startOffset - 1) !== 160 && splitFirstText.trim().length === 0) {
37050
+ const lastCharBeforeCursor = splitFirstText.charCodeAt(this.range.startOffset - 1);
37051
+ const isSplitTextEmpty = splitFirstText.trim().length === 0;
37052
+ const hasContentAfterCursor = startNodeText.slice(this.range.startOffset).trim().length !== 0;
37053
+ const isCursorAtStartNonPreWrap = lastCharBeforeCursor !== 160
37054
+ && isSplitTextEmpty && !isPreWrapApplied;
37055
+ const isCursorAtStartPreWrapWithContent = lastCharBeforeCursor === 32
37056
+ && isPreWrapApplied && isSplitTextEmpty && hasContentAfterCursor;
37057
+ if (isCursorAtStartNonPreWrap || isCursorAtStartPreWrapWithContent) {
36816
37058
  isFocusedFirst = true;
36817
37059
  }
36818
37060
  }
@@ -37310,12 +37552,12 @@ class EnterKeyAction {
37310
37552
  }
37311
37553
  }
37312
37554
 
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
- };
37555
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37556
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37557
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37558
+ 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;
37559
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
37560
+ };
37319
37561
  /**
37320
37562
  * Represents the Rich Text Editor component.
37321
37563
  * ```html
@@ -38035,7 +38277,7 @@ let RichTextEditor = class RichTextEditor extends Component {
38035
38277
  }
38036
38278
  const notFormatPainterCopy = isNullOrUndefined(e.action) ? true : (e.action !== 'format-copy' ? true : false);
38037
38279
  if (this.formatter.getUndoRedoStack().length === 0 && notFormatPainterCopy &&
38038
- !(e.altKey || e.shiftKey || (e.altKey && e.shiftKey && e.which === 67))) {
38280
+ !(e.altKey || (e.shiftKey && e.which === 16) || (e.altKey && e.shiftKey && e.which === 67))) {
38039
38281
  this.formatter.saveData();
38040
38282
  }
38041
38283
  let preventingMention = false;
@@ -39085,7 +39327,10 @@ let RichTextEditor = class RichTextEditor extends Component {
39085
39327
  const item = compiledTemplate[i];
39086
39328
  append([item], appendElem);
39087
39329
  }
39088
- this.setProperties({ value: appendElem.innerHTML.trim() });
39330
+ const content = appendElem.innerHTML.trim();
39331
+ if (content.length > 0) {
39332
+ this.setProperties({ value: content });
39333
+ }
39089
39334
  this.renderReactTemplates();
39090
39335
  }
39091
39336
  }
@@ -40227,5 +40472,5 @@ RichTextEditor = __decorate$5([
40227
40472
  NotifyPropertyChanges
40228
40473
  ], RichTextEditor);
40229
40474
 
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 };
40475
+ 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, 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
40476
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map