@syncfusion/ej2-richtexteditor 22.2.12 → 23.1.39

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 (109) hide show
  1. package/CHANGELOG.md +67 -1
  2. package/dist/ej2-richtexteditor.min.js +3 -3
  3. package/dist/ej2-richtexteditor.umd.min.js +3 -3
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +457 -285
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +457 -281
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/dist/global/ej2-richtexteditor.min.js +3 -3
  10. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  11. package/dist/global/index.d.ts +2 -2
  12. package/package.json +13 -13
  13. package/src/editor-manager/plugin/dom-node.js +6 -5
  14. package/src/editor-manager/plugin/inserthtml.js +1 -1
  15. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +2 -0
  16. package/src/editor-manager/plugin/ms-word-clean-up.js +79 -12
  17. package/src/editor-manager/plugin/selection-exec.js +1 -1
  18. package/src/editor-manager/plugin/table.js +1 -1
  19. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +2 -1
  20. package/src/rich-text-editor/actions/base-quick-toolbar.js +10 -6
  21. package/src/rich-text-editor/actions/emoji-picker.js +29 -14
  22. package/src/rich-text-editor/actions/enter-key.js +9 -2
  23. package/src/rich-text-editor/actions/format-painter.js +12 -6
  24. package/src/rich-text-editor/actions/full-screen.js +3 -0
  25. package/src/rich-text-editor/actions/html-editor.js +14 -1
  26. package/src/rich-text-editor/actions/markdown-editor.js +3 -0
  27. package/src/rich-text-editor/actions/paste-clean-up.d.ts +2 -0
  28. package/src/rich-text-editor/actions/paste-clean-up.js +63 -32
  29. package/src/rich-text-editor/actions/quick-toolbar.js +35 -2
  30. package/src/rich-text-editor/actions/toolbar.js +4 -1
  31. package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
  32. package/src/rich-text-editor/base/classes.d.ts +5 -0
  33. package/src/rich-text-editor/base/classes.js +5 -0
  34. package/src/rich-text-editor/base/constant.d.ts +5 -0
  35. package/src/rich-text-editor/base/constant.js +5 -0
  36. package/src/rich-text-editor/base/enum.d.ts +4 -0
  37. package/src/rich-text-editor/base/interface.d.ts +10 -22
  38. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +1 -39
  39. package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -39
  40. package/src/rich-text-editor/base/rich-text-editor.js +14 -10
  41. package/src/rich-text-editor/base/util.js +5 -1
  42. package/src/rich-text-editor/models/items.js +34 -22
  43. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +4 -5
  44. package/src/rich-text-editor/models/toolbar-settings.d.ts +4 -5
  45. package/src/rich-text-editor/models/toolbar-settings.js +1 -1
  46. package/src/rich-text-editor/renderer/audio-module.js +5 -33
  47. package/src/rich-text-editor/renderer/dialog-renderer.js +1 -1
  48. package/src/rich-text-editor/renderer/image-module.js +19 -65
  49. package/src/rich-text-editor/renderer/link-module.js +6 -0
  50. package/src/rich-text-editor/renderer/render.js +4 -0
  51. package/src/rich-text-editor/renderer/table-module.js +50 -24
  52. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +5 -1
  53. package/src/rich-text-editor/renderer/toolbar-renderer.js +28 -2
  54. package/src/rich-text-editor/renderer/video-module.js +5 -33
  55. package/src/rich-text-editor/renderer/view-source.js +4 -0
  56. package/styles/bootstrap-dark.css +4 -4
  57. package/styles/bootstrap.css +4 -4
  58. package/styles/bootstrap4.css +4 -4
  59. package/styles/bootstrap5-dark.css +4 -4
  60. package/styles/bootstrap5.css +4 -4
  61. package/styles/fabric-dark.css +4 -4
  62. package/styles/fabric.css +4 -4
  63. package/styles/fluent-dark.css +4 -4
  64. package/styles/fluent.css +4 -4
  65. package/styles/highcontrast-light.css +4 -4
  66. package/styles/highcontrast.css +4 -4
  67. package/styles/material-dark.css +4 -5
  68. package/styles/material.css +4 -5
  69. package/styles/material3-dark.css +4 -5
  70. package/styles/material3-dark.scss +1 -1
  71. package/styles/material3.css +4 -5
  72. package/styles/material3.scss +1 -1
  73. package/styles/rich-text-editor/_layout.scss +2 -2
  74. package/styles/rich-text-editor/bootstrap-dark.css +4 -4
  75. package/styles/rich-text-editor/bootstrap-dark.scss +1 -1
  76. package/styles/rich-text-editor/bootstrap.css +4 -4
  77. package/styles/rich-text-editor/bootstrap.scss +1 -1
  78. package/styles/rich-text-editor/bootstrap4.css +4 -4
  79. package/styles/rich-text-editor/bootstrap4.scss +1 -1
  80. package/styles/rich-text-editor/bootstrap5-dark.css +4 -4
  81. package/styles/rich-text-editor/bootstrap5-dark.scss +1 -1
  82. package/styles/rich-text-editor/bootstrap5.css +4 -4
  83. package/styles/rich-text-editor/bootstrap5.scss +1 -1
  84. package/styles/rich-text-editor/fabric-dark.css +4 -4
  85. package/styles/rich-text-editor/fabric-dark.scss +1 -1
  86. package/styles/rich-text-editor/fabric.css +4 -4
  87. package/styles/rich-text-editor/fabric.scss +1 -1
  88. package/styles/rich-text-editor/fluent-dark.css +4 -4
  89. package/styles/rich-text-editor/fluent-dark.scss +1 -1
  90. package/styles/rich-text-editor/fluent.css +4 -4
  91. package/styles/rich-text-editor/fluent.scss +1 -1
  92. package/styles/rich-text-editor/highcontrast-light.css +4 -4
  93. package/styles/rich-text-editor/highcontrast-light.scss +1 -1
  94. package/styles/rich-text-editor/highcontrast.css +4 -4
  95. package/styles/rich-text-editor/highcontrast.scss +1 -1
  96. package/styles/rich-text-editor/material-dark.css +4 -5
  97. package/styles/rich-text-editor/material-dark.scss +1 -1
  98. package/styles/rich-text-editor/material.css +4 -5
  99. package/styles/rich-text-editor/material.scss +1 -1
  100. package/styles/rich-text-editor/material3-dark.css +4 -5
  101. package/styles/rich-text-editor/material3-dark.scss +1 -1
  102. package/styles/rich-text-editor/material3.css +4 -5
  103. package/styles/rich-text-editor/material3.scss +1 -1
  104. package/styles/rich-text-editor/tailwind-dark.css +4 -5
  105. package/styles/rich-text-editor/tailwind-dark.scss +1 -1
  106. package/styles/rich-text-editor/tailwind.css +4 -5
  107. package/styles/rich-text-editor/tailwind.scss +1 -1
  108. package/styles/tailwind-dark.css +4 -5
  109. package/styles/tailwind.css +4 -5
@@ -739,6 +739,11 @@ var emojiPicker = 'emojiPicker';
739
739
  * @deprecated
740
740
  */
741
741
  var maximizeMinimizeClick = 'maximizeMinimizeClick';
742
+ /**
743
+ * @hidden
744
+ * @deprecated
745
+ */
746
+ var hidePopup = 'hidePopup';
742
747
  /**
743
748
  * @hidden
744
749
  * @deprecated
@@ -853,6 +858,11 @@ var CLS_QUICK_DROPDOWN = 'e-quick-dropdown';
853
858
  * @deprecated
854
859
  */
855
860
  var CLS_IMAGE_POP = 'e-rte-image-popup';
861
+ /**
862
+ * @hidden
863
+ * @deprecated
864
+ */
865
+ var CLS_TEXT_POP = 'e-rte-text-popup';
856
866
  /**
857
867
  * @hidden
858
868
  * @deprecated
@@ -2170,29 +2180,41 @@ function updateDropDownLocale(self) {
2170
2180
  });
2171
2181
  }
2172
2182
  var windowKeys = {
2173
- 'Insert Link': 'Ctrl + K',
2174
- 'Insert Image': 'Ctrl + Shift + I',
2175
- 'Create Table': 'Ctrl + Shift + E',
2176
- 'Undo': 'Ctrl + Z',
2177
- 'Redo': 'Ctrl + Y',
2178
- 'Copy': 'Ctrl + C',
2179
- 'Cut': 'Ctrl + X',
2180
- 'Paste': 'Ctrl + V',
2181
- 'Bold': 'Ctrl + B',
2182
- 'Italic': 'Ctrl + I',
2183
- 'Underline': 'Ctrl + U',
2184
- 'Strikethrough': 'Ctrl + Shift + S',
2185
- 'Upper Case': 'Ctrl + Shift + U',
2186
- 'Lower Case': 'Ctrl + Shift + L',
2187
- 'Superscript': 'Ctrl + Shift + =',
2188
- 'Subscript': 'Ctrl + =',
2189
- 'Source Code': 'Ctrl + Shift + H',
2190
- 'Maximize': 'Ctrl + Shift + F',
2183
+ 'Insert Link': 'Ctrl+K',
2184
+ 'Insert Image': 'Ctrl+Shift+I',
2185
+ 'Create Table': 'Ctrl+Shift+E',
2186
+ 'Undo': 'Ctrl+Z',
2187
+ 'Redo': 'Ctrl+Y',
2188
+ 'Copy': 'Ctrl+C',
2189
+ 'Cut': 'Ctrl+X',
2190
+ 'Paste': 'Ctrl+V',
2191
+ 'Bold': 'Ctrl+B',
2192
+ 'Italic': 'Ctrl+I',
2193
+ 'Underline': 'Ctrl+U',
2194
+ 'Strikethrough': 'Ctrl+Shift+S',
2195
+ 'Upper Case': 'Ctrl+Shift+U',
2196
+ 'Lower Case': 'Ctrl+Shift+L',
2197
+ 'Superscript': 'Ctrl+Shift+=',
2198
+ 'Subscript': 'Ctrl+=',
2199
+ 'Code View': 'Ctrl+Shift+H',
2200
+ 'Maximize': 'Ctrl+Shift+F',
2191
2201
  'Minimize': 'Esc',
2192
- 'Clear Format': 'Ctrl + Shift + R',
2193
- 'Numbered List': 'Ctrl + Shift + O',
2194
- 'Bulleted List': 'Ctrl + Alt + O',
2195
- 'Format Painter': 'Alt + Shift + C, Alt + Shift + V'
2202
+ 'Clear Format': 'Ctrl+Shift+R',
2203
+ 'Numbered List': 'Ctrl+Shift+O',
2204
+ 'Bulleted List': 'Ctrl+Alt+O',
2205
+ 'Number Format List': 'Ctrl+Shift+O',
2206
+ 'Bullet Format List': 'Ctrl+Alt+O',
2207
+ 'Insert Audio': 'Ctrl+Shift+A',
2208
+ 'Insert Video': 'Ctrl+Shift+V',
2209
+ 'Increase Indent': 'Ctrl+]',
2210
+ 'Decrease Indent': 'Ctrl+[',
2211
+ 'Decrease Fontsize': 'Ctrl+Shift+<',
2212
+ 'Increase Fontsize': 'Ctrl+Shift+>',
2213
+ 'Justify Center': 'Ctrl+E',
2214
+ 'Justify Full': 'Ctrl+J',
2215
+ 'Justify Left': 'Ctrl+L',
2216
+ 'Justify Right': 'Ctrl+R',
2217
+ 'Format Painter': 'Alt+Shift+C, Alt+Shift+V'
2196
2218
  };
2197
2219
  var defaultEmojiIcons = [{
2198
2220
  name: 'Smilies & People', code: '1F600', iconCss: 'e-emoji', icons: [{ code: '1F600', desc: 'Grinning face' },
@@ -2863,7 +2885,7 @@ function setToolbarStatus(e, isPopToolbar, self) {
2863
2885
  }
2864
2886
  }
2865
2887
  else if ((typeof data["" + key] === 'string' || data["" + key] === null) &&
2866
- getIndex(key, e.parent.toolbarSettings.items) > -1) {
2888
+ getIndex(key, e.parent.toolbarSettings.items) >= -1) {
2867
2889
  var value = ((data["" + key]) ? data["" + key] : '');
2868
2890
  var result = '';
2869
2891
  switch (key) {
@@ -2928,6 +2950,10 @@ function setToolbarStatus(e, isPopToolbar, self) {
2928
2950
  dropDown.fontSizeDropDown.dataBind();
2929
2951
  break;
2930
2952
  }
2953
+ case 'bulletFormatList':
2954
+ case 'numberFormatList': {
2955
+ removeClass([e.tbElements[j]], [CLS_ACTIVE]);
2956
+ }
2931
2957
  }
2932
2958
  }
2933
2959
  }
@@ -3293,9 +3319,13 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3293
3319
  * Constructor for toolbar renderer module
3294
3320
  *
3295
3321
  * @param {IRichTextEditor} parent - specifies the parent element.
3322
+ * @param {ServiceLocator} serviceLocator - specifies the serviceLocator
3296
3323
  */
3297
- function ToolbarRenderer(parent) {
3324
+ function ToolbarRenderer(parent, serviceLocator) {
3298
3325
  this.parent = parent;
3326
+ if (serviceLocator) {
3327
+ this.l10n = serviceLocator.getService('rteLocale');
3328
+ }
3299
3329
  this.wireEvent();
3300
3330
  }
3301
3331
  ToolbarRenderer.prototype.wireEvent = function () {
@@ -3303,7 +3333,11 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3303
3333
  this.parent.on(maximizeMinimizeClick, this.destroyTooltip, this);
3304
3334
  };
3305
3335
  ToolbarRenderer.prototype.destroyTooltip = function () {
3306
- this.tooltip.close();
3336
+ if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap')) && !isNullOrUndefined(document.querySelector(' [data-tooltip-id]'))) {
3337
+ var tooltipTargetEle = document.querySelector('#' + (this.parent.element).id + ' [data-tooltip-id]');
3338
+ var event_1 = new MouseEvent('mouseleave', { bubbles: true, cancelable: true });
3339
+ tooltipTargetEle.dispatchEvent(event_1);
3340
+ }
3307
3341
  };
3308
3342
  ToolbarRenderer.prototype.unWireEvent = function () {
3309
3343
  this.parent.off(destroy, this.unWireEvent);
@@ -3339,6 +3373,22 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3339
3373
  }
3340
3374
  this.parent.notify(beforeDropDownItemRender, args);
3341
3375
  };
3376
+ ToolbarRenderer.prototype.tooltipBeforeRender = function (args) {
3377
+ if (!isNullOrUndefined(args.target.getAttribute('title'))) {
3378
+ var tooltipTarget = args.target.getAttribute('title');
3379
+ var tooltipText = void 0;
3380
+ switch (tooltipTarget) {
3381
+ case 'Minimize':
3382
+ tooltipText = this.l10n.getConstant('minimize');
3383
+ args.target.setAttribute('title', tooltipText + ' (Esc)');
3384
+ break;
3385
+ case 'Maximize':
3386
+ tooltipText = this.l10n.getConstant('maximize');
3387
+ args.target.setAttribute('title', tooltipText + ' (Ctrl+Shift+F)');
3388
+ break;
3389
+ }
3390
+ }
3391
+ };
3342
3392
  ToolbarRenderer.prototype.dropDownOpen = function (args) {
3343
3393
  if (args.element.parentElement.getAttribute('id').indexOf('TableCell') > -1 && !isNullOrUndefined(args.element.parentElement.querySelector('.e-cell-merge')) &&
3344
3394
  (!isNullOrUndefined(args.element.parentElement.querySelector('.e-cell-horizontal-split')) || !isNullOrUndefined(args.element.parentElement.querySelector('.e-cell-vertical-split')))) {
@@ -3404,6 +3454,8 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3404
3454
  target: '#' + this.parent.getID() + '_toolbar_wrapper [title]',
3405
3455
  showTipPointer: true,
3406
3456
  openDelay: 400,
3457
+ opensOn: 'Hover',
3458
+ beforeRender: this.tooltipBeforeRender.bind(this),
3407
3459
  cssClass: this.parent.cssClass,
3408
3460
  windowCollision: true,
3409
3461
  position: 'BottomCenter'
@@ -4769,7 +4821,7 @@ var Toolbar$2 = /** @__PURE__ @class */ (function () {
4769
4821
  this.renderFactory = this.locator.getService('rendererFactory');
4770
4822
  updateDropDownLocale(this.parent);
4771
4823
  updateDropDownFontFormatLocale(this.parent);
4772
- this.renderFactory.addRenderer(RenderType.Toolbar, new ToolbarRenderer(this.parent));
4824
+ this.renderFactory.addRenderer(RenderType.Toolbar, new ToolbarRenderer(this.parent, this.locator));
4773
4825
  this.toolbarRenderer = this.renderFactory.getRenderer(RenderType.Toolbar);
4774
4826
  this.baseToolbar = new BaseToolbar(this.parent, this.locator);
4775
4827
  this.addEventListener();
@@ -5243,6 +5295,9 @@ var Toolbar$2 = /** @__PURE__ @class */ (function () {
5243
5295
  * @deprecated
5244
5296
  */
5245
5297
  Toolbar$$1.prototype.destroy = function () {
5298
+ if (isNullOrUndefined(this.parent)) {
5299
+ return;
5300
+ }
5246
5301
  if (this.isToolbarDestroyed()) {
5247
5302
  this.destroyToolbar();
5248
5303
  if (this.keyBoardModule) {
@@ -5967,6 +6022,9 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
5967
6022
  else if (args.popupType === 'Inline') {
5968
6023
  className = CLS_INLINE_POP;
5969
6024
  }
6025
+ else if (args.popupType === 'Text') {
6026
+ className = CLS_TEXT_POP;
6027
+ }
5970
6028
  else {
5971
6029
  className = '';
5972
6030
  }
@@ -6046,7 +6104,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6046
6104
  case 'bottom': {
6047
6105
  var posY = void 0;
6048
6106
  if (viewPort === 'document') {
6049
- if (type === 'inline') {
6107
+ if (type === 'inline' || type === 'text') {
6050
6108
  posY = (e.y - e.popHeight - 10);
6051
6109
  }
6052
6110
  else {
@@ -6075,7 +6133,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6075
6133
  break;
6076
6134
  }
6077
6135
  case 'right':
6078
- if (type === 'inline') {
6136
+ if (type === 'inline' || type === 'text') {
6079
6137
  x = window.pageXOffset + (e.windowWidth - (e.popWidth + e.bodyRightSpace + 10));
6080
6138
  }
6081
6139
  else {
@@ -6083,7 +6141,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6083
6141
  }
6084
6142
  break;
6085
6143
  case 'left':
6086
- if (type === 'inline') {
6144
+ if (type === 'inline' || type === 'text') {
6087
6145
  x = 0;
6088
6146
  }
6089
6147
  else {
@@ -6102,11 +6160,12 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6102
6160
  * @param {number} x - specifies the x value
6103
6161
  * @param {number} y - specifies the y value
6104
6162
  * @param {Element} target - specifies the element
6163
+ * @param {string} type - specifies the type
6105
6164
  * @returns {void}
6106
6165
  * @hidden
6107
6166
  * @deprecated
6108
6167
  */
6109
- BaseQuickToolbar.prototype.showPopup = function (x, y, target) {
6168
+ BaseQuickToolbar.prototype.showPopup = function (x, y, target, type) {
6110
6169
  var _this = this;
6111
6170
  var eventArgs = { popup: this.popupObj, cancel: false, targetElement: target,
6112
6171
  positionX: x, positionY: y };
@@ -6137,7 +6196,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6137
6196
  editPanelTop = (cntEle) ? cntEle.scrollTop : 0;
6138
6197
  editPanelHeight = (cntEle) ? cntEle.offsetHeight : 0;
6139
6198
  }
6140
- if (!_this.parent.inlineMode.enable && !closest(target, 'table')) {
6199
+ if (!_this.parent.inlineMode.enable && !closest(target, 'table') && type !== 'text') {
6141
6200
  _this.parent.disableToolbarItem(_this.parent.toolbarSettings.items);
6142
6201
  _this.parent.enableToolbarItem(['Undo', 'Redo']);
6143
6202
  }
@@ -6190,7 +6249,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6190
6249
  if (!_this.parent.inlineMode.enable) {
6191
6250
  _this.checkCollision(showPopupData, 'parent', '');
6192
6251
  }
6193
- _this.checkCollision(showPopupData, 'document', ((_this.parent.inlineMode.enable) ? 'inline' : ''));
6252
+ _this.checkCollision(showPopupData, 'document', ((_this.parent.inlineMode.enable) ? 'inline' : (type === 'text') ? 'text' : ''));
6194
6253
  _this.popupObj.element.classList.remove('e-popup-open');
6195
6254
  removeClass([_this.element], [CLS_HIDE]);
6196
6255
  _this.popupObj.show({ name: 'ZoomIn', duration: (Browser.isIE ? 250 : 400) });
@@ -6520,8 +6579,10 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6520
6579
  }
6521
6580
  this.linkQTBar = this.createQTBar('Link', 'Scrollable', this.parent.quickToolbarSettings.link, RenderType.LinkToolbar);
6522
6581
  this.renderFactory.addRenderer(RenderType.LinkToolbar, this.linkQTBar);
6523
- this.textQTBar = this.createQTBar('Text', 'Scrollable', this.parent.quickToolbarSettings.text, RenderType.TextToolbar);
6524
- this.renderFactory.addRenderer(RenderType.TextToolbar, this.textQTBar);
6582
+ if (!isNullOrUndefined(this.parent.quickToolbarSettings.text) && !this.parent.inlineMode.enable) {
6583
+ this.textQTBar = this.createQTBar('Text', 'MultiRow', this.parent.quickToolbarSettings.text, RenderType.TextToolbar);
6584
+ this.renderFactory.addRenderer(RenderType.TextToolbar, this.textQTBar);
6585
+ }
6525
6586
  this.imageQTBar = this.createQTBar('Image', 'MultiRow', this.parent.quickToolbarSettings.image, RenderType.ImageToolbar);
6526
6587
  this.renderFactory.addRenderer(RenderType.ImageToolbar, this.imageQTBar);
6527
6588
  this.audioQTBar = this.createQTBar('Audio', 'MultiRow', this.parent.quickToolbarSettings.audio, RenderType.AudioToolbar);
@@ -6663,6 +6724,24 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6663
6724
  }
6664
6725
  }
6665
6726
  }
6727
+ if (!isNullOrUndefined(this.textQTBar) && !isNullOrUndefined(this.parent.quickToolbarSettings.text) && !this.parent.inlineMode.enable) {
6728
+ var args = e.args.touches ?
6729
+ e.args.changedTouches[0] : e.args;
6730
+ var target = e.args.target;
6731
+ this.hideQuickToolbars();
6732
+ var parentLeft = this.parent.element.getBoundingClientRect().left;
6733
+ this.offsetX = this.parent.iframeSettings.enable ? this.parent.element.ownerDocument.documentElement.scrollLeft
6734
+ + parentLeft + args.clientX : args.pageX;
6735
+ this.offsetY = pageYOffset(args, this.parent.element, this.parent.iframeSettings.enable);
6736
+ var range = this.parent.getRange();
6737
+ if ((range.endContainer.parentElement.tagName === range.startContainer.parentElement.tagName && (range.startContainer.parentElement.tagName === 'A' && range.endContainer.parentElement.tagName === 'A')) ||
6738
+ (target.tagName === 'IMG') || (target.tagName === 'VIDEO') || (target.tagName === 'AUDIO') || (target.childNodes[0].nodeType === 1 && target.childNodes[0].classList.contains('e-rte-audio')) ||
6739
+ (this.parent.getRange().startOffset === this.parent.getRange().endOffset)) {
6740
+ return;
6741
+ }
6742
+ this.target = target;
6743
+ this.textQTBar.showPopup(this.offsetX, this.offsetY, target, 'text');
6744
+ }
6666
6745
  };
6667
6746
  QuickToolbar.prototype.keyDownHandler = function () {
6668
6747
  if ((this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice()))
@@ -6675,6 +6754,11 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6675
6754
  && !isNullOrUndefined(select('.' + CLS_INLINE_POP, document))) {
6676
6755
  this.hideInlineQTBar();
6677
6756
  }
6757
+ if (!isNullOrUndefined(this.parent.quickToolbarSettings.text)) {
6758
+ if (this.textQTBar && !hasClass(this.textQTBar.element, 'e-popup-close') && document.body.contains(this.textQTBar.element)) {
6759
+ this.textQTBar.hidePopup();
6760
+ }
6761
+ }
6678
6762
  };
6679
6763
  QuickToolbar.prototype.keyUpHandler = function (e) {
6680
6764
  if (this.parent.inlineMode.enable && !Browser.isDevice) {
@@ -6727,6 +6811,9 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6727
6811
  * @deprecated
6728
6812
  */
6729
6813
  QuickToolbar.prototype.destroy = function () {
6814
+ if (isNullOrUndefined(this.parent)) {
6815
+ return;
6816
+ }
6730
6817
  if (this.linkQTBar) {
6731
6818
  EventHandler.remove(this.linkQTBar.element, 'mousedown', this.onMouseDown);
6732
6819
  EventHandler.remove(this.linkQTBar.element, 'keyup', this.keyUpQT);
@@ -6833,6 +6920,7 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6833
6920
  this.parent.on(keyDown, this.onKeyDown, this);
6834
6921
  this.parent.on(rtlMode, this.setRtl, this);
6835
6922
  this.parent.on(bindCssClass, this.setCssClass, this);
6923
+ this.parent.on(hidePopup, this.hideQuickToolbars, this);
6836
6924
  };
6837
6925
  QuickToolbar.prototype.onKeyDown = function (e) {
6838
6926
  var args = e.args;
@@ -6886,6 +6974,9 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6886
6974
  if (this.linkQTBar) {
6887
6975
  this.linkQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });
6888
6976
  }
6977
+ if (this.textQTBar) {
6978
+ this.textQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });
6979
+ }
6889
6980
  };
6890
6981
  /**
6891
6982
  * removeEventListener
@@ -6914,6 +7005,7 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6914
7005
  this.parent.off(keyDown, this.onKeyDown);
6915
7006
  this.parent.off(rtlMode, this.setRtl);
6916
7007
  this.parent.off(bindCssClass, this.setCssClass);
7008
+ this.parent.off(hidePopup, this.hideQuickToolbars);
6917
7009
  };
6918
7010
  /**
6919
7011
  * Called internally if any of the property value changed.
@@ -10097,6 +10189,9 @@ var MarkdownEditor = /** @__PURE__ @class */ (function () {
10097
10189
  * @deprecated
10098
10190
  */
10099
10191
  MarkdownEditor.prototype.destroy = function () {
10192
+ if (isNullOrUndefined(this.parent)) {
10193
+ return;
10194
+ }
10100
10195
  this.removeEventListener();
10101
10196
  };
10102
10197
  MarkdownEditor.prototype.moduleDestroy = function () {
@@ -11239,11 +11334,12 @@ var DOMNode = /** @__PURE__ @class */ (function () {
11239
11334
  var startTextNode;
11240
11335
  var endTextNode;
11241
11336
  if (start.textContent === '' && isNullOrUndefined(end) && action !== 'tab') {
11242
- if (isNullOrUndefined(action) && save.range.startContainer.nodeType === 1 &&
11243
- save.range.startContainer.querySelectorAll('audio,video,image').length === 0) {
11244
- start.innerHTML = '<br>';
11245
- }
11246
- else if (start.childNodes.length === 1 && start.childNodes[0].nodeName === 'BR') {
11337
+ // To Do Apply Heading and Back space press in empty content.
11338
+ // if (isNOU(action) && save.range.startContainer.nodeType === 1 &&
11339
+ // (save.range.startContainer as HTMLElement).querySelectorAll('audio,video,image').length === 0) {
11340
+ // start.innerHTML = '<br>';
11341
+ // }
11342
+ if (start.childNodes.length === 1 && start.childNodes[0].nodeName === 'BR') {
11247
11343
  start.innerHTML = '&#65279;&#65279;<br>';
11248
11344
  }
11249
11345
  else {
@@ -13125,7 +13221,7 @@ var InsertHtml = /** @__PURE__ @class */ (function () {
13125
13221
  var range = nodeSelection.getRange(docElement);
13126
13222
  if (range.startContainer === editNode && range.startContainer === range.endContainer && range.startOffset === 0 &&
13127
13223
  range.startOffset === range.endOffset && editNode.textContent.length === 0 &&
13128
- (editNode.children[0].tagName === 'P' || (editNode.children[0].tagName === 'BR'))) {
13224
+ (editNode.children[0].tagName === 'P' || editNode.children[0].tagName === 'DIV' || (editNode.children[0].tagName === 'BR'))) {
13129
13225
  nodeSelection.setSelectionText(docElement, range.startContainer.children[0], range.startContainer.children[0], 0, 0);
13130
13226
  range = nodeSelection.getRange(docElement);
13131
13227
  }
@@ -14995,7 +15091,7 @@ var TableCommand = /** @__PURE__ @class */ (function () {
14995
15091
  TableCommand.prototype.calculateStyleValue = function (value) {
14996
15092
  var styleValue;
14997
15093
  if (typeof (value) === 'string') {
14998
- if (value.indexOf('px') || value.indexOf('%') || value.indexOf('auto')) {
15094
+ if (value.indexOf('px') >= 0 || value.indexOf('%') >= 0 || value.indexOf('auto') >= 0) {
14999
15095
  styleValue = value;
15000
15096
  }
15001
15097
  else {
@@ -16851,7 +16947,7 @@ var SelectionBasedExec = /** @__PURE__ @class */ (function () {
16851
16947
  SelectionBasedExec.prototype.keyDownHandler = function (e) {
16852
16948
  var validFormats = ['bold', 'italic', 'underline', 'strikethrough', 'superscript',
16853
16949
  'subscript', 'uppercase', 'lowercase'];
16854
- if (e.event.ctrlKey && validFormats.indexOf(e.event.action) > -1) {
16950
+ if ((e.event.ctrlKey || e.event.metaKey) && validFormats.indexOf(e.event.action) > -1) {
16855
16951
  e.event.preventDefault();
16856
16952
  SelectionCommands.applyFormat(this.parent.currentDocument, e.event.action, this.parent.editableElement, e.enterAction);
16857
16953
  this.callBack(e, e.event.action);
@@ -17497,6 +17593,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17497
17593
  'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω'];
17498
17594
  this.removableElements = ['o:p', 'style'];
17499
17595
  this.listContents = [];
17596
+ this.cropImageDimensions = [];
17500
17597
  this.parent = parent;
17501
17598
  this.addEventListener();
17502
17599
  }
@@ -17546,7 +17643,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17546
17643
  }
17547
17644
  }
17548
17645
  }
17549
- e.callBack(elm.innerHTML);
17646
+ e.callBack(elm.innerHTML, this.cropImageDimensions);
17550
17647
  }
17551
17648
  else {
17552
17649
  e.callBack(elm.innerHTML);
@@ -17614,7 +17711,8 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17614
17711
  imgElem[i].getAttribute('v:shapes').indexOf('Grafik') < 0 &&
17615
17712
  imgElem[i].getAttribute('v:shapes').toLowerCase().indexOf('image') < 0 &&
17616
17713
  imgElem[i].getAttribute('v:shapes').indexOf('Graphic') < 0 &&
17617
- imgElem[i].getAttribute('v:shapes').indexOf('_x0000_s') < 0) {
17714
+ imgElem[i].getAttribute('v:shapes').indexOf('_x0000_s') < 0 &&
17715
+ imgElem[i].getAttribute('v:shapes').indexOf('_x0000_i') < 0) {
17618
17716
  detach(imgElem[i]);
17619
17717
  }
17620
17718
  }
@@ -17631,14 +17729,36 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17631
17729
  }
17632
17730
  var hexValue = this.hexConversion(rtfData);
17633
17731
  for (var i = 0; i < hexValue.length; i++) {
17634
- base64Src.push(this.convertToBase64(hexValue[i]));
17732
+ base64Src.push({
17733
+ base64Data: !isNullOrUndefined(hexValue[i].hex) ? this.convertToBase64(hexValue[i]) : null,
17734
+ isCroppedImage: hexValue[i].isCroppedImage
17735
+ });
17736
+ if (hexValue[i].isCroppedImage) {
17737
+ this.cropImageDimensions.push({
17738
+ goalWidth: hexValue[i].goalWidth,
17739
+ goalHeight: hexValue[i].goalHeight,
17740
+ cropLength: hexValue[i].cropLength,
17741
+ cropTop: hexValue[i].cropTop,
17742
+ cropR: hexValue[i].cropR,
17743
+ cropB: hexValue[i].cropB
17744
+ });
17745
+ }
17635
17746
  }
17636
17747
  for (var i = 0; i < imgElem.length; i++) {
17637
17748
  if (imgSrc[i].match(linkRegex)) {
17638
17749
  imgElem[i].setAttribute('src', imgSrc[i]);
17639
17750
  }
17640
17751
  else {
17641
- imgElem[i].setAttribute('src', base64Src[i]);
17752
+ if (!isNullOrUndefined(base64Src[i]) && !isNullOrUndefined(base64Src[i].base64Data)) {
17753
+ imgElem[i].setAttribute('src', base64Src[i].base64Data);
17754
+ }
17755
+ else {
17756
+ imgElem[i].removeAttribute('src');
17757
+ imgElem[i].setAttribute('alt', 'Unsupported file format');
17758
+ }
17759
+ if (!isNullOrUndefined(base64Src[i]) && base64Src[i].isCroppedImage) {
17760
+ imgElem[i].classList.add('e-img-cropped');
17761
+ }
17642
17762
  }
17643
17763
  imgElem[i].setAttribute('id', 'msWordImg-' + imgName[i]);
17644
17764
  }
@@ -17715,6 +17835,13 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17715
17835
  var result = [];
17716
17836
  if (!isNullOrUndefined(fullImg)) {
17717
17837
  for (var i = 0; i < fullImg.length; i++) {
17838
+ var isCroppedImage = false;
17839
+ var goalWidth = 0;
17840
+ var goalHeight = 0;
17841
+ var cropLength = 0;
17842
+ var cropTop = 0;
17843
+ var cropR = 0;
17844
+ var cropB = 0;
17718
17845
  if (picHead.test(fullImg[i])) {
17719
17846
  if (fullImg[i].indexOf('\\pngblip') !== -1) {
17720
17847
  imgType = 'image/png';
@@ -17722,20 +17849,45 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17722
17849
  else if (fullImg[i].indexOf('\\jpegblip') !== -1) {
17723
17850
  imgType = 'image/jpeg';
17724
17851
  }
17852
+ else if (fullImg[i].indexOf('\\picprop') !== -1) {
17853
+ imgType = null;
17854
+ }
17725
17855
  else {
17726
17856
  continue;
17727
17857
  }
17858
+ isCroppedImage = this.extractCropValue('cropl', fullImg[i]) > 0 &&
17859
+ this.extractCropValue('cropt', fullImg[i]) > 0 ? true : false;
17860
+ if (isCroppedImage) {
17861
+ goalWidth = this.extractCropValue('wgoal', fullImg[i]);
17862
+ goalHeight = this.extractCropValue('hgoal', fullImg[i]);
17863
+ cropLength = this.extractCropValue('cropl', fullImg[i]);
17864
+ cropTop = this.extractCropValue('cropt', fullImg[i]);
17865
+ cropR = this.extractCropValue('cropr', fullImg[i]);
17866
+ cropB = this.extractCropValue('cropb', fullImg[i]);
17867
+ }
17728
17868
  result.push({
17729
17869
  hex: imgType ? fullImg[i].replace(picHead, '').replace(/[^\da-fA-F]/g, '') : null,
17730
- type: imgType
17870
+ type: imgType,
17871
+ isCroppedImage: isCroppedImage,
17872
+ goalWidth: goalWidth,
17873
+ goalHeight: goalHeight,
17874
+ cropLength: cropLength,
17875
+ cropTop: cropTop,
17876
+ cropR: cropR,
17877
+ cropB: cropB
17731
17878
  });
17732
17879
  }
17733
17880
  }
17734
17881
  }
17735
17882
  return result;
17736
17883
  };
17884
+ MsWordPaste.prototype.extractCropValue = function (crop, rtfData) {
17885
+ // eslint-disable-next-line security/detect-non-literal-regexp
17886
+ var result = new RegExp('\\\\pic' + crop + '(\\-?\\d+)\\\\').exec(rtfData.replace('\r\n\\', '\\'))[1];
17887
+ return parseInt(result, 10);
17888
+ };
17737
17889
  MsWordPaste.prototype.removeClassName = function (elm) {
17738
- var elmWithClass = elm.querySelectorAll('*[class]');
17890
+ var elmWithClass = elm.querySelectorAll('*[class]:not(.e-img-cropped)');
17739
17891
  for (var i = 0; i < elmWithClass.length; i++) {
17740
17892
  elmWithClass[i].removeAttribute('class');
17741
17893
  }
@@ -18072,8 +18224,10 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18072
18224
  currentListStyle = listNodes[i].getAttribute('style');
18073
18225
  }
18074
18226
  }
18075
- collection.push({ listType: type, content: tempNode, nestedLevel: level, class: currentClassName,
18076
- listStyle: currentListStyle, listStyleTypeName: listStyleType, start: startAttr, styleMarginLeft: styleMarginLeft });
18227
+ collection.push({
18228
+ listType: type, content: tempNode, nestedLevel: level, class: currentClassName,
18229
+ listStyle: currentListStyle, listStyleTypeName: listStyleType, start: startAttr, styleMarginLeft: styleMarginLeft
18230
+ });
18077
18231
  }
18078
18232
  }
18079
18233
  stNode = listNodes.shift();
@@ -18170,10 +18324,20 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18170
18324
  temp.style.listStyleType = collection[index].listStyleTypeName;
18171
18325
  }
18172
18326
  else if (collection[index].nestedLevel === pLevel) {
18173
- if (prevList.parentElement.tagName.toLowerCase() === collection[index].listType) {
18327
+ if (!isNullOrUndefined(prevList) && !isNullOrUndefined(prevList.parentElement)
18328
+ && prevList.parentElement.tagName.toLowerCase() === collection[index].listType) {
18174
18329
  prevList.parentElement.appendChild(prevList = createElement('li'));
18175
18330
  prevList.appendChild(pElement);
18176
18331
  }
18332
+ else if (isNullOrUndefined(prevList)) {
18333
+ temp = createElement(collection[index].listType);
18334
+ temp.style.listStyleType = collection[index].listStyleTypeName;
18335
+ prevList = createElement('li');
18336
+ prevList.appendChild(pElement);
18337
+ temp.appendChild(prevList);
18338
+ temp.setAttribute('level', collection[index].nestedLevel.toString());
18339
+ root.appendChild(temp);
18340
+ }
18177
18341
  else {
18178
18342
  temp = createElement(collection[index].listType);
18179
18343
  temp.style.listStyleType = collection[index].listStyleTypeName;
@@ -18201,8 +18365,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18201
18365
  }
18202
18366
  else {
18203
18367
  if (collection[index].nestedLevel > pLevel && isNormalList) {
18204
- var initialNode = void 0;
18205
- initialNode = createElement(collection[index].listType);
18368
+ var initialNode = createElement(collection[index].listType);
18206
18369
  prevList = createElement('li');
18207
18370
  initialNode.appendChild(prevList);
18208
18371
  initialNode.style.listStyleType = 'none';
@@ -18291,7 +18454,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18291
18454
  if (firstChild.childNodes.length > 0) {
18292
18455
  var listIgnoreTag = firstChild.querySelectorAll('[style*="mso-list"]');
18293
18456
  for (var i = 0; i < listIgnoreTag.length; i++) {
18294
- listIgnoreTag[i].setAttribute('style', listIgnoreTag[i].getAttribute('style').replace(/\n/g, ""));
18457
+ listIgnoreTag[i].setAttribute('style', listIgnoreTag[i].getAttribute('style').replace(/\n/g, ''));
18295
18458
  }
18296
18459
  var listOrder = firstChild.querySelector('span[style="mso-list:Ignore"]');
18297
18460
  if (!isNullOrUndefined(listOrder)) {
@@ -19902,7 +20065,7 @@ var XhtmlValidation = /** @__PURE__ @class */ (function () {
19902
20065
  */
19903
20066
  XhtmlValidation.prototype.selfEncloseValidation = function (currentValue, valueLength) {
19904
20067
  if (valueLength === 0 && currentValue.indexOf('table') < 0 && currentValue.indexOf('img') < 0 &&
19905
- currentValue !== '<p><br></p>' && currentValue !== '<div><br></div>' && currentValue !== '<br>') {
20068
+ currentValue.includes('&nbsp;')) {
19906
20069
  var arrayValue = currentValue.split('&nbsp;');
19907
20070
  arrayValue[arrayValue.length - 1] = '&#8203;' + arrayValue[arrayValue.length - 1];
19908
20071
  currentValue = arrayValue.join('');
@@ -20144,11 +20307,24 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20144
20307
  var currentLength = this.parent.inputElement.innerHTML.replace(regEx, '').length;
20145
20308
  var focusNode = range.startContainer;
20146
20309
  if (previousLength > currentLength && !isRootParent) {
20310
+ if (focusNode.textContent.trim().length !== 0 && focusNode.previousSibling) {
20311
+ var tempSpan = document.createElement('span');
20312
+ tempSpan.className = 'tempSpan';
20313
+ range.insertNode(tempSpan);
20314
+ }
20147
20315
  var currentChild = this.parent.inputElement.firstChild;
20148
20316
  while (!isNullOrUndefined(currentChild) && currentChild.textContent.replace(regEx, '').trim().length > 0) {
20149
20317
  currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');
20150
20318
  currentChild = currentChild.nextElementSibling;
20151
20319
  }
20320
+ var tempSpanToRemove = this.parent.inputElement.querySelector('.tempSpan');
20321
+ if (tempSpanToRemove && tempSpanToRemove.previousSibling && focusNode.textContent.trim().length !== 0) {
20322
+ focusNode = tempSpanToRemove.previousSibling;
20323
+ pointer = tempSpanToRemove.previousSibling.textContent.length;
20324
+ var parentElement = tempSpanToRemove.parentNode;
20325
+ parentElement.removeChild(tempSpanToRemove);
20326
+ tempSpanToRemove = null;
20327
+ }
20152
20328
  var currentChildNode = this.parent.inputElement.querySelector('.currentStartMark').childNodes;
20153
20329
  if (currentChildNode.length > 1) {
20154
20330
  for (var i = 0; i < currentChildNode.length; i++) {
@@ -20603,7 +20779,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20603
20779
  var item = args.item;
20604
20780
  var closestElement = closest(args.originalEvent.target, '.e-rte-quick-popup');
20605
20781
  if (item.command !== 'FormatPainter') {
20606
- if (closestElement && !closestElement.classList.contains('e-rte-inline-popup')) {
20782
+ if (closestElement && !closestElement.classList.contains('e-rte-inline-popup') && !closestElement.classList.contains('e-rte-text-popup')) {
20607
20783
  if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
20608
20784
  item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {
20609
20785
  if (isIDevice$1() && item.command === 'Images') {
@@ -20875,6 +21051,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
20875
21051
  'header', 'article', 'nav', 'footer', 'section', 'aside', 'main', 'figure', 'figcaption'];
20876
21052
  this.isNotFromHtml = false;
20877
21053
  this.containsHtml = false;
21054
+ this.cropImageData = [];
20878
21055
  this.parent = parent;
20879
21056
  this.locator = serviceLocator;
20880
21057
  this.renderFactory = this.locator.getService('rendererFactory');
@@ -20955,8 +21132,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
20955
21132
  args: e.args,
20956
21133
  text: e.text,
20957
21134
  allowedStylePropertiesArray: this.parent.pasteCleanupSettings.allowedStyleProps,
20958
- callBack: function (a) {
21135
+ callBack: function (a, cropImageData) {
20959
21136
  value = a.trim();
21137
+ _this.cropImageData = cropImageData;
20960
21138
  }
20961
21139
  });
20962
21140
  }
@@ -21005,7 +21183,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21005
21183
  currentFocusNode = currentFocusNode.childNodes[_this.nodeSelectionObj.getRange(_this.contentRenderer.getDocument()).startOffset];
21006
21184
  }
21007
21185
  if (currentFocusNode.previousSibling.nodeName === 'IMG') {
21008
- currentFocusNode.previousSibling.classList.add('pasteContent_Img');
21186
+ if (!isNullOrUndefined(currentFocusNode.previousSibling.getAttribute('src'))) {
21187
+ currentFocusNode.previousSibling.classList.add('pasteContent_Img');
21188
+ }
21009
21189
  currentFocusNode.previousSibling.classList.add(CLS_RTE_IMAGE);
21010
21190
  if (_this.parent.insertImageSettings.display === 'inline') {
21011
21191
  currentFocusNode.previousSibling.classList.add(CLS_IMGINLINE);
@@ -21037,6 +21217,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21037
21217
  PasteCleanup.prototype.makeSpace = function (enterSplitText) {
21038
21218
  var contentWithSpace = '';
21039
21219
  var spaceBetweenContent = true;
21220
+ enterSplitText = enterSplitText.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
21040
21221
  var spaceSplit = enterSplitText.split(' ');
21041
21222
  for (var j = 0; j < spaceSplit.length; j++) {
21042
21223
  if (spaceSplit[j].trim() === '') {
@@ -21056,7 +21237,8 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21056
21237
  var imgName = [];
21057
21238
  var uploadImg = [];
21058
21239
  for (var i = 0; i < allImgElm.length; i++) {
21059
- if (allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {
21240
+ if (!isNullOrUndefined(allImgElm[i].getAttribute('src')) &&
21241
+ allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {
21060
21242
  base64Src.push(allImgElm[i].getAttribute('src'));
21061
21243
  imgName.push(getUniqueID('rte_image'));
21062
21244
  uploadImg.push(allImgElm[i]);
@@ -21137,8 +21319,6 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21137
21319
  setTimeout(function () {
21138
21320
  _this.refreshPopup(imgElem, _this.popupObj);
21139
21321
  }, timeOut);
21140
- var rawFile;
21141
- var beforeUploadArgs;
21142
21322
  this.uploadObj = new Uploader({
21143
21323
  asyncSettings: {
21144
21324
  saveUrl: this.parent.insertImageSettings.saveUrl,
@@ -21170,28 +21350,8 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21170
21350
  }
21171
21351
  },
21172
21352
  beforeUpload: function (args) {
21173
- if (_this.parent.isServerRendered) {
21174
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
21175
- beforeUploadArgs.filesData = rawFile;
21176
- args.cancel = true;
21177
- _this.parent.trigger(imageUploading, beforeUploadArgs, function (beforeUploadArgs) {
21178
- if (beforeUploadArgs.cancel) {
21179
- return;
21180
- }
21181
- _this.toolbarEnableDisable(true);
21182
- /* eslint-disable */
21183
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
21184
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
21185
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
21186
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
21187
- _this.uploadObj.uploadFiles(rawFile, null);
21188
- /* eslint-enable */
21189
- });
21190
- }
21191
- else {
21192
- _this.parent.trigger(beforeImageUpload, args);
21193
- _this.toolbarEnableDisable(true);
21194
- }
21353
+ _this.parent.trigger(beforeImageUpload, args);
21354
+ _this.toolbarEnableDisable(true);
21195
21355
  },
21196
21356
  // eslint-disable-next-line
21197
21357
  failure: function (e) {
@@ -21209,9 +21369,6 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21209
21369
  },
21210
21370
  selected: function (e) {
21211
21371
  e.cancel = true;
21212
- if (_this.parent.isServerRendered) {
21213
- rawFile = e.filesData;
21214
- }
21215
21372
  },
21216
21373
  removing: function () {
21217
21374
  _this.parent.inputElement.contentEditable = 'true';
@@ -21233,8 +21390,6 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21233
21390
  statusCode: '1'
21234
21391
  }];
21235
21392
  this.uploadObj.createFileList(fileData);
21236
- /* eslint-enable */
21237
- rawFile = fileData;
21238
21393
  this.uploadObj.upload(fileData);
21239
21394
  this.popupObj.element.getElementsByClassName('e-file-select-wrap')[0].style.display = 'none';
21240
21395
  detach(this.popupObj.element.querySelector('.e-rte-dialog-upload .e-file-select-wrap'));
@@ -21309,7 +21464,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21309
21464
  * @deprecated
21310
21465
  */
21311
21466
  PasteCleanup.prototype.imageFormatting = function (pasteArgs, imgElement) {
21312
- imgElement.elements[0].classList.add('pasteContent_Img');
21467
+ if (!isNullOrUndefined(imgElement.elements[0].getAttribute('src'))) {
21468
+ imgElement.elements[0].classList.add('pasteContent_Img');
21469
+ }
21313
21470
  var imageElement = this.parent.createElement('span');
21314
21471
  imageElement.appendChild(imgElement.elements[0]);
21315
21472
  var imageValue = imageElement.innerHTML;
@@ -21502,7 +21659,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21502
21659
  clipBoardElem.innerHTML = this.sanitizeHelper(clipBoardElem.innerHTML);
21503
21660
  var allImg = clipBoardElem.querySelectorAll('img');
21504
21661
  for (var i = 0; i < allImg.length; i++) {
21505
- allImg[i].classList.add('pasteContent_Img');
21662
+ if (!isNullOrUndefined(allImg[i].getAttribute('src'))) {
21663
+ allImg[i].classList.add('pasteContent_Img');
21664
+ }
21506
21665
  this.setImageProperties(allImg[i]);
21507
21666
  }
21508
21667
  this.addTempClass(clipBoardElem);
@@ -21545,6 +21704,51 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21545
21704
  }, clipBoardElem, null, null, this.parent.enterKey);
21546
21705
  this.removeTempClass();
21547
21706
  this.parent.notify(toolbarRefresh, {});
21707
+ this.cropImageHandler(this.parent.inputElement);
21708
+ }
21709
+ };
21710
+ PasteCleanup.prototype.cropImageHandler = function (element) {
21711
+ var _this = this;
21712
+ var allImgElm = element.querySelectorAll('.e-img-cropped');
21713
+ if (allImgElm.length > 0) {
21714
+ var _loop_1 = function (i) {
21715
+ if (allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {
21716
+ var image_1 = new Image();
21717
+ image_1.src = allImgElm[i].getAttribute('src');
21718
+ var canvas_1 = document.createElement('canvas');
21719
+ var ctx_1 = canvas_1.getContext('2d');
21720
+ image_1.onload = function () {
21721
+ var wGoalWidth = _this.cropImageData[i].goalWidth / image_1.naturalWidth;
21722
+ var hGoalHeight = _this.cropImageData[i].goalHeight / image_1.naturalHeight;
21723
+ var cropLength = _this.cropImageData[i].cropLength / wGoalWidth;
21724
+ var cropTop = _this.cropImageData[i].cropTop / hGoalHeight;
21725
+ var cropWidth = (_this.cropImageData[i].goalWidth -
21726
+ _this.cropImageData[i].cropLength -
21727
+ _this.cropImageData[i].cropR) / wGoalWidth;
21728
+ var cropHeight = (_this.cropImageData[i].goalHeight -
21729
+ _this.cropImageData[i].cropTop -
21730
+ _this.cropImageData[i].cropB) / hGoalHeight;
21731
+ canvas_1.width = cropWidth;
21732
+ canvas_1.height = cropHeight;
21733
+ // Draw the cropped portion of the image onto the canvas
21734
+ ctx_1.drawImage(image_1, cropLength, cropTop, cropWidth, cropHeight, 0, 0, cropWidth, cropHeight);
21735
+ // Convert the cropped canvas to a base64 encoded image
21736
+ var croppedBase64 = canvas_1.toDataURL('image/png');
21737
+ // Call the provided callback with the cropped base64 data
21738
+ allImgElm[i].setAttribute('src', croppedBase64);
21739
+ allImgElm[i].classList.remove('e-img-cropped');
21740
+ _this.imgUploading(_this.parent.inputElement);
21741
+ if (_this.parent.iframeSettings.enable) {
21742
+ _this.parent.updateValue();
21743
+ }
21744
+ };
21745
+ }
21746
+ };
21747
+ for (var i = 0; i < allImgElm.length; i++) {
21748
+ _loop_1(i);
21749
+ }
21750
+ }
21751
+ else {
21548
21752
  this.imgUploading(this.parent.inputElement);
21549
21753
  if (this.parent.iframeSettings.enable) {
21550
21754
  this.parent.updateValue();
@@ -22401,6 +22605,9 @@ var FullScreen = /** @__PURE__ @class */ (function () {
22401
22605
  * @deprecated
22402
22606
  */
22403
22607
  FullScreen.prototype.destroy = function () {
22608
+ if (isNullOrUndefined(this.parent)) {
22609
+ return;
22610
+ }
22404
22611
  if (this.parent.element.classList.contains(CLS_FULL_SCREEN)) {
22405
22612
  this.toggleParentOverflow(false);
22406
22613
  }
@@ -22495,6 +22702,10 @@ var FormatPainter = /** @__PURE__ @class */ (function () {
22495
22702
  clickargs.args.action = 'escape';
22496
22703
  this.actionHandler(clickargs, 'keyBoard');
22497
22704
  }
22705
+ if (this.parent.quickToolbarModule && !isNullOrUndefined(this.parent.quickToolbarSettings.text) &&
22706
+ this.parent.element.ownerDocument.contains(this.parent.quickToolbarModule.textQTBar.element)) {
22707
+ this.parent.quickToolbarModule.textQTBar.hidePopup();
22708
+ }
22498
22709
  };
22499
22710
  FormatPainter.prototype.toolbarDoubleClick = function (args) {
22500
22711
  this.isActive = true;
@@ -22573,12 +22784,14 @@ var FormatPainter = /** @__PURE__ @class */ (function () {
22573
22784
  }
22574
22785
  };
22575
22786
  FormatPainter.prototype.updateToolbarBtn = function (enable) {
22576
- var toolbarBtn = this.parent.element.querySelector('.e-rte-format-painter').parentElement.parentElement;
22577
- if (enable) {
22578
- addClass([toolbarBtn], 'e-active');
22579
- }
22580
- else if (!this.isSticky) {
22581
- removeClass([toolbarBtn], 'e-active');
22787
+ if (!isNullOrUndefined(this.parent.element.querySelector('.e-rte-format-painter'))) {
22788
+ var toolbarBtn = this.parent.element.querySelector('.e-rte-format-painter').parentElement.parentElement;
22789
+ if (enable) {
22790
+ addClass([toolbarBtn], 'e-active');
22791
+ }
22792
+ else if (!this.isSticky) {
22793
+ removeClass([toolbarBtn], 'e-active');
22794
+ }
22582
22795
  }
22583
22796
  };
22584
22797
  FormatPainter.prototype.editAreaClick = function (args) {
@@ -22651,7 +22864,13 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22651
22864
  EmojiPicker.prototype.toolbarClick = function (args) {
22652
22865
  var _this = this;
22653
22866
  var _a, _b;
22654
- var spanElement = this.parent.element.querySelector('.e-emoji');
22867
+ var spanElement;
22868
+ if (!isNullOrUndefined(this.parent.element.querySelector('.e-emoji'))) {
22869
+ spanElement = this.parent.element.querySelector('.e-emoji');
22870
+ }
22871
+ else if (this.parent.inlineMode.enable) {
22872
+ spanElement = this.parent.element.ownerDocument.querySelector('.e-emoji');
22873
+ }
22655
22874
  this.divElement = spanElement.closest('div');
22656
22875
  var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
22657
22876
  this.save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
@@ -22666,7 +22885,12 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22666
22885
  this.popupObj.hide();
22667
22886
  }
22668
22887
  this.popDiv = this.parent.createElement('div', { className: 'e-rte-emojipicker-popup', id: this.parent.getID() + '_emojiPicker' });
22669
- this.parent.getToolbar().appendChild(this.popDiv);
22888
+ if (!isNullOrUndefined(this.parent.getToolbar()) && !this.parent.inlineMode.enable) {
22889
+ this.parent.getToolbar().appendChild(this.popDiv);
22890
+ }
22891
+ else if (this.parent.inlineMode.enable) {
22892
+ this.parent.inputElement.appendChild(this.popDiv);
22893
+ }
22670
22894
  EventHandler.add(this.popDiv, 'keydown', this.onKeyDown, this);
22671
22895
  EventHandler.add(this.popDiv, 'keyup', this.searchFilter, this);
22672
22896
  var extendEle = this.parent.element.querySelector('.e-toolbar-extended');
@@ -22681,13 +22905,14 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22681
22905
  var target;
22682
22906
  var xValue;
22683
22907
  var yValue;
22684
- if (!isNullOrUndefined(args.args)) {
22908
+ if (!isNullOrUndefined(args.args) && !this.parent.inlineMode.enable &&
22909
+ isNullOrUndefined(this.parent.quickToolbarSettings.text)) {
22685
22910
  target = args.args.originalEvent.target;
22686
22911
  target = target.classList.contains('e-toolbar-item') ? target.firstChild : target.parentElement;
22687
22912
  xValue = 'left';
22688
22913
  yValue = 'bottom';
22689
22914
  }
22690
- else if (isNullOrUndefined(args.x) && isNullOrUndefined(args.y)) {
22915
+ else if (isNullOrUndefined(args.x) && isNullOrUndefined(args.y) && !this.parent.inlineMode.enable && isNullOrUndefined(this.parent.quickToolbarSettings.text)) {
22691
22916
  target = this.parent.inputElement;
22692
22917
  if (window.getSelection().rangeCount > 0) {
22693
22918
  var coordinates = this.getCoordinates();
@@ -22695,6 +22920,14 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22695
22920
  yValue = coordinates.top;
22696
22921
  }
22697
22922
  }
22923
+ else if (isNullOrUndefined(args.x) && isNullOrUndefined(args.y) && (this.parent.inlineMode.enable || !isNullOrUndefined(this.parent.quickToolbarSettings.text))) {
22924
+ this.parent.notify(hidePopup, {});
22925
+ if (window.getSelection().rangeCount > 0) {
22926
+ var coordinates = this.getCoordinates();
22927
+ xValue = coordinates.left;
22928
+ yValue = coordinates.top;
22929
+ }
22930
+ }
22698
22931
  else {
22699
22932
  target = this.parent.inputElement;
22700
22933
  xValue = args.x;
@@ -22721,7 +22954,8 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22721
22954
  addClass([this.popupObj.element], 'e-popup-open');
22722
22955
  this.popupObj.refreshPosition(target);
22723
22956
  // header search element
22724
- if ((!isNullOrUndefined(args.args) || (isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) && this.parent.emojiPickerSettings.showSearchBox) {
22957
+ if ((!isNullOrUndefined(args.args) || (isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) &&
22958
+ this.parent.emojiPickerSettings.showSearchBox) {
22725
22959
  var inputEle = createElement('input', { id: 'e-rte-emoji-search', className: 'e-rte-emoji-search' });
22726
22960
  this.popDiv.append(inputEle);
22727
22961
  var inputobj = new TextBox({
@@ -22757,7 +22991,8 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22757
22991
  this.popDiv.appendChild(emojiBtnDiv);
22758
22992
  var height;
22759
22993
  var popupBorder = window.getComputedStyle(this.popDiv);
22760
- if ((isNullOrUndefined(args.args) && !(isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) || !this.parent.emojiPickerSettings.showSearchBox) {
22994
+ if ((isNullOrUndefined(args.args) && !(isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) ||
22995
+ !this.parent.emojiPickerSettings.showSearchBox) {
22761
22996
  height = (this.popDiv.getBoundingClientRect().height - emojiToolBar.getBoundingClientRect().height - (2 * parseFloat(popupBorder.borderWidth))) + 'px';
22762
22997
  emojiBtnDiv.style.setProperty('height', height, 'important');
22763
22998
  }
@@ -22803,13 +23038,6 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22803
23038
  if (!isNullOrUndefined(popup)) {
22804
23039
  scrollTop = Math.round(popup.scrollTop);
22805
23040
  }
22806
- for (var i = 0; i < toolbarName.length; i++) {
22807
- /* eslint-disable */
22808
- if (toolbarName[i].classList.contains('e-selected')) {
22809
- removeClass([toolbarName[i]], 'e-selected');
22810
- }
22811
- /* eslint-enable */
22812
- }
22813
23041
  if (scrollTop < toolbarName[0].offsetHeight) {
22814
23042
  addClass([toolbarName[0]], 'e-selected');
22815
23043
  }
@@ -23264,7 +23492,7 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
23264
23492
  var startOffset = this.save.startOffset;
23265
23493
  var textContent = this.save.range.startContainer.textContent;
23266
23494
  var previousText = textContent.substring(startOffset, startOffset + 1);
23267
- // When toolbar action is clicked then only restore the range.
23495
+ // When toolbar action is clicked then only restore the range.
23268
23496
  if (!isNullOrUndefined(this.clickEvent) || previousText !== ':') {
23269
23497
  this.save.restore();
23270
23498
  }
@@ -23452,6 +23680,9 @@ var Render = /** @__PURE__ @class */ (function () {
23452
23680
  * @returns {void}
23453
23681
  */
23454
23682
  Render.prototype.destroy = function () {
23683
+ if (isNullOrUndefined(this.parent)) {
23684
+ return;
23685
+ }
23455
23686
  this.removeEventListener();
23456
23687
  };
23457
23688
  Render.prototype.moduleDestroy = function () {
@@ -23846,6 +24077,9 @@ var Link = /** @__PURE__ @class */ (function () {
23846
24077
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
23847
24078
  this.quickToolObj.inlineQTBar.hidePopup();
23848
24079
  }
24080
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
24081
+ this.quickToolObj.textQTBar.hidePopup();
24082
+ }
23849
24083
  }
23850
24084
  };
23851
24085
  // eslint-disable-next-line
@@ -24019,6 +24253,9 @@ var Link = /** @__PURE__ @class */ (function () {
24019
24253
  * @deprecated
24020
24254
  */
24021
24255
  Link.prototype.destroy = function () {
24256
+ if (isNullOrUndefined(this.parent)) {
24257
+ return;
24258
+ }
24022
24259
  this.removeEventListener();
24023
24260
  };
24024
24261
  Link.prototype.moduleDestroy = function () {
@@ -24038,7 +24275,7 @@ var Link = /** @__PURE__ @class */ (function () {
24038
24275
  /**
24039
24276
  * `Image` module is used to handle image actions.
24040
24277
  */
24041
- var Image = /** @__PURE__ @class */ (function () {
24278
+ var Image$1 = /** @__PURE__ @class */ (function () {
24042
24279
  function Image(parent, serviceLocator) {
24043
24280
  this.isImgUploaded = false;
24044
24281
  this.isAllowedTypes = true;
@@ -25451,6 +25688,9 @@ var Image = /** @__PURE__ @class */ (function () {
25451
25688
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
25452
25689
  this.quickToolObj.inlineQTBar.hidePopup();
25453
25690
  }
25691
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
25692
+ this.quickToolObj.textQTBar.hidePopup();
25693
+ }
25454
25694
  }
25455
25695
  };
25456
25696
  // eslint-disable-next-line
@@ -25506,6 +25746,14 @@ var Image = /** @__PURE__ @class */ (function () {
25506
25746
  this.prevSelectedImgEle.style.outline = '';
25507
25747
  }
25508
25748
  }
25749
+ if (target.tagName !== 'IMG') {
25750
+ var items = this.contentModule.getEditPanel().querySelectorAll('img');
25751
+ for (var i = 0; i < items.length; i++) {
25752
+ removeClass([items[i]], 'e-img-focus');
25753
+ removeClass([items[i]], 'e-resize');
25754
+ items[i].style.maxWidth = '';
25755
+ }
25756
+ }
25509
25757
  };
25510
25758
  Image.prototype.removeResizeEle = function () {
25511
25759
  EventHandler.remove(this.contentModule.getDocument(), Browser.touchMoveEvent, this.resizing);
@@ -25719,10 +25967,8 @@ var Image = /** @__PURE__ @class */ (function () {
25719
25967
  });
25720
25968
  uploadParentEle.appendChild(uploadEle);
25721
25969
  var altText;
25722
- var rawFile;
25723
25970
  var selectArgs;
25724
25971
  var filesData;
25725
- var beforeUploadArgs;
25726
25972
  this.uploadObj = new Uploader({
25727
25973
  asyncSettings: { saveUrl: this.parent.insertImageSettings.saveUrl, removeUrl: this.parent.insertImageSettings.removeUrl },
25728
25974
  dropArea: span, multiple: false, enableRtl: this.parent.enableRtl, cssClass: this.parent.cssClass,
@@ -25730,13 +25976,8 @@ var Image = /** @__PURE__ @class */ (function () {
25730
25976
  selected: function (e) {
25731
25977
  proxy.isImgUploaded = true;
25732
25978
  selectArgs = e;
25979
+ // eslint-disable-next-line
25733
25980
  filesData = e.filesData;
25734
- if (_this.parent.isServerRendered) {
25735
- selectArgs = JSON.parse(JSON.stringify(e));
25736
- e.cancel = true;
25737
- rawFile = e.filesData;
25738
- selectArgs.filesData = rawFile;
25739
- }
25740
25981
  _this.parent.trigger(imageSelected, selectArgs, function (selectArgs) {
25741
25982
  if (!selectArgs.cancel) {
25742
25983
  _this.checkExtension(selectArgs.filesData[0]);
@@ -25767,35 +26008,11 @@ var Image = /** @__PURE__ @class */ (function () {
25767
26008
  });
25768
26009
  reader_1.readAsDataURL(selectArgs.filesData[0].rawFile);
25769
26010
  }
25770
- if (_this.parent.isServerRendered) {
25771
- /* eslint-disable */
25772
- _this.uploadObj._internalRenderSelect(selectArgs, rawFile);
25773
- /* eslint-enable */
25774
- }
25775
26011
  }
25776
26012
  });
25777
26013
  },
25778
26014
  beforeUpload: function (args) {
25779
- if (_this.parent.isServerRendered) {
25780
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
25781
- beforeUploadArgs.filesData = filesData;
25782
- args.cancel = true;
25783
- _this.parent.trigger(imageUploading, beforeUploadArgs, function (beforeUploadArgs) {
25784
- if (beforeUploadArgs.cancel) {
25785
- return;
25786
- }
25787
- /* eslint-disable */
25788
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
25789
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
25790
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
25791
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
25792
- _this.uploadObj.uploadFiles(rawFile, null);
25793
- /* eslint-enable */
25794
- });
25795
- }
25796
- else {
25797
- _this.parent.trigger(beforeImageUpload, args);
25798
- }
26015
+ _this.parent.trigger(beforeImageUpload, args);
25799
26016
  },
25800
26017
  uploading: function (e) {
25801
26018
  if (!_this.parent.isServerRendered) {
@@ -26113,8 +26330,6 @@ var Image = /** @__PURE__ @class */ (function () {
26113
26330
  setTimeout(function () {
26114
26331
  proxy.refreshPopup(imageElement);
26115
26332
  }, timeOut);
26116
- var rawFile;
26117
- var beforeUploadArgs;
26118
26333
  this.uploadObj = new Uploader({
26119
26334
  asyncSettings: {
26120
26335
  saveUrl: this.parent.insertImageSettings.saveUrl,
@@ -26140,33 +26355,9 @@ var Image = /** @__PURE__ @class */ (function () {
26140
26355
  }, 900);
26141
26356
  },
26142
26357
  beforeUpload: function (args) {
26143
- if (_this.parent.isServerRendered) {
26144
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
26145
- beforeUploadArgs.filesData = rawFile;
26146
- isUploading = true;
26147
- args.cancel = true;
26148
- _this.parent.trigger(imageUploading, beforeUploadArgs, function (beforeUploadArgs) {
26149
- if (beforeUploadArgs.cancel) {
26150
- return;
26151
- }
26152
- if (!_this.parent.inlineMode.enable) {
26153
- _this.parent.toolbarModule.baseToolbar.toolbarObj.disable(true);
26154
- }
26155
- /* eslint-disable */
26156
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
26157
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
26158
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
26159
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
26160
- _this.uploadObj.uploadFiles(rawFile, null);
26161
- _this.parent.inputElement.contentEditable = 'false';
26162
- /* eslint-enable */
26163
- });
26164
- }
26165
- else {
26166
- _this.parent.trigger(beforeImageUpload, args);
26167
- if (!_this.parent.inlineMode.enable) {
26168
- _this.parent.toolbarModule.baseToolbar.toolbarObj.disable(true);
26169
- }
26358
+ _this.parent.trigger(beforeImageUpload, args);
26359
+ if (!_this.parent.inlineMode.enable) {
26360
+ _this.parent.toolbarModule.baseToolbar.toolbarObj.disable(true);
26170
26361
  }
26171
26362
  },
26172
26363
  uploading: function (e) {
@@ -26191,9 +26382,6 @@ var Image = /** @__PURE__ @class */ (function () {
26191
26382
  if (isUploading) {
26192
26383
  e.cancel = true;
26193
26384
  }
26194
- if (_this.parent.isServerRendered) {
26195
- rawFile = e.filesData;
26196
- }
26197
26385
  },
26198
26386
  failure: function (e) {
26199
26387
  isUploading = false;
@@ -26354,6 +26542,9 @@ var Image = /** @__PURE__ @class */ (function () {
26354
26542
  /* eslint-enable */
26355
26543
  Image.prototype.destroy = function () {
26356
26544
  this.prevSelectedImgEle = undefined;
26545
+ if (isNullOrUndefined(this.parent)) {
26546
+ return;
26547
+ }
26357
26548
  this.removeEventListener();
26358
26549
  };
26359
26550
  Image.prototype.moduleDestroy = function () {
@@ -26980,6 +27171,9 @@ var Audio = /** @__PURE__ @class */ (function () {
26980
27171
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
26981
27172
  this.quickToolObj.inlineQTBar.hidePopup();
26982
27173
  }
27174
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
27175
+ this.quickToolObj.textQTBar.hidePopup();
27176
+ }
26983
27177
  }
26984
27178
  };
26985
27179
  // eslint-disable-next-line
@@ -27049,10 +27243,8 @@ var Audio = /** @__PURE__ @class */ (function () {
27049
27243
  });
27050
27244
  uploadParentEle.appendChild(uploadEle);
27051
27245
  var fileName;
27052
- var rawFile;
27053
27246
  var selectArgs;
27054
27247
  var filesData;
27055
- var beforeUploadArgs;
27056
27248
  this.uploadObj = new Uploader({
27057
27249
  asyncSettings: { saveUrl: this.parent.insertAudioSettings.saveUrl, removeUrl: this.parent.insertAudioSettings.removeUrl },
27058
27250
  dropArea: span, multiple: false, enableRtl: this.parent.enableRtl,
@@ -27060,13 +27252,8 @@ var Audio = /** @__PURE__ @class */ (function () {
27060
27252
  selected: function (e) {
27061
27253
  proxy.isAudioUploaded = true;
27062
27254
  selectArgs = e;
27255
+ // eslint-disable-next-line
27063
27256
  filesData = e.filesData;
27064
- if (_this.parent.isServerRendered) {
27065
- selectArgs = JSON.parse(JSON.stringify(e));
27066
- e.cancel = true;
27067
- rawFile = e.filesData;
27068
- selectArgs.filesData = rawFile;
27069
- }
27070
27257
  _this.parent.trigger(fileSelected, selectArgs, function (selectArgs) {
27071
27258
  if (!selectArgs.cancel) {
27072
27259
  _this.checkExtension(selectArgs.filesData[0]);
@@ -27089,35 +27276,11 @@ var Audio = /** @__PURE__ @class */ (function () {
27089
27276
  });
27090
27277
  reader_1.readAsDataURL(selectArgs.filesData[0].rawFile);
27091
27278
  }
27092
- if (_this.parent.isServerRendered) {
27093
- /* eslint-disable */
27094
- _this.uploadObj._internalRenderSelect(selectArgs, rawFile);
27095
- /* eslint-enable */
27096
- }
27097
27279
  }
27098
27280
  });
27099
27281
  },
27100
27282
  beforeUpload: function (args) {
27101
- if (_this.parent.isServerRendered) {
27102
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
27103
- beforeUploadArgs.filesData = filesData;
27104
- args.cancel = true;
27105
- _this.parent.trigger(fileUploading, beforeUploadArgs, function (beforeUploadArgs) {
27106
- if (beforeUploadArgs.cancel) {
27107
- return;
27108
- }
27109
- /* eslint-disable */
27110
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
27111
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
27112
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
27113
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
27114
- _this.uploadObj.uploadFiles(rawFile, null);
27115
- /* eslint-enable */
27116
- });
27117
- }
27118
- else {
27119
- _this.parent.trigger(beforeFileUpload, args);
27120
- }
27283
+ _this.parent.trigger(beforeFileUpload, args);
27121
27284
  },
27122
27285
  uploading: function (e) {
27123
27286
  if (!_this.parent.isServerRendered) {
@@ -28352,6 +28515,9 @@ var Video = /** @__PURE__ @class */ (function () {
28352
28515
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
28353
28516
  this.quickToolObj.inlineQTBar.hidePopup();
28354
28517
  }
28518
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
28519
+ this.quickToolObj.textQTBar.hidePopup();
28520
+ }
28355
28521
  }
28356
28522
  };
28357
28523
  // eslint-disable-next-line
@@ -28463,10 +28629,8 @@ var Video = /** @__PURE__ @class */ (function () {
28463
28629
  });
28464
28630
  uploadParentEle.appendChild(uploadEle);
28465
28631
  var fileName;
28466
- var rawFile;
28467
28632
  var selectArgs;
28468
28633
  var filesData;
28469
- var beforeUploadArgs;
28470
28634
  this.uploadObj = new Uploader({
28471
28635
  asyncSettings: { saveUrl: this.parent.insertVideoSettings.saveUrl, removeUrl: this.parent.insertVideoSettings.removeUrl },
28472
28636
  dropArea: span, multiple: false, enableRtl: this.parent.enableRtl,
@@ -28474,13 +28638,8 @@ var Video = /** @__PURE__ @class */ (function () {
28474
28638
  selected: function (e) {
28475
28639
  proxy.isVideoUploaded = true;
28476
28640
  selectArgs = e;
28641
+ // eslint-disable-next-line
28477
28642
  filesData = e.filesData;
28478
- if (_this.parent.isServerRendered) {
28479
- selectArgs = JSON.parse(JSON.stringify(e));
28480
- e.cancel = true;
28481
- rawFile = e.filesData;
28482
- selectArgs.filesData = rawFile;
28483
- }
28484
28643
  _this.parent.trigger(fileSelected, selectArgs, function (selectArgs) {
28485
28644
  if (!selectArgs.cancel) {
28486
28645
  _this.checkExtension(selectArgs.filesData[0]);
@@ -28504,35 +28663,11 @@ var Video = /** @__PURE__ @class */ (function () {
28504
28663
  });
28505
28664
  reader_1.readAsDataURL(selectArgs.filesData[0].rawFile);
28506
28665
  }
28507
- if (_this.parent.isServerRendered) {
28508
- /* eslint-disable */
28509
- _this.uploadObj._internalRenderSelect(selectArgs, rawFile);
28510
- /* eslint-enable */
28511
- }
28512
28666
  }
28513
28667
  });
28514
28668
  },
28515
28669
  beforeUpload: function (args) {
28516
- if (_this.parent.isServerRendered) {
28517
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
28518
- beforeUploadArgs.filesData = filesData;
28519
- args.cancel = true;
28520
- _this.parent.trigger(fileUploading, beforeUploadArgs, function (beforeUploadArgs) {
28521
- if (beforeUploadArgs.cancel) {
28522
- return;
28523
- }
28524
- /* eslint-disable */
28525
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
28526
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
28527
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
28528
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
28529
- _this.uploadObj.uploadFiles(rawFile, null);
28530
- /* eslint-enable */
28531
- });
28532
- }
28533
- else {
28534
- _this.parent.trigger(beforeFileUpload, args);
28535
- }
28670
+ _this.parent.trigger(beforeFileUpload, args);
28536
28671
  },
28537
28672
  uploading: function (e) {
28538
28673
  if (!_this.parent.isServerRendered) {
@@ -28779,6 +28914,7 @@ var ViewSource = /** @__PURE__ @class */ (function () {
28779
28914
  * @deprecated
28780
28915
  */
28781
28916
  ViewSource.prototype.sourceCode = function (args) {
28917
+ this.parent.notify(hidePopup, {});
28782
28918
  this.parent.isBlur = false;
28783
28919
  this.parent.trigger(actionBegin, { requestType: 'SourceCode', targetItem: 'SourceCode', args: args });
28784
28920
  var tbItems = selectAll('.' + CLS_TB_ITEM, this.parent.element);
@@ -28936,6 +29072,9 @@ var ViewSource = /** @__PURE__ @class */ (function () {
28936
29072
  * @deprecated
28937
29073
  */
28938
29074
  ViewSource.prototype.destroy = function () {
29075
+ if (isNullOrUndefined(this.parent)) {
29076
+ return;
29077
+ }
28939
29078
  this.removeEventListener();
28940
29079
  };
28941
29080
  ViewSource.prototype.moduleDestroy = function () {
@@ -29005,6 +29144,9 @@ var Table = /** @__PURE__ @class */ (function () {
29005
29144
  this.parent.off(bindCssClass, this.setCssClass);
29006
29145
  this.parent.off(destroy, this.destroy);
29007
29146
  this.parent.off(moduleDestroy, this.moduleDestroy);
29147
+ if (!Browser.isDevice && this.parent.tableSettings.resize) {
29148
+ EventHandler.remove(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper);
29149
+ }
29008
29150
  };
29009
29151
  Table.prototype.updateCss = function (currentObj, e) {
29010
29152
  if (currentObj && e.cssClass) {
@@ -29411,14 +29553,17 @@ var Table = /** @__PURE__ @class */ (function () {
29411
29553
  var pageX = void 0;
29412
29554
  var pageY = void 0;
29413
29555
  if (Browser.isDevice && e.args.touches) {
29414
- pageX = e.args.changedTouches[0].pageX;
29415
- pageY = e.args.changedTouches[0].pageY;
29556
+ pageX = (this.parent.iframeSettings.enable) ? window.pageXOffset + this.parent.element.getBoundingClientRect().left +
29557
+ e.args.changedTouches[0].clientX : e.args.changedTouches[0].pageX;
29558
+ pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset + this.parent.element.getBoundingClientRect().top +
29559
+ (!this.parent.inlineMode.enable ? this.parent.toolbarModule.getToolbarHeight() : 0)
29560
+ + e.args.changedTouches[0].clientY : e.args.changedTouches[0].pageY;
29416
29561
  }
29417
29562
  else {
29418
29563
  pageX = (this.parent.iframeSettings.enable) ? window.pageXOffset
29419
29564
  + this.parent.element.getBoundingClientRect().left + args.clientX : args.pageX;
29420
- pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset +
29421
- this.parent.element.getBoundingClientRect().top + args.clientY : args.pageY;
29565
+ pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset + this.parent.element.getBoundingClientRect().top +
29566
+ this.parent.toolbarModule.getToolbarHeight() + args.clientY : args.pageY;
29422
29567
  }
29423
29568
  this.quickToolObj.tableQTBar.showPopup(pageX, pageY, target);
29424
29569
  this.parent.formatter.editorManager.nodeSelection.restore();
@@ -29542,7 +29687,12 @@ var Table = /** @__PURE__ @class */ (function () {
29542
29687
  var columns = table.rows[this.calMaxCol(table)].cells;
29543
29688
  var rows = [];
29544
29689
  for (var i = 0; i < table.rows.length; i++) {
29545
- rows.push(Array.prototype.slice.call(table.rows[i].cells, 0, 1)[0]);
29690
+ for (var j = 0; j < table.rows[i].cells.length; j++) {
29691
+ if (!table.rows[i].cells[j].hasAttribute('rowspan')) {
29692
+ rows.push(Array.prototype.slice.call(table.rows[i].cells, 0, table.rows[i].cells.length)[j]);
29693
+ break;
29694
+ }
29695
+ }
29546
29696
  }
29547
29697
  var height = parseInt(getComputedStyle(table).height, 10);
29548
29698
  var width = parseInt(getComputedStyle(table).width, 10);
@@ -29790,6 +29940,7 @@ var Table = /** @__PURE__ @class */ (function () {
29790
29940
  var currentTdElement = this.curTable.closest('td');
29791
29941
  var args = { event: e, requestType: 'table' };
29792
29942
  var isRowCellsMerged = false;
29943
+ var isColCellsMerged = false;
29793
29944
  var mergedCellIndex;
29794
29945
  var mergedElement;
29795
29946
  this.parent.trigger(onResize, args, function (resizingArgs) {
@@ -29819,7 +29970,7 @@ var Table = /** @__PURE__ @class */ (function () {
29819
29970
  var width = parseFloat(_this.columnEle.offsetWidth.toString());
29820
29971
  var cellRow = _this.curTable.rows[0].cells[0].nodeName === 'TH' ? 1 : 0;
29821
29972
  var currentTableWidth = void 0;
29822
- if (_this.curTable.style.width != '') {
29973
+ if (_this.curTable.style.width !== '' && _this.curTable.style.width.includes('%')) {
29823
29974
  currentTableWidth = parseFloat(_this.curTable.style.width.split('%')[0]);
29824
29975
  }
29825
29976
  else {
@@ -29882,12 +30033,20 @@ var Table = /** @__PURE__ @class */ (function () {
29882
30033
  var isMergedEleResize = false;
29883
30034
  var leftTableCell = void 0;
29884
30035
  var rightTableCell = void 0;
30036
+ isColCellsMerged = false;
30037
+ isRowCellsMerged = false;
30038
+ /* eslint-disable */
29885
30039
  for (var j = 0; j < currentRow.cells.length; j++) {
29886
30040
  if (currentRow.cells[j].hasAttribute('rowspan') && j <= _this.colIndex) {
29887
30041
  isRowCellsMerged = true;
29888
30042
  mergedCellIndex = i;
29889
30043
  mergedElement = currentRow.cells[j];
29890
30044
  }
30045
+ else if (currentRow.cells[j].hasAttribute('colspan') && j <= currentRow.cells.length) {
30046
+ isColCellsMerged = true;
30047
+ mergedCellIndex = i;
30048
+ mergedElement = currentRow.cells[j];
30049
+ }
29891
30050
  }
29892
30051
  if (!isNullOrUndefined(currentRow.cells[i]) && currentRow.cells[i].hasAttribute('colspan')) {
29893
30052
  index = parseInt(currentRow.cells[i].getAttribute('colspan'), 10) - 1;
@@ -29895,14 +30054,14 @@ var Table = /** @__PURE__ @class */ (function () {
29895
30054
  else {
29896
30055
  index = _this.colIndex;
29897
30056
  }
29898
- if (isRowCellsMerged) {
30057
+ if (isRowCellsMerged || isColCellsMerged) {
29899
30058
  var currentResizeRow = void 0;
29900
30059
  if (currentRow.cells.length < cellColl.length) {
29901
- index = currentRow.cells.length === _this.colIndex ?
29902
- _this.colIndex - 1 : _this.colIndex - (_this.colIndex - 1);
30060
+ index = currentRow.cells.length === _this.colIndex || currentRow === _this.curTable.rows[_this.curTable.rows.length - 1] ?
30061
+ _this.colIndex - 1 : _this.colIndex;
29903
30062
  currentResizeRow = _this.curTable.rows[!isNullOrUndefined(mergedCellIndex) ?
29904
30063
  mergedCellIndex : _this.colIndex - 1];
29905
- if (currentResizeRow && (currentResizeRow.cells[_this.colIndex - 1] === mergedElement ||
30064
+ if (currentResizeRow && currentResizeRow !== currentRow && (currentResizeRow.cells[_this.colIndex - 1] === mergedElement ||
29906
30065
  currentResizeRow.cells[currentResizeRow.cells.length - 1] === mergedElement)) {
29907
30066
  isMergedEleResize = true;
29908
30067
  }
@@ -29917,10 +30076,10 @@ var Table = /** @__PURE__ @class */ (function () {
29917
30076
  currentResizeRow.cells[currentResizeRow.cells.length - 1] !== mergedElement) ?
29918
30077
  currentResizeRow.cells[_this.colIndex - 1] : currentRow.cells[currentRow.cells.length - 1];
29919
30078
  rightTableCell = !isMergedEleResize ? currentRow.cells[index] : rightTableCell && rightTableCell.hasAttribute('rowspan') ?
29920
- rightTableCell : currentResizeRow && currentResizeRow.cells[currentResizeRow.cells.length - 1] !== mergedElement ?
30079
+ currentResizeRow.cells[_this.colIndex] : currentResizeRow && currentResizeRow.cells[currentResizeRow.cells.length - 1] !== mergedElement ?
29921
30080
  currentRow.cells[index - 1] : currentResizeRow.cells[currentResizeRow.cells.length - 1];
29922
30081
  }
29923
- if (!isNullOrUndefined(currentRow.cells[index - 1]) && !isRowCellsMerged) {
30082
+ if (!isNullOrUndefined(currentRow.cells[index - 1]) && !isRowCellsMerged && !isColCellsMerged) {
29924
30083
  currentRow.cells[index - 1].style.width =
29925
30084
  _this.convertPixelToPercentage(leftColumnWidth, tableWidth) + '%';
29926
30085
  }
@@ -29930,7 +30089,7 @@ var Table = /** @__PURE__ @class */ (function () {
29930
30089
  _this.convertPixelToPercentage(leftColumnWidth, tableWidth) + '%';
29931
30090
  }
29932
30091
  }
29933
- if (!isNullOrUndefined(currentRow.cells[index]) && !isRowCellsMerged) {
30092
+ if (!isNullOrUndefined(currentRow.cells[index]) && !isRowCellsMerged && !isColCellsMerged) {
29934
30093
  currentRow.cells[index].style.width =
29935
30094
  _this.convertPixelToPercentage(rightColWidth, tableWidth) + '%';
29936
30095
  }
@@ -29940,6 +30099,7 @@ var Table = /** @__PURE__ @class */ (function () {
29940
30099
  _this.convertPixelToPercentage(rightColWidth, tableWidth) + '%';
29941
30100
  }
29942
30101
  }
30102
+ /* eslint-enable */
29943
30103
  }
29944
30104
  }
29945
30105
  }
@@ -29959,9 +30119,6 @@ var Table = /** @__PURE__ @class */ (function () {
29959
30119
  _this.updateHelper();
29960
30120
  }
29961
30121
  else if (_this.resizeBtnStat.tableBox) {
29962
- if (!Browser.isDevice) {
29963
- EventHandler.remove(_this.contentModule.getEditPanel(), 'mouseover', _this.resizeHelper);
29964
- }
29965
30122
  if (currentTdElement) {
29966
30123
  var tableBoxPosition = _this.curTable.getBoundingClientRect().left
29967
30124
  - currentTdElement.getBoundingClientRect().left;
@@ -29972,9 +30129,11 @@ var Table = /** @__PURE__ @class */ (function () {
29972
30129
  _this.curTable.style.width = widthType ? _this.convertPixelToPercentage(tableWidth + mouseX, widthCompare) + '%'
29973
30130
  : tableWidth + mouseX + 'px';
29974
30131
  _this.curTable.style.height = tableHeight + mouseY + 'px';
29975
- tableReBox.classList.add('e-rbox-select');
29976
- tableReBox.style.cssText = 'top: ' + (_this.calcPos(_this.curTable).top + tableHeight - 4) +
29977
- 'px; left:' + (_this.calcPos(_this.curTable).left + tableWidth - 4) + 'px;';
30132
+ if (!isNullOrUndefined(tableReBox)) {
30133
+ tableReBox.classList.add('e-rbox-select');
30134
+ tableReBox.style.cssText = 'top: ' + (_this.calcPos(_this.curTable).top + tableHeight - 4) +
30135
+ 'px; left:' + (_this.calcPos(_this.curTable).left + tableWidth - 4) + 'px;';
30136
+ }
29978
30137
  }
29979
30138
  }
29980
30139
  });
@@ -30009,9 +30168,6 @@ var Table = /** @__PURE__ @class */ (function () {
30009
30168
  EventHandler.remove(this.contentModule.getDocument(), Browser.touchEndEvent, this.resizeEnd);
30010
30169
  if (this.contentModule.getEditPanel().querySelector('.e-table-box') &&
30011
30170
  this.contentModule.getEditPanel().contains(this.contentModule.getEditPanel().querySelector('.e-table-box'))) {
30012
- if (!Browser.isDevice) {
30013
- EventHandler.add(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper, this);
30014
- }
30015
30171
  this.removeResizeElement();
30016
30172
  }
30017
30173
  if (this.helper && this.contentModule.getEditPanel().contains(this.helper)) {
@@ -30075,7 +30231,8 @@ var Table = /** @__PURE__ @class */ (function () {
30075
30231
  };
30076
30232
  Table.prototype.renderDlgContent = function (args) {
30077
30233
  var _this = this;
30078
- if (Browser.isDevice || this.parent.inlineMode.enable) {
30234
+ var argsTarget = args.args.originalEvent.target;
30235
+ if (Browser.isDevice || this.parent.inlineMode.enable || !isNullOrUndefined(closest(argsTarget, '.e-rte-text-popup'))) {
30079
30236
  this.insertTableDialog(args);
30080
30237
  return;
30081
30238
  }
@@ -30331,6 +30488,10 @@ var Table = /** @__PURE__ @class */ (function () {
30331
30488
  if (this.quickToolObj && this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
30332
30489
  this.quickToolObj.inlineQTBar.hidePopup();
30333
30490
  }
30491
+ if (this.quickToolObj && this.quickToolObj.textQTBar &&
30492
+ this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
30493
+ this.quickToolObj.textQTBar.hidePopup();
30494
+ }
30334
30495
  };
30335
30496
  Table.prototype.customTable = function (args, e) {
30336
30497
  var proxy = (this.self) ? this.self : this;
@@ -30338,7 +30499,8 @@ var Table = /** @__PURE__ @class */ (function () {
30338
30499
  var argument = ((Browser.isDevice || (!isNullOrUndefined(args.args)
30339
30500
  && !isNullOrUndefined(args.args.originalEvent) &&
30340
30501
  args.args.originalEvent.action === 'insert-table')
30341
- || proxy.parent.inlineMode.enable) ? args : this);
30502
+ || proxy.parent.inlineMode.enable || !isNullOrUndefined(proxy.parent.quickToolbarSettings.text)) ? args :
30503
+ this);
30342
30504
  proxy.tableInsert(proxy.rowTextBox.value, proxy.columnTextBox.value, e, argument);
30343
30505
  }
30344
30506
  };
@@ -30434,6 +30596,9 @@ var Table = /** @__PURE__ @class */ (function () {
30434
30596
  * @deprecated
30435
30597
  */
30436
30598
  Table.prototype.destroy = function () {
30599
+ if (isNullOrUndefined(this.parent)) {
30600
+ return;
30601
+ }
30437
30602
  this.removeEventListener();
30438
30603
  };
30439
30604
  Table.prototype.moduleDestroy = function () {
@@ -30504,7 +30669,7 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
30504
30669
  this.parent.trigger(beforeDialogOpen, args, this.beforeOpenCallback.bind(this, args));
30505
30670
  };
30506
30671
  DialogRenderer.prototype.handleEnterKeyDown = function (args) {
30507
- if (args.code === "Enter") {
30672
+ if (args.code === 'Enter') {
30508
30673
  args.preventDefault();
30509
30674
  }
30510
30675
  };
@@ -31031,7 +31196,7 @@ var QuickToolbarSettings = /** @__PURE__ @class */ (function (_super) {
31031
31196
  Property(['VideoReplace', 'VideoAlign', 'VideoRemove', 'VideoLayoutOption', 'VideoDimension'])
31032
31197
  ], QuickToolbarSettings.prototype, "video", void 0);
31033
31198
  __decorate$2([
31034
- Property(['Cut', 'Copy', 'Paste'])
31199
+ Property(null)
31035
31200
  ], QuickToolbarSettings.prototype, "text", void 0);
31036
31201
  __decorate$2([
31037
31202
  Property(['TableHeader', 'TableRows', 'TableColumns', 'BackgroundColor', '-', 'TableRemove', 'Alignments', 'TableCellVerticalAlign', 'Styles'])
@@ -31337,6 +31502,9 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
31337
31502
  this.parent.on(moduleDestroy, this.moduleDestroy, this);
31338
31503
  };
31339
31504
  EnterKeyAction.prototype.destroy = function () {
31505
+ if (isNullOrUndefined(this.parent)) {
31506
+ return;
31507
+ }
31340
31508
  this.removeEventListener();
31341
31509
  };
31342
31510
  EnterKeyAction.prototype.moduleDestroy = function () {
@@ -31496,8 +31664,12 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
31496
31664
  (_this.range.startContainer.previousSibling.nodeName === 'IMG' || _this.range.startContainer.previousSibling.nodeName === 'BR'))) {
31497
31665
  var isNearBlockLengthZero = void 0;
31498
31666
  var newElem = void 0;
31499
- if (!isNullOrUndefined(_this.range.startContainer.childNodes) && _this.range.startContainer.textContent.length === 0
31500
- && (_this.range.startContainer.querySelectorAll('img, audio, video').length > 0 ||
31667
+ if (!isNullOrUndefined(_this.range.startContainer.childNodes) &&
31668
+ (_this.range.startContainer.textContent.length === 0 ||
31669
+ (_this.range.startContainer.nodeName !== '#text' && !isNullOrUndefined(_this.range.startContainer.querySelector('.e-video-clickelem')) &&
31670
+ _this.range.startContainer.querySelector('.e-video-clickelem').textContent.length === 0)) &&
31671
+ (_this.range.startContainer.querySelectorAll('img, audio, video').length > 0 ||
31672
+ !isNullOrUndefined(_this.range.startContainer.querySelector('.e-video-clickelem')) ||
31501
31673
  _this.range.startContainer.nodeName === 'IMG' || _this.range.startContainer.nodeName === 'TABLE')) {
31502
31674
  newElem = _this.createInsertElement(shiftKey_1);
31503
31675
  isMediaNode = true;
@@ -32524,7 +32696,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
32524
32696
  }
32525
32697
  if (e.action !== 'insert-link' &&
32526
32698
  e.action !== 'format-copy' && e.action !== 'format-paste' &&
32527
- (!e.target || !e.target.classList.contains('e-mention')) &&
32699
+ (!e.target || (e.target.classList.contains('e-mention') && e.code !== 'Tab')) &&
32528
32700
  (e.action && e.action !== 'paste' && e.action !== 'space'
32529
32701
  || e.which === 9 || (e.code === 'Backspace' && e.which === 8))) {
32530
32702
  var FormatPainterEscapeAction = false;
@@ -32830,6 +33002,8 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
32830
33002
  this.toolbarModule.destroy();
32831
33003
  }
32832
33004
  this.notify(moduleDestroy, {});
33005
+ _super.prototype.destroy.call(this);
33006
+ this.isRendered = false;
32833
33007
  return;
32834
33008
  }
32835
33009
  this.notify(destroy, {});
@@ -32883,9 +33057,6 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
32883
33057
  this.removeAttributes();
32884
33058
  _super.prototype.destroy.call(this);
32885
33059
  this.isRendered = false;
32886
- if (this.enablePersistence) {
32887
- window.localStorage.removeItem(this.getModuleName() + this.element.id);
32888
- }
32889
33060
  };
32890
33061
  RichTextEditor.prototype.removeHtmlAttributes = function () {
32891
33062
  if (this.htmlAttributes) {
@@ -33015,9 +33186,10 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33015
33186
  else {
33016
33187
  nVal = newProp[prop];
33017
33188
  }
33189
+ nVal = this.serializeValue(nVal);
33018
33190
  var val = this.editorMode === 'HTML' ? getEditValue(nVal, this) : nVal;
33019
33191
  if ((!isNullOrUndefined(nVal) && nVal !== '') || prop === 'enterKey') {
33020
- this.value = this.serializeValue(((this.enableHtmlEncode) ? this.encode(decode(val)) : val));
33192
+ this.setProperties({ value: ((this.enableHtmlEncode) ? this.encode(decode(val)) : val) }, true);
33021
33193
  }
33022
33194
  this.updatePanelValue();
33023
33195
  if (this.inputElement) {
@@ -33565,10 +33737,6 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33565
33737
  // eslint-disable-next-line
33566
33738
  var imgPadding = 12;
33567
33739
  var imgResizeBorder = 2;
33568
- if (isNullOrUndefined(this.contentModule) || isNullOrUndefined(this.contentModule.getEditPanel())) {
33569
- EventHandler.remove(this.contentModule.getDocument(), Browser.touchMoveEvent, this.imageModule.resizing);
33570
- return maxWidth;
33571
- }
33572
33740
  var editEle = this.contentModule.getEditPanel();
33573
33741
  var eleStyle = window.getComputedStyle(editEle);
33574
33742
  var editEleMaxWidth = editEle.offsetWidth - (imgPadding + imgResizeBorder +
@@ -33635,13 +33803,17 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33635
33803
  heightValue = heightPercent && rteHeightPercent ? rteHeightPercent : rteHeight - (tbHeight + rzHeight) + 'px';
33636
33804
  }
33637
33805
  }
33638
- if (target !== 'windowResize') {
33806
+ if (target !== 'windowResize' || heightPercent) {
33639
33807
  if (this.iframeSettings.enable) {
33640
33808
  if (heightValue !== 'auto') {
33641
33809
  setStyleAttribute(cntEle, { height: heightValue, marginTop: topValue + 'px' });
33642
33810
  }
33643
33811
  }
33644
33812
  else {
33813
+ if (target === 'windowResize' && heightPercent) {
33814
+ // cntEle hide the borderBottom of RichTextEditor. so removed the 2px of cntEle height.
33815
+ heightValue = parseInt(heightValue) - 2 + 'px';
33816
+ }
33645
33817
  setStyleAttribute(cntEle, { height: heightValue, marginTop: topValue + 'px' });
33646
33818
  }
33647
33819
  }
@@ -33850,6 +34022,10 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33850
34022
  this.toolbarModule.refreshToolbarOverflow();
33851
34023
  isExpand = this.toolbarModule.baseToolbar.toolbarObj.element.classList.contains(CLS_EXPAND_OPEN);
33852
34024
  }
34025
+ if (this.iframeSettings.enable !== true) {
34026
+ // When resize the window,border bottom of cntEle and this.element border visible separatly.so none the cntEle borderBottom.
34027
+ this.contentModule.getPanel().style.borderBottom = 'none';
34028
+ }
33853
34029
  this.setContentHeight('windowResize', isExpand);
33854
34030
  this.notify(windowResize, null);
33855
34031
  };
@@ -34569,5 +34745,5 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34569
34745
  * Rich Text Editor component exported items
34570
34746
  */
34571
34747
 
34572
- export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, maximizeMinimizeClick, blockEmptyNodes, inlineEmptyNodes, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_AUD_FOCUS, CLS_VID_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, CLS_RTE_RES_WEST, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, AUDIO, VIDEO, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, SELF_CLOSING_TAGS, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS };
34748
+ export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image$1 as Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, maximizeMinimizeClick, hidePopup, blockEmptyNodes, inlineEmptyNodes, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_TEXT_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_AUD_FOCUS, CLS_VID_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, CLS_RTE_RES_WEST, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, AUDIO, VIDEO, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, SELF_CLOSING_TAGS, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS };
34573
34749
  //# sourceMappingURL=ej2-richtexteditor.es5.js.map