@syncfusion/ej2-richtexteditor 23.2.7-52849 → 24.1.41-569781

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 (171) hide show
  1. package/.eslintrc.json +260 -0
  2. package/CHANGELOG.md +177 -1
  3. package/dist/ej2-richtexteditor.umd.min.js +1 -1
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +2919 -1147
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +2906 -1133
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/package.json +13 -13
  10. package/src/common/config.d.ts +7 -0
  11. package/src/common/config.js +12 -1
  12. package/src/common/constant.d.ts +6 -0
  13. package/src/common/constant.js +6 -0
  14. package/src/common/interface.d.ts +12 -0
  15. package/src/common/types.d.ts +6 -0
  16. package/src/common/util.d.ts +6 -0
  17. package/src/common/util.js +61 -20
  18. package/src/editor-manager/base/constant.d.ts +6 -0
  19. package/src/editor-manager/base/constant.js +6 -0
  20. package/src/editor-manager/base/editor-manager.d.ts +5 -0
  21. package/src/editor-manager/base/editor-manager.js +59 -0
  22. package/src/editor-manager/base/interface.d.ts +8 -0
  23. package/src/editor-manager/plugin/audio.js +13 -3
  24. package/src/editor-manager/plugin/dom-node.d.ts +5 -1
  25. package/src/editor-manager/plugin/dom-node.js +169 -28
  26. package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -0
  27. package/src/editor-manager/plugin/format-painter-actions.js +19 -1
  28. package/src/editor-manager/plugin/formats.d.ts +1 -0
  29. package/src/editor-manager/plugin/formats.js +38 -3
  30. package/src/editor-manager/plugin/image.js +38 -15
  31. package/src/editor-manager/plugin/inserthtml.d.ts +1 -0
  32. package/src/editor-manager/plugin/inserthtml.js +67 -7
  33. package/src/editor-manager/plugin/link.js +4 -1
  34. package/src/editor-manager/plugin/lists.js +121 -65
  35. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +3 -0
  36. package/src/editor-manager/plugin/ms-word-clean-up.js +215 -85
  37. package/src/editor-manager/plugin/nodecutter.js +2 -2
  38. package/src/editor-manager/plugin/selection-commands.d.ts +1 -0
  39. package/src/editor-manager/plugin/selection-commands.js +165 -3
  40. package/src/editor-manager/plugin/table.d.ts +0 -1
  41. package/src/editor-manager/plugin/table.js +33 -30
  42. package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
  43. package/src/editor-manager/plugin/toolbar-status.js +20 -10
  44. package/src/editor-manager/plugin/undo.d.ts +1 -0
  45. package/src/editor-manager/plugin/undo.js +21 -1
  46. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +3 -3
  47. package/src/rich-text-editor/actions/base-quick-toolbar.js +66 -15
  48. package/src/rich-text-editor/actions/base-toolbar.js +32 -34
  49. package/src/rich-text-editor/actions/color-picker.d.ts +1 -0
  50. package/src/rich-text-editor/actions/color-picker.js +13 -3
  51. package/src/rich-text-editor/actions/count.js +1 -1
  52. package/src/rich-text-editor/actions/dropdown-buttons.js +25 -4
  53. package/src/rich-text-editor/actions/emoji-picker.js +15 -6
  54. package/src/rich-text-editor/actions/enter-key.js +6 -4
  55. package/src/rich-text-editor/actions/file-manager.js +1 -1
  56. package/src/rich-text-editor/actions/format-painter.js +1 -1
  57. package/src/rich-text-editor/actions/full-screen.js +5 -4
  58. package/src/rich-text-editor/actions/html-editor.d.ts +2 -0
  59. package/src/rich-text-editor/actions/html-editor.js +127 -17
  60. package/src/rich-text-editor/actions/keyboard.js +3 -1
  61. package/src/rich-text-editor/actions/markdown-editor.js +3 -1
  62. package/src/rich-text-editor/actions/paste-clean-up.d.ts +5 -0
  63. package/src/rich-text-editor/actions/paste-clean-up.js +156 -28
  64. package/src/rich-text-editor/actions/quick-toolbar.d.ts +7 -0
  65. package/src/rich-text-editor/actions/quick-toolbar.js +45 -11
  66. package/src/rich-text-editor/actions/resize.js +2 -1
  67. package/src/rich-text-editor/actions/toolbar-action.js +1 -1
  68. package/src/rich-text-editor/actions/toolbar.d.ts +3 -3
  69. package/src/rich-text-editor/actions/toolbar.js +35 -96
  70. package/src/rich-text-editor/base/classes.d.ts +5 -5
  71. package/src/rich-text-editor/base/classes.js +5 -5
  72. package/src/rich-text-editor/base/constant.d.ts +46 -1
  73. package/src/rich-text-editor/base/constant.js +215 -1
  74. package/src/rich-text-editor/base/interface.d.ts +47 -3
  75. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +3 -3
  76. package/src/rich-text-editor/base/rich-text-editor.d.ts +16 -4
  77. package/src/rich-text-editor/base/rich-text-editor.js +196 -100
  78. package/src/rich-text-editor/base/util.d.ts +4 -0
  79. package/src/rich-text-editor/base/util.js +57 -5
  80. package/src/rich-text-editor/formatter/formatter.js +15 -4
  81. package/src/rich-text-editor/models/default-locale.js +31 -25
  82. package/src/rich-text-editor/models/items.js +3 -3
  83. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +1 -1
  84. package/src/rich-text-editor/models/toolbar-settings.d.ts +1 -1
  85. package/src/rich-text-editor/models/toolbar-settings.js +1 -1
  86. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -0
  87. package/src/rich-text-editor/renderer/audio-module.js +13 -0
  88. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -0
  89. package/src/rich-text-editor/renderer/dialog-renderer.js +22 -2
  90. package/src/rich-text-editor/renderer/iframe-content-renderer.js +2 -1
  91. package/src/rich-text-editor/renderer/image-module.d.ts +9 -1
  92. package/src/rich-text-editor/renderer/image-module.js +244 -212
  93. package/src/rich-text-editor/renderer/link-module.js +53 -24
  94. package/src/rich-text-editor/renderer/table-module.d.ts +10 -1
  95. package/src/rich-text-editor/renderer/table-module.js +330 -165
  96. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +4 -6
  97. package/src/rich-text-editor/renderer/toolbar-renderer.js +105 -106
  98. package/src/rich-text-editor/renderer/video-module.d.ts +3 -0
  99. package/src/rich-text-editor/renderer/video-module.js +61 -34
  100. package/src/rich-text-editor/renderer/view-source.d.ts +1 -0
  101. package/src/rich-text-editor/renderer/view-source.js +15 -5
  102. package/src/selection/selection.js +3 -0
  103. package/styles/bootstrap-dark.css +345 -99
  104. package/styles/bootstrap.css +353 -108
  105. package/styles/bootstrap4.css +337 -95
  106. package/styles/bootstrap5-dark.css +343 -96
  107. package/styles/bootstrap5.css +343 -96
  108. package/styles/fabric-dark.css +331 -89
  109. package/styles/fabric.css +332 -90
  110. package/styles/fluent-dark.css +342 -92
  111. package/styles/fluent.css +342 -92
  112. package/styles/highcontrast-light.css +331 -89
  113. package/styles/highcontrast.css +335 -90
  114. package/styles/material-dark.css +337 -90
  115. package/styles/material.css +337 -90
  116. package/styles/material3-dark.css +347 -99
  117. package/styles/material3.css +347 -99
  118. package/styles/rich-text-editor/_bds-definition.scss +279 -0
  119. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +14 -10
  120. package/styles/rich-text-editor/_bootstrap-definition.scss +20 -17
  121. package/styles/rich-text-editor/_bootstrap4-definition.scss +11 -7
  122. package/styles/rich-text-editor/_bootstrap5-definition.scss +8 -4
  123. package/styles/rich-text-editor/_fabric-dark-definition.scss +6 -2
  124. package/styles/rich-text-editor/_fabric-definition.scss +7 -3
  125. package/styles/rich-text-editor/_fluent-definition.scss +9 -5
  126. package/styles/rich-text-editor/_fusionnew-definition.scss +7 -3
  127. package/styles/rich-text-editor/_highcontrast-definition.scss +7 -3
  128. package/styles/rich-text-editor/_highcontrast-light-definition.scss +6 -2
  129. package/styles/rich-text-editor/_layout.scss +208 -31
  130. package/styles/rich-text-editor/_material-dark-definition.scss +6 -2
  131. package/styles/rich-text-editor/_material-definition.scss +6 -2
  132. package/styles/rich-text-editor/_material3-definition.scss +16 -12
  133. package/styles/rich-text-editor/_tailwind-definition.scss +25 -21
  134. package/styles/rich-text-editor/_theme.scss +93 -24
  135. package/styles/rich-text-editor/bootstrap-dark.css +345 -99
  136. package/styles/rich-text-editor/bootstrap.css +353 -108
  137. package/styles/rich-text-editor/bootstrap4.css +337 -95
  138. package/styles/rich-text-editor/bootstrap5-dark.css +343 -96
  139. package/styles/rich-text-editor/bootstrap5.css +343 -96
  140. package/styles/rich-text-editor/fabric-dark.css +331 -89
  141. package/styles/rich-text-editor/fabric.css +332 -90
  142. package/styles/rich-text-editor/fluent-dark.css +342 -92
  143. package/styles/rich-text-editor/fluent.css +342 -92
  144. package/styles/rich-text-editor/highcontrast-light.css +331 -89
  145. package/styles/rich-text-editor/highcontrast.css +335 -90
  146. package/styles/rich-text-editor/icons/_bds.scss +348 -0
  147. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +4 -4
  148. package/styles/rich-text-editor/icons/_bootstrap.scss +4 -4
  149. package/styles/rich-text-editor/icons/_bootstrap4.scss +4 -4
  150. package/styles/rich-text-editor/icons/_bootstrap5.scss +4 -4
  151. package/styles/rich-text-editor/icons/_fabric-dark.scss +4 -4
  152. package/styles/rich-text-editor/icons/_fabric.scss +4 -4
  153. package/styles/rich-text-editor/icons/_fluent.scss +4 -4
  154. package/styles/rich-text-editor/icons/_fusionnew.scss +3 -3
  155. package/styles/rich-text-editor/icons/_highcontrast-light.scss +4 -4
  156. package/styles/rich-text-editor/icons/_highcontrast.scss +4 -4
  157. package/styles/rich-text-editor/icons/_material-dark.scss +4 -4
  158. package/styles/rich-text-editor/icons/_material.scss +4 -4
  159. package/styles/rich-text-editor/icons/_material3.scss +4 -4
  160. package/styles/rich-text-editor/icons/_tailwind.scss +4 -4
  161. package/styles/rich-text-editor/material-dark.css +337 -90
  162. package/styles/rich-text-editor/material.css +337 -90
  163. package/styles/rich-text-editor/material3-dark.css +347 -99
  164. package/styles/rich-text-editor/material3.css +347 -99
  165. package/styles/rich-text-editor/tailwind-dark.css +386 -116
  166. package/styles/rich-text-editor/tailwind.css +386 -116
  167. package/styles/tailwind-dark.css +386 -116
  168. package/styles/tailwind.css +386 -116
  169. package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -41
  170. package/.github/PULL_REQUEST_TEMPLATE/Feature.md +0 -27
  171. package/src/global.d.ts +0 -1
@@ -194,7 +194,7 @@ var LinkCommand = /** @class */ (function () {
194
194
  for (var i = 0, j_2 = 0, k = 0; i <= finalinlineNodes.length; i++) {
195
195
  if (i === 0) {
196
196
  finalinlineNodes[i].parentNode.insertBefore(anchorNodes[j_2], finalinlineNodes[i].nextSibling);
197
- if (this.parent.domNode.blockNodes().length === 1) {
197
+ if (this.parent.domNode.blockNodes().length === 1 && anchorNodes.length === 1) {
198
198
  this.parent.nodeSelection.setSelectionNode(this.parent.currentDocument, anchorNodes[j_2]);
199
199
  }
200
200
  removeNodes[k] = finalinlineNodes[i];
@@ -230,6 +230,9 @@ var LinkCommand = /** @class */ (function () {
230
230
  if (!isNOU(e.item.target)) {
231
231
  anchorEle.setAttribute('target', e.item.target);
232
232
  }
233
+ if (!isNOU(e.item.ariaLabel)) {
234
+ anchorEle.setAttribute('aria-label', e.item.ariaLabel);
235
+ }
233
236
  return anchorEle;
234
237
  };
235
238
  LinkCommand.prototype.getSelectionNodes = function (nodeCollection) {
@@ -72,14 +72,21 @@ var Lists = /** @class */ (function () {
72
72
  var preElementOLTest = this.testList(preElement);
73
73
  var nextElementOLTest = this.testList(nextElement);
74
74
  if (!preElementOLTest && !nextElementOLTest && preElemULStart !== '*' && nextElemULStart !== '*') {
75
+ var brElement = createElement('br');
75
76
  if (startElementOLTest) {
76
77
  range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);
78
+ if (range.startContainer.nodeName === '#text' && range.startContainer.textContent.length === 0) {
79
+ this.parent.domNode.insertAfter(brElement, range.startContainer);
80
+ }
77
81
  this.applyListsHandler({ subCommand: 'OL', callBack: e.callBack });
78
82
  e.event.preventDefault();
79
83
  }
80
84
  else if (range.startContainer.textContent.replace(/\u200B/g, '').slice(0, range.startOffset).trim() === '*' ||
81
85
  range.startContainer.textContent.replace(/\u200B/g, '').slice(0, range.startOffset).trim() === '-') {
82
86
  range.startContainer.textContent = range.startContainer.textContent.slice(range.startOffset, range.startContainer.textContent.length);
87
+ if (range.startContainer.nodeName === '#text' && range.startContainer.textContent.length === 0) {
88
+ this.parent.domNode.insertAfter(brElement, range.startContainer);
89
+ }
83
90
  this.applyListsHandler({ subCommand: 'UL', callBack: e.callBack });
84
91
  e.event.preventDefault();
85
92
  }
@@ -107,7 +114,8 @@ var Lists = /** @class */ (function () {
107
114
  startNode.textContent = '';
108
115
  }
109
116
  var startNodeParent = startNode.parentElement;
110
- if (isNOU(startNodeParent.parentElement.closest('UL')) && isNOU(startNodeParent.parentElement.closest('OL'))) {
117
+ var parentOfCurrentOLUL = startNodeParent.parentElement;
118
+ if (isNOU(parentOfCurrentOLUL.closest('UL')) && isNOU(parentOfCurrentOLUL.closest('OL'))) {
111
119
  if (!isNOU(startNode.nextElementSibling)) {
112
120
  var nearBlockNode = this.parent.domNode.blockParentNode(startNode);
113
121
  this.parent.nodeCutter.GetSpliceNode(range, nearBlockNode);
@@ -134,6 +142,15 @@ var Lists = /** @class */ (function () {
134
142
  detach(startNode);
135
143
  }
136
144
  }
145
+ // To handle the nested enter key press in the list for the first LI element
146
+ if (!isNOU(parentOfCurrentOLUL) && (!isNOU(parentOfCurrentOLUL.closest('UL')) || !isNOU(parentOfCurrentOLUL.closest('OL'))) &&
147
+ parentOfCurrentOLUL.nodeName === 'LI' && parentOfCurrentOLUL.style.listStyleType === 'none' &&
148
+ parentOfCurrentOLUL.textContent === '' && startNode.textContent === '' && startNode === startNodeParent.firstElementChild &&
149
+ isNOU(startNode.nextSibling)) {
150
+ detach(startNodeParent);
151
+ parentOfCurrentOLUL.style.removeProperty('list-style-type');
152
+ e.event.preventDefault();
153
+ }
137
154
  }
138
155
  };
139
156
  Lists.prototype.backspaceList = function (e) {
@@ -190,11 +207,11 @@ var Lists = /** @class */ (function () {
190
207
  };
191
208
  Lists.prototype.removeList = function (range, e) {
192
209
  var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);
193
- var endNode = this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);
210
+ var endNode = (!isNOU(range.endContainer.parentElement.closest('li')) && range.endContainer.parentElement.closest('li').childElementCount > 1 && range.endContainer.nodeName === '#text') ? range.endContainer : this.parent.domNode.getSelectedNode(range.endContainer, range.endOffset);
194
211
  startNode = startNode.nodeName === 'BR' ? startNode.parentElement : startNode;
195
212
  endNode = endNode.nodeName === 'BR' ? endNode.parentElement : endNode;
196
213
  startNode = startNode.nodeName !== 'LI' && !isNOU(startNode.closest('LI')) ? startNode.closest('LI') : startNode;
197
- endNode = endNode.nodeName !== 'LI' && !isNOU(endNode.closest('LI')) ? endNode.closest('LI') : endNode;
214
+ endNode = endNode.nodeName !== 'LI' && endNode.nodeName !== '#text' && !isNOU(endNode.closest('LI')) ? endNode.closest('LI') : endNode;
198
215
  if (((range.commonAncestorContainer.nodeName === 'OL' || range.commonAncestorContainer.nodeName === 'UL' || range.commonAncestorContainer.nodeName === 'LI') &&
199
216
  isNOU(endNode.nextElementSibling) && endNode.textContent.length === range.endOffset &&
200
217
  isNOU(startNode.previousElementSibling) && range.startOffset === 0) ||
@@ -507,7 +524,7 @@ var Lists = /** @class */ (function () {
507
524
  this.currentAction = e.subCommand;
508
525
  this.currentAction = e.subCommand = this.currentAction === 'NumberFormatList' ? 'OL' : this.currentAction === 'BulletFormatList' ? 'UL' : this.currentAction;
509
526
  this.domNode.setMarker(this.saveSelection);
510
- var listsNodes = this.domNode.blockNodes();
527
+ var listsNodes = this.domNode.blockNodes(true);
511
528
  if (e.enterAction === 'BR') {
512
529
  this.setSelectionBRConfig();
513
530
  var allSelectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument);
@@ -600,7 +617,7 @@ var Lists = /** @class */ (function () {
600
617
  };
601
618
  Lists.prototype.applyLists = function (elements, type, selector, item, e) {
602
619
  var isReverse = true;
603
- if (this.isRevert(elements, type, item) && isNOU(item)) {
620
+ if (this.isRevert(elements, type, item) && isNOU(item) || (!isNOU(item) && item.listStyle === 'none')) {
604
621
  this.revertList(elements, e);
605
622
  this.removeEmptyListElements();
606
623
  }
@@ -622,6 +639,18 @@ var Lists = /** @class */ (function () {
622
639
  listEle.innerHTML = '<li><br/></li>';
623
640
  elements[i].appendChild(listEle);
624
641
  }
642
+ else if ('LI' !== elements[i].tagName && isNOU(item) &&
643
+ elements[i].nodeName === 'BLOCKQUOTE') {
644
+ isReverse = false;
645
+ var elemAtt = this.domNode.attributes(elements[i]);
646
+ var openTag = '<' + type + '>';
647
+ var closeTag = '</' + type + '>';
648
+ var newTag = 'li' + elemAtt;
649
+ var replaceHTML = elements[i].innerHTML;
650
+ var innerHTML = this.domNode.createTagString(newTag, null, replaceHTML);
651
+ var collectionString = openTag + innerHTML + closeTag;
652
+ elements[i].innerHTML = collectionString;
653
+ }
625
654
  else if ('LI' !== elements[i].tagName && isNOU(item)) {
626
655
  isReverse = false;
627
656
  var elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);
@@ -675,6 +704,9 @@ var Lists = /** @class */ (function () {
675
704
  isNOU(item) && nodes[i].parentNode.style.listStyleType !== '') {
676
705
  isRevert = false;
677
706
  }
707
+ if (nodes[i].parentNode.tagName === tagName && nodes[i].parentNode.style.listStyleType !== '') {
708
+ isRevert = true;
709
+ }
678
710
  }
679
711
  return isRevert;
680
712
  };
@@ -711,8 +743,17 @@ var Lists = /** @class */ (function () {
711
743
  };
712
744
  Lists.prototype.cleanNode = function () {
713
745
  var liParents = this.parent.editableElement.querySelectorAll('ol + ol, ul + ul');
746
+ var listStyleType;
747
+ var firstNodeOL;
714
748
  for (var c = 0; c < liParents.length; c++) {
715
749
  var node = liParents[c];
750
+ var toFindtopOlUl = true;
751
+ if (toFindtopOlUl && (liParents[c].parentElement.parentElement.nodeName === 'OL' || liParents[c].parentElement.parentElement.nodeName === 'UL')) {
752
+ toFindtopOlUl = false;
753
+ var preElement = liParents[c].parentElement.parentElement;
754
+ listStyleType = preElement.style.listStyleType;
755
+ firstNodeOL = node.previousElementSibling;
756
+ }
716
757
  if (this.domNode.isList(node.previousElementSibling) &&
717
758
  this.domNode.openTagString(node) === this.domNode.openTagString(node.previousElementSibling)) {
718
759
  var contentNodes = this.domNode.contents(node);
@@ -727,6 +768,9 @@ var Lists = /** @class */ (function () {
727
768
  }
728
769
  }
729
770
  }
771
+ if (firstNodeOL) {
772
+ firstNodeOL.style.listStyleType = listStyleType;
773
+ }
730
774
  };
731
775
  Lists.prototype.findUnSelected = function (temp, elements) {
732
776
  temp = temp.slice().reverse();
@@ -787,72 +831,84 @@ var Lists = /** @class */ (function () {
787
831
  var viewNode = [];
788
832
  for (var i = 0; i < elements.length; i++) {
789
833
  var element = elements[i];
790
- if (this.domNode.contents(element)[0].nodeType === 3 && this.domNode.contents(element)[0].textContent.trim().length === 0) {
791
- detach(this.domNode.contents(element)[0]);
792
- }
793
- var parentNode = elements[i].parentNode;
794
- var className = element.getAttribute('class');
795
- if (temp.length === 0) {
796
- var siblingList = elements[i].querySelectorAll('ul, ol');
797
- var firstNode = siblingList[0];
798
- if (firstNode) {
799
- var child = firstNode
800
- .querySelectorAll('li');
801
- if (child) {
802
- var nestedElement = createElement(firstNode.tagName);
803
- append([nestedElement], firstNode.parentNode);
804
- var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });
805
- append([nestedElementLI], nestedElement);
806
- append([firstNode], nestedElementLI);
807
- }
808
- }
809
- }
810
- if (element.parentNode.insertBefore(this.closeTag(parentNode.tagName), element),
811
- 'LI' === parentNode.parentNode.tagName || 'OL' === parentNode.parentNode.tagName ||
812
- 'UL' === parentNode.parentNode.tagName) {
813
- element.parentNode.insertBefore(this.closeTag('LI'), element);
814
- }
815
- else {
816
- var classAttr = '';
817
- if (className) {
818
- // eslint-disable-next-line
819
- classAttr += ' class="' + className + '"';
820
- }
821
- if (CONSTANT.DEFAULT_TAG && 0 === element.querySelectorAll(CONSTANT.BLOCK_TAGS.join(', ')).length) {
822
- var wrapperclass = isNullOrUndefined(className) ? ' class="e-rte-wrap-inner"' :
823
- ' class="' + className + ' e-rte-wrap-inner"';
824
- var wrapper = '<' + CONSTANT.DEFAULT_TAG + wrapperclass +
825
- this.domNode.attributes(parentNode) + '></' + CONSTANT.DEFAULT_TAG + '>';
826
- if (e.enterAction !== 'BR') {
827
- this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
834
+ if ((isNullOrUndefined(e.item)) || ((element.nodeName === 'LI' && e.item.listStyle === 'none'))) {
835
+ if (this.domNode.contents(element)[0].nodeType === 3 && this.domNode.contents(element)[0].textContent.trim().length === 0) {
836
+ detach(this.domNode.contents(element)[0]);
837
+ }
838
+ var parentNode = elements[i].parentNode;
839
+ var className = element.getAttribute('class');
840
+ if (temp.length === 0) {
841
+ var siblingList = elements[i].querySelectorAll('ul, ol');
842
+ var firstNode = siblingList[0];
843
+ if (firstNode) {
844
+ var child = firstNode
845
+ .querySelectorAll('li');
846
+ if (child) {
847
+ var nestedElement = createElement(firstNode.tagName);
848
+ append([nestedElement], firstNode.parentNode);
849
+ var nestedElementLI = createElement('li', { styles: 'list-style-type: none;' });
850
+ append([nestedElementLI], nestedElement);
851
+ append([firstNode], nestedElementLI);
852
+ }
828
853
  }
829
854
  }
830
- else if (this.domNode.contents(element)[0].nodeType === 3) {
831
- var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));
832
- this.domNode.replaceWith(this.domNode.contents(element)[0], replace);
833
- }
834
- else if (this.domNode.contents(element)[0].classList.contains(markerClassName.startSelection) ||
835
- this.domNode.contents(element)[0].classList.contains(markerClassName.endSelection)) {
836
- var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.domNode.contents(element)[0].outerHTML);
837
- this.domNode.replaceWith(this.domNode.contents(element)[0], replace);
855
+ if (element.parentNode.insertBefore(this.closeTag(parentNode.tagName), element),
856
+ 'LI' === parentNode.parentNode.tagName || 'OL' === parentNode.parentNode.tagName ||
857
+ 'UL' === parentNode.parentNode.tagName) {
858
+ element.parentNode.insertBefore(this.closeTag('LI'), element);
838
859
  }
839
860
  else {
840
- var childNode = element.firstChild;
841
- className = childNode.getAttribute('class');
842
- attributes(childNode, this.domNode.rawAttributes(parentNode));
843
- if (className && childNode.getAttribute('class')) {
844
- attributes(childNode, { 'class': className + ' ' + childNode.getAttribute('class') });
861
+ var classAttr = '';
862
+ if (className) {
863
+ // eslint-disable-next-line
864
+ classAttr += ' class="' + className + '"';
865
+ }
866
+ if (CONSTANT.DEFAULT_TAG && 0 === element.querySelectorAll(CONSTANT.BLOCK_TAGS.join(', ')).length) {
867
+ var wrapperclass = isNullOrUndefined(className) ? ' class="e-rte-wrap-inner"' :
868
+ ' class="' + className + ' e-rte-wrap-inner"';
869
+ var parentElement = parentNode;
870
+ if (!isNOU(parentElement.style.listStyleType)) {
871
+ parentNode.style.removeProperty("list-style-type");
872
+ }
873
+ if (!isNOU(parentElement.style.listStyleImage)) {
874
+ parentNode.style.removeProperty("list-style-image");
875
+ }
876
+ if (parentElement.style.length === 0) {
877
+ parentNode.removeAttribute("style");
878
+ }
879
+ var wrapper = '<' + CONSTANT.DEFAULT_TAG + wrapperclass +
880
+ this.domNode.attributes(parentElement) + '></' + CONSTANT.DEFAULT_TAG + '>';
881
+ if (e.enterAction !== 'BR') {
882
+ this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
883
+ }
884
+ }
885
+ else if (this.domNode.contents(element)[0].nodeType === 3) {
886
+ var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));
887
+ this.domNode.replaceWith(this.domNode.contents(element)[0], replace);
888
+ }
889
+ else if (this.domNode.contents(element)[0].classList.contains(markerClassName.startSelection) ||
890
+ this.domNode.contents(element)[0].classList.contains(markerClassName.endSelection)) {
891
+ var replace = this.domNode.createTagString(CONSTANT.DEFAULT_TAG, parentNode, this.domNode.contents(element)[0].outerHTML);
892
+ this.domNode.replaceWith(this.domNode.contents(element)[0], replace);
893
+ }
894
+ else {
895
+ var childNode = element.firstChild;
896
+ className = childNode.getAttribute('class');
897
+ attributes(childNode, this.domNode.rawAttributes(parentNode));
898
+ if (className && childNode.getAttribute('class')) {
899
+ attributes(childNode, { 'class': className + ' ' + childNode.getAttribute('class') });
900
+ }
845
901
  }
902
+ append([this.openTag('LI')], element);
903
+ prepend([this.closeTag('LI')], element);
904
+ }
905
+ this.domNode.insertAfter(this.openTag(parentNode.tagName), element);
906
+ if (parentNode.parentNode.tagName === 'LI') {
907
+ parentNode = parentNode.parentNode.parentNode;
908
+ }
909
+ if (viewNode.indexOf(parentNode) < 0) {
910
+ viewNode.push(parentNode);
846
911
  }
847
- append([this.openTag('LI')], element);
848
- prepend([this.closeTag('LI')], element);
849
- }
850
- this.domNode.insertAfter(this.openTag(parentNode.tagName), element);
851
- if (parentNode.parentNode.tagName === 'LI') {
852
- parentNode = parentNode.parentNode.parentNode;
853
- }
854
- if (viewNode.indexOf(parentNode) < 0) {
855
- viewNode.push(parentNode);
856
912
  }
857
913
  }
858
914
  for (var i = 0; i < viewNode.length; i++) {
@@ -21,6 +21,7 @@ export declare class MsWordPaste {
21
21
  private addEventListener;
22
22
  private cropImageDimensions;
23
23
  private wordCleanup;
24
+ private addDoubleBr;
24
25
  private cleanList;
25
26
  private insertAfter;
26
27
  private findClosestListElem;
@@ -50,5 +51,7 @@ export declare class MsWordPaste {
50
51
  private getlistStyleType;
51
52
  private makeConversion;
52
53
  private getListContent;
54
+ private processMargin;
53
55
  private removeEmptyAnchorTag;
56
+ private findSource;
54
57
  }