@syncfusion/ej2-richtexteditor 25.1.41 → 25.2.3

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 (69) hide show
  1. package/CHANGELOG.md +38 -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 +226 -90
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +226 -91
  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 +23 -13
  13. package/src/common/util.d.ts +8 -0
  14. package/src/common/util.js +52 -0
  15. package/src/editor-manager/plugin/inserthtml.js +8 -2
  16. package/src/editor-manager/plugin/lists.d.ts +1 -0
  17. package/src/editor-manager/plugin/lists.js +97 -51
  18. package/src/editor-manager/plugin/ms-word-clean-up.js +2 -2
  19. package/src/editor-manager/plugin/nodecutter.js +2 -2
  20. package/src/editor-manager/plugin/undo.js +3 -1
  21. package/src/rich-text-editor/actions/emoji-picker.js +1 -1
  22. package/src/rich-text-editor/actions/enter-key.js +9 -0
  23. package/src/rich-text-editor/actions/html-editor.js +10 -12
  24. package/src/rich-text-editor/actions/paste-clean-up.js +13 -9
  25. package/src/rich-text-editor/base/enum.d.ts +4 -4
  26. package/src/rich-text-editor/base/enum.js +9 -9
  27. package/src/rich-text-editor/base/interface.d.ts +3 -3
  28. package/src/rich-text-editor/base/rich-text-editor.js +7 -0
  29. package/src/rich-text-editor/renderer/iframe-content-renderer.js +1 -1
  30. package/src/rich-text-editor/renderer/image-module.js +3 -3
  31. package/src/rich-text-editor/renderer/link-module.js +3 -0
  32. package/src/rich-text-editor/renderer/table-module.js +3 -0
  33. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +2 -0
  34. package/src/rich-text-editor/renderer/toolbar-renderer.js +7 -1
  35. package/styles/bootstrap-dark.css +7 -6
  36. package/styles/bootstrap.css +7 -6
  37. package/styles/bootstrap4.css +7 -6
  38. package/styles/bootstrap5-dark.css +7 -6
  39. package/styles/bootstrap5.css +7 -6
  40. package/styles/fabric-dark.css +7 -6
  41. package/styles/fabric.css +7 -6
  42. package/styles/fluent-dark.css +7 -6
  43. package/styles/fluent.css +7 -6
  44. package/styles/highcontrast-light.css +7 -6
  45. package/styles/highcontrast.css +7 -6
  46. package/styles/material-dark.css +7 -6
  47. package/styles/material.css +7 -6
  48. package/styles/material3-dark.css +7 -6
  49. package/styles/material3.css +7 -6
  50. package/styles/rich-text-editor/_layout.scss +7 -6
  51. package/styles/rich-text-editor/bootstrap-dark.css +7 -6
  52. package/styles/rich-text-editor/bootstrap.css +7 -6
  53. package/styles/rich-text-editor/bootstrap4.css +7 -6
  54. package/styles/rich-text-editor/bootstrap5-dark.css +7 -6
  55. package/styles/rich-text-editor/bootstrap5.css +7 -6
  56. package/styles/rich-text-editor/fabric-dark.css +7 -6
  57. package/styles/rich-text-editor/fabric.css +7 -6
  58. package/styles/rich-text-editor/fluent-dark.css +7 -6
  59. package/styles/rich-text-editor/fluent.css +7 -6
  60. package/styles/rich-text-editor/highcontrast-light.css +7 -6
  61. package/styles/rich-text-editor/highcontrast.css +7 -6
  62. package/styles/rich-text-editor/material-dark.css +7 -6
  63. package/styles/rich-text-editor/material.css +7 -6
  64. package/styles/rich-text-editor/material3-dark.css +7 -6
  65. package/styles/rich-text-editor/material3.css +7 -6
  66. package/styles/rich-text-editor/tailwind-dark.css +7 -6
  67. package/styles/rich-text-editor/tailwind.css +7 -6
  68. package/styles/tailwind-dark.css +7 -6
  69. package/styles/tailwind.css +7 -6
@@ -1644,15 +1644,15 @@ var DialogType;
1644
1644
  /**
1645
1645
  * Defines types to be used as inserted image.
1646
1646
  */
1647
- var UploadRequest;
1648
- (function (UploadRequest) {
1649
- /** Defines UploadRequest as Uploaded */
1650
- UploadRequest["Uploaded"] = "Uploaded";
1651
- /** Defines UploadRequest as Dropped */
1652
- UploadRequest["Dropped"] = "Dropped";
1653
- /** Defines UploadRequest as Pasted */
1654
- UploadRequest["Pasted"] = "Pasted";
1655
- })(UploadRequest || (UploadRequest = {}));
1647
+ var ImageInputSource;
1648
+ (function (ImageInputSource) {
1649
+ /** Defines ImageInputSource as Uploaded */
1650
+ ImageInputSource["Uploaded"] = "Uploaded";
1651
+ /** Defines ImageInputSource as Dropped */
1652
+ ImageInputSource["Dropped"] = "Dropped";
1653
+ /** Defines ImageInputSource as Pasted */
1654
+ ImageInputSource["Pasted"] = "Pasted";
1655
+ })(ImageInputSource || (ImageInputSource = {}));
1656
1656
 
1657
1657
  /* eslint-disable */
1658
1658
  /**
@@ -4476,6 +4476,10 @@ function updateTextNode$1(value, enterAction) {
4476
4476
  tableElm[i].classList.remove('e-rte-paste-onenote-table');
4477
4477
  continue;
4478
4478
  }
4479
+ else if (tableElm[i].classList.contains('e-rte-paste-html-table')) {
4480
+ tableElm[i].classList.remove('e-rte-paste-html-table');
4481
+ continue;
4482
+ }
4479
4483
  }
4480
4484
  }
4481
4485
  var imageElm = resultElm.querySelectorAll('img');
@@ -4580,6 +4584,54 @@ function nestedListCleanUp(range) {
4580
4584
  }
4581
4585
  }
4582
4586
  }
4587
+ /**
4588
+ * Method to scroll the content to the cursor position
4589
+ *
4590
+ * @param {Document} document - specifies the document.
4591
+ * @param {HTMLElement | HTMLBodyElement} inputElement - specifies the input element.
4592
+ * @returns {void}
4593
+ */
4594
+ function scrollToCursor(document, inputElement) {
4595
+ var rootElement = inputElement.nodeName === 'BODY' ?
4596
+ inputElement.ownerDocument.defaultView.frameElement.closest('.e-richtexteditor') :
4597
+ inputElement.closest('.e-richtexteditor');
4598
+ var height = rootElement.style.height;
4599
+ if (document.getSelection().rangeCount === 0) {
4600
+ return;
4601
+ }
4602
+ var range = document.getSelection().getRangeAt(0);
4603
+ var finalFocusElement = range.startContainer.nodeName === '#text' ? range.startContainer.parentElement :
4604
+ range.startContainer;
4605
+ var rect = finalFocusElement.getBoundingClientRect();
4606
+ var cursorTop = rect.top;
4607
+ var cursorBottom = rect.bottom;
4608
+ var rootRect = rootElement.getBoundingClientRect();
4609
+ var hasMargin = rootElement.querySelectorAll('.e-count-enabled, .e-resize-enabled').length > 0;
4610
+ if (inputElement.nodeName === 'BODY') {
4611
+ if (height === 'auto') {
4612
+ if (window.innerHeight < cursorTop) {
4613
+ finalFocusElement.scrollIntoView(false);
4614
+ }
4615
+ }
4616
+ else {
4617
+ if (cursorTop > inputElement.getBoundingClientRect().height) {
4618
+ finalFocusElement.scrollIntoView({ block: 'nearest', inline: 'nearest' });
4619
+ }
4620
+ }
4621
+ }
4622
+ else {
4623
+ if (height === 'auto') {
4624
+ if (window.innerHeight < cursorTop) {
4625
+ finalFocusElement.scrollIntoView({ block: 'end', inline: 'nearest' });
4626
+ }
4627
+ }
4628
+ else {
4629
+ if (cursorBottom > rootRect.bottom) {
4630
+ rootElement.querySelector('.e-rte-content').scrollTop += (cursorBottom - rootRect.bottom) + (hasMargin ? 20 : 0);
4631
+ }
4632
+ }
4633
+ }
4634
+ }
4583
4635
 
4584
4636
  /**
4585
4637
  * Update Toolbar Status
@@ -5095,6 +5147,7 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
5095
5147
  openDelay: 400,
5096
5148
  opensOn: 'Hover',
5097
5149
  beforeRender: this.tooltipBeforeRender.bind(this),
5150
+ beforeOpen: this.tooltipBeforeOpen.bind(this),
5098
5151
  cssClass: this.parent.getCssClass(),
5099
5152
  windowCollision: true,
5100
5153
  position: 'BottomCenter'
@@ -5217,7 +5270,7 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
5217
5270
  if ((divNode.textContent.trim() !== ''
5218
5271
  && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) ||
5219
5272
  ((args.items[0].command === 'Formats' && !isNullOrUndefined(toolbarStatus.formats) && _this.parent.format.types[index].value.toLowerCase() === toolbarStatus.formats.toLowerCase() && args.element.childNodes[index].classList.contains(_this.parent.format.types[index].cssClass))
5220
- || (args.items[0].command === 'Font' && !isNullOrUndefined(toolbarStatus.fontname) && _this.parent.fontFamily.items[index].value.toLowerCase() === toolbarStatus.fontname.toLowerCase() && args.element.childNodes[index].classList.contains(_this.parent.fontFamily.items[index].cssClass)))) {
5273
+ || (args.items[0].subCommand === 'FontName' && args.items[0].command === 'Font' && !isNullOrUndefined(toolbarStatus.fontname) && !isNullOrUndefined(_this.parent.fontFamily.items[index]) && _this.parent.fontFamily.items[index].value.toLowerCase() === toolbarStatus.fontname.toLowerCase() && args.element.childNodes[index].classList.contains(_this.parent.fontFamily.items[index].cssClass)))) {
5221
5274
  if (!args.element.childNodes[index].classList.contains('e-active')) {
5222
5275
  addClass([args.element.childNodes[index]], 'e-active');
5223
5276
  }
@@ -5603,6 +5656,11 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
5603
5656
  colorPicker.appendTo(document.getElementById(args.target));
5604
5657
  return colorPicker;
5605
5658
  };
5659
+ ToolbarRenderer.prototype.tooltipBeforeOpen = function (args) {
5660
+ if (args.element) {
5661
+ args.element.setAttribute('data-rte-id', this.parent.getID());
5662
+ }
5663
+ };
5606
5664
  /**
5607
5665
  * The function is used to render Rich Text Editor toolbar
5608
5666
  *
@@ -13446,58 +13504,36 @@ var Lists = /** @__PURE__ @class */ (function () {
13446
13504
  var listsNodes = this.domNode.blockNodes(true);
13447
13505
  if (e.enterAction === 'BR') {
13448
13506
  this.setSelectionBRConfig();
13449
- var allSelectedNode = this.parent.nodeSelection.getSelectedNodes(this.parent.currentDocument);
13450
- var selectedNodes = this.parent.nodeSelection.getSelectionNodes(allSelectedNode);
13451
- var currentFormatNodes = [];
13452
- if (selectedNodes.length === 0) {
13453
- selectedNodes.push(listsNodes[0]);
13454
- }
13455
- for (var i = 0; i < selectedNodes.length; i++) {
13456
- var currentNode = selectedNodes[i];
13457
- var previousCurrentNode = void 0;
13458
- while (!this.parent.domNode.isBlockNode(currentNode) && currentNode !== this.parent.editableElement) {
13459
- previousCurrentNode = currentNode;
13460
- currentNode = currentNode.parentElement;
13461
- }
13462
- if (this.parent.domNode.isBlockNode(currentNode) && currentNode === this.parent.editableElement) {
13463
- currentFormatNodes.push(previousCurrentNode);
13507
+ var selectedNodes = this.parent.domNode.blockNodes();
13508
+ if (selectedNodes.length > 1) {
13509
+ var i = 0;
13510
+ var currentAlignmentNode = selectedNodes[0];
13511
+ while (!isNullOrUndefined(currentAlignmentNode)) {
13512
+ if (currentAlignmentNode.nodeName === 'BR') {
13513
+ var nextNode = currentAlignmentNode.nextSibling;
13514
+ detach(currentAlignmentNode);
13515
+ currentAlignmentNode = nextNode;
13516
+ }
13517
+ if (!isNullOrUndefined(currentAlignmentNode)) {
13518
+ selectedNodes[i] = currentAlignmentNode.nodeName === 'LI' || this.parent.domNode.isBlockNode(currentAlignmentNode) ?
13519
+ currentAlignmentNode : this.gatherElementsAround(currentAlignmentNode);
13520
+ var currentSelectNode = selectedNodes[i].nodeName === 'LI' ? selectedNodes[i].parentElement : selectedNodes[i];
13521
+ var currentElementCheckNode = currentAlignmentNode.nodeName === '#text' ? currentAlignmentNode.parentElement : currentAlignmentNode;
13522
+ currentAlignmentNode = !isNullOrUndefined(currentElementCheckNode.querySelector('.e-editor-select-end')) ||
13523
+ !isNullOrUndefined(closest(currentAlignmentNode, '.e-editor-select-end')) ?
13524
+ null : currentSelectNode.nextSibling;
13525
+ if (currentAlignmentNode === null && !isNullOrUndefined(currentSelectNode.nextSibling) && currentSelectNode.nextSibling.nodeName === 'BR') {
13526
+ detach(currentSelectNode.nextSibling);
13527
+ }
13528
+ }
13529
+ i++;
13464
13530
  }
13465
13531
  }
13466
- for (var i = 0; i < currentFormatNodes.length; i++) {
13467
- if (!this.parent.domNode.isBlockNode(currentFormatNodes[i])) {
13468
- var currentNode = currentFormatNodes[i];
13469
- var previousNode = currentNode;
13470
- while (currentNode === this.parent.editableElement) {
13471
- previousNode = currentNode;
13472
- currentNode = currentNode.parentElement;
13473
- }
13474
- var tempElem = void 0;
13475
- if (this.parent.domNode.isBlockNode(previousNode.parentElement) &&
13476
- previousNode.parentElement === this.parent.editableElement) {
13477
- tempElem = createElement('p');
13478
- previousNode.parentElement.insertBefore(tempElem, previousNode);
13479
- tempElem.appendChild(previousNode);
13480
- }
13481
- else {
13482
- tempElem = previousNode;
13483
- }
13484
- var preNode = tempElem.previousSibling;
13485
- while (!isNullOrUndefined(preNode) && preNode.nodeName !== 'BR' &&
13486
- !this.parent.domNode.isBlockNode(preNode)) {
13487
- tempElem.firstChild.parentElement.insertBefore(preNode, tempElem.firstChild);
13488
- preNode = tempElem.previousSibling;
13489
- }
13490
- if (!isNullOrUndefined(preNode) && preNode.nodeName === 'BR') {
13491
- detach(preNode);
13492
- }
13493
- var postNode = tempElem.nextSibling;
13494
- while (!isNullOrUndefined(postNode) && postNode.nodeName !== 'BR' &&
13495
- !this.parent.domNode.isBlockNode(postNode)) {
13496
- tempElem.appendChild(postNode);
13497
- postNode = tempElem.nextSibling;
13498
- }
13499
- if (!isNullOrUndefined(postNode) && postNode.nodeName === 'BR') {
13500
- detach(postNode);
13532
+ else {
13533
+ if (!this.parent.domNode.isBlockNode(selectedNodes[0])) {
13534
+ selectedNodes[0] = this.gatherElementsAround(selectedNodes[0]);
13535
+ if (!isNullOrUndefined(selectedNodes[0].nextSibling) && (selectedNodes[0].nextSibling.nodeName === 'BR')) {
13536
+ detach(selectedNodes[0].nextSibling);
13501
13537
  }
13502
13538
  }
13503
13539
  }
@@ -13599,6 +13635,16 @@ var Lists = /** @__PURE__ @class */ (function () {
13599
13635
  }
13600
13636
  }
13601
13637
  this.cleanNode();
13638
+ if (e.enterAction === 'BR') {
13639
+ var spansToRemove = document.querySelectorAll('span#removeSpan');
13640
+ spansToRemove.forEach(function (span) {
13641
+ var fragment = document.createDocumentFragment();
13642
+ while (span.firstChild) {
13643
+ fragment.appendChild(span.firstChild);
13644
+ }
13645
+ span.parentNode.replaceChild(fragment, span);
13646
+ });
13647
+ }
13602
13648
  this.parent.editableElement.focus();
13603
13649
  if (isIDevice$1()) {
13604
13650
  setEditFrameFocus(this.parent.editableElement, selector);
@@ -13796,6 +13842,12 @@ var Lists = /** @__PURE__ @class */ (function () {
13796
13842
  if (e.enterAction !== 'BR') {
13797
13843
  this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapper));
13798
13844
  }
13845
+ else {
13846
+ var wrapperSpan = '<span class=e-rte-wrap-inner id=removeSpan></span>';
13847
+ var br = document.createElement('br');
13848
+ this.domNode.wrapInner(element, this.domNode.parseHTMLFragment(wrapperSpan));
13849
+ element.appendChild(br);
13850
+ }
13799
13851
  }
13800
13852
  else if (this.domNode.contents(element)[0].nodeType === 3) {
13801
13853
  var replace = this.domNode.createTagString(DEFAULT_TAG, parentNode, this.parent.domNode.encode(this.domNode.contents(element)[0].textContent));
@@ -13808,8 +13860,18 @@ var Lists = /** @__PURE__ @class */ (function () {
13808
13860
  }
13809
13861
  else {
13810
13862
  var childNode = element.firstChild;
13863
+ if (childNode) {
13864
+ var attributes_1 = element.parentElement.attributes;
13865
+ if (attributes_1.length > 0) {
13866
+ for (var d = 0; d < attributes_1.length; d++) {
13867
+ var e_1 = attributes_1[d];
13868
+ var existingValue = childNode.getAttribute(e_1.nodeName);
13869
+ var parentValue = (element.parentElement).getAttribute(e_1.nodeName);
13870
+ childNode.setAttribute(e_1.nodeName, existingValue ? parentValue + ' ' + existingValue : parentValue);
13871
+ }
13872
+ }
13873
+ }
13811
13874
  className = childNode.getAttribute('class');
13812
- attributes(childNode, this.domNode.rawAttributes(parentNode));
13813
13875
  if (className && childNode.getAttribute('class')) {
13814
13876
  attributes(childNode, { 'class': className + ' ' + childNode.getAttribute('class') });
13815
13877
  }
@@ -13850,6 +13912,48 @@ var Lists = /** @__PURE__ @class */ (function () {
13850
13912
  Lists.prototype.closeTag = function (type) {
13851
13913
  return this.domNode.parseHTMLFragment('<span class="e-rte-list-close-' + type.toLowerCase() + '"></span>');
13852
13914
  };
13915
+ Lists.prototype.gatherElementsAround = function (node) {
13916
+ var pWrap = document.createElement('p');
13917
+ // Insert the new div before the current node
13918
+ var currentNode = node.previousSibling;
13919
+ var classNode = node.parentNode;
13920
+ if (classNode.className === 'e-editor-select-start') {
13921
+ node.parentNode.parentNode.insertBefore(pWrap, node.parentNode);
13922
+ }
13923
+ else if (node.parentNode) {
13924
+ node.parentNode.insertBefore(pWrap, node);
13925
+ }
13926
+ // Gather text and inline elements before the currentNode
13927
+ var i = 0;
13928
+ while (currentNode !== null && currentNode.nodeName !== 'BR' &&
13929
+ !this.parent.domNode.isBlockNode(currentNode)) {
13930
+ var prevSibling = currentNode.previousSibling;
13931
+ if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
13932
+ if (i === 0) {
13933
+ pWrap.appendChild(currentNode);
13934
+ }
13935
+ else {
13936
+ pWrap.insertBefore(currentNode, pWrap.firstChild);
13937
+ }
13938
+ }
13939
+ currentNode = prevSibling;
13940
+ i++;
13941
+ }
13942
+ // Add the current node to the new p
13943
+ pWrap.appendChild(node);
13944
+ // Gather text and inline elements after the currentNode
13945
+ currentNode = pWrap.nextSibling ? pWrap.nextSibling : pWrap.parentElement.nextSibling;
13946
+ while (currentNode !== null && currentNode.nodeName !== 'BR' &&
13947
+ !this.parent.domNode.isBlockNode(currentNode)) {
13948
+ var nextSibling = currentNode.nextSibling ?
13949
+ currentNode.nextSibling : currentNode.parentElement.nextSibling;
13950
+ if (currentNode.nodeType === 3 || currentNode.nodeType === 1) {
13951
+ pWrap.appendChild(currentNode);
13952
+ }
13953
+ currentNode = nextSibling;
13954
+ }
13955
+ return pWrap;
13956
+ };
13853
13957
  return Lists;
13854
13958
  }());
13855
13959
 
@@ -13978,7 +14082,7 @@ var NodeCutter = /** @__PURE__ @class */ (function () {
13978
14082
  fragment = this.spliceEmptyNode(fragment, false);
13979
14083
  if (fragment && fragment.childNodes.length > 0) {
13980
14084
  var isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG' && !(fragment.querySelectorAll('img').length > 0)
13981
- && this.isRteElm(fragment) && fragment.textContent === '') ? true : false;
14085
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '') ? true : false;
13982
14086
  if (!isEmpty) {
13983
14087
  if (node) {
13984
14088
  InsertMethods.AppendBefore(fragment, node);
@@ -13999,7 +14103,7 @@ var NodeCutter = /** @__PURE__ @class */ (function () {
13999
14103
  fragment = this.spliceEmptyNode(fragment, true);
14000
14104
  if (fragment && fragment.childNodes.length > 0) {
14001
14105
  var isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'
14002
- && this.isRteElm(fragment) && fragment.textContent === '') ? true : false;
14106
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '') ? true : false;
14003
14107
  if (!isEmpty) {
14004
14108
  if (node) {
14005
14109
  InsertMethods.AppendBefore(fragment, node, true);
@@ -14605,7 +14709,7 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
14605
14709
  range.startContainer === range.endContainer;
14606
14710
  var isCollapsed = range.collapsed;
14607
14711
  var nodes = this.getNodeCollection(range, nodeSelection, node);
14608
- var closestParentNode = (node.nodeName.toLowerCase() === 'table') ? this.closestEle(nodes[0].parentNode, editNode) : nodes[0];
14712
+ var closestParentNode = (node.nodeName.toLowerCase() === 'table') ? (!isNullOrUndefined(nodes[0]) ? this.closestEle(nodes[0].parentNode, editNode) : range.startContainer) : nodes[0];
14609
14713
  if (closestParentNode && closestParentNode.nodeName === 'LI' && node.nodeName.toLowerCase() === 'table') {
14610
14714
  this.insertTableInList(range, node, closestParentNode, nodes[0], nodeCutter);
14611
14715
  return;
@@ -14650,7 +14754,7 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
14650
14754
  nodes[index].parentNode.removeChild(nodes[index]);
14651
14755
  }
14652
14756
  }
14653
- if (sibNode) {
14757
+ if (!isNullOrUndefined(sibNode) && !isNullOrUndefined(sibNode.parentNode)) {
14654
14758
  InsertMethods.AppendBefore(node, sibNode, true);
14655
14759
  }
14656
14760
  else {
@@ -14901,6 +15005,12 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
14901
15005
  node.parentNode.replaceChild(fragment, node);
14902
15006
  }
14903
15007
  }
15008
+ if (lastSelectionNode.nodeName === 'TABLE') {
15009
+ var pTag = createElement('p');
15010
+ pTag.appendChild(createElement('br'));
15011
+ lastSelectionNode.parentElement.insertBefore(pTag, lastSelectionNode.nextSibling);
15012
+ lastSelectionNode = pTag;
15013
+ }
14904
15014
  if (lastSelectionNode.nodeName === '#text') {
14905
15015
  this.placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode);
14906
15016
  }
@@ -19025,6 +19135,7 @@ var UndoRedoManager = /** @__PURE__ @class */ (function () {
19025
19135
  this.parent.editableElement.innerHTML = '';
19026
19136
  this.parent.editableElement.appendChild(removedContent.cloneNode(true));
19027
19137
  this.parent.editableElement.focus();
19138
+ scrollToCursor(this.parent.currentDocument, this.parent.editableElement);
19028
19139
  if (isIDevice$1()) {
19029
19140
  setEditFrameFocus(this.parent.editableElement, e.selector);
19030
19141
  }
@@ -19057,6 +19168,7 @@ var UndoRedoManager = /** @__PURE__ @class */ (function () {
19057
19168
  this.parent.editableElement.innerHTML = '';
19058
19169
  this.parent.editableElement.appendChild(addedContent.cloneNode(true));
19059
19170
  this.parent.editableElement.focus();
19171
+ scrollToCursor(this.parent.currentDocument, this.parent.editableElement);
19060
19172
  if (isIDevice$1()) {
19061
19173
  setEditFrameFocus(this.parent.editableElement, e.selector);
19062
19174
  }
@@ -19158,9 +19270,9 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
19158
19270
  var patern2 = /class="?Mso|style="[^ ]*\bmso-/i;
19159
19271
  var patern3 = /(class="?Mso|class='?Mso|class="?Xl|class='?Xl|class=Xl|style="[^"]*\bmso-|style='[^']*\bmso-|w:WordDocument)/gi;
19160
19272
  var pattern4 = /style='mso-width-source:/i;
19273
+ var source = this.findSource(elm);
19161
19274
  if (patern.test(tempHTMLContent) || patern2.test(tempHTMLContent) || patern3.test(tempHTMLContent) ||
19162
19275
  pattern4.test(tempHTMLContent)) {
19163
- var source = this.findSource(elm);
19164
19276
  tempHTMLContent = tempHTMLContent.replace(/<img[^>]+>/i, '');
19165
19277
  this.addListClass(elm);
19166
19278
  listNodes = this.cleanUp(elm, listNodes);
@@ -19185,7 +19297,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
19185
19297
  e.callBack(elm.innerHTML, this.cropImageDimensions, source);
19186
19298
  }
19187
19299
  else {
19188
- e.callBack(elm.innerHTML);
19300
+ e.callBack(elm.innerHTML, null, source);
19189
19301
  }
19190
19302
  };
19191
19303
  MsWordPaste.prototype.addDoubleBr = function (elm) {
@@ -21359,7 +21471,7 @@ var __extends$3 = (undefined && undefined.__extends) || (function () {
21359
21471
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21360
21472
  };
21361
21473
  })();
21362
- var IFRAMEHEADER = "\n<!DOCTYPE html> \n <html>\n <head>\n <meta charset='utf-8' /> \n <style>\n @charset \"UTF-8\";\n body {\n font-family: \"Roboto\", sans-serif;\n font-size: 14px;\n }\n html, body{height: 100%;margin: 0;}\n body.e-cursor{cursor:default}\n span.e-selected-node\t{background-color: #939393;color: white;}\n span.e-selected-node.e-highlight {background-color: #1d9dd8;}\n body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}\n .e-rte-image, .e-rte-video {border: 0;cursor: pointer;display:\n block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-audio {border: 0;cursor: pointer;display:\n block;float: none;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-image.e-imginline, .e-rte-audio.e-audio-inline, .e-rte-video.e-video-inline {display: inline-block;float: none;\n margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));padding: 1px;vertical-align: bottom;}\n .e-rte-image.e-imgcenter, .e-rte-video.e-video-center {cursor: pointer;display: block;float: none;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-image.e-imgright, .e-rte-video.e-video-right { float: right; margin: 0 auto;margin-left: 5px;text-align: right;}\n .e-rte-image.e-imgleft, .e-rte-video.e-video-left {float: left;margin: 0 auto;margin-right: 5px;text-align: left;}\n .e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}\n .e-img-caption.e-caption-inline {display: inline-block;float: none;\n margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));\n position: relativetext-align: center;vertical-align: bottom;}\n .e-rte-img-caption.e-imgcenter {display: contents; margin-left: auto; margin-right: auto;}\n .e-rte-img-caption.e-imgright {display: contents; margin-left: auto; margin-right: 0;}\n .e-rte-img-caption.e-imgleft {display: contents;margin-left: 0;margin-right: auto;}\n .e-img-caption.e-rte-img-caption.e-imgbreak {display: contents;}\n .e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;\n margin: auto;opacity: .9;text-align: center;width: 100%;}\n .e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}\n .e-imgleft, .e-video-left {float: left;margin: 0 5px 0 0;text-align: left;}\n .e-imgright, .e-video-right {float: right;margin: 0 0 0 5px;text-align: right;}\n .e-imgcenter, .e-video-center {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}\n .e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}\n .e-imginline , .e-audio-inline, .e-video-inline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;\n max-width: calc(100% - (2 * 5px));vertical-align: bottom;}\n .e-imgbreak, .e-audio-break, .e-video-break {border: 0;cursor: pointer;\n display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-image.e-img-focus:not(.e-resize), .e-audio-focus:not(.e-resize), .e-video-focus:not(.e-resize) {border: solid 2px #4a90e2;}\n img.e-img-focus::selection, audio.e-audio-focus::selection, .e-video-focus::selection { background: transparent;color: transparent;}\n span.e-rte-imageboxmark, span.e-rte-videoboxmark { width: 10px; height: 10px; position: absolute; display: block;\n background: #4a90e2; border: 1px solid #fff; z-index: 1000;}\n .e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }\n .e-mob-rte span.e-rte-imageboxmark, .e-mob-rte span.e-rte-videoboxmark { background: #fff; border: 1px solid #4a90e2;\n border-radius: 15px; height: 20px; width: 20px; }\n .e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }\n .e-rte-content .e-content img.e-resize, .e-rte-content .e-content video.e-resize { z-index: 1000; }\n .e-img-caption .e-img-inner { outline: 0; }\n .e-rte-img-caption.e-imgleft .e-img-inner { float: left; text-align: left; }\n .e-rte-img-caption.e-imgright .e-img-inner { float: right; text-align: right; }\n .e-rte-img-caption.e-imgleft .e-img-wrap, .e-rte-img-caption.e-imgright .e-img-wrap { display: contents; }\n .e-img-caption a:focus-visible { outline: none; }\n .e-rte-img-caption .e-rte-image.e-imgright { margin-left: auto; margin-right: 0; }\n .e-rte-img-caption .e-rte-image.e-imgleft { margin: 0; }\n body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;\n overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}\n p{margin: 0 0 10px;margin-bottom: 10px;}\n li{margin-bottom: 10px;}\n h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}\n h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}\n h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}\n h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}\n h5{font-size: 00.8em;font-weight: 400;margin: 0;}\n h6{font-size: 00.65em;font-weight: 400;margin: 0;}\n blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}\n pre{background-color: inherit;border: 0;border-radius: 0;color: #333;\n font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;\n white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}\n strong, b{font-weight: 700;}\n a{text-decoration: none;user-select: auto;}\n a:hover{text-decoration: underline;};\n p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}\n h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}\n ul:last-child{margin-bottom: 0;}\n table { border-collapse: collapse; empty-cells: show;}\n table td,table th {border: 1px solid #BDBDBD; height: 20px; padding: 2px 5px; vertical-align: middle;}\n table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}\n table th {background-color: #E0E0E0;}\n table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD} \n table .e-cell-select {border: 1px double #4a90e2;}\n span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }\n span.e-table-box.e-rmob {height: 14px;width: 14px;}\n .e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat;\n bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }\n .e-row-resize { cursor: row-resize; height: 1px;}\n .e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}\n .e-table-rhelper.e-column-helper { width: 1px; }\n .e-table-rhelper.e-row-helper {height: 1px;}\n .e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid;\n border-top: 6px solid transparent; content: ''; display: block; height: 0;\n position: absolute; right: 4px; top: 4px; width: 20px; }\n .e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid;\n border-top: 6px solid transparent; content: ''; display: block;\n height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }\n .e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }\n .e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }\n span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }\n span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }\n .e-table-rhelper { background-color: #4a90e2;}\n .e-rtl { direction: rtl; }\n .e-rte-placeholder::before { content: attr(placeholder); opacity: 0.54; overflow: hidden; padding-top: 16px; position: absolute; text-align: start; top: 0; z-index: 1; }\n li ol, li ul { margin-block-start: 10px;}\n </style>\n </head>";
21474
+ var IFRAMEHEADER = "\n<!DOCTYPE html> \n <html>\n <head>\n <meta charset='utf-8' /> \n <style>\n @charset \"UTF-8\";\n body {\n font-family: \"Roboto\", sans-serif;\n font-size: 14px;\n }\n html, body{height: 100%;margin: 0;}\n body.e-cursor{cursor:default}\n span.e-selected-node\t{background-color: #939393;color: white;}\n span.e-selected-node.e-highlight {background-color: #1d9dd8;}\n body{color:#333;word-wrap:break-word;padding: 8px;box-sizing: border-box;}\n .e-rte-image, .e-rte-video {border: 0;cursor: pointer;display:\n block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-audio {border: 0;cursor: pointer;display:\n block;float: none;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-image.e-imginline, .e-rte-audio.e-audio-inline, .e-rte-video.e-video-inline {display: inline-block;float: none;\n margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));padding: 1px;vertical-align: bottom;}\n .e-rte-image.e-imgcenter, .e-rte-video.e-video-center {cursor: pointer;display: block;float: none;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-image.e-imgright, .e-rte-video.e-video-right { float: right; margin: 0 auto;margin-left: 5px;text-align: right;}\n .e-rte-image.e-imgleft, .e-rte-video.e-video-left {float: left;margin: 0 auto;margin-right: 5px;text-align: left;}\n .e-img-caption { display: inline-block; float: none; margin: 5px auto; max-width: 100%;position: relative;}\n .e-img-caption.e-caption-inline {display: inline-block;float: none;\n margin: 5px auto;margin-left: 5px;margin-right: 5px;max-width: calc(100% - (2 * 5px));\n position: relativetext-align: center;vertical-align: bottom;}\n .e-rte-img-caption.e-imgcenter {display: contents; margin-left: auto; margin-right: auto;}\n .e-rte-img-caption.e-imgright {display: contents; margin-left: auto; margin-right: 0;}\n .e-rte-img-caption.e-imgleft {display: contents;margin-left: 0;margin-right: auto;}\n .e-img-caption.e-rte-img-caption.e-imgbreak {display: contents;}\n .e-img-inner {box-sizing: border-box;display: block;font-size: 16px;font-weight: initial;\n margin: auto;opacity: .9;text-align: center;width: 100%;}\n .e-img-wrap {display: inline-block;margin: auto;padding: 0;text-align: center;width: 100%;}\n .e-imgleft, .e-video-left {float: left;margin: 0 5px 0 0;text-align: left;}\n .e-imgright, .e-video-right {float: right;margin: 0 0 0 5px;text-align: right;}\n .e-imgcenter, .e-video-center {cursor: pointer;display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}\n .e-control img:not(.e-resize) {border: 2px solid transparent; z-index: 1000}\n .e-imginline , .e-audio-inline, .e-video-inline {display: inline-block;float: none;margin-left: 5px;margin-right: 5px;\n max-width: calc(100% - (2 * 5px));vertical-align: bottom;}\n .e-imgbreak, .e-audio-break, .e-video-break {border: 0;cursor: pointer;\n display: block;float: none;height: auto;margin: 5px auto;max-width: 100%;position: relative;}\n .e-rte-image.e-img-focus:not(.e-resize), .e-audio-focus:not(.e-resize), .e-video-focus:not(.e-resize) {border: solid 2px #4a90e2;}\n img.e-img-focus::selection, audio.e-audio-focus::selection, .e-video-focus::selection { background: transparent;color: transparent;}\n span.e-rte-imageboxmark, span.e-rte-videoboxmark { width: 10px; height: 10px; position: absolute; display: block;\n background: #4a90e2; border: 1px solid #fff; z-index: 1000;}\n .e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }\n .e-mob-rte span.e-rte-imageboxmark, .e-mob-rte span.e-rte-videoboxmark { background: #fff; border: 1px solid #4a90e2;\n border-radius: 15px; height: 20px; width: 20px; }\n .e-mob-rte.e-mob-span span.e-rte-imageboxmark, .e-mob-rte.e-mob-span span.e-rte-videoboxmark { background: #4a90e2; border: 1px solid #fff; }\n .e-rte-content .e-content img.e-resize, .e-rte-content .e-content video.e-resize { z-index: 1000; }\n .e-img-caption .e-img-inner { outline: 0; }\n .e-rte-img-caption.e-imgleft .e-img-inner { float: left; text-align: left; }\n .e-rte-img-caption.e-imgright .e-img-inner { float: right; text-align: right; }\n .e-rte-img-caption.e-imgleft .e-img-wrap, .e-rte-img-caption.e-imgright .e-img-wrap { display: contents; }\n .e-img-caption a:focus-visible { outline: none; }\n .e-rte-img-caption .e-rte-image.e-imgright { margin-left: auto; margin-right: 0; }\n .e-rte-img-caption .e-rte-image.e-imgleft { margin: 0; }\n body{box-sizing: border-box;min-height: 100px;outline: 0 solid transparent;\n overflow-x: auto;padding: 16px;position: relative;text-align: inherit;z-index: 2;}\n p{margin: 0 0 10px;margin-bottom: 10px;}\n li{margin-bottom: 10px;}\n table{margin-bottom: 10px;}\n h1{font-size: 2.17em;font-weight: 400;line-height: 1;margin: 10px 0;}\n h2{font-size: 1.74em;font-weight: 400;margin: 10px 0;}\n h3{font-size: 1.31em;font-weight: 400;margin: 10px 0;}\n h4{font-size: 16px;font-weight: 400;line-height: 1.5;margin: 0;}\n h5{font-size: 00.8em;font-weight: 400;margin: 0;}\n h6{font-size: 00.65em;font-weight: 400;margin: 0;}\n blockquote{margin: 10px 0;margin-left: 0;padding-left: 5px;border-left: solid 2px #5c5c5c;}\n pre{background-color: inherit;border: 0;border-radius: 0;color: #333;\n font-size: inherit;line-height: inherit;margin: 0 0 10px;overflow: visible;padding: 0;\n white-space: pre-wrap;word-break: inherit;word-wrap: break-word;}\n strong, b{font-weight: 700;}\n a{text-decoration: none;user-select: auto;}\n a:hover{text-decoration: underline;};\n p:last-child, pre:last-child, blockquote:last-child{margin-bottom: 0;}\n h3+h4, h4+h5, h5+h6{margin-top: 00.6em;}\n ul:last-child{margin-bottom: 0;}\n table { border-collapse: collapse; empty-cells: show;}\n table td,table th {border: 1px solid #BDBDBD; height: 20px; padding: 2px 5px; vertical-align: middle;}\n table.e-alternate-border tbody tr:nth-child(2n) {background-color: #F5F5F5;}\n table th {background-color: #E0E0E0;}\n table.e-dashed-border td,table.e-dashed-border th { border: 1px dashed #BDBDBD} \n table .e-cell-select {border: 1px double #4a90e2;}\n span.e-table-box { cursor: nwse-resize; display: block; height: 10px; position: absolute; width: 10px; }\n span.e-table-box.e-rmob {height: 14px;width: 14px;}\n .e-row-resize, .e-column-resize { background-color: transparent; background-repeat: repeat;\n bottom: 0;cursor: col-resize;height: 1px;overflow: visible;position: absolute;width: 1px; }\n .e-row-resize { cursor: row-resize; height: 1px;}\n .e-table-rhelper { cursor: col-resize; opacity: .87;position: absolute;}\n .e-table-rhelper.e-column-helper { width: 1px; }\n .e-table-rhelper.e-row-helper {height: 1px;}\n .e-reicon::before { border-bottom: 6px solid transparent; border-right: 6px solid;\n border-top: 6px solid transparent; content: ''; display: block; height: 0;\n position: absolute; right: 4px; top: 4px; width: 20px; }\n .e-reicon::after { border-bottom: 6px solid transparent; border-left: 6px solid;\n border-top: 6px solid transparent; content: ''; display: block;\n height: 0; left: 4px; position: absolute; top: 4px; width: 20px; z-index: 3; }\n .e-row-helper.e-reicon::after { top: 10px; transform: rotate(90deg); }\n .e-row-helper.e-reicon::before { left: 4px; top: -20px; transform: rotate(90deg); }\n span.e-table-box { background-color: #ffffff; border: 1px solid #BDBDBD; }\n span.e-table-box.e-rbox-select { background-color: #BDBDBD; border: 1px solid #BDBDBD; }\n .e-table-rhelper { background-color: #4a90e2;}\n .e-rtl { direction: rtl; }\n .e-rte-placeholder::before { content: attr(placeholder); opacity: 0.54; overflow: hidden; padding-top: 16px; position: absolute; text-align: start; top: 0; z-index: 1; }\n li ol, li ul { margin-block-start: 10px;}\n </style>\n </head>";
21363
21475
  /**
21364
21476
  * Content module is used to render Rich Text Editor content
21365
21477
  *
@@ -21808,8 +21920,14 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
21808
21920
  range.insertNode(tempSpan);
21809
21921
  }
21810
21922
  var currentChild = this.parent.inputElement.firstChild;
21811
- while (!isNullOrUndefined(currentChild) && currentChild.textContent.replace(regEx, '').trim().length > 0) {
21812
- currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');
21923
+ while (!isNullOrUndefined(currentChild)) {
21924
+ if (currentChild.nodeName === '#text') {
21925
+ currentChild = currentChild.nextElementSibling;
21926
+ continue;
21927
+ }
21928
+ if (currentChild.textContent.replace(regEx, '').trim().length > 0) {
21929
+ currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');
21930
+ }
21813
21931
  currentChild = currentChild.nextElementSibling;
21814
21932
  }
21815
21933
  var tempSpanToRemove = this.parent.inputElement.querySelector('.tempSpan');
@@ -21908,15 +22026,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
21908
22026
  }
21909
22027
  else {
21910
22028
  this.parent.notify(enterHandler, { args: e.args });
21911
- var newRange = this.parent.getRange();
21912
- if (!isNullOrUndefined(newRange.startContainer) && this.parent.height !== 'auto' && newRange.startContainer.nodeName !== '#text'
21913
- && !this.parent.iframeSettings.enable && newRange.startContainer.getBoundingClientRect().bottom > this.parent.element.getBoundingClientRect().bottom) {
21914
- this.parent.element.querySelector('.e-rte-content').scrollTop += newRange.startContainer.getBoundingClientRect().bottom - this.parent.element.getBoundingClientRect().bottom;
21915
- }
21916
- else if (!isNullOrUndefined(newRange.startContainer) && this.parent.height === 'auto' && newRange.startContainer.nodeName !== '#text'
21917
- && !this.parent.iframeSettings.enable && window.innerHeight < newRange.startContainer.getBoundingClientRect().top) {
21918
- newRange.startContainer.scrollIntoView({ block: 'end', inline: 'nearest' });
21919
- }
22029
+ scrollToCursor(this.parent.contentModule.getDocument(), this.parent.inputElement);
21920
22030
  }
21921
22031
  }
21922
22032
  }
@@ -22953,13 +23063,15 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
22953
23063
  popupObj.close();
22954
23064
  }
22955
23065
  this.parent.trigger(imageUploadFailed, e);
22956
- uploadObj.destroy();
23066
+ if (uploadObj && document.body.contains(uploadObj.element)) {
23067
+ uploadObj.destroy();
23068
+ }
22957
23069
  };
22958
23070
  PasteCleanup.prototype.popupClose = function (popupObj, uploadObj, imgElem, e) {
22959
23071
  var _this = this;
22960
23072
  this.parent.inputElement.contentEditable = 'true';
22961
23073
  e.element = imgElem;
22962
- e.requestType = UploadRequest.Pasted;
23074
+ e.detectImageSource = ImageInputSource.Pasted;
22963
23075
  this.parent.trigger(imageUploadSuccess, e, function (e) {
22964
23076
  if (!isNullOrUndefined(_this.parent.insertImageSettings.path)) {
22965
23077
  var url = _this.parent.insertImageSettings.path + e.file.name;
@@ -22969,7 +23081,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
22969
23081
  });
22970
23082
  popupObj.close();
22971
23083
  imgElem.style.opacity = '1';
22972
- if (!uploadObj.isDestroyed) {
23084
+ if (uploadObj && document.body.contains(uploadObj.element)) {
22973
23085
  uploadObj.destroy();
22974
23086
  }
22975
23087
  this.toolbarEnableDisable(false);
@@ -23269,6 +23381,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
23269
23381
  extend(args, { elements: returnArgs.elements, imageElements: returnArgs.imgElem }, true);
23270
23382
  _this.parent.formatter.onSuccess(_this.parent, args);
23271
23383
  }, clipBoardElem, null, null, this.parent.enterKey);
23384
+ scrollToCursor(this.parent.contentModule.getDocument(), this.parent.inputElement);
23272
23385
  this.removeTempClass();
23273
23386
  this.parent.notify(toolbarRefresh, {});
23274
23387
  this.cropImageHandler(this.parent.inputElement);
@@ -23323,15 +23436,15 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
23323
23436
  }
23324
23437
  };
23325
23438
  PasteCleanup.prototype.addTableClass = function (element, source) {
23326
- source = isNullOrUndefined(source) ? '' : source;
23327
23439
  var tableElement = element.querySelectorAll('table');
23328
23440
  for (var i = 0; i < tableElement.length; i++) {
23329
- if (!tableElement[i].classList.contains('e-rte-table') && (source === 'html' || source === '')) {
23330
- tableElement[i].classList.add('e-rte-table');
23331
- }
23332
- else if (source && source !== 'html') {
23441
+ var isMSTeamsTable = tableElement[i].parentElement.nodeName === 'FIGURE';
23442
+ if (this.parent.pasteCleanupSettings.keepFormat && source && !isMSTeamsTable) {
23333
23443
  tableElement[i].classList.add('e-rte-paste-' + source + '-table');
23334
23444
  }
23445
+ else if (!tableElement[i].classList.contains('e-rte-table')) {
23446
+ tableElement[i].classList.add('e-rte-table');
23447
+ }
23335
23448
  }
23336
23449
  return element;
23337
23450
  };
@@ -25237,7 +25350,7 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
25237
25350
  var popupHeight = 330;
25238
25351
  var popupTop = cursorTop;
25239
25352
  var popupLeft = cursorLeft + rect.width;
25240
- if (rteEle.getBoundingClientRect().top < 0) {
25353
+ if (rteEle.getBoundingClientRect().top < 0 && !this.parent.inlineMode.enable) {
25241
25354
  popupTop = popupTop + rteContent.getBoundingClientRect().top - toolbarHeight;
25242
25355
  }
25243
25356
  if (rect.top < popupHeight) {
@@ -25908,7 +26021,10 @@ var Link = /** @__PURE__ @class */ (function () {
25908
26021
  this.selection.restore();
25909
26022
  }
25910
26023
  else {
26024
+ var x = window.scrollX;
26025
+ var y = window.scrollY;
25911
26026
  this.selfLink.parent.contentModule.getEditPanel().focus();
26027
+ window.scrollTo(x, y);
25912
26028
  }
25913
26029
  };
25914
26030
  Link.prototype.onDocumentClick = function (e) {
@@ -27744,7 +27860,7 @@ var Image$1 = /** @__PURE__ @class */ (function () {
27744
27860
  }
27745
27861
  },
27746
27862
  success: function (e) {
27747
- e.requestType = UploadRequest.Uploaded;
27863
+ e.detectImageSource = ImageInputSource.Uploaded;
27748
27864
  _this.parent.trigger(imageUploadSuccess, e, function (e) {
27749
27865
  if (!isNullOrUndefined(_this.parent.insertImageSettings.path)) {
27750
27866
  var url = _this.parent.insertImageSettings.path + e.file.name;
@@ -28189,7 +28305,7 @@ var Image$1 = /** @__PURE__ @class */ (function () {
28189
28305
  imageElement.style.opacity = '1';
28190
28306
  imageElement.classList.add(CLS_IMG_FOCUS);
28191
28307
  e.element = imageElement;
28192
- e.requestType = UploadRequest.Dropped;
28308
+ e.detectImageSource = ImageInputSource.Dropped;
28193
28309
  this.parent.trigger(imageUploadSuccess, e, function (e) {
28194
28310
  if (!isNullOrUndefined(_this.parent.insertImageSettings.path)) {
28195
28311
  var url = _this.parent.insertImageSettings.path + e.file.name;
@@ -31475,8 +31591,11 @@ var Table = /** @__PURE__ @class */ (function () {
31475
31591
  if (proxy.editdlgObj) {
31476
31592
  proxy.editdlgObj.hide();
31477
31593
  }
31594
+ var x = window.scrollX;
31595
+ var y = window.scrollY;
31478
31596
  proxy.parent.formatter.process(proxy.parent, selectionObj.args, selectionObj.args.originalEvent, value);
31479
31597
  proxy.contentModule.getEditPanel().focus();
31598
+ window.scrollTo(x, y);
31480
31599
  proxy.parent.on(mouseDown, proxy.cellSelect, proxy);
31481
31600
  };
31482
31601
  Table.prototype.cellSelect = function (e) {
@@ -33860,6 +33979,7 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
33860
33979
  else {
33861
33980
  currentParent = _this.startNode;
33862
33981
  }
33982
+ var currentParentStyle = window.getComputedStyle(currentParent);
33863
33983
  _this.removeBRElement(currentParent);
33864
33984
  var currentParentLastChild = currentParent.lastChild;
33865
33985
  while (!isNullOrUndefined(currentParentLastChild) && !(currentParentLastChild.nodeName === '#text' || currentParentLastChild.nodeName === 'BR'
@@ -33923,6 +34043,14 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
33923
34043
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
33924
34044
 
33925
34045
  }
34046
+ else if (currentParent !== _this.parent.inputElement &&
34047
+ (currentParentStyle.display === 'inline' || currentParentStyle.display === 'inline-block')) {
34048
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
34049
+ newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, currentParent, true).cloneNode(true);
34050
+ currentParent.parentElement.insertBefore(outerBRElem, currentParent);
34051
+ _this.parent.formatter.editorManager.nodeSelection.setCursorPoint(_this.parent.contentModule.getDocument(), currentParent, 0);
34052
+ _this.insertFocusContent();
34053
+ }
33926
34054
  else {
33927
34055
  _this.insertBRElement();
33928
34056
  }
@@ -35086,6 +35214,13 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
35086
35214
  clearInterval(this.timeInterval);
35087
35215
  this.timeInterval = null;
35088
35216
  }
35217
+ var tooltipElements = document.querySelectorAll('[data-rte-id="' + this.getID() + '"]');
35218
+ for (var i = 0; i < tooltipElements.length; i++) {
35219
+ var tooltipEle = tooltipElements[i];
35220
+ if (this.getID() === tooltipEle.getAttribute('data-rte-id')) {
35221
+ detach(tooltipEle);
35222
+ }
35223
+ }
35089
35224
  if (this.element.offsetParent === null) {
35090
35225
  if (!isNullOrUndefined(this.toolbarModule)) {
35091
35226
  this.toolbarModule.destroy();
@@ -36943,5 +37078,5 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
36943
37078
  * Rich Text Editor component exported items
36944
37079
  */
36945
37080
 
36946
- 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, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image$1 as Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, UploadRequest, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, 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, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, destroyTooltip, hidePopup, cleanupResizeElements, afterKeyDown, updateValueOnIdle, documentClickClosedBy, showColorPicker, closeTooltip, blockEmptyNodes, inlineEmptyNodes, supportedUnits, conversionFactors, onHandleFontsizeChange, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_TEXT_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_TEXT_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_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, 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_AUD_FOCUS, CLS_VID_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, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, 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, AUDIO, VIDEO, 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, SELF_CLOSING_TAGS, PASTE_SOURCE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, imageResizeFactor, 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, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS, MOUSE_DOWN };
37081
+ 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, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image$1 as Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, ImageInputSource, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, 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, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, destroyTooltip, hidePopup, cleanupResizeElements, afterKeyDown, updateValueOnIdle, documentClickClosedBy, showColorPicker, closeTooltip, blockEmptyNodes, inlineEmptyNodes, supportedUnits, conversionFactors, onHandleFontsizeChange, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_TEXT_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_TEXT_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_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, 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_AUD_FOCUS, CLS_VID_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, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, 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, AUDIO, VIDEO, 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, SELF_CLOSING_TAGS, PASTE_SOURCE, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, imageResizeFactor, 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, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS, MOUSE_DOWN };
36947
37082
  //# sourceMappingURL=ej2-richtexteditor.es5.js.map