@syncfusion/ej2-richtexteditor 23.2.6 → 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 (220) 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 -1731
  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 +276 -170
  8. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  9. package/dist/es6/ej2-richtexteditor.es5.js +386 -280
  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 +9 -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 +2 -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 +10 -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 +9 -9
  118. package/src/rich-text-editor/actions/toolbar.d.ts +13 -13
  119. package/src/rich-text-editor/actions/toolbar.js +13 -13
  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 +121 -121
  123. package/src/rich-text-editor/base/classes.js +121 -121
  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 +49 -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 +60 -60
  132. package/src/rich-text-editor/base/rich-text-editor.js +63 -63
  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/iframe-settings-model.d.ts +26 -26
  142. package/src/rich-text-editor/models/iframe-settings.js +19 -19
  143. package/src/rich-text-editor/models/inline-mode-model.d.ts +11 -11
  144. package/src/rich-text-editor/models/inline-mode.js +19 -19
  145. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +760 -760
  146. package/src/rich-text-editor/models/toolbar-settings.js +19 -19
  147. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
  148. package/src/rich-text-editor/renderer/audio-module.js +1 -2
  149. package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
  150. package/src/rich-text-editor/renderer/content-renderer.js +6 -6
  151. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +3 -2
  152. package/src/rich-text-editor/renderer/dialog-renderer.js +13 -2
  153. package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
  154. package/src/rich-text-editor/renderer/iframe-content-renderer.js +17 -17
  155. package/src/rich-text-editor/renderer/image-module.d.ts +1 -1
  156. package/src/rich-text-editor/renderer/image-module.js +19 -12
  157. package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
  158. package/src/rich-text-editor/renderer/link-module.js +1 -1
  159. package/src/rich-text-editor/renderer/markdown-renderer.d.ts +6 -6
  160. package/src/rich-text-editor/renderer/markdown-renderer.js +6 -6
  161. package/src/rich-text-editor/renderer/popup-renderer.d.ts +5 -5
  162. package/src/rich-text-editor/renderer/popup-renderer.js +5 -5
  163. package/src/rich-text-editor/renderer/render.d.ts +2 -2
  164. package/src/rich-text-editor/renderer/render.js +2 -2
  165. package/src/rich-text-editor/renderer/table-module.d.ts +2 -1
  166. package/src/rich-text-editor/renderer/table-module.js +9 -1
  167. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +9 -9
  168. package/src/rich-text-editor/renderer/toolbar-renderer.js +88 -19
  169. package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
  170. package/src/rich-text-editor/renderer/video-module.js +2 -3
  171. package/src/rich-text-editor/renderer/view-source.d.ts +6 -6
  172. package/src/rich-text-editor/renderer/view-source.js +9 -9
  173. package/src/rich-text-editor/services/renderer-factory.d.ts +3 -3
  174. package/src/rich-text-editor/services/renderer-factory.js +3 -3
  175. package/src/rich-text-editor/services/service-locator.d.ts +3 -3
  176. package/src/rich-text-editor/services/service-locator.js +3 -3
  177. package/src/selection/selection.d.ts +22 -22
  178. package/src/selection/selection.js +22 -22
  179. package/styles/_all.scss +1 -1
  180. package/styles/material3-dark.scss +1 -1
  181. package/styles/material3.scss +1 -1
  182. package/styles/rich-text-editor/_all.scss +2 -2
  183. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +277 -277
  184. package/styles/rich-text-editor/_bootstrap-definition.scss +334 -334
  185. package/styles/rich-text-editor/_bootstrap4-definition.scss +460 -460
  186. package/styles/rich-text-editor/_bootstrap5-definition.scss +262 -262
  187. package/styles/rich-text-editor/_fabric-dark-definition.scss +259 -259
  188. package/styles/rich-text-editor/_fabric-definition.scss +257 -257
  189. package/styles/rich-text-editor/_fluent-definition.scss +263 -263
  190. package/styles/rich-text-editor/_fusionnew-definition.scss +261 -261
  191. package/styles/rich-text-editor/_highcontrast-definition.scss +257 -257
  192. package/styles/rich-text-editor/_highcontrast-light-definition.scss +257 -257
  193. package/styles/rich-text-editor/_layout.scss +2072 -2072
  194. package/styles/rich-text-editor/_material-dark-definition.scss +262 -262
  195. package/styles/rich-text-editor/_material-definition.scss +260 -260
  196. package/styles/rich-text-editor/_material3-definition.scss +262 -262
  197. package/styles/rich-text-editor/_tailwind-definition.scss +257 -257
  198. package/styles/rich-text-editor/_theme.scss +837 -837
  199. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +349 -349
  200. package/styles/rich-text-editor/icons/_bootstrap.scss +349 -349
  201. package/styles/rich-text-editor/icons/_bootstrap4.scss +349 -349
  202. package/styles/rich-text-editor/icons/_bootstrap5.scss +348 -348
  203. package/styles/rich-text-editor/icons/_fabric-dark.scss +349 -349
  204. package/styles/rich-text-editor/icons/_fabric.scss +349 -349
  205. package/styles/rich-text-editor/icons/_fluent.scss +348 -348
  206. package/styles/rich-text-editor/icons/_fusionnew.scss +348 -348
  207. package/styles/rich-text-editor/icons/_highcontrast-light.scss +349 -349
  208. package/styles/rich-text-editor/icons/_highcontrast.scss +349 -349
  209. package/styles/rich-text-editor/icons/_material-dark.scss +349 -349
  210. package/styles/rich-text-editor/icons/_material.scss +349 -349
  211. package/styles/rich-text-editor/icons/_material3.scss +348 -348
  212. package/styles/rich-text-editor/icons/_tailwind.scss +348 -348
  213. package/styles/rich-text-editor/material3-dark.scss +1 -1
  214. package/styles/rich-text-editor/material3.scss +1 -1
  215. package/.eslintrc.json +0 -260
  216. package/dist/ej2-richtexteditor.min.js +0 -10
  217. package/dist/global/ej2-richtexteditor.min.js +0 -11
  218. package/dist/global/ej2-richtexteditor.min.js.map +0 -1
  219. package/dist/global/index.d.ts +0 -14
  220. 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
  /**
@@ -3345,7 +3345,7 @@ class ToolbarRenderer {
3345
3345
  }
3346
3346
  destroyTooltip() {
3347
3347
  if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap')) && !isNullOrUndefined(document.querySelector(' [data-tooltip-id]'))) {
3348
- const tooltipTargetEle = document.querySelector('#' + (this.parent.element).id + ' [data-tooltip-id]');
3348
+ const tooltipTargetEle = this.parent.element.querySelector('[data-tooltip-id]');
3349
3349
  const event = new MouseEvent('mouseleave', { bubbles: true, cancelable: true });
3350
3350
  tooltipTargetEle.dispatchEvent(event);
3351
3351
  }
@@ -3505,17 +3505,86 @@ class ToolbarRenderer {
3505
3505
  return;
3506
3506
  }
3507
3507
  // eslint-disable-next-line
3508
- for (let index = 0; index < args.element.childNodes.length; index++) {
3509
- const divNode = this.parent.createElement('div');
3510
- divNode.innerHTML = dropDown.content.trim();
3511
- if (divNode.textContent.trim() !== ''
3512
- && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
3513
- if (!args.element.childNodes[index].classList.contains('e-active')) {
3514
- 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
+ }
3515
3518
  }
3516
3519
  }
3517
- else {
3518
- 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
+ }
3519
3588
  }
3520
3589
  }
3521
3590
  proxy.parent.notify(beforeDropDownOpen, args);
@@ -5508,12 +5577,12 @@ class Toolbar$2 {
5508
5577
  }
5509
5578
  }
5510
5579
 
5511
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
5512
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
5513
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5514
- 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;
5515
- return c > 3 && r && Object.defineProperty(target, key, r), r;
5516
- };
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
+ };
5517
5586
  var KeyboardEvents_1;
5518
5587
  const keyCode = {
5519
5588
  'backspace': 8,
@@ -13586,7 +13655,9 @@ class InsertHtml {
13586
13655
  static findDetachEmptyElem(element) {
13587
13656
  let removableElement;
13588
13657
  if (!isNullOrUndefined(element.parentElement)) {
13589
- 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' &&
13590
13661
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
13591
13662
  removableElement = this.findDetachEmptyElem(element.parentElement);
13592
13663
  }
@@ -17813,7 +17884,9 @@ class MsWordPaste {
17813
17884
  isNullOrUndefined(allElements[i].nextElementSibling)))) {
17814
17885
  const detachableElement = this.findDetachElem(allElements[i]);
17815
17886
  const brElement = createElement('br');
17816
- 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)) {
17817
17890
  detachableElement.parentElement.insertBefore(brElement, detachableElement);
17818
17891
  detach(detachableElement);
17819
17892
  }
@@ -17852,7 +17925,9 @@ class MsWordPaste {
17852
17925
  findDetachEmptyElem(element) {
17853
17926
  let removableElement;
17854
17927
  if (!isNullOrUndefined(element.parentElement)) {
17855
- 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() === '' &&
17856
17931
  element.parentElement.getAttribute('id') !== 'MSWord-Content' &&
17857
17932
  !(this.hasParentWithClass(element, 'MsoListParagraph')) &&
17858
17933
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
@@ -19835,103 +19910,103 @@ class ContentRender {
19835
19910
  }
19836
19911
  }
19837
19912
 
19838
- const IFRAMEHEADER = `
19839
- <!DOCTYPE html>
19840
- <html>
19841
- <head>
19842
- <meta charset='utf-8' />
19843
- <style>
19844
- @charset "UTF-8";
19845
- body {
19846
- font-family: "Roboto", sans-serif;
19847
- font-size: 14px;
19848
- }
19849
- html, body{height: 100%;margin: 0;}
19850
- body.e-cursor{cursor:default}
19851
- span.e-selected-node {background-color: #939393;color: white;}
19852
- span.e-selected-node.e-highlight {background-color: #1d9dd8;}
19853
- body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}
19854
- .e-rte-image, .e-rte-audio, .e-rte-video {border: 0;cursor: pointer;display:
19855
- block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19856
- .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;}
19857
- .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;}
19858
- .e-rte-image.e-imgright, .e-rte-video.e-video-right { float: right; margin: 0 auto;margin-left: 5px;text-align: right;}
19859
- .e-rte-image.e-imgleft, .e-rte-video.e-video-left {float: left;margin: 0 auto;margin-right: 5px;text-align: left;}
19860
- .e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}
19861
- .e-img-caption.e-caption-inline {display: inline-block;float: none;
19862
- margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));
19863
- position: relativetext-align: center;vertical-align: bottom;}
19864
- .e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;
19865
- margin: auto;opacity: .9;text-align: center;width: 100%;}
19866
- .e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}
19867
- .e-imgleft, .e-video-left {float: left;margin: 0 5px 0 0;text-align: left;}
19868
- .e-imgright, .e-video-right {float: right;margin: 0 0 0 5px;text-align: right;}
19869
- .e-imgcenter, .e-video-center {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19870
- .e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}
19871
- .e-imginline , .e-audio-inline, .e-video-inline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;
19872
- max-width: calc(100% - (2 * 5px));vertical-align: bottom;}
19873
- .e-imgbreak, .e-audio-break, .e-video-break {border: 0;cursor: pointer;
19874
- display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}
19875
- .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;}
19876
- img.e-img-focus::selection, audio.e-audio-focus::selection, .e-video-focus::selection { background: transparent;color: transparent;}
19877
- span.e-rte-imageboxmark { width: 10px; height: 10px; position: absolute; display: block;
19878
- background: #4a90e2; border: 1px solid #fff; z-index: 1000;}
19879
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
19880
- .e-mob-rte span.e-rte-imageboxmark { background: #fff; border: 1px solid #4a90e2;
19881
- border-radius: 15px; height: 20px; width: 20px; }
19882
- .e-mob-rte.e-mob-span span.e-rte-imageboxmark { background: #4a90e2; border: 1px solid #fff; }
19883
- .e-rte-content .e-content img.e-resize, .e-rte-content .e-content video.e-resize { z-index: 1000; }
19884
- .e-img-caption .e-img-inner { outline: 0; }
19885
- .e-img-caption a:focus-visible { outline: none; }
19886
- .e-img-caption .e-rte-image.e-imgright, .e-img-caption .e-rte-image.e-imgleft { float: none; margin: 0;}
19887
- body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;
19888
- overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}
19889
- p{margin: 0 0 10px;margin-bottom: 10px;}
19890
- li{margin-bottom: 10px;}
19891
- h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}
19892
- h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}
19893
- h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}
19894
- h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}
19895
- h5{font-size: 00.8em;font-weight: 400;margin: 0;}
19896
- h6{font-size: 00.65em;font-weight: 400;margin: 0;}
19897
- blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}
19898
- pre{background-color: inherit;border: 0;border-radius: 0;color: #333;
19899
- font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;
19900
- white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}
19901
- strong, b{font-weight: 700;}
19902
- a{text-decoration: none;user-select: auto;}
19903
- a:hover{text-decoration: underline;};
19904
- p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}
19905
- h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}
19906
- ul:last-child{margin-bottom: 0;}
19907
- table { border-collapse: collapse; empty-cells: show;}
19908
- table td,table th {border: 1px solid #BDBDBD; height: 20px; padding: 2px 5px; vertical-align: middle;}
19909
- table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}
19910
- table th {background-color: #E0E0E0;}
19911
- table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD}
19912
- table .e-cell-select {border: 1px double #4a90e2;}
19913
- span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }
19914
- span.e-table-box.e-rmob {height: 14px;width: 14px;}
19915
- .e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat;
19916
- bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }
19917
- .e-row-resize { cursor: row-resize; height: 1px;}
19918
- .e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}
19919
- .e-table-rhelper.e-column-helper { width: 1px; }
19920
- .e-table-rhelper.e-row-helper {height: 1px;}
19921
- .e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid;
19922
- border-top: 6px solid transparent; content: ''; display: block; height: 0;
19923
- position: absolute; right: 4px; top: 4px; width: 20px; }
19924
- .e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid;
19925
- border-top: 6px solid transparent; content: ''; display: block;
19926
- height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }
19927
- .e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }
19928
- .e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }
19929
- span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }
19930
- span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }
19931
- .e-table-rhelper { background-color: #4a90e2;}
19932
- .e-rtl { direction: rtl; }
19933
- .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; }
19934
- </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>
19935
20010
  </head>`;
19936
20011
  /**
19937
20012
  * Content module is used to render Rich Text Editor content
@@ -20586,8 +20661,13 @@ class HtmlEditor {
20586
20661
  this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement.childNodes.length);
20587
20662
  this.isImageDelete = false;
20588
20663
  }
20589
- if (this.deleteRangeElement.querySelector('BR')) {
20590
- 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);
20591
20671
  }
20592
20672
  if (!isNullOrUndefined(this.deleteRangeElement) && (this.deleteOldRangeElement.tagName !== 'OL' && this.deleteOldRangeElement.tagName !== 'UL')
20593
20673
  && this.deleteOldRangeElement !== this.deleteRangeElement) {
@@ -21185,7 +21265,7 @@ class PasteCleanup {
21185
21265
  }
21186
21266
  else {
21187
21267
  const contentWithSpace = this.makeSpace(enterSplitText[i]);
21188
- contentInnerElem += '<p>' + contentWithSpace.trim() + '</p>';
21268
+ contentInnerElem += (i === 0 ? '<span>' : '<p>') + contentWithSpace.trim() + (i === 0 ? '</span>' : '</p>');
21189
21269
  }
21190
21270
  }
21191
21271
  return contentInnerElem;
@@ -21265,7 +21345,7 @@ class PasteCleanup {
21265
21345
  const popupEle = this.parent.createElement('div');
21266
21346
  this.parent.element.appendChild(popupEle);
21267
21347
  const contentEle = this.parent.createElement('input', {
21268
- id: this.parent.element.id + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21348
+ id: this.parent.getID() + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21269
21349
  });
21270
21350
  const offsetY = this.parent.iframeSettings.enable ? -50 : -90;
21271
21351
  this.popupObj = new Popup(popupEle, {
@@ -21885,7 +21965,9 @@ class PasteCleanup {
21885
21965
  findDetachEmptyElem(element) {
21886
21966
  let removableElement;
21887
21967
  if (!isNullOrUndefined(element.parentElement)) {
21888
- 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() === '' &&
21889
21971
  element.parentElement.getAttribute('class') !== 'pasteContent') {
21890
21972
  removableElement = this.findDetachEmptyElem(element.parentElement);
21891
21973
  }
@@ -24916,13 +24998,22 @@ class Image$1 {
24916
24998
  }
24917
24999
  }
24918
25000
  }
24919
- else if ((range.startContainer.nodeType === 1 &&
24920
- range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE))) {
24921
- detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE));
24922
- }
24923
- else if (range.startContainer.nodeType === 1 &&
24924
- range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK)) {
24925
- 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
+ }
24926
25017
  }
24927
25018
  }
24928
25019
  break;
@@ -25222,7 +25313,6 @@ class Image$1 {
25222
25313
  width: '290px',
25223
25314
  header: this.parent.localeObj.getConstant('imageInsertLinkHeader'),
25224
25315
  content: linkWrap,
25225
- position: { X: 'center', Y: 'center' },
25226
25316
  buttons: [{
25227
25317
  // eslint-disable-next-line
25228
25318
  click: (e) => {
@@ -25271,7 +25361,7 @@ class Image$1 {
25271
25361
  alt: inputAlt
25272
25362
  };
25273
25363
  this.dialogObj.setProperties({
25274
- height: 'inherit', width: '290px', header: altHeader, content: altWrap, position: { X: 'center', Y: 'center' },
25364
+ height: 'inherit', width: '290px', header: altHeader, content: altWrap,
25275
25365
  buttons: [{
25276
25366
  // eslint-disable-next-line
25277
25367
  click: (e) => {
@@ -25497,7 +25587,7 @@ class Image$1 {
25497
25587
  const dialogContent = this.imgsizeInput(e);
25498
25588
  const selectObj = { args: e.args, selfImage: this, selection: e.selection, selectNode: e.selectNode };
25499
25589
  this.dialogObj.setProperties({
25500
- 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,
25501
25591
  buttons: [{
25502
25592
  // eslint-disable-next-line
25503
25593
  click: (e) => {
@@ -25562,7 +25652,6 @@ class Image$1 {
25562
25652
  enableRtl: this.parent.enableRtl,
25563
25653
  locale: this.parent.locale,
25564
25654
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
25565
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
25566
25655
  isModal: Browser.isDevice,
25567
25656
  buttons: [{
25568
25657
  click: this.insertImageUrl.bind(selectObj),
@@ -27043,7 +27132,6 @@ class Audio {
27043
27132
  enableRtl: this.parent.enableRtl,
27044
27133
  locale: this.parent.locale,
27045
27134
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
27046
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
27047
27135
  isModal: Browser.isDevice,
27048
27136
  buttons: [{
27049
27137
  click: this.insertAudioUrl.bind(selectObj),
@@ -27472,7 +27560,7 @@ class Video {
27472
27560
  const dialogContent = this.vidsizeInput(e);
27473
27561
  const selectObj = { args: e.args, selfVideo: this, selection: e.selection, selectNode: e.selectNode };
27474
27562
  this.dialogObj.setProperties({
27475
- height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent, position: { X: 'center', Y: 'center' },
27563
+ height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent,
27476
27564
  buttons: [{
27477
27565
  // eslint-disable-next-line
27478
27566
  click: (e) => {
@@ -28372,7 +28460,6 @@ class Video {
28372
28460
  enableRtl: this.parent.enableRtl,
28373
28461
  locale: this.parent.locale,
28374
28462
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
28375
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
28376
28463
  isModal: Browser.isDevice,
28377
28464
  buttons: [{
28378
28465
  click: this.insertVideoUrl.bind(selectObj),
@@ -28852,13 +28939,13 @@ class ViewSource {
28852
28939
  this.parent.updateValueData();
28853
28940
  if (this.parent.iframeSettings.enable) {
28854
28941
  let rteContent;
28855
- if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.element.id + '_source-view'))) {
28942
+ if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.getID() + '_source-view'))) {
28856
28943
  rteContent = this.parent.createElement('div', {
28857
- className: 'e-source-content', id: this.parent.element.id + '_source-view'
28944
+ className: 'e-source-content', id: this.parent.getID() + '_source-view'
28858
28945
  });
28859
28946
  }
28860
28947
  else {
28861
- rteContent = this.parent.element.querySelector('#' + this.parent.element.id + '_source-view');
28948
+ rteContent = this.parent.element.querySelector('#' + this.parent.getID() + '_source-view');
28862
28949
  }
28863
28950
  rteContent.appendChild(this.previewElement);
28864
28951
  this.parent.element.appendChild(rteContent);
@@ -29038,6 +29125,7 @@ class Table {
29038
29125
  this.parent.on(tableToolbarAction, this.onToolbarAction, this);
29039
29126
  this.parent.on(dropDownSelect, this.dropdownSelect, this);
29040
29127
  this.parent.on(keyDown, this.keyDown, this);
29128
+ this.parent.on(keyUp, this.keyUp, this);
29041
29129
  this.parent.on(mouseUp, this.selectionTable, this);
29042
29130
  this.parent.on(tableModulekeyUp, this.tableModulekeyUp, this);
29043
29131
  this.parent.on(bindCssClass, this.setCssClass, this);
@@ -29060,6 +29148,7 @@ class Table {
29060
29148
  this.parent.off(dropDownSelect, this.dropdownSelect);
29061
29149
  this.parent.off(mouseDown, this.cellSelect);
29062
29150
  this.parent.off(tableColorPickerChanged, this.setBGColor);
29151
+ this.parent.off(keyUp, this.keyUp);
29063
29152
  this.parent.off(keyDown, this.keyDown);
29064
29153
  this.parent.off(mouseUp, this.selectionTable);
29065
29154
  this.parent.off(tableModulekeyUp, this.tableModulekeyUp);
@@ -29164,6 +29253,12 @@ class Table {
29164
29253
  this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });
29165
29254
  this.hideTableQuickToolbar();
29166
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
+ }
29167
29262
  keyDown(e) {
29168
29263
  const event = e.args;
29169
29264
  // eslint-disable-next-line
@@ -30565,6 +30660,7 @@ class DialogRenderer {
30565
30660
  let dlgObj;
30566
30661
  e.beforeOpen = this.beforeOpen.bind(this);
30567
30662
  e.open = this.open.bind(this);
30663
+ e.position = { X: 'center', Y: this.getDialogPosition() };
30568
30664
  if (isNullOrUndefined(e.close)) {
30569
30665
  e.close = this.close.bind(this);
30570
30666
  }
@@ -30609,6 +30705,16 @@ class DialogRenderer {
30609
30705
  }
30610
30706
  });
30611
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
+ }
30612
30718
  /**
30613
30719
  * dialog close method
30614
30720
  *
@@ -30819,12 +30925,12 @@ const executeGroup = {
30819
30925
  }
30820
30926
  };
30821
30927
 
30822
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
30823
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
30824
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
30825
- 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;
30826
- return c > 3 && r && Object.defineProperty(target, key, r), r;
30827
- };
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
+ };
30828
30934
  /**
30829
30935
  * Configures the toolbar settings of the RichTextEditor.
30830
30936
  */
@@ -31214,12 +31320,12 @@ __decorate$2([
31214
31320
  Property(bulletFormatList)
31215
31321
  ], BulletFormatList.prototype, "types", void 0);
31216
31322
 
31217
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31218
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31219
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31220
- 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;
31221
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31222
- };
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
+ };
31223
31329
  /**
31224
31330
  * Objects used for configuring the iframe resources properties.
31225
31331
  */
@@ -31246,12 +31352,12 @@ __decorate$3([
31246
31352
  Complex({}, Resources)
31247
31353
  ], IFrameSettings.prototype, "resources", void 0);
31248
31354
 
31249
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31250
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31251
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31252
- 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;
31253
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31254
- };
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
+ };
31255
31361
  /**
31256
31362
  * Configures the inlineMode property of the RTE.
31257
31363
  */
@@ -31661,7 +31767,7 @@ class EnterKeyAction {
31661
31767
  let newElem;
31662
31768
  const outerBRElem = this.parent.createElement('br');
31663
31769
  if (this.range.startOffset === 0 && this.range.endOffset === 0 &&
31664
- !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR') {
31770
+ !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR' && currentParent.nodeName !== 'P' && currentParent.nodeName !== 'DIV') {
31665
31771
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31666
31772
  newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, currentParent, false).cloneNode(true);
31667
31773
  this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);
@@ -31756,12 +31862,12 @@ class EnterKeyAction {
31756
31862
  }
31757
31863
  }
31758
31864
 
31759
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
31760
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
31761
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
31762
- 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;
31763
- return c > 3 && r && Object.defineProperty(target, key, r), r;
31764
- };
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
+ };
31765
31871
  /**
31766
31872
  * Represents the Rich Text Editor component.
31767
31873
  * ```html