@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 @@ const CLS_FONT_NAME_TB_BTN = 'e-font-name-tbar-btn';
933
933
  * @deprecated
934
934
  */
935
935
  const CLS_FONT_SIZE_TB_BTN = 'e-font-size-tbar-btn';
936
+ /**
937
+ * @hidden
938
+ * @deprecated
939
+ */
940
+ const CLS_ALIGN_TB_BTN = 'e-alignment-tbar-btn';
936
941
  /**
937
942
  * @hidden
938
943
  * @deprecated
@@ -3547,7 +3552,7 @@ class DropDownButtons {
3547
3552
  }
3548
3553
  this.alignDropDown = this.toolbarRenderer.renderDropDownButton({
3549
3554
  iconCss: 'e-justify-left e-icons',
3550
- cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS,
3555
+ cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS + ' ' + CLS_ALIGN_TB_BTN,
3551
3556
  itemName: 'Alignments', items: alignmentItems, element: targetElement
3552
3557
  });
3553
3558
  break;
@@ -6059,8 +6064,8 @@ class Count {
6059
6064
  }
6060
6065
  }
6061
6066
  appendCount() {
6062
- const htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value.trim() :
6063
- this.editPanel.textContent.trim();
6067
+ const htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value :
6068
+ this.editPanel.textContent;
6064
6069
  if (this.parent.editorMode !== 'Markdown' && htmlText.indexOf('\u200B') !== -1) {
6065
6070
  this.htmlLength = htmlText.replace(/\u200B/g, '').length;
6066
6071
  }
@@ -9510,11 +9515,14 @@ class NodeSelection {
9510
9515
  setRangePoint(range, isvalid, num, size) {
9511
9516
  let node = this.rootNode;
9512
9517
  let index = num.length;
9513
- const constant = size;
9518
+ let constant = size;
9514
9519
  for (; index--; null) {
9515
9520
  node = node && node.childNodes[num[index]];
9516
9521
  }
9517
9522
  if (node && constant >= 0 && node.nodeName !== 'html') {
9523
+ if (node.nodeType === 3 && node.nodeValue.replace(/\u00a0/g, ' ') === ' ') {
9524
+ constant = node.textContent.length;
9525
+ }
9518
9526
  range[isvalid ? 'setStart' : 'setEnd'](node, constant);
9519
9527
  }
9520
9528
  return range;
@@ -10514,6 +10522,9 @@ class Lists {
10514
10522
  range.endContainer.parentElement.closest('LI');
10515
10523
  if (!isNullOrUndefined(startNode) && !isNullOrUndefined(endNode) && startNode === endNode && startNode.tagName === 'LI' &&
10516
10524
  startNode.textContent.trim() === '' && startNode.querySelectorAll('IMG').length === 0) {
10525
+ if (startNode.innerHTML.indexOf(' ') >= 0) {
10526
+ return;
10527
+ }
10517
10528
  if (startNode.textContent.charCodeAt(0) === 65279) {
10518
10529
  startNode.textContent = '';
10519
10530
  }
@@ -10655,7 +10666,7 @@ class Lists {
10655
10666
  e.event.stopPropagation();
10656
10667
  this.currentAction = this.getAction(nodes[0]);
10657
10668
  if (e.event.shiftKey) {
10658
- this.revertList(nodes);
10669
+ this.revertList(nodes, e);
10659
10670
  this.revertClean();
10660
10671
  }
10661
10672
  else {
@@ -10817,6 +10828,9 @@ class Lists {
10817
10828
  append([nestedElement], prevSibling);
10818
10829
  append([elements[i]], nestedElement);
10819
10830
  }
10831
+ else if (prevSibling.tagName === 'OL' || prevSibling.tagName === 'UL') {
10832
+ append([elements[i]], prevSibling);
10833
+ }
10820
10834
  }
10821
10835
  }
10822
10836
  else {
@@ -10911,7 +10925,7 @@ class Lists {
10911
10925
  listsNodes[i] = listsNodes[i].parentNode;
10912
10926
  }
10913
10927
  }
10914
- this.applyLists(listsNodes, this.currentAction, e.selector, e.item);
10928
+ this.applyLists(listsNodes, this.currentAction, e.selector, e.item, e);
10915
10929
  if (e.callBack) {
10916
10930
  e.callBack({
10917
10931
  requestType: this.currentAction,
@@ -10932,9 +10946,9 @@ class Lists {
10932
10946
  this.parent.nodeSelection.setSelectionText(this.parent.currentDocument, startElem, endElem, 0, 0);
10933
10947
  }
10934
10948
  }
10935
- applyLists(elements, type, selector, item) {
10949
+ applyLists(elements, type, selector, item, e) {
10936
10950
  if (this.isRevert(elements, type) && isNullOrUndefined(item)) {
10937
- this.revertList(elements);
10951
+ this.revertList(elements, e);
10938
10952
  this.removeEmptyListElements();
10939
10953
  }
10940
10954
  else {
@@ -11091,7 +11105,7 @@ class Lists {
11091
11105
  }
11092
11106
  }
11093
11107
  }
11094
- revertList(elements) {
11108
+ revertList(elements, e) {
11095
11109
  const temp = [];
11096
11110
  for (let i = elements.length - 1; i >= 0; i--) {
11097
11111
  for (let j = i - 1; j >= 0; j--) {
@@ -11135,7 +11149,9 @@ class Lists {
11135
11149
  ' class="' + className + ' e-rte-wrap-inner"';
11136
11150
  const wrapper = '<' + DEFAULT_TAG + wrapperclass +
11137
11151
  this.domNode.attributes(parentNode) + '></' + DEFAULT_TAG + '>';
11138
- this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
11152
+ if (e.enterAction !== 'BR') {
11153
+ this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
11154
+ }
11139
11155
  }
11140
11156
  else if (this.domNode.contents(element)[0].nodeType === 3) {
11141
11157
  const replace = this.domNode.createTagString(DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));
@@ -11869,6 +11885,12 @@ class InsertHtml {
11869
11885
  nodeSelection.setSelectionText(docElement, range.startContainer.children[0], range.startContainer.children[0], 0, 0);
11870
11886
  range = nodeSelection.getRange(docElement);
11871
11887
  }
11888
+ if (range.startContainer.nodeName === 'BR' && range.startOffset === 0 && range.startOffset === range.endOffset &&
11889
+ range.startContainer === range.endContainer) {
11890
+ const currentIndex = Array.prototype.slice.call(range.startContainer.parentElement.children).indexOf(range.startContainer);
11891
+ nodeSelection.setSelectionText(docElement, range.startContainer.parentElement, range.startContainer.parentElement, currentIndex + 1, currentIndex + 1);
11892
+ range = nodeSelection.getRange(docElement);
11893
+ }
11872
11894
  const isCursor = range.startOffset === range.endOffset && range.startOffset === 0 &&
11873
11895
  range.startContainer === range.endContainer;
11874
11896
  const isCollapsed = range.collapsed;
@@ -12052,7 +12074,7 @@ class InsertHtml {
12052
12074
  else {
12053
12075
  const tempSpan = createElement('span', { className: 'tempSpan' });
12054
12076
  const nearestAnchor = closest(range.startContainer.parentElement, 'a');
12055
- if (range.startContainer.nodeType === 3 && nearestAnchor) {
12077
+ if (range.startContainer.nodeType === 3 && nearestAnchor && closest(nearestAnchor, 'span')) {
12056
12078
  const immediateBlockNode = this.getImmediateBlockNode(range.startContainer, editNode);
12057
12079
  if (immediateBlockNode.querySelectorAll('br').length > 0) {
12058
12080
  detach(immediateBlockNode.querySelector('br'));
@@ -13351,7 +13373,7 @@ class TableCommand {
13351
13373
  const tdElement = createElement('td');
13352
13374
  tdElement.appendChild(createElement('br'));
13353
13375
  newRow.appendChild(tdElement);
13354
- tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? (minVal + 1) : minVal][i].getAttribute('style'));
13376
+ tdElement.setAttribute('style', allCells[(isHeaderSelect && isBelow) ? allCells[(minVal + 1)] ? (minVal + 1) : minVal : minVal][i].getAttribute('style'));
13355
13377
  }
13356
13378
  }
13357
13379
  // eslint-disable-next-line
@@ -13735,7 +13757,8 @@ class TableCommand {
13735
13757
  if (min < (max = Math.min(max, eleArray.length - 1))) {
13736
13758
  for (rowValue = min; rowValue <= max; rowValue++) {
13737
13759
  // eslint-disable-next-line
13738
- 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]) {
13760
+ if (!(min < rowValue && eleArray[rowValue][0] === eleArray[rowValue - 1][0]) && eleArray[rowValue][0] &&
13761
+ 1 < (index = Math.min(parseInt(eleArray[rowValue][0].getAttribute('rowspan'), 10) || 1, max - min + 1)) && eleArray[rowValue][0] === eleArray[rowValue + 1][0]) {
13739
13762
  for (count = index - 1, colIndex = 1; colIndex < eleArray[0].length; colIndex++) {
13740
13763
  if (eleArray[rowValue][colIndex] !== eleArray[rowValue][colIndex - 1]) {
13741
13764
  for (rowMin = rowValue; rowMin < rowValue + index; rowMin++) {
@@ -13777,10 +13800,10 @@ class TableCommand {
13777
13800
  }
13778
13801
  mergeCellContent() {
13779
13802
  const selectedCells = this.curTable.querySelectorAll('.e-cell-select');
13780
- let innerHtml = selectedCells[0].innerHTML;
13781
- for (let i = 1; i < selectedCells.length - 1; i++) {
13803
+ let innerHtml = selectedCells[0].innerHTML === '<br>' ? '' : selectedCells[0].innerHTML;
13804
+ for (let i = 1; i < selectedCells.length; i++) {
13782
13805
  if ('<br>' !== selectedCells[i].innerHTML) {
13783
- innerHtml = innerHtml + selectedCells[i].innerHTML;
13806
+ innerHtml = innerHtml ? innerHtml + '<br>' + selectedCells[i].innerHTML : innerHtml + selectedCells[i].innerHTML;
13784
13807
  }
13785
13808
  }
13786
13809
  selectedCells[0].innerHTML = innerHtml;
@@ -15122,7 +15145,8 @@ class ClearFormat$1 {
15122
15145
  for (let index = 0; index < textNodes.length; index++) {
15123
15146
  let currentInlineNode = textNodes[index];
15124
15147
  let currentNode;
15125
- while (!this.domNode.isBlockNode(currentInlineNode)) {
15148
+ while (!this.domNode.isBlockNode(currentInlineNode) &&
15149
+ (currentInlineNode.parentElement && !currentInlineNode.parentElement.classList.contains('e-img-inner'))) {
15126
15150
  currentNode = currentInlineNode;
15127
15151
  currentInlineNode = currentInlineNode.parentElement;
15128
15152
  }
@@ -15136,7 +15160,7 @@ class ClearFormat$1 {
15136
15160
  static removeInlineParent(textNodes) {
15137
15161
  const nodes = InsertMethods.unwrap(textNodes);
15138
15162
  for (let index = 0; index < nodes.length; index++) {
15139
- if (nodes[index].parentNode.childNodes.length === 1
15163
+ if (nodes[index].parentNode.childNodes.length === 1 && !nodes[index].parentNode.classList.contains('e-img-inner')
15140
15164
  && IsFormatted.inlineTags.indexOf(nodes[index].parentNode.nodeName.toLocaleLowerCase()) > -1) {
15141
15165
  this.removeInlineParent(nodes[index].parentNode);
15142
15166
  }
@@ -17340,6 +17364,7 @@ class HtmlEditor {
17340
17364
  if (!this.isImageDelete) {
17341
17365
  args.preventDefault();
17342
17366
  }
17367
+ args.preventDefault();
17343
17368
  }
17344
17369
  }
17345
17370
  isOrderedList(editorValue) {
@@ -20171,6 +20196,7 @@ class Image {
20171
20196
  calcPos(elem) {
20172
20197
  const ignoreOffset = ['TD', 'TH', 'TABLE', 'A'];
20173
20198
  let parentOffset = { top: 0, left: 0 };
20199
+ let elementOffset;
20174
20200
  const doc = elem.ownerDocument;
20175
20201
  let offsetParent = ((elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption') ||
20176
20202
  ignoreOffset.indexOf(elem.offsetParent.tagName) > -1)) ?
@@ -20184,10 +20210,19 @@ class Image {
20184
20210
  // eslint-disable-next-line
20185
20211
  parentOffset = offsetParent.getBoundingClientRect();
20186
20212
  }
20187
- return {
20188
- top: elem.offsetTop,
20189
- left: elem.offsetLeft
20190
- };
20213
+ if (elem.offsetParent && (elem.offsetParent.classList.contains('e-img-caption'))) {
20214
+ elementOffset = elem.getBoundingClientRect();
20215
+ return {
20216
+ top: elementOffset.top - parentOffset.top,
20217
+ left: elementOffset.left - parentOffset.left
20218
+ };
20219
+ }
20220
+ else {
20221
+ return {
20222
+ top: elem.offsetTop,
20223
+ left: elem.offsetLeft
20224
+ };
20225
+ }
20191
20226
  }
20192
20227
  setAspectRatio(img, expectedX, expectedY, e) {
20193
20228
  if (isNullOrUndefined(img.width)) {
@@ -20197,7 +20232,7 @@ class Image {
20197
20232
  parseInt(img.style.width, 10) : img.width;
20198
20233
  const height = img.style.height !== '' ? parseInt(img.style.height, 10) : img.height;
20199
20234
  if (width > height) {
20200
- img.style.minWidth = '20px';
20235
+ img.style.minWidth = this.parent.insertImageSettings.minWidth === 0 ? '20px' : formatUnit(this.parent.insertImageSettings.minWidth);
20201
20236
  if (this.parent.insertImageSettings.resizeByPercent) {
20202
20237
  if (parseInt('' + img.getBoundingClientRect().width + '', 10) !== 0 && parseInt('' + width + '', 10) !== 0) {
20203
20238
  const percentageValue = this.pixToPerc((width / height * expectedY), (img.previousElementSibling || img.parentElement));
@@ -20519,6 +20554,10 @@ class Image {
20519
20554
  range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE))) {
20520
20555
  detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_CAPINLINE));
20521
20556
  }
20557
+ else if (range.startContainer.nodeType === 1 &&
20558
+ range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK)) {
20559
+ detach(range.startContainer.querySelector('.' + CLS_CAPTION + '.' + CLS_IMGBREAK));
20560
+ }
20522
20561
  }
20523
20562
  break;
20524
20563
  case 'insert-image':
@@ -20688,6 +20727,8 @@ class Image {
20688
20727
  if (this.parent.quickToolbarModule.imageQTBar) {
20689
20728
  if (e.isNotify) {
20690
20729
  setTimeout(() => {
20730
+ this.parent.formatter.editorManager.nodeSelection.Clear(this.contentModule.getDocument());
20731
+ this.parent.formatter.editorManager.nodeSelection.setSelectionContents(this.contentModule.getDocument(), target);
20691
20732
  this.quickToolObj.imageQTBar.showPopup(args.pageX, pageY, target);
20692
20733
  }, 400);
20693
20734
  }
@@ -22654,7 +22695,7 @@ class Table {
22654
22695
  ele.classList.add(CLS_TABLE_SEL);
22655
22696
  this.addRow(selection, event, true);
22656
22697
  ele.classList.remove(CLS_TABLE_SEL);
22657
- nextElement = nextElement.parentElement.nextSibling.firstChild;
22698
+ nextElement = nextElement.parentElement.nextSibling ? nextElement.parentElement.nextSibling.firstChild : nextElement.parentElement.firstChild;
22658
22699
  // eslint-disable-next-line
22659
22700
  (nextElement.textContent.trim() !== '' && closest(nextElement, 'td')) ?
22660
22701
  selection.setSelectionNode(this.contentModule.getDocument(), nextElement) :
@@ -22943,6 +22984,7 @@ class Table {
22943
22984
  const offset = elem.getBoundingClientRect();
22944
22985
  const doc = elem.ownerDocument;
22945
22986
  let offsetParent = elem.offsetParent || doc.documentElement;
22987
+ let isNestedTable = false;
22946
22988
  while (offsetParent &&
22947
22989
  (offsetParent === doc.body || offsetParent === doc.documentElement) &&
22948
22990
  offsetParent.style.position === 'static') {
@@ -22950,15 +22992,29 @@ class Table {
22950
22992
  }
22951
22993
  if (offsetParent.nodeName === 'TD' && elem.nodeName === 'TABLE') {
22952
22994
  offsetParent = closest(offsetParent, '.e-rte-content');
22995
+ isNestedTable = true;
22953
22996
  }
22954
22997
  if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) {
22955
22998
  // eslint-disable-next-line
22956
22999
  parentOffset = offsetParent.getBoundingClientRect();
22957
23000
  }
22958
- return {
22959
- top: elem.offsetTop,
22960
- left: elem.offsetLeft
22961
- };
23001
+ if (isNestedTable) {
23002
+ isNestedTable = false;
23003
+ let topValue = this.parent.inputElement && this.parent.inputElement.scrollTop > 0 ?
23004
+ (this.parent.inputElement.scrollTop + offset.top) - parentOffset.top : offset.top - parentOffset.top;
23005
+ let leftValue = this.parent.inputElement && this.parent.inputElement.scrollLeft > 0 ?
23006
+ (this.parent.inputElement.scrollLeft + offset.left) - parentOffset.left : offset.left - parentOffset.left;
23007
+ return {
23008
+ top: topValue,
23009
+ left: leftValue
23010
+ };
23011
+ }
23012
+ else {
23013
+ return {
23014
+ top: elem.offsetTop,
23015
+ left: elem.offsetLeft
23016
+ };
23017
+ }
22962
23018
  }
22963
23019
  getPointX(e) {
22964
23020
  if (e.touches && e.touches.length) {
@@ -25657,7 +25713,7 @@ let RichTextEditor = class RichTextEditor extends Component {
25657
25713
  this.inputElement.parentElement.insertBefore(this.placeHolderWrapper, this.inputElement);
25658
25714
  }
25659
25715
  attributes(this.placeHolderWrapper, {
25660
- 'style': 'font-size: 14px; padding: 16px; margin-left: 0px; margin-right: 0px;'
25716
+ 'style': 'font-size: 14px; margin-left: 0px; margin-right: 0px;'
25661
25717
  });
25662
25718
  }
25663
25719
  this.placeHolderWrapper.innerHTML = this.placeholder;
@@ -25896,7 +25952,8 @@ let RichTextEditor = class RichTextEditor extends Component {
25896
25952
  }
25897
25953
  setValue() {
25898
25954
  if (this.valueTemplate) {
25899
- if (typeof this.valueTemplate === 'string') {
25955
+ const regEx = new RegExp(/<(?=.*? .*?\/ ?>|br|hr|input|!--|wbr)[a-z]+.*?>|<([a-z]+).*?<\/\1>/i);
25956
+ if (regEx.test(this.valueTemplate)) {
25900
25957
  this.setProperties({ value: this.valueTemplate });
25901
25958
  }
25902
25959
  else {
@@ -26479,7 +26536,7 @@ let RichTextEditor = class RichTextEditor extends Component {
26479
26536
  restrict(e) {
26480
26537
  if (this.maxLength >= 0) {
26481
26538
  const element = this.editorMode === 'Markdown' ? this.contentModule.getText() :
26482
- e.currentTarget.textContent.trim();
26539
+ e.currentTarget.textContent;
26483
26540
  const array = [8, 16, 17, 37, 38, 39, 40, 46, 65];
26484
26541
  let arrayKey;
26485
26542
  for (let i = 0; i <= array.length - 1; i++) {
@@ -26849,5 +26906,5 @@ RichTextEditor = __decorate$1([
26849
26906
  * Rich Text Editor component exported items
26850
26907
  */
26851
26908
 
26852
- 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 };
26909
+ 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 };
26853
26910
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map