@syncfusion/ej2-richtexteditor 22.2.10 → 23.1.36

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 (82) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/ej2-richtexteditor.min.js +2 -2
  3. package/dist/ej2-richtexteditor.umd.min.js +2 -2
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +381 -262
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +381 -258
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/dist/global/ej2-richtexteditor.min.js +2 -2
  10. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +13 -13
  13. package/src/editor-manager/plugin/dom-node.js +6 -5
  14. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +2 -0
  15. package/src/editor-manager/plugin/ms-word-clean-up.js +68 -11
  16. package/src/editor-manager/plugin/table.js +1 -1
  17. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +2 -1
  18. package/src/rich-text-editor/actions/base-quick-toolbar.js +10 -6
  19. package/src/rich-text-editor/actions/emoji-picker.js +29 -14
  20. package/src/rich-text-editor/actions/enter-key.js +6 -2
  21. package/src/rich-text-editor/actions/format-painter.js +12 -6
  22. package/src/rich-text-editor/actions/html-editor.js +14 -1
  23. package/src/rich-text-editor/actions/paste-clean-up.d.ts +2 -0
  24. package/src/rich-text-editor/actions/paste-clean-up.js +63 -32
  25. package/src/rich-text-editor/actions/quick-toolbar.js +32 -2
  26. package/src/rich-text-editor/actions/toolbar.js +1 -1
  27. package/src/rich-text-editor/actions/xhtml-validation.js +1 -1
  28. package/src/rich-text-editor/base/classes.d.ts +5 -0
  29. package/src/rich-text-editor/base/classes.js +5 -0
  30. package/src/rich-text-editor/base/constant.d.ts +5 -0
  31. package/src/rich-text-editor/base/constant.js +5 -0
  32. package/src/rich-text-editor/base/enum.d.ts +4 -0
  33. package/src/rich-text-editor/base/interface.d.ts +10 -22
  34. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +1 -39
  35. package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -39
  36. package/src/rich-text-editor/base/rich-text-editor.js +2 -8
  37. package/src/rich-text-editor/base/util.js +5 -1
  38. package/src/rich-text-editor/models/items.js +34 -22
  39. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +4 -5
  40. package/src/rich-text-editor/models/toolbar-settings.d.ts +4 -5
  41. package/src/rich-text-editor/models/toolbar-settings.js +1 -1
  42. package/src/rich-text-editor/renderer/audio-module.js +5 -33
  43. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -0
  44. package/src/rich-text-editor/renderer/dialog-renderer.js +16 -1
  45. package/src/rich-text-editor/renderer/image-module.js +9 -65
  46. package/src/rich-text-editor/renderer/link-module.js +3 -0
  47. package/src/rich-text-editor/renderer/table-module.js +18 -7
  48. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +5 -1
  49. package/src/rich-text-editor/renderer/toolbar-renderer.js +28 -2
  50. package/src/rich-text-editor/renderer/video-module.js +6 -33
  51. package/src/rich-text-editor/renderer/view-source.js +1 -0
  52. package/styles/material-dark.css +0 -1
  53. package/styles/material.css +0 -1
  54. package/styles/material3-dark.css +0 -1
  55. package/styles/material3-dark.scss +1 -1
  56. package/styles/material3.css +0 -1
  57. package/styles/material3.scss +1 -1
  58. package/styles/rich-text-editor/bootstrap-dark.scss +1 -1
  59. package/styles/rich-text-editor/bootstrap.scss +1 -1
  60. package/styles/rich-text-editor/bootstrap4.scss +1 -1
  61. package/styles/rich-text-editor/bootstrap5-dark.scss +1 -1
  62. package/styles/rich-text-editor/bootstrap5.scss +1 -1
  63. package/styles/rich-text-editor/fabric-dark.scss +1 -1
  64. package/styles/rich-text-editor/fabric.scss +1 -1
  65. package/styles/rich-text-editor/fluent-dark.scss +1 -1
  66. package/styles/rich-text-editor/fluent.scss +1 -1
  67. package/styles/rich-text-editor/highcontrast-light.scss +1 -1
  68. package/styles/rich-text-editor/highcontrast.scss +1 -1
  69. package/styles/rich-text-editor/material-dark.css +0 -1
  70. package/styles/rich-text-editor/material-dark.scss +1 -1
  71. package/styles/rich-text-editor/material.css +0 -1
  72. package/styles/rich-text-editor/material.scss +1 -1
  73. package/styles/rich-text-editor/material3-dark.css +0 -1
  74. package/styles/rich-text-editor/material3-dark.scss +1 -1
  75. package/styles/rich-text-editor/material3.css +0 -1
  76. package/styles/rich-text-editor/material3.scss +1 -1
  77. package/styles/rich-text-editor/tailwind-dark.css +0 -1
  78. package/styles/rich-text-editor/tailwind-dark.scss +1 -1
  79. package/styles/rich-text-editor/tailwind.css +0 -1
  80. package/styles/rich-text-editor/tailwind.scss +1 -1
  81. package/styles/tailwind-dark.css +0 -1
  82. package/styles/tailwind.css +0 -1
@@ -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();
@@ -5967,6 +6019,9 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
5967
6019
  else if (args.popupType === 'Inline') {
5968
6020
  className = CLS_INLINE_POP;
5969
6021
  }
6022
+ else if (args.popupType === 'Text') {
6023
+ className = CLS_TEXT_POP;
6024
+ }
5970
6025
  else {
5971
6026
  className = '';
5972
6027
  }
@@ -6046,7 +6101,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6046
6101
  case 'bottom': {
6047
6102
  var posY = void 0;
6048
6103
  if (viewPort === 'document') {
6049
- if (type === 'inline') {
6104
+ if (type === 'inline' || type === 'text') {
6050
6105
  posY = (e.y - e.popHeight - 10);
6051
6106
  }
6052
6107
  else {
@@ -6075,7 +6130,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6075
6130
  break;
6076
6131
  }
6077
6132
  case 'right':
6078
- if (type === 'inline') {
6133
+ if (type === 'inline' || type === 'text') {
6079
6134
  x = window.pageXOffset + (e.windowWidth - (e.popWidth + e.bodyRightSpace + 10));
6080
6135
  }
6081
6136
  else {
@@ -6083,7 +6138,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6083
6138
  }
6084
6139
  break;
6085
6140
  case 'left':
6086
- if (type === 'inline') {
6141
+ if (type === 'inline' || type === 'text') {
6087
6142
  x = 0;
6088
6143
  }
6089
6144
  else {
@@ -6102,11 +6157,12 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6102
6157
  * @param {number} x - specifies the x value
6103
6158
  * @param {number} y - specifies the y value
6104
6159
  * @param {Element} target - specifies the element
6160
+ * @param {string} type - specifies the type
6105
6161
  * @returns {void}
6106
6162
  * @hidden
6107
6163
  * @deprecated
6108
6164
  */
6109
- BaseQuickToolbar.prototype.showPopup = function (x, y, target) {
6165
+ BaseQuickToolbar.prototype.showPopup = function (x, y, target, type) {
6110
6166
  var _this = this;
6111
6167
  var eventArgs = { popup: this.popupObj, cancel: false, targetElement: target,
6112
6168
  positionX: x, positionY: y };
@@ -6137,7 +6193,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6137
6193
  editPanelTop = (cntEle) ? cntEle.scrollTop : 0;
6138
6194
  editPanelHeight = (cntEle) ? cntEle.offsetHeight : 0;
6139
6195
  }
6140
- if (!_this.parent.inlineMode.enable && !closest(target, 'table')) {
6196
+ if (!_this.parent.inlineMode.enable && !closest(target, 'table') && type !== 'text') {
6141
6197
  _this.parent.disableToolbarItem(_this.parent.toolbarSettings.items);
6142
6198
  _this.parent.enableToolbarItem(['Undo', 'Redo']);
6143
6199
  }
@@ -6190,7 +6246,7 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6190
6246
  if (!_this.parent.inlineMode.enable) {
6191
6247
  _this.checkCollision(showPopupData, 'parent', '');
6192
6248
  }
6193
- _this.checkCollision(showPopupData, 'document', ((_this.parent.inlineMode.enable) ? 'inline' : ''));
6249
+ _this.checkCollision(showPopupData, 'document', ((_this.parent.inlineMode.enable) ? 'inline' : (type === 'text') ? 'text' : ''));
6194
6250
  _this.popupObj.element.classList.remove('e-popup-open');
6195
6251
  removeClass([_this.element], [CLS_HIDE]);
6196
6252
  _this.popupObj.show({ name: 'ZoomIn', duration: (Browser.isIE ? 250 : 400) });
@@ -6520,8 +6576,10 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6520
6576
  }
6521
6577
  this.linkQTBar = this.createQTBar('Link', 'Scrollable', this.parent.quickToolbarSettings.link, RenderType.LinkToolbar);
6522
6578
  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);
6579
+ if (!isNullOrUndefined(this.parent.quickToolbarSettings.text) && !this.parent.inlineMode.enable) {
6580
+ this.textQTBar = this.createQTBar('Text', 'MultiRow', this.parent.quickToolbarSettings.text, RenderType.TextToolbar);
6581
+ this.renderFactory.addRenderer(RenderType.TextToolbar, this.textQTBar);
6582
+ }
6525
6583
  this.imageQTBar = this.createQTBar('Image', 'MultiRow', this.parent.quickToolbarSettings.image, RenderType.ImageToolbar);
6526
6584
  this.renderFactory.addRenderer(RenderType.ImageToolbar, this.imageQTBar);
6527
6585
  this.audioQTBar = this.createQTBar('Audio', 'MultiRow', this.parent.quickToolbarSettings.audio, RenderType.AudioToolbar);
@@ -6663,6 +6721,24 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6663
6721
  }
6664
6722
  }
6665
6723
  }
6724
+ if (!isNullOrUndefined(this.textQTBar) && !isNullOrUndefined(this.parent.quickToolbarSettings.text) && !this.parent.inlineMode.enable) {
6725
+ var args = e.args.touches ?
6726
+ e.args.changedTouches[0] : e.args;
6727
+ var target = e.args.target;
6728
+ this.hideQuickToolbars();
6729
+ var parentLeft = this.parent.element.getBoundingClientRect().left;
6730
+ this.offsetX = this.parent.iframeSettings.enable ? this.parent.element.ownerDocument.documentElement.scrollLeft
6731
+ + parentLeft + args.clientX : args.pageX;
6732
+ this.offsetY = pageYOffset(args, this.parent.element, this.parent.iframeSettings.enable);
6733
+ var range = this.parent.getRange();
6734
+ if ((range.endContainer.parentElement.tagName === range.startContainer.parentElement.tagName && (range.startContainer.parentElement.tagName === 'A' && range.endContainer.parentElement.tagName === 'A')) ||
6735
+ (target.tagName === 'IMG') || (target.tagName === 'VIDEO') || (target.tagName === 'AUDIO') || (target.childNodes[0].nodeType === 1 && target.childNodes[0].classList.contains('e-rte-audio')) ||
6736
+ (this.parent.getRange().startOffset === this.parent.getRange().endOffset)) {
6737
+ return;
6738
+ }
6739
+ this.target = target;
6740
+ this.textQTBar.showPopup(this.offsetX, this.offsetY, target, 'text');
6741
+ }
6666
6742
  };
6667
6743
  QuickToolbar.prototype.keyDownHandler = function () {
6668
6744
  if ((this.parent.inlineMode.enable && (!Browser.isDevice || isIDevice()))
@@ -6675,6 +6751,11 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6675
6751
  && !isNullOrUndefined(select('.' + CLS_INLINE_POP, document))) {
6676
6752
  this.hideInlineQTBar();
6677
6753
  }
6754
+ if (!isNullOrUndefined(this.parent.quickToolbarSettings.text)) {
6755
+ if (this.textQTBar && !hasClass(this.textQTBar.element, 'e-popup-close') && document.body.contains(this.textQTBar.element)) {
6756
+ this.textQTBar.hidePopup();
6757
+ }
6758
+ }
6678
6759
  };
6679
6760
  QuickToolbar.prototype.keyUpHandler = function (e) {
6680
6761
  if (this.parent.inlineMode.enable && !Browser.isDevice) {
@@ -6833,6 +6914,7 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6833
6914
  this.parent.on(keyDown, this.onKeyDown, this);
6834
6915
  this.parent.on(rtlMode, this.setRtl, this);
6835
6916
  this.parent.on(bindCssClass, this.setCssClass, this);
6917
+ this.parent.on(hidePopup, this.hideQuickToolbars, this);
6836
6918
  };
6837
6919
  QuickToolbar.prototype.onKeyDown = function (e) {
6838
6920
  var args = e.args;
@@ -6886,6 +6968,9 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6886
6968
  if (this.linkQTBar) {
6887
6969
  this.linkQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });
6888
6970
  }
6971
+ if (this.textQTBar) {
6972
+ this.textQTBar.quickTBarObj.toolbarObj.setProperties({ enableRtl: args.enableRtl });
6973
+ }
6889
6974
  };
6890
6975
  /**
6891
6976
  * removeEventListener
@@ -6914,6 +6999,7 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6914
6999
  this.parent.off(keyDown, this.onKeyDown);
6915
7000
  this.parent.off(rtlMode, this.setRtl);
6916
7001
  this.parent.off(bindCssClass, this.setCssClass);
7002
+ this.parent.off(hidePopup, this.hideQuickToolbars);
6917
7003
  };
6918
7004
  /**
6919
7005
  * Called internally if any of the property value changed.
@@ -11239,11 +11325,12 @@ var DOMNode = /** @__PURE__ @class */ (function () {
11239
11325
  var startTextNode;
11240
11326
  var endTextNode;
11241
11327
  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') {
11328
+ // To Do Apply Heading and Back space press in empty content.
11329
+ // if (isNOU(action) && save.range.startContainer.nodeType === 1 &&
11330
+ // (save.range.startContainer as HTMLElement).querySelectorAll('audio,video,image').length === 0) {
11331
+ // start.innerHTML = '<br>';
11332
+ // }
11333
+ if (start.childNodes.length === 1 && start.childNodes[0].nodeName === 'BR') {
11247
11334
  start.innerHTML = '&#65279;&#65279;<br>';
11248
11335
  }
11249
11336
  else {
@@ -14995,7 +15082,7 @@ var TableCommand = /** @__PURE__ @class */ (function () {
14995
15082
  TableCommand.prototype.calculateStyleValue = function (value) {
14996
15083
  var styleValue;
14997
15084
  if (typeof (value) === 'string') {
14998
- if (value.indexOf('px') || value.indexOf('%') || value.indexOf('auto')) {
15085
+ if (value.indexOf('px') >= 0 || value.indexOf('%') >= 0 || value.indexOf('auto') >= 0) {
14999
15086
  styleValue = value;
15000
15087
  }
15001
15088
  else {
@@ -17497,6 +17584,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17497
17584
  'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω'];
17498
17585
  this.removableElements = ['o:p', 'style'];
17499
17586
  this.listContents = [];
17587
+ this.cropImageDimensions = [];
17500
17588
  this.parent = parent;
17501
17589
  this.addEventListener();
17502
17590
  }
@@ -17546,7 +17634,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17546
17634
  }
17547
17635
  }
17548
17636
  }
17549
- e.callBack(elm.innerHTML);
17637
+ e.callBack(elm.innerHTML, this.cropImageDimensions);
17550
17638
  }
17551
17639
  else {
17552
17640
  e.callBack(elm.innerHTML);
@@ -17614,7 +17702,8 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17614
17702
  imgElem[i].getAttribute('v:shapes').indexOf('Grafik') < 0 &&
17615
17703
  imgElem[i].getAttribute('v:shapes').toLowerCase().indexOf('image') < 0 &&
17616
17704
  imgElem[i].getAttribute('v:shapes').indexOf('Graphic') < 0 &&
17617
- imgElem[i].getAttribute('v:shapes').indexOf('_x0000_s') < 0) {
17705
+ imgElem[i].getAttribute('v:shapes').indexOf('_x0000_s') < 0 &&
17706
+ imgElem[i].getAttribute('v:shapes').indexOf('_x0000_i') < 0) {
17618
17707
  detach(imgElem[i]);
17619
17708
  }
17620
17709
  }
@@ -17631,14 +17720,36 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17631
17720
  }
17632
17721
  var hexValue = this.hexConversion(rtfData);
17633
17722
  for (var i = 0; i < hexValue.length; i++) {
17634
- base64Src.push(this.convertToBase64(hexValue[i]));
17723
+ base64Src.push({
17724
+ base64Data: !isNullOrUndefined(hexValue[i].hex) ? this.convertToBase64(hexValue[i]) : null,
17725
+ isCroppedImage: hexValue[i].isCroppedImage
17726
+ });
17727
+ if (hexValue[i].isCroppedImage) {
17728
+ this.cropImageDimensions.push({
17729
+ goalWidth: hexValue[i].goalWidth,
17730
+ goalHeight: hexValue[i].goalHeight,
17731
+ cropLength: hexValue[i].cropLength,
17732
+ cropTop: hexValue[i].cropTop,
17733
+ cropR: hexValue[i].cropR,
17734
+ cropB: hexValue[i].cropB
17735
+ });
17736
+ }
17635
17737
  }
17636
17738
  for (var i = 0; i < imgElem.length; i++) {
17637
17739
  if (imgSrc[i].match(linkRegex)) {
17638
17740
  imgElem[i].setAttribute('src', imgSrc[i]);
17639
17741
  }
17640
17742
  else {
17641
- imgElem[i].setAttribute('src', base64Src[i]);
17743
+ if (!isNullOrUndefined(base64Src[i]) && !isNullOrUndefined(base64Src[i].base64Data)) {
17744
+ imgElem[i].setAttribute('src', base64Src[i].base64Data);
17745
+ }
17746
+ else {
17747
+ imgElem[i].removeAttribute('src');
17748
+ imgElem[i].setAttribute('alt', 'Unsupported file format');
17749
+ }
17750
+ if (!isNullOrUndefined(base64Src[i]) && base64Src[i].isCroppedImage) {
17751
+ imgElem[i].classList.add('e-img-cropped');
17752
+ }
17642
17753
  }
17643
17754
  imgElem[i].setAttribute('id', 'msWordImg-' + imgName[i]);
17644
17755
  }
@@ -17715,6 +17826,13 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17715
17826
  var result = [];
17716
17827
  if (!isNullOrUndefined(fullImg)) {
17717
17828
  for (var i = 0; i < fullImg.length; i++) {
17829
+ var isCroppedImage = false;
17830
+ var goalWidth = 0;
17831
+ var goalHeight = 0;
17832
+ var cropLength = 0;
17833
+ var cropTop = 0;
17834
+ var cropR = 0;
17835
+ var cropB = 0;
17718
17836
  if (picHead.test(fullImg[i])) {
17719
17837
  if (fullImg[i].indexOf('\\pngblip') !== -1) {
17720
17838
  imgType = 'image/png';
@@ -17722,20 +17840,45 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17722
17840
  else if (fullImg[i].indexOf('\\jpegblip') !== -1) {
17723
17841
  imgType = 'image/jpeg';
17724
17842
  }
17843
+ else if (fullImg[i].indexOf('\\picprop') !== -1) {
17844
+ imgType = null;
17845
+ }
17725
17846
  else {
17726
17847
  continue;
17727
17848
  }
17849
+ isCroppedImage = this.extractCropValue('cropl', fullImg[i]) > 0 &&
17850
+ this.extractCropValue('cropt', fullImg[i]) > 0 ? true : false;
17851
+ if (isCroppedImage) {
17852
+ goalWidth = this.extractCropValue('wgoal', fullImg[i]);
17853
+ goalHeight = this.extractCropValue('hgoal', fullImg[i]);
17854
+ cropLength = this.extractCropValue('cropl', fullImg[i]);
17855
+ cropTop = this.extractCropValue('cropt', fullImg[i]);
17856
+ cropR = this.extractCropValue('cropr', fullImg[i]);
17857
+ cropB = this.extractCropValue('cropb', fullImg[i]);
17858
+ }
17728
17859
  result.push({
17729
17860
  hex: imgType ? fullImg[i].replace(picHead, '').replace(/[^\da-fA-F]/g, '') : null,
17730
- type: imgType
17861
+ type: imgType,
17862
+ isCroppedImage: isCroppedImage,
17863
+ goalWidth: goalWidth,
17864
+ goalHeight: goalHeight,
17865
+ cropLength: cropLength,
17866
+ cropTop: cropTop,
17867
+ cropR: cropR,
17868
+ cropB: cropB
17731
17869
  });
17732
17870
  }
17733
17871
  }
17734
17872
  }
17735
17873
  return result;
17736
17874
  };
17875
+ MsWordPaste.prototype.extractCropValue = function (crop, rtfData) {
17876
+ // eslint-disable-next-line security/detect-non-literal-regexp
17877
+ var result = new RegExp('\\\\pic' + crop + '(\\-?\\d+)\\\\').exec(rtfData.replace('\r\n\\', '\\'))[1];
17878
+ return parseInt(result, 10);
17879
+ };
17737
17880
  MsWordPaste.prototype.removeClassName = function (elm) {
17738
- var elmWithClass = elm.querySelectorAll('*[class]');
17881
+ var elmWithClass = elm.querySelectorAll('*[class]:not(.e-img-cropped)');
17739
17882
  for (var i = 0; i < elmWithClass.length; i++) {
17740
17883
  elmWithClass[i].removeAttribute('class');
17741
17884
  }
@@ -18072,8 +18215,10 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18072
18215
  currentListStyle = listNodes[i].getAttribute('style');
18073
18216
  }
18074
18217
  }
18075
- collection.push({ listType: type, content: tempNode, nestedLevel: level, class: currentClassName,
18076
- listStyle: currentListStyle, listStyleTypeName: listStyleType, start: startAttr, styleMarginLeft: styleMarginLeft });
18218
+ collection.push({
18219
+ listType: type, content: tempNode, nestedLevel: level, class: currentClassName,
18220
+ listStyle: currentListStyle, listStyleTypeName: listStyleType, start: startAttr, styleMarginLeft: styleMarginLeft
18221
+ });
18077
18222
  }
18078
18223
  }
18079
18224
  stNode = listNodes.shift();
@@ -18201,8 +18346,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18201
18346
  }
18202
18347
  else {
18203
18348
  if (collection[index].nestedLevel > pLevel && isNormalList) {
18204
- var initialNode = void 0;
18205
- initialNode = createElement(collection[index].listType);
18349
+ var initialNode = createElement(collection[index].listType);
18206
18350
  prevList = createElement('li');
18207
18351
  initialNode.appendChild(prevList);
18208
18352
  initialNode.style.listStyleType = 'none';
@@ -18291,7 +18435,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18291
18435
  if (firstChild.childNodes.length > 0) {
18292
18436
  var listIgnoreTag = firstChild.querySelectorAll('[style*="mso-list"]');
18293
18437
  for (var i = 0; i < listIgnoreTag.length; i++) {
18294
- listIgnoreTag[i].setAttribute('style', listIgnoreTag[i].getAttribute('style').replace(/\n/g, ""));
18438
+ listIgnoreTag[i].setAttribute('style', listIgnoreTag[i].getAttribute('style').replace(/\n/g, ''));
18295
18439
  }
18296
18440
  var listOrder = firstChild.querySelector('span[style="mso-list:Ignore"]');
18297
18441
  if (!isNullOrUndefined(listOrder)) {
@@ -19902,7 +20046,7 @@ var XhtmlValidation = /** @__PURE__ @class */ (function () {
19902
20046
  */
19903
20047
  XhtmlValidation.prototype.selfEncloseValidation = function (currentValue, valueLength) {
19904
20048
  if (valueLength === 0 && currentValue.indexOf('table') < 0 && currentValue.indexOf('img') < 0 &&
19905
- currentValue !== '<p><br></p>' && currentValue !== '<div><br></div>' && currentValue !== '<br>') {
20049
+ currentValue.includes('&nbsp;')) {
19906
20050
  var arrayValue = currentValue.split('&nbsp;');
19907
20051
  arrayValue[arrayValue.length - 1] = '&#8203;' + arrayValue[arrayValue.length - 1];
19908
20052
  currentValue = arrayValue.join('');
@@ -20144,11 +20288,24 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20144
20288
  var currentLength = this.parent.inputElement.innerHTML.replace(regEx, '').length;
20145
20289
  var focusNode = range.startContainer;
20146
20290
  if (previousLength > currentLength && !isRootParent) {
20291
+ if (focusNode.textContent.trim().length !== 0 && focusNode.previousSibling) {
20292
+ var tempSpan = document.createElement('span');
20293
+ tempSpan.className = 'tempSpan';
20294
+ range.insertNode(tempSpan);
20295
+ }
20147
20296
  var currentChild = this.parent.inputElement.firstChild;
20148
20297
  while (!isNullOrUndefined(currentChild) && currentChild.textContent.replace(regEx, '').trim().length > 0) {
20149
20298
  currentChild.innerHTML = currentChild.innerHTML.replace(regEx, '');
20150
20299
  currentChild = currentChild.nextElementSibling;
20151
20300
  }
20301
+ var tempSpanToRemove = this.parent.inputElement.querySelector('.tempSpan');
20302
+ if (tempSpanToRemove && tempSpanToRemove.previousSibling && focusNode.textContent.trim().length !== 0) {
20303
+ focusNode = tempSpanToRemove.previousSibling;
20304
+ pointer = tempSpanToRemove.previousSibling.textContent.length;
20305
+ var parentElement = tempSpanToRemove.parentNode;
20306
+ parentElement.removeChild(tempSpanToRemove);
20307
+ tempSpanToRemove = null;
20308
+ }
20152
20309
  var currentChildNode = this.parent.inputElement.querySelector('.currentStartMark').childNodes;
20153
20310
  if (currentChildNode.length > 1) {
20154
20311
  for (var i = 0; i < currentChildNode.length; i++) {
@@ -20603,7 +20760,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20603
20760
  var item = args.item;
20604
20761
  var closestElement = closest(args.originalEvent.target, '.e-rte-quick-popup');
20605
20762
  if (item.command !== 'FormatPainter') {
20606
- if (closestElement && !closestElement.classList.contains('e-rte-inline-popup')) {
20763
+ if (closestElement && !closestElement.classList.contains('e-rte-inline-popup') && !closestElement.classList.contains('e-rte-text-popup')) {
20607
20764
  if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
20608
20765
  item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {
20609
20766
  if (isIDevice$1() && item.command === 'Images') {
@@ -20875,6 +21032,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
20875
21032
  'header', 'article', 'nav', 'footer', 'section', 'aside', 'main', 'figure', 'figcaption'];
20876
21033
  this.isNotFromHtml = false;
20877
21034
  this.containsHtml = false;
21035
+ this.cropImageData = [];
20878
21036
  this.parent = parent;
20879
21037
  this.locator = serviceLocator;
20880
21038
  this.renderFactory = this.locator.getService('rendererFactory');
@@ -20955,8 +21113,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
20955
21113
  args: e.args,
20956
21114
  text: e.text,
20957
21115
  allowedStylePropertiesArray: this.parent.pasteCleanupSettings.allowedStyleProps,
20958
- callBack: function (a) {
21116
+ callBack: function (a, cropImageData) {
20959
21117
  value = a.trim();
21118
+ _this.cropImageData = cropImageData;
20960
21119
  }
20961
21120
  });
20962
21121
  }
@@ -21005,7 +21164,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21005
21164
  currentFocusNode = currentFocusNode.childNodes[_this.nodeSelectionObj.getRange(_this.contentRenderer.getDocument()).startOffset];
21006
21165
  }
21007
21166
  if (currentFocusNode.previousSibling.nodeName === 'IMG') {
21008
- currentFocusNode.previousSibling.classList.add('pasteContent_Img');
21167
+ if (!isNullOrUndefined(currentFocusNode.previousSibling.getAttribute('src'))) {
21168
+ currentFocusNode.previousSibling.classList.add('pasteContent_Img');
21169
+ }
21009
21170
  currentFocusNode.previousSibling.classList.add(CLS_RTE_IMAGE);
21010
21171
  if (_this.parent.insertImageSettings.display === 'inline') {
21011
21172
  currentFocusNode.previousSibling.classList.add(CLS_IMGINLINE);
@@ -21037,6 +21198,7 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21037
21198
  PasteCleanup.prototype.makeSpace = function (enterSplitText) {
21038
21199
  var contentWithSpace = '';
21039
21200
  var spaceBetweenContent = true;
21201
+ enterSplitText = enterSplitText.replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;');
21040
21202
  var spaceSplit = enterSplitText.split(' ');
21041
21203
  for (var j = 0; j < spaceSplit.length; j++) {
21042
21204
  if (spaceSplit[j].trim() === '') {
@@ -21056,7 +21218,8 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21056
21218
  var imgName = [];
21057
21219
  var uploadImg = [];
21058
21220
  for (var i = 0; i < allImgElm.length; i++) {
21059
- if (allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {
21221
+ if (!isNullOrUndefined(allImgElm[i].getAttribute('src')) &&
21222
+ allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {
21060
21223
  base64Src.push(allImgElm[i].getAttribute('src'));
21061
21224
  imgName.push(getUniqueID('rte_image'));
21062
21225
  uploadImg.push(allImgElm[i]);
@@ -21137,8 +21300,6 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21137
21300
  setTimeout(function () {
21138
21301
  _this.refreshPopup(imgElem, _this.popupObj);
21139
21302
  }, timeOut);
21140
- var rawFile;
21141
- var beforeUploadArgs;
21142
21303
  this.uploadObj = new Uploader({
21143
21304
  asyncSettings: {
21144
21305
  saveUrl: this.parent.insertImageSettings.saveUrl,
@@ -21170,28 +21331,8 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21170
21331
  }
21171
21332
  },
21172
21333
  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
- }
21334
+ _this.parent.trigger(beforeImageUpload, args);
21335
+ _this.toolbarEnableDisable(true);
21195
21336
  },
21196
21337
  // eslint-disable-next-line
21197
21338
  failure: function (e) {
@@ -21209,9 +21350,6 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21209
21350
  },
21210
21351
  selected: function (e) {
21211
21352
  e.cancel = true;
21212
- if (_this.parent.isServerRendered) {
21213
- rawFile = e.filesData;
21214
- }
21215
21353
  },
21216
21354
  removing: function () {
21217
21355
  _this.parent.inputElement.contentEditable = 'true';
@@ -21233,8 +21371,6 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21233
21371
  statusCode: '1'
21234
21372
  }];
21235
21373
  this.uploadObj.createFileList(fileData);
21236
- /* eslint-enable */
21237
- rawFile = fileData;
21238
21374
  this.uploadObj.upload(fileData);
21239
21375
  this.popupObj.element.getElementsByClassName('e-file-select-wrap')[0].style.display = 'none';
21240
21376
  detach(this.popupObj.element.querySelector('.e-rte-dialog-upload .e-file-select-wrap'));
@@ -21309,7 +21445,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21309
21445
  * @deprecated
21310
21446
  */
21311
21447
  PasteCleanup.prototype.imageFormatting = function (pasteArgs, imgElement) {
21312
- imgElement.elements[0].classList.add('pasteContent_Img');
21448
+ if (!isNullOrUndefined(imgElement.elements[0].getAttribute('src'))) {
21449
+ imgElement.elements[0].classList.add('pasteContent_Img');
21450
+ }
21313
21451
  var imageElement = this.parent.createElement('span');
21314
21452
  imageElement.appendChild(imgElement.elements[0]);
21315
21453
  var imageValue = imageElement.innerHTML;
@@ -21502,7 +21640,9 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21502
21640
  clipBoardElem.innerHTML = this.sanitizeHelper(clipBoardElem.innerHTML);
21503
21641
  var allImg = clipBoardElem.querySelectorAll('img');
21504
21642
  for (var i = 0; i < allImg.length; i++) {
21505
- allImg[i].classList.add('pasteContent_Img');
21643
+ if (!isNullOrUndefined(allImg[i].getAttribute('src'))) {
21644
+ allImg[i].classList.add('pasteContent_Img');
21645
+ }
21506
21646
  this.setImageProperties(allImg[i]);
21507
21647
  }
21508
21648
  this.addTempClass(clipBoardElem);
@@ -21545,6 +21685,51 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21545
21685
  }, clipBoardElem, null, null, this.parent.enterKey);
21546
21686
  this.removeTempClass();
21547
21687
  this.parent.notify(toolbarRefresh, {});
21688
+ this.cropImageHandler(this.parent.inputElement);
21689
+ }
21690
+ };
21691
+ PasteCleanup.prototype.cropImageHandler = function (element) {
21692
+ var _this = this;
21693
+ var allImgElm = element.querySelectorAll('.e-img-cropped');
21694
+ if (allImgElm.length > 0) {
21695
+ var _loop_1 = function (i) {
21696
+ if (allImgElm[i].getAttribute('src').split(',')[0].indexOf('base64') >= 0) {
21697
+ var image_1 = new Image();
21698
+ image_1.src = allImgElm[i].getAttribute('src');
21699
+ var canvas_1 = document.createElement('canvas');
21700
+ var ctx_1 = canvas_1.getContext('2d');
21701
+ image_1.onload = function () {
21702
+ var wGoalWidth = _this.cropImageData[i].goalWidth / image_1.naturalWidth;
21703
+ var hGoalHeight = _this.cropImageData[i].goalHeight / image_1.naturalHeight;
21704
+ var cropLength = _this.cropImageData[i].cropLength / wGoalWidth;
21705
+ var cropTop = _this.cropImageData[i].cropTop / hGoalHeight;
21706
+ var cropWidth = (_this.cropImageData[i].goalWidth -
21707
+ _this.cropImageData[i].cropLength -
21708
+ _this.cropImageData[i].cropR) / wGoalWidth;
21709
+ var cropHeight = (_this.cropImageData[i].goalHeight -
21710
+ _this.cropImageData[i].cropTop -
21711
+ _this.cropImageData[i].cropB) / hGoalHeight;
21712
+ canvas_1.width = cropWidth;
21713
+ canvas_1.height = cropHeight;
21714
+ // Draw the cropped portion of the image onto the canvas
21715
+ ctx_1.drawImage(image_1, cropLength, cropTop, cropWidth, cropHeight, 0, 0, cropWidth, cropHeight);
21716
+ // Convert the cropped canvas to a base64 encoded image
21717
+ var croppedBase64 = canvas_1.toDataURL('image/png');
21718
+ // Call the provided callback with the cropped base64 data
21719
+ allImgElm[i].setAttribute('src', croppedBase64);
21720
+ allImgElm[i].classList.remove('e-img-cropped');
21721
+ _this.imgUploading(_this.parent.inputElement);
21722
+ if (_this.parent.iframeSettings.enable) {
21723
+ _this.parent.updateValue();
21724
+ }
21725
+ };
21726
+ }
21727
+ };
21728
+ for (var i = 0; i < allImgElm.length; i++) {
21729
+ _loop_1(i);
21730
+ }
21731
+ }
21732
+ else {
21548
21733
  this.imgUploading(this.parent.inputElement);
21549
21734
  if (this.parent.iframeSettings.enable) {
21550
21735
  this.parent.updateValue();
@@ -22495,6 +22680,10 @@ var FormatPainter = /** @__PURE__ @class */ (function () {
22495
22680
  clickargs.args.action = 'escape';
22496
22681
  this.actionHandler(clickargs, 'keyBoard');
22497
22682
  }
22683
+ if (this.parent.quickToolbarModule && !isNullOrUndefined(this.parent.quickToolbarSettings.text) &&
22684
+ this.parent.element.ownerDocument.contains(this.parent.quickToolbarModule.textQTBar.element)) {
22685
+ this.parent.quickToolbarModule.textQTBar.hidePopup();
22686
+ }
22498
22687
  };
22499
22688
  FormatPainter.prototype.toolbarDoubleClick = function (args) {
22500
22689
  this.isActive = true;
@@ -22573,12 +22762,14 @@ var FormatPainter = /** @__PURE__ @class */ (function () {
22573
22762
  }
22574
22763
  };
22575
22764
  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');
22765
+ if (!isNullOrUndefined(this.parent.element.querySelector('.e-rte-format-painter'))) {
22766
+ var toolbarBtn = this.parent.element.querySelector('.e-rte-format-painter').parentElement.parentElement;
22767
+ if (enable) {
22768
+ addClass([toolbarBtn], 'e-active');
22769
+ }
22770
+ else if (!this.isSticky) {
22771
+ removeClass([toolbarBtn], 'e-active');
22772
+ }
22582
22773
  }
22583
22774
  };
22584
22775
  FormatPainter.prototype.editAreaClick = function (args) {
@@ -22651,7 +22842,13 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22651
22842
  EmojiPicker.prototype.toolbarClick = function (args) {
22652
22843
  var _this = this;
22653
22844
  var _a, _b;
22654
- var spanElement = this.parent.element.querySelector('.e-emoji');
22845
+ var spanElement;
22846
+ if (!isNullOrUndefined(this.parent.element.querySelector('.e-emoji'))) {
22847
+ spanElement = this.parent.element.querySelector('.e-emoji');
22848
+ }
22849
+ else if (this.parent.inlineMode.enable) {
22850
+ spanElement = this.parent.element.ownerDocument.querySelector('.e-emoji');
22851
+ }
22655
22852
  this.divElement = spanElement.closest('div');
22656
22853
  var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
22657
22854
  this.save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
@@ -22666,7 +22863,12 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22666
22863
  this.popupObj.hide();
22667
22864
  }
22668
22865
  this.popDiv = this.parent.createElement('div', { className: 'e-rte-emojipicker-popup', id: this.parent.getID() + '_emojiPicker' });
22669
- this.parent.getToolbar().appendChild(this.popDiv);
22866
+ if (!isNullOrUndefined(this.parent.getToolbar()) && !this.parent.inlineMode.enable) {
22867
+ this.parent.getToolbar().appendChild(this.popDiv);
22868
+ }
22869
+ else if (this.parent.inlineMode.enable) {
22870
+ this.parent.inputElement.appendChild(this.popDiv);
22871
+ }
22670
22872
  EventHandler.add(this.popDiv, 'keydown', this.onKeyDown, this);
22671
22873
  EventHandler.add(this.popDiv, 'keyup', this.searchFilter, this);
22672
22874
  var extendEle = this.parent.element.querySelector('.e-toolbar-extended');
@@ -22681,13 +22883,14 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22681
22883
  var target;
22682
22884
  var xValue;
22683
22885
  var yValue;
22684
- if (!isNullOrUndefined(args.args)) {
22886
+ if (!isNullOrUndefined(args.args) && !this.parent.inlineMode.enable &&
22887
+ isNullOrUndefined(this.parent.quickToolbarSettings.text)) {
22685
22888
  target = args.args.originalEvent.target;
22686
22889
  target = target.classList.contains('e-toolbar-item') ? target.firstChild : target.parentElement;
22687
22890
  xValue = 'left';
22688
22891
  yValue = 'bottom';
22689
22892
  }
22690
- else if (isNullOrUndefined(args.x) && isNullOrUndefined(args.y)) {
22893
+ else if (isNullOrUndefined(args.x) && isNullOrUndefined(args.y) && !this.parent.inlineMode.enable && isNullOrUndefined(this.parent.quickToolbarSettings.text)) {
22691
22894
  target = this.parent.inputElement;
22692
22895
  if (window.getSelection().rangeCount > 0) {
22693
22896
  var coordinates = this.getCoordinates();
@@ -22695,6 +22898,14 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22695
22898
  yValue = coordinates.top;
22696
22899
  }
22697
22900
  }
22901
+ else if (isNullOrUndefined(args.x) && isNullOrUndefined(args.y) && (this.parent.inlineMode.enable || !isNullOrUndefined(this.parent.quickToolbarSettings.text))) {
22902
+ this.parent.notify(hidePopup, {});
22903
+ if (window.getSelection().rangeCount > 0) {
22904
+ var coordinates = this.getCoordinates();
22905
+ xValue = coordinates.left;
22906
+ yValue = coordinates.top;
22907
+ }
22908
+ }
22698
22909
  else {
22699
22910
  target = this.parent.inputElement;
22700
22911
  xValue = args.x;
@@ -22721,7 +22932,8 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22721
22932
  addClass([this.popupObj.element], 'e-popup-open');
22722
22933
  this.popupObj.refreshPosition(target);
22723
22934
  // header search element
22724
- if ((!isNullOrUndefined(args.args) || (isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) && this.parent.emojiPickerSettings.showSearchBox) {
22935
+ if ((!isNullOrUndefined(args.args) || (isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) &&
22936
+ this.parent.emojiPickerSettings.showSearchBox) {
22725
22937
  var inputEle = createElement('input', { id: 'e-rte-emoji-search', className: 'e-rte-emoji-search' });
22726
22938
  this.popDiv.append(inputEle);
22727
22939
  var inputobj = new TextBox({
@@ -22757,7 +22969,8 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22757
22969
  this.popDiv.appendChild(emojiBtnDiv);
22758
22970
  var height;
22759
22971
  var popupBorder = window.getComputedStyle(this.popDiv);
22760
- if ((isNullOrUndefined(args.args) && !(isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) || !this.parent.emojiPickerSettings.showSearchBox) {
22972
+ if ((isNullOrUndefined(args.args) && !(isNullOrUndefined(args.x) && isNullOrUndefined(args.y))) ||
22973
+ !this.parent.emojiPickerSettings.showSearchBox) {
22761
22974
  height = (this.popDiv.getBoundingClientRect().height - emojiToolBar.getBoundingClientRect().height - (2 * parseFloat(popupBorder.borderWidth))) + 'px';
22762
22975
  emojiBtnDiv.style.setProperty('height', height, 'important');
22763
22976
  }
@@ -22803,13 +23016,6 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
22803
23016
  if (!isNullOrUndefined(popup)) {
22804
23017
  scrollTop = Math.round(popup.scrollTop);
22805
23018
  }
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
23019
  if (scrollTop < toolbarName[0].offsetHeight) {
22814
23020
  addClass([toolbarName[0]], 'e-selected');
22815
23021
  }
@@ -23264,7 +23470,7 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
23264
23470
  var startOffset = this.save.startOffset;
23265
23471
  var textContent = this.save.range.startContainer.textContent;
23266
23472
  var previousText = textContent.substring(startOffset, startOffset + 1);
23267
- // When toolbar action is clicked then only restore the range.
23473
+ // When toolbar action is clicked then only restore the range.
23268
23474
  if (!isNullOrUndefined(this.clickEvent) || previousText !== ':') {
23269
23475
  this.save.restore();
23270
23476
  }
@@ -23846,6 +24052,9 @@ var Link = /** @__PURE__ @class */ (function () {
23846
24052
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
23847
24053
  this.quickToolObj.inlineQTBar.hidePopup();
23848
24054
  }
24055
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
24056
+ this.quickToolObj.textQTBar.hidePopup();
24057
+ }
23849
24058
  }
23850
24059
  };
23851
24060
  // eslint-disable-next-line
@@ -24038,7 +24247,7 @@ var Link = /** @__PURE__ @class */ (function () {
24038
24247
  /**
24039
24248
  * `Image` module is used to handle image actions.
24040
24249
  */
24041
- var Image = /** @__PURE__ @class */ (function () {
24250
+ var Image$1 = /** @__PURE__ @class */ (function () {
24042
24251
  function Image(parent, serviceLocator) {
24043
24252
  this.isImgUploaded = false;
24044
24253
  this.isAllowedTypes = true;
@@ -24121,6 +24330,7 @@ var Image = /** @__PURE__ @class */ (function () {
24121
24330
  EventHandler.remove(this.parent.contentModule.getEditPanel(), Browser.touchStartEvent, this.resizeStart);
24122
24331
  EventHandler.remove(this.parent.element.ownerDocument, 'mousedown', this.onDocumentClick);
24123
24332
  EventHandler.remove(this.contentModule.getEditPanel(), 'cut', this.onCutHandler);
24333
+ EventHandler.remove(this.contentModule.getDocument(), Browser.touchMoveEvent, this.resizing);
24124
24334
  }
24125
24335
  }
24126
24336
  };
@@ -25450,6 +25660,9 @@ var Image = /** @__PURE__ @class */ (function () {
25450
25660
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
25451
25661
  this.quickToolObj.inlineQTBar.hidePopup();
25452
25662
  }
25663
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
25664
+ this.quickToolObj.textQTBar.hidePopup();
25665
+ }
25453
25666
  }
25454
25667
  };
25455
25668
  // eslint-disable-next-line
@@ -25718,10 +25931,8 @@ var Image = /** @__PURE__ @class */ (function () {
25718
25931
  });
25719
25932
  uploadParentEle.appendChild(uploadEle);
25720
25933
  var altText;
25721
- var rawFile;
25722
25934
  var selectArgs;
25723
25935
  var filesData;
25724
- var beforeUploadArgs;
25725
25936
  this.uploadObj = new Uploader({
25726
25937
  asyncSettings: { saveUrl: this.parent.insertImageSettings.saveUrl, removeUrl: this.parent.insertImageSettings.removeUrl },
25727
25938
  dropArea: span, multiple: false, enableRtl: this.parent.enableRtl, cssClass: this.parent.cssClass,
@@ -25729,13 +25940,8 @@ var Image = /** @__PURE__ @class */ (function () {
25729
25940
  selected: function (e) {
25730
25941
  proxy.isImgUploaded = true;
25731
25942
  selectArgs = e;
25943
+ // eslint-disable-next-line
25732
25944
  filesData = e.filesData;
25733
- if (_this.parent.isServerRendered) {
25734
- selectArgs = JSON.parse(JSON.stringify(e));
25735
- e.cancel = true;
25736
- rawFile = e.filesData;
25737
- selectArgs.filesData = rawFile;
25738
- }
25739
25945
  _this.parent.trigger(imageSelected, selectArgs, function (selectArgs) {
25740
25946
  if (!selectArgs.cancel) {
25741
25947
  _this.checkExtension(selectArgs.filesData[0]);
@@ -25766,35 +25972,11 @@ var Image = /** @__PURE__ @class */ (function () {
25766
25972
  });
25767
25973
  reader_1.readAsDataURL(selectArgs.filesData[0].rawFile);
25768
25974
  }
25769
- if (_this.parent.isServerRendered) {
25770
- /* eslint-disable */
25771
- _this.uploadObj._internalRenderSelect(selectArgs, rawFile);
25772
- /* eslint-enable */
25773
- }
25774
25975
  }
25775
25976
  });
25776
25977
  },
25777
25978
  beforeUpload: function (args) {
25778
- if (_this.parent.isServerRendered) {
25779
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
25780
- beforeUploadArgs.filesData = filesData;
25781
- args.cancel = true;
25782
- _this.parent.trigger(imageUploading, beforeUploadArgs, function (beforeUploadArgs) {
25783
- if (beforeUploadArgs.cancel) {
25784
- return;
25785
- }
25786
- /* eslint-disable */
25787
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
25788
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
25789
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
25790
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
25791
- _this.uploadObj.uploadFiles(rawFile, null);
25792
- /* eslint-enable */
25793
- });
25794
- }
25795
- else {
25796
- _this.parent.trigger(beforeImageUpload, args);
25797
- }
25979
+ _this.parent.trigger(beforeImageUpload, args);
25798
25980
  },
25799
25981
  uploading: function (e) {
25800
25982
  if (!_this.parent.isServerRendered) {
@@ -26112,8 +26294,6 @@ var Image = /** @__PURE__ @class */ (function () {
26112
26294
  setTimeout(function () {
26113
26295
  proxy.refreshPopup(imageElement);
26114
26296
  }, timeOut);
26115
- var rawFile;
26116
- var beforeUploadArgs;
26117
26297
  this.uploadObj = new Uploader({
26118
26298
  asyncSettings: {
26119
26299
  saveUrl: this.parent.insertImageSettings.saveUrl,
@@ -26139,33 +26319,9 @@ var Image = /** @__PURE__ @class */ (function () {
26139
26319
  }, 900);
26140
26320
  },
26141
26321
  beforeUpload: function (args) {
26142
- if (_this.parent.isServerRendered) {
26143
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
26144
- beforeUploadArgs.filesData = rawFile;
26145
- isUploading = true;
26146
- args.cancel = true;
26147
- _this.parent.trigger(imageUploading, beforeUploadArgs, function (beforeUploadArgs) {
26148
- if (beforeUploadArgs.cancel) {
26149
- return;
26150
- }
26151
- if (!_this.parent.inlineMode.enable) {
26152
- _this.parent.toolbarModule.baseToolbar.toolbarObj.disable(true);
26153
- }
26154
- /* eslint-disable */
26155
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
26156
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
26157
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
26158
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
26159
- _this.uploadObj.uploadFiles(rawFile, null);
26160
- _this.parent.inputElement.contentEditable = 'false';
26161
- /* eslint-enable */
26162
- });
26163
- }
26164
- else {
26165
- _this.parent.trigger(beforeImageUpload, args);
26166
- if (!_this.parent.inlineMode.enable) {
26167
- _this.parent.toolbarModule.baseToolbar.toolbarObj.disable(true);
26168
- }
26322
+ _this.parent.trigger(beforeImageUpload, args);
26323
+ if (!_this.parent.inlineMode.enable) {
26324
+ _this.parent.toolbarModule.baseToolbar.toolbarObj.disable(true);
26169
26325
  }
26170
26326
  },
26171
26327
  uploading: function (e) {
@@ -26190,9 +26346,6 @@ var Image = /** @__PURE__ @class */ (function () {
26190
26346
  if (isUploading) {
26191
26347
  e.cancel = true;
26192
26348
  }
26193
- if (_this.parent.isServerRendered) {
26194
- rawFile = e.filesData;
26195
- }
26196
26349
  },
26197
26350
  failure: function (e) {
26198
26351
  isUploading = false;
@@ -26979,6 +27132,9 @@ var Audio = /** @__PURE__ @class */ (function () {
26979
27132
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
26980
27133
  this.quickToolObj.inlineQTBar.hidePopup();
26981
27134
  }
27135
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
27136
+ this.quickToolObj.textQTBar.hidePopup();
27137
+ }
26982
27138
  }
26983
27139
  };
26984
27140
  // eslint-disable-next-line
@@ -27048,10 +27204,8 @@ var Audio = /** @__PURE__ @class */ (function () {
27048
27204
  });
27049
27205
  uploadParentEle.appendChild(uploadEle);
27050
27206
  var fileName;
27051
- var rawFile;
27052
27207
  var selectArgs;
27053
27208
  var filesData;
27054
- var beforeUploadArgs;
27055
27209
  this.uploadObj = new Uploader({
27056
27210
  asyncSettings: { saveUrl: this.parent.insertAudioSettings.saveUrl, removeUrl: this.parent.insertAudioSettings.removeUrl },
27057
27211
  dropArea: span, multiple: false, enableRtl: this.parent.enableRtl,
@@ -27059,13 +27213,8 @@ var Audio = /** @__PURE__ @class */ (function () {
27059
27213
  selected: function (e) {
27060
27214
  proxy.isAudioUploaded = true;
27061
27215
  selectArgs = e;
27216
+ // eslint-disable-next-line
27062
27217
  filesData = e.filesData;
27063
- if (_this.parent.isServerRendered) {
27064
- selectArgs = JSON.parse(JSON.stringify(e));
27065
- e.cancel = true;
27066
- rawFile = e.filesData;
27067
- selectArgs.filesData = rawFile;
27068
- }
27069
27218
  _this.parent.trigger(fileSelected, selectArgs, function (selectArgs) {
27070
27219
  if (!selectArgs.cancel) {
27071
27220
  _this.checkExtension(selectArgs.filesData[0]);
@@ -27088,35 +27237,11 @@ var Audio = /** @__PURE__ @class */ (function () {
27088
27237
  });
27089
27238
  reader_1.readAsDataURL(selectArgs.filesData[0].rawFile);
27090
27239
  }
27091
- if (_this.parent.isServerRendered) {
27092
- /* eslint-disable */
27093
- _this.uploadObj._internalRenderSelect(selectArgs, rawFile);
27094
- /* eslint-enable */
27095
- }
27096
27240
  }
27097
27241
  });
27098
27242
  },
27099
27243
  beforeUpload: function (args) {
27100
- if (_this.parent.isServerRendered) {
27101
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
27102
- beforeUploadArgs.filesData = filesData;
27103
- args.cancel = true;
27104
- _this.parent.trigger(fileUploading, beforeUploadArgs, function (beforeUploadArgs) {
27105
- if (beforeUploadArgs.cancel) {
27106
- return;
27107
- }
27108
- /* eslint-disable */
27109
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
27110
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
27111
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
27112
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
27113
- _this.uploadObj.uploadFiles(rawFile, null);
27114
- /* eslint-enable */
27115
- });
27116
- }
27117
- else {
27118
- _this.parent.trigger(beforeFileUpload, args);
27119
- }
27244
+ _this.parent.trigger(beforeFileUpload, args);
27120
27245
  },
27121
27246
  uploading: function (e) {
27122
27247
  if (!_this.parent.isServerRendered) {
@@ -27306,6 +27431,7 @@ var Video = /** @__PURE__ @class */ (function () {
27306
27431
  EventHandler.remove(this.parent.contentModule.getEditPanel(), Browser.touchStartEvent, this.resizeStart);
27307
27432
  EventHandler.remove(this.parent.element.ownerDocument, 'mousedown', this.onDocumentClick);
27308
27433
  EventHandler.remove(this.contentModule.getEditPanel(), 'cut', this.onCutHandler);
27434
+ EventHandler.remove(this.contentModule.getDocument(), Browser.touchMoveEvent, this.resizing);
27309
27435
  }
27310
27436
  }
27311
27437
  };
@@ -28350,6 +28476,9 @@ var Video = /** @__PURE__ @class */ (function () {
28350
28476
  if (this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
28351
28477
  this.quickToolObj.inlineQTBar.hidePopup();
28352
28478
  }
28479
+ if (this.quickToolObj.textQTBar && this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
28480
+ this.quickToolObj.textQTBar.hidePopup();
28481
+ }
28353
28482
  }
28354
28483
  };
28355
28484
  // eslint-disable-next-line
@@ -28461,10 +28590,8 @@ var Video = /** @__PURE__ @class */ (function () {
28461
28590
  });
28462
28591
  uploadParentEle.appendChild(uploadEle);
28463
28592
  var fileName;
28464
- var rawFile;
28465
28593
  var selectArgs;
28466
28594
  var filesData;
28467
- var beforeUploadArgs;
28468
28595
  this.uploadObj = new Uploader({
28469
28596
  asyncSettings: { saveUrl: this.parent.insertVideoSettings.saveUrl, removeUrl: this.parent.insertVideoSettings.removeUrl },
28470
28597
  dropArea: span, multiple: false, enableRtl: this.parent.enableRtl,
@@ -28472,13 +28599,8 @@ var Video = /** @__PURE__ @class */ (function () {
28472
28599
  selected: function (e) {
28473
28600
  proxy.isVideoUploaded = true;
28474
28601
  selectArgs = e;
28602
+ // eslint-disable-next-line
28475
28603
  filesData = e.filesData;
28476
- if (_this.parent.isServerRendered) {
28477
- selectArgs = JSON.parse(JSON.stringify(e));
28478
- e.cancel = true;
28479
- rawFile = e.filesData;
28480
- selectArgs.filesData = rawFile;
28481
- }
28482
28604
  _this.parent.trigger(fileSelected, selectArgs, function (selectArgs) {
28483
28605
  if (!selectArgs.cancel) {
28484
28606
  _this.checkExtension(selectArgs.filesData[0]);
@@ -28502,35 +28624,11 @@ var Video = /** @__PURE__ @class */ (function () {
28502
28624
  });
28503
28625
  reader_1.readAsDataURL(selectArgs.filesData[0].rawFile);
28504
28626
  }
28505
- if (_this.parent.isServerRendered) {
28506
- /* eslint-disable */
28507
- _this.uploadObj._internalRenderSelect(selectArgs, rawFile);
28508
- /* eslint-enable */
28509
- }
28510
28627
  }
28511
28628
  });
28512
28629
  },
28513
28630
  beforeUpload: function (args) {
28514
- if (_this.parent.isServerRendered) {
28515
- beforeUploadArgs = JSON.parse(JSON.stringify(args));
28516
- beforeUploadArgs.filesData = filesData;
28517
- args.cancel = true;
28518
- _this.parent.trigger(fileUploading, beforeUploadArgs, function (beforeUploadArgs) {
28519
- if (beforeUploadArgs.cancel) {
28520
- return;
28521
- }
28522
- /* eslint-disable */
28523
- _this.uploadObj.currentRequestHeader = beforeUploadArgs.currentRequest ?
28524
- beforeUploadArgs.currentRequest : _this.uploadObj.currentRequestHeader;
28525
- _this.uploadObj.customFormDatas = beforeUploadArgs.customFormData && beforeUploadArgs.customFormData.length > 0 ?
28526
- beforeUploadArgs.customFormData : _this.uploadObj.customFormDatas;
28527
- _this.uploadObj.uploadFiles(rawFile, null);
28528
- /* eslint-enable */
28529
- });
28530
- }
28531
- else {
28532
- _this.parent.trigger(beforeFileUpload, args);
28533
- }
28631
+ _this.parent.trigger(beforeFileUpload, args);
28534
28632
  },
28535
28633
  uploading: function (e) {
28536
28634
  if (!_this.parent.isServerRendered) {
@@ -28777,6 +28875,7 @@ var ViewSource = /** @__PURE__ @class */ (function () {
28777
28875
  * @deprecated
28778
28876
  */
28779
28877
  ViewSource.prototype.sourceCode = function (args) {
28878
+ this.parent.notify(hidePopup, {});
28780
28879
  this.parent.isBlur = false;
28781
28880
  this.parent.trigger(actionBegin, { requestType: 'SourceCode', targetItem: 'SourceCode', args: args });
28782
28881
  var tbItems = selectAll('.' + CLS_TB_ITEM, this.parent.element);
@@ -29409,14 +29508,17 @@ var Table = /** @__PURE__ @class */ (function () {
29409
29508
  var pageX = void 0;
29410
29509
  var pageY = void 0;
29411
29510
  if (Browser.isDevice && e.args.touches) {
29412
- pageX = e.args.changedTouches[0].pageX;
29413
- pageY = e.args.changedTouches[0].pageY;
29511
+ pageX = (this.parent.iframeSettings.enable) ? window.pageXOffset + this.parent.element.getBoundingClientRect().left +
29512
+ e.args.changedTouches[0].clientX : e.args.changedTouches[0].pageX;
29513
+ pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset + this.parent.element.getBoundingClientRect().top +
29514
+ (!this.parent.inlineMode.enable ? this.parent.toolbarModule.getToolbarHeight() : 0)
29515
+ + e.args.changedTouches[0].clientY : e.args.changedTouches[0].pageY;
29414
29516
  }
29415
29517
  else {
29416
29518
  pageX = (this.parent.iframeSettings.enable) ? window.pageXOffset
29417
29519
  + this.parent.element.getBoundingClientRect().left + args.clientX : args.pageX;
29418
- pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset +
29419
- this.parent.element.getBoundingClientRect().top + args.clientY : args.pageY;
29520
+ pageY = (this.parent.iframeSettings.enable) ? window.pageYOffset + this.parent.element.getBoundingClientRect().top +
29521
+ this.parent.toolbarModule.getToolbarHeight() + args.clientY : args.pageY;
29420
29522
  }
29421
29523
  this.quickToolObj.tableQTBar.showPopup(pageX, pageY, target);
29422
29524
  this.parent.formatter.editorManager.nodeSelection.restore();
@@ -29817,7 +29919,7 @@ var Table = /** @__PURE__ @class */ (function () {
29817
29919
  var width = parseFloat(_this.columnEle.offsetWidth.toString());
29818
29920
  var cellRow = _this.curTable.rows[0].cells[0].nodeName === 'TH' ? 1 : 0;
29819
29921
  var currentTableWidth = void 0;
29820
- if (_this.curTable.style.width != '') {
29922
+ if (_this.curTable.style.width !== '') {
29821
29923
  currentTableWidth = parseFloat(_this.curTable.style.width.split('%')[0]);
29822
29924
  }
29823
29925
  else {
@@ -29880,6 +29982,7 @@ var Table = /** @__PURE__ @class */ (function () {
29880
29982
  var isMergedEleResize = false;
29881
29983
  var leftTableCell = void 0;
29882
29984
  var rightTableCell = void 0;
29985
+ /* eslint-disable */
29883
29986
  for (var j = 0; j < currentRow.cells.length; j++) {
29884
29987
  if (currentRow.cells[j].hasAttribute('rowspan') && j <= _this.colIndex) {
29885
29988
  isRowCellsMerged = true;
@@ -29938,6 +30041,7 @@ var Table = /** @__PURE__ @class */ (function () {
29938
30041
  _this.convertPixelToPercentage(rightColWidth, tableWidth) + '%';
29939
30042
  }
29940
30043
  }
30044
+ /* eslint-enable */
29941
30045
  }
29942
30046
  }
29943
30047
  }
@@ -30073,7 +30177,8 @@ var Table = /** @__PURE__ @class */ (function () {
30073
30177
  };
30074
30178
  Table.prototype.renderDlgContent = function (args) {
30075
30179
  var _this = this;
30076
- if (Browser.isDevice || this.parent.inlineMode.enable) {
30180
+ var argsTarget = args.args.originalEvent.target;
30181
+ if (Browser.isDevice || this.parent.inlineMode.enable || !isNullOrUndefined(closest(argsTarget, '.e-rte-text-popup'))) {
30077
30182
  this.insertTableDialog(args);
30078
30183
  return;
30079
30184
  }
@@ -30329,6 +30434,10 @@ var Table = /** @__PURE__ @class */ (function () {
30329
30434
  if (this.quickToolObj && this.quickToolObj.inlineQTBar && document.body.contains(this.quickToolObj.inlineQTBar.element)) {
30330
30435
  this.quickToolObj.inlineQTBar.hidePopup();
30331
30436
  }
30437
+ if (this.quickToolObj && this.quickToolObj.textQTBar &&
30438
+ this.parent.element.ownerDocument.body.contains(this.quickToolObj.textQTBar.element)) {
30439
+ this.quickToolObj.textQTBar.hidePopup();
30440
+ }
30332
30441
  };
30333
30442
  Table.prototype.customTable = function (args, e) {
30334
30443
  var proxy = (this.self) ? this.self : this;
@@ -30336,7 +30445,8 @@ var Table = /** @__PURE__ @class */ (function () {
30336
30445
  var argument = ((Browser.isDevice || (!isNullOrUndefined(args.args)
30337
30446
  && !isNullOrUndefined(args.args.originalEvent) &&
30338
30447
  args.args.originalEvent.action === 'insert-table')
30339
- || proxy.parent.inlineMode.enable) ? args : this);
30448
+ || proxy.parent.inlineMode.enable || !isNullOrUndefined(proxy.parent.quickToolbarSettings.text)) ? args :
30449
+ this);
30340
30450
  proxy.tableInsert(proxy.rowTextBox.value, proxy.columnTextBox.value, e, argument);
30341
30451
  }
30342
30452
  };
@@ -30492,8 +30602,20 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
30492
30602
  return dlgObj;
30493
30603
  };
30494
30604
  DialogRenderer.prototype.beforeOpen = function (args) {
30605
+ if (args.element.classList.contains('e-dialog')) {
30606
+ var formEle = closest(args.target, 'form');
30607
+ if (!isNullOrUndefined(formEle)) {
30608
+ this.dialogEle = args.element;
30609
+ this.dialogEle.addEventListener('keydown', this.handleEnterKeyDown);
30610
+ }
30611
+ }
30495
30612
  this.parent.trigger(beforeDialogOpen, args, this.beforeOpenCallback.bind(this, args));
30496
30613
  };
30614
+ DialogRenderer.prototype.handleEnterKeyDown = function (args) {
30615
+ if (args.code === 'Enter') {
30616
+ args.preventDefault();
30617
+ }
30618
+ };
30497
30619
  DialogRenderer.prototype.beforeOpenCallback = function (args) {
30498
30620
  if (args.cancel) {
30499
30621
  this.parent.notify(clearDialogObj, null);
@@ -30503,6 +30625,9 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
30503
30625
  this.parent.trigger(dialogOpen, args);
30504
30626
  };
30505
30627
  DialogRenderer.prototype.beforeClose = function (args) {
30628
+ if (this.dialogEle) {
30629
+ this.dialogEle.removeEventListener('keydown', this.handleEnterKeyDown);
30630
+ }
30506
30631
  this.parent.trigger(beforeDialogClose, args, function (closeArgs) {
30507
30632
  if (!closeArgs.cancel) {
30508
30633
  if (closeArgs.container.classList.contains('e-popup-close')) {
@@ -31014,7 +31139,7 @@ var QuickToolbarSettings = /** @__PURE__ @class */ (function (_super) {
31014
31139
  Property(['VideoReplace', 'VideoAlign', 'VideoRemove', 'VideoLayoutOption', 'VideoDimension'])
31015
31140
  ], QuickToolbarSettings.prototype, "video", void 0);
31016
31141
  __decorate$2([
31017
- Property(['Cut', 'Copy', 'Paste'])
31142
+ Property(null)
31018
31143
  ], QuickToolbarSettings.prototype, "text", void 0);
31019
31144
  __decorate$2([
31020
31145
  Property(['TableHeader', 'TableRows', 'TableColumns', 'BackgroundColor', '-', 'TableRemove', 'Alignments', 'TableCellVerticalAlign', 'Styles'])
@@ -31479,8 +31604,12 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
31479
31604
  (_this.range.startContainer.previousSibling.nodeName === 'IMG' || _this.range.startContainer.previousSibling.nodeName === 'BR'))) {
31480
31605
  var isNearBlockLengthZero = void 0;
31481
31606
  var newElem = void 0;
31482
- if (!isNullOrUndefined(_this.range.startContainer.childNodes) && _this.range.startContainer.textContent.length === 0
31483
- && (_this.range.startContainer.querySelectorAll('img, audio, video').length > 0 ||
31607
+ if (!isNullOrUndefined(_this.range.startContainer.childNodes) &&
31608
+ (_this.range.startContainer.textContent.length === 0 ||
31609
+ (_this.range.startContainer.nodeName !== '#text' && !isNullOrUndefined(_this.range.startContainer.querySelector('.e-video-clickelem')) &&
31610
+ _this.range.startContainer.querySelector('.e-video-clickelem').textContent.length === 0)) &&
31611
+ (_this.range.startContainer.querySelectorAll('img, audio, video').length > 0 ||
31612
+ !isNullOrUndefined(_this.range.startContainer.querySelector('.e-video-clickelem')) ||
31484
31613
  _this.range.startContainer.nodeName === 'IMG' || _this.range.startContainer.nodeName === 'TABLE')) {
31485
31614
  newElem = _this.createInsertElement(shiftKey_1);
31486
31615
  isMediaNode = true;
@@ -32866,9 +32995,6 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
32866
32995
  this.removeAttributes();
32867
32996
  _super.prototype.destroy.call(this);
32868
32997
  this.isRendered = false;
32869
- if (this.enablePersistence) {
32870
- window.localStorage.removeItem(this.getModuleName() + this.element.id);
32871
- }
32872
32998
  };
32873
32999
  RichTextEditor.prototype.removeHtmlAttributes = function () {
32874
33000
  if (this.htmlAttributes) {
@@ -32998,9 +33124,10 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
32998
33124
  else {
32999
33125
  nVal = newProp[prop];
33000
33126
  }
33127
+ nVal = this.serializeValue(nVal);
33001
33128
  var val = this.editorMode === 'HTML' ? getEditValue(nVal, this) : nVal;
33002
33129
  if ((!isNullOrUndefined(nVal) && nVal !== '') || prop === 'enterKey') {
33003
- this.value = this.serializeValue(((this.enableHtmlEncode) ? this.encode(decode(val)) : val));
33130
+ this.setProperties({ value: ((this.enableHtmlEncode) ? this.encode(decode(val)) : val) }, true);
33004
33131
  }
33005
33132
  this.updatePanelValue();
33006
33133
  if (this.inputElement) {
@@ -33548,10 +33675,6 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33548
33675
  // eslint-disable-next-line
33549
33676
  var imgPadding = 12;
33550
33677
  var imgResizeBorder = 2;
33551
- if (isNullOrUndefined(this.contentModule) || isNullOrUndefined(this.contentModule.getEditPanel())) {
33552
- EventHandler.remove(this.contentModule.getDocument(), Browser.touchMoveEvent, this.imageModule.resizing);
33553
- return maxWidth;
33554
- }
33555
33678
  var editEle = this.contentModule.getEditPanel();
33556
33679
  var eleStyle = window.getComputedStyle(editEle);
33557
33680
  var editEleMaxWidth = editEle.offsetWidth - (imgPadding + imgResizeBorder +
@@ -34552,5 +34675,5 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34552
34675
  * Rich Text Editor component exported items
34553
34676
  */
34554
34677
 
34555
- 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 };
34678
+ 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 };
34556
34679
  //# sourceMappingURL=ej2-richtexteditor.es5.js.map