@syncfusion/ej2-richtexteditor 23.2.5 → 23.2.7-52849

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 (221) hide show
  1. package/.github/PULL_REQUEST_TEMPLATE/Bug.md +40 -40
  2. package/.github/PULL_REQUEST_TEMPLATE/Feature.md +27 -27
  3. package/CHANGELOG.md +1751 -1713
  4. package/README.md +76 -76
  5. package/dist/ej2-richtexteditor.umd.min.js +1 -10
  6. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es2015.js +349 -199
  8. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  9. package/dist/es6/ej2-richtexteditor.es5.js +459 -309
  10. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  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 +74 -74
  15. package/src/common/interface.d.ts +7 -7
  16. package/src/editor-manager/base/classes.d.ts +1 -1
  17. package/src/editor-manager/base/classes.js +1 -1
  18. package/src/editor-manager/base/editor-manager.d.ts +3 -3
  19. package/src/editor-manager/base/editor-manager.js +3 -3
  20. package/src/editor-manager/base/enum.d.ts +2 -2
  21. package/src/editor-manager/base/interface.d.ts +10 -9
  22. package/src/editor-manager/base/types.d.ts +1 -1
  23. package/src/editor-manager/plugin/alignments.d.ts +2 -2
  24. package/src/editor-manager/plugin/alignments.js +2 -2
  25. package/src/editor-manager/plugin/audio.d.ts +3 -3
  26. package/src/editor-manager/plugin/audio.js +3 -3
  27. package/src/editor-manager/plugin/clearformat-exec.d.ts +2 -2
  28. package/src/editor-manager/plugin/clearformat-exec.js +2 -2
  29. package/src/editor-manager/plugin/clearformat.d.ts +1 -1
  30. package/src/editor-manager/plugin/clearformat.js +1 -1
  31. package/src/editor-manager/plugin/dom-node.d.ts +34 -34
  32. package/src/editor-manager/plugin/dom-node.js +34 -34
  33. package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -1
  34. package/src/editor-manager/plugin/format-painter-actions.js +1 -1
  35. package/src/editor-manager/plugin/formats.d.ts +2 -2
  36. package/src/editor-manager/plugin/formats.js +2 -2
  37. package/src/editor-manager/plugin/image.d.ts +3 -3
  38. package/src/editor-manager/plugin/image.js +3 -3
  39. package/src/editor-manager/plugin/indents.d.ts +2 -2
  40. package/src/editor-manager/plugin/indents.js +2 -2
  41. package/src/editor-manager/plugin/insert-methods.d.ts +4 -4
  42. package/src/editor-manager/plugin/insert-methods.js +4 -4
  43. package/src/editor-manager/plugin/insert-text.d.ts +2 -2
  44. package/src/editor-manager/plugin/insert-text.js +2 -2
  45. package/src/editor-manager/plugin/inserthtml-exec.d.ts +2 -2
  46. package/src/editor-manager/plugin/inserthtml-exec.js +2 -2
  47. package/src/editor-manager/plugin/inserthtml.d.ts +2 -2
  48. package/src/editor-manager/plugin/inserthtml.js +5 -3
  49. package/src/editor-manager/plugin/isformatted.d.ts +8 -8
  50. package/src/editor-manager/plugin/isformatted.js +8 -8
  51. package/src/editor-manager/plugin/link.d.ts +2 -2
  52. package/src/editor-manager/plugin/link.js +4 -2
  53. package/src/editor-manager/plugin/lists.d.ts +2 -2
  54. package/src/editor-manager/plugin/lists.js +2 -2
  55. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +1 -1
  56. package/src/editor-manager/plugin/ms-word-clean-up.js +7 -3
  57. package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
  58. package/src/editor-manager/plugin/nodecutter.js +6 -6
  59. package/src/editor-manager/plugin/selection-commands.d.ts +1 -1
  60. package/src/editor-manager/plugin/selection-commands.js +1 -1
  61. package/src/editor-manager/plugin/selection-exec.d.ts +2 -2
  62. package/src/editor-manager/plugin/selection-exec.js +2 -2
  63. package/src/editor-manager/plugin/table.d.ts +2 -2
  64. package/src/editor-manager/plugin/table.js +2 -2
  65. package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
  66. package/src/editor-manager/plugin/toolbar-status.js +2 -2
  67. package/src/editor-manager/plugin/undo.d.ts +6 -6
  68. package/src/editor-manager/plugin/undo.js +6 -6
  69. package/src/editor-manager/plugin/video.d.ts +3 -3
  70. package/src/editor-manager/plugin/video.js +3 -3
  71. package/src/global.d.ts +1 -0
  72. package/src/markdown-parser/base/interface.d.ts +10 -10
  73. package/src/markdown-parser/base/markdown-parser.d.ts +3 -3
  74. package/src/markdown-parser/base/markdown-parser.js +3 -3
  75. package/src/markdown-parser/base/types.d.ts +1 -1
  76. package/src/markdown-parser/plugin/clearformat.d.ts +2 -2
  77. package/src/markdown-parser/plugin/clearformat.js +2 -2
  78. package/src/markdown-parser/plugin/formats.d.ts +2 -2
  79. package/src/markdown-parser/plugin/formats.js +2 -2
  80. package/src/markdown-parser/plugin/insert-text.d.ts +2 -2
  81. package/src/markdown-parser/plugin/insert-text.js +2 -2
  82. package/src/markdown-parser/plugin/link.d.ts +2 -2
  83. package/src/markdown-parser/plugin/link.js +2 -2
  84. package/src/markdown-parser/plugin/markdown-selection.d.ts +14 -14
  85. package/src/markdown-parser/plugin/markdown-selection.js +14 -14
  86. package/src/markdown-parser/plugin/md-selection-formats.d.ts +1 -1
  87. package/src/markdown-parser/plugin/md-selection-formats.js +1 -1
  88. package/src/markdown-parser/plugin/table.d.ts +3 -3
  89. package/src/markdown-parser/plugin/table.js +3 -3
  90. package/src/markdown-parser/plugin/undo.d.ts +6 -6
  91. package/src/markdown-parser/plugin/undo.js +6 -6
  92. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +9 -9
  93. package/src/rich-text-editor/actions/base-quick-toolbar.js +9 -9
  94. package/src/rich-text-editor/actions/base-toolbar.d.ts +3 -3
  95. package/src/rich-text-editor/actions/base-toolbar.js +3 -3
  96. package/src/rich-text-editor/actions/color-picker.d.ts +2 -2
  97. package/src/rich-text-editor/actions/color-picker.js +2 -2
  98. package/src/rich-text-editor/actions/count.d.ts +3 -3
  99. package/src/rich-text-editor/actions/count.js +3 -3
  100. package/src/rich-text-editor/actions/dropdown-buttons.d.ts +2 -2
  101. package/src/rich-text-editor/actions/dropdown-buttons.js +2 -2
  102. package/src/rich-text-editor/actions/emoji-picker.d.ts +1 -1
  103. package/src/rich-text-editor/actions/emoji-picker.js +1 -1
  104. package/src/rich-text-editor/actions/enter-key.js +1 -1
  105. package/src/rich-text-editor/actions/full-screen.d.ts +3 -3
  106. package/src/rich-text-editor/actions/full-screen.js +3 -3
  107. package/src/rich-text-editor/actions/html-editor.d.ts +3 -3
  108. package/src/rich-text-editor/actions/html-editor.js +13 -5
  109. package/src/rich-text-editor/actions/keyboard-model.d.ts +16 -16
  110. package/src/rich-text-editor/actions/keyboard.d.ts +1 -1
  111. package/src/rich-text-editor/actions/keyboard.js +20 -20
  112. package/src/rich-text-editor/actions/markdown-editor.d.ts +2 -2
  113. package/src/rich-text-editor/actions/markdown-editor.js +2 -2
  114. package/src/rich-text-editor/actions/paste-clean-up.d.ts +1 -1
  115. package/src/rich-text-editor/actions/paste-clean-up.js +6 -4
  116. package/src/rich-text-editor/actions/quick-toolbar.d.ts +9 -9
  117. package/src/rich-text-editor/actions/quick-toolbar.js +13 -10
  118. package/src/rich-text-editor/actions/toolbar.d.ts +13 -14
  119. package/src/rich-text-editor/actions/toolbar.js +13 -21
  120. package/src/rich-text-editor/actions/xhtml-validation.d.ts +1 -1
  121. package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
  122. package/src/rich-text-editor/base/classes.d.ts +125 -120
  123. package/src/rich-text-editor/base/classes.js +125 -120
  124. package/src/rich-text-editor/base/constant.d.ts +149 -149
  125. package/src/rich-text-editor/base/constant.js +149 -149
  126. package/src/rich-text-editor/base/enum.d.ts +1 -1
  127. package/src/rich-text-editor/base/enum.js +1 -1
  128. package/src/rich-text-editor/base/interface.d.ts +50 -49
  129. package/src/rich-text-editor/base/interface.js +1 -1
  130. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +891 -891
  131. package/src/rich-text-editor/base/rich-text-editor.d.ts +72 -60
  132. package/src/rich-text-editor/base/rich-text-editor.js +112 -76
  133. package/src/rich-text-editor/base/util.d.ts +1 -1
  134. package/src/rich-text-editor/base/util.js +1 -1
  135. package/src/rich-text-editor/formatter/formatter.d.ts +8 -8
  136. package/src/rich-text-editor/formatter/formatter.js +8 -8
  137. package/src/rich-text-editor/formatter/html-formatter.d.ts +2 -2
  138. package/src/rich-text-editor/formatter/html-formatter.js +15 -15
  139. package/src/rich-text-editor/formatter/markdown-formatter.d.ts +2 -2
  140. package/src/rich-text-editor/formatter/markdown-formatter.js +15 -15
  141. package/src/rich-text-editor/models/default-locale.js +1 -0
  142. package/src/rich-text-editor/models/iframe-settings-model.d.ts +26 -26
  143. package/src/rich-text-editor/models/iframe-settings.js +19 -19
  144. package/src/rich-text-editor/models/inline-mode-model.d.ts +11 -11
  145. package/src/rich-text-editor/models/inline-mode.js +19 -19
  146. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +760 -760
  147. package/src/rich-text-editor/models/toolbar-settings.js +19 -19
  148. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
  149. package/src/rich-text-editor/renderer/audio-module.js +1 -2
  150. package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
  151. package/src/rich-text-editor/renderer/content-renderer.js +6 -6
  152. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +3 -2
  153. package/src/rich-text-editor/renderer/dialog-renderer.js +13 -2
  154. package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
  155. package/src/rich-text-editor/renderer/iframe-content-renderer.js +17 -17
  156. package/src/rich-text-editor/renderer/image-module.d.ts +1 -1
  157. package/src/rich-text-editor/renderer/image-module.js +19 -12
  158. package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
  159. package/src/rich-text-editor/renderer/link-module.js +3 -2
  160. package/src/rich-text-editor/renderer/markdown-renderer.d.ts +6 -6
  161. package/src/rich-text-editor/renderer/markdown-renderer.js +6 -6
  162. package/src/rich-text-editor/renderer/popup-renderer.d.ts +5 -5
  163. package/src/rich-text-editor/renderer/popup-renderer.js +5 -5
  164. package/src/rich-text-editor/renderer/render.d.ts +2 -2
  165. package/src/rich-text-editor/renderer/render.js +2 -2
  166. package/src/rich-text-editor/renderer/table-module.d.ts +2 -1
  167. package/src/rich-text-editor/renderer/table-module.js +10 -2
  168. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +9 -9
  169. package/src/rich-text-editor/renderer/toolbar-renderer.js +88 -19
  170. package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
  171. package/src/rich-text-editor/renderer/video-module.js +2 -3
  172. package/src/rich-text-editor/renderer/view-source.d.ts +6 -6
  173. package/src/rich-text-editor/renderer/view-source.js +15 -14
  174. package/src/rich-text-editor/services/renderer-factory.d.ts +3 -3
  175. package/src/rich-text-editor/services/renderer-factory.js +3 -3
  176. package/src/rich-text-editor/services/service-locator.d.ts +3 -3
  177. package/src/rich-text-editor/services/service-locator.js +3 -3
  178. package/src/selection/selection.d.ts +22 -22
  179. package/src/selection/selection.js +22 -22
  180. package/styles/_all.scss +1 -1
  181. package/styles/material3-dark.scss +1 -1
  182. package/styles/material3.scss +1 -1
  183. package/styles/rich-text-editor/_all.scss +2 -2
  184. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +277 -277
  185. package/styles/rich-text-editor/_bootstrap-definition.scss +334 -334
  186. package/styles/rich-text-editor/_bootstrap4-definition.scss +460 -460
  187. package/styles/rich-text-editor/_bootstrap5-definition.scss +262 -262
  188. package/styles/rich-text-editor/_fabric-dark-definition.scss +259 -259
  189. package/styles/rich-text-editor/_fabric-definition.scss +257 -257
  190. package/styles/rich-text-editor/_fluent-definition.scss +263 -263
  191. package/styles/rich-text-editor/_fusionnew-definition.scss +261 -261
  192. package/styles/rich-text-editor/_highcontrast-definition.scss +257 -257
  193. package/styles/rich-text-editor/_highcontrast-light-definition.scss +257 -257
  194. package/styles/rich-text-editor/_layout.scss +2072 -2072
  195. package/styles/rich-text-editor/_material-dark-definition.scss +262 -262
  196. package/styles/rich-text-editor/_material-definition.scss +260 -260
  197. package/styles/rich-text-editor/_material3-definition.scss +262 -262
  198. package/styles/rich-text-editor/_tailwind-definition.scss +257 -257
  199. package/styles/rich-text-editor/_theme.scss +837 -837
  200. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +349 -349
  201. package/styles/rich-text-editor/icons/_bootstrap.scss +349 -349
  202. package/styles/rich-text-editor/icons/_bootstrap4.scss +349 -349
  203. package/styles/rich-text-editor/icons/_bootstrap5.scss +348 -348
  204. package/styles/rich-text-editor/icons/_fabric-dark.scss +349 -349
  205. package/styles/rich-text-editor/icons/_fabric.scss +349 -349
  206. package/styles/rich-text-editor/icons/_fluent.scss +348 -348
  207. package/styles/rich-text-editor/icons/_fusionnew.scss +348 -348
  208. package/styles/rich-text-editor/icons/_highcontrast-light.scss +349 -349
  209. package/styles/rich-text-editor/icons/_highcontrast.scss +349 -349
  210. package/styles/rich-text-editor/icons/_material-dark.scss +349 -349
  211. package/styles/rich-text-editor/icons/_material.scss +349 -349
  212. package/styles/rich-text-editor/icons/_material3.scss +348 -348
  213. package/styles/rich-text-editor/icons/_tailwind.scss +348 -348
  214. package/styles/rich-text-editor/material3-dark.scss +1 -1
  215. package/styles/rich-text-editor/material3.scss +1 -1
  216. package/.eslintrc.json +0 -260
  217. package/dist/ej2-richtexteditor.min.js +0 -10
  218. package/dist/global/ej2-richtexteditor.min.js +0 -11
  219. package/dist/global/ej2-richtexteditor.min.js.map +0 -1
  220. package/dist/global/index.d.ts +0 -14
  221. package/tslint.json +0 -111
@@ -748,18 +748,18 @@ const hidePopup = 'hidePopup';
748
748
  * @hidden
749
749
  * @deprecated
750
750
  */
751
- const blockEmptyNodes = `address:empty, article:empty, aside:empty, blockquote:empty,
752
- details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,
753
- h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,
751
+ const blockEmptyNodes = `address:empty, article:empty, aside:empty, blockquote:empty,
752
+ details:empty, dd:empty, div:empty, dl:empty, dt:empty, fieldset:empty, footer:empty,form:empty, h1:empty,
753
+ h2:empty, h3:empty, h4:empty, h5:empty, h6:empty, header:empty, hgroup:empty, li:empty, main:empty, nav:empty,
754
754
  noscript:empty, output:empty, p:empty, pre:empty, section:empty, td:empty, th:empty`;
755
755
  /**
756
756
  * @hidden
757
757
  * @deprecated
758
758
  */
759
- const inlineEmptyNodes = `a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,
760
- canvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,
761
- ins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,
762
- 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,
759
+ const inlineEmptyNodes = `a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,
760
+ canvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,
761
+ ins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,
762
+ 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,
763
763
  template:empty, textarea:empty, time:empty, u:empty, tt:empty, var:empty, wbr:empty`;
764
764
 
765
765
  /**
@@ -1365,6 +1365,11 @@ const CLS_RTE_TB_ENABLED = 'e-rte-toolbar-enabled';
1365
1365
  * @deprecated
1366
1366
  */
1367
1367
  const CLS_RTE_RES_WEST = 'e-south-west';
1368
+ /**
1369
+ * @hidden
1370
+ * @deprecated
1371
+ */
1372
+ const CLS_RTE_SOURCE_CODE_TXTAREA = 'e-rte-srctextarea';
1368
1373
 
1369
1374
  /**
1370
1375
  * Defines types of Render
@@ -2604,6 +2609,7 @@ let defaultLocale = {
2604
2609
  'emojiPickerTypeToFind': 'Type to find',
2605
2610
  'emojiPickerNoResultFound': 'No results found',
2606
2611
  'emojiPickerTrySomethingElse': 'Try something else',
2612
+ 'linkAriaLabel': 'Open in new window',
2607
2613
  };
2608
2614
  let toolsLocale = {
2609
2615
  'alignments': 'alignments',
@@ -3339,7 +3345,7 @@ class ToolbarRenderer {
3339
3345
  }
3340
3346
  destroyTooltip() {
3341
3347
  if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap')) && !isNullOrUndefined(document.querySelector(' [data-tooltip-id]'))) {
3342
- const tooltipTargetEle = document.querySelector('#' + (this.parent.element).id + ' [data-tooltip-id]');
3348
+ const tooltipTargetEle = this.parent.element.querySelector('[data-tooltip-id]');
3343
3349
  const event = new MouseEvent('mouseleave', { bubbles: true, cancelable: true });
3344
3350
  tooltipTargetEle.dispatchEvent(event);
3345
3351
  }
@@ -3499,17 +3505,86 @@ class ToolbarRenderer {
3499
3505
  return;
3500
3506
  }
3501
3507
  // eslint-disable-next-line
3502
- for (let index = 0; index < args.element.childNodes.length; index++) {
3503
- const divNode = this.parent.createElement('div');
3504
- divNode.innerHTML = dropDown.content.trim();
3505
- if (divNode.textContent.trim() !== ''
3506
- && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
3507
- if (!args.element.childNodes[index].classList.contains('e-active')) {
3508
- addClass([args.element.childNodes[index]], 'e-active');
3508
+ // Table styles dropdown preselect
3509
+ if (proxy.parent.editorMode !== 'Markdown') {
3510
+ const startNode = proxy.parent.getRange().startContainer.parentElement;
3511
+ const tableEle = startNode.closest('table');
3512
+ const trow = startNode.closest('tr');
3513
+ if (!isNullOrUndefined(tableEle) && tableEle.classList.contains('e-dashed-border')) {
3514
+ for (let index = 0; index < args.element.childNodes.length; index++) {
3515
+ if (args.element.childNodes[index].classList.contains('e-dashed-borders')) {
3516
+ addClass([args.element.childNodes[index]], 'e-active');
3517
+ }
3509
3518
  }
3510
3519
  }
3511
- else {
3512
- removeClass([args.element.childNodes[index]], 'e-active');
3520
+ else if (!isNullOrUndefined(tableEle) && !tableEle.classList.contains('e-dashed-border') && tableEle.classList.contains('e-alternate-rows') && window.getComputedStyle(trow).backgroundColor !== '') {
3521
+ for (let index = 0; index < args.element.childNodes.length; index++) {
3522
+ if (args.element.childNodes[index].classList.contains('e-alternate-rows')) {
3523
+ addClass([args.element.childNodes[index]], 'e-active');
3524
+ }
3525
+ }
3526
+ }
3527
+ //Alignments preselect
3528
+ let alignEle = proxy.parent.getRange().startContainer;
3529
+ while (alignEle !== proxy.parent.element.querySelector('.e-content') && !isNullOrUndefined(alignEle.parentElement)) {
3530
+ if (alignEle.nodeName === '#text') {
3531
+ alignEle = alignEle.parentElement;
3532
+ }
3533
+ const alignStyle = window.getComputedStyle(alignEle).textAlign;
3534
+ if (args.items[0].command === 'Alignments') {
3535
+ if ((args.items[0].text === 'Align Left' && (alignStyle === 'left') || alignStyle === 'start')) {
3536
+ addClass([args.element.childNodes[0]], 'e-active');
3537
+ break;
3538
+ }
3539
+ else if (args.items[1].text === 'Align Center' && alignStyle === 'center') {
3540
+ addClass([args.element.childNodes[1]], 'e-active');
3541
+ break;
3542
+ }
3543
+ else if (args.items[2].text === 'Align Right' && alignStyle === 'right') {
3544
+ addClass([args.element.childNodes[2]], 'e-active');
3545
+ break;
3546
+ }
3547
+ else if (args.items[3].text === 'Align Justify' && alignStyle === 'justify') {
3548
+ addClass([args.element.childNodes[3]], 'e-active');
3549
+ break;
3550
+ }
3551
+ }
3552
+ alignEle = alignEle.parentElement;
3553
+ }
3554
+ //image preselect
3555
+ const imageEle = startNode.closest('img') ? startNode.closest('img') : startNode.querySelector('img');
3556
+ if (args.items[0].command === 'Images') {
3557
+ if (!isNullOrUndefined(imageEle)) {
3558
+ let index;
3559
+ if (imageEle.classList.contains('e-imgleft') || imageEle.classList.contains('e-imginline')) {
3560
+ index = 0;
3561
+ }
3562
+ else if (imageEle.classList.contains('e-imgcenter') || imageEle.classList.contains('e-imgbreak')) {
3563
+ index = 1;
3564
+ }
3565
+ else if (imageEle.classList.contains('e-imgright')) {
3566
+ index = 2;
3567
+ }
3568
+ if (!isNullOrUndefined(args.element.childNodes[index])) {
3569
+ addClass([args.element.childNodes[index]], 'e-active');
3570
+ }
3571
+ }
3572
+ }
3573
+ //Formats preselect
3574
+ if (args.items[0].command === 'Formats') {
3575
+ for (let index = 0; index < args.element.childNodes.length; index++) {
3576
+ const divNode = this.parent.createElement('div');
3577
+ divNode.innerHTML = dropDown.content.trim();
3578
+ if (divNode.textContent.trim() !== ''
3579
+ && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
3580
+ if (!args.element.childNodes[index].classList.contains('e-active')) {
3581
+ addClass([args.element.childNodes[index]], 'e-active');
3582
+ }
3583
+ }
3584
+ else {
3585
+ removeClass([args.element.childNodes[index]], 'e-active');
3586
+ }
3587
+ }
3513
3588
  }
3514
3589
  }
3515
3590
  proxy.parent.notify(beforeDropDownOpen, args);
@@ -5347,12 +5422,6 @@ class Toolbar$2 {
5347
5422
  }
5348
5423
  }
5349
5424
  }
5350
- tbKeydownHandler(e) {
5351
- if (e.target.classList.contains('e-dropdown-btn') ||
5352
- e.target.getAttribute('id') === this.parent.getID() + '_toolbar_CreateTable') {
5353
- e.target.setAttribute('tabindex', '0');
5354
- }
5355
- }
5356
5425
  toolbarClickHandler(e) {
5357
5426
  const trg = closest(e.originalEvent.target, '.e-hor-nav');
5358
5427
  if (trg && this.parent.toolbarSettings.type === ToolbarType.Expand && !isNullOrUndefined(trg)) {
@@ -5382,11 +5451,9 @@ class Toolbar$2 {
5382
5451
  return;
5383
5452
  }
5384
5453
  EventHandler.add(this.tbElement, 'focusin', this.tbFocusHandler, this);
5385
- EventHandler.add(this.tbElement, 'keydown', this.tbKeydownHandler, this);
5386
5454
  }
5387
5455
  unWireEvents() {
5388
5456
  EventHandler.remove(this.tbElement, 'focusin', this.tbFocusHandler);
5389
- EventHandler.remove(this.tbElement, 'keydown', this.tbKeydownHandler);
5390
5457
  }
5391
5458
  addEventListener() {
5392
5459
  if (this.parent.isDestroyed) {
@@ -5510,12 +5577,12 @@ class Toolbar$2 {
5510
5577
  }
5511
5578
  }
5512
5579
 
5513
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5514
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5515
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5516
- 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;
5517
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5518
- };
5580
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5581
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5582
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5583
+ 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;
5584
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
5585
+ };
5519
5586
  var KeyboardEvents_1;
5520
5587
  const keyCode = {
5521
5588
  'backspace': 8,
@@ -6599,7 +6666,7 @@ class QuickToolbar {
6599
6666
  * @deprecated
6600
6667
  */
6601
6668
  showInlineQTBar(x, y, target) {
6602
- if (this.parent.readonly || target.tagName.toLowerCase() === 'img') {
6669
+ if (isNullOrUndefined(this.parent) || this.parent.readonly || target.tagName.toLowerCase() === 'img') {
6603
6670
  return;
6604
6671
  }
6605
6672
  this.inlineQTBar.showPopup(x, y, target);
@@ -6967,6 +7034,9 @@ class QuickToolbar {
6967
7034
  this.parent.off(rtlMode, this.setRtl);
6968
7035
  this.parent.off(bindCssClass, this.setCssClass);
6969
7036
  this.parent.off(hidePopup, this.hideQuickToolbars);
7037
+ if (this.deBouncer) {
7038
+ clearTimeout(this.deBouncer);
7039
+ }
6970
7040
  }
6971
7041
  /**
6972
7042
  * Called internally if any of the property value changed.
@@ -13585,7 +13655,9 @@ class InsertHtml {
13585
13655
  static findDetachEmptyElem(element) {
13586
13656
  let removableElement;
13587
13657
  if (!isNullOrUndefined(element.parentElement)) {
13588
- if (element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true' &&
13658
+ const hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
13659
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
13660
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true' &&
13589
13661
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
13590
13662
  removableElement = this.findDetachEmptyElem(element.parentElement);
13591
13663
  }
@@ -13699,9 +13771,11 @@ class LinkCommand {
13699
13771
  }
13700
13772
  if (!isNullOrUndefined(e.item.target)) {
13701
13773
  anchorEle.setAttribute('target', e.item.target);
13774
+ anchorEle.setAttribute('aria-label', e.item.ariaLabel);
13702
13775
  }
13703
13776
  else {
13704
13777
  anchorEle.removeAttribute('target');
13778
+ anchorEle.removeAttribute('aria-label');
13705
13779
  }
13706
13780
  if (linkText === e.item.text) {
13707
13781
  e.item.selection.setSelectionText(this.parent.currentDocument, anchorEle, anchorEle, 1, 1);
@@ -17810,7 +17884,9 @@ class MsWordPaste {
17810
17884
  isNullOrUndefined(allElements[i].nextElementSibling)))) {
17811
17885
  const detachableElement = this.findDetachElem(allElements[i]);
17812
17886
  const brElement = createElement('br');
17813
- if (!isNullOrUndefined(detachableElement.parentElement)) {
17887
+ const hasNbsp = detachableElement.textContent.length > 0 && detachableElement.textContent.match(/\u00a0/g)
17888
+ && detachableElement.textContent.match(/\u00a0/g).length > 0;
17889
+ if (!hasNbsp && !isNullOrUndefined(detachableElement.parentElement)) {
17814
17890
  detachableElement.parentElement.insertBefore(brElement, detachableElement);
17815
17891
  detach(detachableElement);
17816
17892
  }
@@ -17849,7 +17925,9 @@ class MsWordPaste {
17849
17925
  findDetachEmptyElem(element) {
17850
17926
  let removableElement;
17851
17927
  if (!isNullOrUndefined(element.parentElement)) {
17852
- if (element.parentElement.textContent.trim() === '' &&
17928
+ const hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
17929
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
17930
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' &&
17853
17931
  element.parentElement.getAttribute('id') !== 'MSWord-Content' &&
17854
17932
  !(this.hasParentWithClass(element, 'MsoListParagraph')) &&
17855
17933
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
@@ -19832,103 +19910,103 @@ class ContentRender {
19832
19910
  }
19833
19911
  }
19834
19912
 
19835
- const IFRAMEHEADER = `
19836
- <!DOCTYPE html>
19837
- <html>
19838
- <head>
19839
- <meta charset='utf-8' />
19840
- <style>
19841
- @charset "UTF-8";
19842
- body {
19843
- font-family: "Roboto", sans-serif;
19844
- font-size: 14px;
19845
- }
19846
- html, body{height: 100%;margin: 0;}
19847
- body.e-cursor{cursor:default}
19848
- span.e-selected-node {background-color: #939393;color: white;}
19849
- span.e-selected-node.e-highlight {background-color: #1d9dd8;}
19850
- body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}
19851
- .e-rte-image, .e-rte-audio, .e-rte-video {border: 0;cursor: pointer;display:
19852
- block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19853
- .e-rte-image.e-imginline, .e-rte-audio.e-audio-inline, .e-rte-video.e-video-inline {display: inline-block;float: none;max-width: calc(100% - (2 * 5px));padding: 1px;vertical-align: bottom;}
19854
- .e-rte-image.e-imgcenter, .e-rte-video.e-video-center {cursor: pointer;display: block;float: none;margin: 5px auto;max-width: 100%;position: relative;}
19855
- .e-rte-image.e-imgright, .e-rte-video.e-video-right { float: right; margin: 0 auto;margin-left: 5px;text-align: right;}
19856
- .e-rte-image.e-imgleft, .e-rte-video.e-video-left {float: left;margin: 0 auto;margin-right: 5px;text-align: left;}
19857
- .e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}
19858
- .e-img-caption.e-caption-inline {display: inline-block;float: none;
19859
- margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));
19860
- position: relativetext-align: center;vertical-align: bottom;}
19861
- .e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;
19862
- margin: auto;opacity: .9;text-align: center;width: 100%;}
19863
- .e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}
19864
- .e-imgleft, .e-video-left {float: left;margin: 0 5px 0 0;text-align: left;}
19865
- .e-imgright, .e-video-right {float: right;margin: 0 0 0 5px;text-align: right;}
19866
- .e-imgcenter, .e-video-center {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19867
- .e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}
19868
- .e-imginline , .e-audio-inline, .e-video-inline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;
19869
- max-width: calc(100% - (2 * 5px));vertical-align: bottom;}
19870
- .e-imgbreak, .e-audio-break, .e-video-break {border: 0;cursor: pointer;
19871
- display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19872
- .e-rte-image.e-img-focus:not(.e-resize), .e-audio-focus:not(.e-resize), .e-video-focus:not(.e-resize) {border: solid 2px #4a90e2;}
19873
- img.e-img-focus::selection, audio.e-audio-focus::selection, .e-video-focus::selection { background: transparent;color: transparent;}
19874
- span.e-rte-imageboxmark { width: 10px; height: 10px; position: absolute; display: block;
19875
- background: #4a90e2; border: 1px solid #fff; z-index: 1000;}
19876
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
19877
- .e-mob-rte span.e-rte-imageboxmark { background: #fff; border: 1px solid #4a90e2;
19878
- border-radius: 15px; height: 20px; width: 20px; }
19879
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
19880
- .e-rte-content .e-content img.e-resize, .e-rte-content .e-content video.e-resize { z-index: 1000; }
19881
- .e-img-caption .e-img-inner { outline: 0; }
19882
- .e-img-caption a:focus-visible { outline: none; }
19883
- .e-img-caption .e-rte-image.e-imgright, .e-img-caption .e-rte-image.e-imgleft { float: none; margin: 0;}
19884
- body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;
19885
- overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}
19886
- p{margin: 0 0 10px;margin-bottom: 10px;}
19887
- li{margin-bottom: 10px;}
19888
- h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}
19889
- h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}
19890
- h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}
19891
- h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}
19892
- h5{font-size: 00.8em;font-weight: 400;margin: 0;}
19893
- h6{font-size: 00.65em;font-weight: 400;margin: 0;}
19894
- blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}
19895
- pre{background-color: inherit;border: 0;border-radius: 0;color: #333;
19896
- font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;
19897
- white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}
19898
- strong, b{font-weight: 700;}
19899
- a{text-decoration: none;user-select: auto;}
19900
- a:hover{text-decoration: underline;};
19901
- p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}
19902
- h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}
19903
- ul:last-child{margin-bottom: 0;}
19904
- table { border-collapse: collapse; empty-cells: show;}
19905
- table td,table th {border: 1px solid #BDBDBD; height: 20px; padding: 2px 5px; vertical-align: middle;}
19906
- table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}
19907
- table th {background-color: #E0E0E0;}
19908
- table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD}
19909
- table .e-cell-select {border: 1px double #4a90e2;}
19910
- span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }
19911
- span.e-table-box.e-rmob {height: 14px;width: 14px;}
19912
- .e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat;
19913
- bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }
19914
- .e-row-resize { cursor: row-resize; height: 1px;}
19915
- .e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}
19916
- .e-table-rhelper.e-column-helper { width: 1px; }
19917
- .e-table-rhelper.e-row-helper {height: 1px;}
19918
- .e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid;
19919
- border-top: 6px solid transparent; content: ''; display: block; height: 0;
19920
- position: absolute; right: 4px; top: 4px; width: 20px; }
19921
- .e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid;
19922
- border-top: 6px solid transparent; content: ''; display: block;
19923
- height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }
19924
- .e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }
19925
- .e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }
19926
- span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }
19927
- span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }
19928
- .e-table-rhelper { background-color: #4a90e2;}
19929
- .e-rtl { direction: rtl; }
19930
- .e-rte-placeholder::before { content: attr(placeholder); opacity: 0.54; overflow: hidden; padding-top: 16px; position: absolute; text-align: start; top: 0; z-index: 1; }
19931
- </style>
19913
+ const IFRAMEHEADER = `
19914
+ <!DOCTYPE html>
19915
+ <html>
19916
+ <head>
19917
+ <meta charset='utf-8' />
19918
+ <style>
19919
+ @charset "UTF-8";
19920
+ body {
19921
+ font-family: "Roboto", sans-serif;
19922
+ font-size: 14px;
19923
+ }
19924
+ html, body{height: 100%;margin: 0;}
19925
+ body.e-cursor{cursor:default}
19926
+ span.e-selected-node {background-color: #939393;color: white;}
19927
+ span.e-selected-node.e-highlight {background-color: #1d9dd8;}
19928
+ body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}
19929
+ .e-rte-image, .e-rte-audio, .e-rte-video {border: 0;cursor: pointer;display:
19930
+ block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19931
+ .e-rte-image.e-imginline, .e-rte-audio.e-audio-inline, .e-rte-video.e-video-inline {display: inline-block;float: none;max-width: calc(100% - (2 * 5px));padding: 1px;vertical-align: bottom;}
19932
+ .e-rte-image.e-imgcenter, .e-rte-video.e-video-center {cursor: pointer;display: block;float: none;margin: 5px auto;max-width: 100%;position: relative;}
19933
+ .e-rte-image.e-imgright, .e-rte-video.e-video-right { float: right; margin: 0 auto;margin-left: 5px;text-align: right;}
19934
+ .e-rte-image.e-imgleft, .e-rte-video.e-video-left {float: left;margin: 0 auto;margin-right: 5px;text-align: left;}
19935
+ .e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}
19936
+ .e-img-caption.e-caption-inline {display: inline-block;float: none;
19937
+ margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));
19938
+ position: relativetext-align: center;vertical-align: bottom;}
19939
+ .e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;
19940
+ margin: auto;opacity: .9;text-align: center;width: 100%;}
19941
+ .e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}
19942
+ .e-imgleft, .e-video-left {float: left;margin: 0 5px 0 0;text-align: left;}
19943
+ .e-imgright, .e-video-right {float: right;margin: 0 0 0 5px;text-align: right;}
19944
+ .e-imgcenter, .e-video-center {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19945
+ .e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}
19946
+ .e-imginline , .e-audio-inline, .e-video-inline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;
19947
+ max-width: calc(100% - (2 * 5px));vertical-align: bottom;}
19948
+ .e-imgbreak, .e-audio-break, .e-video-break {border: 0;cursor: pointer;
19949
+ display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19950
+ .e-rte-image.e-img-focus:not(.e-resize), .e-audio-focus:not(.e-resize), .e-video-focus:not(.e-resize) {border: solid 2px #4a90e2;}
19951
+ img.e-img-focus::selection, audio.e-audio-focus::selection, .e-video-focus::selection { background: transparent;color: transparent;}
19952
+ span.e-rte-imageboxmark { width: 10px; height: 10px; position: absolute; display: block;
19953
+ background: #4a90e2; border: 1px solid #fff; z-index: 1000;}
19954
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
19955
+ .e-mob-rte span.e-rte-imageboxmark { background: #fff; border: 1px solid #4a90e2;
19956
+ border-radius: 15px; height: 20px; width: 20px; }
19957
+ .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
19958
+ .e-rte-content .e-content img.e-resize, .e-rte-content .e-content video.e-resize { z-index: 1000; }
19959
+ .e-img-caption .e-img-inner { outline: 0; }
19960
+ .e-img-caption a:focus-visible { outline: none; }
19961
+ .e-img-caption .e-rte-image.e-imgright, .e-img-caption .e-rte-image.e-imgleft { float: none; margin: 0;}
19962
+ body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;
19963
+ overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}
19964
+ p{margin: 0 0 10px;margin-bottom: 10px;}
19965
+ li{margin-bottom: 10px;}
19966
+ h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}
19967
+ h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}
19968
+ h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}
19969
+ h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}
19970
+ h5{font-size: 00.8em;font-weight: 400;margin: 0;}
19971
+ h6{font-size: 00.65em;font-weight: 400;margin: 0;}
19972
+ blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}
19973
+ pre{background-color: inherit;border: 0;border-radius: 0;color: #333;
19974
+ font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;
19975
+ white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}
19976
+ strong, b{font-weight: 700;}
19977
+ a{text-decoration: none;user-select: auto;}
19978
+ a:hover{text-decoration: underline;};
19979
+ p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}
19980
+ h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}
19981
+ ul:last-child{margin-bottom: 0;}
19982
+ table { border-collapse: collapse; empty-cells: show;}
19983
+ table td,table th {border: 1px solid #BDBDBD; height: 20px; padding: 2px 5px; vertical-align: middle;}
19984
+ table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}
19985
+ table th {background-color: #E0E0E0;}
19986
+ table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD}
19987
+ table .e-cell-select {border: 1px double #4a90e2;}
19988
+ span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }
19989
+ span.e-table-box.e-rmob {height: 14px;width: 14px;}
19990
+ .e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat;
19991
+ bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }
19992
+ .e-row-resize { cursor: row-resize; height: 1px;}
19993
+ .e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}
19994
+ .e-table-rhelper.e-column-helper { width: 1px; }
19995
+ .e-table-rhelper.e-row-helper {height: 1px;}
19996
+ .e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid;
19997
+ border-top: 6px solid transparent; content: ''; display: block; height: 0;
19998
+ position: absolute; right: 4px; top: 4px; width: 20px; }
19999
+ .e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid;
20000
+ border-top: 6px solid transparent; content: ''; display: block;
20001
+ height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }
20002
+ .e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }
20003
+ .e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }
20004
+ span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }
20005
+ span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }
20006
+ .e-table-rhelper { background-color: #4a90e2;}
20007
+ .e-rtl { direction: rtl; }
20008
+ .e-rte-placeholder::before { content: attr(placeholder); opacity: 0.54; overflow: hidden; padding-top: 16px; position: absolute; text-align: start; top: 0; z-index: 1; }
20009
+ </style>
19932
20010
  </head>`;
19933
20011
  /**
19934
20012
  * Content module is used to render Rich Text Editor content
@@ -20583,8 +20661,13 @@ class HtmlEditor {
20583
20661
  this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement.childNodes.length);
20584
20662
  this.isImageDelete = false;
20585
20663
  }
20586
- if (this.deleteRangeElement.querySelector('BR')) {
20587
- detach(this.deleteRangeElement.querySelector('BR'));
20664
+ const brNode = this.deleteRangeElement.querySelector('BR');
20665
+ if (brNode && brNode.classList.contains('e-rte-image-remove-focus')) {
20666
+ removeClass([brNode], ['e-rte-image-focus']);
20667
+ return;
20668
+ }
20669
+ else if (brNode) {
20670
+ detach(brNode);
20588
20671
  }
20589
20672
  if (!isNullOrUndefined(this.deleteRangeElement) && (this.deleteOldRangeElement.tagName !== 'OL' && this.deleteOldRangeElement.tagName !== 'UL')
20590
20673
  && this.deleteOldRangeElement !== this.deleteRangeElement) {
@@ -20954,6 +21037,9 @@ class HtmlEditor {
20954
21037
  */
20955
21038
  onPropertyChanged(e) {
20956
21039
  // On property code change here
21040
+ if (!isNullOrUndefined(e) && !isNullOrUndefined(e.newProp.toolbarSettings) && !isNullOrUndefined(e.newProp.toolbarSettings.enable)) {
21041
+ this.toolbarUpdate = new HtmlToolbarStatus(this.parent);
21042
+ }
20957
21043
  if (!isNullOrUndefined(e.newProp.formatter)) {
20958
21044
  const editElement = this.contentRenderer.getEditPanel();
20959
21045
  const option = { undoRedoSteps: this.parent.undoRedoSteps,
@@ -21179,7 +21265,7 @@ class PasteCleanup {
21179
21265
  }
21180
21266
  else {
21181
21267
  const contentWithSpace = this.makeSpace(enterSplitText[i]);
21182
- contentInnerElem += '<p>' + contentWithSpace.trim() + '</p>';
21268
+ contentInnerElem += (i === 0 ? '<span>' : '<p>') + contentWithSpace.trim() + (i === 0 ? '</span>' : '</p>');
21183
21269
  }
21184
21270
  }
21185
21271
  return contentInnerElem;
@@ -21259,7 +21345,7 @@ class PasteCleanup {
21259
21345
  const popupEle = this.parent.createElement('div');
21260
21346
  this.parent.element.appendChild(popupEle);
21261
21347
  const contentEle = this.parent.createElement('input', {
21262
- id: this.parent.element.id + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21348
+ id: this.parent.getID() + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21263
21349
  });
21264
21350
  const offsetY = this.parent.iframeSettings.enable ? -50 : -90;
21265
21351
  this.popupObj = new Popup(popupEle, {
@@ -21879,7 +21965,9 @@ class PasteCleanup {
21879
21965
  findDetachEmptyElem(element) {
21880
21966
  let removableElement;
21881
21967
  if (!isNullOrUndefined(element.parentElement)) {
21882
- if (element.parentElement.textContent.trim() === '' &&
21968
+ const hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
21969
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
21970
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' &&
21883
21971
  element.parentElement.getAttribute('class') !== 'pasteContent') {
21884
21972
  removableElement = this.findDetachEmptyElem(element.parentElement);
21885
21973
  }
@@ -24041,6 +24129,7 @@ class Link {
24041
24129
  linkTitle = linkEle.querySelector('.e-rte-linkTitle').value;
24042
24130
  }
24043
24131
  const target = (this.selfLink.checkBoxObj.checked) ? '_blank' : null;
24132
+ const linkLabel = (this.selfLink.checkBoxObj.checked) ? this.selfLink.i10n.getConstant('linkAriaLabel') : null;
24044
24133
  if (linkUrl === '') {
24045
24134
  this.selfLink.checkUrl(true);
24046
24135
  return;
@@ -24071,7 +24160,7 @@ class Link {
24071
24160
  this.selectParent = proxy.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
24072
24161
  }
24073
24162
  const value = {
24074
- url: linkUrl, text: linkText, title: linkTitle, target: target,
24163
+ url: linkUrl, text: linkText, title: linkTitle, target: target, ariaLabel: linkLabel,
24075
24164
  selection: this.selection, selectParent: this.selectParent
24076
24165
  };
24077
24166
  if (document.body.contains(proxy.dialogObj.element)) {
@@ -24909,13 +24998,22 @@ class Image$1 {
24909
24998
  }
24910
24999
  }
24911
25000
  }
24912
- else if ((range.startContainer.nodeType === 1 &&
24913
- range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE))) {
24914
- detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE));
24915
- }
24916
- else if (range.startContainer.nodeType === 1 &&
24917
- range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK)) {
24918
- detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK));
25001
+ else if (range.startContainer.nodeType === 1) {
25002
+ if (range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE)) {
25003
+ detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE));
25004
+ }
25005
+ else if (range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK)) {
25006
+ detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK));
25007
+ }
25008
+ else if (range.startContainer.classList.contains('e-img-wrap') && closest(range.startContainer, '.' + CLS_CAPTION)) {
25009
+ const parentElem = range.startContainer.parentElement.parentElement;
25010
+ detach(closest(range.startContainer, '.' + CLS_CAPTION));
25011
+ if (parentElem && parentElem.textContent.trim() === '') {
25012
+ const brElem = this.parent.createElement('br');
25013
+ brElem.classList.add('e-rte-image-remove-focus');
25014
+ parentElem.appendChild(brElem);
25015
+ }
25016
+ }
24919
25017
  }
24920
25018
  }
24921
25019
  break;
@@ -25215,7 +25313,6 @@ class Image$1 {
25215
25313
  width: '290px',
25216
25314
  header: this.parent.localeObj.getConstant('imageInsertLinkHeader'),
25217
25315
  content: linkWrap,
25218
- position: { X: 'center', Y: 'center' },
25219
25316
  buttons: [{
25220
25317
  // eslint-disable-next-line
25221
25318
  click: (e) => {
@@ -25264,7 +25361,7 @@ class Image$1 {
25264
25361
  alt: inputAlt
25265
25362
  };
25266
25363
  this.dialogObj.setProperties({
25267
- height: 'inherit', width: '290px', header: altHeader, content: altWrap, position: { X: 'center', Y: 'center' },
25364
+ height: 'inherit', width: '290px', header: altHeader, content: altWrap,
25268
25365
  buttons: [{
25269
25366
  // eslint-disable-next-line
25270
25367
  click: (e) => {
@@ -25490,7 +25587,7 @@ class Image$1 {
25490
25587
  const dialogContent = this.imgsizeInput(e);
25491
25588
  const selectObj = { args: e.args, selfImage: this, selection: e.selection, selectNode: e.selectNode };
25492
25589
  this.dialogObj.setProperties({
25493
- height: (Browser.isDevice) ? '300px' : 'inherit', width: '290px', header: imgSizeHeader, content: dialogContent, position: { X: 'center', Y: 'center' },
25590
+ height: (Browser.isDevice) ? '300px' : 'inherit', width: '290px', header: imgSizeHeader, content: dialogContent,
25494
25591
  buttons: [{
25495
25592
  // eslint-disable-next-line
25496
25593
  click: (e) => {
@@ -25555,7 +25652,6 @@ class Image$1 {
25555
25652
  enableRtl: this.parent.enableRtl,
25556
25653
  locale: this.parent.locale,
25557
25654
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
25558
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
25559
25655
  isModal: Browser.isDevice,
25560
25656
  buttons: [{
25561
25657
  click: this.insertImageUrl.bind(selectObj),
@@ -27036,7 +27132,6 @@ class Audio {
27036
27132
  enableRtl: this.parent.enableRtl,
27037
27133
  locale: this.parent.locale,
27038
27134
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
27039
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
27040
27135
  isModal: Browser.isDevice,
27041
27136
  buttons: [{
27042
27137
  click: this.insertAudioUrl.bind(selectObj),
@@ -27465,7 +27560,7 @@ class Video {
27465
27560
  const dialogContent = this.vidsizeInput(e);
27466
27561
  const selectObj = { args: e.args, selfVideo: this, selection: e.selection, selectNode: e.selectNode };
27467
27562
  this.dialogObj.setProperties({
27468
- height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent, position: { X: 'center', Y: 'center' },
27563
+ height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent,
27469
27564
  buttons: [{
27470
27565
  // eslint-disable-next-line
27471
27566
  click: (e) => {
@@ -28365,7 +28460,6 @@ class Video {
28365
28460
  enableRtl: this.parent.enableRtl,
28366
28461
  locale: this.parent.locale,
28367
28462
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
28368
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
28369
28463
  isModal: Browser.isDevice,
28370
28464
  buttons: [{
28371
28465
  click: this.insertVideoUrl.bind(selectObj),
@@ -28766,7 +28860,7 @@ class ViewSource {
28766
28860
  this.parent.formatter.editorManager.observer.off(KEY_DOWN_HANDLER, this.onKeyDown);
28767
28861
  }
28768
28862
  getSourceCode() {
28769
- return this.parent.createElement('textarea', { className: 'e-rte-srctextarea' + ' ' + this.parent.cssClass });
28863
+ return this.parent.createElement('textarea', { className: CLS_RTE_SOURCE_CODE_TXTAREA + ' ' + this.parent.cssClass });
28770
28864
  }
28771
28865
  wireEvent(element) {
28772
28866
  this.keyboardModule = new KeyboardEvents$1(element, {
@@ -28800,9 +28894,10 @@ class ViewSource {
28800
28894
  event.preventDefault();
28801
28895
  break;
28802
28896
  case 'toolbar-focus':
28803
- if (this.parent.toolbarSettings.enable) {
28804
- const selector = '.e-toolbar-item[title] [tabindex]';
28805
- this.parent.toolbarModule.baseToolbar.toolbarObj.element.querySelector(selector).focus();
28897
+ if (this.parent.toolbarSettings.enable && this.parent.getToolbarElement()) {
28898
+ const firstActiveItem = this.parent.getToolbarElement().querySelector('.e-toolbar-item:not(.e-overlay)[title]');
28899
+ firstActiveItem.firstElementChild.removeAttribute('tabindex');
28900
+ firstActiveItem.firstElementChild.focus();
28806
28901
  }
28807
28902
  break;
28808
28903
  }
@@ -28844,13 +28939,13 @@ class ViewSource {
28844
28939
  this.parent.updateValueData();
28845
28940
  if (this.parent.iframeSettings.enable) {
28846
28941
  let rteContent;
28847
- if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.element.id + '_source-view'))) {
28942
+ if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.getID() + '_source-view'))) {
28848
28943
  rteContent = this.parent.createElement('div', {
28849
- className: 'e-source-content', id: this.parent.element.id + '_source-view'
28944
+ className: 'e-source-content', id: this.parent.getID() + '_source-view'
28850
28945
  });
28851
28946
  }
28852
28947
  else {
28853
- rteContent = this.parent.element.querySelector('#' + this.parent.element.id + '_source-view');
28948
+ rteContent = this.parent.element.querySelector('#' + this.parent.getID() + '_source-view');
28854
28949
  }
28855
28950
  rteContent.appendChild(this.previewElement);
28856
28951
  this.parent.element.appendChild(rteContent);
@@ -29030,6 +29125,7 @@ class Table {
29030
29125
  this.parent.on(tableToolbarAction, this.onToolbarAction, this);
29031
29126
  this.parent.on(dropDownSelect, this.dropdownSelect, this);
29032
29127
  this.parent.on(keyDown, this.keyDown, this);
29128
+ this.parent.on(keyUp, this.keyUp, this);
29033
29129
  this.parent.on(mouseUp, this.selectionTable, this);
29034
29130
  this.parent.on(tableModulekeyUp, this.tableModulekeyUp, this);
29035
29131
  this.parent.on(bindCssClass, this.setCssClass, this);
@@ -29052,6 +29148,7 @@ class Table {
29052
29148
  this.parent.off(dropDownSelect, this.dropdownSelect);
29053
29149
  this.parent.off(mouseDown, this.cellSelect);
29054
29150
  this.parent.off(tableColorPickerChanged, this.setBGColor);
29151
+ this.parent.off(keyUp, this.keyUp);
29055
29152
  this.parent.off(keyDown, this.keyDown);
29056
29153
  this.parent.off(mouseUp, this.selectionTable);
29057
29154
  this.parent.off(tableModulekeyUp, this.tableModulekeyUp);
@@ -29156,6 +29253,12 @@ class Table {
29156
29253
  this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });
29157
29254
  this.hideTableQuickToolbar();
29158
29255
  }
29256
+ keyUp(e) {
29257
+ const target = e.args.target;
29258
+ if (e.args.key.toLocaleLowerCase() === 'escape' && target && target.classList && (this.popupObj && !closest(target, '[id=' + "'" + this.popupObj.element.id + "'" + ']')) && this.popupObj) {
29259
+ this.popupObj.hide();
29260
+ }
29261
+ }
29159
29262
  keyDown(e) {
29160
29263
  const event = e.args;
29161
29264
  // eslint-disable-next-line
@@ -30337,7 +30440,7 @@ class Table {
30337
30440
  value: 3,
30338
30441
  placeholder: tableRow,
30339
30442
  floatLabelType: 'Auto',
30340
- max: 50,
30443
+ max: 1000,
30341
30444
  enableRtl: this.parent.enableRtl, locale: this.parent.locale,
30342
30445
  cssClass: this.parent.cssClass
30343
30446
  });
@@ -30557,6 +30660,7 @@ class DialogRenderer {
30557
30660
  let dlgObj;
30558
30661
  e.beforeOpen = this.beforeOpen.bind(this);
30559
30662
  e.open = this.open.bind(this);
30663
+ e.position = { X: 'center', Y: this.getDialogPosition() };
30560
30664
  if (isNullOrUndefined(e.close)) {
30561
30665
  e.close = this.close.bind(this);
30562
30666
  }
@@ -30601,6 +30705,16 @@ class DialogRenderer {
30601
30705
  }
30602
30706
  });
30603
30707
  }
30708
+ getDialogPosition() {
30709
+ let distanceFromVisibleTop = this.parent.element.getBoundingClientRect().top;
30710
+ if (distanceFromVisibleTop < 0) {
30711
+ distanceFromVisibleTop = Math.abs(distanceFromVisibleTop);
30712
+ return distanceFromVisibleTop.toString();
30713
+ }
30714
+ else {
30715
+ return 'top';
30716
+ }
30717
+ }
30604
30718
  /**
30605
30719
  * dialog close method
30606
30720
  *
@@ -30811,12 +30925,12 @@ const executeGroup = {
30811
30925
  }
30812
30926
  };
30813
30927
 
30814
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30815
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30816
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30817
- 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;
30818
- return c > 3 && r && Object.defineProperty(target, key, r), r;
30819
- };
30928
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30929
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30930
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30931
+ 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;
30932
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
30933
+ };
30820
30934
  /**
30821
30935
  * Configures the toolbar settings of the RichTextEditor.
30822
30936
  */
@@ -31206,12 +31320,12 @@ __decorate$2([
31206
31320
  Property(bulletFormatList)
31207
31321
  ], BulletFormatList.prototype, "types", void 0);
31208
31322
 
31209
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31210
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31211
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31212
- 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;
31213
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31214
- };
31323
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31324
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31325
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31326
+ 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;
31327
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31328
+ };
31215
31329
  /**
31216
31330
  * Objects used for configuring the iframe resources properties.
31217
31331
  */
@@ -31238,12 +31352,12 @@ __decorate$3([
31238
31352
  Complex({}, Resources)
31239
31353
  ], IFrameSettings.prototype, "resources", void 0);
31240
31354
 
31241
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31242
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31243
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31244
- 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;
31245
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31246
- };
31355
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31356
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31357
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31358
+ 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;
31359
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31360
+ };
31247
31361
  /**
31248
31362
  * Configures the inlineMode property of the RTE.
31249
31363
  */
@@ -31653,7 +31767,7 @@ class EnterKeyAction {
31653
31767
  let newElem;
31654
31768
  const outerBRElem = this.parent.createElement('br');
31655
31769
  if (this.range.startOffset === 0 && this.range.endOffset === 0 &&
31656
- !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR') {
31770
+ !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR' && currentParent.nodeName !== 'P' && currentParent.nodeName !== 'DIV') {
31657
31771
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31658
31772
  newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, currentParent, false).cloneNode(true);
31659
31773
  this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);
@@ -31748,12 +31862,12 @@ class EnterKeyAction {
31748
31862
  }
31749
31863
  }
31750
31864
 
31751
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31752
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31753
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31754
- 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;
31755
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31756
- };
31865
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31866
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31867
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31868
+ 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;
31869
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
31870
+ };
31757
31871
  /**
31758
31872
  * Represents the Rich Text Editor component.
31759
31873
  * ```html
@@ -32456,10 +32570,10 @@ let RichTextEditor = class RichTextEditor extends Component {
32456
32570
  }
32457
32571
  switch (e.action) {
32458
32572
  case 'toolbar-focus':
32459
- if (this.toolbarSettings.enable) {
32460
- // eslint-disable-next-line
32461
- let selector = '.e-toolbar-item[title] [tabindex]';
32462
- this.toolbarModule.baseToolbar.toolbarObj.element.querySelector(selector).focus();
32573
+ if (this.toolbarSettings.enable && this.getToolbarElement()) {
32574
+ const firstActiveItem = this.getToolbarElement().querySelector('.e-toolbar-item:not(.e-overlay)[title]');
32575
+ firstActiveItem.firstElementChild.removeAttribute('tabindex');
32576
+ firstActiveItem.firstElementChild.focus();
32463
32577
  }
32464
32578
  break;
32465
32579
  case 'escape':
@@ -33818,15 +33932,10 @@ let RichTextEditor = class RichTextEditor extends Component {
33818
33932
  }
33819
33933
  EventHandler.add(document, 'mousedown', this.onDocumentClick, this);
33820
33934
  }
33821
- if (!isNullOrUndefined(this.getToolbarElement())) {
33822
- const toolbarItem = this.getToolbarElement().querySelectorAll('input,select,button,a,[tabindex]');
33823
- for (let i = 0; i < toolbarItem.length; i++) {
33824
- if ((!toolbarItem[i].classList.contains('e-rte-dropdown-btn') &&
33825
- !toolbarItem[i].classList.contains('e-insert-table-btn')) &&
33826
- (!toolbarItem[i].hasAttribute('tabindex') ||
33827
- toolbarItem[i].getAttribute('tabindex') !== '-1')) {
33828
- toolbarItem[i].setAttribute('tabindex', '-1');
33829
- }
33935
+ if (!this.readonly) {
33936
+ const currentFocus = this.getCurrentFocus(e);
33937
+ if (currentFocus === 'editArea' || currentFocus === 'textArea' || currentFocus === 'sourceCode') {
33938
+ this.resetToolbarTabIndex();
33830
33939
  }
33831
33940
  }
33832
33941
  }
@@ -33943,6 +34052,9 @@ let RichTextEditor = class RichTextEditor extends Component {
33943
34052
  else {
33944
34053
  this.isRTE = true;
33945
34054
  }
34055
+ if (!this.readonly && this.getCurrentFocus(e) === 'outside') {
34056
+ this.resetToolbarTabIndex();
34057
+ }
33946
34058
  }
33947
34059
  /**
33948
34060
  * invokeChangeEvent method
@@ -34194,6 +34306,44 @@ let RichTextEditor = class RichTextEditor extends Component {
34194
34306
  }
34195
34307
  this.unWireScrollElementsEvents();
34196
34308
  }
34309
+ /**
34310
+ *
34311
+ * @param e Focus event
34312
+ * @returns string Returns the current focus either `editArea` or `toolbar` or `textArea` or `sourceCode` or `outside` of the RichTextEditor.
34313
+ * @hidden
34314
+ */
34315
+ getCurrentFocus(e) {
34316
+ if (e.target === this.inputElement && document.activeElement === this.inputElement) {
34317
+ return 'editArea';
34318
+ }
34319
+ else if (e.target === this.getToolbarElement() || (!isNullOrUndefined(e.relatedTarget) && closest(e.relatedTarget, '.e-rte-toolbar') === this.getToolbarElement())) {
34320
+ return 'toolbar';
34321
+ }
34322
+ else if (e.target === this.valueContainer && document.activeElement === this.valueContainer) {
34323
+ return 'textArea';
34324
+ }
34325
+ else if (!isNullOrUndefined(e.target) && e.target.classList.contains(CLS_RTE_SOURCE_CODE_TXTAREA) && document.activeElement === e.target) {
34326
+ return 'sourceCode';
34327
+ }
34328
+ return 'outside';
34329
+ }
34330
+ /**
34331
+ * @param {FocusEvent} e - specifies the event.
34332
+ * @hidden
34333
+ */
34334
+ resetToolbarTabIndex() {
34335
+ if (this.getToolbarElement()) {
34336
+ const toolbarItem = this.getToolbarElement().querySelectorAll('input,select,button,a,[tabindex]');
34337
+ for (let i = 0; i < toolbarItem.length; i++) {
34338
+ if ((!toolbarItem[i].classList.contains('e-rte-dropdown-btn') &&
34339
+ !toolbarItem[i].classList.contains('e-insert-table-btn')) &&
34340
+ (!toolbarItem[i].hasAttribute('tabindex') ||
34341
+ toolbarItem[i].getAttribute('tabindex') !== '-1')) {
34342
+ toolbarItem[i].setAttribute('tabindex', '-1');
34343
+ }
34344
+ }
34345
+ }
34346
+ }
34197
34347
  };
34198
34348
  __decorate$1([
34199
34349
  Complex({}, ToolbarSettings$1)
@@ -34497,5 +34647,5 @@ RichTextEditor = __decorate$1([
34497
34647
  * Rich Text Editor component exported items
34498
34648
  */
34499
34649
 
34500
- export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image$1 as Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, maximizeMinimizeClick, hidePopup, blockEmptyNodes, inlineEmptyNodes, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_TEXT_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_AUD_FOCUS, CLS_VID_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, CLS_RTE_RES_WEST, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, AUDIO, VIDEO, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, SELF_CLOSING_TAGS, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS };
34650
+ export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image$1 as Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, maximizeMinimizeClick, hidePopup, blockEmptyNodes, inlineEmptyNodes, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_TEXT_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_AUD_FOCUS, CLS_VID_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, AUDIO, VIDEO, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, SELF_CLOSING_TAGS, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS };
34501
34651
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map