@syncfusion/ej2-richtexteditor 21.2.4 → 21.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 (63) hide show
  1. package/CHANGELOG.md +26 -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 +68 -28
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +67 -27
  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 +10 -10
  13. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +2 -0
  14. package/src/editor-manager/plugin/ms-word-clean-up.js +46 -20
  15. package/src/editor-manager/plugin/table.d.ts +1 -0
  16. package/src/editor-manager/plugin/table.js +16 -4
  17. package/src/rich-text-editor/actions/html-editor.js +3 -2
  18. package/src/rich-text-editor/actions/paste-clean-up.js +1 -1
  19. package/src/rich-text-editor/base/rich-text-editor.js +1 -1
  20. package/styles/bootstrap-dark.css +17 -0
  21. package/styles/bootstrap.css +17 -0
  22. package/styles/bootstrap4.css +17 -0
  23. package/styles/bootstrap5-dark.css +17 -0
  24. package/styles/bootstrap5.css +17 -0
  25. package/styles/fabric-dark.css +17 -0
  26. package/styles/fabric.css +17 -0
  27. package/styles/fluent-dark.css +17 -0
  28. package/styles/fluent.css +17 -0
  29. package/styles/highcontrast-light.css +17 -0
  30. package/styles/highcontrast.css +17 -0
  31. package/styles/material-dark.css +17 -0
  32. package/styles/material.css +17 -0
  33. package/styles/rich-text-editor/bootstrap-dark.css +17 -0
  34. package/styles/rich-text-editor/bootstrap.css +17 -0
  35. package/styles/rich-text-editor/bootstrap4.css +17 -0
  36. package/styles/rich-text-editor/bootstrap5-dark.css +17 -0
  37. package/styles/rich-text-editor/bootstrap5.css +17 -0
  38. package/styles/rich-text-editor/fabric-dark.css +17 -0
  39. package/styles/rich-text-editor/fabric.css +17 -0
  40. package/styles/rich-text-editor/fluent-dark.css +17 -0
  41. package/styles/rich-text-editor/fluent.css +17 -0
  42. package/styles/rich-text-editor/highcontrast-light.css +17 -0
  43. package/styles/rich-text-editor/highcontrast.css +17 -0
  44. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +21 -0
  45. package/styles/rich-text-editor/icons/_bootstrap.scss +21 -0
  46. package/styles/rich-text-editor/icons/_bootstrap4.scss +21 -0
  47. package/styles/rich-text-editor/icons/_bootstrap5.scss +21 -0
  48. package/styles/rich-text-editor/icons/_fabric-dark.scss +21 -0
  49. package/styles/rich-text-editor/icons/_fabric.scss +21 -0
  50. package/styles/rich-text-editor/icons/_fluent.scss +21 -0
  51. package/styles/rich-text-editor/icons/_fusionnew.scss +21 -0
  52. package/styles/rich-text-editor/icons/_highcontrast-light.scss +21 -0
  53. package/styles/rich-text-editor/icons/_highcontrast.scss +21 -0
  54. package/styles/rich-text-editor/icons/_material-dark.scss +21 -0
  55. package/styles/rich-text-editor/icons/_material.scss +21 -0
  56. package/styles/rich-text-editor/icons/_material3.scss +21 -0
  57. package/styles/rich-text-editor/icons/_tailwind.scss +21 -0
  58. package/styles/rich-text-editor/material-dark.css +17 -0
  59. package/styles/rich-text-editor/material.css +17 -0
  60. package/styles/rich-text-editor/tailwind-dark.css +17 -0
  61. package/styles/rich-text-editor/tailwind.css +17 -0
  62. package/styles/tailwind-dark.css +17 -0
  63. package/styles/tailwind.css +17 -0
@@ -14984,10 +14984,13 @@ var TableCommand = /** @__PURE__ @class */ (function () {
14984
14984
  /* eslint-disable */
14985
14985
  if (1 === rowSpanVal) {
14986
14986
  allCells[maxI][j].removeAttribute('rowspan');
14987
- var cell = allCells[maxI][j].cloneNode(true);
14988
- allCells = this.getCorrespondingColumns();
14989
- if (allCells[rowSpanVal][j] && allCells[rowSpanVal][j].parentElement) {
14990
- allCells[rowSpanVal][j].parentElement.insertBefore(cell, allCells[rowSpanVal][j]);
14987
+ var cell = this.getMergedRow(this.getCorrespondingColumns())[j];
14988
+ if (cell) {
14989
+ var cloneNode = cell.cloneNode(true);
14990
+ cloneNode.innerHTML = '<br>';
14991
+ if (cell.parentElement) {
14992
+ cell.parentElement.insertBefore(cloneNode, cell);
14993
+ }
14991
14994
  }
14992
14995
  }
14993
14996
  else {
@@ -15037,6 +15040,15 @@ var TableCommand = /** @__PURE__ @class */ (function () {
15037
15040
  });
15038
15041
  }
15039
15042
  };
15043
+ TableCommand.prototype.getMergedRow = function (cells) {
15044
+ var mergedRow;
15045
+ for (var i = 0; i < cells.length; i++) {
15046
+ if (cells[i].length !== this.curTable.rows[0].childNodes.length) {
15047
+ mergedRow = cells[i];
15048
+ }
15049
+ }
15050
+ return mergedRow;
15051
+ };
15040
15052
  TableCommand.prototype.removeTable = function (e) {
15041
15053
  var selectedCell = e.item.selection.range.startContainer;
15042
15054
  selectedCell = (selectedCell.nodeType === 3) ? selectedCell.parentNode : selectedCell;
@@ -17197,6 +17209,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17197
17209
  this.removingComments(elm);
17198
17210
  this.removeUnwantedElements(elm);
17199
17211
  this.removeEmptyElements(elm);
17212
+ this.removeEmptyAnchorTag(elm);
17200
17213
  this.breakLineAddition(elm);
17201
17214
  this.removeClassName(elm);
17202
17215
  if (pattern4.test(tempHTMLContent)) {
@@ -17250,7 +17263,8 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17250
17263
  imgElem[i].getAttribute('v:shapes').indexOf('Picture') < 0 &&
17251
17264
  imgElem[i].getAttribute('v:shapes').indexOf('圖片') < 0 &&
17252
17265
  imgElem[i].getAttribute('v:shapes').indexOf('Grafik') < 0 &&
17253
- imgElem[i].getAttribute('v:shapes').indexOf('Image') < 0) {
17266
+ imgElem[i].getAttribute('v:shapes').indexOf('Image') < 0 &&
17267
+ imgElem[i].getAttribute('v:shapes').indexOf('Graphic') < 0) {
17254
17268
  detach(imgElem[i]);
17255
17269
  }
17256
17270
  }
@@ -17423,6 +17437,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17423
17437
  if (!isNullOrUndefined(element.parentElement)) {
17424
17438
  if (element.parentElement.textContent.trim() === '' &&
17425
17439
  element.parentElement.getAttribute('id') !== 'MSWord-Content' &&
17440
+ !(this.hasParentWithClass(element, 'MsoListParagraph')) &&
17426
17441
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
17427
17442
  removableElement = this.findDetachEmptyElem(element.parentElement);
17428
17443
  }
@@ -17435,6 +17450,16 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17435
17450
  }
17436
17451
  return removableElement;
17437
17452
  };
17453
+ MsWordPaste.prototype.hasParentWithClass = function (element, className) {
17454
+ var currentParentElem = element.parentElement;
17455
+ while (!isNullOrUndefined(currentParentElem)) {
17456
+ if (currentParentElem.classList.contains(className)) {
17457
+ return true;
17458
+ }
17459
+ currentParentElem = currentParentElem.parentElement;
17460
+ }
17461
+ return false;
17462
+ };
17438
17463
  MsWordPaste.prototype.removeEmptyElements = function (element) {
17439
17464
  var emptyElements = element.querySelectorAll(':empty');
17440
17465
  for (var i = 0; i < emptyElements.length; i++) {
@@ -17585,7 +17610,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17585
17610
  }
17586
17611
  else if (allNodes[index].className &&
17587
17612
  allNodes[index].className.toLowerCase().indexOf('msolistparagraph') !== -1 &&
17588
- allNodes[index].childElementCount !== 1 && !isNullOrUndefined(allNodes[index].getAttribute('style')) &&
17613
+ !isNullOrUndefined(allNodes[index].getAttribute('style')) &&
17589
17614
  allNodes[index].getAttribute('style').indexOf('mso-list:') >= 0) {
17590
17615
  if (allNodes[index].className.indexOf('MsoListParagraphCxSpFirst') >= 0 && listNodes.length > 0 &&
17591
17616
  listNodes[listNodes.length - 1] !== null) {
@@ -17766,6 +17791,19 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17766
17791
  var listCount = 0;
17767
17792
  var elem;
17768
17793
  for (var index = 0; index < collection.length; index++) {
17794
+ var listClass = ['MsoListParagraphCxSpFirst', 'MsoListParagraphCxSpMiddle', 'MsoListParagraphCxSpLast'];
17795
+ var isNormalList = false;
17796
+ for (var i = 0; i < listClass.length; i++) {
17797
+ if (listClass[i].indexOf(collection[index].class) >= 0) {
17798
+ isNormalList = true;
17799
+ break;
17800
+ }
17801
+ }
17802
+ if (!isNullOrUndefined(prevList) && index != 0 &&
17803
+ collection[index - 1].listType !== collection[index].listType &&
17804
+ !isNormalList) {
17805
+ prevList = null;
17806
+ }
17769
17807
  var pElement = createElement('p');
17770
17808
  pElement.innerHTML = collection[index].content.join(' ');
17771
17809
  if ((collection[index].nestedLevel === 1) && listCount === 0 && collection[index].content) {
@@ -17876,28 +17914,29 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17876
17914
  this.listContents.push(pushContent);
17877
17915
  }
17878
17916
  else {
17879
- var styleNodes = ['b', 'em'];
17880
- if (firstChild.childNodes.length > 0 && (firstChild.querySelectorAll('b').length > 0
17881
- || firstChild.querySelectorAll('em').length > 0)) {
17882
- for (var i = 0; i < firstChild.childNodes.length; i++) {
17883
- var nodeName = firstChild.childNodes[i].nodeName.toLowerCase();
17884
- if (firstChild.childNodes[i].textContent.trim().length > 1 && styleNodes.indexOf(nodeName) !== -1) {
17885
- pushContent = '<' + nodeName + '>' + firstChild.childNodes[i].textContent + '</' + nodeName + '>';
17886
- this.listContents.push(pushContent);
17887
- }
17888
- else if (firstChild.childNodes[i].textContent.trim().length === 1) {
17889
- this.listContents.push(firstChild.childNodes[i].textContent.trim());
17890
- }
17917
+ //Add to support separate list which looks like same list and also to add all tags as it is inside list
17918
+ if (firstChild.childNodes.length > 0) {
17919
+ var listOrder = firstChild.querySelector('span[style="mso-list:Ignore"]');
17920
+ if (!isNullOrUndefined(listOrder)) {
17921
+ this.listContents.push(listOrder.textContent.trim());
17922
+ detach(listOrder);
17923
+ this.removingComments(elem);
17924
+ this.removeUnwantedElements(elem);
17891
17925
  }
17892
17926
  }
17893
- else {
17894
- pushContent = firstChild.textContent.trim();
17895
- this.listContents.push(pushContent);
17896
- }
17897
17927
  }
17898
- detach(firstChild);
17899
17928
  this.listContents.push(elem.innerHTML);
17900
17929
  };
17930
+ MsWordPaste.prototype.removeEmptyAnchorTag = function (element) {
17931
+ var removableElement = element.querySelectorAll('a:not([href])');
17932
+ for (var j = removableElement.length - 1; j >= 0; j--) {
17933
+ var parentElem = removableElement[j].parentNode;
17934
+ while (removableElement[j].firstChild) {
17935
+ parentElem.insertBefore(removableElement[j].firstChild, removableElement[j]);
17936
+ }
17937
+ parentElem.removeChild(removableElement[j]);
17938
+ }
17939
+ };
17901
17940
  return MsWordPaste;
17902
17941
  }());
17903
17942
 
@@ -19504,7 +19543,8 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
19504
19543
  range.startContainer.nodeName === '#text' ? range.startContainer.parentElement !== this.parent.inputElement ? range.startContainer.parentElement.classList.add('currentStartMark')
19505
19544
  : isRootParent = true : range.startContainer.classList.add('currentStartMark');
19506
19545
  if (range.startContainer.textContent.charCodeAt(0) === 8203) {
19507
- pointer = range.startOffset === 0 ? range.startOffset : range.startOffset - 1;
19546
+ pointer = range.startOffset === 0 ? range.startOffset :
19547
+ range.startContainer.textContent.replace(regEx, '').trim().length !== 0 ? range.startOffset - 1 : 0;
19508
19548
  range.startContainer.textContent = range.startContainer.textContent.replace(regEx, '');
19509
19549
  this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), range.startContainer, pointer);
19510
19550
  }
@@ -19719,7 +19759,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
19719
19759
  this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(),
19720
19760
  // eslint-disable-next-line
19721
19761
  this.oldRangeElement, this.oldRangeElement.childNodes.length);
19722
- if (this.oldRangeElement.querySelector('BR')) {
19762
+ if (this.oldRangeElement.querySelectorAll('BR').length === 1) {
19723
19763
  detach(this.oldRangeElement.querySelector('BR'));
19724
19764
  }
19725
19765
  if (!isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement) {
@@ -20582,7 +20622,6 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
20582
20622
  statusCode: '1'
20583
20623
  }];
20584
20624
  this.uploadObj.createFileList(fileData);
20585
- this.uploadObj.filesData.push(fileData[0]);
20586
20625
  /* eslint-enable */
20587
20626
  rawFile = fileData;
20588
20627
  this.uploadObj.upload(fileData);
@@ -20659,6 +20698,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
20659
20698
  * @deprecated
20660
20699
  */
20661
20700
  PasteCleanup.prototype.imageFormatting = function (pasteArgs, imgElement) {
20701
+ imgElement.elements[0].classList.add('pasteContent_Img');
20662
20702
  var imageElement = this.parent.createElement('span');
20663
20703
  imageElement.appendChild(imgElement.elements[0]);
20664
20704
  var imageValue = imageElement.innerHTML;
@@ -30940,6 +30980,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
30940
30980
  }
30941
30981
  if (e.action !== 'insert-link' &&
30942
30982
  e.action !== 'format-copy' && e.action !== 'format-paste' &&
30983
+ (!e.target || !e.target.classList.contains('e-mention')) &&
30943
30984
  (e.action && e.action !== 'paste' && e.action !== 'space'
30944
30985
  || e.which === 9 || (e.code === 'Backspace' && e.which === 8))) {
30945
30986
  var FormatPainterEscapeAction = false;
@@ -32542,7 +32583,6 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
32542
32583
  };
32543
32584
  RichTextEditor.prototype.setAutoHeight = function (element) {
32544
32585
  if (!isNullOrUndefined(element)) {
32545
- element.style.height = '';
32546
32586
  element.style.height = this.inputElement.scrollHeight + 'px';
32547
32587
  element.style.overflow = 'hidden';
32548
32588
  }