@syncfusion/ej2-richtexteditor 25.2.4 → 25.2.6

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 (33) hide show
  1. package/CHANGELOG.md +34 -2
  2. package/dist/ej2-richtexteditor.min.js +2 -2
  3. package/dist/ej2-richtexteditor.umd.min.js +2 -2
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +362 -130
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +360 -127
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/dist/global/ej2-richtexteditor.min.js +2 -2
  10. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +11 -11
  13. package/src/common/interface.d.ts +14 -0
  14. package/src/common/util.js +4 -1
  15. package/src/editor-manager/base/editor-manager.js +5 -3
  16. package/src/editor-manager/plugin/alignments.js +3 -0
  17. package/src/editor-manager/plugin/dom-node.d.ts +20 -0
  18. package/src/editor-manager/plugin/dom-node.js +104 -1
  19. package/src/editor-manager/plugin/formats.js +1 -1
  20. package/src/editor-manager/plugin/indents.js +3 -0
  21. package/src/editor-manager/plugin/lists.d.ts +0 -1
  22. package/src/editor-manager/plugin/lists.js +55 -78
  23. package/src/editor-manager/plugin/ms-word-clean-up.js +1 -1
  24. package/src/rich-text-editor/actions/enter-key.d.ts +5 -0
  25. package/src/rich-text-editor/actions/enter-key.js +98 -13
  26. package/src/rich-text-editor/actions/full-screen.js +0 -6
  27. package/src/rich-text-editor/actions/html-editor.d.ts +1 -0
  28. package/src/rich-text-editor/actions/html-editor.js +63 -10
  29. package/src/rich-text-editor/actions/paste-clean-up.js +2 -1
  30. package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -0
  31. package/src/rich-text-editor/base/rich-text-editor.js +12 -1
  32. package/src/rich-text-editor/renderer/image-module.js +3 -3
  33. package/src/rich-text-editor/renderer/toolbar-renderer.js +7 -9
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 25.2.4
3
+ * version : 25.2.6
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-richtexteditor@*",
3
- "_id": "@syncfusion/ej2-richtexteditor@25.2.3",
3
+ "_id": "@syncfusion/ej2-richtexteditor@25.2.5",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-l5lUzKF2Mrk2KgQR3Sez/lXpDu9vZnnUJXSfQNUHy+kfr+Z8qd+8SwR06pt7hBZjn05UTHz+TLCmRKA+uYmTHQ==",
5
+ "_integrity": "sha512-NonOxrKU+s4Zp5Miu995Sz33nwGR7Fw3cctfKMWUHH7ihn3sQyS8G55fS5//aypH1+fcqioRLz/MmYHsvUCPfA==",
6
6
  "_location": "/@syncfusion/ej2-richtexteditor",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -25,8 +25,8 @@
25
25
  "/@syncfusion/ej2-react-richtexteditor",
26
26
  "/@syncfusion/ej2-vue-richtexteditor"
27
27
  ],
28
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-25.2.3.tgz",
29
- "_shasum": "ca743ef7877548820123a735ac98979caf771278",
28
+ "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-hotfix-new/@syncfusion/ej2-richtexteditor/-/ej2-richtexteditor-25.2.5.tgz",
29
+ "_shasum": "7d9d112209d8b618a69fdceb055dfa89af2472c4",
30
30
  "_spec": "@syncfusion/ej2-richtexteditor@*",
31
31
  "_where": "/jenkins/workspace/elease-automation_release_25.1.1/packages/included",
32
32
  "author": {
@@ -37,12 +37,12 @@
37
37
  },
38
38
  "bundleDependencies": false,
39
39
  "dependencies": {
40
- "@syncfusion/ej2-base": "~25.2.3",
41
- "@syncfusion/ej2-buttons": "~25.2.4",
42
- "@syncfusion/ej2-filemanager": "~25.2.3",
43
- "@syncfusion/ej2-inputs": "~25.2.3",
44
- "@syncfusion/ej2-navigations": "~25.2.4",
45
- "@syncfusion/ej2-popups": "~25.2.4",
40
+ "@syncfusion/ej2-base": "~25.2.5",
41
+ "@syncfusion/ej2-buttons": "~25.2.6",
42
+ "@syncfusion/ej2-filemanager": "~25.2.6",
43
+ "@syncfusion/ej2-inputs": "~25.2.6",
44
+ "@syncfusion/ej2-navigations": "~25.2.6",
45
+ "@syncfusion/ej2-popups": "~25.2.6",
46
46
  "@syncfusion/ej2-splitbuttons": "~25.2.4"
47
47
  },
48
48
  "deprecated": false,
@@ -79,6 +79,6 @@
79
79
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
80
80
  },
81
81
  "typings": "index.d.ts",
82
- "version": "25.2.4",
82
+ "version": "25.2.6",
83
83
  "sideEffects": false
84
84
  }
@@ -89,3 +89,17 @@ export interface IImageResizeFactor {
89
89
  botLeft: [number, number];
90
90
  botRight: [number, number];
91
91
  }
92
+ /**
93
+ * The `ImageOrTableCursor` is used to specify the image or table cursor in Enter key Module.
94
+ *
95
+ * @private
96
+ * @hidden
97
+ *
98
+ *
99
+ * */
100
+ export interface ImageOrTableCursor {
101
+ start: boolean;
102
+ startName: string;
103
+ end: boolean;
104
+ endName: string;
105
+ }
@@ -213,11 +213,14 @@ export function nestedListCleanUp(range) {
213
213
  item.remove();
214
214
  });
215
215
  }
216
+ else {
217
+ break;
218
+ }
216
219
  }
217
220
  var liElem = (range.startContainer.nodeName === "#text" ? range.startContainer.parentElement : range.startContainer).querySelectorAll("li");
218
221
  if (liElem.length > 0) {
219
222
  liElem.forEach(function (item) {
220
- if (item.firstChild.nodeName === "OL" || item.firstChild.nodeName === "UL") {
223
+ if (!isNullOrUndefined(item.firstChild) && (item.firstChild.nodeName === "OL" || item.firstChild.nodeName === "UL")) {
221
224
  item.style.listStyleType = "none";
222
225
  }
223
226
  });
@@ -115,12 +115,14 @@ var EditorManager = /** @class */ (function () {
115
115
  case 'alignments':
116
116
  this.observer.notify(CONSTANT.ALIGNMENT_TYPE, {
117
117
  subCommand: value, event: event, callBack: callBack,
118
- selector: selector,
119
- value: exeValue
118
+ selector: selector, value: exeValue, enterAction: enterAction
120
119
  });
121
120
  break;
122
121
  case 'indents':
123
- this.observer.notify(CONSTANT.INDENT_TYPE, { subCommand: value, event: event, callBack: callBack, selector: selector });
122
+ this.observer.notify(CONSTANT.INDENT_TYPE, {
123
+ subCommand: value, event: event, callBack: callBack,
124
+ selector: selector, enterAction: enterAction
125
+ });
124
126
  break;
125
127
  case 'links':
126
128
  this.observer.notify(CONSTANT.LINK, { command: command, value: value, item: exeValue, event: event, callBack: callBack });
@@ -64,6 +64,9 @@ var Alignments = /** @class */ (function () {
64
64
  if (!isTableAlign) {
65
65
  this.parent.domNode.setMarker(save);
66
66
  var alignmentNodes = this.parent.domNode.blockNodes();
67
+ if (e.enterAction === 'BR') {
68
+ alignmentNodes = this.parent.domNode.convertToBlockNodes(alignmentNodes, false);
69
+ }
67
70
  for (var i = 0; i < alignmentNodes.length; i++) {
68
71
  var parentNode = alignmentNodes[i];
69
72
  setStyleAttribute(parentNode, { 'text-align': this.alignments[e.subCommand] });
@@ -314,6 +314,26 @@ export declare class DOMNode {
314
314
 
315
315
  */
316
316
  getImageTagInSelection(): NodeListOf<HTMLImageElement>;
317
+ /**
318
+ * Method to wrap the inline and text node with block node.
319
+ *
320
+ * @param {HTMLElement} node - specifies the element sent to wrap the node around it with block nodes.
321
+ * @param {string} wrapperElement - specifies which block nodes to wrap around.
322
+ * @returns {HTMLElement} - returns the wrapped element.
323
+ * @hidden
324
+
325
+ */
326
+ gatherElementsAround(node: HTMLElement, wrapperElement: string): HTMLElement;
327
+ /**
328
+ * Method to convert all the inline nodes between the selection to block nodes.
329
+ *
330
+ * @param {Node[]} selectedNodes - specifies the nodes of the start and end selection.
331
+ * @param {boolean} fromList - specifies if the method is called from list module.
332
+ * @returns {Node[]} - returns the selected list of elements as block nodes.
333
+ * @hidden
334
+
335
+ */
336
+ convertToBlockNodes(selectedNodes: Node[], fromList: boolean): Node[];
317
337
  /**
318
338
  * blockNodes method
319
339
  *
@@ -1,5 +1,5 @@
1
1
  import * as CONSTANT from './../base/constant';
2
- import { append, detach, createElement, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';
2
+ import { append, detach, createElement, isNullOrUndefined as isNOU, closest } from '@syncfusion/ej2-base';
3
3
  import { NodeSelection } from './../../selection/index';
4
4
  import { selfClosingTags } from '../../common/config';
5
5
  import { getLastTextNode } from '../../common/util';
@@ -668,6 +668,109 @@ var DOMNode = /** @class */ (function () {
668
668
  }
669
669
  return null;
670
670
  };
671
+ /**
672
+ * Method to wrap the inline and text node with block node.
673
+ *
674
+ * @param {HTMLElement} node - specifies the element sent to wrap the node around it with block nodes.
675
+ * @param {string} wrapperElement - specifies which block nodes to wrap around.
676
+ * @returns {HTMLElement} - returns the wrapped element.
677
+ * @hidden
678
+
679
+ */
680
+ DOMNode.prototype.gatherElementsAround = function (node, wrapperElement) {
681
+ var newWrapElem = createElement(wrapperElement);
682
+ // Insert the new div element before the current node.
683
+ var currentNode = node.previousSibling;
684
+ var currentNodeParent = node.parentElement;
685
+ if (currentNodeParent.className === 'e-editor-select-start') {
686
+ currentNodeParent.parentNode.insertBefore(newWrapElem, currentNodeParent);
687
+ }
688
+ else if (currentNodeParent) {
689
+ currentNodeParent.insertBefore(newWrapElem, node);
690
+ }
691
+ var i = 0;
692
+ while (currentNode !== null && currentNode.nodeName !== 'BR' &&
693
+ !this.isBlockNode(currentNode)) {
694
+ var prevSibling = currentNode.previousSibling;
695
+ if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
696
+ if (i === 0) {
697
+ newWrapElem.appendChild(currentNode);
698
+ }
699
+ else {
700
+ newWrapElem.insertBefore(currentNode, newWrapElem.firstChild);
701
+ }
702
+ }
703
+ currentNode = prevSibling;
704
+ i++;
705
+ }
706
+ // Add the current node to the new div
707
+ newWrapElem.appendChild(node);
708
+ // Gather text and inline elements after the currentNode
709
+ currentNode = newWrapElem.nextSibling ? newWrapElem.nextSibling :
710
+ newWrapElem.parentElement.nextSibling;
711
+ while (currentNode !== null && currentNode.nodeName !== 'BR' &&
712
+ !this.isBlockNode(currentNode)) {
713
+ var nextSibling = currentNode.nextSibling ?
714
+ currentNode.nextSibling : currentNode.parentElement.nextSibling;
715
+ if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
716
+ newWrapElem.appendChild(currentNode);
717
+ }
718
+ currentNode = nextSibling;
719
+ }
720
+ return newWrapElem;
721
+ };
722
+ /**
723
+ * Method to convert all the inline nodes between the selection to block nodes.
724
+ *
725
+ * @param {Node[]} selectedNodes - specifies the nodes of the start and end selection.
726
+ * @param {boolean} fromList - specifies if the method is called from list module.
727
+ * @returns {Node[]} - returns the selected list of elements as block nodes.
728
+ * @hidden
729
+
730
+ */
731
+ DOMNode.prototype.convertToBlockNodes = function (selectedNodes, fromList) {
732
+ if (selectedNodes.length > 1) {
733
+ var i = 0;
734
+ var currentSelectedNode = selectedNodes[0];
735
+ while (!isNOU(currentSelectedNode)) {
736
+ if (currentSelectedNode.nodeName === 'BR') {
737
+ var nextNode = currentSelectedNode.nextSibling;
738
+ detach(currentSelectedNode);
739
+ currentSelectedNode = nextNode;
740
+ }
741
+ if (!isNOU(currentSelectedNode)) {
742
+ if (fromList) {
743
+ selectedNodes[i] = currentSelectedNode.nodeName === 'LI' || this.isBlockNode(currentSelectedNode) ?
744
+ currentSelectedNode :
745
+ this.gatherElementsAround(currentSelectedNode, (fromList ? 'p' : 'div'));
746
+ }
747
+ else {
748
+ selectedNodes[i] = !this.isBlockNode(selectedNodes[i]) ?
749
+ this.gatherElementsAround(currentSelectedNode, (fromList ? 'p' : 'div')) :
750
+ selectedNodes[i];
751
+ }
752
+ var currentProcessNode = selectedNodes[i].nodeName === 'LI' ? selectedNodes[i].parentElement : selectedNodes[i];
753
+ var currentElementCheckNode = currentProcessNode.nodeName === '#text' ? currentProcessNode.parentElement : currentProcessNode;
754
+ currentSelectedNode = !isNOU(currentElementCheckNode.querySelector('.e-editor-select-end')) ||
755
+ !isNOU(closest(currentSelectedNode, '.e-editor-select-end')) ?
756
+ null : currentProcessNode.nextSibling;
757
+ if (currentSelectedNode === null && !isNOU(currentProcessNode.nextSibling) && currentProcessNode.nextSibling.nodeName === 'BR') {
758
+ detach(currentProcessNode.nextSibling);
759
+ }
760
+ }
761
+ i++;
762
+ }
763
+ }
764
+ else {
765
+ if (!this.isBlockNode(selectedNodes[0])) {
766
+ selectedNodes[0] = this.gatherElementsAround(selectedNodes[0], (fromList ? 'p' : 'div'));
767
+ if (!isNOU(selectedNodes[0].nextSibling) && (selectedNodes[0].nextSibling.nodeName === 'BR')) {
768
+ detach(selectedNodes[0].nextSibling);
769
+ }
770
+ }
771
+ }
772
+ return selectedNodes;
773
+ };
671
774
  /**
672
775
  * blockNodes method
673
776
  *
@@ -51,7 +51,7 @@ var Formats = /** @class */ (function () {
51
51
  }
52
52
  }
53
53
  }
54
- if (e.enterAction !== 'BR' && !isNOU(range.startContainer) && !isNOU(range.startContainer.parentElement) && range.startContainer === range.endContainer && range.startContainer.nodeName === '#text' && range.startContainer.parentElement.classList.contains("e-content") && range.startContainer.parentElement.isContentEditable) {
54
+ if (e.enterAction !== 'BR' && !isNOU(range.startContainer) && !isNOU(range.startContainer.parentElement) && range.startContainer === range.endContainer && range.startContainer.nodeName === '#text' && range.startContainer.parentElement.classList.contains('e-content') && range.startContainer.parentElement.isContentEditable) {
55
55
  var pTag = createElement(e.enterAction);
56
56
  range.startContainer.parentElement.insertBefore(pTag, range.startContainer);
57
57
  pTag.appendChild(range.startContainer);
@@ -43,6 +43,9 @@ var Indents = /** @class */ (function () {
43
43
  var save = this.parent.nodeSelection.save(range, this.parent.currentDocument);
44
44
  this.parent.domNode.setMarker(save);
45
45
  var indentsNodes = this.parent.domNode.blockNodes();
46
+ if (e.enterAction === 'BR') {
47
+ indentsNodes = this.parent.domNode.convertToBlockNodes(indentsNodes, false);
48
+ }
46
49
  var parentNodes = indentsNodes.slice();
47
50
  var listsNodes = [];
48
51
  for (var i = 0; i < parentNodes.length; i++) {
@@ -47,5 +47,4 @@ export declare class Lists {
47
47
  private revertList;
48
48
  private openTag;
49
49
  private closeTag;
50
- private gatherElementsAround;
51
50
  }
@@ -255,7 +255,7 @@ var Lists = /** @class */ (function () {
255
255
  e.event.preventDefault();
256
256
  }
257
257
  };
258
- Lists.prototype.onKeyUp = function () {
258
+ Lists.prototype.onKeyUp = function (e) {
259
259
  if (!isNOU(this.commonLIParent) && !isNOU(this.commonLIParent.querySelector('.removeList'))) {
260
260
  var currentLIElem = this.commonLIParent.querySelector('.removeList');
261
261
  while (!isNOU(currentLIElem.firstChild)) {
@@ -263,6 +263,14 @@ var Lists = /** @class */ (function () {
263
263
  }
264
264
  detach(currentLIElem);
265
265
  }
266
+ if (e.event.keyCode === 13) {
267
+ var listElements = this.parent.editableElement.querySelectorAll('UL, OL');
268
+ for (var i = 0; i < listElements.length; i++) {
269
+ if (!isNullOrUndefined(listElements[i]) && !isNullOrUndefined(listElements[i].parentElement) && !isNullOrUndefined(listElements[i].previousElementSibling) && (listElements[i].parentElement.nodeName === 'UL' || listElements[i].parentElement.nodeName === 'OL')) {
270
+ listElements[i].previousElementSibling.appendChild(listElements[i]);
271
+ }
272
+ }
273
+ }
266
274
  };
267
275
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
268
276
  Lists.prototype.firstListBackSpace = function (range, _e) {
@@ -504,6 +512,8 @@ var Lists = /** @class */ (function () {
504
512
  else {
505
513
  if (prevSibling.tagName === 'LI') {
506
514
  var nestedElement = createElement(elements[i].parentNode.tagName);
515
+ nestedElement.style.listStyleType =
516
+ elements[i].parentNode.style.listStyleType;
507
517
  append([nestedElement], prevSibling);
508
518
  append([elements[i]], nestedElement);
509
519
  }
@@ -553,39 +563,7 @@ var Lists = /** @class */ (function () {
553
563
  var listsNodes = this.domNode.blockNodes(true);
554
564
  if (e.enterAction === 'BR') {
555
565
  this.setSelectionBRConfig();
556
- var selectedNodes = this.parent.domNode.blockNodes();
557
- if (selectedNodes.length > 1) {
558
- var i = 0;
559
- var currentAlignmentNode = selectedNodes[0];
560
- while (!isNOU(currentAlignmentNode)) {
561
- if (currentAlignmentNode.nodeName === 'BR') {
562
- var nextNode = currentAlignmentNode.nextSibling;
563
- detach(currentAlignmentNode);
564
- currentAlignmentNode = nextNode;
565
- }
566
- if (!isNOU(currentAlignmentNode)) {
567
- selectedNodes[i] = currentAlignmentNode.nodeName === 'LI' || this.parent.domNode.isBlockNode(currentAlignmentNode) ?
568
- currentAlignmentNode : this.gatherElementsAround(currentAlignmentNode);
569
- var currentSelectNode = selectedNodes[i].nodeName === 'LI' ? selectedNodes[i].parentElement : selectedNodes[i];
570
- var currentElementCheckNode = currentAlignmentNode.nodeName === '#text' ? currentAlignmentNode.parentElement : currentAlignmentNode;
571
- currentAlignmentNode = !isNOU(currentElementCheckNode.querySelector('.e-editor-select-end')) ||
572
- !isNOU(closest(currentAlignmentNode, '.e-editor-select-end')) ?
573
- null : currentSelectNode.nextSibling;
574
- if (currentAlignmentNode === null && !isNOU(currentSelectNode.nextSibling) && currentSelectNode.nextSibling.nodeName === 'BR') {
575
- detach(currentSelectNode.nextSibling);
576
- }
577
- }
578
- i++;
579
- }
580
- }
581
- else {
582
- if (!this.parent.domNode.isBlockNode(selectedNodes[0])) {
583
- selectedNodes[0] = this.gatherElementsAround(selectedNodes[0]);
584
- if (!isNOU(selectedNodes[0].nextSibling) && (selectedNodes[0].nextSibling.nodeName === 'BR')) {
585
- detach(selectedNodes[0].nextSibling);
586
- }
587
- }
588
- }
566
+ this.parent.domNode.convertToBlockNodes(this.parent.domNode.blockNodes(), true);
589
567
  this.setSelectionBRConfig();
590
568
  listsNodes = this.parent.domNode.blockNodes();
591
569
  }
@@ -643,7 +621,7 @@ var Lists = /** @class */ (function () {
643
621
  }
644
622
  var elemAtt = void 0;
645
623
  elements[i].style.removeProperty('margin-left');
646
- elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);
624
+ elemAtt = elements[i].tagName === 'IMG' || elements[i].classList.contains('e-editor-select-start') ? '' : this.domNode.attributes(elements[i]);
647
625
  if (elements[i].getAttribute('contenteditable') === 'true'
648
626
  && elements[i].childNodes.length === 1 && elements[i].childNodes[0].nodeName === 'TABLE') {
649
627
  var listEle = document.createElement(type);
@@ -767,6 +745,13 @@ var Lists = /** @class */ (function () {
767
745
  for (var c = 0; c < liParents.length; c++) {
768
746
  var node = liParents[c];
769
747
  var toFindtopOlUl = true;
748
+ var containsListElements = node;
749
+ while (containsListElements.parentElement) {
750
+ if (containsListElements.parentElement && containsListElements.parentElement.tagName !== 'LI' && containsListElements.parentElement.tagName !== 'OL' && containsListElements.parentElement.tagName !== 'UL') {
751
+ break;
752
+ }
753
+ containsListElements = containsListElements.parentElement;
754
+ }
770
755
  if (toFindtopOlUl && (liParents[c].parentElement.parentElement.nodeName === 'OL' || liParents[c].parentElement.parentElement.nodeName === 'UL')) {
771
756
  toFindtopOlUl = false;
772
757
  var preElement = liParents[c].parentElement.parentElement;
@@ -786,9 +771,43 @@ var Lists = /** @class */ (function () {
786
771
  node.previousElementSibling.lastChild.append(node);
787
772
  }
788
773
  }
774
+ else if (this.domNode.isList(node.previousElementSibling) && containsListElements.contains(node.previousElementSibling) && ((node.tagName === 'OL' || node.tagName === 'UL') && (node.previousElementSibling.nodeName === 'OL' || node.previousElementSibling.nodeName === 'UL'))) {
775
+ var contentNodes = this.domNode.contents(node);
776
+ for (var f = 0; f < contentNodes.length; f++) {
777
+ node.previousElementSibling.appendChild(contentNodes[f]);
778
+ }
779
+ node.parentNode.removeChild(node);
780
+ }
789
781
  }
790
782
  if (firstNodeOL) {
791
783
  firstNodeOL.style.listStyleType = listStyleType;
784
+ var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
785
+ var listOlUlElements = [];
786
+ if (range.commonAncestorContainer.nodeName === 'UL' || range.commonAncestorContainer.nodeName === 'OL') {
787
+ if (range.commonAncestorContainer instanceof Element) {
788
+ listOlUlElements.push(range.commonAncestorContainer);
789
+ }
790
+ listOlUlElements = listOlUlElements.concat(Array.from(range.commonAncestorContainer.querySelectorAll('ol, ul')));
791
+ }
792
+ else {
793
+ listOlUlElements = Array.from(range.commonAncestorContainer.querySelectorAll('ol, ul'));
794
+ }
795
+ for (var k = 0; k < listOlUlElements.length; k++) {
796
+ var listStyle = void 0;
797
+ var listElements = listOlUlElements[k];
798
+ while (listElements) {
799
+ if (listElements.nodeName === 'OL' || listElements.nodeName === 'OL') {
800
+ if (listElements.style.listStyleType !== '' && listElements.style.listStyleType !== 'none' && listElements.nodeName !== 'LI') {
801
+ listStyle = listElements.style.listStyleType;
802
+ }
803
+ else if (!isNOU(listStyle) && (listElements.style.listStyleType === '' || listElements.style.listStyleType === 'none') &&
804
+ listElements.nodeName !== 'LI' && (listElements.nodeName === 'UL' || listElements.nodeName === 'OL')) {
805
+ listElements.style.listStyleType = listStyle;
806
+ }
807
+ }
808
+ listElements = listElements.querySelector('UL,OL');
809
+ }
810
+ }
792
811
  }
793
812
  };
794
813
  Lists.prototype.findUnSelected = function (temp, elements) {
@@ -897,7 +916,7 @@ var Lists = /** @class */ (function () {
897
916
  parentNode.removeAttribute("style");
898
917
  }
899
918
  }
900
- var wrapper = '<' + CONSTANT.DEFAULT_TAG + wrapperclass + this.domNode.attributes(element) + '></' + CONSTANT.DEFAULT_TAG + '>';
919
+ var wrapper = '<' + e.enterAction + wrapperclass + this.domNode.attributes(element) + '></' + e.enterAction + '>';
901
920
  if (e.enterAction !== 'BR') {
902
921
  this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
903
922
  }
@@ -971,48 +990,6 @@ var Lists = /** @class */ (function () {
971
990
  Lists.prototype.closeTag = function (type) {
972
991
  return this.domNode.parseHTMLFragment('<span class="e-rte-list-close-' + type.toLowerCase() + '"></span>');
973
992
  };
974
- Lists.prototype.gatherElementsAround = function (node) {
975
- var pWrap = document.createElement('p');
976
- // Insert the new div before the current node
977
- var currentNode = node.previousSibling;
978
- var classNode = node.parentNode;
979
- if (classNode.className === 'e-editor-select-start') {
980
- node.parentNode.parentNode.insertBefore(pWrap, node.parentNode);
981
- }
982
- else if (node.parentNode) {
983
- node.parentNode.insertBefore(pWrap, node);
984
- }
985
- // Gather text and inline elements before the currentNode
986
- var i = 0;
987
- while (currentNode !== null && currentNode.nodeName !== 'BR' &&
988
- !this.parent.domNode.isBlockNode(currentNode)) {
989
- var prevSibling = currentNode.previousSibling;
990
- if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
991
- if (i === 0) {
992
- pWrap.appendChild(currentNode);
993
- }
994
- else {
995
- pWrap.insertBefore(currentNode, pWrap.firstChild);
996
- }
997
- }
998
- currentNode = prevSibling;
999
- i++;
1000
- }
1001
- // Add the current node to the new p
1002
- pWrap.appendChild(node);
1003
- // Gather text and inline elements after the currentNode
1004
- currentNode = pWrap.nextSibling ? pWrap.nextSibling : pWrap.parentElement.nextSibling;
1005
- while (currentNode !== null && currentNode.nodeName !== 'BR' &&
1006
- !this.parent.domNode.isBlockNode(currentNode)) {
1007
- var nextSibling = currentNode.nextSibling ?
1008
- currentNode.nextSibling : currentNode.parentElement.nextSibling;
1009
- if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
1010
- pWrap.appendChild(currentNode);
1011
- }
1012
- currentNode = nextSibling;
1013
- }
1014
- return pWrap;
1015
- };
1016
993
  return Lists;
1017
994
  }());
1018
995
  export { Lists };
@@ -821,7 +821,7 @@ var MsWordPaste = /** @class */ (function () {
821
821
  !isNormalList) {
822
822
  prevList = null;
823
823
  }
824
- var pElement = createElement('p', { className: 'MsoNormal' });
824
+ var pElement = createElement('p', { className: 'MsoNoSpacing' });
825
825
  pElement.innerHTML = collection[index].content.join(' ');
826
826
  if ((collection[index].nestedLevel === 1) &&
827
827
  (listCount === 0 || lfo !== collection[index].listFormatOverride) &&
@@ -19,5 +19,10 @@ export declare class EnterKeyAction {
19
19
  private insertBRElement;
20
20
  private insertFocusContent;
21
21
  private createInsertElement;
22
+ private triggerActionComplete;
22
23
  private handleCursorAtTableSide;
24
+ private handleEnterKeyAtImageSide;
25
+ private isTableOrImageStart;
26
+ private isTableOrImageEnd;
27
+ private processedTableImageCursor;
23
28
  }