@syncfusion/ej2-richtexteditor 23.2.5 → 23.2.7

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 (38) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/ej2-richtexteditor.min.js +2 -2
  3. package/dist/ej2-richtexteditor.umd.min.js +2 -2
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +191 -55
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +191 -55
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/dist/global/ej2-richtexteditor.min.js +2 -2
  10. package/dist/global/ej2-richtexteditor.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +9 -9
  13. package/src/editor-manager/base/interface.d.ts +1 -0
  14. package/src/editor-manager/plugin/inserthtml.js +3 -1
  15. package/src/editor-manager/plugin/link.js +2 -0
  16. package/src/editor-manager/plugin/ms-word-clean-up.js +6 -2
  17. package/src/rich-text-editor/actions/enter-key.js +1 -1
  18. package/src/rich-text-editor/actions/html-editor.js +3 -0
  19. package/src/rich-text-editor/actions/paste-clean-up.js +4 -2
  20. package/src/rich-text-editor/actions/quick-toolbar.js +4 -1
  21. package/src/rich-text-editor/actions/toolbar.d.ts +0 -1
  22. package/src/rich-text-editor/actions/toolbar.js +0 -8
  23. package/src/rich-text-editor/base/classes.d.ts +5 -0
  24. package/src/rich-text-editor/base/classes.js +5 -0
  25. package/src/rich-text-editor/base/interface.d.ts +1 -0
  26. package/src/rich-text-editor/base/rich-text-editor.d.ts +12 -0
  27. package/src/rich-text-editor/base/rich-text-editor.js +49 -13
  28. package/src/rich-text-editor/models/default-locale.js +1 -0
  29. package/src/rich-text-editor/renderer/audio-module.js +0 -1
  30. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +1 -0
  31. package/src/rich-text-editor/renderer/dialog-renderer.js +11 -0
  32. package/src/rich-text-editor/renderer/image-module.js +2 -4
  33. package/src/rich-text-editor/renderer/link-module.js +2 -1
  34. package/src/rich-text-editor/renderer/table-module.d.ts +1 -0
  35. package/src/rich-text-editor/renderer/table-module.js +9 -1
  36. package/src/rich-text-editor/renderer/toolbar-renderer.js +79 -10
  37. package/src/rich-text-editor/renderer/video-module.js +1 -2
  38. package/src/rich-text-editor/renderer/view-source.js +9 -8
@@ -1365,6 +1365,11 @@ const CLS_RTE_TB_ENABLED = 'e-rte-toolbar-enabled';
1365
1365
  * @deprecated
1366
1366
  */
1367
1367
  const CLS_RTE_RES_WEST = 'e-south-west';
1368
+ /**
1369
+ * @hidden
1370
+ * @deprecated
1371
+ */
1372
+ const CLS_RTE_SOURCE_CODE_TXTAREA = 'e-rte-srctextarea';
1368
1373
 
1369
1374
  /**
1370
1375
  * Defines types of Render
@@ -2604,6 +2609,7 @@ let defaultLocale = {
2604
2609
  'emojiPickerTypeToFind': 'Type to find',
2605
2610
  'emojiPickerNoResultFound': 'No results found',
2606
2611
  'emojiPickerTrySomethingElse': 'Try something else',
2612
+ 'linkAriaLabel': 'Open in new window',
2607
2613
  };
2608
2614
  let toolsLocale = {
2609
2615
  'alignments': 'alignments',
@@ -3339,7 +3345,7 @@ class ToolbarRenderer {
3339
3345
  }
3340
3346
  destroyTooltip() {
3341
3347
  if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap')) && !isNullOrUndefined(document.querySelector(' [data-tooltip-id]'))) {
3342
- const tooltipTargetEle = document.querySelector('#' + (this.parent.element).id + ' [data-tooltip-id]');
3348
+ const tooltipTargetEle = this.parent.element.querySelector('[data-tooltip-id]');
3343
3349
  const event = new MouseEvent('mouseleave', { bubbles: true, cancelable: true });
3344
3350
  tooltipTargetEle.dispatchEvent(event);
3345
3351
  }
@@ -3499,17 +3505,86 @@ class ToolbarRenderer {
3499
3505
  return;
3500
3506
  }
3501
3507
  // eslint-disable-next-line
3502
- for (let index = 0; index < args.element.childNodes.length; index++) {
3503
- const divNode = this.parent.createElement('div');
3504
- divNode.innerHTML = dropDown.content.trim();
3505
- if (divNode.textContent.trim() !== ''
3506
- && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
3507
- if (!args.element.childNodes[index].classList.contains('e-active')) {
3508
- addClass([args.element.childNodes[index]], 'e-active');
3508
+ // Table styles dropdown preselect
3509
+ if (proxy.parent.editorMode !== 'Markdown') {
3510
+ const startNode = proxy.parent.getRange().startContainer.parentElement;
3511
+ const tableEle = startNode.closest('table');
3512
+ const trow = startNode.closest('tr');
3513
+ if (!isNullOrUndefined(tableEle) && tableEle.classList.contains('e-dashed-border')) {
3514
+ for (let index = 0; index < args.element.childNodes.length; index++) {
3515
+ if (args.element.childNodes[index].classList.contains('e-dashed-borders')) {
3516
+ addClass([args.element.childNodes[index]], 'e-active');
3517
+ }
3509
3518
  }
3510
3519
  }
3511
- else {
3512
- removeClass([args.element.childNodes[index]], 'e-active');
3520
+ else if (!isNullOrUndefined(tableEle) && !tableEle.classList.contains('e-dashed-border') && tableEle.classList.contains('e-alternate-rows') && window.getComputedStyle(trow).backgroundColor !== '') {
3521
+ for (let index = 0; index < args.element.childNodes.length; index++) {
3522
+ if (args.element.childNodes[index].classList.contains('e-alternate-rows')) {
3523
+ addClass([args.element.childNodes[index]], 'e-active');
3524
+ }
3525
+ }
3526
+ }
3527
+ //Alignments preselect
3528
+ let alignEle = proxy.parent.getRange().startContainer;
3529
+ while (alignEle !== proxy.parent.element.querySelector('.e-content') && !isNullOrUndefined(alignEle.parentElement)) {
3530
+ if (alignEle.nodeName === '#text') {
3531
+ alignEle = alignEle.parentElement;
3532
+ }
3533
+ const alignStyle = window.getComputedStyle(alignEle).textAlign;
3534
+ if (args.items[0].command === 'Alignments') {
3535
+ if ((args.items[0].text === 'Align Left' && (alignStyle === 'left') || alignStyle === 'start')) {
3536
+ addClass([args.element.childNodes[0]], 'e-active');
3537
+ break;
3538
+ }
3539
+ else if (args.items[1].text === 'Align Center' && alignStyle === 'center') {
3540
+ addClass([args.element.childNodes[1]], 'e-active');
3541
+ break;
3542
+ }
3543
+ else if (args.items[2].text === 'Align Right' && alignStyle === 'right') {
3544
+ addClass([args.element.childNodes[2]], 'e-active');
3545
+ break;
3546
+ }
3547
+ else if (args.items[3].text === 'Align Justify' && alignStyle === 'justify') {
3548
+ addClass([args.element.childNodes[3]], 'e-active');
3549
+ break;
3550
+ }
3551
+ }
3552
+ alignEle = alignEle.parentElement;
3553
+ }
3554
+ //image preselect
3555
+ const imageEle = startNode.closest('img') ? startNode.closest('img') : startNode.querySelector('img');
3556
+ if (args.items[0].command === 'Images') {
3557
+ if (!isNullOrUndefined(imageEle)) {
3558
+ let index;
3559
+ if (imageEle.classList.contains('e-imgleft') || imageEle.classList.contains('e-imginline')) {
3560
+ index = 0;
3561
+ }
3562
+ else if (imageEle.classList.contains('e-imgcenter') || imageEle.classList.contains('e-imgbreak')) {
3563
+ index = 1;
3564
+ }
3565
+ else if (imageEle.classList.contains('e-imgright')) {
3566
+ index = 2;
3567
+ }
3568
+ if (!isNullOrUndefined(args.element.childNodes[index])) {
3569
+ addClass([args.element.childNodes[index]], 'e-active');
3570
+ }
3571
+ }
3572
+ }
3573
+ //Formats preselect
3574
+ if (args.items[0].command === 'Formats') {
3575
+ for (let index = 0; index < args.element.childNodes.length; index++) {
3576
+ const divNode = this.parent.createElement('div');
3577
+ divNode.innerHTML = dropDown.content.trim();
3578
+ if (divNode.textContent.trim() !== ''
3579
+ && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
3580
+ if (!args.element.childNodes[index].classList.contains('e-active')) {
3581
+ addClass([args.element.childNodes[index]], 'e-active');
3582
+ }
3583
+ }
3584
+ else {
3585
+ removeClass([args.element.childNodes[index]], 'e-active');
3586
+ }
3587
+ }
3513
3588
  }
3514
3589
  }
3515
3590
  proxy.parent.notify(beforeDropDownOpen, args);
@@ -5347,12 +5422,6 @@ class Toolbar$2 {
5347
5422
  }
5348
5423
  }
5349
5424
  }
5350
- tbKeydownHandler(e) {
5351
- if (e.target.classList.contains('e-dropdown-btn') ||
5352
- e.target.getAttribute('id') === this.parent.getID() + '_toolbar_CreateTable') {
5353
- e.target.setAttribute('tabindex', '0');
5354
- }
5355
- }
5356
5425
  toolbarClickHandler(e) {
5357
5426
  const trg = closest(e.originalEvent.target, '.e-hor-nav');
5358
5427
  if (trg && this.parent.toolbarSettings.type === ToolbarType.Expand && !isNullOrUndefined(trg)) {
@@ -5382,11 +5451,9 @@ class Toolbar$2 {
5382
5451
  return;
5383
5452
  }
5384
5453
  EventHandler.add(this.tbElement, 'focusin', this.tbFocusHandler, this);
5385
- EventHandler.add(this.tbElement, 'keydown', this.tbKeydownHandler, this);
5386
5454
  }
5387
5455
  unWireEvents() {
5388
5456
  EventHandler.remove(this.tbElement, 'focusin', this.tbFocusHandler);
5389
- EventHandler.remove(this.tbElement, 'keydown', this.tbKeydownHandler);
5390
5457
  }
5391
5458
  addEventListener() {
5392
5459
  if (this.parent.isDestroyed) {
@@ -6599,7 +6666,7 @@ class QuickToolbar {
6599
6666
  * @deprecated
6600
6667
  */
6601
6668
  showInlineQTBar(x, y, target) {
6602
- if (this.parent.readonly || target.tagName.toLowerCase() === 'img') {
6669
+ if (isNullOrUndefined(this.parent) || this.parent.readonly || target.tagName.toLowerCase() === 'img') {
6603
6670
  return;
6604
6671
  }
6605
6672
  this.inlineQTBar.showPopup(x, y, target);
@@ -6967,6 +7034,9 @@ class QuickToolbar {
6967
7034
  this.parent.off(rtlMode, this.setRtl);
6968
7035
  this.parent.off(bindCssClass, this.setCssClass);
6969
7036
  this.parent.off(hidePopup, this.hideQuickToolbars);
7037
+ if (this.deBouncer) {
7038
+ clearTimeout(this.deBouncer);
7039
+ }
6970
7040
  }
6971
7041
  /**
6972
7042
  * Called internally if any of the property value changed.
@@ -13585,7 +13655,9 @@ class InsertHtml {
13585
13655
  static findDetachEmptyElem(element) {
13586
13656
  let removableElement;
13587
13657
  if (!isNullOrUndefined(element.parentElement)) {
13588
- if (element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true' &&
13658
+ const hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
13659
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
13660
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' && element.parentElement.contentEditable !== 'true' &&
13589
13661
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
13590
13662
  removableElement = this.findDetachEmptyElem(element.parentElement);
13591
13663
  }
@@ -13699,9 +13771,11 @@ class LinkCommand {
13699
13771
  }
13700
13772
  if (!isNullOrUndefined(e.item.target)) {
13701
13773
  anchorEle.setAttribute('target', e.item.target);
13774
+ anchorEle.setAttribute('aria-label', e.item.ariaLabel);
13702
13775
  }
13703
13776
  else {
13704
13777
  anchorEle.removeAttribute('target');
13778
+ anchorEle.removeAttribute('aria-label');
13705
13779
  }
13706
13780
  if (linkText === e.item.text) {
13707
13781
  e.item.selection.setSelectionText(this.parent.currentDocument, anchorEle, anchorEle, 1, 1);
@@ -17810,7 +17884,9 @@ class MsWordPaste {
17810
17884
  isNullOrUndefined(allElements[i].nextElementSibling)))) {
17811
17885
  const detachableElement = this.findDetachElem(allElements[i]);
17812
17886
  const brElement = createElement('br');
17813
- if (!isNullOrUndefined(detachableElement.parentElement)) {
17887
+ const hasNbsp = detachableElement.textContent.length > 0 && detachableElement.textContent.match(/\u00a0/g)
17888
+ && detachableElement.textContent.match(/\u00a0/g).length > 0;
17889
+ if (!hasNbsp && !isNullOrUndefined(detachableElement.parentElement)) {
17814
17890
  detachableElement.parentElement.insertBefore(brElement, detachableElement);
17815
17891
  detach(detachableElement);
17816
17892
  }
@@ -17849,7 +17925,9 @@ class MsWordPaste {
17849
17925
  findDetachEmptyElem(element) {
17850
17926
  let removableElement;
17851
17927
  if (!isNullOrUndefined(element.parentElement)) {
17852
- if (element.parentElement.textContent.trim() === '' &&
17928
+ const hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
17929
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
17930
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' &&
17853
17931
  element.parentElement.getAttribute('id') !== 'MSWord-Content' &&
17854
17932
  !(this.hasParentWithClass(element, 'MsoListParagraph')) &&
17855
17933
  isNullOrUndefined(element.parentElement.querySelector('img'))) {
@@ -20954,6 +21032,9 @@ class HtmlEditor {
20954
21032
  */
20955
21033
  onPropertyChanged(e) {
20956
21034
  // On property code change here
21035
+ if (!isNullOrUndefined(e) && !isNullOrUndefined(e.newProp.toolbarSettings) && !isNullOrUndefined(e.newProp.toolbarSettings.enable)) {
21036
+ this.toolbarUpdate = new HtmlToolbarStatus(this.parent);
21037
+ }
20957
21038
  if (!isNullOrUndefined(e.newProp.formatter)) {
20958
21039
  const editElement = this.contentRenderer.getEditPanel();
20959
21040
  const option = { undoRedoSteps: this.parent.undoRedoSteps,
@@ -21259,7 +21340,7 @@ class PasteCleanup {
21259
21340
  const popupEle = this.parent.createElement('div');
21260
21341
  this.parent.element.appendChild(popupEle);
21261
21342
  const contentEle = this.parent.createElement('input', {
21262
- id: this.parent.element.id + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21343
+ id: this.parent.getID() + '_upload', attrs: { type: 'File', name: 'UploadFiles' }
21263
21344
  });
21264
21345
  const offsetY = this.parent.iframeSettings.enable ? -50 : -90;
21265
21346
  this.popupObj = new Popup(popupEle, {
@@ -21879,7 +21960,9 @@ class PasteCleanup {
21879
21960
  findDetachEmptyElem(element) {
21880
21961
  let removableElement;
21881
21962
  if (!isNullOrUndefined(element.parentElement)) {
21882
- if (element.parentElement.textContent.trim() === '' &&
21963
+ const hasNbsp = element.parentElement.textContent.length > 0 && element.parentElement.textContent.match(/\u00a0/g)
21964
+ && element.parentElement.textContent.match(/\u00a0/g).length > 0;
21965
+ if (!hasNbsp && element.parentElement.textContent.trim() === '' &&
21883
21966
  element.parentElement.getAttribute('class') !== 'pasteContent') {
21884
21967
  removableElement = this.findDetachEmptyElem(element.parentElement);
21885
21968
  }
@@ -24041,6 +24124,7 @@ class Link {
24041
24124
  linkTitle = linkEle.querySelector('.e-rte-linkTitle').value;
24042
24125
  }
24043
24126
  const target = (this.selfLink.checkBoxObj.checked) ? '_blank' : null;
24127
+ const linkLabel = (this.selfLink.checkBoxObj.checked) ? this.selfLink.i10n.getConstant('linkAriaLabel') : null;
24044
24128
  if (linkUrl === '') {
24045
24129
  this.selfLink.checkUrl(true);
24046
24130
  return;
@@ -24071,7 +24155,7 @@ class Link {
24071
24155
  this.selectParent = proxy.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
24072
24156
  }
24073
24157
  const value = {
24074
- url: linkUrl, text: linkText, title: linkTitle, target: target,
24158
+ url: linkUrl, text: linkText, title: linkTitle, target: target, ariaLabel: linkLabel,
24075
24159
  selection: this.selection, selectParent: this.selectParent
24076
24160
  };
24077
24161
  if (document.body.contains(proxy.dialogObj.element)) {
@@ -25215,7 +25299,6 @@ class Image$1 {
25215
25299
  width: '290px',
25216
25300
  header: this.parent.localeObj.getConstant('imageInsertLinkHeader'),
25217
25301
  content: linkWrap,
25218
- position: { X: 'center', Y: 'center' },
25219
25302
  buttons: [{
25220
25303
  // eslint-disable-next-line
25221
25304
  click: (e) => {
@@ -25264,7 +25347,7 @@ class Image$1 {
25264
25347
  alt: inputAlt
25265
25348
  };
25266
25349
  this.dialogObj.setProperties({
25267
- height: 'inherit', width: '290px', header: altHeader, content: altWrap, position: { X: 'center', Y: 'center' },
25350
+ height: 'inherit', width: '290px', header: altHeader, content: altWrap,
25268
25351
  buttons: [{
25269
25352
  // eslint-disable-next-line
25270
25353
  click: (e) => {
@@ -25490,7 +25573,7 @@ class Image$1 {
25490
25573
  const dialogContent = this.imgsizeInput(e);
25491
25574
  const selectObj = { args: e.args, selfImage: this, selection: e.selection, selectNode: e.selectNode };
25492
25575
  this.dialogObj.setProperties({
25493
- height: (Browser.isDevice) ? '300px' : 'inherit', width: '290px', header: imgSizeHeader, content: dialogContent, position: { X: 'center', Y: 'center' },
25576
+ height: (Browser.isDevice) ? '300px' : 'inherit', width: '290px', header: imgSizeHeader, content: dialogContent,
25494
25577
  buttons: [{
25495
25578
  // eslint-disable-next-line
25496
25579
  click: (e) => {
@@ -25555,7 +25638,6 @@ class Image$1 {
25555
25638
  enableRtl: this.parent.enableRtl,
25556
25639
  locale: this.parent.locale,
25557
25640
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
25558
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
25559
25641
  isModal: Browser.isDevice,
25560
25642
  buttons: [{
25561
25643
  click: this.insertImageUrl.bind(selectObj),
@@ -27036,7 +27118,6 @@ class Audio {
27036
27118
  enableRtl: this.parent.enableRtl,
27037
27119
  locale: this.parent.locale,
27038
27120
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
27039
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
27040
27121
  isModal: Browser.isDevice,
27041
27122
  buttons: [{
27042
27123
  click: this.insertAudioUrl.bind(selectObj),
@@ -27465,7 +27546,7 @@ class Video {
27465
27546
  const dialogContent = this.vidsizeInput(e);
27466
27547
  const selectObj = { args: e.args, selfVideo: this, selection: e.selection, selectNode: e.selectNode };
27467
27548
  this.dialogObj.setProperties({
27468
- height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent, position: { X: 'center', Y: 'center' },
27549
+ height: 'inherit', width: '290px', header: vidSizeHeader, content: dialogContent,
27469
27550
  buttons: [{
27470
27551
  // eslint-disable-next-line
27471
27552
  click: (e) => {
@@ -28365,7 +28446,6 @@ class Video {
28365
28446
  enableRtl: this.parent.enableRtl,
28366
28447
  locale: this.parent.locale,
28367
28448
  showCloseIcon: true, closeOnEscape: true, width: (Browser.isDevice) ? '290px' : '340px',
28368
- position: { X: 'center', Y: (Browser.isDevice) ? 'center' : 'top' },
28369
28449
  isModal: Browser.isDevice,
28370
28450
  buttons: [{
28371
28451
  click: this.insertVideoUrl.bind(selectObj),
@@ -28766,7 +28846,7 @@ class ViewSource {
28766
28846
  this.parent.formatter.editorManager.observer.off(KEY_DOWN_HANDLER, this.onKeyDown);
28767
28847
  }
28768
28848
  getSourceCode() {
28769
- return this.parent.createElement('textarea', { className: 'e-rte-srctextarea' + ' ' + this.parent.cssClass });
28849
+ return this.parent.createElement('textarea', { className: CLS_RTE_SOURCE_CODE_TXTAREA + ' ' + this.parent.cssClass });
28770
28850
  }
28771
28851
  wireEvent(element) {
28772
28852
  this.keyboardModule = new KeyboardEvents$1(element, {
@@ -28800,9 +28880,10 @@ class ViewSource {
28800
28880
  event.preventDefault();
28801
28881
  break;
28802
28882
  case 'toolbar-focus':
28803
- if (this.parent.toolbarSettings.enable) {
28804
- const selector = '.e-toolbar-item[title] [tabindex]';
28805
- this.parent.toolbarModule.baseToolbar.toolbarObj.element.querySelector(selector).focus();
28883
+ if (this.parent.toolbarSettings.enable && this.parent.getToolbarElement()) {
28884
+ const firstActiveItem = this.parent.getToolbarElement().querySelector('.e-toolbar-item:not(.e-overlay)[title]');
28885
+ firstActiveItem.firstElementChild.removeAttribute('tabindex');
28886
+ firstActiveItem.firstElementChild.focus();
28806
28887
  }
28807
28888
  break;
28808
28889
  }
@@ -28844,13 +28925,13 @@ class ViewSource {
28844
28925
  this.parent.updateValueData();
28845
28926
  if (this.parent.iframeSettings.enable) {
28846
28927
  let rteContent;
28847
- if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.element.id + '_source-view'))) {
28928
+ if (isNullOrUndefined(this.parent.element.querySelector('#' + this.parent.getID() + '_source-view'))) {
28848
28929
  rteContent = this.parent.createElement('div', {
28849
- className: 'e-source-content', id: this.parent.element.id + '_source-view'
28930
+ className: 'e-source-content', id: this.parent.getID() + '_source-view'
28850
28931
  });
28851
28932
  }
28852
28933
  else {
28853
- rteContent = this.parent.element.querySelector('#' + this.parent.element.id + '_source-view');
28934
+ rteContent = this.parent.element.querySelector('#' + this.parent.getID() + '_source-view');
28854
28935
  }
28855
28936
  rteContent.appendChild(this.previewElement);
28856
28937
  this.parent.element.appendChild(rteContent);
@@ -29030,6 +29111,7 @@ class Table {
29030
29111
  this.parent.on(tableToolbarAction, this.onToolbarAction, this);
29031
29112
  this.parent.on(dropDownSelect, this.dropdownSelect, this);
29032
29113
  this.parent.on(keyDown, this.keyDown, this);
29114
+ this.parent.on(keyUp, this.keyUp, this);
29033
29115
  this.parent.on(mouseUp, this.selectionTable, this);
29034
29116
  this.parent.on(tableModulekeyUp, this.tableModulekeyUp, this);
29035
29117
  this.parent.on(bindCssClass, this.setCssClass, this);
@@ -29052,6 +29134,7 @@ class Table {
29052
29134
  this.parent.off(dropDownSelect, this.dropdownSelect);
29053
29135
  this.parent.off(mouseDown, this.cellSelect);
29054
29136
  this.parent.off(tableColorPickerChanged, this.setBGColor);
29137
+ this.parent.off(keyUp, this.keyUp);
29055
29138
  this.parent.off(keyDown, this.keyDown);
29056
29139
  this.parent.off(mouseUp, this.selectionTable);
29057
29140
  this.parent.off(tableModulekeyUp, this.tableModulekeyUp);
@@ -29156,6 +29239,12 @@ class Table {
29156
29239
  this.parent.formatter.process(this.parent, e, e, { selection: selectCell, subCommand: e.item.subCommand });
29157
29240
  this.hideTableQuickToolbar();
29158
29241
  }
29242
+ keyUp(e) {
29243
+ const target = e.args.target;
29244
+ if (e.args.key.toLocaleLowerCase() === 'escape' && target && target.classList && (this.popupObj && !closest(target, '[id=' + "'" + this.popupObj.element.id + "'" + ']')) && this.popupObj) {
29245
+ this.popupObj.hide();
29246
+ }
29247
+ }
29159
29248
  keyDown(e) {
29160
29249
  const event = e.args;
29161
29250
  // eslint-disable-next-line
@@ -30337,7 +30426,7 @@ class Table {
30337
30426
  value: 3,
30338
30427
  placeholder: tableRow,
30339
30428
  floatLabelType: 'Auto',
30340
- max: 50,
30429
+ max: 1000,
30341
30430
  enableRtl: this.parent.enableRtl, locale: this.parent.locale,
30342
30431
  cssClass: this.parent.cssClass
30343
30432
  });
@@ -30557,6 +30646,7 @@ class DialogRenderer {
30557
30646
  let dlgObj;
30558
30647
  e.beforeOpen = this.beforeOpen.bind(this);
30559
30648
  e.open = this.open.bind(this);
30649
+ e.position = { X: 'center', Y: this.getDialogPosition() };
30560
30650
  if (isNullOrUndefined(e.close)) {
30561
30651
  e.close = this.close.bind(this);
30562
30652
  }
@@ -30601,6 +30691,16 @@ class DialogRenderer {
30601
30691
  }
30602
30692
  });
30603
30693
  }
30694
+ getDialogPosition() {
30695
+ let distanceFromVisibleTop = this.parent.element.getBoundingClientRect().top;
30696
+ if (distanceFromVisibleTop < 0) {
30697
+ distanceFromVisibleTop = Math.abs(distanceFromVisibleTop);
30698
+ return distanceFromVisibleTop.toString();
30699
+ }
30700
+ else {
30701
+ return 'top';
30702
+ }
30703
+ }
30604
30704
  /**
30605
30705
  * dialog close method
30606
30706
  *
@@ -31653,7 +31753,7 @@ class EnterKeyAction {
31653
31753
  let newElem;
31654
31754
  const outerBRElem = this.parent.createElement('br');
31655
31755
  if (this.range.startOffset === 0 && this.range.endOffset === 0 &&
31656
- !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR') {
31756
+ !isNullOrUndefined(currentParent.previousSibling) && currentParent.previousSibling.nodeName === 'BR' && currentParent.nodeName !== 'P' && currentParent.nodeName !== 'DIV') {
31657
31757
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
31658
31758
  newElem = this.parent.formatter.editorManager.nodeCutter.SplitNode(this.range, currentParent, false).cloneNode(true);
31659
31759
  this.parent.formatter.editorManager.domNode.insertAfter(outerBRElem, currentParent);
@@ -32456,10 +32556,10 @@ let RichTextEditor = class RichTextEditor extends Component {
32456
32556
  }
32457
32557
  switch (e.action) {
32458
32558
  case 'toolbar-focus':
32459
- if (this.toolbarSettings.enable) {
32460
- // eslint-disable-next-line
32461
- let selector = '.e-toolbar-item[title] [tabindex]';
32462
- this.toolbarModule.baseToolbar.toolbarObj.element.querySelector(selector).focus();
32559
+ if (this.toolbarSettings.enable && this.getToolbarElement()) {
32560
+ const firstActiveItem = this.getToolbarElement().querySelector('.e-toolbar-item:not(.e-overlay)[title]');
32561
+ firstActiveItem.firstElementChild.removeAttribute('tabindex');
32562
+ firstActiveItem.firstElementChild.focus();
32463
32563
  }
32464
32564
  break;
32465
32565
  case 'escape':
@@ -33818,15 +33918,10 @@ let RichTextEditor = class RichTextEditor extends Component {
33818
33918
  }
33819
33919
  EventHandler.add(document, 'mousedown', this.onDocumentClick, this);
33820
33920
  }
33821
- if (!isNullOrUndefined(this.getToolbarElement())) {
33822
- const toolbarItem = this.getToolbarElement().querySelectorAll('input,select,button,a,[tabindex]');
33823
- for (let i = 0; i < toolbarItem.length; i++) {
33824
- if ((!toolbarItem[i].classList.contains('e-rte-dropdown-btn') &&
33825
- !toolbarItem[i].classList.contains('e-insert-table-btn')) &&
33826
- (!toolbarItem[i].hasAttribute('tabindex') ||
33827
- toolbarItem[i].getAttribute('tabindex') !== '-1')) {
33828
- toolbarItem[i].setAttribute('tabindex', '-1');
33829
- }
33921
+ if (!this.readonly) {
33922
+ const currentFocus = this.getCurrentFocus(e);
33923
+ if (currentFocus === 'editArea' || currentFocus === 'textArea' || currentFocus === 'sourceCode') {
33924
+ this.resetToolbarTabIndex();
33830
33925
  }
33831
33926
  }
33832
33927
  }
@@ -33943,6 +34038,9 @@ let RichTextEditor = class RichTextEditor extends Component {
33943
34038
  else {
33944
34039
  this.isRTE = true;
33945
34040
  }
34041
+ if (!this.readonly && this.getCurrentFocus(e) === 'outside') {
34042
+ this.resetToolbarTabIndex();
34043
+ }
33946
34044
  }
33947
34045
  /**
33948
34046
  * invokeChangeEvent method
@@ -34194,6 +34292,44 @@ let RichTextEditor = class RichTextEditor extends Component {
34194
34292
  }
34195
34293
  this.unWireScrollElementsEvents();
34196
34294
  }
34295
+ /**
34296
+ *
34297
+ * @param e Focus event
34298
+ * @returns string Returns the current focus either `editArea` or `toolbar` or `textArea` or `sourceCode` or `outside` of the RichTextEditor.
34299
+ * @hidden
34300
+ */
34301
+ getCurrentFocus(e) {
34302
+ if (e.target === this.inputElement && document.activeElement === this.inputElement) {
34303
+ return 'editArea';
34304
+ }
34305
+ else if (e.target === this.getToolbarElement() || (!isNullOrUndefined(e.relatedTarget) && closest(e.relatedTarget, '.e-rte-toolbar') === this.getToolbarElement())) {
34306
+ return 'toolbar';
34307
+ }
34308
+ else if (e.target === this.valueContainer && document.activeElement === this.valueContainer) {
34309
+ return 'textArea';
34310
+ }
34311
+ else if (!isNullOrUndefined(e.target) && e.target.classList.contains(CLS_RTE_SOURCE_CODE_TXTAREA) && document.activeElement === e.target) {
34312
+ return 'sourceCode';
34313
+ }
34314
+ return 'outside';
34315
+ }
34316
+ /**
34317
+ * @param {FocusEvent} e - specifies the event.
34318
+ * @hidden
34319
+ */
34320
+ resetToolbarTabIndex() {
34321
+ if (this.getToolbarElement()) {
34322
+ const toolbarItem = this.getToolbarElement().querySelectorAll('input,select,button,a,[tabindex]');
34323
+ for (let i = 0; i < toolbarItem.length; i++) {
34324
+ if ((!toolbarItem[i].classList.contains('e-rte-dropdown-btn') &&
34325
+ !toolbarItem[i].classList.contains('e-insert-table-btn')) &&
34326
+ (!toolbarItem[i].hasAttribute('tabindex') ||
34327
+ toolbarItem[i].getAttribute('tabindex') !== '-1')) {
34328
+ toolbarItem[i].setAttribute('tabindex', '-1');
34329
+ }
34330
+ }
34331
+ }
34332
+ }
34197
34333
  };
34198
34334
  __decorate$1([
34199
34335
  Complex({}, ToolbarSettings$1)
@@ -34497,5 +34633,5 @@ RichTextEditor = __decorate$1([
34497
34633
  * Rich Text Editor component exported items
34498
34634
  */
34499
34635
 
34500
- export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image$1 as Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, maximizeMinimizeClick, hidePopup, blockEmptyNodes, inlineEmptyNodes, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_TEXT_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_AUD_FOCUS, CLS_VID_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, CLS_RTE_RES_WEST, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, AUDIO, VIDEO, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, SELF_CLOSING_TAGS, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS };
34636
+ export { Toolbar$2 as Toolbar, KeyboardEvents$1 as KeyboardEvents, BaseToolbar, BaseQuickToolbar, QuickToolbar, Count, ColorPickerInput, MarkdownToolbarStatus, ExecCommandCallBack, ToolbarAction, MarkdownEditor, HtmlEditor, PasteCleanup, Resize, DropDownButtons, FileManager$1 as FileManager, FullScreen, setAttributes, HtmlToolbarStatus, XhtmlValidation, FormatPainter, EmojiPicker, HTMLFormatter, Formatter, MarkdownFormatter, ContentRender, Render, ToolbarRenderer, Link, Image$1 as Image, Audio, Video, ViewSource, Table, DialogRenderer, IframeContentRender, MarkdownRender, PopupRenderer, RichTextEditor, RenderType, ToolbarType, DialogType, executeGroup, created, destroyed, tableclass, load, initialLoad, contentChanged, initialEnd, iframeMouseDown, destroy, toolbarClick, toolbarRefresh, refreshBegin, toolbarUpdated, bindOnEnd, renderColorPicker, htmlToolbarClick, markdownToolbarClick, destroyColorPicker, modelChanged, tableModulekeyUp, keyUp, keyDown, mouseUp, toolbarCreated, toolbarRenderComplete, enableFullScreen, disableFullScreen, dropDownSelect, beforeDropDownItemRender, execCommandCallBack, imageToolbarAction, audioToolbarAction, videoToolbarAction, linkToolbarAction, windowResize, resizeStart, onResize, resizeStop, undo, redo, insertLink, unLink, editLink, openLink, actionBegin, actionComplete, updatedToolbarStatus, actionSuccess, updateToolbarItem, insertImage, insertAudio, insertVideo, insertCompleted, imageLeft, imageRight, imageCenter, imageBreak, imageInline, imageLink, imageAlt, imageDelete, audioDelete, videoDelete, imageCaption, imageSize, videoSize, sourceCode, updateSource, toolbarOpen, beforeDropDownOpen, selectionSave, selectionRestore, expandPopupClick, count, contentFocus, contentBlur, mouseDown, sourceCodeMouseDown, editAreaClick, scroll, contentscroll, colorPickerChanged, tableColorPickerChanged, focusChange, selectAll$1 as selectAll, selectRange, getSelectedHtml, renderInlineToolbar, paste, imgModule, rtlMode, createTable, docClick, tableToolbarAction, checkUndo, readOnlyMode, moduleDestroy, pasteClean, enterHandler, beforeDialogOpen, clearDialogObj, dialogOpen, beforeDialogClose, dialogClose, beforeQuickToolbarOpen, quickToolbarOpen, quickToolbarClose, popupHide, imageSelected, imageUploading, imageUploadSuccess, imageUploadFailed, imageRemoving, fileSelected, fileUploading, fileUploadSuccess, fileUploadFailed, fileRemoving, afterImageDelete, afterMediaDelete, drop, xhtmlValidation, beforeImageUpload, beforeFileUpload, resizeInitialized, renderFileManager, beforeImageDrop, dynamicModule, beforePasteCleanup, afterPasteCleanup, updateTbItemsStatus, showLinkDialog, closeLinkDialog, showImageDialog, showAudioDialog, showVideoDialog, closeImageDialog, closeAudioDialog, closeVideoDialog, showTableDialog, closeTableDialog, bindCssClass, formatPainterClick, formatPainterDoubleClick, emojiPicker, maximizeMinimizeClick, hidePopup, blockEmptyNodes, inlineEmptyNodes, CLS_RTE, CLS_RTL, CLS_CONTENT, CLS_DISABLED, CLS_SCRIPT_SHEET, CLS_STYLE_SHEET, CLS_TOOLBAR, CLS_TB_FIXED, CLS_TB_FLOAT, CLS_TB_ABS_FLOAT, CLS_INLINE, CLS_TB_INLINE, CLS_RTE_EXPAND_TB, CLS_FULL_SCREEN, CLS_QUICK_TB, CLS_POP, CLS_TB_STATIC, CLS_QUICK_POP, CLS_QUICK_DROPDOWN, CLS_IMAGE_POP, CLS_TEXT_POP, CLS_INLINE_POP, CLS_INLINE_DROPDOWN, CLS_DROPDOWN_POPUP, CLS_DROPDOWN_ICONS, CLS_DROPDOWN_ITEMS, CLS_DROPDOWN_BTN, CLS_RTE_CONTENT, CLS_TB_ITEM, CLS_TB_EXTENDED, CLS_TB_WRAP, CLS_POPUP, CLS_SEPARATOR, CLS_MINIMIZE, CLS_MAXIMIZE, CLS_BACK, CLS_SHOW, CLS_HIDE, CLS_VISIBLE, CLS_FOCUS, CLS_RM_WHITE_SPACE, CLS_IMGRIGHT, CLS_IMGLEFT, CLS_IMGCENTER, CLS_IMGBREAK, CLS_AUDIOBREAK, CLS_CLICKELEM, CLS_VID_CLICK_ELEM, CLS_AUDIOWRAP, CLS_VIDEOWRAP, CLS_VIDEOBREAK, CLS_CAPTION, CLS_RTE_CAPTION, CLS_CAPINLINE, CLS_IMGINLINE, CLS_AUDIOINLINE, CLS_VIDEOINLINE, CLS_COUNT, CLS_WARNING, CLS_ERROR, CLS_ICONS, CLS_ACTIVE, CLS_EXPAND_OPEN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_HR_SEPARATOR, CLS_TB_IOS_FIX, CLS_LIST_PRIMARY_CONTENT, CLS_NUMBERFORMATLIST_TB_BTN, CLS_BULLETFORMATLIST_TB_BTN, CLS_FORMATS_TB_BTN, CLS_FONT_NAME_TB_BTN, CLS_FONT_SIZE_TB_BTN, CLS_ALIGN_TB_BTN, CLS_FONT_COLOR_TARGET, CLS_BACKGROUND_COLOR_TARGET, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_RTE_READONLY, CLS_TABLE_SEL, CLS_TB_DASH_BOR, CLS_TB_ALT_BOR, CLS_TB_COL_RES, CLS_TB_ROW_RES, CLS_TB_BOX_RES, CLS_RTE_HIDDEN, CLS_RTE_PASTE_KEEP_FORMAT, CLS_RTE_PASTE_REMOVE_FORMAT, CLS_RTE_PASTE_PLAIN_FORMAT, CLS_RTE_PASTE_OK, CLS_RTE_PASTE_CANCEL, CLS_RTE_DIALOG_MIN_HEIGHT, CLS_RTE_RES_HANDLE, CLS_RTE_RES_EAST, CLS_RTE_IMAGE, CLS_RESIZE, CLS_IMG_FOCUS, CLS_AUD_FOCUS, CLS_VID_FOCUS, CLS_RTE_DRAG_IMAGE, CLS_RTE_UPLOAD_POPUP, CLS_POPUP_OPEN, CLS_IMG_RESIZE, CLS_DROPAREA, CLS_IMG_INNER, CLS_UPLOAD_FILES, CLS_RTE_DIALOG_UPLOAD, CLS_RTE_RES_CNT, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_TABLE, CLS_TABLE_BORDER, CLS_RTE_TABLE_RESIZE, CLS_RTE_FIXED_TB_EXPAND, CLS_RTE_TB_ENABLED, CLS_RTE_RES_WEST, CLS_RTE_SOURCE_CODE_TXTAREA, getIndex, hasClass, getDropDownValue, isIDevice, getFormattedFontSize, pageYOffset, getTooltipText, setToolbarStatus, getCollection, getTBarItemsIndex, updateUndoRedoStatus, dispatchEvent, parseHtml, getTextNodesUnder, toObjectLowerCase, getEditValue, updateTextNode, getDefaultValue, isEditableValueEmpty, decode, sanitizeHelper, convertToBlob, getLocaleFontFormat, updateDropDownFontFormatLocale, ServiceLocator, RendererFactory, EditorManager, IMAGE, AUDIO, VIDEO, TABLE, LINK, INSERT_ROW, INSERT_COLUMN, DELETEROW, DELETECOLUMN, REMOVETABLE, TABLEHEADER, TABLE_VERTICAL_ALIGN, TABLE_MERGE, TABLE_VERTICAL_SPLIT, TABLE_HORIZONTAL_SPLIT, TABLE_MOVE, ALIGNMENT_TYPE, INDENT_TYPE, DEFAULT_TAG, BLOCK_TAGS, IGNORE_BLOCK_TAGS, TABLE_BLOCK_TAGS, SELECTION_TYPE, INSERTHTML_TYPE, INSERT_TEXT_TYPE, CLEAR_TYPE, SELF_CLOSING_TAGS, CLASS_IMAGE_RIGHT, CLASS_IMAGE_LEFT, CLASS_IMAGE_CENTER, CLASS_VIDEO_RIGHT, CLASS_VIDEO_LEFT, CLASS_VIDEO_CENTER, CLASS_IMAGE_BREAK, CLASS_AUDIO_BREAK, CLASS_VIDEO_BREAK, CLASS_CAPTION, CLASS_RTE_CAPTION, CLASS_CAPTION_INLINE, CLASS_IMAGE_INLINE, CLASS_AUDIO_INLINE, CLASS_CLICK_ELEM, CLASS_VIDEO_CLICK_ELEM, CLASS_AUDIO, CLASS_VIDEO, CLASS_AUDIO_WRAP, CLASS_VIDEO_WRAP, CLASS_EMBED_VIDEO_WRAP, CLASS_AUDIO_FOCUS, CLASS_VIDEO_FOCUS, CLASS_VIDEO_INLINE, Lists, markerClassName, DOMNode, Alignments, Indents, Formats, LinkCommand, InsertMethods, InsertTextExec, InsertHtmlExec, InsertHtml, IsFormatted, MsWordPaste, NodeCutter, ImageCommand, AudioCommand, VideoCommand, SelectionCommands, SelectionBasedExec, ClearFormatExec, UndoRedoManager, TableCommand, statusCollection, ToolbarStatus, FormatPainterActions, EmojiPickerAction, NodeSelection, MarkdownParser, LISTS_COMMAND, selectionCommand, LINK_COMMAND, CLEAR_COMMAND, MD_TABLE, INSERT_TEXT_COMMAND, ClearFormat, MDLists, MDFormats, MarkdownSelection, UndoRedoCommands, MDSelectionFormats, MDLink, MDTable, markdownFormatTags, markdownSelectionTags, markdownListsTags, htmlKeyConfig, markdownKeyConfig, pasteCleanupGroupingTags, listConversionFilters, selfClosingTags, KEY_DOWN, ACTION, FORMAT_TYPE, KEY_DOWN_HANDLER, LIST_TYPE, KEY_UP_HANDLER, KEY_UP, MODEL_CHANGED_PLUGIN, MODEL_CHANGED, MS_WORD_CLEANUP_PLUGIN, MS_WORD_CLEANUP, ON_BEGIN, SPACE_ACTION, FORMAT_PAINTER_ACTIONS, EMOJI_PICKER_ACTIONS };
34501
34637
  //# sourceMappingURL=ej2-richtexteditor.es2015.js.map