@syncfusion/ej2-richtexteditor 20.3.56 → 20.3.60

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 (48) hide show
  1. package/CHANGELOG.md +24 -0
  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 +59 -10
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +59 -10
  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 +9 -9
  13. package/src/editor-manager/plugin/inserthtml.js +2 -1
  14. package/src/editor-manager/plugin/ms-word-clean-up.js +4 -3
  15. package/src/editor-manager/plugin/selection-commands.js +36 -1
  16. package/src/rich-text-editor/actions/enter-key.js +10 -3
  17. package/src/rich-text-editor/actions/html-editor.js +5 -0
  18. package/src/rich-text-editor/models/items.js +2 -2
  19. package/styles/bootstrap-dark.css +1 -1
  20. package/styles/bootstrap.css +1 -1
  21. package/styles/bootstrap4.css +1 -1
  22. package/styles/bootstrap5-dark.css +1 -1
  23. package/styles/bootstrap5.css +1 -1
  24. package/styles/fabric-dark.css +1 -1
  25. package/styles/fabric.css +1 -1
  26. package/styles/fluent-dark.css +1 -1
  27. package/styles/fluent.css +1 -1
  28. package/styles/highcontrast-light.css +1 -1
  29. package/styles/highcontrast.css +1 -1
  30. package/styles/material-dark.css +1 -1
  31. package/styles/material.css +1 -1
  32. package/styles/rich-text-editor/bootstrap-dark.css +1 -1
  33. package/styles/rich-text-editor/bootstrap.css +1 -1
  34. package/styles/rich-text-editor/bootstrap4.css +1 -1
  35. package/styles/rich-text-editor/bootstrap5-dark.css +1 -1
  36. package/styles/rich-text-editor/bootstrap5.css +1 -1
  37. package/styles/rich-text-editor/fabric-dark.css +1 -1
  38. package/styles/rich-text-editor/fabric.css +1 -1
  39. package/styles/rich-text-editor/fluent-dark.css +1 -1
  40. package/styles/rich-text-editor/fluent.css +1 -1
  41. package/styles/rich-text-editor/highcontrast-light.css +1 -1
  42. package/styles/rich-text-editor/highcontrast.css +1 -1
  43. package/styles/rich-text-editor/material-dark.css +1 -1
  44. package/styles/rich-text-editor/material.css +1 -1
  45. package/styles/rich-text-editor/tailwind-dark.css +1 -1
  46. package/styles/rich-text-editor/tailwind.css +1 -1
  47. package/styles/tailwind-dark.css +1 -1
  48. package/styles/tailwind.css +1 -1
@@ -1971,8 +1971,8 @@ var videoAlignItems = [
1971
1971
  { iconCss: 'e-icons e-justify-right', command: 'Videos', subCommand: 'JustifyRight' },
1972
1972
  ];
1973
1973
  var displayLocale = [
1974
- { locale: 'imageLayoutOptionDropDownInline', value: 'Inline' },
1975
- { locale: 'imageLayoutOptionDropDownBreak', value: 'Break' }
1974
+ { locale: 'imageDisplayDropDownInline', value: 'Inline' },
1975
+ { locale: 'imageDisplayDropDownBreak', value: 'Break' }
1976
1976
  ];
1977
1977
  var audioLayoutOptionLocale = [
1978
1978
  { locale: 'audioLayoutOptionDropDownInline', value: 'Inline' },
@@ -13058,7 +13058,8 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
13058
13058
  }
13059
13059
  }
13060
13060
  else if (currentNode.nodeName === '#text' && !isNullOrUndefined(currentNode.parentElement) &&
13061
- currentNode.parentElement.nodeName === 'LI' && currentNode.parentElement.textContent.trim().length > 0) {
13061
+ (currentNode.parentElement.nodeName === 'LI' || (blockNode === editNode && currentNode.parentElement === blockNode)) &&
13062
+ currentNode.parentElement.textContent.trim().length > 0) {
13062
13063
  splitedElm = currentNode;
13063
13064
  if (currentNode.parentElement.nodeName === 'LI' && !isNullOrUndefined(currentNode.nextSibling) &&
13064
13065
  currentNode.nextSibling.nodeName === 'BR') {
@@ -15684,6 +15685,15 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
15684
15685
  isSubSup = formatNode === null ? false : true;
15685
15686
  }
15686
15687
  }
15688
+ else if (formatNode.textContent !== nodes[index].textContent && formatNode.nodeName === 'SPAN' && formatNode.style[0] === 'font-size') {
15689
+ var currentParentElem = nodes[index].parentElement.textContent !== nodes[index].textContent ? nodes[index] : nodes[index].parentElement;
15690
+ var isSameTextContent = true;
15691
+ while (currentParentElem.textContent !== nodes[index].textContent && nodes[index].style[0] !== format && currentParentElem.nodeName === 'SPAN') {
15692
+ isSameTextContent = currentParentElem.textContent === currentParentElem.parentElement.textContent;
15693
+ currentParentElem = !isNullOrUndefined(currentParentElem.parentElement) && isSameTextContent ? currentParentElem.parentElement : currentParentElem;
15694
+ }
15695
+ formatNode = currentParentElem;
15696
+ }
15687
15697
  if (index === 0 && formatNode === null) {
15688
15698
  isFormat = true;
15689
15699
  }
@@ -15975,7 +15985,33 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
15975
15985
  liElement.style.textDecoration = 'inherit';
15976
15986
  }
15977
15987
  }
15978
- nodes[index] = this.applyStyles(nodes, index, element);
15988
+ var enterType = isNullOrUndefined(this.enterAction) ? 'P' : this.enterAction.toString();
15989
+ var currentNode = nodes[index];
15990
+ var isNestedNode = !isNullOrUndefined(currentNode) && nodes[index].nodeName === '#text' && nodes[index].parentElement.nodeName !== enterType;
15991
+ var currentParentElem = currentNode.parentElement.textContent !== currentNode.textContent ? currentNode : currentNode.parentElement;
15992
+ if (isNestedNode) {
15993
+ var isSameTextContent = true;
15994
+ isNestedNode = false;
15995
+ while (!isNullOrUndefined(currentParentElem) && isSameTextContent && currentParentElem.parentElement.nodeName !== enterType
15996
+ && (currentParentElem.nodeName === 'SPAN' && (currentParentElem.style.textDecoration === 'line-through' || 'underline')
15997
+ || currentParentElem.nodeName === 'SPAN' && (currentParentElem.style[0] === 'background-color' || 'font-family' || 'color')
15998
+ || (currentParentElem.nodeName === 'EM' || 'STRONG' || 'SUB' || 'SUP'))) {
15999
+ isSameTextContent = currentParentElem.textContent === currentParentElem.parentElement.textContent;
16000
+ currentParentElem = !isNullOrUndefined(currentParentElem.parentElement) && isSameTextContent ? currentParentElem.parentElement : currentParentElem;
16001
+ }
16002
+ if (!isNullOrUndefined(currentParentElem) && currentParentElem.childNodes.length > 0) {
16003
+ var nodeList = currentParentElem.querySelectorAll('span,strong,em,sub,sup');
16004
+ isNestedNode = nodeList.length > 0 && isSameTextContent;
16005
+ }
16006
+ }
16007
+ if (isNestedNode) {
16008
+ var nodeList = [];
16009
+ nodeList[0] = currentParentElem;
16010
+ this.applyStyles(nodeList, index, element);
16011
+ }
16012
+ else {
16013
+ nodes[index] = this.applyStyles(nodes, index, element);
16014
+ }
15979
16015
  if (format === 'fontsize') {
15980
16016
  var bg = closest(nodes[index].parentElement, 'span[style*=' + 'background-color' + ']');
15981
16017
  if (!isNullOrUndefined(bg)) {
@@ -16944,7 +16980,9 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
16944
16980
  for (var i = 0; i < allElements.length; i++) {
16945
16981
  if (allElements[i].children.length === 0 && allElements[i].innerHTML === '&nbsp;' &&
16946
16982
  (allElements[i].innerHTML === '&nbsp;' && !allElements[i].closest('li')) &&
16947
- !allElements[i].closest('td')) {
16983
+ !allElements[i].closest('td') && (allElements[i].nodeName !== 'SPAN' ||
16984
+ allElements[i].nodeName === 'SPAN' && (isNullOrUndefined(allElements[i].previousElementSibling) &&
16985
+ isNullOrUndefined(allElements[i].nextElementSibling)))) {
16948
16986
  var detachableElement = this.findDetachElem(allElements[i]);
16949
16987
  var brElement = createElement('br');
16950
16988
  if (!isNullOrUndefined(detachableElement.parentElement)) {
@@ -17050,8 +17088,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17050
17088
  }
17051
17089
  }
17052
17090
  }
17053
- values[i] = valueSplit.join(';') + ';';
17054
- var changedValue = styleProperty + values[i];
17091
+ var changedValue = styleProperty + valueSplit.join(';') + ';';
17055
17092
  resultElem[j].setAttribute('style', changedValue);
17056
17093
  }
17057
17094
  else {
@@ -18686,6 +18723,11 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
18686
18723
  if (e.args.code === 'Backspace' && e.args.keyCode === 8 && currentRange.startOffset === 0 &&
18687
18724
  currentRange.endOffset === 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.textContent.length > 0 &&
18688
18725
  currentRange.startContainer.parentElement.tagName !== 'TD' && currentRange.startContainer.parentElement.tagName !== 'TH') {
18726
+ var checkNode = currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer;
18727
+ if (!this.parent.formatter.editorManager.domNode.isBlockNode(checkNode) &&
18728
+ !isNullOrUndefined(checkNode.previousSibling) && checkNode.previousSibling.nodeName === 'BR') {
18729
+ return;
18730
+ }
18689
18731
  this.rangeElement = this.getRootBlockNode(currentRange.startContainer);
18690
18732
  if (this.rangeElement.tagName === 'OL' || this.rangeElement.tagName === 'UL') {
18691
18733
  var liElement = this.getRangeLiNode(currentRange.startContainer);
@@ -28597,7 +28639,8 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
28597
28639
  }
28598
28640
  else {
28599
28641
  if ((nearBlockNode.textContent.trim().length !== 0 ||
28600
- nearBlockNode.childNodes[0].nodeName === 'IMG')) {
28642
+ nearBlockNode.childNodes[0].nodeName === 'IMG' ||
28643
+ (nearBlockNode.textContent.trim() === '' && nearBlockNode.querySelectorAll('img').length > 0))) {
28601
28644
  if ((_this.range.startOffset === _this.range.endOffset && _this.range.startOffset != 0)) {
28602
28645
  newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, false).cloneNode(true);
28603
28646
  }
@@ -28626,9 +28669,15 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
28626
28669
  if (!isNearBlockLengthZero) {
28627
28670
  var currentFocusElem = insertElem;
28628
28671
  var finalFocusElem = void 0;
28629
- while (!isNullOrUndefined(currentFocusElem) && currentFocusElem.nodeName !== '#text') {
28672
+ if (_this.range.startOffset === _this.range.endOffset && _this.range.startOffset != 0) {
28673
+ while (!isNullOrUndefined(currentFocusElem) && currentFocusElem.nodeName !== '#text' &&
28674
+ currentFocusElem.nodeName !== 'BR') {
28675
+ finalFocusElem = currentFocusElem;
28676
+ currentFocusElem = currentFocusElem.lastChild;
28677
+ }
28678
+ }
28679
+ else {
28630
28680
  finalFocusElem = currentFocusElem;
28631
- currentFocusElem = currentFocusElem.lastChild;
28632
28681
  }
28633
28682
  finalFocusElem.innerHTML = '<br>';
28634
28683
  if (!isImageNode) {