@syncfusion/ej2-richtexteditor 27.1.58 → 27.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 (34) 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 +224 -87
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +214 -64
  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/editor-manager/plugin/nodecutter.js +2 -2
  25. package/src/rich-text-editor/actions/enter-key.js +10 -2
  26. package/src/rich-text-editor/actions/html-editor.js +14 -2
  27. package/src/rich-text-editor/actions/paste-clean-up.js +3 -0
  28. package/src/rich-text-editor/actions/toolbar.js +7 -0
  29. package/src/rich-text-editor/models/default-locale.js +5 -5
  30. package/src/rich-text-editor/renderer/image-module.js +12 -7
  31. package/src/rich-text-editor/renderer/slash-menu.js +9 -0
  32. package/src/rich-text-editor/renderer/table-module.js +1 -1
  33. package/src/selection/selection.d.ts +2 -1
  34. package/src/selection/selection.js +15 -12
@@ -3055,11 +3055,11 @@ let formatsLocale = [
3055
3055
  let numberFormatListLocale = [
3056
3056
  { locale: 'numberFormatListNone', value: 'none' },
3057
3057
  { locale: 'numberFormatListNumber', value: 'decimal' },
3058
- { locale: 'numberFormatListLowerAlpha', value: 'lower-alpha' },
3059
- { locale: 'numberFormatListUpperAlpha', value: 'upper-alpha' },
3060
- { locale: 'numberFormatListLowerRoman', value: 'lower-roman' },
3061
- { locale: 'numberFormatListUpperRoman', value: 'upper-roman' },
3062
- { locale: 'numberFormatListLowerGreek', value: 'lower-greek' }
3058
+ { locale: 'numberFormatListLowerAlpha', value: 'lowerAlpha' },
3059
+ { locale: 'numberFormatListUpperAlpha', value: 'upperAlpha' },
3060
+ { locale: 'numberFormatListLowerRoman', value: 'lowerRoman' },
3061
+ { locale: 'numberFormatListUpperRoman', value: 'upperRoman' },
3062
+ { locale: 'numberFormatListLowerGreek', value: 'lowerGreek' }
3063
3063
  ];
3064
3064
  let bulletFormatListLocale = [
3065
3065
  { locale: 'bulletFormatListNone', value: 'none' },
@@ -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) {
@@ -8752,9 +8745,17 @@ class Image$1 {
8752
8745
  }
8753
8746
  };
8754
8747
  proxy.inputUrl.setAttribute('disabled', 'true');
8755
- if (isNullOrUndefined(proxy.parent.insertImageSettings.saveUrl) && this.isAllowedTypes
8756
- && !isNullOrUndefined(this.dialogObj) && selectArgs.filesData[0].size <= this.uploadObj.maxFileSize) {
8757
- this.dialogObj.getButtons(0).element.removeAttribute('disabled');
8748
+ if (!isNullOrUndefined(this.dialogObj)) {
8749
+ const button = this.dialogObj.getButtons(0);
8750
+ if (!isNullOrUndefined(button)) {
8751
+ if (isNullOrUndefined(proxy.parent.insertImageSettings.saveUrl) && this.isAllowedTypes
8752
+ && selectArgs.filesData[0].size <= this.uploadObj.maxFileSize) {
8753
+ button.element.removeAttribute('disabled');
8754
+ }
8755
+ else {
8756
+ button.element.setAttribute('disabled', 'true');
8757
+ }
8758
+ }
8758
8759
  }
8759
8760
  });
8760
8761
  reader.readAsDataURL(selectArgs.filesData[0].rawFile);
@@ -13411,7 +13412,7 @@ class Table {
13411
13412
  return;
13412
13413
  }
13413
13414
  const target = e.target || e.targetTouches[0].target;
13414
- const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table');
13415
+ const closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table, table.e-rte-custom-table');
13415
13416
  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
13417
  if (!isResizing && !isNullOrUndefined(this.curTable) && !isNullOrUndefined(closestTable) && closestTable !== this.curTable &&
13417
13418
  this.parent.contentModule.getEditPanel().contains(closestTable)) {
@@ -14658,6 +14659,10 @@ class DialogRenderer {
14658
14659
  const IFRAME_EDITOR_STYLES = `
14659
14660
  @charset "UTF-8";
14660
14661
 
14662
+ * {
14663
+ box-sizing: border-box;
14664
+ }
14665
+
14661
14666
  html {
14662
14667
  height: auto;
14663
14668
  }
@@ -14673,7 +14678,6 @@ body {
14673
14678
 
14674
14679
  .e-content {
14675
14680
  background: unset;
14676
- box-sizing: border-box;
14677
14681
  min-height: 100px;
14678
14682
  outline: 0 solid transparent;
14679
14683
  padding: 16px;
@@ -14802,18 +14806,6 @@ body {
14802
14806
  list-style-type: square;
14803
14807
  }
14804
14808
 
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
14809
  .e-content p:last-child,
14818
14810
  .e-content pre:last-child,
14819
14811
  .e-content blockquote:last-child {
@@ -14865,7 +14857,6 @@ table .e-cell-select {
14865
14857
  height: 20px;
14866
14858
  min-width: 20px;
14867
14859
  padding: 2px 5px;
14868
- box-sizing: border-box;
14869
14860
  }
14870
14861
 
14871
14862
  .e-rte-table td.e-cell-select.e-multi-cells-select,
@@ -14906,12 +14897,14 @@ th.e-multi-cells-select {
14906
14897
  background-color: #F5F5F5;
14907
14898
  }
14908
14899
 
14909
- .e-rte-audio {
14900
+ .e-rte-image,
14901
+ .e-rte-audio,
14902
+ .e-rte-video {
14910
14903
  border: 0;
14911
14904
  cursor: pointer;
14912
14905
  display: block;
14913
14906
  float: none;
14914
- margin: 5px auto;
14907
+ margin: auto;
14915
14908
  max-width: 100%;
14916
14909
  position: relative;
14917
14910
  }
@@ -14919,11 +14912,11 @@ th.e-multi-cells-select {
14919
14912
  .e-rte-image.e-imginline,
14920
14913
  .e-rte-audio.e-audio-inline,
14921
14914
  .e-rte-video.e-video-inline {
14922
- display: inline-block;
14923
- float: none;
14924
14915
  margin-left: 5px;
14925
14916
  margin-right: 5px;
14926
- max-width: calc(100% - (2 * 5px));
14917
+ display: inline-block;
14918
+ float: none;
14919
+ max-width: 100%;
14927
14920
  padding: 1px;
14928
14921
  vertical-align: bottom;
14929
14922
  }
@@ -14954,17 +14947,15 @@ th.e-multi-cells-select {
14954
14947
  text-align: left;
14955
14948
  }
14956
14949
 
14957
- .e-img-caption {
14950
+ .e-rte-img-caption {
14958
14951
  display: inline-block;
14959
- float: none;
14960
14952
  margin: 5px auto;
14961
14953
  max-width: 100%;
14962
14954
  position: relative;
14963
14955
  }
14964
14956
 
14965
- .e-img-caption.e-caption-inline {
14957
+ .e-rte-img-caption.e-caption-inline {
14966
14958
  display: inline-block;
14967
- float: none;
14968
14959
  margin: 5px auto;
14969
14960
  margin-left: 5px;
14970
14961
  margin-right: 5px;
@@ -14996,13 +14987,13 @@ th.e-multi-cells-select {
14996
14987
  display: contents;
14997
14988
  }
14998
14989
 
14999
- .e-img-inner {
15000
- box-sizing: border-box;
14990
+ .e-rte-img-caption .e-img-inner {
15001
14991
  display: block;
15002
14992
  font-size: 16px;
15003
14993
  font-weight: initial;
15004
14994
  margin: auto;
15005
14995
  opacity: .9;
14996
+ position: relative;
15006
14997
  text-align: center;
15007
14998
  width: 100%;
15008
14999
  }
@@ -15052,7 +15043,6 @@ th.e-multi-cells-select {
15052
15043
  float: none;
15053
15044
  margin-left: 5px;
15054
15045
  margin-right: 5px;
15055
- max-width: calc(100% - (2 * 5px));
15056
15046
  vertical-align: bottom;
15057
15047
  }
15058
15048
 
@@ -15799,6 +15789,15 @@ class SlashMenu {
15799
15789
  break;
15800
15790
  }
15801
15791
  }
15792
+ else {
15793
+ if (this.parent.inputElement.classList.contains('e-mention')) {
15794
+ const slashMenuPopup = this.parent.inputElement.ownerDocument.getElementById(this.parent.inputElement.id + '_slash_menu_popup');
15795
+ const isSlashMenuPopupOpen = slashMenuPopup && slashMenuPopup.classList.contains('e-popup-open');
15796
+ if (isSlashMenuPopupOpen) {
15797
+ this.mention.hidePopup();
15798
+ }
15799
+ }
15800
+ }
15802
15801
  }
15803
15802
  });
15804
15803
  }
@@ -17077,6 +17076,13 @@ class Toolbar {
17077
17076
  target: this.tbElement,
17078
17077
  cssClass: this.parent.getCssClass()
17079
17078
  });
17079
+ if (this.parent.element.classList.contains('e-rte-full-screen')) {
17080
+ this.updateItem({
17081
+ targetItem: 'Maximize',
17082
+ updateItem: 'Minimize',
17083
+ baseToolbar: this.parent.getBaseToolbarObject()
17084
+ });
17085
+ }
17080
17086
  if (!this.parent.inlineMode.enable) {
17081
17087
  if (this.parent.toolbarSettings.enableFloating) {
17082
17088
  this.checkIsTransformChild();
@@ -23879,7 +23885,7 @@ class NodeCutter {
23879
23885
  fragment = this.spliceEmptyNode(fragment, false);
23880
23886
  if (fragment && fragment.childNodes.length > 0) {
23881
23887
  const isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG' && !(fragment.querySelectorAll('img').length > 0)
23882
- && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent !== ' ' && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23888
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent.charCodeAt(0) !== 32 && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23883
23889
  if (!isEmpty) {
23884
23890
  if (node) {
23885
23891
  InsertMethods.AppendBefore(fragment, node);
@@ -23900,7 +23906,7 @@ class NodeCutter {
23900
23906
  fragment = this.spliceEmptyNode(fragment, true);
23901
23907
  if (fragment && fragment.childNodes.length > 0) {
23902
23908
  const isEmpty = (fragment.childNodes.length === 1 && fragment.childNodes[0].nodeName !== 'IMG'
23903
- && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent !== ' ' && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23909
+ && this.isRteElm(fragment) && fragment.textContent.trim() === '' && fragment.textContent.charCodeAt(0) !== 32 && fragment.textContent.charCodeAt(0) !== 160) ? true : false;
23904
23910
  if (!isEmpty) {
23905
23911
  if (node) {
23906
23912
  InsertMethods.AppendBefore(fragment, node, true);
@@ -24299,6 +24305,14 @@ class Formats {
24299
24305
  }
24300
24306
  applyFormats(e) {
24301
24307
  const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
24308
+ const tableCursor = this.parent.nodeSelection.processedTableImageCursor(range);
24309
+ if (tableCursor.start || tableCursor.end) {
24310
+ if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
24311
+ const tableNode = tableCursor.start ? tableCursor.startNode : tableCursor.endNode;
24312
+ this.applyTableSidesFormat(e, tableCursor.start, tableNode);
24313
+ return;
24314
+ }
24315
+ }
24302
24316
  let isSelectAll = false;
24303
24317
  if (this.parent.editableElement === range.endContainer &&
24304
24318
  !isNullOrUndefined(this.parent.editableElement.children[range.endOffset - 1]) &&
@@ -24547,6 +24561,23 @@ class Formats {
24547
24561
  element.style.removeProperty(ignoreAttr[i]);
24548
24562
  }
24549
24563
  }
24564
+ applyTableSidesFormat(e, start, table) {
24565
+ const formatNode = createElement(e.subCommand);
24566
+ if (!(e.enterAction === 'BR')) {
24567
+ formatNode.appendChild(createElement('br'));
24568
+ }
24569
+ table.insertAdjacentElement(start ? 'beforebegin' : 'afterend', formatNode);
24570
+ this.parent.nodeSelection.setCursorPoint(this.parent.currentDocument, formatNode, 0);
24571
+ if (e.callBack) {
24572
+ e.callBack({
24573
+ requestType: e.subCommand,
24574
+ editorMode: 'HTML',
24575
+ event: e.event,
24576
+ range: this.parent.nodeSelection.getRange(this.parent.currentDocument),
24577
+ elements: this.parent.domNode.blockNodes()
24578
+ });
24579
+ }
24580
+ }
24550
24581
  destroy() {
24551
24582
  this.removeEventListener();
24552
24583
  }
@@ -24653,7 +24684,12 @@ class InsertHtml {
24653
24684
  }
24654
24685
  }
24655
24686
  if (!isNullOrUndefined(sibNode) && !isNullOrUndefined(sibNode.parentNode)) {
24656
- InsertMethods.AppendBefore(node, sibNode, true);
24687
+ if (docElement.contains(sibNode)) {
24688
+ InsertMethods.AppendBefore(node, sibNode, true);
24689
+ }
24690
+ else {
24691
+ range.insertNode(node);
24692
+ }
24657
24693
  }
24658
24694
  else {
24659
24695
  let previousNode = null;
@@ -24941,24 +24977,95 @@ class InsertHtml {
24941
24977
  this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);
24942
24978
  }
24943
24979
  this.alignCheck(editNode);
24944
- const currentRange = nodeSelection.getRange(docElement);
24945
- this.listCleanUp(currentRange);
24980
+ this.listCleanUp(nodeSelection, docElement);
24946
24981
  }
24947
- static listCleanUp(range) {
24982
+ static listCleanUp(nodeSelection, docElement) {
24983
+ const range = nodeSelection.getRange(docElement);
24984
+ const startContainer = range.startContainer;
24985
+ const startOffset = range.startOffset;
24948
24986
  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);
24987
+ const haslistCleanUp = this.cleanUpListItems(range.startContainer.parentElement.closest('ol,ul'));
24988
+ const haslistContainerCleanUp = this.cleanUpListContainer(range.startContainer.parentElement.closest('ol,ul'));
24989
+ if (haslistCleanUp || haslistContainerCleanUp) {
24990
+ range.setStart(startContainer, startOffset);
24991
+ range.setEnd(startContainer, startOffset);
24992
+ }
24993
+ }
24994
+ }
24995
+ static cleanUpListItems(parentContainer) {
24996
+ let hasListCleanUp = false;
24997
+ const listItems = parentContainer.closest('ol, ul').querySelectorAll('li');
24998
+ if (listItems.length === 0) {
24999
+ return false;
25000
+ }
25001
+ let nearestListItem = null;
25002
+ listItems.forEach((listItem) => {
25003
+ if (!isNullOrUndefined(listItem.firstChild) && (listItem.firstChild.nodeName === 'OL' || listItem.firstChild.nodeName === 'UL')) {
25004
+ listItem.style.listStyleType = 'none';
25005
+ }
25006
+ const parentElement = listItem.parentElement;
25007
+ if (!isNullOrUndefined(parentElement) && parentElement.nodeName !== 'OL' && parentElement.nodeName !== 'UL') {
25008
+ if (isNullOrUndefined(nearestListItem)) {
25009
+ nearestListItem = parentElement.closest('li');
25010
+ }
25011
+ if (!isNullOrUndefined(nearestListItem)) {
25012
+ const nextSibling = listItem.nextSibling;
25013
+ if (!isNullOrUndefined(nextSibling) && nextSibling.nodeName !== 'LI') {
25014
+ const startIndex = Array.prototype.indexOf.call(parentElement.childNodes, nextSibling);
25015
+ const clonedParent = parentElement.cloneNode(false);
25016
+ const totalChildren = parentElement.childNodes.length;
25017
+ for (let i = startIndex; i < totalChildren; i++) {
25018
+ clonedParent.appendChild(parentElement.childNodes[startIndex]);
25019
+ }
25020
+ if (clonedParent.childNodes.length > 0) {
25021
+ const newListItem = document.createElement('li');
25022
+ newListItem.appendChild(clonedParent);
25023
+ nearestListItem.insertAdjacentElement('afterend', newListItem);
25024
+ }
25025
+ else {
25026
+ clonedParent.remove();
25027
+ }
24958
25028
  }
24959
- });
25029
+ const closestList = parentElement.closest('ol, ul');
25030
+ nearestListItem.insertAdjacentElement('afterend', listItem);
25031
+ nearestListItem = nearestListItem.nextSibling;
25032
+ this.removeEmptyElements(closestList);
25033
+ hasListCleanUp = true;
25034
+ }
24960
25035
  }
25036
+ const nestedLi = Array.from(listItem.children).find((child) => child.tagName === 'LI' && (child.parentElement && child.parentElement.tagName !== 'OL' && child.parentElement.tagName !== 'UL'));
25037
+ if (nestedLi && listItem.parentNode) {
25038
+ listItem.parentNode.replaceChild(nestedLi, listItem);
25039
+ hasListCleanUp = true;
25040
+ }
25041
+ });
25042
+ return hasListCleanUp;
25043
+ }
25044
+ static cleanUpListContainer(parentList) {
25045
+ let hasListContainerCleanUp = false;
25046
+ let nonLiElementCollection = [];
25047
+ const replacements = [];
25048
+ if (!isNullOrUndefined(parentList)) {
25049
+ parentList.childNodes.forEach((childNode) => {
25050
+ if (childNode.nodeName.toLocaleUpperCase() !== 'LI') {
25051
+ nonLiElementCollection.push(childNode);
25052
+ }
25053
+ if ((childNode.nodeName.toLocaleUpperCase() === 'LI' || parentList.lastChild === childNode) && nonLiElementCollection.length > 0) {
25054
+ replacements.push({ elements: [...nonLiElementCollection] });
25055
+ nonLiElementCollection = [];
25056
+ }
25057
+ });
25058
+ replacements.forEach(({ elements }) => {
25059
+ const newListItem = document.createElement('li');
25060
+ elements[0].parentNode.replaceChild(newListItem, elements[0]);
25061
+ elements.forEach((child) => newListItem.appendChild(child));
25062
+ if (newListItem.textContent && newListItem.textContent.trim() === '') {
25063
+ parentList.removeChild(newListItem);
25064
+ }
25065
+ hasListContainerCleanUp = true;
25066
+ });
24961
25067
  }
25068
+ return hasListContainerCleanUp;
24962
25069
  }
24963
25070
  static placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode) {
24964
25071
  lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNullOrUndefined(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode
@@ -25172,7 +25279,8 @@ class InsertHtml {
25172
25279
  while (el && el.nodeType === 1) {
25173
25280
  if (el.parentNode === editNode ||
25174
25281
  (!isNullOrUndefined(el.parentNode.tagName) &&
25175
- IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1)) {
25282
+ (IGNORE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1
25283
+ || ALLOWED_TABLE_BLOCK_TAGS.indexOf(el.parentNode.tagName.toLocaleLowerCase()) !== -1))) {
25176
25284
  return el;
25177
25285
  }
25178
25286
  el = el.parentNode;
@@ -25949,8 +26057,14 @@ class ImageCommand {
25949
26057
  (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);
25950
26058
  const onImageLoadEvent = () => {
25951
26059
  if (!isNullOrUndefined(this.parent.currentDocument)) {
25952
- imgElm.setAttribute('width', imgElm.offsetWidth.toString());
25953
- imgElm.setAttribute('height', imgElm.offsetHeight.toString());
26060
+ const imgWidth = imgElm.getAttribute('width');
26061
+ const imgHeight = imgElm.getAttribute('height');
26062
+ if (isNullOrUndefined(imgWidth) || imgWidth === 'auto') {
26063
+ imgElm.setAttribute('width', imgElm.offsetWidth.toString());
26064
+ }
26065
+ if (isNullOrUndefined(imgHeight) || imgHeight === 'auto') {
26066
+ imgElm.setAttribute('height', imgElm.offsetHeight.toString());
26067
+ }
25954
26068
  e.callBack({
25955
26069
  requestType: (e.value === 'Replace') ? (e.item.subCommand = 'Replace', 'Replace') : 'Images',
25956
26070
  editorMode: 'HTML',
@@ -32033,7 +32147,11 @@ class HtmlEditor {
32033
32147
  isTableClassAdded() {
32034
32148
  const tableElement = this.parent.inputElement.querySelectorAll('table');
32035
32149
  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')) {
32150
+ // e-rte-table class is added to the table element for styling.
32151
+ // 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.
32152
+ // e-rte-custom-table class is added for custom table element will not have any styles.
32153
+ if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')
32154
+ && !tableElement[i].classList.contains('e-rte-custom-table')) {
32037
32155
  tableElement[i].classList.add('e-rte-table');
32038
32156
  }
32039
32157
  }
@@ -32312,7 +32430,10 @@ class HtmlEditor {
32312
32430
  const editorValue = currentRange.startContainer.textContent.slice(0, currentRange.startOffset);
32313
32431
  const orderedList = this.isOrderedList(editorValue);
32314
32432
  const unOrderedList = this.isUnOrderedList(editorValue);
32315
- const hasSplitedText = this.hasMultipleTextNode(currentRange);
32433
+ let hasSplitedText = false;
32434
+ if (orderedList || unOrderedList) {
32435
+ hasSplitedText = this.hasMultipleTextNode(currentRange);
32436
+ }
32316
32437
  if (!hasSplitedText && (orderedList && !unOrderedList || unOrderedList && !orderedList)) {
32317
32438
  const eventArgs = {
32318
32439
  callBack: null,
@@ -32382,6 +32503,11 @@ class HtmlEditor {
32382
32503
  hasMultipleTextNode(range) {
32383
32504
  if (range && range.startContainer && range.startContainer.parentNode) {
32384
32505
  const parentNode = range.startContainer.parentNode;
32506
+ if (range.startContainer.previousElementSibling &&
32507
+ range.startContainer.previousElementSibling.classList.contains('e-mention-chip')
32508
+ && !range.startContainer.previousElementSibling.isContentEditable) {
32509
+ return true;
32510
+ }
32385
32511
  if (this.parent.enterKey === 'BR' || closest(parentNode, 'table')) {
32386
32512
  return false;
32387
32513
  }
@@ -33855,6 +33981,9 @@ class PasteCleanup {
33855
33981
  const tableElement = element.querySelectorAll('table');
33856
33982
  for (let i = 0; i < tableElement.length; i++) {
33857
33983
  const isMSTeamsTable = tableElement[i].parentElement.nodeName === 'FIGURE';
33984
+ if (tableElement[i].classList.length > 0 && tableElement[i].classList.contains('e-rte-custom-table')) {
33985
+ continue; // Skip the custom table class
33986
+ }
33858
33987
  if (this.parent.pasteCleanupSettings.keepFormat && source && !isMSTeamsTable) {
33859
33988
  tableElement[i].classList.add('e-rte-paste-' + source + '-table');
33860
33989
  }
@@ -36918,13 +37047,21 @@ class EnterKeyAction {
36918
37047
  }
36919
37048
  let isMediaNode = false; // To check the image audio and video node cases
36920
37049
  let isFocusedFirst = false;
37050
+ const parentElement = this.range.startContainer.parentElement;
37051
+ const isPreWrapApplied = parentElement ? this.parent.contentModule.getDocument().defaultView.getComputedStyle(this.range.startContainer.parentElement, null).getPropertyValue('white-space') === 'pre-wrap' : false;
36921
37052
  if (this.range.startOffset !== 0 && this.range.endOffset !== 0 &&
36922
37053
  this.range.startContainer === this.range.endContainer && !(!isNullOrUndefined(nearBlockNode.childNodes[0])
36923
37054
  && (nearBlockNode.childNodes[0].nodeName === 'IMG' || nearBlockNode.querySelectorAll('img, audio, video').length > 0))) {
36924
37055
  const startNodeText = this.range.startContainer.textContent;
36925
37056
  const splitFirstText = startNodeText.substring(0, this.range.startOffset);
36926
- // eslint-disable-next-line max-len
36927
- if (splitFirstText.charCodeAt(this.range.startOffset - 1) !== 160 && splitFirstText.trim().length === 0) {
37057
+ const lastCharBeforeCursor = splitFirstText.charCodeAt(this.range.startOffset - 1);
37058
+ const isSplitTextEmpty = splitFirstText.trim().length === 0;
37059
+ const hasContentAfterCursor = startNodeText.slice(this.range.startOffset).trim().length !== 0;
37060
+ const isCursorAtStartNonPreWrap = lastCharBeforeCursor !== 160
37061
+ && isSplitTextEmpty && !isPreWrapApplied;
37062
+ const isCursorAtStartPreWrapWithContent = lastCharBeforeCursor === 32
37063
+ && isPreWrapApplied && isSplitTextEmpty && hasContentAfterCursor;
37064
+ if (isCursorAtStartNonPreWrap || isCursorAtStartPreWrapWithContent) {
36928
37065
  isFocusedFirst = true;
36929
37066
  }
36930
37067
  }
@@ -40342,5 +40479,5 @@ RichTextEditor = __decorate$5([
40342
40479
  NotifyPropertyChanges
40343
40480
  ], RichTextEditor);
40344
40481
 
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 };
40482
+ 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
40483
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map