@syncfusion/ej2-richtexteditor 20.2.43 → 20.2.44

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 (42) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/ej2-richtexteditor.umd.min.js +2 -2
  3. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-richtexteditor.es2015.js +114 -34
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +114 -34
  7. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  8. package/dist/global/ej2-richtexteditor.min.js +2 -2
  9. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +8 -8
  12. package/src/editor-manager/plugin/lists.d.ts +3 -0
  13. package/src/editor-manager/plugin/lists.js +29 -0
  14. package/src/rich-text-editor/actions/base-toolbar.d.ts +6 -1
  15. package/src/rich-text-editor/actions/dropdown-buttons.d.ts +6 -1
  16. package/src/rich-text-editor/actions/enter-key.d.ts +1 -0
  17. package/src/rich-text-editor/actions/enter-key.js +7 -1
  18. package/src/rich-text-editor/actions/full-screen.d.ts +1 -0
  19. package/src/rich-text-editor/actions/full-screen.js +5 -0
  20. package/src/rich-text-editor/actions/markdown-editor.d.ts +1 -0
  21. package/src/rich-text-editor/actions/markdown-editor.js +6 -0
  22. package/src/rich-text-editor/actions/quick-toolbar.d.ts +1 -0
  23. package/src/rich-text-editor/actions/quick-toolbar.js +5 -0
  24. package/src/rich-text-editor/actions/toolbar-action.d.ts +6 -1
  25. package/src/rich-text-editor/actions/toolbar.d.ts +1 -0
  26. package/src/rich-text-editor/actions/toolbar.js +8 -0
  27. package/src/rich-text-editor/base/constant.d.ts +5 -0
  28. package/src/rich-text-editor/base/constant.js +5 -0
  29. package/src/rich-text-editor/base/rich-text-editor.js +7 -12
  30. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +3 -0
  31. package/src/rich-text-editor/renderer/dialog-renderer.js +18 -0
  32. package/src/rich-text-editor/renderer/image-module.d.ts +1 -8
  33. package/src/rich-text-editor/renderer/image-module.js +9 -9
  34. package/src/rich-text-editor/renderer/link-module.d.ts +1 -8
  35. package/src/rich-text-editor/renderer/link-module.js +2 -7
  36. package/src/rich-text-editor/renderer/render.d.ts +1 -6
  37. package/src/rich-text-editor/renderer/render.js +2 -5
  38. package/src/rich-text-editor/renderer/table-module.d.ts +1 -0
  39. package/src/rich-text-editor/renderer/table-module.js +5 -0
  40. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +6 -1
  41. package/src/rich-text-editor/renderer/view-source.d.ts +1 -0
  42. package/src/rich-text-editor/renderer/view-source.js +5 -0
@@ -444,6 +444,11 @@ var checkUndo = 'checkUndoStack';
444
444
  * @deprecated
445
445
  */
446
446
  var readOnlyMode = 'readOnlyMode';
447
+ /**
448
+ * @hidden
449
+ * @deprecated
450
+ */
451
+ var moduleDestroy = 'moduleDestroy';
447
452
  /**
448
453
  * @hidden
449
454
  * @deprecated
@@ -4672,6 +4677,12 @@ var Toolbar$2 = /** @__PURE__ @class */ (function () {
4672
4677
  }
4673
4678
  }
4674
4679
  };
4680
+ Toolbar$$1.prototype.moduleDestroy = function () {
4681
+ this.parent = null;
4682
+ this.baseToolbar.parent = null;
4683
+ this.toolbarActionModule.parent = null;
4684
+ this.dropDownModule.parent = null;
4685
+ };
4675
4686
  Toolbar$$1.prototype.scrollHandler = function (e) {
4676
4687
  if (!this.parent.inlineMode.enable) {
4677
4688
  if (this.parent.toolbarSettings.enableFloating && this.getDOMVisibility(this.tbElement)) {
@@ -4773,6 +4784,7 @@ var Toolbar$2 = /** @__PURE__ @class */ (function () {
4773
4784
  this.parent.on(mouseDown, this.mouseDownHandler, this);
4774
4785
  this.parent.on(sourceCodeMouseDown, this.mouseDownHandler, this);
4775
4786
  this.parent.on(bindCssClass, this.setCssClass, this);
4787
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
4776
4788
  if (!this.parent.inlineMode.enable && !isIDevice()) {
4777
4789
  this.parent.on(toolbarClick, this.toolbarClickHandler, this);
4778
4790
  }
@@ -4797,6 +4809,7 @@ var Toolbar$2 = /** @__PURE__ @class */ (function () {
4797
4809
  this.parent.off(mouseDown, this.mouseDownHandler);
4798
4810
  this.parent.off(sourceCodeMouseDown, this.mouseDownHandler);
4799
4811
  this.parent.off(bindCssClass, this.setCssClass);
4812
+ this.parent.off(moduleDestroy, this.moduleDestroy);
4800
4813
  if (!this.parent.inlineMode.enable && !isIDevice()) {
4801
4814
  this.parent.off(toolbarClick, this.toolbarClickHandler);
4802
4815
  }
@@ -6109,6 +6122,9 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6109
6122
  }
6110
6123
  this.removeEventListener();
6111
6124
  };
6125
+ QuickToolbar.prototype.moduleDestroy = function () {
6126
+ this.parent = null;
6127
+ };
6112
6128
  QuickToolbar.prototype.wireInlineQTBarEvents = function () {
6113
6129
  this.parent.on(mouseUp, this.mouseUpHandler, this);
6114
6130
  this.parent.on(mouseDown, this.inlineQTBarMouseDownHandler, this);
@@ -6164,6 +6180,7 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6164
6180
  this.parent.on(keyDown, this.onKeyDown, this);
6165
6181
  this.parent.on(rtlMode, this.setRtl, this);
6166
6182
  this.parent.on(bindCssClass, this.setCssClass, this);
6183
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
6167
6184
  };
6168
6185
  QuickToolbar.prototype.onKeyDown = function (e) {
6169
6186
  var args = e.args;
@@ -6233,6 +6250,7 @@ var QuickToolbar = /** @__PURE__ @class */ (function () {
6233
6250
  this.parent.off(keyDown, this.onKeyDown);
6234
6251
  this.parent.off(rtlMode, this.setRtl);
6235
6252
  this.parent.off(bindCssClass, this.setCssClass);
6253
+ this.parent.off(moduleDestroy, this.moduleDestroy);
6236
6254
  };
6237
6255
  /**
6238
6256
  * Called internally if any of the property value changed.
@@ -9359,6 +9377,10 @@ var MarkdownEditor = /** @__PURE__ @class */ (function () {
9359
9377
  MarkdownEditor.prototype.destroy = function () {
9360
9378
  this.removeEventListener();
9361
9379
  };
9380
+ MarkdownEditor.prototype.moduleDestroy = function () {
9381
+ this.parent = null;
9382
+ this.toolbarUpdate.parent = null;
9383
+ };
9362
9384
  MarkdownEditor.prototype.addEventListener = function () {
9363
9385
  if (this.parent.isDestroyed) {
9364
9386
  return;
@@ -9374,6 +9396,7 @@ var MarkdownEditor = /** @__PURE__ @class */ (function () {
9374
9396
  this.parent.on(selectionSave, this.onSelectionSave, this);
9375
9397
  this.parent.on(selectionRestore, this.onSelectionRestore, this);
9376
9398
  this.parent.on(readOnlyMode, this.updateReadOnly, this);
9399
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
9377
9400
  };
9378
9401
  MarkdownEditor.prototype.updateReadOnly = function () {
9379
9402
  if (this.parent.readonly) {
@@ -9445,6 +9468,7 @@ var MarkdownEditor = /** @__PURE__ @class */ (function () {
9445
9468
  this.parent.off(selectionSave, this.onSelectionSave);
9446
9469
  this.parent.off(selectionRestore, this.onSelectionRestore);
9447
9470
  this.parent.off(readOnlyMode, this.updateReadOnly);
9471
+ this.parent.off(moduleDestroy, this.moduleDestroy);
9448
9472
  };
9449
9473
  MarkdownEditor.prototype.render = function () {
9450
9474
  this.contentRenderer = this.renderFactory.getRenderer(RenderType.Content);
@@ -10839,6 +10863,7 @@ var Lists = /** @__PURE__ @class */ (function () {
10839
10863
  Lists.prototype.addEventListener = function () {
10840
10864
  this.parent.observer.on(LIST_TYPE, this.applyListsHandler, this);
10841
10865
  this.parent.observer.on(KEY_DOWN_HANDLER, this.keyDownHandler, this);
10866
+ this.parent.observer.on(KEY_UP_HANDLER, this.onKeyUp, this);
10842
10867
  this.parent.observer.on(SPACE_ACTION, this.spaceKeyAction, this);
10843
10868
  };
10844
10869
  Lists.prototype.testList = function (elem) {
@@ -10991,6 +11016,7 @@ var Lists = /** @__PURE__ @class */ (function () {
10991
11016
  }
10992
11017
  }
10993
11018
  this.removeList(range, e);
11019
+ this.firstListBackSpace(range, e);
10994
11020
  };
10995
11021
  Lists.prototype.removeList = function (range, e) {
10996
11022
  var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);
@@ -11016,6 +11042,33 @@ var Lists = /** @__PURE__ @class */ (function () {
11016
11042
  e.event.preventDefault();
11017
11043
  }
11018
11044
  };
11045
+ Lists.prototype.onKeyUp = function () {
11046
+ if (!isNullOrUndefined(this.commonLIParent) && !isNullOrUndefined(this.commonLIParent.querySelector('.removeList'))) {
11047
+ var currentLIElem = this.commonLIParent.querySelector('.removeList');
11048
+ while (!isNullOrUndefined(currentLIElem.firstChild)) {
11049
+ this.parent.domNode.insertAfter(currentLIElem.firstChild, currentLIElem);
11050
+ }
11051
+ detach(currentLIElem);
11052
+ }
11053
+ };
11054
+ Lists.prototype.firstListBackSpace = function (range, e) {
11055
+ var startNode = this.parent.domNode.getSelectedNode(range.startContainer, range.startOffset);
11056
+ if (!isNullOrUndefined(startNode.closest('OL'))) {
11057
+ this.commonLIParent = startNode.closest('OL');
11058
+ }
11059
+ else if (!isNullOrUndefined(startNode.closest('UL'))) {
11060
+ this.commonLIParent = startNode.closest('UL');
11061
+ }
11062
+ if (startNode.nodeName === 'LI' && range.startOffset === 0 && range.endOffset === 0 &&
11063
+ isNullOrUndefined(startNode.previousSibling) && !isNullOrUndefined(this.commonLIParent) && isNullOrUndefined(this.commonLIParent.previousSibling) &&
11064
+ (isNullOrUndefined(this.commonLIParent.parentElement.closest('OL')) && isNullOrUndefined(this.commonLIParent.parentElement.closest('UL')) &&
11065
+ isNullOrUndefined(this.commonLIParent.parentElement.closest('LI')))) {
11066
+ var currentElem = createElement('P');
11067
+ currentElem.innerHTML = '​';
11068
+ startNode.classList.add('removeList');
11069
+ this.commonLIParent.parentElement.insertBefore(currentElem, this.commonLIParent);
11070
+ }
11071
+ };
11019
11072
  Lists.prototype.keyDownHandler = function (e) {
11020
11073
  if (e.event.which === 13) {
11021
11074
  this.enterList(e);
@@ -19778,10 +19831,12 @@ var FullScreen = /** @__PURE__ @class */ (function () {
19778
19831
  FullScreen.prototype.addEventListener = function () {
19779
19832
  this.parent.on(keyDown, this.onKeyDown, this);
19780
19833
  this.parent.on(destroy, this.destroy, this);
19834
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
19781
19835
  };
19782
19836
  FullScreen.prototype.removeEventListener = function () {
19783
19837
  this.parent.off(keyDown, this.onKeyDown);
19784
19838
  this.parent.off(destroy, this.destroy);
19839
+ this.parent.off(moduleDestroy, this.moduleDestroy);
19785
19840
  };
19786
19841
  /**
19787
19842
  * destroy method
@@ -19800,6 +19855,9 @@ var FullScreen = /** @__PURE__ @class */ (function () {
19800
19855
  }
19801
19856
  this.removeEventListener();
19802
19857
  };
19858
+ FullScreen.prototype.moduleDestroy = function () {
19859
+ this.parent = null;
19860
+ };
19803
19861
  return FullScreen;
19804
19862
  }());
19805
19863
 
@@ -19916,11 +19974,6 @@ var Render = /** @__PURE__ @class */ (function () {
19916
19974
  Render.prototype.destroy = function () {
19917
19975
  this.removeEventListener();
19918
19976
  };
19919
- /**
19920
- * Clears the Render Module.
19921
- *
19922
- * @returns {void}
19923
- */
19924
19977
  Render.prototype.moduleDestroy = function () {
19925
19978
  this.parent = null;
19926
19979
  };
@@ -19930,6 +19983,7 @@ var Render = /** @__PURE__ @class */ (function () {
19930
19983
  }
19931
19984
  this.parent.on(modelChanged, this.refresh, this);
19932
19985
  this.parent.on(keyUp, this.keyUp, this);
19986
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
19933
19987
  };
19934
19988
  Render.prototype.removeEventListener = function () {
19935
19989
  if (this.parent.isDestroyed) {
@@ -19937,6 +19991,7 @@ var Render = /** @__PURE__ @class */ (function () {
19937
19991
  }
19938
19992
  this.parent.off(modelChanged, this.refresh);
19939
19993
  this.parent.off(keyUp, this.keyUp);
19994
+ this.parent.off(moduleDestroy, this.moduleDestroy);
19940
19995
  };
19941
19996
  Render.prototype.keyUp = function (e) {
19942
19997
  if (this.parent.editorMode === 'HTML') {
@@ -19998,6 +20053,7 @@ var Link = /** @__PURE__ @class */ (function () {
19998
20053
  this.parent.on(editAreaClick, this.editAreaClickHandler, this);
19999
20054
  this.parent.on(bindCssClass, this.setCssClass, this);
20000
20055
  this.parent.on(destroy, this.destroy, this);
20056
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
20001
20057
  };
20002
20058
  Link.prototype.onToolbarAction = function (args) {
20003
20059
  var item = args.args.item;
@@ -20031,6 +20087,7 @@ var Link = /** @__PURE__ @class */ (function () {
20031
20087
  this.parent.off(editAreaClick, this.editAreaClickHandler);
20032
20088
  this.parent.off(bindCssClass, this.setCssClass);
20033
20089
  this.parent.off(destroy, this.destroy);
20090
+ this.parent.off(moduleDestroy, this.moduleDestroy);
20034
20091
  };
20035
20092
  Link.prototype.onIframeMouseDown = function () {
20036
20093
  if (this.dialogObj) {
@@ -20481,13 +20538,6 @@ var Link = /** @__PURE__ @class */ (function () {
20481
20538
  Link.prototype.destroy = function () {
20482
20539
  this.removeEventListener();
20483
20540
  };
20484
- /**
20485
- * Clears the Link Module.
20486
- *
20487
- * @returns {void}
20488
- * @hidden
20489
- * @deprecated
20490
- */
20491
20541
  Link.prototype.moduleDestroy = function () {
20492
20542
  this.parent = null;
20493
20543
  };
@@ -20546,6 +20596,7 @@ var Image = /** @__PURE__ @class */ (function () {
20546
20596
  this.parent.on(paste, this.imagePaste, this);
20547
20597
  this.parent.on(bindCssClass, this.setCssClass, this);
20548
20598
  this.parent.on(destroy, this.removeEventListener, this);
20599
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
20549
20600
  };
20550
20601
  Image.prototype.removeEventListener = function () {
20551
20602
  if (this.parent.isDestroyed) {
@@ -20573,6 +20624,7 @@ var Image = /** @__PURE__ @class */ (function () {
20573
20624
  this.parent.off(paste, this.imagePaste);
20574
20625
  this.parent.off(bindCssClass, this.setCssClass);
20575
20626
  this.parent.off(destroy, this.removeEventListener);
20627
+ this.parent.off(moduleDestroy, this.moduleDestroy);
20576
20628
  var dropElement = this.parent.iframeSettings.enable ? this.parent.inputElement.ownerDocument
20577
20629
  : this.parent.inputElement;
20578
20630
  dropElement.removeEventListener('drop', this.dragDrop.bind(this), true);
@@ -20947,6 +20999,10 @@ var Image = /** @__PURE__ @class */ (function () {
20947
20999
  if (this.imgEle.offsetWidth >= this.parent.getInsertImgMaxWidth()) {
20948
21000
  this.imgEle.style.maxHeight = this.imgEle.offsetHeight + 'px';
20949
21001
  }
21002
+ else if (isNullOrUndefined(this.parent.insertImageSettings.maxHeight)) {
21003
+ this.imgEle.style.maxHeight = '';
21004
+ }
21005
+ this.imgEle.style.maxWidth = this.parent.getInsertImgMaxWidth() + 'px';
20950
21006
  var pageX = this.getPointX(e);
20951
21007
  var pageY = this.getPointY(e);
20952
21008
  var mouseX = (this.resizeBtnStat.botLeft || this.resizeBtnStat.topLeft) ? -(pageX - this.pageX) : (pageX - this.pageX);
@@ -21901,6 +21957,9 @@ var Image = /** @__PURE__ @class */ (function () {
21901
21957
  if (target.nodeName === 'IMG') {
21902
21958
  this.imgEle = target;
21903
21959
  }
21960
+ if (!this.parent) {
21961
+ return;
21962
+ }
21904
21963
  if (target.nodeName !== '#document') {
21905
21964
  this.parent.currentTarget = e.target;
21906
21965
  }
@@ -22788,15 +22847,6 @@ var Image = /** @__PURE__ @class */ (function () {
22788
22847
  this.prevSelectedImgEle = undefined;
22789
22848
  this.removeEventListener();
22790
22849
  };
22791
- /* eslint-disable */
22792
- /**
22793
- * Clears the ImageModule.
22794
- *
22795
- * @returns {void}
22796
- * @hidden
22797
- * @deprecated
22798
- */
22799
- /* eslint-enable */
22800
22850
  Image.prototype.moduleDestroy = function () {
22801
22851
  this.parent = null;
22802
22852
  };
@@ -22836,6 +22886,7 @@ var ViewSource = /** @__PURE__ @class */ (function () {
22836
22886
  this.parent.on(initialEnd, this.onInitialEnd, this);
22837
22887
  this.parent.on(updateSource, this.updateSourceCode, this);
22838
22888
  this.parent.on(destroy, this.destroy, this);
22889
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
22839
22890
  };
22840
22891
  ViewSource.prototype.onInitialEnd = function () {
22841
22892
  this.parent.formatter.editorManager.observer.on(KEY_DOWN_HANDLER, this.onKeyDown, this);
@@ -22846,6 +22897,7 @@ var ViewSource = /** @__PURE__ @class */ (function () {
22846
22897
  this.parent.off(updateSource, this.updateSourceCode);
22847
22898
  this.parent.off(initialEnd, this.onInitialEnd);
22848
22899
  this.parent.off(destroy, this.destroy);
22900
+ this.parent.off(moduleDestroy, this.moduleDestroy);
22849
22901
  this.parent.formatter.editorManager.observer.off(KEY_DOWN_HANDLER, this.onKeyDown);
22850
22902
  };
22851
22903
  ViewSource.prototype.getSourceCode = function () {
@@ -23069,6 +23121,9 @@ var ViewSource = /** @__PURE__ @class */ (function () {
23069
23121
  ViewSource.prototype.destroy = function () {
23070
23122
  this.removeEventListener();
23071
23123
  };
23124
+ ViewSource.prototype.moduleDestroy = function () {
23125
+ this.parent = null;
23126
+ };
23072
23127
  return ViewSource;
23073
23128
  }());
23074
23129
 
@@ -23108,6 +23163,7 @@ var Table = /** @__PURE__ @class */ (function () {
23108
23163
  this.parent.on(mouseUp, this.selectionTable, this);
23109
23164
  this.parent.on(bindCssClass, this.setCssClass, this);
23110
23165
  this.parent.on(destroy, this.destroy, this);
23166
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
23111
23167
  };
23112
23168
  Table.prototype.removeEventListener = function () {
23113
23169
  if (this.parent.isDestroyed) {
@@ -23129,6 +23185,7 @@ var Table = /** @__PURE__ @class */ (function () {
23129
23185
  this.parent.off(mouseUp, this.selectionTable);
23130
23186
  this.parent.off(bindCssClass, this.setCssClass);
23131
23187
  this.parent.off(destroy, this.destroy);
23188
+ this.parent.off(moduleDestroy, this.moduleDestroy);
23132
23189
  };
23133
23190
  Table.prototype.updateCss = function (currentObj, e) {
23134
23191
  if (currentObj && e.cssClass) {
@@ -24424,6 +24481,9 @@ var Table = /** @__PURE__ @class */ (function () {
24424
24481
  Table.prototype.destroy = function () {
24425
24482
  this.removeEventListener();
24426
24483
  };
24484
+ Table.prototype.moduleDestroy = function () {
24485
+ this.parent = null;
24486
+ };
24427
24487
  /**
24428
24488
  * For internal use only - Get the module name.
24429
24489
  *
@@ -24441,7 +24501,22 @@ var Table = /** @__PURE__ @class */ (function () {
24441
24501
  var DialogRenderer = /** @__PURE__ @class */ (function () {
24442
24502
  function DialogRenderer(parent) {
24443
24503
  this.parent = parent;
24504
+ this.addEventListener();
24444
24505
  }
24506
+ DialogRenderer.prototype.addEventListener = function () {
24507
+ if (this.parent.isDestroyed) {
24508
+ return;
24509
+ }
24510
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
24511
+ this.parent.on(destroy, this.removeEventListener, this);
24512
+ };
24513
+ DialogRenderer.prototype.removeEventListener = function () {
24514
+ if (this.parent.isDestroyed) {
24515
+ return;
24516
+ }
24517
+ this.parent.off(destroy, this.removeEventListener);
24518
+ this.parent.off(moduleDestroy, this.moduleDestroy);
24519
+ };
24445
24520
  /**
24446
24521
  * dialog render method
24447
24522
  *
@@ -24494,6 +24569,9 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
24494
24569
  DialogRenderer.prototype.close = function (args) {
24495
24570
  this.parent.trigger(dialogClose, args);
24496
24571
  };
24572
+ DialogRenderer.prototype.moduleDestroy = function () {
24573
+ this.parent = null;
24574
+ };
24497
24575
  return DialogRenderer;
24498
24576
  }());
24499
24577
 
@@ -25145,13 +25223,18 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
25145
25223
  EnterKeyAction.prototype.addEventListener = function () {
25146
25224
  this.parent.on(enterHandler, this.enterHandler, this);
25147
25225
  this.parent.on(destroy, this.destroy, this);
25226
+ this.parent.on(moduleDestroy, this.moduleDestroy, this);
25148
25227
  };
25149
25228
  EnterKeyAction.prototype.destroy = function () {
25150
25229
  this.removeEventListener();
25151
25230
  };
25231
+ EnterKeyAction.prototype.moduleDestroy = function () {
25232
+ this.parent = null;
25233
+ };
25152
25234
  EnterKeyAction.prototype.removeEventListener = function () {
25153
25235
  this.parent.off(enterHandler, this.enterHandler);
25154
25236
  this.parent.off(destroy, this.destroy);
25237
+ this.parent.off(moduleDestroy, this.moduleDestroy);
25155
25238
  };
25156
25239
  EnterKeyAction.prototype.getRangeNode = function () {
25157
25240
  this.range = this.parent.getRange();
@@ -25269,7 +25352,8 @@ var EnterKeyAction = /** @__PURE__ @class */ (function () {
25269
25352
  isNearBlockLengthZero = false;
25270
25353
  }
25271
25354
  else {
25272
- if (nearBlockNode.textContent.trim().length !== 0) {
25355
+ if (nearBlockNode.textContent.trim().length !== 0 ||
25356
+ nearBlockNode.childNodes[0].nodeName === 'IMG') {
25273
25357
  newElem = _this.parent.formatter.editorManager.nodeCutter.SplitNode(_this.range, nearBlockNode, false).cloneNode(true);
25274
25358
  isNearBlockLengthZero = false;
25275
25359
  }
@@ -25947,6 +26031,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
25947
26031
  var currentEndContainer = range.endContainer;
25948
26032
  var currentStartOffset = range.startOffset;
25949
26033
  var isSameContainer = currentStartContainer === currentEndContainer ? true : false;
26034
+ var currentEndOffset = currentEndContainer.textContent.length;
25950
26035
  var endNode = range.endContainer.nodeName === '#text' ? range.endContainer.parentElement :
25951
26036
  range.endContainer;
25952
26037
  var closestLI = closest(endNode, 'LI');
@@ -25962,7 +26047,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
25962
26047
  while (currentLastElem.lastChild !== null && currentLastElem.nodeName !== '#text') {
25963
26048
  currentLastElem = currentLastElem.lastChild;
25964
26049
  }
25965
- this.formatter.editorManager.nodeSelection.setSelectionText(this.contentModule.getDocument(), isSameContainer ? (currentLastElem.nodeName === 'BR' && !isNullOrUndefined(currentLastElem.previousSibling) ? currentLastElem.previousSibling : currentLastElem) : currentStartContainer, currentLastElem, currentStartOffset, (currentLastElem.nodeName === 'BR' ? 0 : currentLastElem.textContent.length));
26050
+ this.formatter.editorManager.nodeSelection.setSelectionText(this.contentModule.getDocument(), isSameContainer ? currentStartContainer : (currentLastElem.nodeName === 'BR' && !isNullOrUndefined(currentLastElem.previousSibling) ? currentLastElem.previousSibling : currentStartContainer), currentEndContainer, currentStartOffset, (currentLastElem.nodeName === 'BR' ? 0 : currentEndOffset));
25966
26051
  }
25967
26052
  };
25968
26053
  /**
@@ -26305,15 +26390,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
26305
26390
  if (!isNullOrUndefined(this.toolbarModule)) {
26306
26391
  this.toolbarModule.destroy();
26307
26392
  }
26308
- if (!isNullOrUndefined(this.imageModule)) {
26309
- this.imageModule.moduleDestroy();
26310
- }
26311
- if (!isNullOrUndefined(this.linkModule)) {
26312
- this.linkModule.moduleDestroy();
26313
- }
26314
- if (!isNullOrUndefined(this.renderModule)) {
26315
- this.renderModule.moduleDestroy();
26316
- }
26393
+ this.notify(moduleDestroy, {});
26317
26394
  return;
26318
26395
  }
26319
26396
  this.notify(destroy, {});
@@ -27552,7 +27629,10 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
27552
27629
  RichTextEditor.prototype.restrict = function (e) {
27553
27630
  if (this.maxLength >= 0) {
27554
27631
  var element = this.editorMode === 'Markdown' ? this.contentModule.getText() :
27555
- e.currentTarget.textContent;
27632
+ (e && e.currentTarget.textContent);
27633
+ if (!element) {
27634
+ return;
27635
+ }
27556
27636
  var array = [8, 16, 17, 37, 38, 39, 40, 46, 65];
27557
27637
  var arrayKey = void 0;
27558
27638
  for (var i = 0; i <= array.length - 1; i++) {
@@ -27929,5 +28009,5 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
27929
28009
  * Rich Text Editor component exported items
27930
28010
  */
27931
28011
 
27932
- 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, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, 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, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, mediaSelected, mediaUploading, mediaUploadSuccess, mediaUploadFailed, mediaRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeMediaUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, closeImageDialog, closeAudioDialog, showTableDialog, closeTableDialog, bindCssClass, 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_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, 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_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, 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_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, 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 };
28012
+ 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, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, imageCaption, imageSize, 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, mediaSelected, mediaUploading, mediaUploadSuccess, mediaUploadFailed, mediaRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeMediaUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, closeImageDialog, closeAudioDialog, showTableDialog, closeTableDialog, bindCssClass, 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_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, 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_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, 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_IMAGE_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, 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 };
27933
28013
  //# sourceMappingURL=ej2-richtexteditor.es5.js.map