@syncfusion/ej2-richtexteditor 27.2.3 → 27.2.5

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.
@@ -3135,6 +3135,9 @@ function hasClass(element, className) {
3135
3135
  function getDropDownValue(items, value, type, returnType) {
3136
3136
  let data;
3137
3137
  let result;
3138
+ if (items.length === 0 && value === 'FontSize') {
3139
+ return 'Font Size';
3140
+ }
3138
3141
  for (let k = 0; k < items.length; k++) {
3139
3142
  if (type === 'value' && items[k].value.toLocaleLowerCase() === value.toLocaleLowerCase()) {
3140
3143
  data = items[k];
@@ -3282,7 +3285,7 @@ function setToolbarStatus(e, isPopToolbar, self) {
3282
3285
  }
3283
3286
  const fontNameItems = e.parent.fontFamily.items;
3284
3287
  result = value === 'empty' ? '' : getDropDownValue(fontNameItems, value, 'value', 'text');
3285
- const fontNameContent = isNullOrUndefined(e.parent.fontFamily.default) ? fontNameItems[0].text :
3288
+ const fontNameContent = isNullOrUndefined(e.parent.fontFamily.default) ? (fontNameItems.length === 0) ? self.serviceLocator.getService('rteLocale').getConstant('fontName') : fontNameItems[0].text :
3286
3289
  e.parent.fontFamily.default;
3287
3290
  const name = (isNullOrUndefined(result) ? fontNameContent : result) === 'Default' ? self.serviceLocator.getService('rteLocale').getConstant('fontName')
3288
3291
  : (isNullOrUndefined(result) ? fontNameContent : result);
@@ -3299,9 +3302,9 @@ function setToolbarStatus(e, isPopToolbar, self) {
3299
3302
  break;
3300
3303
  }
3301
3304
  const fontSizeItems = e.parent.fontSize.items;
3302
- const fontSizeContent = isNullOrUndefined(e.parent.fontSize.default) ? fontSizeItems[0].text :
3305
+ const fontSizeContent = isNullOrUndefined(e.parent.fontSize.default) ? (fontSizeItems.length === 0) ? self.serviceLocator.getService('rteLocale').getConstant('fontSize') : fontSizeItems[0].text :
3303
3306
  e.parent.fontSize.default;
3304
- const fontSizeToolbarText = getDropDownValue(fontSizeItems, (value === '' ? fontSizeContent.replace(/\s/g, '') : value), (fontSizeContent.replace(/\s/g, '') === fontSizeItems[0].text && value === '') ? 'text' : 'value', 'text');
3307
+ const fontSizeToolbarText = getDropDownValue(fontSizeItems, (value === '' ? fontSizeContent.replace(/\s/g, '') : value), (fontSizeItems.length > 0 && fontSizeItems[0] && fontSizeContent.replace(/\s/g, '') === fontSizeItems[0].text && value === '') ? 'text' : 'value', 'text');
3305
3308
  result = value === 'empty' ? '' : (fontSizeToolbarText === 'Default') ? self.serviceLocator.getService('rteLocale').getConstant('fontSize') : fontSizeToolbarText;
3306
3309
  dropDown.fontSizeDropDown.content = ('<span style="display: inline-flex;' +
3307
3310
  'width:' + e.parent.fontSize.width + '" >' +
@@ -3635,8 +3638,57 @@ function sanitizeHelper(value, parent) {
3635
3638
  value = SanitizeHtmlHelper.serializeValue(item, value);
3636
3639
  }
3637
3640
  }
3641
+ value = parseHelper(value);
3638
3642
  return value;
3639
3643
  }
3644
+ /**
3645
+ * @param {string} value - specifies the string value
3646
+ * @returns {string} - returns the string value
3647
+ * @hidden
3648
+ */
3649
+ function parseHelper(value) {
3650
+ const temp = createElement('div');
3651
+ temp.innerHTML = value;
3652
+ const fontElements = temp.querySelectorAll('font');
3653
+ fontElements.forEach((font) => {
3654
+ const span = document.createElement('span');
3655
+ let style = (font.getAttribute('style') || '').replace(/style:/gi, '').trim();
3656
+ if (!isNullOrUndefined(style) && style.trim() !== '' && !style.endsWith(';')) {
3657
+ style += ';';
3658
+ }
3659
+ Array.from(font.attributes).forEach((attr) => {
3660
+ const name = attr.name.toLowerCase();
3661
+ const value = attr.value;
3662
+ switch (name) {
3663
+ case 'size':
3664
+ style += `font-size:${value};`;
3665
+ break;
3666
+ case 'face':
3667
+ style += `font-family:${value};`;
3668
+ break;
3669
+ case 'bgcolor':
3670
+ style += `background-color:${value};`;
3671
+ break;
3672
+ case 'style':
3673
+ break;
3674
+ default:
3675
+ style += `${name}:${value};`;
3676
+ break;
3677
+ }
3678
+ });
3679
+ if (!isNullOrUndefined(style) && style.trim() !== '') {
3680
+ style = style.replace(/;;+/g, ';');
3681
+ span.setAttribute('style', style);
3682
+ }
3683
+ span.innerHTML = font.innerHTML;
3684
+ if (!isNullOrUndefined(font.parentNode)) {
3685
+ font.parentNode.replaceChild(span, font);
3686
+ }
3687
+ });
3688
+ const parsedValue = temp.innerHTML;
3689
+ temp.remove();
3690
+ return parsedValue;
3691
+ }
3640
3692
  /**
3641
3693
  * @param {string} dataUrl - specifies the string value
3642
3694
  * @returns {BaseToolbar} - returns the value
@@ -5676,7 +5728,7 @@ class ToolbarRenderer {
5676
5728
  alignEle = alignEle.parentElement;
5677
5729
  }
5678
5730
  const alignStyle = window.getComputedStyle(alignEle).textAlign;
5679
- if (args.items[0].command === 'Alignments') {
5731
+ if (!isNullOrUndefined(args.items[0]) && args.items[0].command === 'Alignments') {
5680
5732
  if ((args.items[0].text === 'Align Left' && (alignStyle === 'left') || alignStyle === 'start')) {
5681
5733
  addClass([args.element.childNodes[0]], 'e-active');
5682
5734
  break;
@@ -5699,7 +5751,7 @@ class ToolbarRenderer {
5699
5751
  //image preselect
5700
5752
  const closestNode = startNode.closest('img');
5701
5753
  const imageEle = closestNode ? closestNode : startNode.querySelector('img');
5702
- if (args.items[0].command === 'Images') {
5754
+ if (!isNullOrUndefined(args.items[0]) && args.items[0].command === 'Images') {
5703
5755
  if (!isNullOrUndefined(imageEle)) {
5704
5756
  let index;
5705
5757
  if (imageEle.classList.contains('e-imgleft') || imageEle.classList.contains('e-imginline')) {
@@ -5717,7 +5769,7 @@ class ToolbarRenderer {
5717
5769
  }
5718
5770
  }
5719
5771
  //Formats preselect
5720
- if (args.items[0].command === 'Formats' || args.items[0].command === 'Font') {
5772
+ if (!isNullOrUndefined(args.items[0]) && (args.items[0].command === 'Formats' || args.items[0].command === 'Font')) {
5721
5773
  const fontName = [];
5722
5774
  const formats = [];
5723
5775
  let hasUpdatedActive = false;
@@ -8530,6 +8582,8 @@ class Image$1 {
8530
8582
  if (proxy.parent.formatter.getUndoRedoStack().length === 0) {
8531
8583
  proxy.parent.formatter.saveData();
8532
8584
  }
8585
+ const previousSubCommand = this.args.item.subCommand;
8586
+ this.args.item.subCommand = e.target.innerHTML === 'Update' ? 'Replace' : this.args.item.subCommand;
8533
8587
  if (!isNullOrUndefined(proxy.uploadUrl) && proxy.uploadUrl.url !== '') {
8534
8588
  proxy.uploadUrl.cssClass = (proxy.parent.insertImageSettings.display === 'inline' ?
8535
8589
  CLS_IMGINLINE : CLS_IMGBREAK);
@@ -8573,6 +8627,7 @@ class Image$1 {
8573
8627
  }
8574
8628
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
8575
8629
  }
8630
+ this.args.item.subCommand = previousSubCommand;
8576
8631
  }
8577
8632
  imgsizeInput(e) {
8578
8633
  const selectNode = e.selectNode[0];
@@ -16174,11 +16229,11 @@ class DropDownButtons {
16174
16229
  command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontName', enumerable: true }
16175
16230
  });
16176
16231
  });
16177
- const fontNameContent = isNullOrUndefined(this.parent.fontFamily.default) ? fontItem[0].text :
16232
+ const fontNameContent = isNullOrUndefined(this.parent.fontFamily.default) ? fontItem.length === 0 ? '' : fontItem[0].text :
16178
16233
  this.parent.fontFamily.default;
16179
16234
  this.fontNameDropDown = this.toolbarRenderer.renderDropDownButton({
16180
16235
  iconCss: ((type === 'quick') ? 'e-font-name e-icons' : ''),
16181
- content: this.dropdownContent(this.parent.fontFamily.width, type, ((type === 'quick') ? '' : (getDropDownValue(fontItem, fontNameContent, 'text', 'text') === 'Default' ? this.i10n.getConstant('fontName') : getDropDownValue(fontItem, fontNameContent, 'text', 'text')))),
16236
+ content: this.dropdownContent(this.parent.fontFamily.width, type, ((fontItem.length === 0) ? this.i10n.getConstant('fontName') : (type === 'quick') ? '' : (getDropDownValue(fontItem, fontNameContent, 'text', 'text') === 'Default' ? this.i10n.getConstant('fontName') : getDropDownValue(fontItem, fontNameContent, 'text', 'text')))),
16182
16237
  cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS + ' ' + CLS_FONT_NAME_TB_BTN,
16183
16238
  itemName: 'FontName', items: fontItem, element: targetElement
16184
16239
  });
@@ -16197,11 +16252,11 @@ class DropDownButtons {
16197
16252
  command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontSize', enumerable: true }
16198
16253
  });
16199
16254
  });
16200
- const fontSizeContent = isNullOrUndefined(this.parent.fontSize.default) ? fontsize[0].text :
16255
+ const fontSizeContent = isNullOrUndefined(this.parent.fontSize.default) ? fontsize.length === 0 ? '' : fontsize[0].text :
16201
16256
  this.parent.fontSize.default;
16202
16257
  const fontSizeDropDownContent = ((fontSizeContent === 'Default') ? getDropDownValue(fontsize, fontSizeContent.replace(/\s/g, ''), 'text', 'text') : getDropDownValue(fontsize, fontSizeContent.replace(/\s/g, ''), 'value', 'text'));
16203
16258
  this.fontSizeDropDown = this.toolbarRenderer.renderDropDownButton({
16204
- content: this.dropdownContent(this.parent.fontSize.width, type, getFormattedFontSize((fontSizeDropDownContent === 'Default') ? this.i10n.getConstant('fontSize') : fontSizeDropDownContent)),
16259
+ content: this.dropdownContent(this.parent.fontSize.width, type, fontsize.length === 0 ? this.i10n.getConstant('fontSize') : (getFormattedFontSize((fontSizeDropDownContent === 'Default') ? this.i10n.getConstant('fontSize') : fontSizeDropDownContent))),
16205
16260
  cssClass: CLS_DROPDOWN_POPUP + ' ' + CLS_DROPDOWN_ITEMS + ' ' + CLS_FONT_SIZE_TB_BTN,
16206
16261
  itemName: 'FontSize', items: fontsize, element: targetElement
16207
16262
  });
@@ -23911,6 +23966,11 @@ class NodeCutter {
23911
23966
  if (node) {
23912
23967
  InsertMethods.AppendBefore(fragment, node, true);
23913
23968
  }
23969
+ else if (parent.childNodes.length > 1 && parent.childNodes.length !== index) {
23970
+ node = parent.childNodes[parent.childNodes.length - 1];
23971
+ InsertMethods.AppendBefore(fragment, node, true);
23972
+ node = node.nextSibling;
23973
+ }
23914
23974
  else {
23915
23975
  parent.appendChild(fragment);
23916
23976
  const divNode = document.createElement('div');
@@ -24983,26 +25043,32 @@ class InsertHtml {
24983
25043
  const range = nodeSelection.getRange(docElement);
24984
25044
  const startContainer = range.startContainer;
24985
25045
  const startOffset = range.startOffset;
24986
- if (range.startContainer.parentElement.closest('ol,ul') !== null && range.endContainer.parentElement.closest('ol,ul') !== null) {
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);
25046
+ const startParentElement = range.startContainer.parentElement;
25047
+ const endParentElement = range.endContainer.parentElement;
25048
+ if (!isNullOrUndefined(startParentElement) && !isNullOrUndefined(endParentElement)) {
25049
+ const startClosestList = startParentElement.closest('ol, ul');
25050
+ const endClosestList = endParentElement.closest('ol, ul');
25051
+ if (!isNullOrUndefined(startClosestList) && !isNullOrUndefined(endClosestList)) {
25052
+ const hasListCleanUp = this.cleanUpListItems(startClosestList);
25053
+ const hasListContainerCleanUp = this.cleanUpListContainer(startClosestList);
25054
+ if (hasListCleanUp || hasListContainerCleanUp) {
25055
+ range.setStart(startContainer, startOffset);
25056
+ range.setEnd(startContainer, startOffset);
25057
+ }
24992
25058
  }
24993
25059
  }
24994
25060
  }
24995
25061
  static cleanUpListItems(parentContainer) {
24996
25062
  let hasListCleanUp = false;
24997
- const listItems = parentContainer.closest('ol, ul').querySelectorAll('li');
24998
- if (listItems.length === 0) {
25063
+ let listItems;
25064
+ if (!isNullOrUndefined(parentContainer.closest('ol, ul'))) {
25065
+ listItems = parentContainer.closest('ol, ul').querySelectorAll('li');
25066
+ }
25067
+ if (isNullOrUndefined(listItems) || listItems.length === 0) {
24999
25068
  return false;
25000
25069
  }
25001
25070
  let nearestListItem = null;
25002
25071
  listItems.forEach((listItem) => {
25003
- if (!isNullOrUndefined(listItem.firstChild) && (listItem.firstChild.nodeName === 'OL' || listItem.firstChild.nodeName === 'UL')) {
25004
- listItem.style.listStyleType = 'none';
25005
- }
25006
25072
  const parentElement = listItem.parentElement;
25007
25073
  if (!isNullOrUndefined(parentElement) && parentElement.nodeName !== 'OL' && parentElement.nodeName !== 'UL') {
25008
25074
  if (isNullOrUndefined(nearestListItem)) {
@@ -25029,13 +25095,36 @@ class InsertHtml {
25029
25095
  const closestList = parentElement.closest('ol, ul');
25030
25096
  nearestListItem.insertAdjacentElement('afterend', listItem);
25031
25097
  nearestListItem = nearestListItem.nextSibling;
25032
- this.removeEmptyElements(closestList);
25098
+ if (!isNullOrUndefined(closestList)) {
25099
+ this.removeEmptyElements(closestList);
25100
+ }
25033
25101
  hasListCleanUp = true;
25034
25102
  }
25035
25103
  }
25104
+ });
25105
+ const cleanUpFlattenListContainer = this.cleanUpFlattenListContainer(parentContainer);
25106
+ hasListCleanUp = cleanUpFlattenListContainer ? cleanUpFlattenListContainer : hasListCleanUp;
25107
+ return hasListCleanUp;
25108
+ }
25109
+ static cleanUpFlattenListContainer(parentContainer) {
25110
+ let hasListCleanUp = false;
25111
+ let listItems;
25112
+ if (!isNullOrUndefined(parentContainer.closest('ol, ul'))) {
25113
+ listItems = parentContainer.closest('ol, ul').querySelectorAll('li');
25114
+ }
25115
+ if (isNullOrUndefined(listItems) || listItems.length === 0) {
25116
+ return false;
25117
+ }
25118
+ listItems.forEach((listItem) => {
25119
+ if (!isNullOrUndefined(listItem.firstChild) && (listItem.firstChild.nodeName === 'OL' || listItem.firstChild.nodeName === 'UL')) {
25120
+ listItem.style.listStyleType = 'none';
25121
+ }
25036
25122
  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) {
25123
+ if (!isNullOrUndefined(nestedLi) && !isNullOrUndefined(listItem.parentNode)) {
25038
25124
  listItem.parentNode.replaceChild(nestedLi, listItem);
25125
+ if (isNullOrUndefined(nestedLi.textContent) || nestedLi.textContent.trim() === '') {
25126
+ nestedLi.remove();
25127
+ }
25039
25128
  hasListCleanUp = true;
25040
25129
  }
25041
25130
  });
@@ -25884,7 +25973,7 @@ class Indents {
25884
25973
  isRtl ? (parentNode.style.marginRight = indentsValue) : (parentNode.style.marginLeft = indentsValue);
25885
25974
  }
25886
25975
  else {
25887
- indentsValue = (marginLeftOrRight === '' || marginLeftOrRight === '0px' || marginLeftOrRight === '0in') ? '' : parseInt(marginLeftOrRight, null) - this.indentValue + 'px';
25976
+ indentsValue = (marginLeftOrRight === '' || marginLeftOrRight === '0px' || marginLeftOrRight === '0in') ? '' : (parseInt(marginLeftOrRight, null) - this.indentValue < 0) ? '0px' : (parseInt(marginLeftOrRight, null) - this.indentValue) + 'px';
25888
25977
  isRtl ? (parentNode.style.marginRight = indentsValue) : (parentNode.style.marginLeft = indentsValue);
25889
25978
  /* eslint-enable */
25890
25979
  }
@@ -28138,8 +28227,10 @@ class SelectionCommands {
28138
28227
  range.startContainer.textContent.substring(range.startOffset, range.startContainer.textContent.length) :
28139
28228
  range.startContainer.textContent;
28140
28229
  const nodeText = nodes[index].textContent;
28230
+ const isParentNodeSameAsParentElement = nodes[0].parentElement.nodeName === nodes[0].parentElement.parentElement.nodeName;
28141
28231
  if (!(range.startContainer === range.endContainer && range.startOffset === 0
28142
- && range.endOffset === range.startContainer.length)) {
28232
+ && range.endOffset === range.startContainer.length
28233
+ && (range.startContainer.textContent === formatNode.textContent || isParentNodeSameAsParentElement))) {
28143
28234
  const nodeIndex = [];
28144
28235
  let cloneNode = nodes[index];
28145
28236
  const clonedElement = cloneNode;
@@ -28160,10 +28251,19 @@ class SelectionCommands {
28160
28251
  if (!isCursor) {
28161
28252
  while (cloneNode && cloneNode.childNodes.length > 0 && ((nodeIndex.length - 1) >= 0)
28162
28253
  && (cloneNode.childNodes.length > nodeIndex[nodeIndex.length - 1])) {
28163
- cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];
28164
- nodeIndex.pop();
28254
+ if (cloneNode.childNodes.length > 1 && nodeIndex.length > 1) {
28255
+ cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 2]];
28256
+ break;
28257
+ }
28258
+ else {
28259
+ cloneNode = cloneNode.childNodes[nodeIndex[nodeIndex.length - 1]];
28260
+ nodeIndex.pop();
28261
+ }
28165
28262
  }
28166
28263
  if (nodes[index].nodeName !== 'BR') {
28264
+ while (cloneNode.nodeType === 1 && cloneNode.childNodes.length > 0) {
28265
+ cloneNode = cloneNode.childNodes[0];
28266
+ }
28167
28267
  if (cloneNode.nodeType === 3 && !(isCursor && cloneNode.nodeValue === '')) {
28168
28268
  nodes[index] = cloneNode;
28169
28269
  }
@@ -28352,12 +28452,6 @@ class SelectionCommands {
28352
28452
  if (!isNullOrUndefined(bgStyle) && bgStyle !== '') {
28353
28453
  currentNodeElem.style.backgroundColor = bgStyle;
28354
28454
  }
28355
- if ((format === 'backgroundcolor' && !isNullOrUndefined(fontStyle) && fontStyle !== '') &&
28356
- currentNodeElem.parentElement.innerHTML === currentNodeElem.outerHTML) {
28357
- const curParentElem = currentNodeElem.parentElement;
28358
- curParentElem.parentElement.insertBefore(currentNodeElem, curParentElem);
28359
- detach(curParentElem);
28360
- }
28361
28455
  if (format === 'fontsize' || format === 'fontcolor') {
28362
28456
  let liElement = nodes[index].parentElement;
28363
28457
  let parentElement = nodes[index].parentElement;
@@ -28835,12 +28929,12 @@ class SelectionCommands {
28835
28929
  case 'fontcolor':
28836
28930
  liElement.querySelectorAll('span').forEach(function (span) {
28837
28931
  colorStyle = span.style.color;
28838
- if (colorStyle === constVal) {
28932
+ if (SelectionCommands.hasColorsEqual(colorStyle, constVal)) {
28839
28933
  result = result + span.textContent;
28840
28934
  }
28841
28935
  });
28842
- if (result === value) {
28843
- liElement.style.color = colorStyle;
28936
+ if (!isNullOrUndefined(result) && !isNullOrUndefined(value) && result !== '' && value !== '' && result.replace(/\s+/g, '') === value.replace(/\s+/g, '')) {
28937
+ liElement.style.color = constVal;
28844
28938
  liElement.style.textDecoration = 'inherit';
28845
28939
  }
28846
28940
  break;
@@ -28851,8 +28945,8 @@ class SelectionCommands {
28851
28945
  result = result + span.textContent;
28852
28946
  }
28853
28947
  });
28854
- if (result === value) {
28855
- liElement.style.fontSize = fontSize;
28948
+ if (!isNullOrUndefined(result) && !isNullOrUndefined(value) && result !== '' && value !== '' && result.replace(/\s+/g, '') === value.replace(/\s+/g, '')) {
28949
+ liElement.style.fontSize = constVal;
28856
28950
  }
28857
28951
  break;
28858
28952
  case 'fontname':
@@ -28863,12 +28957,24 @@ class SelectionCommands {
28863
28957
  result = result + span.textContent;
28864
28958
  }
28865
28959
  });
28866
- if (result === value) {
28867
- liElement.style.fontFamily = fontFamily;
28960
+ if (!isNullOrUndefined(result) && !isNullOrUndefined(value) && result !== '' && value !== '' && result.replace(/\s+/g, '') === value.replace(/\s+/g, '')) {
28961
+ liElement.style.fontFamily = constVal;
28868
28962
  }
28869
28963
  break;
28870
28964
  }
28871
28965
  }
28966
+ static hasColorsEqual(color1, color2) {
28967
+ if (isNullOrUndefined(color1) || isNullOrUndefined(color2) || color1.trim() === '' || color2.trim() === '') {
28968
+ return color1 === color2;
28969
+ }
28970
+ if (color1.startsWith('rgb(')) {
28971
+ color1 = color1.replace('rgb(', 'rgba(').slice(0, -1) + ',1)';
28972
+ }
28973
+ if (color2.startsWith('rgb(')) {
28974
+ color2 = color2.replace('rgb(', 'rgba(').slice(0, -1) + ',1)';
28975
+ }
28976
+ return color1.replace(/\s+/g, '') === color2.replace(/\s+/g, '');
28977
+ }
28872
28978
  }
28873
28979
  SelectionCommands.enterAction = 'P';
28874
28980
 
@@ -29761,6 +29867,10 @@ class MsWordPaste {
29761
29867
  for (let i = 0; i < imgElem.length; i++) {
29762
29868
  imgSrc.push(imgElem[i].getAttribute('src'));
29763
29869
  imgName.push(imgElem[i].getAttribute('src').split('/')[imgElem[i].getAttribute('src').split('/').length - 1].split('.')[0]);
29870
+ if (!isNullOrUndefined(imgSrc) && imgSrc[i] !== '') {
29871
+ const imgType = imgSrc[i].split('.').pop().toLowerCase();
29872
+ imgElem[i].setAttribute('data-image-type', imgType);
29873
+ }
29764
29874
  }
29765
29875
  const hexValue = this.hexConversion(rtfData);
29766
29876
  for (let i = 0; i < hexValue.length; i++) {
@@ -30587,10 +30697,23 @@ class MsWordPaste {
30587
30697
  listOrderCleanup.setAttribute('style', style);
30588
30698
  }
30589
30699
  }
30590
- const listOrder = firstChild.querySelector('span[style="mso-list:Ignore"]');
30700
+ let listOrder = firstChild.querySelector('span[style="mso-list:Ignore"]');
30701
+ const isEmptyMarkerSpan = isNullOrUndefined(listOrder);
30702
+ listOrder = isEmptyMarkerSpan ? firstChild : listOrder;
30591
30703
  if (!isNullOrUndefined(listOrder)) {
30592
- this.listContents.push(listOrder.textContent.trim());
30593
- detach(listOrder);
30704
+ let textContent = listOrder.textContent.trim();
30705
+ if (isEmptyMarkerSpan) {
30706
+ const bulletPattern = /^(\d{1,2}|[a-zA-Z]|[*#~•○■])(\.|\)|-)\s*/;
30707
+ const textContentMatch = textContent.match(bulletPattern);
30708
+ if (!isNullOrUndefined(textContentMatch)) {
30709
+ textContent = textContentMatch[0].trim();
30710
+ listOrder.textContent = listOrder.textContent.trim().substring(textContent.length).trim();
30711
+ }
30712
+ }
30713
+ this.listContents.push(textContent);
30714
+ if (!isEmptyMarkerSpan) {
30715
+ detach(listOrder);
30716
+ }
30594
30717
  this.removingComments(elem);
30595
30718
  this.removeUnwantedElements(elem);
30596
30719
  }
@@ -32593,10 +32716,21 @@ class HtmlEditor {
32593
32716
  // eslint-disable-next-line
32594
32717
  lastNode, lastNode.textContent.length);
32595
32718
  }
32596
- if (this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
32597
- detach(this.oldRangeElement.querySelector('BR'));
32719
+ let checkParent = false;
32720
+ if (this.oldRangeElement && this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
32721
+ const brElement = this.oldRangeElement.querySelector('BR');
32722
+ if (brElement) {
32723
+ const brParentElement = brElement.parentNode;
32724
+ const currentState = this.oldRangeElement.innerHTML;
32725
+ this.parent.formatter.saveData(currentState);
32726
+ detach(brElement);
32727
+ if (brParentElement && brParentElement.childNodes.length === 0) {
32728
+ detach(brParentElement);
32729
+ checkParent = true;
32730
+ }
32731
+ }
32598
32732
  }
32599
- if (!isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement) {
32733
+ if (!isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement && !checkParent) {
32600
32734
  while (this.rangeElement.firstChild) {
32601
32735
  if (this.oldRangeElement.nodeName === '#text') {
32602
32736
  this.oldRangeElement.parentElement.appendChild(this.rangeElement.childNodes[0]);
@@ -33258,6 +33392,7 @@ class PasteCleanup {
33258
33392
  let value = null;
33259
33393
  let isClipboardHTMLDataNull = false;
33260
33394
  let imageproperties;
33395
+ const allowedTypes = this.parent.insertImageSettings.allowedTypes;
33261
33396
  if (e.args && !isNullOrUndefined(e.args.clipboardData)) {
33262
33397
  value = e.args.clipboardData.getData('text/html');
33263
33398
  }
@@ -33277,6 +33412,14 @@ class PasteCleanup {
33277
33412
  (!isNullOrUndefined(e.args.clipboardData.items[1]) ?
33278
33413
  e.args.clipboardData.items[1].getAsFile() : null) :
33279
33414
  e.args.clipboardData.items[0].getAsFile()) : null;
33415
+ if (file) {
33416
+ const fileNameParts = file.name;
33417
+ const imgType = fileNameParts.substring(fileNameParts.lastIndexOf('.'));
33418
+ if (allowedTypes.every((type) => type.toLowerCase() !== imgType)) {
33419
+ e.args.preventDefault();
33420
+ return;
33421
+ }
33422
+ }
33280
33423
  this.parent.notify(paste, {
33281
33424
  file: file,
33282
33425
  args: e.args,
@@ -33325,6 +33468,28 @@ class PasteCleanup {
33325
33468
  value = tempDivElem.innerHTML;
33326
33469
  const isValueNotEmpty = tempDivElem.textContent !== '' || !isNullOrUndefined(tempDivElem.querySelector('img')) ||
33327
33470
  !isNullOrUndefined(tempDivElem.querySelector('table'));
33471
+ const imgElements = tempDivElem.querySelectorAll('img');
33472
+ imgElements.forEach((imgElement) => {
33473
+ let imageFileFormat;
33474
+ const imgElementSrc = imgElement.getAttribute('src');
33475
+ if (!isNullOrUndefined(imgElementSrc) && imgElementSrc !== '') {
33476
+ if (!isNullOrUndefined(imgElement.getAttribute('data-image-type'))) {
33477
+ imageFileFormat = imgElement.getAttribute('data-image-type');
33478
+ }
33479
+ else if (imgElementSrc.indexOf('base64') > -1 && imgElementSrc.indexOf('data:') > -1) {
33480
+ imageFileFormat = imgElementSrc.split(';')[0].split('/')[1];
33481
+ }
33482
+ else {
33483
+ imageFileFormat = imgElementSrc.split('.').pop().toLowerCase();
33484
+ }
33485
+ if (!isNullOrUndefined(imageFileFormat) &&
33486
+ allowedTypes.every((type) => imageFileFormat !== type.substring(1).toLowerCase()) &&
33487
+ imgElementSrc.indexOf('blob') === -1) {
33488
+ detach(imgElement);
33489
+ }
33490
+ }
33491
+ });
33492
+ value = tempDivElem.innerHTML;
33328
33493
  this.parent.notify(cleanupResizeElements, {
33329
33494
  value: value,
33330
33495
  callBack: (currentValue) => {
@@ -34391,6 +34556,12 @@ class Resize {
34391
34556
  this.parent.inputElement.classList.add('e-resize-enabled');
34392
34557
  this.parent.contentModule.getDocument().addEventListener('mouseup', this.iframeMouseUpBoundFn);
34393
34558
  }
34559
+ this.iframeElement = this.parent.contentModule.getDocument().querySelectorAll('iframe');
34560
+ if (!isNullOrUndefined(this.iframeElement)) {
34561
+ this.iframeElement.forEach((iframe) => {
34562
+ EventHandler.add(iframe.contentDocument, 'mouseup', this.stopResize, this);
34563
+ });
34564
+ }
34394
34565
  this.touchStartEvent = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';
34395
34566
  EventHandler.add(this.resizer, 'mousedown', this.resizeStart, this);
34396
34567
  EventHandler.add(this.resizer, this.touchStartEvent, this.resizeStart, this);
@@ -34496,6 +34667,11 @@ class Resize {
34496
34667
  this.parent.inputElement.classList.remove('e-resize-enabled');
34497
34668
  this.parent.contentModule.getDocument().removeEventListener('mouseup', this.iframeMouseUpBoundFn);
34498
34669
  }
34670
+ if (!isNullOrUndefined(this.iframeElement)) {
34671
+ this.iframeElement.forEach((iframe) => {
34672
+ EventHandler.remove(iframe.contentDocument, 'mouseup', this.stopResize);
34673
+ });
34674
+ }
34499
34675
  if (this.resizer) {
34500
34676
  EventHandler.remove(this.resizer, 'mousedown', this.resizeStart);
34501
34677
  EventHandler.remove(this.resizer, this.touchStartEvent, this.resizeStart);
@@ -34508,6 +34684,9 @@ class Resize {
34508
34684
  if (this.isResizing) {
34509
34685
  this.stopResize(e);
34510
34686
  }
34687
+ else {
34688
+ return;
34689
+ }
34511
34690
  }
34512
34691
  /**
34513
34692
  * For internal use only - Get the module name.
@@ -40479,5 +40658,5 @@ RichTextEditor = __decorate$5([
40479
40658
  NotifyPropertyChanges
40480
40659
  ], RichTextEditor);
40481
40660
 
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 };
40661
+ 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, parseHelper, 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 };
40483
40662
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map