@syncfusion/ej2-richtexteditor 28.1.38 → 28.1.41-642043

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 (186) hide show
  1. package/.eslintignore +4 -4
  2. package/.eslintrc.json +260 -260
  3. package/README.md +76 -76
  4. package/dist/ej2-richtexteditor.umd.min.js +1 -10
  5. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es2015.js +209 -193
  7. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  8. package/dist/es6/ej2-richtexteditor.es5.js +444 -428
  9. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  10. package/helpers/e2e/index.js +3 -3
  11. package/helpers/e2e/rte-helper.js +13 -13
  12. package/license +9 -9
  13. package/package.json +85 -85
  14. package/src/common/interface.d.ts +8 -8
  15. package/src/common/util.d.ts +1 -2
  16. package/src/common/util.js +49 -95
  17. package/src/editor-manager/base/classes.d.ts +1 -1
  18. package/src/editor-manager/base/classes.js +1 -1
  19. package/src/editor-manager/base/editor-manager.d.ts +3 -3
  20. package/src/editor-manager/base/editor-manager.js +3 -3
  21. package/src/editor-manager/base/enum.d.ts +2 -2
  22. package/src/editor-manager/base/interface.d.ts +17 -9
  23. package/src/editor-manager/base/types.d.ts +1 -1
  24. package/src/editor-manager/plugin/alignments.d.ts +2 -2
  25. package/src/editor-manager/plugin/alignments.js +2 -2
  26. package/src/editor-manager/plugin/audio.d.ts +3 -3
  27. package/src/editor-manager/plugin/audio.js +3 -3
  28. package/src/editor-manager/plugin/clearformat-exec.d.ts +2 -2
  29. package/src/editor-manager/plugin/clearformat-exec.js +2 -2
  30. package/src/editor-manager/plugin/clearformat.d.ts +1 -1
  31. package/src/editor-manager/plugin/clearformat.js +1 -1
  32. package/src/editor-manager/plugin/dom-node.d.ts +36 -36
  33. package/src/editor-manager/plugin/dom-node.js +36 -36
  34. package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -1
  35. package/src/editor-manager/plugin/format-painter-actions.js +1 -1
  36. package/src/editor-manager/plugin/formats.d.ts +2 -2
  37. package/src/editor-manager/plugin/formats.js +2 -2
  38. package/src/editor-manager/plugin/image.d.ts +3 -3
  39. package/src/editor-manager/plugin/image.js +3 -3
  40. package/src/editor-manager/plugin/indents.d.ts +2 -2
  41. package/src/editor-manager/plugin/indents.js +2 -2
  42. package/src/editor-manager/plugin/insert-methods.d.ts +4 -4
  43. package/src/editor-manager/plugin/insert-methods.js +4 -4
  44. package/src/editor-manager/plugin/insert-text.d.ts +2 -2
  45. package/src/editor-manager/plugin/insert-text.js +2 -2
  46. package/src/editor-manager/plugin/inserthtml-exec.d.ts +2 -2
  47. package/src/editor-manager/plugin/inserthtml-exec.js +2 -2
  48. package/src/editor-manager/plugin/inserthtml.d.ts +2 -2
  49. package/src/editor-manager/plugin/inserthtml.js +5 -5
  50. package/src/editor-manager/plugin/isformatted.d.ts +9 -9
  51. package/src/editor-manager/plugin/isformatted.js +9 -9
  52. package/src/editor-manager/plugin/link.d.ts +2 -2
  53. package/src/editor-manager/plugin/link.js +2 -2
  54. package/src/editor-manager/plugin/lists.d.ts +3 -2
  55. package/src/editor-manager/plugin/lists.js +15 -3
  56. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +1 -1
  57. package/src/editor-manager/plugin/ms-word-clean-up.js +1 -1
  58. package/src/editor-manager/plugin/nodecutter.d.ts +6 -6
  59. package/src/editor-manager/plugin/nodecutter.js +6 -6
  60. package/src/editor-manager/plugin/selection-commands.d.ts +1 -1
  61. package/src/editor-manager/plugin/selection-commands.js +1 -1
  62. package/src/editor-manager/plugin/selection-exec.d.ts +2 -2
  63. package/src/editor-manager/plugin/selection-exec.js +2 -2
  64. package/src/editor-manager/plugin/table.d.ts +2 -2
  65. package/src/editor-manager/plugin/table.js +2 -2
  66. package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
  67. package/src/editor-manager/plugin/toolbar-status.js +2 -2
  68. package/src/editor-manager/plugin/undo.d.ts +6 -6
  69. package/src/editor-manager/plugin/undo.js +6 -6
  70. package/src/editor-manager/plugin/video.d.ts +3 -3
  71. package/src/editor-manager/plugin/video.js +3 -3
  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 +34 -3
  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 +26 -4
  109. package/src/rich-text-editor/actions/keyboard.d.ts +1 -1
  110. package/src/rich-text-editor/actions/keyboard.js +20 -20
  111. package/src/rich-text-editor/actions/markdown-editor.d.ts +2 -2
  112. package/src/rich-text-editor/actions/markdown-editor.js +2 -2
  113. package/src/rich-text-editor/actions/paste-clean-up.d.ts +1 -1
  114. package/src/rich-text-editor/actions/paste-clean-up.js +23 -32
  115. package/src/rich-text-editor/actions/quick-toolbar.d.ts +9 -9
  116. package/src/rich-text-editor/actions/quick-toolbar.js +9 -9
  117. package/src/rich-text-editor/actions/resize.d.ts +2 -0
  118. package/src/rich-text-editor/actions/resize.js +13 -2
  119. package/src/rich-text-editor/actions/toolbar.d.ts +13 -13
  120. package/src/rich-text-editor/actions/toolbar.js +13 -13
  121. package/src/rich-text-editor/actions/xhtml-validation.d.ts +1 -1
  122. package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
  123. package/src/rich-text-editor/base/classes.d.ts +125 -125
  124. package/src/rich-text-editor/base/classes.js +125 -125
  125. package/src/rich-text-editor/base/constant.d.ts +158 -158
  126. package/src/rich-text-editor/base/constant.js +158 -158
  127. package/src/rich-text-editor/base/enum.d.ts +1 -1
  128. package/src/rich-text-editor/base/enum.js +1 -1
  129. package/src/rich-text-editor/base/interface.d.ts +51 -51
  130. package/src/rich-text-editor/base/interface.js +1 -1
  131. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +1 -1
  132. package/src/rich-text-editor/base/rich-text-editor.d.ts +62 -62
  133. package/src/rich-text-editor/base/rich-text-editor.js +64 -65
  134. package/src/rich-text-editor/base/util.d.ts +1 -1
  135. package/src/rich-text-editor/base/util.js +1 -1
  136. package/src/rich-text-editor/formatter/formatter.d.ts +8 -8
  137. package/src/rich-text-editor/formatter/formatter.js +8 -8
  138. package/src/rich-text-editor/formatter/html-formatter.d.ts +2 -2
  139. package/src/rich-text-editor/formatter/html-formatter.js +15 -15
  140. package/src/rich-text-editor/formatter/markdown-formatter.d.ts +2 -2
  141. package/src/rich-text-editor/formatter/markdown-formatter.js +15 -15
  142. package/src/rich-text-editor/models/iframe-settings.js +19 -19
  143. package/src/rich-text-editor/models/inline-mode.js +19 -19
  144. package/src/rich-text-editor/models/slash-menu-settings.js +19 -19
  145. package/src/rich-text-editor/models/toolbar-settings.js +19 -19
  146. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -1
  147. package/src/rich-text-editor/renderer/audio-module.js +1 -1
  148. package/src/rich-text-editor/renderer/content-renderer.d.ts +6 -6
  149. package/src/rich-text-editor/renderer/content-renderer.js +6 -6
  150. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -2
  151. package/src/rich-text-editor/renderer/dialog-renderer.js +2 -2
  152. package/src/rich-text-editor/renderer/iframe-content-renderer.d.ts +4 -4
  153. package/src/rich-text-editor/renderer/iframe-content-renderer.js +17 -17
  154. package/src/rich-text-editor/renderer/image-module.d.ts +1 -1
  155. package/src/rich-text-editor/renderer/image-module.js +1 -1
  156. package/src/rich-text-editor/renderer/link-module.d.ts +1 -1
  157. package/src/rich-text-editor/renderer/link-module.js +3 -3
  158. package/src/rich-text-editor/renderer/markdown-renderer.d.ts +6 -6
  159. package/src/rich-text-editor/renderer/markdown-renderer.js +6 -6
  160. package/src/rich-text-editor/renderer/popup-renderer.d.ts +5 -5
  161. package/src/rich-text-editor/renderer/popup-renderer.js +5 -5
  162. package/src/rich-text-editor/renderer/render.d.ts +2 -2
  163. package/src/rich-text-editor/renderer/render.js +2 -2
  164. package/src/rich-text-editor/renderer/table-module.d.ts +3 -2
  165. package/src/rich-text-editor/renderer/table-module.js +15 -18
  166. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +9 -9
  167. package/src/rich-text-editor/renderer/toolbar-renderer.js +9 -10
  168. package/src/rich-text-editor/renderer/video-module.d.ts +1 -1
  169. package/src/rich-text-editor/renderer/video-module.js +1 -1
  170. package/src/rich-text-editor/renderer/view-source.d.ts +5 -5
  171. package/src/rich-text-editor/renderer/view-source.js +5 -5
  172. package/src/rich-text-editor/services/renderer-factory.d.ts +3 -3
  173. package/src/rich-text-editor/services/renderer-factory.js +3 -3
  174. package/src/rich-text-editor/services/service-locator.d.ts +3 -3
  175. package/src/rich-text-editor/services/service-locator.js +3 -3
  176. package/src/selection/selection.d.ts +22 -22
  177. package/src/selection/selection.js +22 -22
  178. package/styles/material3-dark.scss +1 -1
  179. package/styles/material3.scss +1 -1
  180. package/styles/rich-text-editor/material3-dark.scss +1 -1
  181. package/styles/rich-text-editor/material3.scss +1 -1
  182. package/dist/ej2-richtexteditor.min.js +0 -10
  183. package/dist/global/ej2-richtexteditor.min.js +0 -11
  184. package/dist/global/ej2-richtexteditor.min.js.map +0 -1
  185. package/dist/global/index.d.ts +0 -14
  186. package/tslint.json +0 -111
@@ -1,4 +1,4 @@
1
- import { isNullOrUndefined, Browser, addClass, removeClass, selectAll as selectAll$1, createElement, detach, SanitizeHtmlHelper, extend, EventHandler, closest, getInstance, formatUnit, select, Ajax, Base, Property, Event as Event$1, NotifyPropertyChanges, ChildProperty, KeyboardEvents as KeyboardEvents$1, setStyleAttribute, getUniqueID, append, debounce, Observer, prepend, attributes, getComponent, getEnumValue, Complex, Component, print, L10n, compile, Touch } from '@syncfusion/ej2-base';
1
+ import { isNullOrUndefined, Browser, addClass, removeClass, selectAll as selectAll$1, createElement, detach, SanitizeHtmlHelper, extend, EventHandler, closest, getInstance, formatUnit, select, Ajax, Base, Property, Event as Event$1, NotifyPropertyChanges, getComponent, ChildProperty, KeyboardEvents as KeyboardEvents$1, setStyleAttribute, getUniqueID, append, debounce, Observer, prepend, attributes, getEnumValue, Complex, Component, print, L10n, compile, Touch } from '@syncfusion/ej2-base';
2
2
  import { Toolbar as Toolbar$1 } from '@syncfusion/ej2-navigations';
3
3
  import { DropDownButton } from '@syncfusion/ej2-splitbuttons';
4
4
  import { Tooltip, Popup, Dialog, isCollide, getScrollableParent } from '@syncfusion/ej2-popups';
@@ -4793,11 +4793,6 @@ class NodeSelection {
4793
4793
  /**
4794
4794
  * Defines common util methods used by Rich Text Editor.
4795
4795
  */
4796
- const inlineNode$1 = ['a', 'abbr', 'acronym', 'audio', 'b', 'bdi', 'bdo', 'big', 'br', 'button',
4797
- 'canvas', 'cite', 'code', 'data', 'datalist', 'del', 'dfn', 'em', 'embed', 'font', 'i', 'iframe', 'img', 'input',
4798
- 'ins', 'kbd', 'label', 'map', 'mark', 'meter', 'noscript', 'object', 'output', 'picture', 'progress',
4799
- 'q', 'ruby', 's', 'samp', 'script', 'select', 'slot', 'small', 'span', 'strong', 'strike', 'sub', 'sup', 'svg',
4800
- 'template', 'textarea', 'time', 'u', 'tt', 'var', 'video', 'wbr'];
4801
4796
  /**
4802
4797
  * @returns {void}
4803
4798
  * @hidden
@@ -4825,109 +4820,68 @@ function setEditFrameFocus(editableElement, selector) {
4825
4820
  }
4826
4821
  /**
4827
4822
  * @param {string} value - specifies the string value
4828
- * @param {string} enterAction - specifies the enter key action API
4829
4823
  * @returns {void}
4830
4824
  * @hidden
4831
4825
  */
4832
- function updateTextNode$1(value, enterAction) {
4833
- const tempNode = document.createElement('div');
4834
- tempNode.innerHTML = value;
4835
- tempNode.setAttribute('class', 'tempDiv');
4826
+ function updateTextNode$1(value) {
4836
4827
  const resultElm = document.createElement('div');
4837
- const childNodes = tempNode.childNodes;
4838
- if (childNodes.length > 0) {
4839
- let isPreviousInlineElem;
4840
- let previousParent;
4841
- let paraElm;
4842
- while (tempNode.firstChild) {
4843
- if ((tempNode.firstChild.nodeName === '#text' &&
4844
- (tempNode.firstChild.textContent.indexOf('\n') < 0 || tempNode.firstChild.textContent.trim() !== '')) ||
4845
- inlineNode$1.indexOf(tempNode.firstChild.nodeName.toLocaleLowerCase()) >= 0) {
4846
- if (!isPreviousInlineElem) {
4847
- if (enterAction === 'BR') {
4848
- resultElm.appendChild(tempNode.firstChild);
4849
- previousParent = resultElm;
4850
- }
4851
- else {
4852
- paraElm = createElement('p');
4853
- resultElm.appendChild(paraElm);
4854
- paraElm.appendChild(tempNode.firstChild);
4855
- previousParent = paraElm;
4856
- isPreviousInlineElem = true;
4857
- }
4858
- }
4859
- else {
4860
- previousParent.appendChild(tempNode.firstChild);
4861
- previousParent = paraElm;
4862
- isPreviousInlineElem = true;
4863
- }
4828
+ resultElm.innerHTML = value;
4829
+ const tableElm = resultElm.querySelectorAll('table');
4830
+ for (let i = 0; i < tableElm.length; i++) {
4831
+ if (tableElm[i].classList.length > 0 &&
4832
+ !tableElm[i].classList.contains('e-rte-table') && !tableElm[i].classList.contains('e-rte-custom-table')) {
4833
+ tableElm[i].classList.add('e-rte-paste-table');
4834
+ if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
4835
+ tableElm[i].classList.remove('e-rte-paste-word-table');
4836
+ continue; // Skiping the removal of the border if the source is from word.
4864
4837
  }
4865
- else if (tempNode.firstChild.nodeName === '#text' && (tempNode.firstChild.textContent === '\n' ||
4866
- (tempNode.firstChild.textContent.indexOf('\n') >= 0 && tempNode.firstChild.textContent.trim() === ''))) {
4867
- detach(tempNode.firstChild);
4868
- }
4869
- else {
4870
- resultElm.appendChild(tempNode.firstChild);
4871
- isPreviousInlineElem = false;
4872
- }
4873
- }
4874
- const tableElm = resultElm.querySelectorAll('table');
4875
- for (let i = 0; i < tableElm.length; i++) {
4876
- if (tableElm[i].classList.length > 0 &&
4877
- !tableElm[i].classList.contains('e-rte-table') && !tableElm[i].classList.contains('e-rte-custom-table')) {
4878
- tableElm[i].classList.add('e-rte-paste-table');
4879
- if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
4880
- tableElm[i].classList.remove('e-rte-paste-word-table');
4881
- continue; // Skiping the removal of the border if the source is from word.
4838
+ else if (tableElm[i].classList.contains('e-rte-paste-excel-table')) {
4839
+ tableElm[i].classList.remove('e-rte-paste-excel-table');
4840
+ if (tableElm[i].getAttribute('border') === '0') {
4841
+ tableElm[i].removeAttribute('border');
4882
4842
  }
4883
- else if (tableElm[i].classList.contains('e-rte-paste-excel-table')) {
4884
- tableElm[i].classList.remove('e-rte-paste-excel-table');
4885
- if (tableElm[i].getAttribute('border') === '0') {
4886
- tableElm[i].removeAttribute('border');
4843
+ const tdElm = tableElm[i].querySelectorAll('td');
4844
+ for (let j = 0; j < tdElm.length; j++) {
4845
+ if (tdElm[j].style.borderLeft === 'none') {
4846
+ tdElm[j].style.removeProperty('border-left');
4887
4847
  }
4888
- const tdElm = tableElm[i].querySelectorAll('td');
4889
- for (let j = 0; j < tdElm.length; j++) {
4890
- if (tdElm[j].style.borderLeft === 'none') {
4891
- tdElm[j].style.removeProperty('border-left');
4892
- }
4893
- if (tdElm[j].style.borderRight === 'none') {
4894
- tdElm[j].style.removeProperty('border-right');
4895
- }
4896
- if (tdElm[j].style.borderBottom === 'none') {
4897
- tdElm[j].style.removeProperty('border-bottom');
4898
- }
4899
- if (tdElm[j].style.borderTop === 'none') {
4900
- tdElm[j].style.removeProperty('border-top');
4901
- }
4902
- if (tdElm[j].style.border === 'none') {
4903
- tdElm[j].style.removeProperty('border');
4904
- }
4848
+ if (tdElm[j].style.borderRight === 'none') {
4849
+ tdElm[j].style.removeProperty('border-right');
4850
+ }
4851
+ if (tdElm[j].style.borderBottom === 'none') {
4852
+ tdElm[j].style.removeProperty('border-bottom');
4853
+ }
4854
+ if (tdElm[j].style.borderTop === 'none') {
4855
+ tdElm[j].style.removeProperty('border-top');
4856
+ }
4857
+ if (tdElm[j].style.border === 'none') {
4858
+ tdElm[j].style.removeProperty('border');
4905
4859
  }
4906
- }
4907
- else if (tableElm[i].classList.contains('e-rte-paste-onenote-table')) {
4908
- tableElm[i].classList.remove('e-rte-paste-onenote-table');
4909
- continue;
4910
- }
4911
- else if (tableElm[i].classList.contains('e-rte-paste-html-table')) {
4912
- tableElm[i].classList.remove('e-rte-paste-html-table');
4913
- continue;
4914
4860
  }
4915
4861
  }
4916
- }
4917
- const imageElm = resultElm.querySelectorAll('img');
4918
- for (let i = 0; i < imageElm.length; i++) {
4919
- if (imageElm[i].classList.contains('e-rte-image-unsupported')) {
4920
- continue; // Should not add the class if the image is Broken.
4921
- }
4922
- if (!imageElm[i].classList.contains('e-rte-image')) {
4923
- imageElm[i].classList.add('e-rte-image');
4862
+ else if (tableElm[i].classList.contains('e-rte-paste-onenote-table')) {
4863
+ tableElm[i].classList.remove('e-rte-paste-onenote-table');
4864
+ continue;
4924
4865
  }
4925
- if (!(imageElm[i].classList.contains('e-imginline') ||
4926
- imageElm[i].classList.contains('e-imgbreak'))) {
4927
- imageElm[i].classList.add('e-imginline');
4866
+ else if (tableElm[i].classList.contains('e-rte-paste-html-table')) {
4867
+ tableElm[i].classList.remove('e-rte-paste-html-table');
4868
+ continue;
4928
4869
  }
4929
4870
  }
4930
4871
  }
4872
+ const imageElm = resultElm.querySelectorAll('img');
4873
+ for (let i = 0; i < imageElm.length; i++) {
4874
+ if (imageElm[i].classList.contains('e-rte-image-unsupported')) {
4875
+ continue; // Should not add the class if the image is Broken.
4876
+ }
4877
+ if (!imageElm[i].classList.contains('e-rte-image')) {
4878
+ imageElm[i].classList.add('e-rte-image');
4879
+ }
4880
+ if (!(imageElm[i].classList.contains('e-imginline') ||
4881
+ imageElm[i].classList.contains('e-imgbreak'))) {
4882
+ imageElm[i].classList.add('e-imginline');
4883
+ }
4884
+ }
4931
4885
  return resultElm.innerHTML;
4932
4886
  }
4933
4887
  /**
@@ -6143,7 +6097,6 @@ class ToolbarRenderer {
6143
6097
  let proxy = this;
6144
6098
  let value;
6145
6099
  const colorPicker = new ColorPicker({
6146
- enablePersistence: this.parent.enablePersistence,
6147
6100
  enableRtl: this.parent.enableRtl,
6148
6101
  inline: true,
6149
6102
  value: null,
@@ -6654,10 +6607,10 @@ class Link {
6654
6607
  }
6655
6608
  if (!this.selfLink.isUrl(linkUrl)) {
6656
6609
  if (this.selfLink.parent.editorMode === 'Markdown') {
6657
- linkText = (linkText !== '') ? linkText : '';
6610
+ linkText = (linkText.trim() !== '') ? linkText : '';
6658
6611
  }
6659
6612
  else {
6660
- linkText = (linkText === '') ? linkUrl : linkText;
6613
+ linkText = (linkText.trim() === '') ? linkUrl : linkText;
6661
6614
  }
6662
6615
  if (!this.selfLink.parent.enableAutoUrl) {
6663
6616
  linkUrl = linkUrl.indexOf('http') > -1 ? linkUrl : 'http://' + linkUrl;
@@ -12002,12 +11955,12 @@ const DESTROY = 'destroy';
12002
11955
  */
12003
11956
  const INTERNAL_DESTROY = 'internal_destroy';
12004
11957
 
12005
- var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
12006
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
12007
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
12008
- 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;
12009
- return c > 3 && r && Object.defineProperty(target, key, r), r;
12010
- };
11958
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
11959
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
11960
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11961
+ 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;
11962
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
11963
+ };
12011
11964
  var KeyboardEvents_1;
12012
11965
  const keyCode = {
12013
11966
  'backspace': 8,
@@ -12488,7 +12441,6 @@ class Table {
12488
12441
  this.parent.on(tableToolbarAction, this.onToolbarAction, this);
12489
12442
  this.parent.on(dropDownSelect, this.dropdownSelect, this);
12490
12443
  this.parent.on(keyDown, this.keyDown, this);
12491
- this.parent.on(keyUp, this.keyUp, this);
12492
12444
  this.parent.on(tableModulekeyUp, this.tableModulekeyUp, this);
12493
12445
  this.parent.on(bindCssClass, this.setCssClass, this);
12494
12446
  this.parent.on(destroy, this.destroy, this);
@@ -12509,7 +12461,6 @@ class Table {
12509
12461
  this.parent.off(mouseDown, this.cellSelect);
12510
12462
  this.parent.off(tableColorPickerChanged, this.setBGColor);
12511
12463
  this.parent.off(keyDown, this.keyDown);
12512
- this.parent.off(keyUp, this.keyUp);
12513
12464
  this.parent.off(tableModulekeyUp, this.tableModulekeyUp);
12514
12465
  this.parent.off(bindCssClass, this.setCssClass);
12515
12466
  this.parent.off(destroy, this.destroy);
@@ -12606,20 +12557,6 @@ class Table {
12606
12557
  this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });
12607
12558
  this.hideTableQuickToolbar();
12608
12559
  }
12609
- keyUp(e) {
12610
- const target = e.args.target;
12611
- if (e.args.key.toLocaleLowerCase() === 'escape' && target && target.classList && (this.popupObj && !closest(target, '[id=' + '\'' + this.popupObj.element.id + '\'' + ']')) && this.popupObj) {
12612
- let createTableToolbarBtn = this.popupObj.relateTo;
12613
- if (createTableToolbarBtn.nodeName !== 'BUTTON') {
12614
- createTableToolbarBtn = createTableToolbarBtn.querySelector('span.e-create-table');
12615
- createTableToolbarBtn = createTableToolbarBtn.parentElement;
12616
- }
12617
- this.popupObj.hide();
12618
- if (createTableToolbarBtn) {
12619
- createTableToolbarBtn.focus();
12620
- }
12621
- }
12622
- }
12623
12560
  keyDown(e) {
12624
12561
  const event = e.args;
12625
12562
  // eslint-disable-next-line
@@ -14191,6 +14128,8 @@ class Table {
14191
14128
  const header = '1X1';
14192
14129
  const insertbtn = this.l10n.getConstant('inserttablebtn');
14193
14130
  this.dlgDiv = this.parent.createElement('div', { className: 'e-rte-table-popup' + this.parent.getCssClass(true), id: this.rteID + '_table' });
14131
+ this.createTablePopupBoundFn = this.createTablePopupKeyDown.bind(this);
14132
+ this.dlgDiv.addEventListener('keydown', this.createTablePopupBoundFn);
14194
14133
  this.tblHeader = this.parent.createElement('div', { className: 'e-rte-popup-header' + this.parent.getCssClass(true) });
14195
14134
  this.tblHeader.innerHTML = header;
14196
14135
  this.dlgDiv.appendChild(this.tblHeader);
@@ -14228,6 +14167,7 @@ class Table {
14228
14167
  // eslint-disable-next-line
14229
14168
  close: (event) => {
14230
14169
  EventHandler.remove(btnEle, 'click', this.insertTableDialog);
14170
+ this.dlgDiv.removeEventListener('keydown', this.createTablePopupBoundFn);
14231
14171
  detach(btnEle);
14232
14172
  if (this.createTableButton && !this.createTableButton.isDestroyed) {
14233
14173
  this.createTableButton.destroy();
@@ -14609,6 +14549,7 @@ class Table {
14609
14549
  this.createTableButton.destroy();
14610
14550
  this.createTableButton = null;
14611
14551
  }
14552
+ this.createTablePopupBoundFn = null;
14612
14553
  this.isDestroyed = true;
14613
14554
  }
14614
14555
  /**
@@ -14634,6 +14575,15 @@ class Table {
14634
14575
  'px; left:' + (tablePosition.left + parseInt(getComputedStyle(this.curTable).width, 10) - 4) + 'px;';
14635
14576
  }
14636
14577
  }
14578
+ createTablePopupKeyDown(e) {
14579
+ if (e.key === 'Escape') {
14580
+ const popupRootElem = e.target.closest('.e-rte-table-popup');
14581
+ const popup = getComponent(popupRootElem, 'popup');
14582
+ const tableToolbarButton = popup.relateTo;
14583
+ popup.hide();
14584
+ tableToolbarButton.focus({ preventScroll: true });
14585
+ }
14586
+ }
14637
14587
  }
14638
14588
 
14639
14589
  /**
@@ -15622,12 +15572,12 @@ class PopupRenderer {
15622
15572
  }
15623
15573
  }
15624
15574
 
15625
- var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15626
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15627
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15628
- 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;
15629
- return c > 3 && r && Object.defineProperty(target, key, r), r;
15630
- };
15575
+ var __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
15576
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15577
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
15578
+ 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;
15579
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
15580
+ };
15631
15581
  /**
15632
15582
  * Configures the slash menu settings of the RichTextEditor.
15633
15583
  */
@@ -22303,7 +22253,7 @@ class InsertHtml {
22303
22253
  nodeSelection.setSelectionText(docElement, lastSelectionNode, lastSelectionNode, 0, 0);
22304
22254
  }
22305
22255
  else {
22306
- this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);
22256
+ this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode);
22307
22257
  }
22308
22258
  this.alignCheck(editNode);
22309
22259
  this.listCleanUp(nodeSelection, docElement);
@@ -22563,9 +22513,9 @@ class InsertHtml {
22563
22513
  }
22564
22514
  }
22565
22515
  }
22566
- static cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction) {
22516
+ static cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode) {
22567
22517
  lastSelectionNode.classList.add('lastNode');
22568
- editNode.innerHTML = updateTextNode$1(editNode.innerHTML, enterAction);
22518
+ editNode.innerHTML = updateTextNode$1(editNode.innerHTML);
22569
22519
  lastSelectionNode = editNode.querySelector('.lastNode');
22570
22520
  if (!isNullOrUndefined(lastSelectionNode)) {
22571
22521
  this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);
@@ -24044,6 +23994,17 @@ class Lists {
24044
23994
  }
24045
23995
  return false;
24046
23996
  }
23997
+ createAutoList(enterKey, shiftEnterKey) {
23998
+ const autoListRules = {
23999
+ BR: { BR: true, P: true, DIV: true },
24000
+ P: { BR: false, P: true, DIV: true },
24001
+ DIV: { BR: false, P: true, DIV: true }
24002
+ };
24003
+ if (autoListRules[enterKey] && autoListRules[enterKey][shiftEnterKey] !== undefined) {
24004
+ return autoListRules[enterKey][shiftEnterKey];
24005
+ }
24006
+ return false;
24007
+ }
24047
24008
  spaceList(e) {
24048
24009
  const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
24049
24010
  this.saveSelection = this.parent.nodeSelection.save(range, this.parent.currentDocument);
@@ -24059,7 +24020,8 @@ class Lists {
24059
24020
  const startElementOLTest = this.testCurrentList(range);
24060
24021
  const preElementOLTest = this.testList(preElement);
24061
24022
  const nextElementOLTest = this.testList(nextElement);
24062
- if (!preElementOLTest && !nextElementOLTest && preElemULStart !== '*' && nextElemULStart !== '*') {
24023
+ const nextElementBRTest = range.startContainer.previousElementSibling && range.startContainer.previousElementSibling.tagName === 'BR';
24024
+ if (!preElementOLTest && !nextElementOLTest && preElemULStart !== '*' && nextElemULStart !== '*' && (this.createAutoList(e.enterKey, e.shiftEnterKey) || !nextElementBRTest)) {
24063
24025
  const brElement = createElement('br');
24064
24026
  if (startElementOLTest) {
24065
24027
  range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);
@@ -33007,7 +32969,9 @@ class HtmlEditor {
33007
32969
  const eventArgs = {
33008
32970
  callBack: null,
33009
32971
  event: e.args,
33010
- name: 'keydown-handler'
32972
+ name: 'keydown-handler',
32973
+ enterKey: this.parent.enterKey,
32974
+ shiftEnterKey: this.parent.shiftEnterKey
33011
32975
  };
33012
32976
  const actionBeginArgs = {
33013
32977
  cancel: false,
@@ -33143,6 +33107,26 @@ class HtmlEditor {
33143
33107
  if (isNullOrUndefined(this.oldRangeElement)) {
33144
33108
  return;
33145
33109
  }
33110
+ else if (findBlockElement[0].previousSibling) {
33111
+ const prevSibling = findBlockElement[0].previousSibling;
33112
+ const currentElement = findBlockElement[0];
33113
+ if (prevSibling.textContent.trim()) {
33114
+ if (prevSibling.lastChild.nodeName === 'BR') {
33115
+ prevSibling.removeChild(prevSibling.lastChild);
33116
+ }
33117
+ const cursorpointer = prevSibling.lastChild.textContent.length;
33118
+ const lastChild = prevSibling.lastChild;
33119
+ const childNodes = Array.from(currentElement.childNodes);
33120
+ for (let i = 0; i < childNodes.length; i++) {
33121
+ prevSibling.appendChild(childNodes[i].cloneNode(true));
33122
+ }
33123
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), lastChild, cursorpointer);
33124
+ currentElement.parentNode.removeChild(currentElement);
33125
+ }
33126
+ else {
33127
+ prevSibling.parentNode.removeChild(prevSibling);
33128
+ }
33129
+ }
33146
33130
  else {
33147
33131
  if (this.oldRangeElement.tagName === 'OL' || this.oldRangeElement.tagName === 'UL') {
33148
33132
  this.oldRangeElement = this.oldRangeElement.lastElementChild.lastElementChild
@@ -33921,28 +33905,6 @@ class PasteCleanup {
33921
33905
  value = tempDivElem.innerHTML;
33922
33906
  const isValueNotEmpty = tempDivElem.textContent !== '' || !isNullOrUndefined(tempDivElem.querySelector('img')) ||
33923
33907
  !isNullOrUndefined(tempDivElem.querySelector('table'));
33924
- const imgElements = tempDivElem.querySelectorAll('img');
33925
- const base = this.parent.contentModule.getDocument().location.origin;
33926
- imgElements.forEach((imgElement) => {
33927
- let imageFileFormat;
33928
- const imgElementSrc = imgElement.getAttribute('src');
33929
- if (!isNullOrUndefined(imgElementSrc) && imgElementSrc !== '') {
33930
- if (imgElementSrc.indexOf('base64') > -1 && imgElementSrc.indexOf('data:') > -1) {
33931
- imageFileFormat = imgElementSrc.split(';')[0].split('/')[1];
33932
- }
33933
- else {
33934
- const parsedUrl = imgElementSrc.indexOf('http') > -1 ? new URL(imgElementSrc) : new URL(imgElementSrc, base);
33935
- const path = parsedUrl.pathname;
33936
- imageFileFormat = path.split('.').pop().toLowerCase();
33937
- }
33938
- if (!isNullOrUndefined(imageFileFormat) &&
33939
- allowedTypes.every((type) => imageFileFormat !== type.substring(1).toLowerCase()) &&
33940
- imgElementSrc.indexOf('blob') === -1) {
33941
- detach(imgElement);
33942
- }
33943
- }
33944
- });
33945
- value = tempDivElem.innerHTML;
33946
33908
  this.parent.notify(cleanupResizeElements, {
33947
33909
  value: value,
33948
33910
  callBack: (currentValue) => {
@@ -34191,7 +34153,11 @@ class PasteCleanup {
34191
34153
  this.parent.inputElement.contentEditable = 'true';
34192
34154
  detach(imgElem);
34193
34155
  if (popupObj) {
34194
- popupObj.close();
34156
+ this.parent.isBlur = false;
34157
+ popupObj.destroy();
34158
+ if (!isNullOrUndefined(popupObj.element)) {
34159
+ detach(popupObj.element);
34160
+ }
34195
34161
  }
34196
34162
  this.parent.trigger(imageUploadFailed, e);
34197
34163
  if (uploadObj && document.body.contains(uploadObj.element)) {
@@ -34207,7 +34173,7 @@ class PasteCleanup {
34207
34173
  this.parent.trigger(imageUploadSuccess, e, (e) => {
34208
34174
  if (!isNullOrUndefined(this.parent.insertImageSettings.path)) {
34209
34175
  const url = this.parent.insertImageSettings.path + e.file.name;
34210
- if (!this.parent.inputElement.contains(imgElem)) {
34176
+ if (!this.parent.inputElement.contains(imgElem) && imgElem.id) {
34211
34177
  const imgHtmlElems = this.parent.inputElement.querySelectorAll('#' + imgElem.id);
34212
34178
  for (let i = 0; i < imgHtmlElems.length; i++) {
34213
34179
  const imgHtmlElem = imgHtmlElems[i];
@@ -34232,13 +34198,22 @@ class PasteCleanup {
34232
34198
  });
34233
34199
  }
34234
34200
  this.popupCloseTime = setTimeout(() => {
34235
- popupObj.close();
34236
- if (!this.parent.inputElement.contains(imgElem)) {
34237
- const imgHtmlElems = this.parent.inputElement.querySelectorAll('#' + imgElem.id);
34238
- for (let i = 0; i < imgHtmlElems.length; i++) {
34239
- const imgHtmlElem = imgHtmlElems[i];
34240
- if (imgHtmlElem && imgHtmlElem.style && imgHtmlElem.style.opacity === '0.5') {
34241
- imgHtmlElem.style.opacity = '1';
34201
+ if (popupObj) {
34202
+ this.parent.isBlur = false;
34203
+ popupObj.destroy();
34204
+ if (!isNullOrUndefined(popupObj.element)) {
34205
+ detach(popupObj.element);
34206
+ }
34207
+ }
34208
+ if (!this.parent.inputElement.contains(imgElem) && (imgElem.id || imgElem.alt)) {
34209
+ const selector = imgElem.id ? `#${imgElem.id}` : `[alt="${imgElem.alt}"]`;
34210
+ if (selector) {
34211
+ const imgHtmlElems = this.parent.inputElement.querySelectorAll(selector);
34212
+ for (let i = 0; i < imgHtmlElems.length; i++) {
34213
+ const imgHtmlElem = imgHtmlElems[i];
34214
+ if (imgHtmlElem && imgHtmlElem.style && imgHtmlElem.style.opacity === '0.5') {
34215
+ imgHtmlElem.style.opacity = '1';
34216
+ }
34242
34217
  }
34243
34218
  }
34244
34219
  }
@@ -35035,13 +35010,24 @@ class Resize {
35035
35010
  this.iframeElement = this.parent.contentModule.getDocument().querySelectorAll('iframe');
35036
35011
  if (!isNullOrUndefined(this.iframeElement)) {
35037
35012
  this.iframeElement.forEach((iframe) => {
35038
- EventHandler.add(iframe.contentDocument, 'mouseup', this.stopResize, this);
35013
+ EventHandler.add(iframe, 'load', this.onIFrameLoad, this);
35039
35014
  });
35040
35015
  }
35041
35016
  this.touchStartEvent = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';
35042
35017
  EventHandler.add(this.resizer, 'mousedown', this.resizeStart, this);
35043
35018
  EventHandler.add(this.resizer, this.touchStartEvent, this.resizeStart, this);
35044
35019
  }
35020
+ onIFrameLoad(e) {
35021
+ const iframe = e.target;
35022
+ if (iframe.nodeName === 'IFRAME' && iframe.contentDocument) {
35023
+ EventHandler.add(iframe.contentDocument, 'mouseup', this.stopResize, this);
35024
+ }
35025
+ }
35026
+ removeMouseUpEventListener(iframe) {
35027
+ if (iframe.contentDocument) {
35028
+ EventHandler.remove(iframe.contentDocument, 'mouseup', this.stopResize);
35029
+ }
35030
+ }
35045
35031
  resizeStart(e) {
35046
35032
  this.isResizing = false;
35047
35033
  if (e.cancelable) {
@@ -35145,7 +35131,7 @@ class Resize {
35145
35131
  }
35146
35132
  if (!isNullOrUndefined(this.iframeElement)) {
35147
35133
  this.iframeElement.forEach((iframe) => {
35148
- EventHandler.remove(iframe.contentDocument, 'mouseup', this.stopResize);
35134
+ this.removeMouseUpEventListener(iframe);
35149
35135
  });
35150
35136
  }
35151
35137
  if (this.resizer) {
@@ -37089,12 +37075,12 @@ class RendererFactory {
37089
37075
  }
37090
37076
  }
37091
37077
 
37092
- var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37093
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37094
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37095
- 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;
37096
- return c > 3 && r && Object.defineProperty(target, key, r), r;
37097
- };
37078
+ var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37079
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37080
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37081
+ 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;
37082
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
37083
+ };
37098
37084
  /**
37099
37085
  * Configures the toolbar settings of the RichTextEditor.
37100
37086
  */
@@ -37520,12 +37506,12 @@ __decorate$2([
37520
37506
  Property(bulletFormatList)
37521
37507
  ], BulletFormatList.prototype, "types", void 0);
37522
37508
 
37523
- var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37524
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37525
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37526
- 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;
37527
- return c > 3 && r && Object.defineProperty(target, key, r), r;
37528
- };
37509
+ var __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37510
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37511
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37512
+ 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;
37513
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
37514
+ };
37529
37515
  /**
37530
37516
  * Objects used for configuring the iframe resources properties.
37531
37517
  */
@@ -37558,12 +37544,12 @@ __decorate$3([
37558
37544
  Property(null)
37559
37545
  ], IFrameSettings.prototype, "sandbox", void 0);
37560
37546
 
37561
- var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37562
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37563
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37564
- 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;
37565
- return c > 3 && r && Object.defineProperty(target, key, r), r;
37566
- };
37547
+ var __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
37548
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
37549
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
37550
+ 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;
37551
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
37552
+ };
37567
37553
  /**
37568
37554
  * Configures the inlineMode property of the RTE.
37569
37555
  */
@@ -37726,7 +37712,7 @@ class EnterKeyAction {
37726
37712
  if ((this.parent.enterKey === 'P' && !shiftKey) || (this.parent.enterKey === 'DIV' && !shiftKey) ||
37727
37713
  (this.parent.shiftEnterKey === 'P' && shiftKey) ||
37728
37714
  (this.parent.shiftEnterKey === 'DIV' && shiftKey)) {
37729
- if ((this.range.startOffset === 1 && this.parent.inputElement.childNodes.length === 1 && this.parent.inputElement.childNodes[0].nodeName === 'TABLE') || (this.parent.enterKey === 'BR' && shiftKey)) {
37715
+ if ((this.range.startOffset === 1 && this.parent.inputElement.childNodes.length === 1 && this.parent.inputElement.childNodes[0].nodeName === 'TABLE')) {
37730
37716
  const newElem = this.createInsertElement(shiftKey);
37731
37717
  newElem.appendChild(this.parent.createElement('BR'));
37732
37718
  this.parent.inputElement.appendChild(newElem);
@@ -37785,8 +37771,9 @@ class EnterKeyAction {
37785
37771
  (this.range.startContainer.nodeName === '#text' && !isNullOrUndefined(this.range.startContainer.textContent[this.range.startOffset]) &&
37786
37772
  this.range.startContainer.textContent[this.range.startOffset].includes('\u200B') && this.range.startContainer.textContent[this.range.startOffset] === '\u200B' &&
37787
37773
  this.parent.inputElement.textContent[0] !== '\u200B'));
37774
+ const preventEnterkeyShiftKey = (this.range.startContainer.nodeName === '#text' || this.range.startContainer.nodeName === 'BR') && (this.range.startOffset === 0 && this.range.endOffset === 0) && this.range.startContainer.parentElement === this.parent.inputElement && this.parent.enterKey === 'BR' && shiftKey;
37788
37775
  // eslint-disable-next-line max-len
37789
- if (!preventZeroWithSpace && !fireFoxEnterAtMiddle && ((this.range.startOffset === 0 && this.range.endOffset === 0) || isFocusedFirst) &&
37776
+ if (!preventEnterkeyShiftKey && !preventZeroWithSpace && !fireFoxEnterAtMiddle && ((this.range.startOffset === 0 && this.range.endOffset === 0) || isFocusedFirst) &&
37790
37777
  !(!isNullOrUndefined(this.range.startContainer.previousSibling) &&
37791
37778
  (this.range.startContainer.previousSibling.nodeName === 'IMG' || this.range.startContainer.previousSibling.nodeName === 'BR'))) {
37792
37779
  let isNearBlockLengthZero;
@@ -37851,7 +37838,7 @@ class EnterKeyAction {
37851
37838
  }
37852
37839
  this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), insertElem.nextElementSibling, 0);
37853
37840
  }
37854
- else if (nearBlockNode.textContent.length === 0 && !(!isNullOrUndefined(nearBlockNode.childNodes[0]) && nearBlockNode.childNodes[0].nodeName === 'IMG' ||
37841
+ else if (nearBlockNode !== this.parent.inputElement && nearBlockNode.textContent.length === 0 && !(!isNullOrUndefined(nearBlockNode.childNodes[0]) && nearBlockNode.childNodes[0].nodeName === 'IMG' ||
37855
37842
  (nearBlockNode.querySelectorAll('video').length > 0) || (nearBlockNode.querySelectorAll('audio').length > 0) || (nearBlockNode.querySelectorAll('img').length > 0))) {
37856
37843
  if (!isNullOrUndefined(nearBlockNode.children[0]) && nearBlockNode.children[0].tagName !== 'BR') {
37857
37844
  const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, false).cloneNode(true);
@@ -37907,6 +37894,36 @@ class EnterKeyAction {
37907
37894
  this.parent.videoModule.hideVideoQuickToolbar();
37908
37895
  }
37909
37896
  }
37897
+ else if (this.parent.enterKey === 'BR' && shiftKey && this.range.startContainer.nodeType === Node.TEXT_NODE && this.range.startContainer.parentElement && this.range.startContainer.parentElement === this.parent.inputElement) {
37898
+ const range = this.range;
37899
+ const startContainer = range.startContainer;
37900
+ const startOffset = range.startOffset;
37901
+ const newElement = this.parent.createElement(this.parent.shiftEnterKey);
37902
+ if (startContainer.nodeType === Node.TEXT_NODE && range.endOffset !== 0 && range.startOffset !== 0) {
37903
+ const textNode = startContainer;
37904
+ if (startOffset < textNode.length) {
37905
+ const newTextNode = textNode.splitText(startOffset);
37906
+ newElement.appendChild(newTextNode);
37907
+ }
37908
+ else {
37909
+ newElement.innerHTML = '<br>';
37910
+ }
37911
+ textNode.parentNode.insertBefore(newElement, textNode.nextSibling);
37912
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), newElement, 0);
37913
+ }
37914
+ else if (startOffset === 0 && range.endOffset === 0) {
37915
+ newElement.innerHTML = '<br>';
37916
+ if (range.endOffset === startContainer.textContent.length) {
37917
+ const brElement = this.parent.createElement('br');
37918
+ startContainer.parentNode.insertBefore(brElement, startContainer);
37919
+ }
37920
+ startContainer.parentNode.insertBefore(newElement, startContainer);
37921
+ const cursorTarget = (range.endOffset === startContainer.textContent.length)
37922
+ ? newElement : newElement.nextSibling;
37923
+ startContainer.parentNode.insertBefore(newElement, startContainer);
37924
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), cursorTarget, 0);
37925
+ }
37926
+ }
37910
37927
  else {
37911
37928
  const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, nearBlockNode, true);
37912
37929
  if (!isNullOrUndefined(newElem.childNodes[0]) && newElem.childNodes[0].nodeName === '#text' &&
@@ -38268,12 +38285,12 @@ class EnterKeyAction {
38268
38285
  }
38269
38286
  }
38270
38287
 
38271
- var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38272
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38273
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38274
- 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;
38275
- return c > 3 && r && Object.defineProperty(target, key, r), r;
38276
- };
38288
+ var __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
38289
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
38290
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
38291
+ 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;
38292
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
38293
+ };
38277
38294
  /**
38278
38295
  * Represents the Rich Text Editor component.
38279
38296
  * ```html
@@ -39769,7 +39786,7 @@ let RichTextEditor = class RichTextEditor extends Component {
39769
39786
  this.placeHolderWrapper.innerHTML = this.placeholder;
39770
39787
  if (this.inputElement.textContent.length === 0 && this.inputElement.childNodes.length < 2 && !isNullOrUndefined(this.inputElement.firstChild) && (this.inputElement.firstChild.nodeName === 'BR' ||
39771
39788
  ((this.inputElement.firstChild.nodeName === 'P' || this.inputElement.firstChild.nodeName === 'DIV') && !isNullOrUndefined(this.inputElement.firstChild.firstChild) &&
39772
- this.inputElement.firstChild.firstChild.nodeName === 'BR'))) {
39789
+ this.inputElement.firstChild.childNodes.length < 2 && this.inputElement.firstChild.firstChild.nodeName === 'BR'))) {
39773
39790
  this.placeHolderWrapper.classList.add('enabled');
39774
39791
  }
39775
39792
  else {
@@ -40503,7 +40520,6 @@ let RichTextEditor = class RichTextEditor extends Component {
40503
40520
  const value = this.getUpdatedValue();
40504
40521
  this.setProperties({ value: value });
40505
40522
  this.valueContainer.value = this.value;
40506
- this.notify(toolbarRefresh, { args: e, documentNode: document });
40507
40523
  this.isValueChangeBlurhandler = true;
40508
40524
  this.invokeChangeEvent();
40509
40525
  this.isFocusOut = true;