@syncfusion/ej2-richtexteditor 25.2.5 → 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.
@@ -13310,7 +13310,7 @@ var Lists = /** @__PURE__ @class */ (function () {
13310
13310
  e.event.preventDefault();
13311
13311
  }
13312
13312
  };
13313
- Lists.prototype.onKeyUp = function () {
13313
+ Lists.prototype.onKeyUp = function (e) {
13314
13314
  if (!isNullOrUndefined(this.commonLIParent) && !isNullOrUndefined(this.commonLIParent.querySelector('.removeList'))) {
13315
13315
  var currentLIElem = this.commonLIParent.querySelector('.removeList');
13316
13316
  while (!isNullOrUndefined(currentLIElem.firstChild)) {
@@ -13318,6 +13318,14 @@ var Lists = /** @__PURE__ @class */ (function () {
13318
13318
  }
13319
13319
  detach(currentLIElem);
13320
13320
  }
13321
+ if (e.event.keyCode === 13) {
13322
+ var listElements = this.parent.editableElement.querySelectorAll('UL, OL');
13323
+ for (var i = 0; i < listElements.length; i++) {
13324
+ if (!isNullOrUndefined(listElements[i]) && !isNullOrUndefined(listElements[i].parentElement) && !isNullOrUndefined(listElements[i].previousElementSibling) && (listElements[i].parentElement.nodeName === 'UL' || listElements[i].parentElement.nodeName === 'OL')) {
13325
+ listElements[i].previousElementSibling.appendChild(listElements[i]);
13326
+ }
13327
+ }
13328
+ }
13321
13329
  };
13322
13330
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
13323
13331
  Lists.prototype.firstListBackSpace = function (range, _e) {
@@ -13559,6 +13567,8 @@ var Lists = /** @__PURE__ @class */ (function () {
13559
13567
  else {
13560
13568
  if (prevSibling.tagName === 'LI') {
13561
13569
  var nestedElement = createElement(elements[i].parentNode.tagName);
13570
+ nestedElement.style.listStyleType =
13571
+ elements[i].parentNode.style.listStyleType;
13562
13572
  append([nestedElement], prevSibling);
13563
13573
  append([elements[i]], nestedElement);
13564
13574
  }
@@ -13665,7 +13675,7 @@ var Lists = /** @__PURE__ @class */ (function () {
13665
13675
  }
13666
13676
  var elemAtt = void 0;
13667
13677
  elements[i].style.removeProperty('margin-left');
13668
- elemAtt = elements[i].tagName === 'IMG' ? '' : this.domNode.attributes(elements[i]);
13678
+ elemAtt = elements[i].tagName === 'IMG' || elements[i].classList.contains('e-editor-select-start') ? '' : this.domNode.attributes(elements[i]);
13669
13679
  if (elements[i].getAttribute('contenteditable') === 'true'
13670
13680
  && elements[i].childNodes.length === 1 && elements[i].childNodes[0].nodeName === 'TABLE') {
13671
13681
  var listEle = document.createElement(type);
@@ -13786,6 +13796,13 @@ var Lists = /** @__PURE__ @class */ (function () {
13786
13796
  for (var c = 0; c < liParents.length; c++) {
13787
13797
  var node = liParents[c];
13788
13798
  var toFindtopOlUl = true;
13799
+ var containsListElements = node;
13800
+ while (containsListElements.parentElement) {
13801
+ if (containsListElements.parentElement && containsListElements.parentElement.tagName !== 'LI' && containsListElements.parentElement.tagName !== 'OL' && containsListElements.parentElement.tagName !== 'UL') {
13802
+ break;
13803
+ }
13804
+ containsListElements = containsListElements.parentElement;
13805
+ }
13789
13806
  if (toFindtopOlUl && (liParents[c].parentElement.parentElement.nodeName === 'OL' || liParents[c].parentElement.parentElement.nodeName === 'UL')) {
13790
13807
  toFindtopOlUl = false;
13791
13808
  var preElement = liParents[c].parentElement.parentElement;
@@ -13805,9 +13822,43 @@ var Lists = /** @__PURE__ @class */ (function () {
13805
13822
  node.previousElementSibling.lastChild.append(node);
13806
13823
  }
13807
13824
  }
13825
+ 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'))) {
13826
+ var contentNodes = this.domNode.contents(node);
13827
+ for (var f = 0; f < contentNodes.length; f++) {
13828
+ node.previousElementSibling.appendChild(contentNodes[f]);
13829
+ }
13830
+ node.parentNode.removeChild(node);
13831
+ }
13808
13832
  }
13809
13833
  if (firstNodeOL) {
13810
13834
  firstNodeOL.style.listStyleType = listStyleType;
13835
+ var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
13836
+ var listOlUlElements = [];
13837
+ if (range.commonAncestorContainer.nodeName === 'UL' || range.commonAncestorContainer.nodeName === 'OL') {
13838
+ if (range.commonAncestorContainer instanceof Element) {
13839
+ listOlUlElements.push(range.commonAncestorContainer);
13840
+ }
13841
+ listOlUlElements = listOlUlElements.concat(Array.from(range.commonAncestorContainer.querySelectorAll('ol, ul')));
13842
+ }
13843
+ else {
13844
+ listOlUlElements = Array.from(range.commonAncestorContainer.querySelectorAll('ol, ul'));
13845
+ }
13846
+ for (var k = 0; k < listOlUlElements.length; k++) {
13847
+ var listStyle = void 0;
13848
+ var listElements = listOlUlElements[k];
13849
+ while (listElements) {
13850
+ if (listElements.nodeName === 'OL' || listElements.nodeName === 'OL') {
13851
+ if (listElements.style.listStyleType !== '' && listElements.style.listStyleType !== 'none' && listElements.nodeName !== 'LI') {
13852
+ listStyle = listElements.style.listStyleType;
13853
+ }
13854
+ else if (!isNullOrUndefined(listStyle) && (listElements.style.listStyleType === '' || listElements.style.listStyleType === 'none') &&
13855
+ listElements.nodeName !== 'LI' && (listElements.nodeName === 'UL' || listElements.nodeName === 'OL')) {
13856
+ listElements.style.listStyleType = listStyle;
13857
+ }
13858
+ }
13859
+ listElements = listElements.querySelector('UL,OL');
13860
+ }
13861
+ }
13811
13862
  }
13812
13863
  };
13813
13864
  Lists.prototype.findUnSelected = function (temp, elements) {
@@ -20061,7 +20112,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
20061
20112
  !isNormalList) {
20062
20113
  prevList = null;
20063
20114
  }
20064
- var pElement = createElement('p', { className: 'MsoNormal' });
20115
+ var pElement = createElement('p', { className: 'MsoNoSpacing' });
20065
20116
  pElement.innerHTML = collection[index].content.join(' ');
20066
20117
  if ((collection[index].nestedLevel === 1) &&
20067
20118
  (listCount === 0 || lfo !== collection[index].listFormatOverride) &&
@@ -22034,7 +22085,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
22034
22085
  var range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());
22035
22086
  var parentNode = this.nodeSelectionObj.getParentNodeCollection(range);
22036
22087
  if (!((parentNode[0].nodeName === 'LI' || closest(parentNode[0], 'li') ||
22037
- closest(parentNode[0], 'table')) && range.startOffset === 0)) {
22088
+ closest(parentNode[0], 'table')))) {
22038
22089
  args.preventDefault();
22039
22090
  var selection = this.contentRenderer.getDocument().getSelection().getRangeAt(0);
22040
22091
  var alignmentNodes = this.parent.formatter.editorManager.domNode.blockNodes();
@@ -23423,7 +23474,8 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
23423
23474
  clipBoardElem = this.allowedStyle(clipBoardElem);
23424
23475
  }
23425
23476
  this.saveSelection.restore();
23426
- clipBoardElem.innerHTML = this.sanitizeHelper(clipBoardElem.innerHTML);
23477
+ var newText = clipBoardElem.innerHTML.split("&").join("&amp;");
23478
+ clipBoardElem.innerHTML = this.sanitizeHelper(newText);
23427
23479
  var allImg = clipBoardElem.querySelectorAll('img');
23428
23480
  for (var i = 0; i < allImg.length; i++) {
23429
23481
  if (!isNullOrUndefined(allImg[i].getAttribute('src'))) {
@@ -26808,13 +26860,13 @@ var Image$1 = /** @__PURE__ @class */ (function () {
26808
26860
  selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
26809
26861
  if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
26810
26862
  (!isNullOrUndefined(selectParentEle[0]) && selectParentEle[0].tagName === 'IMG') && selectParentEle[0].parentElement) {
26811
- var prev = selectParentEle[0].parentElement.childNodes[0];
26812
26863
  if (this.contentModule.getEditPanel().querySelector('.e-img-resize')) {
26813
26864
  this.removeResizeEle();
26814
26865
  }
26815
- this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.contentModule.getDocument(), prev, prev, prev.textContent.length, prev.textContent.length);
26816
26866
  removeClass([selectParentEle[0]], 'e-img-focus');
26817
- this.quickToolObj.imageQTBar.hidePopup();
26867
+ if (this.quickToolObj && this.quickToolObj.imageQTBar) {
26868
+ this.quickToolObj.imageQTBar.hidePopup();
26869
+ }
26818
26870
  }
26819
26871
  }
26820
26872
  if (originalEvent.ctrlKey && (originalEvent.keyCode === 89 || originalEvent.keyCode === 90)) {
@@ -33775,16 +33827,18 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
33775
33827
  this.getRangeNode();
33776
33828
  var isTableEnter = true;
33777
33829
  this.formatTags = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote'];
33778
- var isCursorAtTableEnd = this.range.collapsed && (this.range.startContainer.nodeType === 1) &&
33779
- this.range.startContainer.isContentEditable &&
33780
- this.range.startContainer.childNodes[this.range.startOffset - 1] &&
33781
- this.range.startContainer.childNodes[this.range.startOffset - 1].nodeName === 'TABLE';
33782
- var isCursorAtTableStart = this.range.collapsed && (this.range.startContainer.nodeType === 1) &&
33783
- this.range.startContainer.isContentEditable && this.range.startContainer.childNodes[this.range.startOffset] &&
33784
- this.range.startContainer.childNodes[this.range.startOffset].nodeName === 'TABLE';
33785
- if (isCursorAtTableEnd || isCursorAtTableStart) {
33786
- this.handleCursorAtTableSide(e, isCursorAtTableStart, isCursorAtTableEnd);
33787
- return;
33830
+ var tableImagCursor = this.processedTableImageCursor();
33831
+ if (tableImagCursor.start || tableImagCursor.end) {
33832
+ if (tableImagCursor.startName === 'TABLE' || tableImagCursor.endName === 'TABLE') { // Default browser action prevented and hanled manually.
33833
+ this.handleCursorAtTableSide(e, tableImagCursor.start, tableImagCursor.end);
33834
+ return;
33835
+ }
33836
+ }
33837
+ if (tableImagCursor.start || tableImagCursor.end || this.range.startContainer.nodeName === 'IMG') {
33838
+ if (this.parent.enterKey === 'BR' && (tableImagCursor.startName === 'IMG' || tableImagCursor.endName === 'IMG' || this.range.startContainer.nodeName === 'IMG')) { // Default browser action prevented and hanled manually.
33839
+ this.handleEnterKeyAtImageSide(e, tableImagCursor.start, tableImagCursor.end);
33840
+ return;
33841
+ }
33788
33842
  }
33789
33843
  if (!isNullOrUndefined(this.startNode.closest('TABLE')) && !isNullOrUndefined(this.endNode.closest('TABLE'))) {
33790
33844
  isTableEnter = false;
@@ -34152,7 +34206,6 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
34152
34206
  var outerBRElem = _this.parent.createElement('br');
34153
34207
  if (_this.range.startOffset === 0 && _this.range.endOffset === 0 &&
34154
34208
  !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR' && currentParent.nodeName !== 'P' && currentParent.nodeName !== 'DIV') {
34155
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
34156
34209
  newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, currentParent, false).cloneNode(true);
34157
34210
  _this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);
34158
34211
  _this.insertFocusContent();
@@ -34182,7 +34235,7 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
34182
34235
  }
34183
34236
  e.args.preventDefault();
34184
34237
  }
34185
- _this.parent.trigger(actionComplete, { requestType: shiftKey_1 ? 'ShiftEnterAction' : 'EnterAction', args: e.args });
34238
+ _this.triggerActionComplete(e, shiftKey_1);
34186
34239
  }
34187
34240
  });
34188
34241
  }
@@ -34252,6 +34305,9 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
34252
34305
  }
34253
34306
  return insertElem;
34254
34307
  };
34308
+ EnterKeyAction.prototype.triggerActionComplete = function (e, shiftKey) {
34309
+ this.parent.trigger(actionComplete, { requestType: shiftKey ? 'ShiftEnterAction' : 'EnterAction', args: e.args });
34310
+ };
34255
34311
  EnterKeyAction.prototype.handleCursorAtTableSide = function (e, isStart, isEnd) {
34256
34312
  var _this = this;
34257
34313
  if (this.parent.enterKey !== 'BR') {
@@ -34282,11 +34338,92 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
34282
34338
  }
34283
34339
  _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), newElement, 0);
34284
34340
  e.args.preventDefault();
34285
- _this.parent.trigger(actionComplete, { requestType: shiftKey_2 ? 'ShiftEnterAction' : 'EnterAction', args: e.args });
34341
+ _this.triggerActionComplete(e, shiftKey_2);
34286
34342
  }
34287
34343
  });
34288
34344
  }
34289
34345
  };
34346
+ EnterKeyAction.prototype.handleEnterKeyAtImageSide = function (e, isStart, isEnd) {
34347
+ var _this = this;
34348
+ var actionBeginArgs = {
34349
+ cancel: false,
34350
+ name: actionBegin,
34351
+ requestType: e.args.shiftKey ? 'ShiftEnterAction' : 'EnterAction',
34352
+ originalEvent: e.args
34353
+ };
34354
+ var directRange = false;
34355
+ if (this.range.startContainer.nodeName === 'IMG' && this.range.startOffset === 0) {
34356
+ directRange = true;
34357
+ }
34358
+ this.parent.trigger(actionBegin, actionBeginArgs, function (actionBeginArgs) {
34359
+ if (!actionBeginArgs.cancel) {
34360
+ if (_this.parent.enterKey === 'BR') {
34361
+ var newElement = _this.parent.createElement('BR');
34362
+ var imageElement = void 0;
34363
+ if (directRange) {
34364
+ imageElement = _this.range.startContainer;
34365
+ imageElement.parentElement.insertBefore(newElement, imageElement);
34366
+ _this.parent.formatter.editorManager.nodeSelection.
34367
+ setCursorPoint(_this.parent.contentModule.getDocument(), imageElement, 0);
34368
+ }
34369
+ if (isStart) {
34370
+ imageElement = _this.range.startContainer.childNodes[_this.range.startOffset];
34371
+ imageElement.parentElement.insertBefore(newElement, imageElement);
34372
+ _this.parent.formatter.editorManager.nodeSelection.
34373
+ setCursorPoint(_this.parent.contentModule.getDocument(), imageElement, 0);
34374
+ }
34375
+ if (isEnd) {
34376
+ imageElement = _this.range.startContainer.childNodes[_this.range.startOffset - 1];
34377
+ if (!isNullOrUndefined(imageElement.nextSibling)) {
34378
+ imageElement.parentElement.insertBefore(newElement, imageElement.nextSibling);
34379
+ _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), newElement.nextSibling, 0);
34380
+ }
34381
+ else if (isNullOrUndefined(imageElement.nextSibling)) {
34382
+ imageElement.parentElement.appendChild(newElement);
34383
+ var brElement = _this.parent.createElement('BR');
34384
+ imageElement.parentElement.appendChild(brElement);
34385
+ _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), brElement, 0);
34386
+ }
34387
+ }
34388
+ e.args.preventDefault();
34389
+ _this.triggerActionComplete(e, e.args.shiftKey);
34390
+ }
34391
+ }
34392
+ });
34393
+ };
34394
+ EnterKeyAction.prototype.isTableOrImageStart = function () {
34395
+ var customHandlerElements = ['IMG', 'TABLE'];
34396
+ var startContainer = this.range.startContainer;
34397
+ var startOffset = this.range.startOffset;
34398
+ var isCursorAtStart = this.range.collapsed && (startContainer.nodeType === 1) &&
34399
+ startContainer.isContentEditable && startContainer.childNodes[startOffset] &&
34400
+ (customHandlerElements.indexOf(startContainer.childNodes[startOffset].nodeName) > -1);
34401
+ if (isCursorAtStart) {
34402
+ return { start: isCursorAtStart, startNodeName: startContainer.childNodes[startOffset].nodeName };
34403
+ }
34404
+ else {
34405
+ return { start: false, startNodeName: '' };
34406
+ }
34407
+ };
34408
+ EnterKeyAction.prototype.isTableOrImageEnd = function () {
34409
+ var customHandlerElements = ['IMG', 'TABLE'];
34410
+ var startContainer = this.range.startContainer;
34411
+ var startOffset = this.range.startOffset;
34412
+ var isCursorAtEnd = this.range.collapsed && (startContainer.nodeType === 1) &&
34413
+ startContainer.isContentEditable && startContainer.childNodes[startOffset - 1] &&
34414
+ (customHandlerElements.indexOf(startContainer.childNodes[startOffset - 1].nodeName) > -1);
34415
+ if (isCursorAtEnd) {
34416
+ return { end: isCursorAtEnd, endNodeName: startContainer.childNodes[startOffset - 1].nodeName };
34417
+ }
34418
+ else {
34419
+ return { end: false, endNodeName: '' };
34420
+ }
34421
+ };
34422
+ EnterKeyAction.prototype.processedTableImageCursor = function () {
34423
+ var _a = this.isTableOrImageStart(), start = _a.start, startNodeName = _a.startNodeName;
34424
+ var _b = this.isTableOrImageEnd(), end = _b.end, endNodeName = _b.endNodeName;
34425
+ return { start: start, startName: startNodeName, end: end, endName: endNodeName };
34426
+ };
34290
34427
  return EnterKeyAction;
34291
34428
  }());
34292
34429
 
@@ -35688,7 +35825,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
35688
35825
  }
35689
35826
  };
35690
35827
  RichTextEditor.prototype.updatePanelValue = function () {
35691
- var value = this.value;
35828
+ var value = this.listOrderCorrection(this.value);
35692
35829
  value = (this.enableHtmlEncode && this.value) ? decode(value) : value;
35693
35830
  var getTextArea = this.element.querySelector('.' + CLS_RTE_SOURCE_CODE_TXTAREA);
35694
35831
  if (value) {
@@ -35732,6 +35869,17 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
35732
35869
  this.countModule.refresh();
35733
35870
  }
35734
35871
  };
35872
+ RichTextEditor.prototype.listOrderCorrection = function (value) {
35873
+ var valueElementWrapper = this.createElement('div');
35874
+ valueElementWrapper.innerHTML = value;
35875
+ var listElements = valueElementWrapper.querySelectorAll('UL, OL');
35876
+ for (var i = 0; i < listElements.length; i++) {
35877
+ if (!isNullOrUndefined(listElements[i]) && !isNullOrUndefined(listElements[i].parentElement) && !isNullOrUndefined(listElements[i].previousElementSibling) && (listElements[i].parentElement.nodeName === 'UL' || listElements[i].parentElement.nodeName === 'OL')) {
35878
+ listElements[i].previousElementSibling.appendChild(listElements[i]);
35879
+ }
35880
+ }
35881
+ return valueElementWrapper.innerHTML;
35882
+ };
35735
35883
  RichTextEditor.prototype.setHeight = function (height) {
35736
35884
  if (height !== 'auto') {
35737
35885
  this.element.style.height = formatUnit(height);