@syncfusion/ej2-richtexteditor 20.4.43 → 20.4.44

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.
@@ -11272,7 +11272,7 @@ var Lists = /** @__PURE__ @class */ (function () {
11272
11272
  range.startContainer.parentElement.closest('LI');
11273
11273
  var endNode = range.endContainer.nodeName === 'LI' ? range.endContainer :
11274
11274
  range.endContainer.parentElement.closest('LI');
11275
- // Checks for Image, Audio , Video Element inside List Element
11275
+ // Checks for Image, Audio , Video Element inside List Element
11276
11276
  var hasMediaElem = false;
11277
11277
  if (!isNullOrUndefined(startNode)) {
11278
11278
  var videoElemList = startNode.querySelectorAll('.e-video-clickelem');
@@ -11899,6 +11899,11 @@ var Lists = /** @__PURE__ @class */ (function () {
11899
11899
  }
11900
11900
  node.parentNode.removeChild(node);
11901
11901
  }
11902
+ else if (!isNullOrUndefined(node.getAttribute('level'))) {
11903
+ if (node.tagName === node.previousElementSibling.tagName) {
11904
+ node.previousElementSibling.lastChild.append(node);
11905
+ }
11906
+ }
11902
11907
  }
11903
11908
  };
11904
11909
  Lists.prototype.findUnSelected = function (temp, elements) {
@@ -15739,14 +15744,17 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
15739
15744
  isSubSup = formatNode === null ? false : true;
15740
15745
  }
15741
15746
  }
15747
+ else if ((format === 'fontsize' || format === 'fontname' || format === 'fontcolor') && range.startContainer.parentElement === endNode) {
15748
+ formatNode = null;
15749
+ }
15742
15750
  if (index === 0 && formatNode === null) {
15743
15751
  isFormat = true;
15744
15752
  }
15745
15753
  if (formatNode !== null && (!isFormat || isFontStyle)) {
15746
15754
  nodes[index] = this.removeFormat(nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domSelection, endNode, domNode);
15747
15755
  }
15748
- else {
15749
- nodes[index] = this.insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value);
15756
+ else if (range.startContainer.parentElement !== endNode || (range.commonAncestorContainer === endNode || nodes.length === 1)) {
15757
+ nodes[index] = this.insertFormat(docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domNode, endNode);
15750
15758
  }
15751
15759
  domSelection = this.applySelection(nodes, domSelection, nodeCutter, index, isCollapsed);
15752
15760
  }
@@ -16001,10 +16009,24 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
16001
16009
  }
16002
16010
  return nodes[index];
16003
16011
  };
16004
- SelectionCommands.insertFormat = function (docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value) {
16012
+ SelectionCommands.insertFormat = function (docElement, nodes, index, formatNode, isCursor, isFormat, isFontStyle, range, nodeCutter, format, value, domNode, endNode) {
16013
+ var rootBlockNode;
16005
16014
  if (!isCursor) {
16006
16015
  if ((formatNode === null && isFormat) || isFontStyle) {
16007
16016
  if (nodes[index].nodeName !== 'BR') {
16017
+ if (format === 'fontsize' || format === 'fontname' || format === 'fontcolor') {
16018
+ var rangeNode = nodes[index];
16019
+ while (rangeNode && !domNode.isBlockNode(rangeNode) && rangeNode !== endNode) {
16020
+ if (domNode.isBlockNode(rangeNode.parentElement)) {
16021
+ rootBlockNode = rangeNode;
16022
+ }
16023
+ rangeNode = rangeNode.parentElement;
16024
+ }
16025
+ if (rootBlockNode && rootBlockNode.nodeType !== 3) {
16026
+ nodeCutter.SplitNode(range, rootBlockNode, true).cloneNode(true);
16027
+ nodeCutter.SplitNode(range, rootBlockNode, false).cloneNode(false);
16028
+ }
16029
+ }
16008
16030
  nodes[index] = nodeCutter.GetSpliceNode(range, nodes[index]);
16009
16031
  nodes[index].textContent = nodeCutter.TrimLineBreak(nodes[index].textContent);
16010
16032
  }
@@ -16014,24 +16036,47 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
16014
16036
  }
16015
16037
  else if (!(isFontStyle === true && value === '')) {
16016
16038
  var element = this.GetFormatNode(format, value);
16017
- if (format === 'fontsize' || format === 'fontcolor') {
16018
- var liElement = nodes[index].parentElement;
16019
- var parentElement = nodes[index].parentElement;
16020
- while (!isNullOrUndefined(parentElement) && parentElement.tagName.toLowerCase() !== 'li') {
16021
- parentElement = parentElement.parentElement;
16022
- liElement = parentElement;
16039
+ if (format === 'fontsize' || format === 'fontcolor' || format === 'fontname') {
16040
+ if (format !== 'fontname') {
16041
+ var liElement = nodes[index].parentElement;
16042
+ var parentElement = nodes[index].parentElement;
16043
+ while (!isNullOrUndefined(parentElement) && parentElement.tagName.toLowerCase() !== 'li') {
16044
+ parentElement = parentElement.parentElement;
16045
+ liElement = parentElement;
16046
+ }
16047
+ if (!isNullOrUndefined(liElement) && liElement.tagName.toLowerCase() === 'li' &&
16048
+ liElement.textContent.trim() === nodes[index].textContent.trim()) {
16049
+ if (format === 'fontsize') {
16050
+ liElement.style.fontSize = value;
16051
+ }
16052
+ else {
16053
+ liElement.style.color = value;
16054
+ liElement.style.textDecoration = 'inherit';
16055
+ }
16056
+ }
16023
16057
  }
16024
- if (!isNullOrUndefined(liElement) && liElement.tagName.toLowerCase() === 'li' &&
16025
- liElement.textContent.trim() === nodes[index].textContent.trim()) {
16026
- if (format === 'fontsize') {
16027
- liElement.style.fontSize = value;
16058
+ if (rootBlockNode && rootBlockNode.nodeType !== 3) {
16059
+ var save = new NodeSelection();
16060
+ save.save(range, docElement);
16061
+ domNode.setMarker(save);
16062
+ var cloneNode = rootBlockNode.cloneNode(true);
16063
+ element.appendChild(cloneNode);
16064
+ domNode.replaceWith(rootBlockNode, element.outerHTML);
16065
+ var currentStartNode = endNode.querySelector('.e-editor-select-start');
16066
+ var currrentEndNode = endNode.querySelector('.e-editor-select-end');
16067
+ if (index === 0) {
16068
+ nodes[index] = currentStartNode ? currentStartNode.lastChild : nodes[index];
16028
16069
  }
16029
- else {
16030
- liElement.style.color = value;
16031
- liElement.style.textDecoration = 'inherit';
16070
+ if (range.startContainer.parentElement === endNode) {
16071
+ if (nodes.length > 1) {
16072
+ nodes[nodes.length - 1] = currrentEndNode ? currrentEndNode.lastChild : nodes[index];
16073
+ }
16032
16074
  }
16075
+ domNode.saveMarker(save, null);
16076
+ }
16077
+ else {
16078
+ nodes[index] = this.applyStyles(nodes, index, element);
16033
16079
  }
16034
- nodes[index] = this.applyStyles(nodes, index, element);
16035
16080
  if (format === 'fontsize') {
16036
16081
  var bg = closest(nodes[index].parentElement, 'span[style*=' + 'background-color' + ']');
16037
16082
  if (!isNullOrUndefined(bg)) {
@@ -22058,7 +22103,6 @@ var Image = /** @__PURE__ @class */ (function () {
22058
22103
  if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) &&
22059
22104
  originalEvent.code !== 'KeyK') {
22060
22105
  range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
22061
- save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
22062
22106
  selectNodeEle = this.parent.formatter.editorManager.nodeSelection.getNodeCollection(range);
22063
22107
  selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
22064
22108
  if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
@@ -22077,6 +22121,8 @@ var Image = /** @__PURE__ @class */ (function () {
22077
22121
  }
22078
22122
  if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
22079
22123
  if (selectNodeEle && selectNodeEle[0].nodeName === 'IMG' && selectNodeEle.length < 1) {
22124
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
22125
+ save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
22080
22126
  originalEvent.preventDefault();
22081
22127
  var event_1 = {
22082
22128
  selectNode: selectNodeEle, selection: save, selectParent: selectParentEle,
@@ -22135,6 +22181,8 @@ var Image = /** @__PURE__ @class */ (function () {
22135
22181
  }
22136
22182
  break;
22137
22183
  case 'insert-image':
22184
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
22185
+ save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
22138
22186
  this.openDialog(true, originalEvent, save, selectNodeEle, selectParentEle);
22139
22187
  originalEvent.preventDefault();
22140
22188
  break;
@@ -23922,7 +23970,6 @@ var Audio = /** @__PURE__ @class */ (function () {
23922
23970
  if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) &&
23923
23971
  originalEvent.code !== 'KeyK') {
23924
23972
  range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
23925
- save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
23926
23973
  selectNodeEle = this.parent.formatter.editorManager.nodeSelection.getNodeCollection(range);
23927
23974
  selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
23928
23975
  if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
@@ -23938,6 +23985,8 @@ var Audio = /** @__PURE__ @class */ (function () {
23938
23985
  }
23939
23986
  if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
23940
23987
  if (selectNodeEle && this.isAudioElem(selectNodeEle[0]) && selectNodeEle.length < 1) {
23988
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
23989
+ save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
23941
23990
  originalEvent.preventDefault();
23942
23991
  var event_1 = {
23943
23992
  selectNode: selectNodeEle, selection: save, selectParent: selectParentEle,
@@ -23986,6 +24035,8 @@ var Audio = /** @__PURE__ @class */ (function () {
23986
24035
  }
23987
24036
  break;
23988
24037
  case 'insert-audio':
24038
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
24039
+ save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
23989
24040
  this.openDialog(true, originalEvent, save, selectNodeEle, selectParentEle);
23990
24041
  originalEvent.preventDefault();
23991
24042
  break;
@@ -25228,7 +25279,6 @@ var Video = /** @__PURE__ @class */ (function () {
25228
25279
  if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) &&
25229
25280
  originalEvent.code !== 'KeyK') {
25230
25281
  range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
25231
- save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
25232
25282
  selectNodeEle = this.parent.formatter.editorManager.nodeSelection.getNodeCollection(range);
25233
25283
  selectParentEle = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
25234
25284
  if (!originalEvent.ctrlKey && originalEvent.key && (originalEvent.key.length === 1 || originalEvent.action === 'enter') &&
@@ -25248,6 +25298,8 @@ var Video = /** @__PURE__ @class */ (function () {
25248
25298
  }
25249
25299
  if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
25250
25300
  if (selectNodeEle && (selectNodeEle[0].nodeName === 'VIDEO' || this.isEmbedVidElem(selectNodeEle[0])) && selectNodeEle.length < 1) {
25301
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
25302
+ save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
25251
25303
  originalEvent.preventDefault();
25252
25304
  var event_1 = {
25253
25305
  selectNode: selectNodeEle, selection: save, selectParent: selectParentEle,
@@ -25300,6 +25352,8 @@ var Video = /** @__PURE__ @class */ (function () {
25300
25352
  }
25301
25353
  break;
25302
25354
  case 'insert-video':
25355
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection))
25356
+ save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
25303
25357
  this.openDialog(true, originalEvent, save, selectNodeEle, selectParentEle);
25304
25358
  originalEvent.preventDefault();
25305
25359
  break;
@@ -26489,14 +26543,15 @@ var Table = /** @__PURE__ @class */ (function () {
26489
26543
  }
26490
26544
  if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule
26491
26545
  && event.code !== 'KeyK') {
26546
+ var selection = void 0;
26492
26547
  var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
26493
- var selection = this.parent.formatter.editorManager.
26494
- nodeSelection.save(range, this.contentModule.getDocument());
26495
26548
  var ele = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range)[0];
26496
26549
  ele = (ele && ele.tagName !== 'TD' && ele.tagName !== 'TH') ? ele.parentElement : ele;
26497
26550
  if ((event.keyCode === 8 || event.keyCode === 46) ||
26498
26551
  (event.ctrlKey && event.keyCode === 88)) {
26499
26552
  if (ele && ele.tagName === 'TBODY') {
26553
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule)
26554
+ selection = this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());
26500
26555
  event.preventDefault();
26501
26556
  proxy.removeTable(selection, event, true);
26502
26557
  }
@@ -26510,6 +26565,8 @@ var Table = /** @__PURE__ @class */ (function () {
26510
26565
  ele = !isNullOrUndefined(closestTd) && this.parent.inputElement.contains(closestTd) ? closestTd : ele;
26511
26566
  }
26512
26567
  if (ele && (ele.tagName === 'TD' || ele.tagName === 'TH')) {
26568
+ if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection) && this.contentModule)
26569
+ selection = this.parent.formatter.editorManager.nodeSelection.save(range, this.contentModule.getDocument());
26513
26570
  switch (event.keyCode) {
26514
26571
  case 9:
26515
26572
  case 37:
@@ -29979,6 +30036,10 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
29979
30036
  if (this.isDestroyed || !this.isRendered) {
29980
30037
  return;
29981
30038
  }
30039
+ if (!isNullOrUndefined(this.timeInterval)) {
30040
+ clearInterval(this.timeInterval);
30041
+ this.timeInterval = null;
30042
+ }
29982
30043
  if (this.element.offsetParent === null) {
29983
30044
  if (!isNullOrUndefined(this.toolbarModule)) {
29984
30045
  this.toolbarModule.destroy();
@@ -29988,10 +30049,6 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
29988
30049
  }
29989
30050
  this.notify(destroy, {});
29990
30051
  this.destroyDependentModules();
29991
- if (!isNullOrUndefined(this.timeInterval)) {
29992
- clearInterval(this.timeInterval);
29993
- this.timeInterval = null;
29994
- }
29995
30052
  this.unWireEvents();
29996
30053
  if (this.originalElement.tagName === 'TEXTAREA') {
29997
30054
  this.element.parentElement.insertBefore(this.valueContainer, this.element);