@syncfusion/ej2-richtexteditor 27.1.52 → 27.1.57

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 (43) hide show
  1. package/dist/ej2-richtexteditor.min.js +10 -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 +244 -60
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +245 -59
  7. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  8. package/dist/global/ej2-richtexteditor.min.js +2 -2
  9. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +13 -13
  12. package/src/common/config.d.ts +7 -0
  13. package/src/common/config.js +12 -0
  14. package/src/editor-manager/base/editor-manager.js +1 -1
  15. package/src/editor-manager/base/interface.d.ts +2 -2
  16. package/src/editor-manager/plugin/clearformat.js +1 -1
  17. package/src/editor-manager/plugin/dom-node.js +1 -1
  18. package/src/editor-manager/plugin/image.js +2 -0
  19. package/src/editor-manager/plugin/inserthtml.d.ts +1 -0
  20. package/src/editor-manager/plugin/inserthtml.js +34 -10
  21. package/src/editor-manager/plugin/link.js +2 -2
  22. package/src/editor-manager/plugin/lists.js +1 -1
  23. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +1 -0
  24. package/src/editor-manager/plugin/ms-word-clean-up.js +16 -0
  25. package/src/editor-manager/plugin/selection-commands.js +2 -2
  26. package/src/editor-manager/plugin/toolbar-status.js +1 -1
  27. package/src/editor-manager/plugin/undo.js +3 -3
  28. package/src/rich-text-editor/actions/enter-key.js +10 -5
  29. package/src/rich-text-editor/actions/html-editor.js +2 -2
  30. package/src/rich-text-editor/actions/import-export.js +1 -1
  31. package/src/rich-text-editor/actions/paste-clean-up.js +1 -1
  32. package/src/rich-text-editor/actions/resize.d.ts +3 -0
  33. package/src/rich-text-editor/actions/resize.js +17 -0
  34. package/src/rich-text-editor/base/interface.d.ts +13 -1
  35. package/src/rich-text-editor/base/rich-text-editor.js +11 -0
  36. package/src/rich-text-editor/renderer/audio-module.js +7 -1
  37. package/src/rich-text-editor/renderer/image-module.js +57 -20
  38. package/src/rich-text-editor/renderer/link-module.js +8 -1
  39. package/src/rich-text-editor/renderer/slash-menu.js +1 -1
  40. package/src/rich-text-editor/renderer/table-module.js +3 -2
  41. package/src/rich-text-editor/renderer/video-module.js +8 -2
  42. package/src/selection/selection.d.ts +5 -0
  43. package/src/selection/selection.js +44 -1
@@ -4251,9 +4251,10 @@ const PASTE_SOURCE = ['word', 'excel', 'onenote'];
4251
4251
  * `Selection` module is used to handle RTE Selections.
4252
4252
  */
4253
4253
  class NodeSelection {
4254
- constructor() {
4254
+ constructor(editElement) {
4255
4255
  this.startNodeName = [];
4256
4256
  this.endNodeName = [];
4257
+ this.editableElement = editElement;
4257
4258
  }
4258
4259
  saveInstance(range, body) {
4259
4260
  this.range = range.cloneRange();
@@ -4333,6 +4334,9 @@ class NodeSelection {
4333
4334
  return false;
4334
4335
  }
4335
4336
  getNode(startNode, endNode, nodeCollection) {
4337
+ if (this.editableElement && (!this.editableElement.contains(startNode) || this.editableElement === startNode)) {
4338
+ return null;
4339
+ }
4336
4340
  if (endNode === startNode &&
4337
4341
  (startNode.nodeType === 3 || !startNode.firstChild || nodeCollection.indexOf(startNode.firstChild) !== -1
4338
4342
  || this.isChildNode(nodeCollection, startNode))) {
@@ -4367,6 +4371,12 @@ class NodeSelection {
4367
4371
  || range.startContainer;
4368
4372
  const endNode = range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) : range.endOffset]
4369
4373
  || range.endContainer;
4374
+ const tableCursor = this.processedTableImageCursor(range);
4375
+ if (tableCursor.start || tableCursor.end) {
4376
+ if (tableCursor.startName === 'TABLE' || tableCursor.endName === 'TABLE') {
4377
+ return [];
4378
+ }
4379
+ }
4370
4380
  if ((startNode === endNode || (startNode.nodeName === 'BR' && startNode === range.endContainer.childNodes[range.endOffset])) &&
4371
4381
  startNode.childNodes.length === 0) {
4372
4382
  return [startNode];
@@ -4686,6 +4696,39 @@ class NodeSelection {
4686
4696
  selection.removeAllRanges();
4687
4697
  selection.addRange(range);
4688
4698
  }
4699
+ isTableOrImageStart(range) {
4700
+ const customHandlerElements = ['TABLE'];
4701
+ const startContainer = range.startContainer;
4702
+ const startOffset = range.startOffset;
4703
+ const isCursorAtStart = range.collapsed && (startContainer.nodeType === 1) &&
4704
+ startContainer.isContentEditable && startContainer.childNodes[startOffset] &&
4705
+ (customHandlerElements.indexOf(startContainer.childNodes[startOffset].nodeName) > -1);
4706
+ if (isCursorAtStart) {
4707
+ return { start: isCursorAtStart, startNodeName: startContainer.childNodes[startOffset].nodeName };
4708
+ }
4709
+ else {
4710
+ return { start: false, startNodeName: '' };
4711
+ }
4712
+ }
4713
+ isTableOrImageEnd(range) {
4714
+ const customHandlerElements = ['TABLE'];
4715
+ const startContainer = range.startContainer;
4716
+ const startOffset = range.startOffset;
4717
+ const isCursorAtEnd = range.collapsed && (startContainer.nodeType === 1) &&
4718
+ startContainer.isContentEditable && startContainer.childNodes[startOffset - 1] &&
4719
+ (customHandlerElements.indexOf(startContainer.childNodes[startOffset - 1].nodeName) > -1);
4720
+ if (isCursorAtEnd) {
4721
+ return { end: isCursorAtEnd, endNodeName: startContainer.childNodes[startOffset - 1].nodeName };
4722
+ }
4723
+ else {
4724
+ return { end: false, endNodeName: '' };
4725
+ }
4726
+ }
4727
+ processedTableImageCursor(range) {
4728
+ const { start, startNodeName } = this.isTableOrImageStart(range);
4729
+ const { end, endNodeName } = this.isTableOrImageEnd(range);
4730
+ return { start, startName: startNodeName, end, endName: endNodeName };
4731
+ }
4689
4732
  }
4690
4733
 
4691
4734
  /**
@@ -5038,7 +5081,7 @@ class ToolbarStatus {
5038
5081
  static get(docElement, rootNode, formatNode, fontSize, fontName, documentNode) {
5039
5082
  let formatCollection = JSON.parse(JSON.stringify(statusCollection));
5040
5083
  const nodeCollection = JSON.parse(JSON.stringify(statusCollection));
5041
- const nodeSelection = new NodeSelection();
5084
+ const nodeSelection = new NodeSelection(rootNode);
5042
5085
  const range = nodeSelection.getRange(docElement);
5043
5086
  const nodes = documentNode ? [documentNode] : range.collapsed ? nodeSelection.getNodeCollection(range) :
5044
5087
  nodeSelection.getSelectionNodeCollectionBr(range);
@@ -6572,6 +6615,9 @@ class Link {
6572
6615
  if (document.body.contains(proxy.dialogObj.element)) {
6573
6616
  this.selfLink.dialogObj.hide({ returnValue: false });
6574
6617
  }
6618
+ if (this.selfLink.dialogObj !== null) {
6619
+ return;
6620
+ }
6575
6621
  if (isIDevice$1() && proxy.parent.iframeSettings.enable) {
6576
6622
  select('iframe', proxy.parent.element).contentWindow.focus();
6577
6623
  }
@@ -6636,11 +6682,15 @@ class Link {
6636
6682
  openLink(e) {
6637
6683
  const selectParentEle = this.getAnchorNode(e.selectParent[0]);
6638
6684
  if (selectParentEle.classList.contains('e-rte-anchor') || selectParentEle.tagName === 'A') {
6685
+ const sanitizedHTML = this.parent.htmlEditorModule.sanitizeHelper(selectParentEle.outerHTML);
6686
+ const tempEle = document.createElement('div');
6687
+ tempEle.innerHTML = sanitizedHTML;
6639
6688
  this.parent.formatter.process(this.parent, e.args, e.args, {
6640
- url: selectParentEle.href, text: selectParentEle.innerText,
6689
+ url: tempEle.firstChild.href, text: selectParentEle.innerText,
6641
6690
  target: selectParentEle.target === '' ? '_self' : '_blank', selectNode: e.selectNode,
6642
6691
  subCommand: e.args.item.subCommand
6643
6692
  });
6693
+ tempEle.remove();
6644
6694
  }
6645
6695
  }
6646
6696
  getAnchorNode(element) {
@@ -6864,6 +6914,18 @@ const imageResizeFactor = {
6864
6914
  botRight: [1, 1],
6865
6915
  botLeft: [-1, 1]
6866
6916
  };
6917
+ /**
6918
+ * Resize factor for image in iframe editor.
6919
+ *
6920
+ *@hidden
6921
+ *
6922
+ */
6923
+ const iframeResizeFactor = {
6924
+ topLeft: [-1.2, -1.2],
6925
+ topRight: [1.2, -1.2],
6926
+ botRight: [1.2, 1.2],
6927
+ botLeft: [-1.2, 1.2]
6928
+ };
6867
6929
  /**
6868
6930
  * Mention restrict key configuration.
6869
6931
  *
@@ -7076,8 +7138,14 @@ class Image$1 {
7076
7138
  if (this.parent.formatter.getUndoRedoStack().length === 0) {
7077
7139
  this.parent.formatter.saveData();
7078
7140
  }
7079
- this.pageX = this.getPointX(e);
7080
- this.pageY = this.getPointY(e);
7141
+ if (this.parent.iframeSettings.enable) {
7142
+ this.pageX = e.screenX;
7143
+ this.pageY = e.screenY;
7144
+ }
7145
+ else {
7146
+ this.pageX = this.getPointX(e);
7147
+ this.pageY = this.getPointY(e);
7148
+ }
7081
7149
  e.preventDefault();
7082
7150
  e.stopImmediatePropagation();
7083
7151
  this.resizeBtnInit();
@@ -7306,7 +7374,7 @@ class Image$1 {
7306
7374
  width = Math.round(height * aspectRatio);
7307
7375
  height = Math.round(width / aspectRatio);
7308
7376
  }
7309
- return { width, height };
7377
+ return { width: width, height: height };
7310
7378
  }
7311
7379
  pixToPerc(expected, parentEle) {
7312
7380
  return expected / parseFloat(getComputedStyle(parentEle).width) * 100;
@@ -7341,29 +7409,50 @@ class Image$1 {
7341
7409
  return;
7342
7410
  }
7343
7411
  if (this.resizeBtnStat.botRight || this.resizeBtnStat.botLeft || this.resizeBtnStat.topRight || this.resizeBtnStat.topLeft) {
7344
- const pageX = this.getPointX(e);
7345
- const pageY = this.getPointY(e);
7346
- const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7347
- const diffX = (pageX - this.pageX);
7348
- const diffY = (pageY - this.pageY);
7349
- const currentWidth = this.imgEle.clientWidth;
7350
- const currentHeight = this.imgEle.clientHeight;
7351
- const width = diffX * resizeFactor[0] + currentWidth;
7352
- const height = diffY * resizeFactor[1] + currentHeight;
7353
- const dimensions = this.adjustDimensions(width, height, diffX, diffY, this.aspectRatio);
7354
- this.pageX = pageX;
7355
- this.pageY = pageY;
7356
- this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7412
+ if (this.parent.iframeSettings.enable) {
7413
+ const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7414
+ const currentScreenX = e.screenX;
7415
+ const currentScreenY = e.screenY;
7416
+ const currentWidth = this.imgEle.clientWidth;
7417
+ const currentHeight = this.imgEle.clientHeight;
7418
+ const deltaX = currentScreenX - this.pageX;
7419
+ const deltaY = currentScreenY - this.pageY;
7420
+ const width = deltaX * resizeFactor[0] + currentWidth;
7421
+ const height = deltaY * resizeFactor[1] + currentHeight;
7422
+ const dimensions = this.adjustDimensions(width, height, deltaX, deltaY, this.aspectRatio);
7423
+ this.pageX = currentScreenX;
7424
+ this.pageY = currentScreenY;
7425
+ this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7426
+ this.parent.autoResize();
7427
+ }
7428
+ else {
7429
+ const pageX = this.getPointX(e);
7430
+ const pageY = this.getPointY(e);
7431
+ const resizeFactor = this.getResizeFactor(this.currentResizeHandler);
7432
+ const diffX = (pageX - this.pageX);
7433
+ const diffY = (pageY - this.pageY);
7434
+ const currentWidth = this.imgEle.clientWidth;
7435
+ const currentHeight = this.imgEle.clientHeight;
7436
+ const width = diffX * resizeFactor[0] + currentWidth;
7437
+ const height = diffY * resizeFactor[1] + currentHeight;
7438
+ const dimensions = this.adjustDimensions(width, height, diffX, diffY, this.aspectRatio);
7439
+ this.pageX = pageX;
7440
+ this.pageY = pageY;
7441
+ this.imgDupMouseMove(dimensions.width + 'px', dimensions.height + 'px', e);
7442
+ }
7357
7443
  }
7358
7444
  }
7359
7445
  adjustDimensions(width, height, diffX, diffY, aspectRatio) {
7360
7446
  width = (width < 16) ? 16 : width;
7361
7447
  height = (height < 16) ? 16 : height;
7362
- const isWidthPrimary = Math.abs(diffX) > Math.abs(diffY);
7448
+ const isWidthPrimary = width > height;
7363
7449
  const dimensions = this.adjustDimensionsByAspectRatio(width, height, aspectRatio, isWidthPrimary);
7364
7450
  return dimensions;
7365
7451
  }
7366
7452
  getResizeFactor(value) {
7453
+ if (this.parent.iframeSettings.enable) {
7454
+ return iframeResizeFactor[value];
7455
+ }
7367
7456
  return imageResizeFactor[value];
7368
7457
  }
7369
7458
  findAspectRatio(image) {
@@ -7435,11 +7524,15 @@ class Image$1 {
7435
7524
  }
7436
7525
  }
7437
7526
  openImgLink(e) {
7527
+ const sanitizedHTML = this.parent.htmlEditorModule.sanitizeHelper(e.selectParent[0].parentNode.outerHTML);
7528
+ const tempEle = document.createElement('div');
7529
+ tempEle.innerHTML = sanitizedHTML;
7438
7530
  const target = e.selectParent[0].parentNode.target === '' ? '_self' : '_blank';
7439
7531
  this.parent.formatter.process(this.parent, e.args, e.args, {
7440
- url: e.selectParent[0].parentNode.href, target: target, selectNode: e.selectNode,
7532
+ url: tempEle.firstChild.href, target: target, selectNode: e.selectNode,
7441
7533
  subCommand: e.args.item.subCommand
7442
7534
  });
7535
+ tempEle.remove();
7443
7536
  }
7444
7537
  editImgLink(e) {
7445
7538
  const selectParentEle = e.selectParent[0].parentNode;
@@ -7526,7 +7619,7 @@ class Image$1 {
7526
7619
  }
7527
7620
  }
7528
7621
  if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
7529
- if (selectNodeEle && selectNodeEle[0].nodeName === 'IMG' && selectNodeEle.length < 1) {
7622
+ if (selectNodeEle && selectNodeEle[0] && selectNodeEle[0].nodeName === 'IMG' && selectNodeEle.length < 1) {
7530
7623
  if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection)) {
7531
7624
  save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
7532
7625
  }
@@ -8446,6 +8539,9 @@ class Image$1 {
8446
8539
  proxy.uploadUrl.cssClass = (proxy.parent.insertImageSettings.display === 'inline' ?
8447
8540
  CLS_IMGINLINE : CLS_IMGBREAK);
8448
8541
  proxy.dialogObj.hide({ returnValue: false });
8542
+ if (proxy.dialogObj !== null) {
8543
+ return;
8544
+ }
8449
8545
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
8450
8546
  proxy.uploadUrl.url = '';
8451
8547
  if (proxy.contentModule.getEditPanel().querySelector('.e-img-resize')) {
@@ -8476,8 +8572,11 @@ class Image$1 {
8476
8572
  maxHeight: proxy.parent.insertImageSettings.maxHeight
8477
8573
  }
8478
8574
  };
8479
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
8480
8575
  proxy.dialogObj.hide({ returnValue: false });
8576
+ if (proxy.dialogObj !== null) {
8577
+ return;
8578
+ }
8579
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
8481
8580
  }
8482
8581
  }
8483
8582
  imgsizeInput(e) {
@@ -10122,6 +10221,9 @@ class Audio {
10122
10221
  proxy.uploadUrl.cssClass = (proxy.parent.insertAudioSettings.layoutOption === 'Inline' ?
10123
10222
  CLS_AUDIOINLINE : CLS_AUDIOBREAK);
10124
10223
  proxy.dialogObj.hide({ returnValue: false });
10224
+ if (proxy.dialogObj !== null) {
10225
+ return;
10226
+ }
10125
10227
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
10126
10228
  proxy.uploadUrl.url = '';
10127
10229
  }
@@ -10140,8 +10242,11 @@ class Audio {
10140
10242
  url: url, selection: this.selection, fileName: name,
10141
10243
  selectParent: this.selectParent
10142
10244
  };
10143
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
10144
10245
  proxy.dialogObj.hide({ returnValue: false });
10246
+ if (proxy.dialogObj !== null) {
10247
+ return;
10248
+ }
10249
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
10145
10250
  }
10146
10251
  }
10147
10252
  /* eslint-disable */
@@ -10837,7 +10942,7 @@ class Video {
10837
10942
  this.undoStack({ subCommand: (originalEvent.keyCode === 90 ? 'undo' : 'redo') });
10838
10943
  }
10839
10944
  if (originalEvent.keyCode === 8 || originalEvent.keyCode === 46) {
10840
- if (selectNodeEle && (selectNodeEle[0].nodeName === 'VIDEO' || this.isEmbedVidElem(selectNodeEle[0])) && selectNodeEle.length < 1) {
10945
+ if (selectNodeEle && selectNodeEle[0] && (selectNodeEle[0].nodeName === 'VIDEO' || this.isEmbedVidElem(selectNodeEle[0])) && selectNodeEle.length < 1) {
10841
10946
  if (!isNullOrUndefined(this.parent.formatter.editorManager.nodeSelection)) {
10842
10947
  save = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
10843
10948
  }
@@ -11606,6 +11711,9 @@ class Video {
11606
11711
  maxHeight: proxy.parent.insertVideoSettings.maxHeight
11607
11712
  };
11608
11713
  proxy.dialogObj.hide({ returnValue: false });
11714
+ if (proxy.dialogObj !== null) {
11715
+ return;
11716
+ }
11609
11717
  proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, proxy.uploadUrl);
11610
11718
  proxy.uploadUrl.url = '';
11611
11719
  }
@@ -11632,8 +11740,11 @@ class Video {
11632
11740
  maxHeight: proxy.parent.insertVideoSettings.maxHeight
11633
11741
  }
11634
11742
  };
11635
- proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
11636
11743
  proxy.dialogObj.hide({ returnValue: false });
11744
+ if (proxy.dialogObj !== null) {
11745
+ return;
11746
+ }
11747
+ proxy.parent.formatter.process(proxy.parent, this.args, this.args.originalEvent, value);
11637
11748
  }
11638
11749
  }
11639
11750
  /* eslint-disable */
@@ -13645,7 +13756,8 @@ class Table {
13645
13756
  else {
13646
13757
  const tableReBox = this.contentModule.getEditPanel().querySelector('.e-table-box');
13647
13758
  const tableWidth = parseInt(getComputedStyle(this.curTable).width, 10);
13648
- const tableHeight = parseInt(getComputedStyle(this.curTable).height, 10);
13759
+ const tableHeight = !isNaN(parseInt(this.curTable.style.height, 10)) ?
13760
+ parseInt(this.curTable.style.height, 10) : parseInt(getComputedStyle(this.curTable).height, 10);
13649
13761
  const paddingSize = +getComputedStyle(this.contentModule.getEditPanel()).paddingRight.match(/\d/g).join('');
13650
13762
  const rteWidth = this.contentModule.getEditPanel().offsetWidth -
13651
13763
  (this.contentModule.getEditPanel().offsetWidth -
@@ -13790,7 +13902,7 @@ class Table {
13790
13902
  this.curTable.style.height = tableHeight + mouseY + 'px';
13791
13903
  if (!isNullOrUndefined(tableReBox)) {
13792
13904
  tableReBox.classList.add('e-rbox-select');
13793
- tableReBox.style.cssText = 'top: ' + (this.calcPos(this.curTable).top + tableHeight - 4) +
13905
+ tableReBox.style.cssText = 'top: ' + (this.calcPos(this.curTable).top + parseInt(getComputedStyle(this.curTable).height, 10) - 4) +
13794
13906
  'px; left:' + (this.calcPos(this.curTable).left + tableWidth - 4) + 'px;';
13795
13907
  }
13796
13908
  if (this.curTable.closest('li')) {
@@ -15545,7 +15657,7 @@ class SlashMenu {
15545
15657
  this.parent = options;
15546
15658
  this.currentDocument = this.parent.element.ownerDocument;
15547
15659
  this.L10n = serviceLocator.getService('rteLocale');
15548
- this.savedSelection = new NodeSelection();
15660
+ this.savedSelection = new NodeSelection(this.parent.inputElement);
15549
15661
  this.defaultItems = defaultSlashMenuDataModel;
15550
15662
  this.injectibleItems = injectibleSlashMenuDataModel;
15551
15663
  this.parent.on(modelChanged, this.onPropertyChanged, this);
@@ -21627,7 +21739,7 @@ class DOMNode {
21627
21739
  */
21628
21740
  constructor(parent, currentDocument) {
21629
21741
  this.parent = parent;
21630
- this.nodeSelection = new NodeSelection();
21742
+ this.nodeSelection = new NodeSelection(parent);
21631
21743
  this.currentDocument = currentDocument;
21632
21744
  this.tableSelection = new TableSelection(parent, currentDocument);
21633
21745
  }
@@ -22942,7 +23054,7 @@ class Lists {
22942
23054
  if (e.event.which === 8) {
22943
23055
  this.backspaceList(e);
22944
23056
  }
22945
- if ((e.event.which === 46 && e.event.action === 'delete') || (e.event.which === 88 && e.event.action === 'cut')) {
23057
+ if ((e.event.which === 46 && e.event.action === 'delete')) {
22946
23058
  const range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
22947
23059
  const commonAncestor = range.commonAncestorContainer;
22948
23060
  const startEle = range.startContainer;
@@ -24461,7 +24573,7 @@ class InsertHtml {
24461
24573
  node = insertNode;
24462
24574
  }
24463
24575
  }
24464
- const nodeSelection = new NodeSelection();
24576
+ const nodeSelection = new NodeSelection(editNode);
24465
24577
  const nodeCutter = new NodeCutter();
24466
24578
  let range = nodeSelection.getRange(docElement);
24467
24579
  if (range.startContainer === editNode && range.startContainer === range.endContainer && range.startOffset === 0 &&
@@ -24825,6 +24937,24 @@ class InsertHtml {
24825
24937
  this.cursorPos(lastSelectionNode, node, nodeSelection, docElement, editNode, enterAction);
24826
24938
  }
24827
24939
  this.alignCheck(editNode);
24940
+ const currentRange = nodeSelection.getRange(docElement);
24941
+ this.listCleanUp(currentRange);
24942
+ }
24943
+ static listCleanUp(range) {
24944
+ if (range.startContainer.parentElement.closest('ol,ul') !== null && range.endContainer.parentElement.closest('ol,ul') !== null) {
24945
+ const liElems = range.startContainer.parentElement.closest('ol,ul').querySelectorAll('li');
24946
+ if (liElems.length > 0) {
24947
+ liElems.forEach((item) => {
24948
+ if (!isNullOrUndefined(item.firstChild) && (item.firstChild.nodeName === 'OL' || item.firstChild.nodeName === 'UL')) {
24949
+ item.style.listStyleType = 'none';
24950
+ }
24951
+ const nestedLi = Array.from(item.children).find((child) => child.tagName === 'LI' && (child.parentElement && child.parentElement.tagName !== 'OL' && child.parentElement.tagName !== 'UL'));
24952
+ if (nestedLi) {
24953
+ item.parentNode.replaceChild(nestedLi, item);
24954
+ }
24955
+ });
24956
+ }
24957
+ }
24828
24958
  }
24829
24959
  static placeCursorEnd(lastSelectionNode, node, nodeSelection, docElement, editNode) {
24830
24960
  lastSelectionNode = lastSelectionNode.nodeName === 'BR' ? (isNullOrUndefined(lastSelectionNode.previousSibling) ? lastSelectionNode.parentNode
@@ -24889,7 +25019,7 @@ class InsertHtml {
24889
25019
  blockNode = range.endContainer;
24890
25020
  range.setEnd(blockNode, range.endContainer.textContent.length);
24891
25021
  }
24892
- if (blockNode && blockNode.nodeName === 'BODY' && range.startContainer === range.endContainer && range.startContainer.nodeType === 1) {
25022
+ if (blockNode && blockNode.nodeName === 'BODY' || blockNode.nodeName === 'DIV' && range.startContainer === range.endContainer && range.startContainer.nodeType === 1) {
24893
25023
  blockNode = range.startContainer;
24894
25024
  }
24895
25025
  if (blockNode && blockNode.closest('LI') && editNode.contains(blockNode.closest('LI')) && blockNode.nodeName !== 'TD' && blockNode.nodeName !== 'TH' && blockNode.nodeName !== 'TR' && node && node.firstElementChild &&
@@ -24909,12 +25039,12 @@ class InsertHtml {
24909
25039
  tempSpan.parentNode.replaceChild(node, tempSpan);
24910
25040
  }
24911
25041
  else {
24912
- const nodeSelection = new NodeSelection();
25042
+ const nodeSelection = new NodeSelection(editNode);
24913
25043
  const currentNode = this.getNodeCollection(range, nodeSelection, node)[this.getNodeCollection(range, nodeSelection, node).length - 1];
24914
25044
  let splitedElm;
24915
- if ((currentNode.nodeName === 'BR' || currentNode.nodeName === 'HR' ||
25045
+ if (currentNode && ((currentNode.nodeName === 'BR' || currentNode.nodeName === 'HR' ||
24916
25046
  (currentNode.nodeName === '#text' && !isNullOrUndefined(currentNode.parentElement) && currentNode.parentElement.nodeName === 'LI')) &&
24917
- (!isNullOrUndefined(currentNode.parentElement) && currentNode.parentElement.textContent.trim().length === 0)) {
25047
+ (!isNullOrUndefined(currentNode.parentElement) && currentNode.parentElement.textContent.trim().length === 0))) {
24918
25048
  splitedElm = currentNode;
24919
25049
  if (currentNode.parentElement.nodeName === 'LI' && !isNullOrUndefined(currentNode.nextSibling) &&
24920
25050
  currentNode.nextSibling.nodeName === 'BR') {
@@ -24927,16 +25057,20 @@ class InsertHtml {
24927
25057
  return;
24928
25058
  }
24929
25059
  }
24930
- else if ((currentNode.nodeName === '#text' || currentNode.nodeName === 'BR') && !isNullOrUndefined(currentNode.parentElement) &&
25060
+ else if (currentNode && ((currentNode.nodeName === '#text' || currentNode.nodeName === 'BR') && !isNullOrUndefined(currentNode.parentElement) &&
24931
25061
  (currentNode.parentElement.nodeName === 'LI' || currentNode.parentElement.closest('LI') || (blockNode === editNode && currentNode.parentElement === blockNode)) &&
24932
- currentNode.parentElement.textContent.trim().length > 0) {
25062
+ currentNode.parentElement.textContent.trim().length > 0)) {
24933
25063
  splitedElm = currentNode;
24934
25064
  if (currentNode.parentElement.nodeName === 'LI' && !isNullOrUndefined(currentNode.nextSibling) &&
24935
25065
  currentNode.nextSibling.nodeName === 'BR') {
24936
25066
  detach(currentNode.nextSibling);
24937
25067
  }
24938
25068
  if (!range.collapsed) {
25069
+ const startContainer = range.startContainer;
25070
+ const startOffset = range.startOffset;
24939
25071
  this.removeListfromPaste(range);
25072
+ range.setStart(startContainer, startOffset);
25073
+ range.setEnd(startContainer, startOffset);
24940
25074
  }
24941
25075
  range.insertNode(node);
24942
25076
  this.contentsDeleted = true;
@@ -24976,9 +25110,9 @@ class InsertHtml {
24976
25110
  }
24977
25111
  // eslint-disable-next-line
24978
25112
  static getImmediateBlockNode(node, editNode) {
24979
- do {
25113
+ while (node && BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) < 0) {
24980
25114
  node = node.parentNode;
24981
- } while (node && BLOCK_TAGS.indexOf(node.nodeName.toLocaleLowerCase()) < 0);
25115
+ }
24982
25116
  return node;
24983
25117
  }
24984
25118
  static removingComments(elm) {
@@ -25092,7 +25226,7 @@ class InsertHtml {
25092
25226
  const value = range.startContainer;
25093
25227
  if (!isNullOrUndefined(value) && value.nodeName === 'LI' && !isNullOrUndefined(value.parentElement) && (value.parentElement.nodeName === 'OL' || value.parentElement.nodeName === 'UL') && value.textContent.trim() === '') {
25094
25228
  value.parentElement.querySelectorAll('li').forEach((item) => {
25095
- if (item.textContent.trim() === '') {
25229
+ if (item.textContent.trim() === '' && item !== value) {
25096
25230
  item.remove();
25097
25231
  }
25098
25232
  });
@@ -25194,7 +25328,7 @@ class LinkCommand {
25194
25328
  }
25195
25329
  }
25196
25330
  else {
25197
- const domSelection = new NodeSelection();
25331
+ const domSelection = new NodeSelection(this.parent.editableElement);
25198
25332
  let range = domSelection.getRange(this.parent.currentDocument);
25199
25333
  if (range.endContainer.nodeName === '#text' && range.startContainer.textContent.length === (range.endOffset + 1) &&
25200
25334
  range.endContainer.textContent.charAt(range.endOffset) === ' ' && (!isNullOrUndefined(range.endContainer.nextSibling) && range.endContainer.nextSibling.nodeName === 'A')) {
@@ -25240,7 +25374,7 @@ class LinkCommand {
25240
25374
  }
25241
25375
  }
25242
25376
  createLinkNode(e) {
25243
- const domSelection = new NodeSelection();
25377
+ const domSelection = new NodeSelection(this.parent.editableElement);
25244
25378
  const nodeCutter = new NodeCutter();
25245
25379
  const range = domSelection.getRange(this.parent.currentDocument);
25246
25380
  const nodes = this.getSelectionNodes(domSelection.getNodeCollection(range));
@@ -25811,6 +25945,8 @@ class ImageCommand {
25811
25945
  (Browser.isIE ? selectedNode.previousSibling : selectedNode.previousElementSibling);
25812
25946
  const onImageLoadEvent = () => {
25813
25947
  if (!isNullOrUndefined(this.parent.currentDocument)) {
25948
+ imgElm.setAttribute('width', imgElm.offsetWidth.toString());
25949
+ imgElm.setAttribute('height', imgElm.offsetHeight.toString());
25814
25950
  e.callBack({
25815
25951
  requestType: (e.value === 'Replace') ? (e.item.subCommand = 'Replace', 'Replace') : 'Images',
25816
25952
  editorMode: 'HTML',
@@ -27634,7 +27770,7 @@ class SelectionCommands {
27634
27770
  if (format === 'backgroundcolor' && value === '') {
27635
27771
  value = 'transparent';
27636
27772
  }
27637
- let domSelection = new NodeSelection();
27773
+ let domSelection = new NodeSelection(endNode);
27638
27774
  const domNode = new DOMNode(endNode, docElement);
27639
27775
  const nodeCutter = new NodeCutter();
27640
27776
  const isFormatted = new IsFormatted();
@@ -27843,7 +27979,7 @@ class SelectionCommands {
27843
27979
  if (cursorNodes.length === 1 && range.startOffset === 0 && (cursorNodes[0].nodeName === 'BR' || (isNullOrUndefined(cursorNodes[0].nextSibling) ? false : cursorNodes[0].nextSibling.nodeName === 'BR'))) {
27844
27980
  detach(cursorNodes[0].nodeName === '#text' ? cursorNodes[0].nextSibling : cursorNodes[0]);
27845
27981
  }
27846
- if (!isNullOrUndefined(cursorNodes[0].parentElement) && IsFormatted.inlineTags.
27982
+ if (!isNullOrUndefined(cursorNodes[0] && cursorNodes[0].parentElement) && IsFormatted.inlineTags.
27847
27983
  indexOf((cursorNodes[0].parentElement).tagName.toLowerCase()) !== -1 && cursorNodes[0].textContent.includes('\u200B')) {
27848
27984
  const element = this.GetFormatNode(format, value);
27849
27985
  const tempNode = cursorNodes[0];
@@ -28751,7 +28887,7 @@ class ClearFormat$1 {
28751
28887
  static clear(docElement, endNode, enterAction, selector, command) {
28752
28888
  this.domNode = new DOMNode(endNode, docElement);
28753
28889
  this.defaultTag = enterAction === 'P' ? this.defaultTag : 'div';
28754
- const nodeSelection = new NodeSelection();
28890
+ const nodeSelection = new NodeSelection(endNode);
28755
28891
  const nodeCutter = new NodeCutter();
28756
28892
  let range = nodeSelection.getRange(docElement);
28757
28893
  const nodes = range.collapsed ? nodeSelection.getSelectionNodeCollection(range) :
@@ -29180,7 +29316,7 @@ class UndoRedoManager {
29180
29316
  if (!this.parent.currentDocument) {
29181
29317
  return;
29182
29318
  }
29183
- let range = new NodeSelection().getRange(this.parent.currentDocument);
29319
+ let range = new NodeSelection(this.parent.editableElement).getRange(this.parent.currentDocument);
29184
29320
  const currentContainer = this.parent.editableElement === range.startContainer.parentElement ?
29185
29321
  range.startContainer.parentElement : range.startContainer;
29186
29322
  for (let i = currentContainer.childNodes.length - 1; i >= 0; i--) {
@@ -29190,8 +29326,8 @@ class UndoRedoManager {
29190
29326
  detach(currentContainer.childNodes[i]);
29191
29327
  }
29192
29328
  }
29193
- range = new NodeSelection().getRange(this.parent.currentDocument);
29194
- const save = new NodeSelection().save(range, this.parent.currentDocument);
29329
+ range = new NodeSelection(this.parent.editableElement).getRange(this.parent.currentDocument);
29330
+ const save = new NodeSelection(this.parent.editableElement).save(range, this.parent.currentDocument);
29195
29331
  const clonedElement = this.parent.editableElement.cloneNode(true);
29196
29332
  const fragment = document.createDocumentFragment();
29197
29333
  while (clonedElement.firstChild) {
@@ -29403,6 +29539,9 @@ class MsWordPaste {
29403
29539
  e.callBack(elm.innerHTML, this.cropImageDimensions, source);
29404
29540
  }
29405
29541
  else {
29542
+ if (source === PASTE_SOURCE[2]) {
29543
+ this.handleOneNoteContent(elm);
29544
+ }
29406
29545
  e.callBack(elm.innerHTML, null, source);
29407
29546
  }
29408
29547
  }
@@ -30397,6 +30536,18 @@ class MsWordPaste {
30397
30536
  }
30398
30537
  return 'html';
30399
30538
  }
30539
+ handleOneNoteContent(element) {
30540
+ const allListElements = element.querySelectorAll('ul, ol');
30541
+ if (allListElements.length > 0) {
30542
+ for (let i = 0; i < allListElements.length; i++) {
30543
+ // Removing the ul and ol parent node for the p tag
30544
+ const currentList = allListElements[i];
30545
+ if (currentList.querySelectorAll('li').length === 0 && currentList.childNodes.length > 0) {
30546
+ InsertMethods.unwrap(currentList);
30547
+ }
30548
+ }
30549
+ }
30550
+ }
30400
30551
  destroy() {
30401
30552
  this.removeEventListener();
30402
30553
  }
@@ -31168,7 +31319,7 @@ class EditorManager {
31168
31319
  constructor(options) {
31169
31320
  this.currentDocument = options.document;
31170
31321
  this.editableElement = options.editableElement;
31171
- this.nodeSelection = new NodeSelection();
31322
+ this.nodeSelection = new NodeSelection(this.editableElement);
31172
31323
  this.nodeCutter = new NodeCutter();
31173
31324
  this.domNode = new DOMNode(this.editableElement, this.currentDocument);
31174
31325
  this.observer = new Observer(this);
@@ -31836,7 +31987,7 @@ class HtmlEditor {
31836
31987
  if (this.parent.isDestroyed) {
31837
31988
  return;
31838
31989
  }
31839
- this.nodeSelectionObj = new NodeSelection();
31990
+ this.nodeSelectionObj = new NodeSelection(this.parent.inputElement);
31840
31991
  this.parent.on(initialLoad, this.instantiateRenderer, this);
31841
31992
  this.parent.on(htmlToolbarClick, this.onToolbarClick, this);
31842
31993
  this.parent.on(keyDown, this.onKeyDown, this);
@@ -32543,7 +32694,7 @@ class HtmlEditor {
32543
32694
  urlText = urlText.slice(0, urlTextRange);
32544
32695
  // eslint-disable-next-line
32545
32696
  const regex = new RegExp(/([^\S]|^)(((https?\:\/\/)|(www\.))(\S+))/gi);
32546
- if (selectNodeEle[0].nodeName !== 'A' && urlText.match(regex)) {
32697
+ if (selectNodeEle[0] && selectNodeEle[0].nodeName !== 'A' && urlText.match(regex)) {
32547
32698
  const selection = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());
32548
32699
  const url = urlText.indexOf('http') > -1 ? urlText : 'http://' + urlText;
32549
32700
  const selectParent = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
@@ -32902,7 +33053,7 @@ class PasteCleanup {
32902
33053
  this.isDestroyed = false;
32903
33054
  }
32904
33055
  addEventListener() {
32905
- this.nodeSelectionObj = new NodeSelection();
33056
+ this.nodeSelectionObj = new NodeSelection(this.parent.inputElement);
32906
33057
  if (this.parent.isDestroyed) {
32907
33058
  return;
32908
33059
  }
@@ -34056,6 +34207,8 @@ class Resize {
34056
34207
  this.parent = parent;
34057
34208
  this.addEventListener();
34058
34209
  this.isDestroyed = false;
34210
+ this.isResizing = false;
34211
+ this.iframeMouseUpBoundFn = this.iframeMouseUp.bind(this);
34059
34212
  }
34060
34213
  addEventListener() {
34061
34214
  if (this.parent.isDestroyed) {
@@ -34075,12 +34228,14 @@ class Resize {
34075
34228
  this.parent.rootContainer.classList.add('e-resize-enabled');
34076
34229
  if (this.parent.iframeSettings.enable) {
34077
34230
  this.parent.inputElement.classList.add('e-resize-enabled');
34231
+ this.parent.contentModule.getDocument().addEventListener('mouseup', this.iframeMouseUpBoundFn);
34078
34232
  }
34079
34233
  this.touchStartEvent = (Browser.info.name === 'msie') ? 'pointerdown' : 'touchstart';
34080
34234
  EventHandler.add(this.resizer, 'mousedown', this.resizeStart, this);
34081
34235
  EventHandler.add(this.resizer, this.touchStartEvent, this.resizeStart, this);
34082
34236
  }
34083
34237
  resizeStart(e) {
34238
+ this.isResizing = false;
34084
34239
  if (e.cancelable) {
34085
34240
  e.preventDefault();
34086
34241
  }
@@ -34094,6 +34249,7 @@ class Resize {
34094
34249
  });
34095
34250
  }
34096
34251
  performResize(e) {
34252
+ this.isResizing = true;
34097
34253
  const args = { event: e, requestType: 'editor' };
34098
34254
  this.parent.trigger(onResize, args, (resizingArgs) => {
34099
34255
  if (resizingArgs.cancel) {
@@ -34120,9 +34276,14 @@ class Resize {
34120
34276
  this.parent.element.style.height = eventType.clientY - boundRect.top + 'px';
34121
34277
  this.parent.element.style.width = (!this.parent.enableRtl) ? eventType.clientX - boundRect.left + 'px' : boundRect.right - eventType.clientX + 'px';
34122
34278
  }
34279
+ const rteContent = this.parent.element.querySelector('#' + this.parent.getID() + '_source-view');
34280
+ if (!isNullOrUndefined(rteContent)) {
34281
+ rteContent.style.height = this.parent.element.style.height;
34282
+ }
34123
34283
  this.parent.refreshUI();
34124
34284
  }
34125
34285
  stopResize(e) {
34286
+ this.isResizing = false;
34126
34287
  this.parent.refreshUI();
34127
34288
  this.unwireResizeEvents();
34128
34289
  const args = { event: e, requestType: 'editor' };
@@ -34172,6 +34333,7 @@ class Resize {
34172
34333
  }
34173
34334
  if (this.parent.iframeSettings.enable && !isNullOrUndefined(this.parent.inputElement)) {
34174
34335
  this.parent.inputElement.classList.remove('e-resize-enabled');
34336
+ this.parent.contentModule.getDocument().removeEventListener('mouseup', this.iframeMouseUpBoundFn);
34175
34337
  }
34176
34338
  if (this.resizer) {
34177
34339
  EventHandler.remove(this.resizer, 'mousedown', this.resizeStart);
@@ -34179,6 +34341,12 @@ class Resize {
34179
34341
  detach(this.resizer);
34180
34342
  }
34181
34343
  this.parent.off(destroy, this.destroy);
34344
+ this.iframeMouseUpBoundFn = null;
34345
+ }
34346
+ iframeMouseUp(e) {
34347
+ if (this.isResizing) {
34348
+ this.stopResize(e);
34349
+ }
34182
34350
  }
34183
34351
  /**
34184
34352
  * For internal use only - Get the module name.
@@ -35682,7 +35850,7 @@ class ImportExport {
35682
35850
  saveUrl: this.parent.importWord.serviceUrl
35683
35851
  },
35684
35852
  success: (args) => {
35685
- this.parent.executeCommand('insertHTML', args.e.currentTarget.response, { undo: true });
35853
+ this.parent.executeCommand('importWord', args.e.currentTarget.response, { undo: true });
35686
35854
  }
35687
35855
  });
35688
35856
  this.parent.setProperties({ enableXhtml: true }, true);
@@ -36972,11 +37140,16 @@ class EnterKeyAction {
36972
37140
  else if (!isNullOrUndefined(currentParent) && currentParent !== this.parent.inputElement && currentParent.nodeName !== 'BR') {
36973
37141
  if (currentParent.textContent.trim().length === 0 || (currentParent.textContent.trim().length === 1 &&
36974
37142
  currentParent.textContent.charCodeAt(0) === 8203)) {
36975
- const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, currentParent, true).cloneNode(true);
36976
- this.parent.formatter.editorManager.domNode.insertAfter(newElem, currentParent);
36977
- const outerBRElem = this.parent.createElement('br');
36978
- newElem.parentElement.insertBefore(outerBRElem, newElem);
36979
- this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), newElem, 0);
37143
+ if (currentParent.childElementCount > 1 && currentParent.lastElementChild.nodeName === 'IMG') {
37144
+ this.insertBRElement();
37145
+ }
37146
+ else {
37147
+ const newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, currentParent, true).cloneNode(true);
37148
+ this.parent.formatter.editorManager.domNode.insertAfter(newElem, currentParent);
37149
+ const outerBRElem = this.parent.createElement('br');
37150
+ newElem.parentElement.insertBefore(outerBRElem, newElem);
37151
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), newElem, 0);
37152
+ }
36980
37153
  }
36981
37154
  else {
36982
37155
  let newElem;
@@ -37519,6 +37692,17 @@ let RichTextEditor = class RichTextEditor extends Component {
37519
37692
  * @public
37520
37693
  */
37521
37694
  executeCommand(commandName, value, option) {
37695
+ if (commandName === 'importWord') {
37696
+ const importContainer = this.createElement('div');
37697
+ importContainer.innerHTML = value;
37698
+ const tableElement = importContainer.querySelectorAll('table:not(.e-rte-table):not(.e-rte-paste-table)');
37699
+ for (let i = 0; i < tableElement.length; i++) {
37700
+ tableElement[i].classList.add('e-rte-paste-table');
37701
+ }
37702
+ value = importContainer.innerHTML;
37703
+ importContainer.remove();
37704
+ commandName = 'insertHTML';
37705
+ }
37522
37706
  value = this.htmlPurifier(commandName, value);
37523
37707
  let internalValue;
37524
37708
  if (this.editorMode === 'HTML') {
@@ -40123,5 +40307,5 @@ RichTextEditor = __decorate$5([
40123
40307
  NotifyPropertyChanges
40124
40308
  ], RichTextEditor);
40125
40309
 
40126
- export { ACTION, ALIGNMENT_TYPE, ALLOWED_ACTIONKEYS, AUDIO, Alignments, Audio, AudioCommand, BLOCKQUOTE_LIST_HANDLE, BLOCK_TAGS, BaseQuickToolbar, BaseToolbar, CLASS_AUDIO, CLASS_AUDIO_BREAK, CLASS_AUDIO_FOCUS, CLASS_AUDIO_INLINE, CLASS_AUDIO_WRAP, CLASS_CAPTION, CLASS_CAPTION_INLINE, CLASS_CLICK_ELEM, CLASS_EMBED_VIDEO_WRAP, CLASS_IMAGE_BREAK, CLASS_IMAGE_CENTER, CLASS_IMAGE_INLINE, CLASS_IMAGE_LEFT, CLASS_IMAGE_RIGHT, CLASS_RTE_CAPTION, CLASS_VIDEO, CLASS_VIDEO_BREAK, CLASS_VIDEO_CENTER, CLASS_VIDEO_CLICK_ELEM, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, CLASS_VIDEO_LEFT, CLASS_VIDEO_RIGHT, CLASS_VIDEO_WRAP, CLEAR_COMMAND, CLEAR_TYPE, CLS_ACTIVE, CLS_ALIGN_TB_BTN, CLS_AUDIOBREAK, CLS_AUDIOINLINE, CLS_AUDIOWRAP, CLS_AUD_FOCUS, CLS_BACK, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_PICKER, CLS_BACKGROUND_COLOR_TARGET, CLS_BULLETFORMATLIST_TB_BTN, CLS_CAPINLINE, CLS_CAPTION, CLS_CLICKELEM, CLS_COLOR_CONTENT, CLS_COLOR_PALETTE, CLS_CONTENT, CLS_COUNT, CLS_CUSTOM_TILE, CLS_DISABLED, CLS_DROPAREA, CLS_DROPDOWN_BTN, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_POPUP, CLS_ERROR, CLS_EXPAND_OPEN, CLS_FOCUS, CLS_FONT_COLOR_DROPDOWN, CLS_FONT_COLOR_PICKER, CLS_FONT_COLOR_TARGET, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FULL_SCREEN, CLS_HIDE, CLS_HR_SEPARATOR, CLS_ICONS, CLS_IMAGE_POP, CLS_IMGBREAK, CLS_IMGCENTER, CLS_IMGINLINE, CLS_IMGLEFT, CLS_IMGRIGHT, CLS_IMG_FOCUS, CLS_IMG_INNER, CLS_IMG_RESIZE, CLS_INLINE, CLS_INLINE_DROPDOWN, CLS_INLINE_POP, CLS_LIST_PRIMARY_CONTENT, CLS_MAXIMIZE, CLS_MINIMIZE, CLS_NOCOLOR_ITEM, CLS_NUMBERFORMATLIST_TB_BTN, CLS_POP, CLS_POPUP, CLS_POPUP_OPEN, CLS_QUICK_DROPDOWN, CLS_QUICK_POP, CLS_QUICK_TB, CLS_RESIZE, CLS_RM_WHITE_SPACE, CLS_RTE, CLS_RTE_CAPTION, CLS_RTE_CONTAINER, CLS_RTE_CONTENT, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_DRAG_IMAGE, CLS_RTE_ELEMENTS, CLS_RTE_EXPAND_TB, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_HIDDEN, CLS_RTE_IMAGE, CLS_RTE_PASTE_CANCEL, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_READONLY, CLS_RTE_RES_CNT, CLS_RTE_RES_EAST, CLS_RTE_RES_HANDLE, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, CLS_RTE_TABLE_RESIZE, CLS_RTE_TB_ENABLED, CLS_RTE_UPLOAD_POPUP, CLS_RTL, CLS_SCRIPT_SHEET, CLS_SEPARATOR, CLS_SHOW, CLS_STYLE_SHEET, CLS_TABLE, CLS_TABLE_BORDER, CLS_TABLE_MULTI_CELL, CLS_TABLE_SEL, CLS_TABLE_SEL_END, CLS_TB_ALT_BOR, CLS_TB_BOX_RES, CLS_TB_BTN, CLS_TB_COL_RES, CLS_TB_DASH_BOR, CLS_TB_EXTENDED, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_INLINE, CLS_TB_IOS_FIX, CLS_TB_ITEM, CLS_TB_ROW_RES, CLS_TB_STATIC, CLS_TB_WRAP, CLS_TEXT_POP, CLS_TEXT_QUICK_TB, CLS_TOOLBAR, CLS_UPLOAD_FILES, CLS_VIDEOBREAK, CLS_VIDEOINLINE, CLS_VIDEOWRAP, CLS_VID_CLICK_ELEM, CLS_VID_FOCUS, CLS_VISIBLE, CLS_WARNING, ClearFormat, ClearFormatExec, ColorPickerInput, ContentRender, Count, DEFAULT_TAG, DELETECOLUMN, DELETEROW, DESTROY, DOMNode, DialogRenderer, DialogType, DropDownButtons, EMOJI_PICKER_ACTIONS, EditorManager, EmojiPicker, EmojiPickerAction, ExecCommandCallBack, FORMAT_PAINTER_ACTIONS, FORMAT_TYPE, FileManager, FormatPainter, FormatPainterActions, Formats, Formatter, FullScreen, HTMLFormatter, HtmlEditor, HtmlToolbarStatus, IGNORE_BLOCK_TAGS, IMAGE, INDENT_TYPE, INSERTHTML_TYPE, INSERT_COLUMN, INSERT_ROW, INSERT_TEXT_COMMAND, INSERT_TEXT_TYPE, INTERNAL_DESTROY, IframeContentRender, Image$1 as Image, ImageCommand, ImageInputSource, ImportExport, Indents, InsertHtml, InsertHtmlExec, InsertMethods, InsertTextExec, IsFormatted, KEY_DOWN, KEY_DOWN_HANDLER, KEY_UP, KEY_UP_HANDLER, KeyboardEvents, LINK, LINK_COMMAND, LISTS_COMMAND, LIST_TYPE, Link, LinkCommand, Lists, MDFormats, MDLink, MDLists, MDSelectionFormats, MDTable, MD_TABLE, MODEL_CHANGED, MODEL_CHANGED_PLUGIN, MOUSE_DOWN, MS_WORD_CLEANUP, MS_WORD_CLEANUP_PLUGIN, MarkdownEditor, MarkdownFormatter, MarkdownParser, MarkdownRender, MarkdownSelection, MarkdownToolbarStatus, MsWordPaste, NodeCutter, NodeSelection, ON_BEGIN, PASTE_SOURCE, PasteCleanup, PopupRenderer, QuickToolbar, REMOVETABLE, Render, RenderType, RendererFactory, Resize, RichTextEditor, SELECTION_TYPE, SELF_CLOSING_TAGS, SPACE_ACTION, SelectionBasedExec, SelectionCommands, ServiceLocator, SlashMenu, TABLE, TABLEHEADER, TABLE_BLOCK_TAGS, TABLE_HORIZONTAL_SPLIT, TABLE_MERGE, TABLE_MOVE, TABLE_VERTICAL_ALIGN, TABLE_VERTICAL_SPLIT, Table, TableCommand, Toolbar, ToolbarAction, ToolbarRenderer, ToolbarStatus, ToolbarType, UndoRedoCommands, UndoRedoManager, VIDEO, Video, VideoCommand, ViewSource, XhtmlValidation, actionBegin, actionComplete, actionSuccess, afterImageDelete, afterKeyDown, afterMediaDelete, afterPasteCleanup, audioDelete, audioToolbarAction, autoResize, beforeDialogClose, beforeDialogOpen, beforeDropDownItemRender, beforeDropDownOpen, beforeFileUpload, beforeImageDrop, beforeImageUpload, beforePasteCleanup, beforeQuickToolbarOpen, bindCssClass, bindOnEnd, blockEmptyNodes, checkUndo, cleanupResizeElements, clearDialogObj, closeAudioDialog, closeImageDialog, closeLinkDialog, closeTableDialog, closeTooltip, closeVideoDialog, colorPickerChanged, contentBlur, contentChanged, contentFocus, contentscroll, conversionFactors, convertToBlob, count, createTable, created, decode, destroy, destroyTooltip, destroyed, dialogClose, dialogOpen, disableFullScreen, dispatchEvent, docClick, documentClickClosedBy, drop, dropDownSelect, dynamicModule, editAreaClick, editLink, emojiPicker, enableFullScreen, enterHandler, execCommandCallBack, executeGroup, expandPopupClick, fileRemoving, fileSelected, fileUploadFailed, fileUploadSuccess, fileUploading, focusChange, formatPainterClick, formatPainterDoubleClick, getCollection, getDefaultValue, getDropDownValue, getEditValue, getFormattedFontSize, getIndex, getLocaleFontFormat, getSelectedHtml, getTBarItemsIndex, getTextNodesUnder, getTooltipText, hasClass, hidePopup, htmlKeyConfig, htmlToolbarClick, iframeMouseDown, imageAlt, imageBreak, imageCaption, imageCenter, imageDelete, imageInline, imageLeft, imageLink, imageRemoving, imageResizeFactor, imageRight, imageSelected, imageSize, imageToolbarAction, imageUploadFailed, imageUploadSuccess, imageUploading, imgModule, initialEnd, initialLoad, inlineEmptyNodes, insertAudio, insertCompleted, insertImage, insertLink, insertVideo, isEditableValueEmpty, isIDevice, keyDown, keyUp, linkToolbarAction, listConversionFilters, load, markdownFormatTags, markdownKeyConfig, markdownListsTags, markdownSelectionTags, markdownToolbarClick, markerClassName, mentionRestrictKeys, modelChanged, mouseDown, mouseUp, onExport, onHandleFontsizeChange, onImport, onResize, openLink, pageYOffset, parseHtml, paste, pasteClean, pasteCleanupGroupingTags, popupHide, quickToolbarClose, quickToolbarOpen, readOnlyMode, redo, refreshBegin, renderFileManager, renderInlineToolbar, resizeInitialized, resizeStart, resizeStop, rtlMode, sanitizeHelper, scroll, selectAll, selectRange, selectionCommand, selectionRestore, selectionSave, selfClosingTags, setAttributes, setToolbarStatus, showAudioDialog, showColorPicker, showImageDialog, showLinkDialog, showTableDialog, showVideoDialog, sourceCode, sourceCodeMouseDown, statusCollection, supportedUnits, tableColorPickerChanged, tableModulekeyUp, tableToolbarAction, tableclass, toObjectLowerCase, toolbarClick, toolbarCreated, toolbarOpen, toolbarRefresh, toolbarRenderComplete, toolbarUpdated, unLink, undo, updateDropDownFontFormatLocale, updateSource, updateTbItemsStatus, updateTextNode, updateToolbarItem, updateUndoRedoStatus, updateValueOnIdle, updatedToolbarStatus, videoDelete, videoSize, videoToolbarAction, windowResize, xhtmlValidation };
40310
+ export { ACTION, ALIGNMENT_TYPE, ALLOWED_ACTIONKEYS, AUDIO, Alignments, Audio, AudioCommand, BLOCKQUOTE_LIST_HANDLE, BLOCK_TAGS, BaseQuickToolbar, BaseToolbar, CLASS_AUDIO, CLASS_AUDIO_BREAK, CLASS_AUDIO_FOCUS, CLASS_AUDIO_INLINE, CLASS_AUDIO_WRAP, CLASS_CAPTION, CLASS_CAPTION_INLINE, CLASS_CLICK_ELEM, CLASS_EMBED_VIDEO_WRAP, CLASS_IMAGE_BREAK, CLASS_IMAGE_CENTER, CLASS_IMAGE_INLINE, CLASS_IMAGE_LEFT, CLASS_IMAGE_RIGHT, CLASS_RTE_CAPTION, CLASS_VIDEO, CLASS_VIDEO_BREAK, CLASS_VIDEO_CENTER, CLASS_VIDEO_CLICK_ELEM, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, CLASS_VIDEO_LEFT, CLASS_VIDEO_RIGHT, CLASS_VIDEO_WRAP, CLEAR_COMMAND, CLEAR_TYPE, CLS_ACTIVE, CLS_ALIGN_TB_BTN, CLS_AUDIOBREAK, CLS_AUDIOINLINE, CLS_AUDIOWRAP, CLS_AUD_FOCUS, CLS_BACK, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_PICKER, CLS_BACKGROUND_COLOR_TARGET, CLS_BULLETFORMATLIST_TB_BTN, CLS_CAPINLINE, CLS_CAPTION, CLS_CLICKELEM, CLS_COLOR_CONTENT, CLS_COLOR_PALETTE, CLS_CONTENT, CLS_COUNT, CLS_CUSTOM_TILE, CLS_DISABLED, CLS_DROPAREA, CLS_DROPDOWN_BTN, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_POPUP, CLS_ERROR, CLS_EXPAND_OPEN, CLS_FOCUS, CLS_FONT_COLOR_DROPDOWN, CLS_FONT_COLOR_PICKER, CLS_FONT_COLOR_TARGET, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FULL_SCREEN, CLS_HIDE, CLS_HR_SEPARATOR, CLS_ICONS, CLS_IMAGE_POP, CLS_IMGBREAK, CLS_IMGCENTER, CLS_IMGINLINE, CLS_IMGLEFT, CLS_IMGRIGHT, CLS_IMG_FOCUS, CLS_IMG_INNER, CLS_IMG_RESIZE, CLS_INLINE, CLS_INLINE_DROPDOWN, CLS_INLINE_POP, CLS_LIST_PRIMARY_CONTENT, CLS_MAXIMIZE, CLS_MINIMIZE, CLS_NOCOLOR_ITEM, CLS_NUMBERFORMATLIST_TB_BTN, CLS_POP, CLS_POPUP, CLS_POPUP_OPEN, CLS_QUICK_DROPDOWN, CLS_QUICK_POP, CLS_QUICK_TB, CLS_RESIZE, CLS_RM_WHITE_SPACE, CLS_RTE, CLS_RTE_CAPTION, CLS_RTE_CONTAINER, CLS_RTE_CONTENT, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_DRAG_IMAGE, CLS_RTE_ELEMENTS, CLS_RTE_EXPAND_TB, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_HIDDEN, CLS_RTE_IMAGE, CLS_RTE_PASTE_CANCEL, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_READONLY, CLS_RTE_RES_CNT, CLS_RTE_RES_EAST, CLS_RTE_RES_HANDLE, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, CLS_RTE_TABLE_RESIZE, CLS_RTE_TB_ENABLED, CLS_RTE_UPLOAD_POPUP, CLS_RTL, CLS_SCRIPT_SHEET, CLS_SEPARATOR, CLS_SHOW, CLS_STYLE_SHEET, CLS_TABLE, CLS_TABLE_BORDER, CLS_TABLE_MULTI_CELL, CLS_TABLE_SEL, CLS_TABLE_SEL_END, CLS_TB_ALT_BOR, CLS_TB_BOX_RES, CLS_TB_BTN, CLS_TB_COL_RES, CLS_TB_DASH_BOR, CLS_TB_EXTENDED, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_INLINE, CLS_TB_IOS_FIX, CLS_TB_ITEM, CLS_TB_ROW_RES, CLS_TB_STATIC, CLS_TB_WRAP, CLS_TEXT_POP, CLS_TEXT_QUICK_TB, CLS_TOOLBAR, CLS_UPLOAD_FILES, CLS_VIDEOBREAK, CLS_VIDEOINLINE, CLS_VIDEOWRAP, CLS_VID_CLICK_ELEM, CLS_VID_FOCUS, CLS_VISIBLE, CLS_WARNING, ClearFormat, ClearFormatExec, ColorPickerInput, ContentRender, Count, DEFAULT_TAG, DELETECOLUMN, DELETEROW, DESTROY, DOMNode, DialogRenderer, DialogType, DropDownButtons, EMOJI_PICKER_ACTIONS, EditorManager, EmojiPicker, EmojiPickerAction, ExecCommandCallBack, FORMAT_PAINTER_ACTIONS, FORMAT_TYPE, FileManager, FormatPainter, FormatPainterActions, Formats, Formatter, FullScreen, HTMLFormatter, HtmlEditor, HtmlToolbarStatus, IGNORE_BLOCK_TAGS, IMAGE, INDENT_TYPE, INSERTHTML_TYPE, INSERT_COLUMN, INSERT_ROW, INSERT_TEXT_COMMAND, INSERT_TEXT_TYPE, INTERNAL_DESTROY, IframeContentRender, Image$1 as Image, ImageCommand, ImageInputSource, ImportExport, Indents, InsertHtml, InsertHtmlExec, InsertMethods, InsertTextExec, IsFormatted, KEY_DOWN, KEY_DOWN_HANDLER, KEY_UP, KEY_UP_HANDLER, KeyboardEvents, LINK, LINK_COMMAND, LISTS_COMMAND, LIST_TYPE, Link, LinkCommand, Lists, MDFormats, MDLink, MDLists, MDSelectionFormats, MDTable, MD_TABLE, MODEL_CHANGED, MODEL_CHANGED_PLUGIN, MOUSE_DOWN, MS_WORD_CLEANUP, MS_WORD_CLEANUP_PLUGIN, MarkdownEditor, MarkdownFormatter, MarkdownParser, MarkdownRender, MarkdownSelection, MarkdownToolbarStatus, MsWordPaste, NodeCutter, NodeSelection, ON_BEGIN, PASTE_SOURCE, PasteCleanup, PopupRenderer, QuickToolbar, REMOVETABLE, Render, RenderType, RendererFactory, Resize, RichTextEditor, SELECTION_TYPE, SELF_CLOSING_TAGS, SPACE_ACTION, SelectionBasedExec, SelectionCommands, ServiceLocator, SlashMenu, TABLE, TABLEHEADER, TABLE_BLOCK_TAGS, TABLE_HORIZONTAL_SPLIT, TABLE_MERGE, TABLE_MOVE, TABLE_VERTICAL_ALIGN, TABLE_VERTICAL_SPLIT, Table, TableCommand, Toolbar, ToolbarAction, ToolbarRenderer, ToolbarStatus, ToolbarType, UndoRedoCommands, UndoRedoManager, VIDEO, Video, VideoCommand, ViewSource, XhtmlValidation, actionBegin, actionComplete, actionSuccess, afterImageDelete, afterKeyDown, afterMediaDelete, afterPasteCleanup, audioDelete, audioToolbarAction, autoResize, beforeDialogClose, beforeDialogOpen, beforeDropDownItemRender, beforeDropDownOpen, beforeFileUpload, beforeImageDrop, beforeImageUpload, beforePasteCleanup, beforeQuickToolbarOpen, bindCssClass, bindOnEnd, blockEmptyNodes, checkUndo, cleanupResizeElements, clearDialogObj, closeAudioDialog, closeImageDialog, closeLinkDialog, closeTableDialog, closeTooltip, closeVideoDialog, colorPickerChanged, contentBlur, contentChanged, contentFocus, contentscroll, conversionFactors, convertToBlob, count, createTable, created, decode, destroy, destroyTooltip, destroyed, dialogClose, dialogOpen, disableFullScreen, dispatchEvent, docClick, documentClickClosedBy, drop, dropDownSelect, dynamicModule, editAreaClick, editLink, emojiPicker, enableFullScreen, enterHandler, execCommandCallBack, executeGroup, expandPopupClick, fileRemoving, fileSelected, fileUploadFailed, fileUploadSuccess, fileUploading, focusChange, formatPainterClick, formatPainterDoubleClick, getCollection, getDefaultValue, getDropDownValue, getEditValue, getFormattedFontSize, getIndex, getLocaleFontFormat, getSelectedHtml, getTBarItemsIndex, getTextNodesUnder, getTooltipText, hasClass, hidePopup, htmlKeyConfig, htmlToolbarClick, iframeMouseDown, iframeResizeFactor, imageAlt, imageBreak, imageCaption, imageCenter, imageDelete, imageInline, imageLeft, imageLink, imageRemoving, imageResizeFactor, imageRight, imageSelected, imageSize, imageToolbarAction, imageUploadFailed, imageUploadSuccess, imageUploading, imgModule, initialEnd, initialLoad, inlineEmptyNodes, insertAudio, insertCompleted, insertImage, insertLink, insertVideo, isEditableValueEmpty, isIDevice, keyDown, keyUp, linkToolbarAction, listConversionFilters, load, markdownFormatTags, markdownKeyConfig, markdownListsTags, markdownSelectionTags, markdownToolbarClick, markerClassName, mentionRestrictKeys, modelChanged, mouseDown, mouseUp, onExport, onHandleFontsizeChange, onImport, onResize, openLink, pageYOffset, parseHtml, paste, pasteClean, pasteCleanupGroupingTags, popupHide, quickToolbarClose, quickToolbarOpen, readOnlyMode, redo, refreshBegin, renderFileManager, renderInlineToolbar, resizeInitialized, resizeStart, resizeStop, rtlMode, sanitizeHelper, scroll, selectAll, selectRange, selectionCommand, selectionRestore, selectionSave, selfClosingTags, setAttributes, setToolbarStatus, showAudioDialog, showColorPicker, showImageDialog, showLinkDialog, showTableDialog, showVideoDialog, sourceCode, sourceCodeMouseDown, statusCollection, supportedUnits, tableColorPickerChanged, tableModulekeyUp, tableToolbarAction, tableclass, toObjectLowerCase, toolbarClick, toolbarCreated, toolbarOpen, toolbarRefresh, toolbarRenderComplete, toolbarUpdated, unLink, undo, updateDropDownFontFormatLocale, updateSource, updateTbItemsStatus, updateTextNode, updateToolbarItem, updateUndoRedoStatus, updateValueOnIdle, updatedToolbarStatus, videoDelete, videoSize, videoToolbarAction, windowResize, xhtmlValidation };
40127
40311
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map