@syncfusion/ej2-richtexteditor 27.1.58 → 27.2.2

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 (30) hide show
  1. package/dist/ej2-richtexteditor.min.js +2 -2
  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 +180 -74
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +170 -51
  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 +13 -13
  12. package/src/common/config.d.ts +0 -7
  13. package/src/common/config.js +0 -12
  14. package/src/common/editor-styles.js +1 -1
  15. package/src/common/interface.d.ts +2 -0
  16. package/src/common/util.js +2 -1
  17. package/src/editor-manager/base/constant.d.ts +4 -0
  18. package/src/editor-manager/base/constant.js +4 -0
  19. package/src/editor-manager/plugin/formats.d.ts +1 -0
  20. package/src/editor-manager/plugin/formats.js +25 -0
  21. package/src/editor-manager/plugin/image.js +8 -2
  22. package/src/editor-manager/plugin/inserthtml.d.ts +2 -0
  23. package/src/editor-manager/plugin/inserthtml.js +96 -17
  24. package/src/rich-text-editor/actions/html-editor.js +5 -1
  25. package/src/rich-text-editor/actions/paste-clean-up.js +3 -0
  26. package/src/rich-text-editor/renderer/image-module.js +1 -4
  27. package/src/rich-text-editor/renderer/slash-menu.js +9 -0
  28. package/src/rich-text-editor/renderer/table-module.js +1 -1
  29. package/src/selection/selection.d.ts +2 -1
  30. package/src/selection/selection.js +15 -12
@@ -4246,6 +4246,10 @@ const SELF_CLOSING_TAGS = ['area', 'base', 'br', 'embed', 'hr', 'img', 'input',
4246
4246
  * @hidden
4247
4247
  */
4248
4248
  const PASTE_SOURCE = ['word', 'excel', 'onenote'];
4249
+ /**
4250
+ * @hidden
4251
+ */
4252
+ const ALLOWED_TABLE_BLOCK_TAGS = ['article', 'aside', 'blockquote', 'body', 'canvas', 'details', 'div', 'fieldset', 'figure', 'footer', 'form', 'header', 'li', 'main', 'nav', 'noscript', 'section'];
4249
4253
 
4250
4254
  /**
4251
4255
  * `Selection` module is used to handle RTE Selections.
@@ -4374,7 +4378,8 @@ class NodeSelection {
4374
4378
  const tableCursor = this.processedTableImageCursor(range);
4375
4379
  if (tableCursor.start || tableCursor.end) {
4376
4380
  if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
4377
- return [];
4381
+ const tableNode = tableCursor.start ? tableCursor.startNode : tableCursor.endNode;
4382
+ return [tableNode];
4378
4383
  }
4379
4384
  }
4380
4385
  if ((startNode === endNode || (startNode.nodeName === 'BR' && startNode === range.endContainer.childNodes[range.endOffset])) &&
@@ -4700,34 +4705,36 @@ class NodeSelection {
4700
4705
  const customHandlerElements = ['TABLE'];
4701
4706
  const startContainer = range.startContainer;
4702
4707
  const startOffset = range.startOffset;
4708
+ const startNode = startContainer.childNodes[startOffset];
4703
4709
  const isCursorAtStart = range.collapsed && (startContainer.nodeType === 1) &&
4704
- startContainer.isContentEditable && startContainer.childNodes[startOffset] &&
4705
- (customHandlerElements.indexOf(startContainer.childNodes[startOffset].nodeName) > -1);
4710
+ startContainer.isContentEditable && startNode &&
4711
+ (customHandlerElements.indexOf(startNode.nodeName) > -1);
4706
4712
  if (isCursorAtStart) {
4707
- return { start: isCursorAtStart, startNodeName: startContainer.childNodes[startOffset].nodeName };
4713
+ return { start: isCursorAtStart, startNodeName: startNode.nodeName, startNode: startNode };
4708
4714
  }
4709
4715
  else {
4710
- return { start: false, startNodeName: '' };
4716
+ return { start: false, startNodeName: '', startNode: undefined };
4711
4717
  }
4712
4718
  }
4713
4719
  isTableOrImageEnd(range) {
4714
4720
  const customHandlerElements = ['TABLE'];
4715
4721
  const startContainer = range.startContainer;
4716
4722
  const startOffset = range.startOffset;
4723
+ const endNode = startContainer.childNodes[startOffset - 1];
4717
4724
  const isCursorAtEnd = range.collapsed && (startContainer.nodeType === 1) &&
4718
- startContainer.isContentEditable && startContainer.childNodes[startOffset - 1] &&
4719
- (customHandlerElements.indexOf(startContainer.childNodes[startOffset - 1].nodeName) > -1);
4725
+ startContainer.isContentEditable && endNode &&
4726
+ (customHandlerElements.indexOf(endNode.nodeName) > -1);
4720
4727
  if (isCursorAtEnd) {
4721
- return { end: isCursorAtEnd, endNodeName: startContainer.childNodes[startOffset - 1].nodeName };
4728
+ return { end: isCursorAtEnd, endNodeName: endNode.nodeName, endNode: endNode };
4722
4729
  }
4723
4730
  else {
4724
- return { end: false, endNodeName: '' };
4731
+ return { end: false, endNodeName: '', endNode: undefined };
4725
4732
  }
4726
4733
  }
4727
4734
  processedTableImageCursor(range) {
4728
- const { start, startNodeName } = this.isTableOrImageStart(range);
4729
- const { end, endNodeName } = this.isTableOrImageEnd(range);
4730
- return { start, startName: startNodeName, end, endName: endNodeName };
4735
+ const { start, startNodeName, startNode } = this.isTableOrImageStart(range);
4736
+ const { end, endNodeName, endNode } = this.isTableOrImageEnd(range);
4737
+ return { start, startName: startNodeName, end, endName: endNodeName, startNode, endNode };
4731
4738
  }
4732
4739
  }
4733
4740
 
@@ -4814,7 +4821,8 @@ function updateTextNode$1(value, enterAction) {
4814
4821
  }
4815
4822
  const tableElm = resultElm.querySelectorAll('table');
4816
4823
  for (let i = 0; i < tableElm.length; i++) {
4817
- if (tableElm[i].classList.length > 0 && !tableElm[i].classList.contains('e-rte-table')) {
4824
+ if (tableElm[i].classList.length > 0 && !tableElm[i].classList.contains('e-rte-table') &&
4825
+ !tableElm[i].classList.contains('e-rte-custom-table')) {
4818
4826
  tableElm[i].classList.add('e-rte-paste-table');
4819
4827
  if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
4820
4828
  tableElm[i].classList.remove('e-rte-paste-word-table');
@@ -6914,18 +6922,6 @@ const imageResizeFactor = {
6914
6922
  botRight: [1, 1],
6915
6923
  botLeft: [-1, 1]
6916
6924
  };
6917
- /**
6918
- * Resize factor for image in iframe editor.
6919
- *
6920
- *@hidden
6921
- *
6922
- */
6923
- const iframeResizeFactor = {
6924
- topLeft: [-1.2, -1.2],
6925
- topRight: [1.2, -1.2],
6926
- botRight: [1.2, 1.2],
6927
- botLeft: [-1.2, 1.2]
6928
- };
6929
6925
  /**
6930
6926
  * Mention restrict key configuration.
6931
6927
  *
@@ -7450,9 +7446,6 @@ class Image$1 {
7450
7446
  return dimensions;
7451
7447
  }
7452
7448
  getResizeFactor(value) {
7453
- if (this.parent.iframeSettings.enable) {
7454
- return iframeResizeFactor[value];
7455
- }
7456
7449
  return imageResizeFactor[value];
7457
7450
  }
7458
7451
  findAspectRatio(image) {
@@ -13411,7 +13404,7 @@ class Table {
13411
13404
  return;
13412
13405
  }
13413
13406
  const target = e.target || e.targetTouches[0].target;
13414
- const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table');
13407
+ const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table, table.e-rte-custom-table');
13415
13408
  const isResizing = this.parent.contentModule.getEditPanel().querySelectorAll('.e-table-box.e-rbox-select, .e-table-rhelper.e-column-helper, .e-table-rhelper.e-row-helper').length > 0;
13416
13409
  if (!isResizing && !isNullOrUndefined(this.curTable) && !isNullOrUndefined(closestTable) && closestTable !== this.curTable &&
13417
13410
  this.parent.contentModule.getEditPanel().contains(closestTable)) {
@@ -14658,6 +14651,10 @@ class DialogRenderer {
14658
14651
  const IFRAME_EDITOR_STYLES = `
14659
14652
  @charset "UTF-8";
14660
14653
 
14654
+ * {
14655
+ box-sizing: border-box;
14656
+ }
14657
+
14661
14658
  html {
14662
14659
  height: auto;
14663
14660
  }
@@ -14673,7 +14670,6 @@ body {
14673
14670
 
14674
14671
  .e-content {
14675
14672
  background: unset;
14676
- box-sizing: border-box;
14677
14673
  min-height: 100px;
14678
14674
  outline: 0 solid transparent;
14679
14675
  padding: 16px;
@@ -14802,18 +14798,6 @@ body {
14802
14798
  list-style-type: square;
14803
14799
  }
14804
14800
 
14805
- .e-rte-image,
14806
- .e-rte-video {
14807
- border: 0;
14808
- cursor: pointer;
14809
- display: block;
14810
- float: none;
14811
- height: auto;
14812
- margin: 5px auto;
14813
- max-width: 100%;
14814
- position: relative;
14815
- }
14816
-
14817
14801
  .e-content p:last-child,
14818
14802
  .e-content pre:last-child,
14819
14803
  .e-content blockquote:last-child {
@@ -14865,7 +14849,6 @@ table .e-cell-select {
14865
14849
  height: 20px;
14866
14850
  min-width: 20px;
14867
14851
  padding: 2px 5px;
14868
- box-sizing: border-box;
14869
14852
  }
14870
14853
 
14871
14854
  .e-rte-table td.e-cell-select.e-multi-cells-select,
@@ -14906,12 +14889,14 @@ th.e-multi-cells-select {
14906
14889
  background-color: #F5F5F5;
14907
14890
  }
14908
14891
 
14909
- .e-rte-audio {
14892
+ .e-rte-image,
14893
+ .e-rte-audio,
14894
+ .e-rte-video {
14910
14895
  border: 0;
14911
14896
  cursor: pointer;
14912
14897
  display: block;
14913
14898
  float: none;
14914
- margin: 5px auto;
14899
+ margin: auto;
14915
14900
  max-width: 100%;
14916
14901
  position: relative;
14917
14902
  }
@@ -14919,11 +14904,11 @@ th.e-multi-cells-select {
14919
14904
  .e-rte-image.e-imginline,
14920
14905
  .e-rte-audio.e-audio-inline,
14921
14906
  .e-rte-video.e-video-inline {
14922
- display: inline-block;
14923
- float: none;
14924
14907
  margin-left: 5px;
14925
14908
  margin-right: 5px;
14926
- max-width: calc(100% - (2 * 5px));
14909
+ display: inline-block;
14910
+ float: none;
14911
+ max-width: 100%;
14927
14912
  padding: 1px;
14928
14913
  vertical-align: bottom;
14929
14914
  }
@@ -14954,17 +14939,15 @@ th.e-multi-cells-select {
14954
14939
  text-align: left;
14955
14940
  }
14956
14941
 
14957
- .e-img-caption {
14942
+ .e-rte-img-caption {
14958
14943
  display: inline-block;
14959
- float: none;
14960
14944
  margin: 5px auto;
14961
14945
  max-width: 100%;
14962
14946
  position: relative;
14963
14947
  }
14964
14948
 
14965
- .e-img-caption.e-caption-inline {
14949
+ .e-rte-img-caption.e-caption-inline {
14966
14950
  display: inline-block;
14967
- float: none;
14968
14951
  margin: 5px auto;
14969
14952
  margin-left: 5px;
14970
14953
  margin-right: 5px;
@@ -14996,13 +14979,13 @@ th.e-multi-cells-select {
14996
14979
  display: contents;
14997
14980
  }
14998
14981
 
14999
- .e-img-inner {
15000
- box-sizing: border-box;
14982
+ .e-rte-img-caption .e-img-inner {
15001
14983
  display: block;
15002
14984
  font-size: 16px;
15003
14985
  font-weight: initial;
15004
14986
  margin: auto;
15005
14987
  opacity: .9;
14988
+ position: relative;
15006
14989
  text-align: center;
15007
14990
  width: 100%;
15008
14991
  }
@@ -15052,7 +15035,6 @@ th.e-multi-cells-select {
15052
15035
  float: none;
15053
15036
  margin-left: 5px;
15054
15037
  margin-right: 5px;
15055
- max-width: calc(100% - (2 * 5px));
15056
15038
  vertical-align: bottom;
15057
15039
  }
15058
15040
 
@@ -15799,6 +15781,15 @@ class SlashMenu {
15799
15781
  break;
15800
15782
  }
15801
15783
  }
15784
+ else {
15785
+ if (this.parent.inputElement.classList.contains('e-mention')) {
15786
+ const slashMenuPopup = this.parent.inputElement.ownerDocument.getElementById(this.parent.inputElement.id + '_slash_menu_popup');
15787
+ const isSlashMenuPopupOpen = slashMenuPopup && slashMenuPopup.classList.contains('e-popup-open');
15788
+ if (isSlashMenuPopupOpen) {
15789
+ this.mention.hidePopup();
15790
+ }
15791
+ }
15792
+ }
15802
15793
  }
15803
15794
  });
15804
15795
  }
@@ -24299,6 +24290,14 @@ class Formats {
24299
24290
  }
24300
24291
  applyFormats(e) {
24301
24292
  const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
24293
+ const tableCursor = this.parent.nodeSelection.processedTableImageCursor(range);
24294
+ if (tableCursor.start || tableCursor.end) {
24295
+ if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
24296
+ const tableNode = tableCursor.start ? tableCursor.startNode : tableCursor.endNode;
24297
+ this.applyTableSidesFormat(e, tableCursor.start, tableNode);
24298
+ return;
24299
+ }
24300
+ }
24302
24301
  let isSelectAll = false;
24303
24302
  if (this.parent.editableElement === range.endContainer &&
24304
24303
  !isNullOrUndefined(this.parent.editableElement.children[range.endOffset - 1]) &&
@@ -24547,6 +24546,23 @@ class Formats {
24547
24546
  element.style.removeProperty(ignoreAttr[i]);
24548
24547
  }
24549
24548
  }
24549
+ applyTableSidesFormat(e, start, table) {
24550
+ const formatNode = createElement(e.subCommand);
24551
+ if (!(e.enterAction === 'BR')) {
24552
+ formatNode.appendChild(createElement('br'));
24553
+ }
24554
+ table.insertAdjacentElement(start ? 'beforebegin' : 'afterend', formatNode);
24555
+ this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, formatNode, 0);
24556
+ if (e.callBack) {
24557
+ e.callBack({
24558
+ requestType: e.subCommand,
24559
+ editorMode: 'HTML',
24560
+ event: e.event,
24561
+ range: this.parent.nodeSelection.getRange(this.parent.currentDocument),
24562
+ elements: this.parent.domNode.blockNodes()
24563
+ });
24564
+ }
24565
+ }
24550
24566
  destroy() {
24551
24567
  this.removeEventListener();
24552
24568
  }
@@ -24653,7 +24669,12 @@ class InsertHtml {
24653
24669
  }
24654
24670
  }
24655
24671
  if (!isNullOrUndefined(sibNode) && !isNullOrUndefined(sibNode.parentNode)) {
24656
- InsertMethods.AppendBefore(node, sibNode, true);
24672
+ if (docElement.contains(sibNode)) {
24673
+ InsertMethods.AppendBefore(node, sibNode, true);
24674
+ }
24675
+ else {
24676
+ range.insertNode(node);
24677
+ }
24657
24678
  }
24658
24679
  else {
24659
24680
  let previousNode = null;
@@ -24941,24 +24962,95 @@ class InsertHtml {
24941
24962
  this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);
24942
24963
  }
24943
24964
  this.alignCheck(editNode);
24944
- const currentRange = nodeSelection.getRange(docElement);
24945
- this.listCleanUp(currentRange);
24965
+ this.listCleanUp(nodeSelection, docElement);
24946
24966
  }
24947
- static listCleanUp(range) {
24967
+ static listCleanUp(nodeSelection, docElement) {
24968
+ const range = nodeSelection.getRange(docElement);
24969
+ const startContainer = range.startContainer;
24970
+ const startOffset = range.startOffset;
24948
24971
  if (range.startContainer.parentElement.closest('ol,ul') !== null && range.endContainer.parentElement.closest('ol,ul') !== null) {
24949
- const liElems = range.startContainer.parentElement.closest('ol,ul').querySelectorAll('li');
24950
- if (liElems.length > 0) {
24951
- liElems.forEach((item) => {
24952
- if (!isNullOrUndefined(item.firstChild) && (item.firstChild.nodeName === 'OL' || item.firstChild.nodeName === 'UL')) {
24953
- item.style.listStyleType = 'none';
24954
- }
24955
- const nestedLi = Array.from(item.children).find((child) => child.tagName === 'LI' && (child.parentElement && child.parentElement.tagName !== 'OL' && child.parentElement.tagName !== 'UL'));
24956
- if (nestedLi) {
24957
- item.parentNode.replaceChild(nestedLi, item);
24972
+ const haslistCleanUp = this.cleanUpListItems(range.startContainer.parentElement.closest('ol,ul'));
24973
+ const haslistContainerCleanUp = this.cleanUpListContainer(range.startContainer.parentElement.closest('ol,ul'));
24974
+ if (haslistCleanUp || haslistContainerCleanUp) {
24975
+ range.setStart(startContainer, startOffset);
24976
+ range.setEnd(startContainer, startOffset);
24977
+ }
24978
+ }
24979
+ }
24980
+ static cleanUpListItems(parentContainer) {
24981
+ let hasListCleanUp = false;
24982
+ const listItems = parentContainer.closest('ol, ul').querySelectorAll('li');
24983
+ if (listItems.length === 0) {
24984
+ return false;
24985
+ }
24986
+ let nearestListItem = null;
24987
+ listItems.forEach((listItem) => {
24988
+ if (!isNullOrUndefined(listItem.firstChild) && (listItem.firstChild.nodeName === 'OL' || listItem.firstChild.nodeName === 'UL')) {
24989
+ listItem.style.listStyleType = 'none';
24990
+ }
24991
+ const parentElement = listItem.parentElement;
24992
+ if (!isNullOrUndefined(parentElement) && parentElement.nodeName !== 'OL' && parentElement.nodeName !== 'UL') {
24993
+ if (isNullOrUndefined(nearestListItem)) {
24994
+ nearestListItem = parentElement.closest('li');
24995
+ }
24996
+ if (!isNullOrUndefined(nearestListItem)) {
24997
+ const nextSibling = listItem.nextSibling;
24998
+ if (!isNullOrUndefined(nextSibling) && nextSibling.nodeName !== 'LI') {
24999
+ const startIndex = Array.prototype.indexOf.call(parentElement.childNodes, nextSibling);
25000
+ const clonedParent = parentElement.cloneNode(false);
25001
+ const totalChildren = parentElement.childNodes.length;
25002
+ for (let i = startIndex; i < totalChildren; i++) {
25003
+ clonedParent.appendChild(parentElement.childNodes[startIndex]);
25004
+ }
25005
+ if (clonedParent.childNodes.length > 0) {
25006
+ const newListItem = document.createElement('li');
25007
+ newListItem.appendChild(clonedParent);
25008
+ nearestListItem.insertAdjacentElement('afterend', newListItem);
25009
+ }
25010
+ else {
25011
+ clonedParent.remove();
25012
+ }
24958
25013
  }
24959
- });
25014
+ const closestList = parentElement.closest('ol, ul');
25015
+ nearestListItem.insertAdjacentElement('afterend', listItem);
25016
+ nearestListItem = nearestListItem.nextSibling;
25017
+ this.removeEmptyElements(closestList);
25018
+ hasListCleanUp = true;
25019
+ }
25020
+ }
25021
+ const nestedLi = Array.from(listItem.children).find((child) => child.tagName === 'LI' && (child.parentElement && child.parentElement.tagName !== 'OL' && child.parentElement.tagName !== 'UL'));
25022
+ if (nestedLi && listItem.parentNode) {
25023
+ listItem.parentNode.replaceChild(nestedLi, listItem);
25024
+ hasListCleanUp = true;
24960
25025
  }
25026
+ });
25027
+ return hasListCleanUp;
25028
+ }
25029
+ static cleanUpListContainer(parentList) {
25030
+ let hasListContainerCleanUp = false;
25031
+ let nonLiElementCollection = [];
25032
+ const replacements = [];
25033
+ if (!isNullOrUndefined(parentList)) {
25034
+ parentList.childNodes.forEach((childNode) => {
25035
+ if (childNode.nodeName.toLocaleUpperCase() !== 'LI') {
25036
+ nonLiElementCollection.push(childNode);
25037
+ }
25038
+ if ((childNode.nodeName.toLocaleUpperCase() === 'LI' || parentList.lastChild === childNode) && nonLiElementCollection.length > 0) {
25039
+ replacements.push({ elements: [...nonLiElementCollection] });
25040
+ nonLiElementCollection = [];
25041
+ }
25042
+ });
25043
+ replacements.forEach(({ elements }) => {
25044
+ const newListItem = document.createElement('li');
25045
+ elements[0].parentNode.replaceChild(newListItem, elements[0]);
25046
+ elements.forEach((child) => newListItem.appendChild(child));
25047
+ if (newListItem.textContent && newListItem.textContent.trim() === '') {
25048
+ parentList.removeChild(newListItem);
25049
+ }
25050
+ hasListContainerCleanUp = true;
25051
+ });
24961
25052
  }
25053
+ return hasListContainerCleanUp;
24962
25054
  }
24963
25055
  static placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode) {
24964
25056
  lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNullOrUndefined(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode
@@ -25172,7 +25264,8 @@ class InsertHtml {
25172
25264
  while (el && el.nodeType === 1) {
25173
25265
  if (el.parentNode === editNode ||
25174
25266
  (!isNullOrUndefined(el.parentNode.tagName) &&
25175
- IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1)) {
25267
+ (IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1
25268
+ || ALLOWED_TABLE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1))) {
25176
25269
  return el;
25177
25270
  }
25178
25271
  el = el.parentNode;
@@ -25949,8 +26042,14 @@ class ImageCommand {
25949
26042
  (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);
25950
26043
  const onImageLoadEvent = () => {
25951
26044
  if (!isNullOrUndefined(this.parent.currentDocument)) {
25952
- imgElm.setAttribute('width', imgElm.offsetWidth.toString());
25953
- imgElm.setAttribute('height', imgElm.offsetHeight.toString());
26045
+ const imgWidth = imgElm.getAttribute('width');
26046
+ const imgHeight = imgElm.getAttribute('height');
26047
+ if (isNullOrUndefined(imgWidth) || imgWidth === 'auto') {
26048
+ imgElm.setAttribute('width', imgElm.offsetWidth.toString());
26049
+ }
26050
+ if (isNullOrUndefined(imgHeight) || imgHeight === 'auto') {
26051
+ imgElm.setAttribute('height', imgElm.offsetHeight.toString());
26052
+ }
25954
26053
  e.callBack({
25955
26054
  requestType: (e.value === 'Replace') ? (e.item.subCommand = 'Replace', 'Replace') : 'Images',
25956
26055
  editorMode: 'HTML',
@@ -32033,7 +32132,11 @@ class HtmlEditor {
32033
32132
  isTableClassAdded() {
32034
32133
  const tableElement = this.parent.inputElement.querySelectorAll('table');
32035
32134
  for (let i = 0; i < tableElement.length; i++) {
32036
- if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')) {
32135
+ // e-rte-table class is added to the table element for styling.
32136
+ // e-rte-paste-table class is added for pasted table element from MS Word and other sources such as Web will not have any styles.
32137
+ // e-rte-custom-table class is added for custom table element will not have any styles.
32138
+ if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')
32139
+ && !tableElement[i].classList.contains('e-rte-custom-table')) {
32037
32140
  tableElement[i].classList.add('e-rte-table');
32038
32141
  }
32039
32142
  }
@@ -33855,6 +33958,9 @@ class PasteCleanup {
33855
33958
  const tableElement = element.querySelectorAll('table');
33856
33959
  for (let i = 0; i < tableElement.length; i++) {
33857
33960
  const isMSTeamsTable = tableElement[i].parentElement.nodeName === 'FIGURE';
33961
+ if (tableElement[i].classList.length > 0 && tableElement[i].classList.contains('e-rte-custom-table')) {
33962
+ continue; // Skip the custom table class
33963
+ }
33858
33964
  if (this.parent.pasteCleanupSettings.keepFormat && source && !isMSTeamsTable) {
33859
33965
  tableElement[i].classList.add('e-rte-paste-' + source + '-table');
33860
33966
  }
@@ -40342,5 +40448,5 @@ RichTextEditor = __decorate$5([
40342
40448
  NotifyPropertyChanges
40343
40449
  ], RichTextEditor);
40344
40450
 
40345
- export { ACTION, ALIGNMENT_TYPE, ALLOWED_ACTIONKEYS, AUDIO, Alignments, Audio, AudioCommand, BLOCKQUOTE_LIST_HANDLE, BLOCK_TAGS, BaseQuickToolbar, BaseToolbar, CLASS_AUDIO, CLASS_AUDIO_BREAK, CLASS_AUDIO_FOCUS, CLASS_AUDIO_INLINE, CLASS_AUDIO_WRAP, CLASS_CAPTION, CLASS_CAPTION_INLINE, CLASS_CLICK_ELEM, CLASS_EMBED_VIDEO_WRAP, CLASS_IMAGE_BREAK, CLASS_IMAGE_CENTER, CLASS_IMAGE_INLINE, CLASS_IMAGE_LEFT, CLASS_IMAGE_RIGHT, CLASS_RTE_CAPTION, CLASS_VIDEO, CLASS_VIDEO_BREAK, CLASS_VIDEO_CENTER, CLASS_VIDEO_CLICK_ELEM, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, CLASS_VIDEO_LEFT, CLASS_VIDEO_RIGHT, CLASS_VIDEO_WRAP, CLEAR_COMMAND, CLEAR_TYPE, CLS_ACTIVE, CLS_ALIGN_TB_BTN, CLS_AUDIOBREAK, CLS_AUDIOINLINE, CLS_AUDIOWRAP, CLS_AUD_FOCUS, CLS_BACK, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_PICKER, CLS_BACKGROUND_COLOR_TARGET, CLS_BULLETFORMATLIST_TB_BTN, CLS_CAPINLINE, CLS_CAPTION, CLS_CLICKELEM, CLS_COLOR_CONTENT, CLS_COLOR_PALETTE, CLS_CONTENT, CLS_COUNT, CLS_CUSTOM_TILE, CLS_DISABLED, CLS_DROPAREA, CLS_DROPDOWN_BTN, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_POPUP, CLS_ERROR, CLS_EXPAND_OPEN, CLS_FOCUS, CLS_FONT_COLOR_DROPDOWN, CLS_FONT_COLOR_PICKER, CLS_FONT_COLOR_TARGET, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FULL_SCREEN, CLS_HIDE, CLS_HR_SEPARATOR, CLS_ICONS, CLS_IMAGE_POP, CLS_IMGBREAK, CLS_IMGCENTER, CLS_IMGINLINE, CLS_IMGLEFT, CLS_IMGRIGHT, CLS_IMG_FOCUS, CLS_IMG_INNER, CLS_IMG_RESIZE, CLS_INLINE, CLS_INLINE_DROPDOWN, CLS_INLINE_POP, CLS_LIST_PRIMARY_CONTENT, CLS_MAXIMIZE, CLS_MINIMIZE, CLS_NOCOLOR_ITEM, CLS_NUMBERFORMATLIST_TB_BTN, CLS_POP, CLS_POPUP, CLS_POPUP_OPEN, CLS_QUICK_DROPDOWN, CLS_QUICK_POP, CLS_QUICK_TB, CLS_RESIZE, CLS_RM_WHITE_SPACE, CLS_RTE, CLS_RTE_CAPTION, CLS_RTE_CONTAINER, CLS_RTE_CONTENT, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_DRAG_IMAGE, CLS_RTE_ELEMENTS, CLS_RTE_EXPAND_TB, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_HIDDEN, CLS_RTE_IMAGE, CLS_RTE_PASTE_CANCEL, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_READONLY, CLS_RTE_RES_CNT, CLS_RTE_RES_EAST, CLS_RTE_RES_HANDLE, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, CLS_RTE_TABLE_RESIZE, CLS_RTE_TB_ENABLED, CLS_RTE_UPLOAD_POPUP, CLS_RTL, CLS_SCRIPT_SHEET, CLS_SEPARATOR, CLS_SHOW, CLS_STYLE_SHEET, CLS_TABLE, CLS_TABLE_BORDER, CLS_TABLE_MULTI_CELL, CLS_TABLE_SEL, CLS_TABLE_SEL_END, CLS_TB_ALT_BOR, CLS_TB_BOX_RES, CLS_TB_BTN, CLS_TB_COL_RES, CLS_TB_DASH_BOR, CLS_TB_EXTENDED, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_INLINE, CLS_TB_IOS_FIX, CLS_TB_ITEM, CLS_TB_ROW_RES, CLS_TB_STATIC, CLS_TB_WRAP, CLS_TEXT_POP, CLS_TEXT_QUICK_TB, CLS_TOOLBAR, CLS_UPLOAD_FILES, CLS_VIDEOBREAK, CLS_VIDEOINLINE, CLS_VIDEOWRAP, CLS_VID_CLICK_ELEM, CLS_VID_FOCUS, CLS_VISIBLE, CLS_WARNING, ClearFormat, ClearFormatExec, ColorPickerInput, ContentRender, Count, DEFAULT_TAG, DELETECOLUMN, DELETEROW, DESTROY, DOMNode, DialogRenderer, DialogType, DropDownButtons, EMOJI_PICKER_ACTIONS, EditorManager, EmojiPicker, EmojiPickerAction, ExecCommandCallBack, FORMAT_PAINTER_ACTIONS, FORMAT_TYPE, FileManager, FormatPainter, FormatPainterActions, Formats, Formatter, FullScreen, HTMLFormatter, HtmlEditor, HtmlToolbarStatus, IGNORE_BLOCK_TAGS, IMAGE, INDENT_TYPE, INSERTHTML_TYPE, INSERT_COLUMN, INSERT_ROW, INSERT_TEXT_COMMAND, INSERT_TEXT_TYPE, INTERNAL_DESTROY, IframeContentRender, Image$1 as Image, ImageCommand, ImageInputSource, ImportExport, Indents, InsertHtml, InsertHtmlExec, InsertMethods, InsertTextExec, IsFormatted, KEY_DOWN, KEY_DOWN_HANDLER, KEY_UP, KEY_UP_HANDLER, KeyboardEvents, LINK, LINK_COMMAND, LISTS_COMMAND, LIST_TYPE, Link, LinkCommand, Lists, MDFormats, MDLink, MDLists, MDSelectionFormats, MDTable, MD_TABLE, MODEL_CHANGED, MODEL_CHANGED_PLUGIN, MOUSE_DOWN, MS_WORD_CLEANUP, MS_WORD_CLEANUP_PLUGIN, MarkdownEditor, MarkdownFormatter, MarkdownParser, MarkdownRender, MarkdownSelection, MarkdownToolbarStatus, MsWordPaste, NodeCutter, NodeSelection, ON_BEGIN, PASTE_SOURCE, PasteCleanup, PopupRenderer, QuickToolbar, REMOVETABLE, Render, RenderType, RendererFactory, Resize, RichTextEditor, SELECTION_TYPE, SELF_CLOSING_TAGS, SPACE_ACTION, SelectionBasedExec, SelectionCommands, ServiceLocator, SlashMenu, TABLE, TABLEHEADER, TABLE_BLOCK_TAGS, TABLE_HORIZONTAL_SPLIT, TABLE_MERGE, TABLE_MOVE, TABLE_VERTICAL_ALIGN, TABLE_VERTICAL_SPLIT, Table, TableCommand, Toolbar, ToolbarAction, ToolbarRenderer, ToolbarStatus, ToolbarType, UndoRedoCommands, UndoRedoManager, VIDEO, Video, VideoCommand, ViewSource, XhtmlValidation, actionBegin, actionComplete, actionSuccess, afterImageDelete, afterKeyDown, afterMediaDelete, afterPasteCleanup, audioDelete, audioToolbarAction, autoResize, beforeDialogClose, beforeDialogOpen, beforeDropDownItemRender, beforeDropDownOpen, beforeFileUpload, beforeImageDrop, beforeImageUpload, beforePasteCleanup, beforeQuickToolbarOpen, bindCssClass, bindOnEnd, blockEmptyNodes, checkUndo, cleanupResizeElements, clearDialogObj, closeAudioDialog, closeImageDialog, closeLinkDialog, closeTableDialog, closeTooltip, closeVideoDialog, colorPickerChanged, contentBlur, contentChanged, contentFocus, contentscroll, conversionFactors, convertToBlob, count, createTable, created, decode, destroy, destroyTooltip, destroyed, dialogClose, dialogOpen, disableFullScreen, dispatchEvent, docClick, documentClickClosedBy, drop, dropDownSelect, dynamicModule, editAreaClick, editLink, emojiPicker, enableFullScreen, enterHandler, execCommandCallBack, executeGroup, expandPopupClick, fileRemoving, fileSelected, fileUploadFailed, fileUploadSuccess, fileUploading, focusChange, formatPainterClick, formatPainterDoubleClick, getCollection, getDefaultValue, getDropDownValue, getEditValue, getFormattedFontSize, getIndex, getLocaleFontFormat, getSelectedHtml, getTBarItemsIndex, getTextNodesUnder, getTooltipText, hasClass, hidePopup, htmlKeyConfig, htmlToolbarClick, iframeMouseDown, iframeResizeFactor, imageAlt, imageBreak, imageCaption, imageCenter, imageDelete, imageInline, imageLeft, imageLink, imageRemoving, imageResizeFactor, imageRight, imageSelected, imageSize, imageToolbarAction, imageUploadFailed, imageUploadSuccess, imageUploading, imgModule, initialEnd, initialLoad, inlineEmptyNodes, insertAudio, insertCompleted, insertImage, insertLink, insertVideo, isEditableValueEmpty, isIDevice, keyDown, keyUp, linkToolbarAction, listConversionFilters, load, markdownFormatTags, markdownKeyConfig, markdownListsTags, markdownSelectionTags, markdownToolbarClick, markerClassName, mentionRestrictKeys, modelChanged, mouseDown, mouseUp, onExport, onHandleFontsizeChange, onImport, onResize, openLink, pageYOffset, parseHtml, paste, pasteClean, pasteCleanupGroupingTags, popupHide, quickToolbarClose, quickToolbarOpen, readOnlyMode, redo, refreshBegin, renderFileManager, renderInlineToolbar, resizeInitialized, resizeStart, resizeStop, rtlMode, sanitizeHelper, scroll, selectAll, selectRange, selectionCommand, selectionRestore, selectionSave, selfClosingTags, setAttributes, setToolbarStatus, showAudioDialog, showColorPicker, showImageDialog, showLinkDialog, showTableDialog, showVideoDialog, sourceCode, sourceCodeMouseDown, statusCollection, supportedUnits, tableColorPickerChanged, tableModulekeyUp, tableToolbarAction, tableclass, toObjectLowerCase, toolbarClick, toolbarCreated, toolbarOpen, toolbarRefresh, toolbarRenderComplete, toolbarUpdated, unLink, undo, updateDropDownFontFormatLocale, updateSource, updateTbItemsStatus, updateTextNode, updateToolbarItem, updateUndoRedoStatus, updateValueOnIdle, updatedToolbarStatus, videoDelete, videoSize, videoToolbarAction, windowResize, xhtmlValidation };
40451
+ export { ACTION, ALIGNMENT_TYPE, ALLOWED_ACTIONKEYS, ALLOWED_TABLE_BLOCK_TAGS, AUDIO, Alignments, Audio, AudioCommand, BLOCKQUOTE_LIST_HANDLE, BLOCK_TAGS, BaseQuickToolbar, BaseToolbar, CLASS_AUDIO, CLASS_AUDIO_BREAK, CLASS_AUDIO_FOCUS, CLASS_AUDIO_INLINE, CLASS_AUDIO_WRAP, CLASS_CAPTION, CLASS_CAPTION_INLINE, CLASS_CLICK_ELEM, CLASS_EMBED_VIDEO_WRAP, CLASS_IMAGE_BREAK, CLASS_IMAGE_CENTER, CLASS_IMAGE_INLINE, CLASS_IMAGE_LEFT, CLASS_IMAGE_RIGHT, CLASS_RTE_CAPTION, CLASS_VIDEO, CLASS_VIDEO_BREAK, CLASS_VIDEO_CENTER, CLASS_VIDEO_CLICK_ELEM, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, CLASS_VIDEO_LEFT, CLASS_VIDEO_RIGHT, CLASS_VIDEO_WRAP, CLEAR_COMMAND, CLEAR_TYPE, CLS_ACTIVE, CLS_ALIGN_TB_BTN, CLS_AUDIOBREAK, CLS_AUDIOINLINE, CLS_AUDIOWRAP, CLS_AUD_FOCUS, CLS_BACK, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_PICKER, CLS_BACKGROUND_COLOR_TARGET, CLS_BULLETFORMATLIST_TB_BTN, CLS_CAPINLINE, CLS_CAPTION, CLS_CLICKELEM, CLS_COLOR_CONTENT, CLS_COLOR_PALETTE, CLS_CONTENT, CLS_COUNT, CLS_CUSTOM_TILE, CLS_DISABLED, CLS_DROPAREA, CLS_DROPDOWN_BTN, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_POPUP, CLS_ERROR, CLS_EXPAND_OPEN, CLS_FOCUS, CLS_FONT_COLOR_DROPDOWN, CLS_FONT_COLOR_PICKER, CLS_FONT_COLOR_TARGET, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FULL_SCREEN, CLS_HIDE, CLS_HR_SEPARATOR, CLS_ICONS, CLS_IMAGE_POP, CLS_IMGBREAK, CLS_IMGCENTER, CLS_IMGINLINE, CLS_IMGLEFT, CLS_IMGRIGHT, CLS_IMG_FOCUS, CLS_IMG_INNER, CLS_IMG_RESIZE, CLS_INLINE, CLS_INLINE_DROPDOWN, CLS_INLINE_POP, CLS_LIST_PRIMARY_CONTENT, CLS_MAXIMIZE, CLS_MINIMIZE, CLS_NOCOLOR_ITEM, CLS_NUMBERFORMATLIST_TB_BTN, CLS_POP, CLS_POPUP, CLS_POPUP_OPEN, CLS_QUICK_DROPDOWN, CLS_QUICK_POP, CLS_QUICK_TB, CLS_RESIZE, CLS_RM_WHITE_SPACE, CLS_RTE, CLS_RTE_CAPTION, CLS_RTE_CONTAINER, CLS_RTE_CONTENT, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_DRAG_IMAGE, CLS_RTE_ELEMENTS, CLS_RTE_EXPAND_TB, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_HIDDEN, CLS_RTE_IMAGE, CLS_RTE_PASTE_CANCEL, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_READONLY, CLS_RTE_RES_CNT, CLS_RTE_RES_EAST, CLS_RTE_RES_HANDLE, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, CLS_RTE_TABLE_RESIZE, CLS_RTE_TB_ENABLED, CLS_RTE_UPLOAD_POPUP, CLS_RTL, CLS_SCRIPT_SHEET, CLS_SEPARATOR, CLS_SHOW, CLS_STYLE_SHEET, CLS_TABLE, CLS_TABLE_BORDER, CLS_TABLE_MULTI_CELL, CLS_TABLE_SEL, CLS_TABLE_SEL_END, CLS_TB_ALT_BOR, CLS_TB_BOX_RES, CLS_TB_BTN, CLS_TB_COL_RES, CLS_TB_DASH_BOR, CLS_TB_EXTENDED, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_INLINE, CLS_TB_IOS_FIX, CLS_TB_ITEM, CLS_TB_ROW_RES, CLS_TB_STATIC, CLS_TB_WRAP, CLS_TEXT_POP, CLS_TEXT_QUICK_TB, CLS_TOOLBAR, CLS_UPLOAD_FILES, CLS_VIDEOBREAK, CLS_VIDEOINLINE, CLS_VIDEOWRAP, CLS_VID_CLICK_ELEM, CLS_VID_FOCUS, CLS_VISIBLE, CLS_WARNING, ClearFormat, ClearFormatExec, ColorPickerInput, ContentRender, Count, DEFAULT_TAG, DELETECOLUMN, DELETEROW, DESTROY, DOMNode, DialogRenderer, DialogType, DropDownButtons, EMOJI_PICKER_ACTIONS, EditorManager, EmojiPicker, EmojiPickerAction, ExecCommandCallBack, FORMAT_PAINTER_ACTIONS, FORMAT_TYPE, FileManager, FormatPainter, FormatPainterActions, Formats, Formatter, FullScreen, HTMLFormatter, HtmlEditor, HtmlToolbarStatus, IGNORE_BLOCK_TAGS, IMAGE, INDENT_TYPE, INSERTHTML_TYPE, INSERT_COLUMN, INSERT_ROW, INSERT_TEXT_COMMAND, INSERT_TEXT_TYPE, INTERNAL_DESTROY, IframeContentRender, Image$1 as Image, ImageCommand, ImageInputSource, ImportExport, Indents, InsertHtml, InsertHtmlExec, InsertMethods, InsertTextExec, IsFormatted, KEY_DOWN, KEY_DOWN_HANDLER, KEY_UP, KEY_UP_HANDLER, KeyboardEvents, LINK, LINK_COMMAND, LISTS_COMMAND, LIST_TYPE, Link, LinkCommand, Lists, MDFormats, MDLink, MDLists, MDSelectionFormats, MDTable, MD_TABLE, MODEL_CHANGED, MODEL_CHANGED_PLUGIN, MOUSE_DOWN, MS_WORD_CLEANUP, MS_WORD_CLEANUP_PLUGIN, MarkdownEditor, MarkdownFormatter, MarkdownParser, MarkdownRender, MarkdownSelection, MarkdownToolbarStatus, MsWordPaste, NodeCutter, NodeSelection, ON_BEGIN, PASTE_SOURCE, PasteCleanup, PopupRenderer, QuickToolbar, REMOVETABLE, Render, RenderType, RendererFactory, Resize, RichTextEditor, SELECTION_TYPE, SELF_CLOSING_TAGS, SPACE_ACTION, SelectionBasedExec, SelectionCommands, ServiceLocator, SlashMenu, TABLE, TABLEHEADER, TABLE_BLOCK_TAGS, TABLE_HORIZONTAL_SPLIT, TABLE_MERGE, TABLE_MOVE, TABLE_VERTICAL_ALIGN, TABLE_VERTICAL_SPLIT, Table, TableCommand, Toolbar, ToolbarAction, ToolbarRenderer, ToolbarStatus, ToolbarType, UndoRedoCommands, UndoRedoManager, VIDEO, Video, VideoCommand, ViewSource, XhtmlValidation, actionBegin, actionComplete, actionSuccess, afterImageDelete, afterKeyDown, afterMediaDelete, afterPasteCleanup, audioDelete, audioToolbarAction, autoResize, beforeDialogClose, beforeDialogOpen, beforeDropDownItemRender, beforeDropDownOpen, beforeFileUpload, beforeImageDrop, beforeImageUpload, beforePasteCleanup, beforeQuickToolbarOpen, bindCssClass, bindOnEnd, blockEmptyNodes, checkUndo, cleanupResizeElements, clearDialogObj, closeAudioDialog, closeImageDialog, closeLinkDialog, closeTableDialog, closeTooltip, closeVideoDialog, colorPickerChanged, contentBlur, contentChanged, contentFocus, contentscroll, conversionFactors, convertToBlob, count, createTable, created, decode, destroy, destroyTooltip, destroyed, dialogClose, dialogOpen, disableFullScreen, dispatchEvent, docClick, documentClickClosedBy, drop, dropDownSelect, dynamicModule, editAreaClick, editLink, emojiPicker, enableFullScreen, enterHandler, execCommandCallBack, executeGroup, expandPopupClick, fileRemoving, fileSelected, fileUploadFailed, fileUploadSuccess, fileUploading, focusChange, formatPainterClick, formatPainterDoubleClick, getCollection, getDefaultValue, getDropDownValue, getEditValue, getFormattedFontSize, getIndex, getLocaleFontFormat, getSelectedHtml, getTBarItemsIndex, getTextNodesUnder, getTooltipText, hasClass, hidePopup, htmlKeyConfig, htmlToolbarClick, iframeMouseDown, imageAlt, imageBreak, imageCaption, imageCenter, imageDelete, imageInline, imageLeft, imageLink, imageRemoving, imageResizeFactor, imageRight, imageSelected, imageSize, imageToolbarAction, imageUploadFailed, imageUploadSuccess, imageUploading, imgModule, initialEnd, initialLoad, inlineEmptyNodes, insertAudio, insertCompleted, insertImage, insertLink, insertVideo, isEditableValueEmpty, isIDevice, keyDown, keyUp, linkToolbarAction, listConversionFilters, load, markdownFormatTags, markdownKeyConfig, markdownListsTags, markdownSelectionTags, markdownToolbarClick, markerClassName, mentionRestrictKeys, modelChanged, mouseDown, mouseUp, onExport, onHandleFontsizeChange, onImport, onResize, openLink, pageYOffset, parseHtml, paste, pasteClean, pasteCleanupGroupingTags, popupHide, quickToolbarClose, quickToolbarOpen, readOnlyMode, redo, refreshBegin, renderFileManager, renderInlineToolbar, resizeInitialized, resizeStart, resizeStop, rtlMode, sanitizeHelper, scroll, selectAll, selectRange, selectionCommand, selectionRestore, selectionSave, selfClosingTags, setAttributes, setToolbarStatus, showAudioDialog, showColorPicker, showImageDialog, showLinkDialog, showTableDialog, showVideoDialog, sourceCode, sourceCodeMouseDown, statusCollection, supportedUnits, tableColorPickerChanged, tableModulekeyUp, tableToolbarAction, tableclass, toObjectLowerCase, toolbarClick, toolbarCreated, toolbarOpen, toolbarRefresh, toolbarRenderComplete, toolbarUpdated, unLink, undo, updateDropDownFontFormatLocale, updateSource, updateTbItemsStatus, updateTextNode, updateToolbarItem, updateUndoRedoStatus, updateValueOnIdle, updatedToolbarStatus, videoDelete, videoSize, videoToolbarAction, windowResize, xhtmlValidation };
40346
40452
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map