@syncfusion/ej2-richtexteditor 19.4.56 → 20.1.47

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 (76) hide show
  1. package/CHANGELOG.md +1 -81
  2. package/dist/ej2-richtexteditor.umd.min.js +2 -2
  3. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-richtexteditor.es2015.js +89 -32
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +88 -31
  7. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  8. package/dist/global/ej2-richtexteditor.min.js +2 -2
  9. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +12 -12
  12. package/src/editor-manager/plugin/clearformat.js +3 -2
  13. package/src/editor-manager/plugin/inserthtml.js +7 -1
  14. package/src/editor-manager/plugin/lists.js +14 -6
  15. package/src/editor-manager/plugin/table.js +6 -5
  16. package/src/rich-text-editor/actions/count.js +2 -2
  17. package/src/rich-text-editor/actions/dropdown-buttons.js +1 -1
  18. package/src/rich-text-editor/actions/html-editor.js +1 -0
  19. package/src/rich-text-editor/base/classes.d.ts +5 -0
  20. package/src/rich-text-editor/base/classes.js +5 -0
  21. package/src/rich-text-editor/base/rich-text-editor.js +4 -3
  22. package/src/rich-text-editor/renderer/image-module.js +21 -5
  23. package/src/rich-text-editor/renderer/table-module.js +20 -5
  24. package/src/selection/selection.js +3 -0
  25. package/styles/bootstrap-dark.css +6 -3
  26. package/styles/bootstrap.css +6 -3
  27. package/styles/bootstrap4.css +2 -2
  28. package/styles/bootstrap5-dark.css +30 -6
  29. package/styles/bootstrap5.css +31 -7
  30. package/styles/fabric-dark.css +2 -2
  31. package/styles/fabric.css +2 -2
  32. package/styles/fluent-dark.css +3001 -0
  33. package/styles/fluent-dark.scss +1 -0
  34. package/styles/fluent.css +3001 -0
  35. package/styles/fluent.scss +1 -0
  36. package/styles/highcontrast-light.css +2 -2
  37. package/styles/highcontrast.css +2 -2
  38. package/styles/material-dark.css +2 -2
  39. package/styles/material.css +2 -2
  40. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +19 -0
  41. package/styles/rich-text-editor/_bootstrap-definition.scss +19 -0
  42. package/styles/rich-text-editor/_bootstrap4-definition.scss +19 -0
  43. package/styles/rich-text-editor/_bootstrap5-definition.scss +24 -3
  44. package/styles/rich-text-editor/_fabric-dark-definition.scss +19 -0
  45. package/styles/rich-text-editor/_fabric-definition.scss +19 -0
  46. package/styles/rich-text-editor/_fluent-dark-definition.scss +1 -0
  47. package/styles/rich-text-editor/_fluent-definition.scss +42 -19
  48. package/styles/rich-text-editor/_highcontrast-definition.scss +19 -0
  49. package/styles/rich-text-editor/_highcontrast-light-definition.scss +19 -0
  50. package/styles/rich-text-editor/_layout.scss +96 -6
  51. package/styles/rich-text-editor/_material-dark-definition.scss +18 -1
  52. package/styles/rich-text-editor/_material-definition.scss +19 -0
  53. package/styles/rich-text-editor/_tailwind-definition.scss +26 -6
  54. package/styles/rich-text-editor/_theme.scss +17 -2
  55. package/styles/rich-text-editor/bootstrap-dark.css +6 -3
  56. package/styles/rich-text-editor/bootstrap.css +6 -3
  57. package/styles/rich-text-editor/bootstrap4.css +2 -2
  58. package/styles/rich-text-editor/bootstrap5-dark.css +30 -6
  59. package/styles/rich-text-editor/bootstrap5.css +31 -7
  60. package/styles/rich-text-editor/fabric-dark.css +2 -2
  61. package/styles/rich-text-editor/fabric.css +2 -2
  62. package/styles/rich-text-editor/fluent-dark.css +3001 -0
  63. package/styles/rich-text-editor/fluent-dark.scss +4 -0
  64. package/styles/rich-text-editor/fluent.css +3001 -0
  65. package/styles/rich-text-editor/fluent.scss +4 -0
  66. package/styles/rich-text-editor/highcontrast-light.css +2 -2
  67. package/styles/rich-text-editor/highcontrast.css +2 -2
  68. package/styles/rich-text-editor/icons/_fluent-dark.scss +1 -0
  69. package/styles/rich-text-editor/icons/_fluent.scss +74 -74
  70. package/styles/rich-text-editor/icons/_tailwind.scss +73 -74
  71. package/styles/rich-text-editor/material-dark.css +2 -2
  72. package/styles/rich-text-editor/material.css +2 -2
  73. package/styles/rich-text-editor/tailwind-dark.css +104 -85
  74. package/styles/rich-text-editor/tailwind.css +105 -86
  75. package/styles/tailwind-dark.css +104 -85
  76. package/styles/tailwind.css +105 -86
@@ -933,6 +933,11 @@ var CLS_FONT_NAME_TB_BTN = 'e-font-name-tbar-btn';
933
933
  * @deprecated
934
934
  */
935
935
  var CLS_FONT_SIZE_TB_BTN = 'e-font-size-tbar-btn';
936
+ /**
937
+ * @hidden
938
+ * @deprecated
939
+ */
940
+ var CLS_ALIGN_TB_BTN = 'e-alignment-tbar-btn';
936
941
  /**
937
942
  * @hidden
938
943
  * @deprecated
@@ -3560,7 +3565,7 @@ var DropDownButtons = /** @__PURE__ @class */ (function () {
3560
3565
  }
3561
3566
  _this.alignDropDown = _this.toolbarRenderer.renderDropDownButton({
3562
3567
  iconCss: 'e-justify-left e-icons',
3563
- cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS,
3568
+ cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS + ' ' + CLS_ALIGN_TB_BTN,
3564
3569
  itemName: 'Alignments', items: alignmentItems, element: targetElement
3565
3570
  });
3566
3571
  break;
@@ -6114,8 +6119,8 @@ var Count = /** @__PURE__ @class */ (function () {
6114
6119
  }
6115
6120
  };
6116
6121
  Count.prototype.appendCount = function () {
6117
- var htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value.trim() :
6118
- this.editPanel.textContent.trim();
6122
+ var htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value :
6123
+ this.editPanel.textContent;
6119
6124
  if (this.parent.editorMode !== 'Markdown' && htmlText.indexOf('\u200B') !== -1) {
6120
6125
  this.htmlLength = htmlText.replace(/\u200B/g, '').length;
6121
6126
  }
@@ -9608,6 +9613,9 @@ var NodeSelection = /** @__PURE__ @class */ (function () {
9608
9613
  node = node && node.childNodes[num[index]];
9609
9614
  }
9610
9615
  if (node && constant >= 0 && node.nodeName !== 'html') {
9616
+ if (node.nodeType === 3 && node.nodeValue.replace(/\u00a0/g, ' ') === ' ') {
9617
+ constant = node.textContent.length;
9618
+ }
9611
9619
  range[isvalid ? 'setStart' : 'setEnd'](node, constant);
9612
9620
  }
9613
9621
  return range;
@@ -10609,6 +10617,9 @@ var Lists = /** @__PURE__ @class */ (function () {
10609
10617
  range.endContainer.parentElement.closest('LI');
10610
10618
  if (!isNullOrUndefined(startNode) && !isNullOrUndefined(endNode) && startNode === endNode && startNode.tagName === 'LI' &&
10611
10619
  startNode.textContent.trim() === '' && startNode.querySelectorAll('IMG').length === 0) {
10620
+ if (startNode.innerHTML.indexOf(' ') >= 0) {
10621
+ return;
10622
+ }
10612
10623
  if (startNode.textContent.charCodeAt(0) === 65279) {
10613
10624
  startNode.textContent = '';
10614
10625
  }
@@ -10750,7 +10761,7 @@ var Lists = /** @__PURE__ @class */ (function () {
10750
10761
  e.event.stopPropagation();
10751
10762
  this.currentAction = this.getAction(nodes[0]);
10752
10763
  if (e.event.shiftKey) {
10753
- this.revertList(nodes);
10764
+ this.revertList(nodes, e);
10754
10765
  this.revertClean();
10755
10766
  }
10756
10767
  else {
@@ -10912,6 +10923,9 @@ var Lists = /** @__PURE__ @class */ (function () {
10912
10923
  append([nestedElement], prevSibling);
10913
10924
  append([elements[i]], nestedElement);
10914
10925
  }
10926
+ else if (prevSibling.tagName === 'OL' || prevSibling.tagName === 'UL') {
10927
+ append([elements[i]], prevSibling);
10928
+ }
10915
10929
  }
10916
10930
  }
10917
10931
  else {
@@ -11006,7 +11020,7 @@ var Lists = /** @__PURE__ @class */ (function () {
11006
11020
  listsNodes[i] = listsNodes[i].parentNode;
11007
11021
  }
11008
11022
  }
11009
- this.applyLists(listsNodes, this.currentAction, e.selector, e.item);
11023
+ this.applyLists(listsNodes, this.currentAction, e.selector, e.item, e);
11010
11024
  if (e.callBack) {
11011
11025
  e.callBack({
11012
11026
  requestType: this.currentAction,
@@ -11027,9 +11041,9 @@ var Lists = /** @__PURE__ @class */ (function () {
11027
11041
  this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startElem, endElem, 0, 0);
11028
11042
  }
11029
11043
  };
11030
- Lists.prototype.applyLists = function (elements, type, selector, item) {
11044
+ Lists.prototype.applyLists = function (elements, type, selector, item, e) {
11031
11045
  if (this.isRevert(elements, type) && isNullOrUndefined(item)) {
11032
- this.revertList(elements);
11046
+ this.revertList(elements, e);
11033
11047
  this.removeEmptyListElements();
11034
11048
  }
11035
11049
  else {
@@ -11186,7 +11200,7 @@ var Lists = /** @__PURE__ @class */ (function () {
11186
11200
  }
11187
11201
  }
11188
11202
  };
11189
- Lists.prototype.revertList = function (elements) {
11203
+ Lists.prototype.revertList = function (elements, e) {
11190
11204
  var temp = [];
11191
11205
  for (var i = elements.length - 1; i >= 0; i--) {
11192
11206
  for (var j = i - 1; j >= 0; j--) {
@@ -11230,7 +11244,9 @@ var Lists = /** @__PURE__ @class */ (function () {
11230
11244
  ' class="' + className + ' e-rte-wrap-inner"';
11231
11245
  var wrapper = '<' + DEFAULT_TAG + wrapperclass +
11232
11246
  this.domNode.attributes(parentNode) + '></' + DEFAULT_TAG + '>';
11233
- this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
11247
+ if (e.enterAction !== 'BR') {
11248
+ this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
11249
+ }
11234
11250
  }
11235
11251
  else if (this.domNode.contents(element)[0].nodeType === 3) {
11236
11252
  var replace = this.domNode.createTagString(DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));
@@ -11972,6 +11988,12 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
11972
11988
  nodeSelection.setSelectionText(docElement, range.startContainer.children[0], range.startContainer.children[0], 0, 0);
11973
11989
  range = nodeSelection.getRange(docElement);
11974
11990
  }
11991
+ if (range.startContainer.nodeName === 'BR' && range.startOffset === 0 && range.startOffset === range.endOffset &&
11992
+ range.startContainer === range.endContainer) {
11993
+ var currentIndex = Array.prototype.slice.call(range.startContainer.parentElement.children).indexOf(range.startContainer);
11994
+ nodeSelection.setSelectionText(docElement, range.startContainer.parentElement, range.startContainer.parentElement, currentIndex + 1, currentIndex + 1);
11995
+ range = nodeSelection.getRange(docElement);
11996
+ }
11975
11997
  var isCursor = range.startOffset === range.endOffset && range.startOffset === 0 &&
11976
11998
  range.startContainer === range.endContainer;
11977
11999
  var isCollapsed = range.collapsed;
@@ -12155,7 +12177,7 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
12155
12177
  else {
12156
12178
  var tempSpan = createElement('span', { className: 'tempSpan' });
12157
12179
  var nearestAnchor = closest(range.startContainer.parentElement, 'a');
12158
- if (range.startContainer.nodeType === 3 && nearestAnchor) {
12180
+ if (range.startContainer.nodeType === 3 && nearestAnchor && closest(nearestAnchor, 'span')) {
12159
12181
  var immediateBlockNode = this.getImmediateBlockNode(range.startContainer, editNode);
12160
12182
  if (immediateBlockNode.querySelectorAll('br').length > 0) {
12161
12183
  detach(immediateBlockNode.querySelector('br'));
@@ -13460,7 +13482,7 @@ var TableCommand = /** @__PURE__ @class */ (function () {
13460
13482
  var tdElement = createElement('td');
13461
13483
  tdElement.appendChild(createElement('br'));
13462
13484
  newRow.appendChild(tdElement);
13463
- tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? (minVal + 1) : minVal][i].getAttribute('style'));
13485
+ tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? allCells[(minVal + 1)] ? (minVal + 1) : minVal : minVal][i].getAttribute('style'));
13464
13486
  }
13465
13487
  }
13466
13488
  // eslint-disable-next-line
@@ -13844,7 +13866,8 @@ var TableCommand = /** @__PURE__ @class */ (function () {
13844
13866
  if (min < (max = Math.min(max, eleArray.length - 1))) {
13845
13867
  for (rowValue = min; rowValue <= max; rowValue++) {
13846
13868
  // eslint-disable-next-line
13847
- if (!(min < rowValue && eleArray[rowValue][0] === eleArray[rowValue - 1][0]) && 1 < (index = Math.min(parseInt(eleArray[rowValue][0].getAttribute('rowspan'), 10) || 1, max - min + 1)) && eleArray[rowValue][0] === eleArray[rowValue + 1][0]) {
13869
+ if (!(min < rowValue && eleArray[rowValue][0] === eleArray[rowValue - 1][0]) && eleArray[rowValue][0] &&
13870
+ 1 < (index = Math.min(parseInt(eleArray[rowValue][0].getAttribute('rowspan'), 10) || 1, max - min + 1)) && eleArray[rowValue][0] === eleArray[rowValue + 1][0]) {
13848
13871
  for (count = index - 1, colIndex = 1; colIndex < eleArray[0].length; colIndex++) {
13849
13872
  if (eleArray[rowValue][colIndex] !== eleArray[rowValue][colIndex - 1]) {
13850
13873
  for (rowMin = rowValue; rowMin < rowValue + index; rowMin++) {
@@ -13886,10 +13909,10 @@ var TableCommand = /** @__PURE__ @class */ (function () {
13886
13909
  };
13887
13910
  TableCommand.prototype.mergeCellContent = function () {
13888
13911
  var selectedCells = this.curTable.querySelectorAll('.e-cell-select');
13889
- var innerHtml = selectedCells[0].innerHTML;
13890
- for (var i = 1; i < selectedCells.length - 1; i++) {
13912
+ var innerHtml = selectedCells[0].innerHTML === '<br>' ? '' : selectedCells[0].innerHTML;
13913
+ for (var i = 1; i < selectedCells.length; i++) {
13891
13914
  if ('<br>' !== selectedCells[i].innerHTML) {
13892
- innerHtml = innerHtml + selectedCells[i].innerHTML;
13915
+ innerHtml = innerHtml ? innerHtml + '<br>' + selectedCells[i].innerHTML : innerHtml + selectedCells[i].innerHTML;
13893
13916
  }
13894
13917
  }
13895
13918
  selectedCells[0].innerHTML = innerHtml;
@@ -15245,7 +15268,8 @@ var ClearFormat$1 = /** @__PURE__ @class */ (function () {
15245
15268
  for (var index = 0; index < textNodes.length; index++) {
15246
15269
  var currentInlineNode = textNodes[index];
15247
15270
  var currentNode = void 0;
15248
- while (!this.domNode.isBlockNode(currentInlineNode)) {
15271
+ while (!this.domNode.isBlockNode(currentInlineNode) &&
15272
+ (currentInlineNode.parentElement && !currentInlineNode.parentElement.classList.contains('e-img-inner'))) {
15249
15273
  currentNode = currentInlineNode;
15250
15274
  currentInlineNode = currentInlineNode.parentElement;
15251
15275
  }
@@ -15259,7 +15283,7 @@ var ClearFormat$1 = /** @__PURE__ @class */ (function () {
15259
15283
  ClearFormat.removeInlineParent = function (textNodes) {
15260
15284
  var nodes = InsertMethods.unwrap(textNodes);
15261
15285
  for (var index = 0; index < nodes.length; index++) {
15262
- if (nodes[index].parentNode.childNodes.length === 1
15286
+ if (nodes[index].parentNode.childNodes.length === 1 && !nodes[index].parentNode.classList.contains('e-img-inner')
15263
15287
  && IsFormatted.inlineTags.indexOf(nodes[index].parentNode.nodeName.toLocaleLowerCase()) > -1) {
15264
15288
  this.removeInlineParent(nodes[index].parentNode);
15265
15289
  }
@@ -17419,6 +17443,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
17419
17443
  if (!this.isImageDelete) {
17420
17444
  args.preventDefault();
17421
17445
  }
17446
+ args.preventDefault();
17422
17447
  }
17423
17448
  };
17424
17449
  HtmlEditor.prototype.isOrderedList = function (editorValue) {
@@ -20270,6 +20295,7 @@ var Image = /** @__PURE__ @class */ (function () {
20270
20295
  Image.prototype.calcPos = function (elem) {
20271
20296
  var ignoreOffset = ['TD', 'TH', 'TABLE', 'A'];
20272
20297
  var parentOffset = { top: 0, left: 0 };
20298
+ var elementOffset;
20273
20299
  var doc = elem.ownerDocument;
20274
20300
  var offsetParent = ((elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption') ||
20275
20301
  ignoreOffset.indexOf(elem.offsetParent.tagName) > -1)) ?
@@ -20283,10 +20309,19 @@ var Image = /** @__PURE__ @class */ (function () {
20283
20309
  // eslint-disable-next-line
20284
20310
  parentOffset = offsetParent.getBoundingClientRect();
20285
20311
  }
20286
- return {
20287
- top: elem.offsetTop,
20288
- left: elem.offsetLeft
20289
- };
20312
+ if (elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption'))) {
20313
+ elementOffset = elem.getBoundingClientRect();
20314
+ return {
20315
+ top: elementOffset.top - parentOffset.top,
20316
+ left: elementOffset.left - parentOffset.left
20317
+ };
20318
+ }
20319
+ else {
20320
+ return {
20321
+ top: elem.offsetTop,
20322
+ left: elem.offsetLeft
20323
+ };
20324
+ }
20290
20325
  };
20291
20326
  Image.prototype.setAspectRatio = function (img, expectedX, expectedY, e) {
20292
20327
  if (isNullOrUndefined(img.width)) {
@@ -20296,7 +20331,7 @@ var Image = /** @__PURE__ @class */ (function () {
20296
20331
  parseInt(img.style.width, 10) : img.width;
20297
20332
  var height = img.style.height !== '' ? parseInt(img.style.height, 10) : img.height;
20298
20333
  if (width > height) {
20299
- img.style.minWidth = '20px';
20334
+ img.style.minWidth = this.parent.insertImageSettings.minWidth === 0 ? '20px' : formatUnit(this.parent.insertImageSettings.minWidth);
20300
20335
  if (this.parent.insertImageSettings.resizeByPercent) {
20301
20336
  if (parseInt('' + img.getBoundingClientRect().width + '', 10) !== 0 && parseInt('' + width + '', 10) !== 0) {
20302
20337
  var percentageValue = this.pixToPerc((width / height * expectedY), (img.previousElementSibling || img.parentElement));
@@ -20619,6 +20654,10 @@ var Image = /** @__PURE__ @class */ (function () {
20619
20654
  range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE))) {
20620
20655
  detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE));
20621
20656
  }
20657
+ else if (range.startContainer.nodeType === 1 &&
20658
+ range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK)) {
20659
+ detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK));
20660
+ }
20622
20661
  }
20623
20662
  break;
20624
20663
  case 'insert-image':
@@ -20789,6 +20828,8 @@ var Image = /** @__PURE__ @class */ (function () {
20789
20828
  if (this.parent.quickToolbarModule.imageQTBar) {
20790
20829
  if (e.isNotify) {
20791
20830
  setTimeout(function () {
20831
+ _this.parent.formatter.editorManager.nodeSelection.Clear(_this.contentModule.getDocument());
20832
+ _this.parent.formatter.editorManager.nodeSelection.setSelectionContents(_this.contentModule.getDocument(), target);
20792
20833
  _this.quickToolObj.imageQTBar.showPopup(args.pageX, pageY, target);
20793
20834
  }, 400);
20794
20835
  }
@@ -22771,7 +22812,7 @@ var Table = /** @__PURE__ @class */ (function () {
22771
22812
  ele.classList.add(CLS_TABLE_SEL);
22772
22813
  this.addRow(selection, event, true);
22773
22814
  ele.classList.remove(CLS_TABLE_SEL);
22774
- nextElement = nextElement.parentElement.nextSibling.firstChild;
22815
+ nextElement = nextElement.parentElement.nextSibling ? nextElement.parentElement.nextSibling.firstChild : nextElement.parentElement.firstChild;
22775
22816
  // eslint-disable-next-line
22776
22817
  (nextElement.textContent.trim() !== '' && closest(nextElement, 'td')) ?
22777
22818
  selection.setSelectionNode(this.contentModule.getDocument(), nextElement) :
@@ -23060,6 +23101,7 @@ var Table = /** @__PURE__ @class */ (function () {
23060
23101
  var offset = elem.getBoundingClientRect();
23061
23102
  var doc = elem.ownerDocument;
23062
23103
  var offsetParent = elem.offsetParent || doc.documentElement;
23104
+ var isNestedTable = false;
23063
23105
  while (offsetParent &&
23064
23106
  (offsetParent === doc.body || offsetParent === doc.documentElement) &&
23065
23107
  offsetParent.style.position === 'static') {
@@ -23067,15 +23109,29 @@ var Table = /** @__PURE__ @class */ (function () {
23067
23109
  }
23068
23110
  if (offsetParent.nodeName === 'TD' && elem.nodeName === 'TABLE') {
23069
23111
  offsetParent = closest(offsetParent, '.e-rte-content');
23112
+ isNestedTable = true;
23070
23113
  }
23071
23114
  if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {
23072
23115
  // eslint-disable-next-line
23073
23116
  parentOffset = offsetParent.getBoundingClientRect();
23074
23117
  }
23075
- return {
23076
- top: elem.offsetTop,
23077
- left: elem.offsetLeft
23078
- };
23118
+ if (isNestedTable) {
23119
+ isNestedTable = false;
23120
+ var topValue = this.parent.inputElement && this.parent.inputElement.scrollTop > 0 ?
23121
+ (this.parent.inputElement.scrollTop + offset.top) - parentOffset.top : offset.top - parentOffset.top;
23122
+ var leftValue = this.parent.inputElement && this.parent.inputElement.scrollLeft > 0 ?
23123
+ (this.parent.inputElement.scrollLeft + offset.left) - parentOffset.left : offset.left - parentOffset.left;
23124
+ return {
23125
+ top: topValue,
23126
+ left: leftValue
23127
+ };
23128
+ }
23129
+ else {
23130
+ return {
23131
+ top: elem.offsetTop,
23132
+ left: elem.offsetLeft
23133
+ };
23134
+ }
23079
23135
  };
23080
23136
  Table.prototype.getPointX = function (e) {
23081
23137
  if (e.touches && e.touches.length) {
@@ -25930,7 +25986,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
25930
25986
  this.inputElement.parentElement.insertBefore(this.placeHolderWrapper, this.inputElement);
25931
25987
  }
25932
25988
  attributes(this.placeHolderWrapper, {
25933
- 'style': 'font-size: 14px; padding: 16px; margin-left: 0px; margin-right: 0px;'
25989
+ 'style': 'font-size: 14px; margin-left: 0px; margin-right: 0px;'
25934
25990
  });
25935
25991
  }
25936
25992
  this.placeHolderWrapper.innerHTML = this.placeholder;
@@ -26170,7 +26226,8 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
26170
26226
  };
26171
26227
  RichTextEditor.prototype.setValue = function () {
26172
26228
  if (this.valueTemplate) {
26173
- if (typeof this.valueTemplate === 'string') {
26229
+ var regEx = new RegExp(/<(?=.*? .*?\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\/\1>/i);
26230
+ if (regEx.test(this.valueTemplate)) {
26174
26231
  this.setProperties({ value: this.valueTemplate });
26175
26232
  }
26176
26233
  else {
@@ -26756,7 +26813,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
26756
26813
  RichTextEditor.prototype.restrict = function (e) {
26757
26814
  if (this.maxLength >= 0) {
26758
26815
  var element = this.editorMode === 'Markdown' ? this.contentModule.getText() :
26759
- e.currentTarget.textContent.trim();
26816
+ e.currentTarget.textContent;
26760
26817
  var array = [8, 16, 17, 37, 38, 39, 40, 46, 65];
26761
26818
  var arrayKey = void 0;
26762
26819
  for (var i = 0; i <= array.length - 1; i++) {
@@ -27127,5 +27184,5 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
27127
27184
  * Rich Text Editor component exported items
27128
27185
  */
27129
27186
 
27130
- export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, afterImageDelete, drop, xhtmlValidation, beforeImageUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, closeImageDialog, showTableDialog, closeTableDialog, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION };
27187
+ export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, afterImageDelete, drop, xhtmlValidation, beforeImageUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, closeImageDialog, showTableDialog, closeTableDialog, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION };
27131
27188
  //# sourceMappingURL=ej2-richtexteditor.es5.js.map