@syncfusion/ej2-richtexteditor 24.1.46 → 24.2.3

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 (116) hide show
  1. package/CHANGELOG.md +22 -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 +760 -168
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +769 -167
  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 +12 -12
  13. package/src/common/constant.d.ts +6 -0
  14. package/src/common/constant.js +6 -0
  15. package/src/common/util.js +31 -20
  16. package/src/editor-manager/base/constant.d.ts +6 -0
  17. package/src/editor-manager/base/constant.js +6 -0
  18. package/src/editor-manager/base/editor-manager.d.ts +5 -0
  19. package/src/editor-manager/base/editor-manager.js +59 -0
  20. package/src/editor-manager/base/interface.d.ts +8 -0
  21. package/src/editor-manager/plugin/dom-node.js +3 -1
  22. package/src/editor-manager/plugin/format-painter-actions.js +1 -1
  23. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +2 -0
  24. package/src/editor-manager/plugin/ms-word-clean-up.js +39 -10
  25. package/src/editor-manager/plugin/selection-commands.js +16 -0
  26. package/src/editor-manager/plugin/table.d.ts +0 -1
  27. package/src/editor-manager/plugin/table.js +14 -26
  28. package/src/editor-manager/plugin/undo.d.ts +1 -0
  29. package/src/editor-manager/plugin/undo.js +21 -1
  30. package/src/rich-text-editor/actions/base-quick-toolbar.js +3 -0
  31. package/src/rich-text-editor/actions/base-toolbar.js +8 -4
  32. package/src/rich-text-editor/actions/count.js +1 -1
  33. package/src/rich-text-editor/actions/dropdown-buttons.js +21 -2
  34. package/src/rich-text-editor/actions/emoji-picker.js +1 -1
  35. package/src/rich-text-editor/actions/full-screen.js +1 -0
  36. package/src/rich-text-editor/actions/html-editor.d.ts +2 -0
  37. package/src/rich-text-editor/actions/html-editor.js +88 -4
  38. package/src/rich-text-editor/actions/keyboard.js +3 -1
  39. package/src/rich-text-editor/actions/paste-clean-up.d.ts +1 -0
  40. package/src/rich-text-editor/actions/paste-clean-up.js +32 -4
  41. package/src/rich-text-editor/actions/toolbar.d.ts +2 -1
  42. package/src/rich-text-editor/base/constant.d.ts +30 -0
  43. package/src/rich-text-editor/base/constant.js +199 -0
  44. package/src/rich-text-editor/base/interface.d.ts +7 -1
  45. package/src/rich-text-editor/base/rich-text-editor.d.ts +1 -0
  46. package/src/rich-text-editor/base/rich-text-editor.js +33 -61
  47. package/src/rich-text-editor/base/util.d.ts +4 -0
  48. package/src/rich-text-editor/base/util.js +35 -1
  49. package/src/rich-text-editor/formatter/formatter.js +15 -4
  50. package/src/rich-text-editor/models/default-locale.js +12 -12
  51. package/src/rich-text-editor/models/items.js +2 -2
  52. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -0
  53. package/src/rich-text-editor/renderer/audio-module.js +13 -0
  54. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -0
  55. package/src/rich-text-editor/renderer/dialog-renderer.js +7 -0
  56. package/src/rich-text-editor/renderer/image-module.d.ts +1 -0
  57. package/src/rich-text-editor/renderer/image-module.js +20 -2
  58. package/src/rich-text-editor/renderer/link-module.js +10 -1
  59. package/src/rich-text-editor/renderer/table-module.d.ts +2 -0
  60. package/src/rich-text-editor/renderer/table-module.js +22 -2
  61. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +1 -0
  62. package/src/rich-text-editor/renderer/toolbar-renderer.js +25 -3
  63. package/src/rich-text-editor/renderer/video-module.d.ts +1 -0
  64. package/src/rich-text-editor/renderer/video-module.js +21 -4
  65. package/src/rich-text-editor/renderer/view-source.d.ts +1 -0
  66. package/src/rich-text-editor/renderer/view-source.js +5 -0
  67. package/styles/bootstrap-dark.css +49 -12
  68. package/styles/bootstrap.css +49 -12
  69. package/styles/bootstrap4.css +49 -12
  70. package/styles/bootstrap5-dark.css +49 -12
  71. package/styles/bootstrap5.css +49 -12
  72. package/styles/fabric-dark.css +49 -12
  73. package/styles/fabric.css +49 -12
  74. package/styles/fluent-dark.css +49 -12
  75. package/styles/fluent.css +49 -12
  76. package/styles/highcontrast-light.css +49 -12
  77. package/styles/highcontrast.css +49 -12
  78. package/styles/material-dark.css +49 -12
  79. package/styles/material.css +49 -12
  80. package/styles/material3-dark.css +56 -19
  81. package/styles/material3.css +56 -19
  82. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +1 -0
  83. package/styles/rich-text-editor/_bootstrap-definition.scss +1 -0
  84. package/styles/rich-text-editor/_bootstrap4-definition.scss +1 -0
  85. package/styles/rich-text-editor/_bootstrap5-definition.scss +2 -1
  86. package/styles/rich-text-editor/_fabric-dark-definition.scss +1 -0
  87. package/styles/rich-text-editor/_fabric-definition.scss +1 -0
  88. package/styles/rich-text-editor/_fluent-definition.scss +2 -1
  89. package/styles/rich-text-editor/_fusionnew-definition.scss +2 -1
  90. package/styles/rich-text-editor/_highcontrast-definition.scss +1 -0
  91. package/styles/rich-text-editor/_highcontrast-light-definition.scss +1 -0
  92. package/styles/rich-text-editor/_layout.scss +40 -5
  93. package/styles/rich-text-editor/_material-dark-definition.scss +1 -0
  94. package/styles/rich-text-editor/_material-definition.scss +1 -0
  95. package/styles/rich-text-editor/_material3-definition.scss +9 -8
  96. package/styles/rich-text-editor/_tailwind-definition.scss +2 -1
  97. package/styles/rich-text-editor/_theme.scss +9 -5
  98. package/styles/rich-text-editor/bootstrap-dark.css +49 -12
  99. package/styles/rich-text-editor/bootstrap.css +49 -12
  100. package/styles/rich-text-editor/bootstrap4.css +49 -12
  101. package/styles/rich-text-editor/bootstrap5-dark.css +49 -12
  102. package/styles/rich-text-editor/bootstrap5.css +49 -12
  103. package/styles/rich-text-editor/fabric-dark.css +49 -12
  104. package/styles/rich-text-editor/fabric.css +49 -12
  105. package/styles/rich-text-editor/fluent-dark.css +49 -12
  106. package/styles/rich-text-editor/fluent.css +49 -12
  107. package/styles/rich-text-editor/highcontrast-light.css +49 -12
  108. package/styles/rich-text-editor/highcontrast.css +49 -12
  109. package/styles/rich-text-editor/material-dark.css +49 -12
  110. package/styles/rich-text-editor/material.css +49 -12
  111. package/styles/rich-text-editor/material3-dark.css +56 -19
  112. package/styles/rich-text-editor/material3.css +56 -19
  113. package/styles/rich-text-editor/tailwind-dark.css +49 -12
  114. package/styles/rich-text-editor/tailwind.css +49 -12
  115. package/styles/tailwind-dark.css +49 -12
  116. package/styles/tailwind.css +49 -12
@@ -749,6 +749,21 @@ var hidePopup = 'hidePopup';
749
749
  * @deprecated
750
750
  */
751
751
  var cleanupResizeElements = 'cleanupResizeElements';
752
+ /**
753
+ * @hidden
754
+ * @deprecated
755
+ */
756
+ var afterKeyDown = 'afterKeyDown';
757
+ /**
758
+ * @hidden
759
+ * @deprecated
760
+ */
761
+ var updateValueOnIdle = 'updateValueOnIdle';
762
+ /**
763
+ * @hidden
764
+ * @deprecated
765
+ */
766
+ var documentClickClosedBy = 'documentClickClosedBy';
752
767
  /**
753
768
  * @hidden
754
769
  * @deprecated
@@ -759,6 +774,190 @@ var blockEmptyNodes = "address:empty, article:empty, aside:empty, blockquote:emp
759
774
  * @deprecated
760
775
  */
761
776
  var inlineEmptyNodes = "a:empty, abbr:empty, acronym:empty, b:empty, bdi:empty, bdo:empty, big:empty, button:empty,\ncanvas:empty, cite:empty, code:empty, data:empty, datalist:empty, del:empty, dfn:empty, em:empty, font:empty, i:empty, iframe:empty,\nins:empty, kbd:empty, label:empty, map:empty, mark:empty, meter:empty, noscript:empty, object:empty, output:empty, picture:empty, progress:empty,\nq:empty, ruby:empty, s:empty, samp:empty, script:empty, select:empty, slot:empty, small:empty, span:empty, strong:empty, strike:empty, sub:empty, sup:empty, svg:empty,\ntemplate:empty, textarea:empty, time:empty, u:empty, tt:empty, var:empty, wbr:empty";
777
+ /**
778
+ * @hidden
779
+ * @deprecated
780
+ */
781
+ var supportedUnits = ['px', 'em', 'rem', 'pt', 'cm', 'mm', 'in', 'pc', 'vw', 'vh', 'vmin', 'vmax'];
782
+ /**
783
+ * @hidden
784
+ * @deprecated
785
+ */
786
+ var conversionFactors = {
787
+ 'px': {
788
+ 'px': 1,
789
+ 'em': 0.0625,
790
+ 'rem': 0.0625,
791
+ 'pt': 0.75,
792
+ 'cm': 0.0264583,
793
+ 'mm': 0.0026458,
794
+ 'in': 0.0104167,
795
+ 'pc': 0.0625,
796
+ 'vw': 0.00625,
797
+ 'vh': 0.00625,
798
+ 'vmin': 0.00625,
799
+ 'vmax': 0.00625
800
+ },
801
+ 'em': {
802
+ 'px': 16,
803
+ 'em': 1,
804
+ 'rem': 1,
805
+ 'pt': 12,
806
+ 'cm': 0.423333,
807
+ 'mm': 0.0423333,
808
+ 'in': 0.166667,
809
+ 'pc': 0.0625,
810
+ 'vw': 1,
811
+ 'vh': 1,
812
+ 'vmin': 1,
813
+ 'vmax': 1
814
+ },
815
+ 'rem': {
816
+ 'px': 16,
817
+ 'em': 1,
818
+ 'rem': 1,
819
+ 'pt': 12,
820
+ 'cm': 0.423333,
821
+ 'mm': 0.0423333,
822
+ 'in': 0.166667,
823
+ 'pc': 0.0625,
824
+ 'vw': 1,
825
+ 'vh': 1,
826
+ 'vmin': 1,
827
+ 'vmax': 1
828
+ },
829
+ 'pt': {
830
+ 'px': 1.33333,
831
+ 'em': 0.0833333,
832
+ 'rem': 0.0833333,
833
+ 'pt': 1,
834
+ 'cm': 0.0352778,
835
+ 'mm': 0.0035278,
836
+ 'in': 0.0138889,
837
+ 'pc': 0.0416667,
838
+ 'vw': 0.00416667,
839
+ 'vh': 0.00416667,
840
+ 'vmin': 0.00416667,
841
+ 'vmax': 0.00416667
842
+ },
843
+ 'cm': {
844
+ 'px': 37.7953,
845
+ 'em': 2.3622,
846
+ 'rem': 2.3622,
847
+ 'pt': 28.3465,
848
+ 'cm': 1,
849
+ 'mm': 0.1,
850
+ 'in': 0.393701,
851
+ 'pc': 0.148148,
852
+ 'vw': 0.0377953,
853
+ 'vh': 0.0377953,
854
+ 'vmin': 0.0377953,
855
+ 'vmax': 0.0377953
856
+ },
857
+ 'mm': {
858
+ 'px': 3.77953,
859
+ 'em': 0.23622,
860
+ 'rem': 0.23622,
861
+ 'pt': 2.83465,
862
+ 'cm': 10,
863
+ 'mm': 1,
864
+ 'in': 0.0393701,
865
+ 'pc': 0.0148148,
866
+ 'vw': 0.00377953,
867
+ 'vh': 0.00377953,
868
+ 'vmin': 0.00377953,
869
+ 'vmax': 0.00377953
870
+ },
871
+ 'in': {
872
+ 'px': 96,
873
+ 'em': 6,
874
+ 'rem': 6,
875
+ 'pt': 72,
876
+ 'cm': 2.54,
877
+ 'mm': 25.4,
878
+ 'in': 1,
879
+ 'pc': 0.375,
880
+ 'vw': 0.09375,
881
+ 'vh': 0.09375,
882
+ 'vmin': 0.09375,
883
+ 'vmax': 0.09375
884
+ },
885
+ 'pc': {
886
+ 'px': 16,
887
+ 'em': 1,
888
+ 'rem': 1,
889
+ 'pt': 12,
890
+ 'cm': 0.423333,
891
+ 'mm': 0.0423333,
892
+ 'in': 0.166667,
893
+ 'pc': 1,
894
+ 'vw': 0.0625,
895
+ 'vh': 0.0625,
896
+ 'vmin': 0.0625,
897
+ 'vmax': 0.0625
898
+ },
899
+ 'vw': {
900
+ 'px': 160,
901
+ 'em': 10,
902
+ 'rem': 10,
903
+ 'pt': 120,
904
+ 'cm': 4.23333,
905
+ 'mm': 0.423333,
906
+ 'in': 1.66667,
907
+ 'pc': 0.625,
908
+ 'vw': 1,
909
+ 'vh': 1,
910
+ 'vmin': 1,
911
+ 'vmax': 1
912
+ },
913
+ 'vh': {
914
+ 'px': 160,
915
+ 'em': 10,
916
+ 'rem': 10,
917
+ 'pt': 120,
918
+ 'cm': 4.23333,
919
+ 'mm': 0.423333,
920
+ 'in': 1.66667,
921
+ 'pc': 0.625,
922
+ 'vw': 1,
923
+ 'vh': 1,
924
+ 'vmin': 1,
925
+ 'vmax': 1
926
+ },
927
+ 'vmin': {
928
+ 'px': 160,
929
+ 'em': 10,
930
+ 'rem': 10,
931
+ 'pt': 120,
932
+ 'cm': 4.23333,
933
+ 'mm': 0.423333,
934
+ 'in': 1.66667,
935
+ 'pc': 0.625,
936
+ 'vw': 1,
937
+ 'vh': 1,
938
+ 'vmin': 1,
939
+ 'vmax': 1
940
+ },
941
+ 'vmax': {
942
+ 'px': 160,
943
+ 'em': 10,
944
+ 'rem': 10,
945
+ 'pt': 120,
946
+ 'cm': 4.23333,
947
+ 'mm': 0.423333,
948
+ 'in': 1.66667,
949
+ 'pc': 0.625,
950
+ 'vw': 1,
951
+ 'vh': 1,
952
+ 'vmin': 1,
953
+ 'vmax': 1
954
+ }
955
+ };
956
+ /**
957
+ * @hidden
958
+ * @deprecated
959
+ */
960
+ var onHandleFontsizeChange = 'onHandleFontsizeChange';
762
961
 
763
962
  /**
764
963
  * Rich Text Editor classes defined here.
@@ -1897,14 +2096,14 @@ var tools = {
1897
2096
  'sourcecode': {
1898
2097
  'id': 'SourceCode',
1899
2098
  'icon': 'e-source-code',
1900
- 'tooltip': 'Source Code',
2099
+ 'tooltip': 'Code View (Ctrl+Shift+H)',
1901
2100
  'command': 'SourceCode',
1902
2101
  'subCommand': 'SourceCode'
1903
2102
  },
1904
2103
  'preview': {
1905
2104
  'id': 'Preview',
1906
2105
  'icon': 'e-preview',
1907
- 'tooltip': 'Preview',
2106
+ 'tooltip': 'Preview (Ctrl+Shift+H)',
1908
2107
  'command': 'Preview',
1909
2108
  'subCommand': 'Preview'
1910
2109
  },
@@ -2466,7 +2665,7 @@ var defaultLocale = {
2466
2665
  'remove': 'Remove',
2467
2666
  'insertLink': 'Insert Link',
2468
2667
  'display': 'Display',
2469
- 'altText': 'Alternative Text',
2668
+ 'altText': 'Alternative text',
2470
2669
  'dimension': 'Change Size',
2471
2670
  'fullscreen': 'Maximize',
2472
2671
  'maximize': 'Maximize',
@@ -2479,12 +2678,12 @@ var defaultLocale = {
2479
2678
  'preview': 'Preview',
2480
2679
  'viewside': 'ViewSide',
2481
2680
  'insertCode': 'Insert Code',
2482
- 'linkText': 'Display Text',
2681
+ 'linkText': 'Display text',
2483
2682
  'linkTooltipLabel': 'Title',
2484
- 'linkWebUrl': 'Web Address',
2683
+ 'linkWebUrl': 'Web address',
2485
2684
  'linkTitle': 'Enter a title',
2486
2685
  'linkurl': 'http://example.com',
2487
- 'linkOpenInNewWindow': 'Open Link in New Window',
2686
+ 'linkOpenInNewWindow': 'Open link in new window',
2488
2687
  'linkHeader': 'Insert Link',
2489
2688
  'dialogInsert': 'Insert',
2490
2689
  'dialogCancel': 'Cancel',
@@ -2518,8 +2717,8 @@ var defaultLocale = {
2518
2717
  'imageWidth': 'Width',
2519
2718
  'videoHeight': 'Height',
2520
2719
  'videoWidth': 'Width',
2521
- 'textPlaceholder': 'Enter Text',
2522
- 'inserttablebtn': 'Insert Table',
2720
+ 'textPlaceholder': 'Enter text',
2721
+ 'inserttablebtn': 'Insert table',
2523
2722
  'tabledialogHeader': 'Insert Table',
2524
2723
  'tableWidth': 'Width',
2525
2724
  'cellpadding': 'Cell Padding',
@@ -2529,7 +2728,7 @@ var defaultLocale = {
2529
2728
  'tableRows': 'Table Rows',
2530
2729
  'tableColumns': 'Table Columns',
2531
2730
  'tableCellHorizontalAlign': 'Table Cell Horizontal Align',
2532
- 'tableCellVerticalAlign': 'Table Cell Vertical Align',
2731
+ 'tableCellVerticalAlign': 'Table Vertical Align',
2533
2732
  'createTable': 'Create Table',
2534
2733
  'removeTable': 'Remove Table',
2535
2734
  'tableHeader': 'Table Header',
@@ -2607,8 +2806,8 @@ var defaultLocale = {
2607
2806
  'bulletFormatListNone': 'None',
2608
2807
  'formatPainter': 'Format Painter',
2609
2808
  'emojiPicker': 'Emoji Picker',
2610
- 'embeddedCode': 'Embedded Code',
2611
- 'pasteEmbeddedCodeHere': 'Paste Embedded Code here',
2809
+ 'embeddedCode': 'Embedded code',
2810
+ 'pasteEmbeddedCodeHere': 'Paste embedded code here',
2612
2811
  'emojiPickerTypeToFind': 'Type to find',
2613
2812
  'emojiPickerNoResultFound': 'No results found',
2614
2813
  'emojiPickerTrySomethingElse': 'Try something else',
@@ -2668,7 +2867,7 @@ var toolsLocale = {
2668
2867
  'remove': 'remove',
2669
2868
  'insertlink': 'insertLink',
2670
2869
  'display': 'display',
2671
- 'alttext': 'altText',
2870
+ 'alttext': 'alternateHeader',
2672
2871
  'dimension': 'dimension',
2673
2872
  'fullscreen': 'fullscreen',
2674
2873
  'maximize': 'maximize',
@@ -2703,8 +2902,8 @@ var toolsLocale = {
2703
2902
  'deleterow': 'deleteRow',
2704
2903
  'formatpainter': 'formatPainter',
2705
2904
  'emojipicker': 'emojiPicker',
2706
- 'embeddedCode': 'Embedded Code',
2707
- 'pasteEmbeddedCodeHere': 'Paste Embedded Code here',
2905
+ 'embeddedCode': 'Embedded code',
2906
+ 'pasteEmbeddedCodeHere': 'Paste embedded code here',
2708
2907
  'emojiPickerTypeToFind': 'Type to find',
2709
2908
  'emojiPickerNoResultFound': 'No results found',
2710
2909
  'emojiPickerTrySomethingElse': 'Try something else',
@@ -2874,6 +3073,40 @@ function getTooltipText(item, serviceLocator) {
2874
3073
  var tooltipText = i10n.getConstant(itemLocale);
2875
3074
  return tooltipText;
2876
3075
  }
3076
+ function getTooltipTextDropdownItems(item, serviceLocator, localeItems, rteObj) {
3077
+ if (localeItems) {
3078
+ var i10n = serviceLocator.getService('rteLocale');
3079
+ for (var i = 0; i < localeItems.length; i++) {
3080
+ var itemLocale = localeItems[i].value.toLocaleLowerCase();
3081
+ var numberValue = localeItems[i].locale;
3082
+ var numberLocale = defaultLocale["" + numberValue].toLocaleLowerCase();
3083
+ if (item === itemLocale || item === numberLocale) {
3084
+ var tooltipText = localeItems[i].locale;
3085
+ return i10n.getConstant(tooltipText);
3086
+ }
3087
+ }
3088
+ }
3089
+ else {
3090
+ var fontsize = rteObj.fontSize.items;
3091
+ for (var i = 0; i < fontsize.length; i++) {
3092
+ if (item === rteObj.fontSize.items[i].value) {
3093
+ var fontSize$$1 = rteObj.fontSize.items[i].text;
3094
+ return fontSize$$1;
3095
+ }
3096
+ }
3097
+ }
3098
+ return '';
3099
+ }
3100
+ function getQuickToolbarTooltipText(item) {
3101
+ var keys = Object.keys(defaultLocale);
3102
+ for (var i = 0; i < keys.length; i++) {
3103
+ var tooltipText = defaultLocale["" + keys[i]];
3104
+ if (item === tooltipText) {
3105
+ return tooltipText;
3106
+ }
3107
+ }
3108
+ return '';
3109
+ }
2877
3110
  /**
2878
3111
  * @param {ISetToolbarStatusArgs} e - specifies the e element
2879
3112
  * @param {boolean} isPopToolbar - specifies the boolean value
@@ -3390,6 +3623,7 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3390
3623
  };
3391
3624
  ToolbarRenderer.prototype.dropDownSelected = function (args) {
3392
3625
  this.parent.notify(dropDownSelect, args);
3626
+ this.destroyTooltip();
3393
3627
  };
3394
3628
  ToolbarRenderer.prototype.beforeDropDownItemRender = function (args) {
3395
3629
  if (this.parent.readonly || !this.parent.enabled) {
@@ -3417,12 +3651,20 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3417
3651
  if (args.element.parentElement.getAttribute('id').indexOf('TableCell') > -1 && !isNullOrUndefined(args.element.parentElement.querySelector('.e-cell-merge')) &&
3418
3652
  (!isNullOrUndefined(args.element.parentElement.querySelector('.e-cell-horizontal-split')) || !isNullOrUndefined(args.element.parentElement.querySelector('.e-cell-vertical-split')))) {
3419
3653
  var listEle = args.element.querySelectorAll('li');
3420
- if (this.parent.inputElement.querySelectorAll('.e-cell-select').length === 1) {
3654
+ var selectedEles_1 = this.parent.inputElement.querySelectorAll('.e-cell-select');
3655
+ if (selectedEles_1.length === 1) {
3421
3656
  addClass([listEle[0]], 'e-disabled');
3422
3657
  removeClass([listEle[1], listEle[2]], 'e-disabled');
3423
3658
  }
3424
- else if (this.parent.inputElement.querySelectorAll('.e-cell-select').length > 1) {
3425
- removeClass([listEle[0]], 'e-disabled');
3659
+ else if (selectedEles_1.length > 1) {
3660
+ if (!Array.from(selectedEles_1).every(function (element) {
3661
+ return element.tagName.toLowerCase() === selectedEles_1[0].tagName.toLowerCase();
3662
+ })) {
3663
+ addClass([listEle[0]], 'e-disabled');
3664
+ }
3665
+ else {
3666
+ removeClass([listEle[0]], 'e-disabled');
3667
+ }
3426
3668
  addClass([listEle[1], listEle[2]], 'e-disabled');
3427
3669
  }
3428
3670
  }
@@ -3470,6 +3712,19 @@ var ToolbarRenderer = /** @__PURE__ @class */ (function () {
3470
3712
  });
3471
3713
  this.tooltip.appendTo(args.target);
3472
3714
  }
3715
+ if (this.parent.showTooltip) {
3716
+ this.dropdownTooltip = new Tooltip({
3717
+ target: '[aria-owns="' + this.parent.getID() + '"].e-rte-elements [title]',
3718
+ showTipPointer: true,
3719
+ openDelay: 400,
3720
+ opensOn: 'Hover',
3721
+ beforeRender: this.tooltipBeforeRender.bind(this),
3722
+ cssClass: this.parent.getCssClass(),
3723
+ windowCollision: true,
3724
+ position: 'BottomCenter'
3725
+ });
3726
+ this.dropdownTooltip.appendTo(document.body);
3727
+ }
3473
3728
  };
3474
3729
  /**
3475
3730
  * renderDropDownButton method
@@ -4087,10 +4342,14 @@ var BaseToolbar = /** @__PURE__ @class */ (function () {
4087
4342
  _this.parent.formatter.saveData();
4088
4343
  }
4089
4344
  callback_1.call(_this);
4090
- var currentContentElem = _this.parent.createElement('div');
4091
- currentContentElem.appendChild(_this.parent.formatter.getUndoRedoStack()[_this.parent.formatter.getUndoRedoStack().length - 1].text);
4092
- if (currentContentElem.innerHTML.trim() === _this.parent.inputElement.innerHTML.trim()) {
4093
- return;
4345
+ if (_this.parent.formatter.getUndoRedoStack().length > 0) {
4346
+ var currentContentElem = _this.parent.createElement('div');
4347
+ var stackItem = _this.parent.formatter.getUndoRedoStack()[_this.parent.formatter.getUndoRedoStack().length - 1];
4348
+ var clonedItem = (stackItem.text).cloneNode(true);
4349
+ currentContentElem.appendChild(clonedItem);
4350
+ if (currentContentElem.innerHTML.trim() === _this.parent.inputElement.innerHTML.trim()) {
4351
+ return;
4352
+ }
4094
4353
  }
4095
4354
  if (proxy_1.undo) {
4096
4355
  _this.parent.formatter.saveData();
@@ -4164,10 +4423,28 @@ var DropDownButtons = /** @__PURE__ @class */ (function () {
4164
4423
  if (item.cssClass) {
4165
4424
  addClass([args.element], item.cssClass);
4166
4425
  }
4426
+ if (item.command === 'Images' || item.command === 'Videos' || item.command === 'Audios' || item.command === 'Table') {
4427
+ args.element.setAttribute('title', getQuickToolbarTooltipText(item.text));
4428
+ }
4167
4429
  if (item.command === 'Alignments' || item.subCommand === 'JustifyLeft'
4168
4430
  || item.subCommand === 'JustifyRight' || item.subCommand === 'JustifyCenter') {
4169
4431
  args.element.setAttribute('title', getTooltipText(item.subCommand.toLocaleLowerCase(), this.locator));
4170
4432
  }
4433
+ if (item.command === 'Formats') {
4434
+ args.element.setAttribute('title', getTooltipTextDropdownItems(item.subCommand.toLocaleLowerCase(), this.locator, formatsLocale));
4435
+ }
4436
+ if (item.command === 'Font') {
4437
+ args.element.setAttribute('title', getTooltipTextDropdownItems(item.value.toLocaleLowerCase(), this.locator, fontNameLocale));
4438
+ }
4439
+ if (item.subCommand === 'BulletFormatList') {
4440
+ args.element.setAttribute('title', getTooltipTextDropdownItems(item.value.toLocaleLowerCase(), this.locator, bulletFormatListLocale));
4441
+ }
4442
+ if (item.subCommand === 'NumberFormatList') {
4443
+ args.element.setAttribute('title', getTooltipTextDropdownItems(item.text.replace(/\s/g, '').toLocaleLowerCase(), this.locator, numberFormatListLocale));
4444
+ }
4445
+ if (item.subCommand === 'FontSize') {
4446
+ args.element.setAttribute('title', getTooltipTextDropdownItems(item.value.toLocaleLowerCase(), null, null, this.parent));
4447
+ }
4171
4448
  };
4172
4449
  DropDownButtons.prototype.dropdownContent = function (width, type, content) {
4173
4450
  return ('<span style="display: inline-flex;' + 'width:' + ((type === 'quick') ? 'auto' : width) + '" >' +
@@ -4274,7 +4551,7 @@ var DropDownButtons = /** @__PURE__ @class */ (function () {
4274
4551
  if (isNullOrUndefined(targetElement) || targetElement.classList.contains(CLS_DROPDOWN_BTN)) {
4275
4552
  return;
4276
4553
  }
4277
- var fontsize = _this.parent.fontSize.items.slice();
4554
+ var fontsize = !isNullOrUndefined(_this.fontSizeDropDown) && !isNullOrUndefined(_this.fontSizeDropDown.items) && _this.fontSizeDropDown.items.length > 0 ? _this.fontSizeDropDown.items : JSON.parse(JSON.stringify(_this.parent.fontSize.items.slice()));
4278
4555
  fontsize.forEach(function (item) {
4279
4556
  Object.defineProperties(item, {
4280
4557
  command: { value: 'Font', enumerable: true }, subCommand: { value: 'FontSize', enumerable: true }
@@ -5610,7 +5887,9 @@ var keyCode = {
5610
5887
  'singlequote': 222,
5611
5888
  ']': 221,
5612
5889
  '[': 219,
5613
- '=': 187
5890
+ '=': 187,
5891
+ '<': 188,
5892
+ '>': 190
5614
5893
  };
5615
5894
  /**
5616
5895
  * KeyboardEvents class enables you to bind key action desired key combinations for ex., Ctrl+A, Delete, Alt+Space etc.
@@ -6326,6 +6605,9 @@ var BaseQuickToolbar = /** @__PURE__ @class */ (function () {
6326
6605
  this.parent.enableToolbarItem(this.parent.toolbarSettings.items);
6327
6606
  }
6328
6607
  }
6608
+ if (this.parent.showTooltip && !isNullOrUndefined(document.querySelector('.e-tooltip-wrap'))) {
6609
+ this.parent.notify(destroyTooltip, { args: event });
6610
+ }
6329
6611
  this.removeEleFromDOM();
6330
6612
  this.isDOMElement = false;
6331
6613
  };
@@ -7153,7 +7435,7 @@ var Count = /** @__PURE__ @class */ (function () {
7153
7435
  };
7154
7436
  Count.prototype.appendCount = function () {
7155
7437
  var htmlText = this.parent.editorMode === 'Markdown' ? this.editPanel.value :
7156
- this.editPanel.textContent;
7438
+ (this.parent.getText().replace(/(\r\n|\n|\r|\t)/gm, ''));
7157
7439
  if (this.parent.editorMode !== 'Markdown' && htmlText.indexOf('\u200B') !== -1) {
7158
7440
  this.htmlLength = htmlText.replace(/\u200B/g, '').length;
7159
7441
  }
@@ -7547,30 +7829,41 @@ function updateTextNode$1(value, enterAction) {
7547
7829
  }
7548
7830
  var tableElm = resultElm.querySelectorAll('table');
7549
7831
  for (var i = 0; i < tableElm.length; i++) {
7550
- if (tableElm[i].getAttribute('border') === '0') {
7551
- tableElm[i].removeAttribute('border');
7552
- }
7553
- var tdElm = tableElm[i].querySelectorAll('td');
7554
- for (var j = 0; j < tdElm.length; j++) {
7555
- if (tdElm[j].style.borderLeft === 'none') {
7556
- tdElm[j].style.removeProperty('border-left');
7557
- }
7558
- if (tdElm[j].style.borderRight === 'none') {
7559
- tdElm[j].style.removeProperty('border-right');
7560
- }
7561
- if (tdElm[j].style.borderBottom === 'none') {
7562
- tdElm[j].style.removeProperty('border-bottom');
7563
- }
7564
- if (tdElm[j].style.borderTop === 'none') {
7565
- tdElm[j].style.removeProperty('border-top');
7832
+ if (tableElm[i].classList.length > 0 && !tableElm[i].classList.contains('e-rte-table')) {
7833
+ tableElm[i].classList.add('e-rte-paste-table');
7834
+ if (tableElm[i].classList.contains('e-rte-paste-word-table')) {
7835
+ tableElm[i].classList.remove('e-rte-paste-word-table');
7836
+ continue; // Sking the removal of the border if the source is from word.
7837
+ }
7838
+ else if (tableElm[i].classList.contains('e-rte-paste-excel-table')) {
7839
+ tableElm[i].classList.remove('e-rte-paste-excel-table');
7840
+ if (tableElm[i].getAttribute('border') === '0') {
7841
+ tableElm[i].removeAttribute('border');
7842
+ }
7843
+ var tdElm = tableElm[i].querySelectorAll('td');
7844
+ for (var j = 0; j < tdElm.length; j++) {
7845
+ if (tdElm[j].style.borderLeft === 'none') {
7846
+ tdElm[j].style.removeProperty('border-left');
7847
+ }
7848
+ if (tdElm[j].style.borderRight === 'none') {
7849
+ tdElm[j].style.removeProperty('border-right');
7850
+ }
7851
+ if (tdElm[j].style.borderBottom === 'none') {
7852
+ tdElm[j].style.removeProperty('border-bottom');
7853
+ }
7854
+ if (tdElm[j].style.borderTop === 'none') {
7855
+ tdElm[j].style.removeProperty('border-top');
7856
+ }
7857
+ if (tdElm[j].style.border === 'none') {
7858
+ tdElm[j].style.removeProperty('border');
7859
+ }
7860
+ }
7566
7861
  }
7567
- if (tdElm[j].style.border === 'none') {
7568
- tdElm[j].style.removeProperty('border');
7862
+ else if (tableElm[i].classList.contains('e-rte-paste-onenote-table')) {
7863
+ tableElm[i].classList.remove('e-rte-paste-onenote-table');
7864
+ continue;
7569
7865
  }
7570
7866
  }
7571
- if (!tableElm[i].classList.contains('e-rte-table')) {
7572
- tableElm[i].classList.add('e-rte-table');
7573
- }
7574
7867
  }
7575
7868
  var imageElm = resultElm.querySelectorAll('img');
7576
7869
  for (var i = 0; i < imageElm.length; i++) {
@@ -7888,6 +8181,12 @@ var FORMAT_PAINTER_ACTIONS = 'format_painter_actions';
7888
8181
  * @hidden
7889
8182
  */
7890
8183
  var EMOJI_PICKER_ACTIONS = 'emoji_picker_actions';
8184
+ /**
8185
+ * Mouse down event constant
8186
+ *
8187
+ * @hidden
8188
+ */
8189
+ var MOUSE_DOWN = 'mouseDown';
7891
8190
 
7892
8191
  /**
7893
8192
  * Formatter
@@ -7914,12 +8213,21 @@ var Formatter = /** @__PURE__ @class */ (function () {
7914
8213
  var selection = self.contentModule.getDocument().getSelection();
7915
8214
  var range = (selection.rangeCount > 0) ? selection.getRangeAt(selection.rangeCount - 1) : null;
7916
8215
  var saveSelection;
8216
+ var newRange;
8217
+ if (!isNullOrUndefined(value) && !isNullOrUndefined(value.selection)) {
8218
+ newRange = value.selection.range;
8219
+ }
7917
8220
  var isKeyboardVideoInsert = (!isNullOrUndefined(value) && !isNullOrUndefined(value.cssClass) &&
7918
8221
  value.cssClass !== 'e-video-inline');
7919
8222
  if (self.editorMode === 'HTML') {
7920
8223
  if (!isNullOrUndefined(args) && !isKeyboardVideoInsert) {
7921
8224
  if (isNullOrUndefined(args.name) || (!isNullOrUndefined(args.name) && args.name !== 'showDialog')) {
7922
- saveSelection = this.editorManager.nodeSelection.save(range, self.contentModule.getDocument());
8225
+ if (newRange) {
8226
+ saveSelection = this.editorManager.nodeSelection.save(newRange, self.contentModule.getDocument());
8227
+ }
8228
+ else {
8229
+ saveSelection = this.editorManager.nodeSelection.save(range, self.contentModule.getDocument());
8230
+ }
7923
8231
  }
7924
8232
  }
7925
8233
  }
@@ -7947,7 +8255,7 @@ var Formatter = /** @__PURE__ @class */ (function () {
7947
8255
  if (args.item.command === 'Images' || args.item.command === 'Videos' || args.item.command === 'Table' || args.item.command === 'Files') {
7948
8256
  currentInsertContentLength = 1;
7949
8257
  }
7950
- var currentLength = self.getText().trim().replace(/(\r\n|\n|\r)/gm, '').replace(/\u200B/g, '').length;
8258
+ var currentLength = self.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length;
7951
8259
  var selectionLength = self.getSelection().length;
7952
8260
  var totalLength = (currentLength - selectionLength) + currentInsertContentLength;
7953
8261
  if (!(self.maxLength === -1 || totalLength <= self.maxLength)) {
@@ -8011,7 +8319,9 @@ var Formatter = /** @__PURE__ @class */ (function () {
8011
8319
  _this.saveData();
8012
8320
  }
8013
8321
  self.isBlur = false;
8014
- self.contentModule.getEditPanel().focus();
8322
+ if (isNullOrUndefined(saveSelection) || isNullOrUndefined(closest(saveSelection.range.startContainer.parentElement, ".e-img-caption")) ? true : !(closest(saveSelection.range.startContainer.parentElement, ".e-img-caption").getAttribute("contenteditable") == "false")) {
8323
+ self.contentModule.getEditPanel().focus();
8324
+ }
8015
8325
  if (self.editorMode === 'HTML' && !isKeyboardVideoInsert) {
8016
8326
  if (isNullOrUndefined(args.selectType) || (!isNullOrUndefined(args.selectType) && args.selectType !== 'showDialog')) {
8017
8327
  saveSelection.restore();
@@ -10505,6 +10815,12 @@ var CLEAR_TYPE = 'clear-type';
10505
10815
  * @hidden
10506
10816
  */
10507
10817
  var SELF_CLOSING_TAGS = ['area', 'base', 'br', 'embed', 'hr', 'img', 'input', 'param', 'source', 'track', 'wbr', 'iframe', 'td', 'table'];
10818
+ /**
10819
+ * Source
10820
+ *
10821
+ * @hidden
10822
+ */
10823
+ var PASTE_SOURCE = ['word', 'excel', 'onenote'];
10508
10824
 
10509
10825
  /**
10510
10826
  * `Selection` module is used to handle RTE Selections.
@@ -11519,7 +11835,9 @@ var DOMNode = /** @__PURE__ @class */ (function () {
11519
11835
  else if (start.tagName === 'BR') {
11520
11836
  this.replaceWith(start, this.marker(className, this.encode(start.textContent)));
11521
11837
  var markerStart = range.startContainer.querySelector('.' + className);
11522
- markerStart.parentElement.appendChild(start);
11838
+ if (markerStart) {
11839
+ markerStart.parentElement.appendChild(start);
11840
+ }
11523
11841
  }
11524
11842
  else {
11525
11843
  if (start.tagName === 'IMG') {
@@ -15171,7 +15489,6 @@ var TableCommand = /** @__PURE__ @class */ (function () {
15171
15489
  table.appendChild(tblBody);
15172
15490
  e.item.selection.restore();
15173
15491
  InsertHtml.Insert(this.parent.currentDocument, table, this.parent.editableElement);
15174
- this.removeEmptyNode();
15175
15492
  e.item.selection.setSelectionText(this.parent.currentDocument, table.querySelector('td'), table.querySelector('td'), 0, 0);
15176
15493
  if (table.nextElementSibling === null) {
15177
15494
  var insertElem = void 0;
@@ -15215,24 +15532,6 @@ var TableCommand = /** @__PURE__ @class */ (function () {
15215
15532
  }
15216
15533
  return styleValue;
15217
15534
  };
15218
- TableCommand.prototype.removeEmptyNode = function () {
15219
- var emptyUl = this.parent.editableElement.querySelectorAll('ul:empty, ol:empty');
15220
- for (var i = 0; i < emptyUl.length; i++) {
15221
- detach(emptyUl[i]);
15222
- }
15223
- var emptyLiChild = this.parent.editableElement.querySelectorAll('li *:empty:not(img)');
15224
- for (var i = 0; i < emptyLiChild.length; i++) {
15225
- detach(emptyLiChild[i]);
15226
- if (emptyLiChild.length === i + 1) {
15227
- emptyLiChild = this.parent.editableElement.querySelectorAll('li *:empty:not(img)');
15228
- i = -1;
15229
- }
15230
- }
15231
- var emptyLi = this.parent.editableElement.querySelectorAll('li:empty');
15232
- for (var i = 0; i < emptyLi.length; i++) {
15233
- detach(emptyLi[i]);
15234
- }
15235
- };
15236
15535
  TableCommand.prototype.insertAfter = function (newNode, referenceNode) {
15237
15536
  referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
15238
15537
  };
@@ -15580,14 +15879,21 @@ var TableCommand = /** @__PURE__ @class */ (function () {
15580
15879
  }
15581
15880
  };
15582
15881
  TableCommand.prototype.tableVerticalAlign = function (e) {
15583
- if (e.item.subCommand === 'AlignTop') {
15584
- e.item.tableCell.style.verticalAlign = 'top';
15585
- }
15586
- else if (e.item.subCommand === 'AlignMiddle') {
15587
- e.item.tableCell.style.verticalAlign = 'middle';
15882
+ var value = '';
15883
+ switch (e.item.subCommand) {
15884
+ case 'AlignTop':
15885
+ value = 'top';
15886
+ break;
15887
+ case 'AlignMiddle':
15888
+ value = 'middle';
15889
+ break;
15890
+ case 'AlignBottom':
15891
+ value = 'bottom';
15892
+ break;
15588
15893
  }
15589
- else {
15590
- e.item.tableCell.style.verticalAlign = 'bottom';
15894
+ e.item.tableCell.style.verticalAlign = value;
15895
+ if (value && value !== '' && e.item.tableCell.getAttribute('valign')) {
15896
+ e.item.tableCell.removeAttribute('valign');
15591
15897
  }
15592
15898
  if (e.callBack) {
15593
15899
  e.callBack({
@@ -16345,6 +16651,22 @@ var SelectionCommands = /** @__PURE__ @class */ (function () {
16345
16651
  var nodeCutter = new NodeCutter();
16346
16652
  var isFormatted = new IsFormatted();
16347
16653
  var range = domSelection.getRange(docElement);
16654
+ if (Browser.userAgent.indexOf('Firefox') !== -1 && range.startContainer === range.endContainer && !isNullOrUndefined(endNode) && range.startContainer === endNode) {
16655
+ var startChildNodes = range.startContainer.childNodes;
16656
+ var startNode = ((startChildNodes[(range.startOffset > 0) ? (range.startOffset - 1) :
16657
+ range.startOffset]) || range.startContainer);
16658
+ var endNode_1 = (range.endContainer.childNodes[(range.endOffset > 0) ? (range.endOffset - 1) :
16659
+ range.endOffset] || range.endContainer);
16660
+ var lastSelectionNode = (endNode_1.lastChild.nodeName === 'BR' ? (isNullOrUndefined(endNode_1.lastChild.previousSibling) ? endNode_1
16661
+ : endNode_1.lastChild.previousSibling) : endNode_1.firstChild);
16662
+ while (!isNullOrUndefined(lastSelectionNode) && lastSelectionNode.nodeName !== '#text' && lastSelectionNode.nodeName !== 'IMG' &&
16663
+ lastSelectionNode.nodeName !== 'BR' && lastSelectionNode.nodeName !== 'HR') {
16664
+ lastSelectionNode = lastSelectionNode.lastChild;
16665
+ }
16666
+
16667
+ domSelection.setSelectionText(docElement, startNode, lastSelectionNode, 0, 0);
16668
+ range = domSelection.getRange(docElement);
16669
+ }
16348
16670
  var save = domSelection.save(range, docElement);
16349
16671
  var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :
16350
16672
  domSelection.getSelectionNodeCollectionBr(range);
@@ -17572,6 +17894,25 @@ var UndoRedoManager = /** @__PURE__ @class */ (function () {
17572
17894
  }
17573
17895
  return textContent;
17574
17896
  };
17897
+ UndoRedoManager.prototype.isElementStructureEqual = function (previousFragment, currentFragment) {
17898
+ if (previousFragment.childNodes.length !== currentFragment.childNodes.length) {
17899
+ return false;
17900
+ }
17901
+ for (var i = 0; i < previousFragment.childNodes.length; i++) {
17902
+ var previousFragmentNode = previousFragment.childNodes[i];
17903
+ var currentFragmentNode = currentFragment.childNodes[i];
17904
+ if (!previousFragmentNode || !currentFragmentNode) {
17905
+ return false;
17906
+ }
17907
+ if (previousFragmentNode.nodeType !== currentFragmentNode.nodeType) {
17908
+ return false;
17909
+ }
17910
+ if (previousFragmentNode.outerHTML !== currentFragmentNode.outerHTML) {
17911
+ return false;
17912
+ }
17913
+ }
17914
+ return true;
17915
+ };
17575
17916
  /**
17576
17917
  * RTE collection stored html format.
17577
17918
  *
@@ -17608,7 +17949,8 @@ var UndoRedoManager = /** @__PURE__ @class */ (function () {
17608
17949
  (this.undoRedoStack[this.undoRedoStack.length - 1].range.endOffset === save.range.endOffset) &&
17609
17950
  (this.undoRedoStack[this.undoRedoStack.length - 1].range.range.startContainer === save.range.startContainer) &&
17610
17951
  (this.getTextContentFromFragment(this.undoRedoStack[this.undoRedoStack.length - 1].text).trim() ===
17611
- this.getTextContentFromFragment(changEle.text).trim())) {
17952
+ this.getTextContentFromFragment(changEle.text).trim()) &&
17953
+ this.isElementStructureEqual(this.undoRedoStack[this.undoRedoStack.length - 1].text, changEle.text)) {
17612
17954
  return;
17613
17955
  }
17614
17956
  this.undoRedoStack.push(changEle);
@@ -17771,6 +18113,7 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17771
18113
  var pattern4 = /style='mso-width-source:/i;
17772
18114
  if (patern.test(tempHTMLContent) || patern2.test(tempHTMLContent) || patern3.test(tempHTMLContent) ||
17773
18115
  pattern4.test(tempHTMLContent)) {
18116
+ var source = this.findSource(elm);
17774
18117
  this.imageConversion(elm, rtfData);
17775
18118
  tempHTMLContent = tempHTMLContent.replace(/<img[^>]+>/i, '');
17776
18119
  this.addListClass(elm);
@@ -17791,16 +18134,8 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
17791
18134
  if (pattern4.test(tempHTMLContent)) {
17792
18135
  this.addTableBorderClass(elm);
17793
18136
  }
17794
- // Removing the margin for list items
17795
- var liChildren = elm.querySelectorAll('li');
17796
- if (liChildren.length > 0) {
17797
- for (var i = 0; i < liChildren.length; i++) {
17798
- if (!isNullOrUndefined(liChildren[i].style.marginLeft)) {
17799
- liChildren[i].style.marginLeft = '';
17800
- }
17801
- }
17802
- }
17803
- e.callBack(elm.innerHTML, this.cropImageDimensions);
18137
+ this.processMargin(elm);
18138
+ e.callBack(elm.innerHTML, this.cropImageDimensions, source);
17804
18139
  }
17805
18140
  else {
17806
18141
  e.callBack(elm.innerHTML);
@@ -18634,6 +18969,25 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18634
18969
  }
18635
18970
  this.listContents.push(elem.innerHTML);
18636
18971
  };
18972
+ MsWordPaste.prototype.processMargin = function (element) {
18973
+ var liChildren = element.querySelectorAll('li');
18974
+ if (liChildren.length > 0) {
18975
+ for (var i = 0; i < liChildren.length; i++) {
18976
+ if (!isNullOrUndefined((liChildren[i]).style.marginLeft)) {
18977
+ (liChildren[i]).style.marginLeft = '';
18978
+ }
18979
+ }
18980
+ }
18981
+ var tableChildren = element.querySelectorAll('table');
18982
+ if (tableChildren.length > 0) {
18983
+ for (var i = 0; i < tableChildren.length; i++) {
18984
+ if (!isNullOrUndefined((tableChildren[i]).style.marginLeft) &&
18985
+ (tableChildren[i]).style.marginLeft.indexOf('-') >= 0) {
18986
+ (tableChildren[i]).style.marginLeft = '';
18987
+ }
18988
+ }
18989
+ }
18990
+ };
18637
18991
  MsWordPaste.prototype.removeEmptyAnchorTag = function (element) {
18638
18992
  var removableElement = element.querySelectorAll('a:not([href])');
18639
18993
  for (var j = removableElement.length - 1; j >= 0; j--) {
@@ -18644,6 +18998,22 @@ var MsWordPaste = /** @__PURE__ @class */ (function () {
18644
18998
  parentElem.removeChild(removableElement[j]);
18645
18999
  }
18646
19000
  };
19001
+ MsWordPaste.prototype.findSource = function (element) {
19002
+ var metaNodes = element.querySelectorAll('meta');
19003
+ for (var i = 0; i < metaNodes.length; i++) {
19004
+ var metaNode = metaNodes[i];
19005
+ var content = metaNode.getAttribute('content');
19006
+ var name_1 = metaNode.getAttribute('name');
19007
+ if (name_1 && name_1.toLowerCase().indexOf('generator') >= 0 && content && content.toLowerCase().indexOf('microsoft') >= 0) {
19008
+ for (var j = 0; j < PASTE_SOURCE.length; j++) {
19009
+ if (content.toLowerCase().indexOf(PASTE_SOURCE[j]) >= 0) {
19010
+ return PASTE_SOURCE[j];
19011
+ }
19012
+ }
19013
+ }
19014
+ }
19015
+ return 'html';
19016
+ };
18647
19017
  return MsWordPaste;
18648
19018
  }());
18649
19019
 
@@ -19283,7 +19653,7 @@ var FormatPainterActions = /** @__PURE__ @class */ (function () {
19283
19653
  };
19284
19654
  FormatPainterActions.prototype.copyAction = function () {
19285
19655
  var copyCollection = [];
19286
- var range = this.parent.nodeSelection.getRange(document);
19656
+ var range = this.parent.nodeSelection.getRange(this.parent.currentDocument);
19287
19657
  var domSelection = this.parent.nodeSelection;
19288
19658
  var nodes = range.collapsed ? domSelection.getSelectionNodeCollection(range) :
19289
19659
  domSelection.getSelectionNodeCollectionBr(range);
@@ -19776,6 +20146,7 @@ var EditorManager = /** @__PURE__ @class */ (function () {
19776
20146
  this.observer.on(MODEL_CHANGED, this.onPropertyChanged, this);
19777
20147
  this.observer.on(MS_WORD_CLEANUP, this.onWordPaste, this);
19778
20148
  this.observer.on(ON_BEGIN, this.onBegin, this);
20149
+ this.observer.on(MOUSE_DOWN, this.editorMouseDown, this);
19779
20150
  };
19780
20151
  EditorManager.prototype.onWordPaste = function (e) {
19781
20152
  this.observer.notify(MS_WORD_CLEANUP_PLUGIN, e);
@@ -19919,6 +20290,64 @@ var EditorManager = /** @__PURE__ @class */ (function () {
19919
20290
  event: event, callBack: callBack });
19920
20291
  }
19921
20292
  };
20293
+ EditorManager.prototype.editorMouseDown = function (e) {
20294
+ if (e.args.detail === 3) {
20295
+ this.tripleClickSelection(e.args);
20296
+ }
20297
+ };
20298
+ EditorManager.prototype.tripleClickSelection = function (e) {
20299
+ var range = this.nodeSelection.getRange(this.currentDocument);
20300
+ var selection = this.nodeSelection.get(this.currentDocument);
20301
+ if (selection.rangeCount > 0 && selection.toString() !== '') {
20302
+ var startBlockNode = this.getParentBlockNode(range.startContainer);
20303
+ var endBlockNode = this.getParentBlockNode(range.endContainer);
20304
+ if (startBlockNode && endBlockNode && startBlockNode === endBlockNode) {
20305
+ var newRange = this.currentDocument.createRange();
20306
+ var startTextNode = this.getFirstTextNode(startBlockNode);
20307
+ var endTextNode = this.getLastTextNode(endBlockNode);
20308
+ if (startTextNode && endTextNode) {
20309
+ newRange.setStart(startTextNode, 0);
20310
+ newRange.setEnd(endTextNode, endTextNode.textContent.length);
20311
+ this.nodeSelection.setRange(this.currentDocument, newRange);
20312
+ e.preventDefault();
20313
+ }
20314
+ }
20315
+ }
20316
+ };
20317
+ EditorManager.prototype.getParentBlockNode = function (node) {
20318
+ var treeWalker = this.currentDocument.createTreeWalker(this.editableElement, // root
20319
+ NodeFilter.SHOW_ELEMENT, // whatToShow
20320
+ {
20321
+ acceptNode: function (currentNode) {
20322
+ // Check if the node is a block element
20323
+ var displayStyle = window.getComputedStyle(currentNode).display;
20324
+ if (displayStyle.indexOf('inline') < 0) {
20325
+ return NodeFilter.FILTER_ACCEPT;
20326
+ }
20327
+ else {
20328
+ return NodeFilter.FILTER_SKIP;
20329
+ }
20330
+ }
20331
+ });
20332
+ treeWalker.currentNode = node;
20333
+ var blockParent = treeWalker.parentNode();
20334
+ return blockParent;
20335
+ };
20336
+ EditorManager.prototype.getLastTextNode = function (node) {
20337
+ var treeWalker = this.currentDocument.createTreeWalker(node, NodeFilter.SHOW_TEXT, null);
20338
+ var lastTextNode = null;
20339
+ var currentNode = treeWalker.nextNode();
20340
+ while (currentNode) {
20341
+ lastTextNode = currentNode;
20342
+ currentNode = treeWalker.nextNode();
20343
+ }
20344
+ return lastTextNode;
20345
+ };
20346
+ EditorManager.prototype.getFirstTextNode = function (node) {
20347
+ var treeWalker = this.currentDocument.createTreeWalker(node, NodeFilter.SHOW_TEXT, null);
20348
+ var firstTextNode = treeWalker.nextNode();
20349
+ return firstTextNode;
20350
+ };
19922
20351
  return EditorManager;
19923
20352
  }());
19924
20353
 
@@ -20433,6 +20862,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20433
20862
  this.parent.on(readOnlyMode, this.updateReadOnly, this);
20434
20863
  this.parent.on(paste, this.onPaste, this);
20435
20864
  this.parent.on(tableclass, this.isTableClassAdded, this);
20865
+ this.parent.on(onHandleFontsizeChange, this.onHandleFontsizeChange, this);
20436
20866
  };
20437
20867
  HtmlEditor.prototype.updateReadOnly = function () {
20438
20868
  if (this.parent.readonly) {
@@ -20451,7 +20881,9 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20451
20881
  };
20452
20882
  HtmlEditor.prototype.onSelectionRestore = function (e) {
20453
20883
  this.parent.isBlur = false;
20454
- this.contentRenderer.getEditPanel().focus();
20884
+ if (isNullOrUndefined(this.saveSelection) || isNullOrUndefined(closest(this.saveSelection.range.startContainer.parentElement, ".e-img-caption")) ? true : !(closest(this.saveSelection.range.startContainer.parentElement, ".e-img-caption").getAttribute("contenteditable") == "false")) {
20885
+ this.contentRenderer.getEditPanel().focus();
20886
+ }
20455
20887
  if (isNullOrUndefined(e.items) || e.items) {
20456
20888
  this.saveSelection.restore();
20457
20889
  }
@@ -20459,11 +20891,91 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20459
20891
  HtmlEditor.prototype.isTableClassAdded = function () {
20460
20892
  var tableElement = this.parent.inputElement.querySelectorAll('table');
20461
20893
  for (var i = 0; i < tableElement.length; i++) {
20462
- if (!tableElement[i].classList.contains('e-rte-table')) {
20894
+ if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')) {
20463
20895
  tableElement[i].classList.add('e-rte-table');
20464
20896
  }
20465
20897
  }
20466
20898
  };
20899
+ HtmlEditor.prototype.onHandleFontsizeChange = function (e) {
20900
+ var keyboardArgs = e.args;
20901
+ var args = { name: 'dropDownSelect' };
20902
+ args.item = {
20903
+ command: 'Font',
20904
+ subCommand: 'FontSize'
20905
+ };
20906
+ var items = this.parent.fontSize.items;
20907
+ var activeElem;
20908
+ if (this.parent.toolbarModule && this.parent.toolbarModule.dropDownModule &&
20909
+ this.parent.toolbarModule.dropDownModule.fontSizeDropDown && !isNullOrUndefined(this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent) && this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent !== '') {
20910
+ activeElem = this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent;
20911
+ }
20912
+ else {
20913
+ var fontSizeValue = void 0;
20914
+ var selection = this.parent.contentModule.getDocument().getSelection();
20915
+ if (selection && selection.focusNode && selection.focusNode.parentElement) {
20916
+ fontSizeValue = document.defaultView.getComputedStyle(selection.focusNode.parentElement, null).getPropertyValue('font-size');
20917
+ }
20918
+ else {
20919
+ fontSizeValue = this.parent.fontSize.width;
20920
+ }
20921
+ fontSizeValue = isNullOrUndefined(fontSizeValue) ? this.parent.fontSize.width : fontSizeValue;
20922
+ var actualTxtFontValues = fontSizeValue.match(/^([\d.]+)(\D+)$/);
20923
+ var size_1 = parseInt(actualTxtFontValues[1], 10);
20924
+ var unit = actualTxtFontValues[2];
20925
+ var defaultFontValues = items[0].value.match(/^([\d.]+)(\D+)$/);
20926
+ if (defaultFontValues[2] === unit) {
20927
+ var index = items.findIndex(function (_a) {
20928
+ var value = _a.value;
20929
+ return parseInt(value, 10) >= size_1;
20930
+ });
20931
+ activeElem = items[index].text;
20932
+ }
20933
+ else {
20934
+ var convertedSize_1 = this.convertFontSize(size_1, unit, defaultFontValues[2]);
20935
+ var index = items.findIndex(function (_a) {
20936
+ var value = _a.value;
20937
+ return parseInt(value, 10) >= convertedSize_1;
20938
+ });
20939
+ activeElem = items[index].text;
20940
+ }
20941
+ }
20942
+ var fontIndex = items.findIndex(function (size) { return size.text === activeElem; });
20943
+ if (keyboardArgs.action === 'increase-fontsize' && fontIndex !== -1) {
20944
+ if (fontIndex >= items.length - 1) {
20945
+ var fontValues = items[fontIndex].value.match(/^([\d.]+)(\D+)$/);
20946
+ if (fontValues) {
20947
+ var size = parseInt(fontValues[1], 10);
20948
+ var unit = fontValues[2];
20949
+ var roundedSize = size % 10 === 0 ? Math.ceil((size + 1) / 10) * 10 : Math.ceil(size / 10) * 10;
20950
+ args.item.value = roundedSize.toLocaleString() + unit;
20951
+ args.item.text = roundedSize.toLocaleString() + ' ' + unit;
20952
+ }
20953
+ this.parent.fontSize.items.push(args.item);
20954
+ }
20955
+ else {
20956
+ args.item.value = items[fontIndex + 1].value;
20957
+ args.item.text = items[fontIndex + 1].text;
20958
+ }
20959
+ }
20960
+ else if (keyboardArgs.action === 'decrease-fontsize' && fontIndex !== -1 && fontIndex > 0) {
20961
+ args.item.value = items[fontIndex - 1].value;
20962
+ args.item.text = items[fontIndex - 1].text;
20963
+ }
20964
+ else {
20965
+ if (fontIndex >= 0 && fontIndex < items.length && items[fontIndex]) {
20966
+ args.item.value = items[fontIndex].value;
20967
+ args.item.text = items[fontIndex].text;
20968
+ }
20969
+ }
20970
+ this.parent.formatter.process(this.parent, args, keyboardArgs);
20971
+ };
20972
+ HtmlEditor.prototype.convertFontSize = function (value, originalUnit, targetUnit) {
20973
+ if (supportedUnits.indexOf(originalUnit) !== -1 || supportedUnits.indexOf(targetUnit) !== -1) {
20974
+ originalUnit = 'px';
20975
+ }
20976
+ var convertedValue = value * conversionFactors[originalUnit][targetUnit];
20977
+ return convertedValue;
20978
+ };
20467
20979
  HtmlEditor.prototype.onKeyUp = function (e) {
20468
20980
  var args = e.args;
20469
20981
  var restrictKeys = [8, 9, 13, 16, 17, 18, 20, 27, 37, 38, 39, 40, 44, 45, 46, 91,
@@ -20585,7 +21097,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20585
21097
  e.args.keyCode === 13) {
20586
21098
  this.spaceLink(e.args);
20587
21099
  if (this.parent.editorMode === 'HTML' && !this.parent.readonly) {
20588
- var currentLength = this.parent.getText().trim().replace(/(\r\n|\n|\r)/gm, '').replace(/\u200B/g, '').length;
21100
+ var currentLength = this.parent.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length;
20589
21101
  var selectionLength = this.parent.getSelection().length;
20590
21102
  var totalLength = (currentLength - selectionLength) + 1;
20591
21103
  if (!(this.parent.maxLength === -1 || totalLength <= this.parent.maxLength) &&
@@ -20747,7 +21259,7 @@ var HtmlEditor = /** @__PURE__ @class */ (function () {
20747
21259
  var liElement;
20748
21260
  var rootElement;
20749
21261
  if (e.args.code === 'Delete' && e.args.keyCode === 46 &&
20750
- this.parent.contentModule.getText().trim().replace(/(\r\n|\n|\r)/gm, '').replace(/\u200B/g, '').length !== 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.parentElement.tagName !== 'TD' &&
21262
+ this.parent.contentModule.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length !== 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.parentElement.tagName !== 'TD' &&
20751
21263
  currentRange.startContainer.parentElement.tagName !== 'TH') {
20752
21264
  this.deleteRangeElement = rootElement = this.getRootBlockNode(currentRange.startContainer);
20753
21265
  if (this.deleteRangeElement.tagName === 'OL' || this.deleteRangeElement.tagName === 'UL') {
@@ -21350,7 +21862,8 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21350
21862
  args: e.args,
21351
21863
  text: e.text,
21352
21864
  allowedStylePropertiesArray: this.parent.pasteCleanupSettings.allowedStyleProps,
21353
- callBack: function (a, cropImageData) {
21865
+ callBack: function (a, cropImageData, pasteTableSource) {
21866
+ args.pasteTableSource = pasteTableSource;
21354
21867
  value = a.trim();
21355
21868
  _this.cropImageData = cropImageData;
21356
21869
  }
@@ -21925,10 +22438,24 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21925
22438
  }
21926
22439
  this.parent.trigger(afterPasteCleanup, { value: clipBoardElem.innerHTML, filesData: filesData }, function (updatedArgs) { value = updatedArgs.value; });
21927
22440
  clipBoardElem.innerHTML = this.parent.addAnchorAriaLabel(value);
21928
- clipBoardElem = this.addTableClass(clipBoardElem);
22441
+ clipBoardElem = this.addTableClass(clipBoardElem, args.pasteTableSource);
21929
22442
  this.parent.formatter.editorManager.execCommand('inserthtml', 'pasteCleanup', args, function (returnArgs) {
21930
22443
  extend(args, { elements: returnArgs.elements, imageElements: returnArgs.imgElem }, true);
21931
22444
  _this.parent.formatter.onSuccess(_this.parent, args);
22445
+ if (!isNullOrUndefined(returnArgs.elements) && !isNullOrUndefined(returnArgs.imgElem)) {
22446
+ var pasteContent = returnArgs.elements;
22447
+ var imageContent = returnArgs.imgElem;
22448
+ var lastElementChild = _this.findLastElement(pasteContent[pasteContent.length - 1]);
22449
+ var isImageAtLast = !isNullOrUndefined(lastElementChild) ? lastElementChild.nodeName === 'IMG' : false;
22450
+ if (isImageAtLast || pasteContent[pasteContent.length - 1] === imageContent[imageContent.length - 1]) {
22451
+ _this.parent.notify(insertCompleted, {
22452
+ args: args.event,
22453
+ type: 'Images',
22454
+ isNotify: true,
22455
+ elements: imageContent[imageContent.length - 1]
22456
+ });
22457
+ }
22458
+ }
21932
22459
  }, clipBoardElem, null, null, this.parent.enterKey);
21933
22460
  this.removeTempClass();
21934
22461
  this.parent.notify(toolbarRefresh, {});
@@ -21983,12 +22510,15 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
21983
22510
  }
21984
22511
  }
21985
22512
  };
21986
- PasteCleanup.prototype.addTableClass = function (element) {
22513
+ PasteCleanup.prototype.addTableClass = function (element, source) {
21987
22514
  var tableElement = element.querySelectorAll('table');
21988
22515
  for (var i = 0; i < tableElement.length; i++) {
21989
- if (!tableElement[i].classList.contains('e-rte-table')) {
22516
+ if (!tableElement[i].classList.contains('e-rte-table') && (source === 'html' || source === '')) {
21990
22517
  tableElement[i].classList.add('e-rte-table');
21991
22518
  }
22519
+ else if (source && source !== 'html') {
22520
+ tableElement[i].classList.add('e-rte-paste-' + source + '-table');
22521
+ }
21992
22522
  }
21993
22523
  return element;
21994
22524
  };
@@ -22323,6 +22853,16 @@ var PasteCleanup = /** @__PURE__ @class */ (function () {
22323
22853
  }
22324
22854
  return clipBoardElem;
22325
22855
  };
22856
+ PasteCleanup.prototype.findLastElement = function (element) {
22857
+ if (!isNullOrUndefined(element) && !isNullOrUndefined(element.lastElementChild)) {
22858
+ var lastChild = element.lastElementChild;
22859
+ while (lastChild && lastChild.lastElementChild) {
22860
+ lastChild = lastChild.lastElementChild;
22861
+ }
22862
+ return lastChild;
22863
+ }
22864
+ return null;
22865
+ };
22326
22866
  /**
22327
22867
  * For internal use only - Get the module name.
22328
22868
  *
@@ -22827,6 +23367,7 @@ var FullScreen = /** @__PURE__ @class */ (function () {
22827
23367
  _this.parent.toolbarModule.addFixedTBarClass();
22828
23368
  }
22829
23369
  }
23370
+ _this.parent.refreshUI();
22830
23371
  _this.parent.trigger(actionComplete, { requestType: 'Minimize', targetItem: 'Minimize', args: event });
22831
23372
  }
22832
23373
  });
@@ -23745,7 +24286,7 @@ var EmojiPicker = /** @__PURE__ @class */ (function () {
23745
24286
  noEmojiObj.style.margin = '55px';
23746
24287
  emojipickerAll.appendChild(noEmojiObj);
23747
24288
  }
23748
- else if (!noEMoji && this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji') || (inputValue === '' && value === ':')) {
24289
+ else if (!noEMoji && this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji') || (inputValue === '' && value === ':') || (inputValue === '' && this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji'))) {
23749
24290
  emojipickerAll.removeChild(this.parent.element.querySelector('.e-rte-emojiSearch-noEmoji'));
23750
24291
  }
23751
24292
  emojipickerAll.appendChild(emojiBtnDiv);
@@ -24399,12 +24940,20 @@ var Link = /** @__PURE__ @class */ (function () {
24399
24940
  }
24400
24941
  var target = (this.selfLink.checkBoxObj.checked) ? '_blank' : null;
24401
24942
  var linkLabel = (this.selfLink.checkBoxObj.checked) ? this.selfLink.i10n.getConstant('linkAriaLabel') : null;
24943
+ if (this.selfLink.parent.editorMode === 'Markdown' && linkUrl === '') {
24944
+ linkUrl = 'http://';
24945
+ }
24402
24946
  if (linkUrl === '') {
24403
24947
  this.selfLink.checkUrl(true);
24404
24948
  return;
24405
24949
  }
24406
24950
  if (!this.selfLink.isUrl(linkUrl)) {
24407
- linkText = (linkText === '') ? linkUrl : linkText;
24951
+ if (this.selfLink.parent.editorMode === 'Markdown') {
24952
+ linkText = (linkText !== '') ? linkText : '';
24953
+ }
24954
+ else {
24955
+ linkText = (linkText === '') ? linkUrl : linkText;
24956
+ }
24408
24957
  if (!this.selfLink.parent.enableAutoUrl) {
24409
24958
  linkUrl = linkUrl.indexOf('http') > -1 ? linkUrl : 'http://' + linkUrl;
24410
24959
  }
@@ -24545,6 +25094,7 @@ var Link = /** @__PURE__ @class */ (function () {
24545
25094
  this.parent.inlineMode.enable && !closest(target, '#' + this.dialogObj.element.id)) &&
24546
25095
  !closest(target, '#' + this.parent.getID() + '_toolbar_CreateLink') &&
24547
25096
  !target.querySelector('#' + this.parent.getID() + '_toolbar_CreateLink')))) {
25097
+ this.parent.notify(documentClickClosedBy, { closedBy: "outside click" });
24548
25098
  this.dialogObj.hide({ returnValue: true });
24549
25099
  EventHandler.remove(this.parent.element.ownerDocument, 'mousedown', this.onDocumentClick);
24550
25100
  this.parent.isBlur = true;
@@ -25296,6 +25846,14 @@ var Image$1 = /** @__PURE__ @class */ (function () {
25296
25846
  originalEvent.preventDefault();
25297
25847
  break;
25298
25848
  }
25849
+ if (originalEvent.ctrlKey && originalEvent.key === 'a') {
25850
+ this.handleSelectAll();
25851
+ }
25852
+ };
25853
+ Image.prototype.handleSelectAll = function () {
25854
+ this.cancelResizeAction();
25855
+ var imgFocusNodes = this.parent.inputElement.querySelectorAll('.' + CLS_IMG_FOCUS);
25856
+ removeClass(imgFocusNodes, CLS_IMG_FOCUS);
25299
25857
  };
25300
25858
  Image.prototype.openDialog = function (isInternal, event, selection, ele, parentEle) {
25301
25859
  var range;
@@ -25465,10 +26023,12 @@ var Image$1 = /** @__PURE__ @class */ (function () {
25465
26023
  _this.parent.formatter.editorManager.nodeSelection.Clear(_this.contentModule.getDocument());
25466
26024
  _this.parent.formatter.editorManager.nodeSelection.setSelectionContents(_this.contentModule.getDocument(), target);
25467
26025
  _this.quickToolObj.imageQTBar.showPopup(args.pageX, pageY, target);
26026
+ _this.resizeStart(e.args, target);
25468
26027
  }, 400);
25469
26028
  }
25470
26029
  else {
25471
- this.quickToolObj.imageQTBar.showPopup(args.pageX, pageY, target);
26030
+ var coordinates = target.getBoundingClientRect();
26031
+ this.quickToolObj.imageQTBar.showPopup(coordinates.left, coordinates.top, target, 'Image');
25472
26032
  }
25473
26033
  }
25474
26034
  };
@@ -25932,7 +26492,7 @@ var Image$1 = /** @__PURE__ @class */ (function () {
25932
26492
  isModal: Browser.isDevice,
25933
26493
  buttons: [{
25934
26494
  click: this.insertImageUrl.bind(selectObj),
25935
- buttonModel: { content: imgInsert, cssClass: 'e-flat e-insertImage' + this.parent.getCssClass(true), isPrimary: true, disabled: true }
26495
+ buttonModel: { content: imgInsert, cssClass: 'e-flat e-insertImage' + this.parent.getCssClass(true), isPrimary: true, disabled: this.parent.editorMode === 'Markdown' ? false : true }
25936
26496
  },
25937
26497
  {
25938
26498
  click: function (e) {
@@ -26038,6 +26598,7 @@ var Image$1 = /** @__PURE__ @class */ (function () {
26038
26598
  if (e.offsetX > e.target.clientWidth || e.offsetY > e.target.clientHeight) {
26039
26599
  }
26040
26600
  else {
26601
+ this.parent.notify(documentClickClosedBy, { closedBy: "outside click" });
26041
26602
  this.dialogObj.hide({ returnValue: true });
26042
26603
  this.parent.isBlur = true;
26043
26604
  dispatchEvent(this.parent.element, 'focusout');
@@ -26099,6 +26660,10 @@ var Image$1 = /** @__PURE__ @class */ (function () {
26099
26660
  }
26100
26661
  }
26101
26662
  });
26663
+ if (e.selectNode && e.selectNode[0].nodeName === 'IMG') {
26664
+ var regex = new RegExp(/([^\S]|^)(((https?\:\/\/)|(www\.))(\S+))/gi);
26665
+ this.inputUrl.value = e.selectNode[0].src.match(regex) ? e.selectNode[0].src : '';
26666
+ }
26102
26667
  imgUrl.appendChild(this.inputUrl);
26103
26668
  return imgUrl;
26104
26669
  };
@@ -26107,6 +26672,9 @@ var Image$1 = /** @__PURE__ @class */ (function () {
26107
26672
  var proxy = this.selfImage;
26108
26673
  proxy.isImgUploaded = false;
26109
26674
  var url = proxy.inputUrl.value;
26675
+ if (proxy.parent.editorMode === 'Markdown' && url === '') {
26676
+ url = 'http://';
26677
+ }
26110
26678
  if (proxy.parent.formatter.getUndoRedoStack().length === 0) {
26111
26679
  proxy.parent.formatter.saveData();
26112
26680
  }
@@ -27106,6 +27674,13 @@ var Audio = /** @__PURE__ @class */ (function () {
27106
27674
  originalEvent.preventDefault();
27107
27675
  break;
27108
27676
  }
27677
+ if (originalEvent.ctrlKey && originalEvent.key === 'a') {
27678
+ this.handleSelectAll();
27679
+ }
27680
+ };
27681
+ Audio.prototype.handleSelectAll = function () {
27682
+ var audioFocusNodes = this.parent.inputElement.querySelectorAll('.' + CLS_AUD_FOCUS);
27683
+ removeClass(audioFocusNodes, CLS_AUD_FOCUS);
27109
27684
  };
27110
27685
  Audio.prototype.openDialog = function (isInternal, event, selection, ele, parentEle) {
27111
27686
  var range;
@@ -27246,6 +27821,7 @@ var Audio = /** @__PURE__ @class */ (function () {
27246
27821
  if (e.offsetX > e.target.clientWidth || e.offsetY > e.target.clientHeight) {
27247
27822
  }
27248
27823
  else {
27824
+ this.parent.notify(documentClickClosedBy, { closedBy: "outside click" });
27249
27825
  this.dialogObj.hide({ returnValue: true });
27250
27826
  this.parent.isBlur = true;
27251
27827
  dispatchEvent(this.parent.element, 'focusout');
@@ -27507,6 +28083,11 @@ var Audio = /** @__PURE__ @class */ (function () {
27507
28083
  }
27508
28084
  }
27509
28085
  });
28086
+ if (e.selectNode && this.isAudioElem(e.selectNode[0])) {
28087
+ var regex = new RegExp(/([^\S]|^)(((https?\:\/\/)|(www\.))(\S+))/gi);
28088
+ var sourceElement = e.selectNode[0].querySelector('source');
28089
+ this.inputUrl.value = sourceElement.src.match(regex) ? sourceElement.src : '';
28090
+ }
27510
28091
  audioUrl.appendChild(this.inputUrl);
27511
28092
  return audioUrl;
27512
28093
  };
@@ -28403,6 +28984,14 @@ var Video = /** @__PURE__ @class */ (function () {
28403
28984
  originalEvent.preventDefault();
28404
28985
  break;
28405
28986
  }
28987
+ if (originalEvent.ctrlKey && originalEvent.key === 'a') {
28988
+ this.handleSelectAll();
28989
+ }
28990
+ };
28991
+ Video.prototype.handleSelectAll = function () {
28992
+ this.cancelResizeAction();
28993
+ var videoFocusNodes = this.parent.inputElement.querySelectorAll('.' + CLS_VID_FOCUS);
28994
+ removeClass(videoFocusNodes, CLS_VID_FOCUS);
28406
28995
  };
28407
28996
  Video.prototype.openDialog = function (isInternal, event, selection, ele, parentEle) {
28408
28997
  var range;
@@ -28580,6 +29169,7 @@ var Video = /** @__PURE__ @class */ (function () {
28580
29169
  if (e.offsetX > e.target.clientWidth || e.offsetY > e.target.clientHeight) {
28581
29170
  }
28582
29171
  else {
29172
+ this.parent.notify(documentClickClosedBy, { closedBy: "outside click" });
28583
29173
  this.dialogObj.hide({ returnValue: true });
28584
29174
  this.parent.isBlur = true;
28585
29175
  dispatchEvent(this.parent.element, 'focusout');
@@ -28869,6 +29459,15 @@ var Video = /** @__PURE__ @class */ (function () {
28869
29459
  }
28870
29460
  }
28871
29461
  });
29462
+ if (e.selectNode && ((e.selectNode[0] && e.selectNode[0].nodeType !== 3 &&
29463
+ e.selectNode[0].nodeName !== 'BR' &&
29464
+ (e.selectNode[0].classList &&
29465
+ e.selectNode[0].classList.contains(CLS_VID_CLICK_ELEM))) ||
29466
+ e.selectNode[0].nodeName === 'IFRAME' || e.selectNode[0].nodeName === 'VIDEO')) {
29467
+ var regex = new RegExp(/([^\S]|^)(((https?\:\/\/)|(www\.))(\S+))/gi);
29468
+ var sourceElement = e.selectNode[0].querySelector('source');
29469
+ this.inputUrl.value = sourceElement.src.match(regex) ? sourceElement.src : '';
29470
+ }
28872
29471
  var embedUrlBtn = new RadioButton({
28873
29472
  label: this.i10n.getConstant('embeddedCode'),
28874
29473
  checked: true,
@@ -28878,7 +29477,6 @@ var Video = /** @__PURE__ @class */ (function () {
28878
29477
  },
28879
29478
  change: function () {
28880
29479
  urlContent.innerHTML = '';
28881
- _this.inputUrl.value = '';
28882
29480
  urlContent.appendChild(_this.embedInputUrl);
28883
29481
  }
28884
29482
  });
@@ -28888,7 +29486,6 @@ var Video = /** @__PURE__ @class */ (function () {
28888
29486
  name: 'URL',
28889
29487
  change: function () {
28890
29488
  urlContent.innerHTML = '';
28891
- _this.embedInputUrl.value = '';
28892
29489
  urlContent.appendChild(_this.inputUrl);
28893
29490
  }
28894
29491
  });
@@ -29079,10 +29676,11 @@ var Video = /** @__PURE__ @class */ (function () {
29079
29676
  this.selection = proxy.parent.formatter.editorManager.nodeSelection.save(range, proxy.contentModule.getDocument());
29080
29677
  this.selectParent = proxy.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
29081
29678
  }
29082
- var name_1 = url !== '' ? url.split('/')[url.split('/').length - 1] : embedUrl;
29679
+ var webUrlBtn = document.getElementById('webURL');
29680
+ var name_1 = webUrlBtn.checked ? url.split('/')[url.split('/').length - 1] : embedUrl;
29083
29681
  var value = {
29084
29682
  cssClass: (proxy.parent.insertVideoSettings.layoutOption === 'Inline' ? CLS_VIDEOINLINE : CLS_VIDEOBREAK),
29085
- url: url, selection: this.selection, fileName: name_1, isEmbedUrl: embedUrl !== '' ? true : false,
29683
+ url: url, selection: this.selection, fileName: name_1, isEmbedUrl: !webUrlBtn.checked,
29086
29684
  selectParent: this.selectParent, width: {
29087
29685
  width: proxy.parent.insertVideoSettings.width, minWidth: proxy.parent.insertVideoSettings.minWidth,
29088
29686
  maxWidth: proxy.parent.getInsertImgMaxWidth()
@@ -29226,6 +29824,7 @@ var ViewSource = /** @__PURE__ @class */ (function () {
29226
29824
  * @deprecated
29227
29825
  */
29228
29826
  ViewSource.prototype.sourceCode = function (args) {
29827
+ var _this = this;
29229
29828
  this.parent.notify(hidePopup, {});
29230
29829
  this.parent.isBlur = false;
29231
29830
  this.parent.trigger(actionBegin, { requestType: 'SourceCode', targetItem: 'SourceCode', args: args });
@@ -29284,6 +29883,9 @@ var ViewSource = /** @__PURE__ @class */ (function () {
29284
29883
  }
29285
29884
  this.parent.trigger(actionComplete, { requestType: 'SourceCode', targetItem: 'SourceCode', args: args });
29286
29885
  this.parent.invokeChangeEvent();
29886
+ if (!isNullOrUndefined(this.parent.saveInterval) && this.parent.saveInterval > 0 && this.parent.autoSaveOnIdle) {
29887
+ this.codeViewTimeInterval = setInterval(function () { _this.parent.notify(updateValueOnIdle, {}); }, this.parent.saveInterval);
29888
+ }
29287
29889
  };
29288
29890
  /**
29289
29891
  * updateSourceCode method
@@ -29345,6 +29947,7 @@ var ViewSource = /** @__PURE__ @class */ (function () {
29345
29947
  this.parent.trigger(actionComplete, { requestType: 'Preview', targetItem: 'Preview', args: args });
29346
29948
  this.parent.formatter.enableUndo(this.parent);
29347
29949
  this.parent.addAudioVideoWrapper();
29950
+ clearTimeout(this.codeViewTimeInterval);
29348
29951
  this.parent.invokeChangeEvent();
29349
29952
  this.parent.notify(tableclass, {});
29350
29953
  };
@@ -29437,6 +30040,7 @@ var Table = /** @__PURE__ @class */ (function () {
29437
30040
  this.parent.on(bindCssClass, this.setCssClass, this);
29438
30041
  this.parent.on(destroy, this.destroy, this);
29439
30042
  this.parent.on(moduleDestroy, this.moduleDestroy, this);
30043
+ this.parent.on(afterKeyDown, this.afterKeyDown, this);
29440
30044
  };
29441
30045
  Table.prototype.removeEventListener = function () {
29442
30046
  if (this.parent.isDestroyed) {
@@ -29462,6 +30066,7 @@ var Table = /** @__PURE__ @class */ (function () {
29462
30066
  this.parent.off(bindCssClass, this.setCssClass);
29463
30067
  this.parent.off(destroy, this.destroy);
29464
30068
  this.parent.off(moduleDestroy, this.moduleDestroy);
30069
+ this.parent.off(afterKeyDown, this.afterKeyDown);
29465
30070
  if (!Browser.isDevice && this.parent.tableSettings.resize) {
29466
30071
  EventHandler.remove(this.contentModule.getEditPanel(), 'mouseover', this.resizeHelper);
29467
30072
  }
@@ -29619,6 +30224,14 @@ var Table = /** @__PURE__ @class */ (function () {
29619
30224
  }
29620
30225
  }
29621
30226
  }
30227
+ if (event.ctrlKey && event.key === 'a') {
30228
+ this.handleSelectAll();
30229
+ }
30230
+ };
30231
+ Table.prototype.handleSelectAll = function () {
30232
+ this.cancelResizeAction();
30233
+ var selectedCells = this.parent.inputElement.querySelectorAll('.' + CLS_TABLE_SEL);
30234
+ removeClass(selectedCells, CLS_TABLE_SEL);
29622
30235
  };
29623
30236
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
29624
30237
  Table.prototype.tableModulekeyUp = function (e) {
@@ -29652,7 +30265,6 @@ var Table = /** @__PURE__ @class */ (function () {
29652
30265
  name: !isInternal ? 'showDialog' : null
29653
30266
  };
29654
30267
  this.insertTableDialog({ self: this, args: args, selection: selection });
29655
- this.parent.formatter.editorManager.nodeSelection.restore();
29656
30268
  }
29657
30269
  };
29658
30270
  Table.prototype.showDialog = function () {
@@ -29997,7 +30609,7 @@ var Table = /** @__PURE__ @class */ (function () {
29997
30609
  return;
29998
30610
  }
29999
30611
  var target = e.target || e.targetTouches[0].target;
30000
- var closestTable = closest(target, 'table.e-rte-table');
30612
+ var closestTable = closest(target, 'table.e-rte-table, table.e-rte-paste-table');
30001
30613
  if (!isNullOrUndefined(this.curTable) && !isNullOrUndefined(closestTable) && closestTable !== this.curTable &&
30002
30614
  this.parent.contentModule.getEditPanel().contains(closestTable)) {
30003
30615
  this.removeResizeElement();
@@ -30637,6 +31249,7 @@ var Table = /** @__PURE__ @class */ (function () {
30637
31249
  this.popupObj.hide();
30638
31250
  }
30639
31251
  if (this.editdlgObj) {
31252
+ this.parent.notify(documentClickClosedBy, { closedBy: "outside click" });
30640
31253
  this.editdlgObj.hide();
30641
31254
  }
30642
31255
  this.parent.isBlur = true;
@@ -30947,6 +31560,16 @@ var Table = /** @__PURE__ @class */ (function () {
30947
31560
  Table.prototype.getModuleName = function () {
30948
31561
  return 'table';
30949
31562
  };
31563
+ Table.prototype.afterKeyDown = function (e) {
31564
+ var _this = this;
31565
+ if (this.curTable) {
31566
+ setTimeout(function () {
31567
+ var mouseOverEvent = document.createEvent('MouseEvents');
31568
+ mouseOverEvent.initEvent('mouseover', true, true);
31569
+ _this.curTable.dispatchEvent(mouseOverEvent);
31570
+ }, 1);
31571
+ }
31572
+ };
30950
31573
  return Table;
30951
31574
  }());
30952
31575
 
@@ -30964,6 +31587,7 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
30964
31587
  }
30965
31588
  this.parent.on(moduleDestroy, this.moduleDestroy, this);
30966
31589
  this.parent.on(destroy, this.removeEventListener, this);
31590
+ this.parent.on(documentClickClosedBy, this.documentClickClosedBy, this);
30967
31591
  };
30968
31592
  DialogRenderer.prototype.removeEventListener = function () {
30969
31593
  if (this.parent.isDestroyed) {
@@ -30971,6 +31595,7 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
30971
31595
  }
30972
31596
  this.parent.off(destroy, this.removeEventListener);
30973
31597
  this.parent.off(moduleDestroy, this.moduleDestroy);
31598
+ this.parent.off(documentClickClosedBy, this.documentClickClosedBy);
30974
31599
  };
30975
31600
  /**
30976
31601
  * dialog render method
@@ -31017,10 +31642,14 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
31017
31642
  DialogRenderer.prototype.open = function (args) {
31018
31643
  this.parent.trigger(dialogOpen, args);
31019
31644
  };
31645
+ DialogRenderer.prototype.documentClickClosedBy = function (args) {
31646
+ this.outsideClickClosedBy = args.closedBy;
31647
+ };
31020
31648
  DialogRenderer.prototype.beforeClose = function (args) {
31021
31649
  if (this.dialogEle) {
31022
31650
  this.dialogEle.removeEventListener('keydown', this.handleEnterKeyDown);
31023
31651
  }
31652
+ args.closedBy = this.outsideClickClosedBy === 'outside click' ? this.outsideClickClosedBy : args.closedBy;
31024
31653
  this.parent.trigger(beforeDialogClose, args, function (closeArgs) {
31025
31654
  if (!closeArgs.cancel) {
31026
31655
  if (closeArgs.container.classList.contains('e-popup-close')) {
@@ -31028,6 +31657,7 @@ var DialogRenderer = /** @__PURE__ @class */ (function () {
31028
31657
  }
31029
31658
  }
31030
31659
  });
31660
+ this.outsideClickClosedBy = "";
31031
31661
  };
31032
31662
  DialogRenderer.prototype.getDialogPosition = function () {
31033
31663
  var distanceFromVisibleTop = this.parent.element.getBoundingClientRect().top;
@@ -32701,7 +33331,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
32701
33331
  if (tool.command === 'InsertText') {
32702
33332
  currentInsertContentLength = value.length;
32703
33333
  }
32704
- var currentLength = this.getText().trim().replace(/(\r\n|\n|\r)/gm, '').replace(/\u200B/g, '').length;
33334
+ var currentLength = this.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length;
32705
33335
  var selectionLength = this.getSelection().length;
32706
33336
  var totalLength = (currentLength - selectionLength) + currentInsertContentLength;
32707
33337
  if (!(this.maxLength === -1 || totalLength <= this.maxLength)) {
@@ -33068,7 +33698,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33068
33698
  }
33069
33699
  if (e.action !== 'insert-link' &&
33070
33700
  e.action !== 'format-copy' && e.action !== 'format-paste' &&
33071
- (!e.target || !(e.target.classList.contains('e-mention') && e.code === 'Tab')) &&
33701
+ (!e.target || !(e.target.classList.contains('e-mention') && !isNullOrUndefined(document.querySelector('#' + e.target.id + '_popup.e-popup-open')) && e.code === 'Tab')) &&
33072
33702
  (e.action && e.action !== 'paste' && e.action !== 'space'
33073
33703
  || e.which === 9 || (e.code === 'Backspace' && e.which === 8))) {
33074
33704
  var FormatPainterEscapeAction = false;
@@ -33076,7 +33706,12 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33076
33706
  FormatPainterEscapeAction = this.formatPainterModule.previousAction === 'escape';
33077
33707
  }
33078
33708
  if (!FormatPainterEscapeAction) {
33079
- this.formatter.process(this, null, e);
33709
+ if (this.editorMode === 'HTML' && (e.action === 'increase-fontsize' || e.action === 'decrease-fontsize')) {
33710
+ this.notify(onHandleFontsizeChange, { member: 'onHandleFontsizeChange', args: e });
33711
+ }
33712
+ else {
33713
+ this.formatter.process(this, null, e);
33714
+ }
33080
33715
  }
33081
33716
  switch (e.action) {
33082
33717
  case 'toolbar-focus':
@@ -33102,6 +33737,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33102
33737
  this.setPlaceHolder();
33103
33738
  }
33104
33739
  }
33740
+ this.notify(afterKeyDown, { member: 'afterKeyDown', args: e });
33105
33741
  this.autoResize();
33106
33742
  };
33107
33743
  RichTextEditor.prototype.keyUp = function (e) {
@@ -33128,7 +33764,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33128
33764
  var formatPainterCopy = e.key === 'C' && e.altKey && e.shiftKey;
33129
33765
  var formatPainterPaste = e.key === 'V' && e.altKey && e.shiftKey;
33130
33766
  if ((!formatPainterCopy && !formatPainterPaste) && ((e.key !== 'shift' && !e.ctrlKey) && e.key && e.key.length === 1 || allowedKeys) || (this.editorMode === 'Markdown'
33131
- && ((e.key !== 'shift' && !e.ctrlKey) && e.key && e.key.length === 1 || allowedKeys)) && !this.inlineMode.enable) {
33767
+ && ((e.key !== 'shift' && !e.ctrlKey) && e.key && e.key.length === 1 || allowedKeys)) || (this.autoSaveOnIdle && Browser.isDevice) && !this.inlineMode.enable) {
33132
33768
  this.formatter.onKeyHandler(this, e);
33133
33769
  }
33134
33770
  if (this.inputElement && this.inputElement.textContent.length !== 0
@@ -33224,60 +33860,6 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33224
33860
  return;
33225
33861
  }
33226
33862
  }
33227
- if (e.detail === 3) {
33228
- var range = this.getRange();
33229
- var selection = this.formatter.editorManager.domNode.getSelection();
33230
- // To handle the triple click node selection improper range due to browser behavior.
33231
- if (selection.rangeCount > 0 && !isNullOrUndefined(range.startContainer.parentElement) && (!isNullOrUndefined(range.startContainer.parentElement.nextSibling) &&
33232
- (range.startContainer.parentElement.nextSibling.nodeType !== 3 ||
33233
- /\s+$/.test(range.startContainer.parentElement.nextSibling.textContent)) || range.startOffset === range.endOffset)
33234
- || range.startContainer.parentElement.tagName.toLocaleLowerCase() === 'li') {
33235
- var newRange = new Range();
33236
- var start = range.startContainer;
33237
- var end = range.endContainer;
33238
- var isInvalid = false;
33239
- var isInsideList = range.commonAncestorContainer.nodeName === 'OL' || range.commonAncestorContainer.nodeName === 'UL'
33240
- || range.commonAncestorContainer.nodeName === 'LI';
33241
- if (!isInsideList && end.nodeType === 1 && end.nodeName === 'LI') {
33242
- end = closest(end, 'ol, ul').previousElementSibling.lastElementChild;
33243
- }
33244
- else if (isInsideList && end.nodeType === 1 && range.endOffset === 0) {
33245
- if (end.previousElementSibling && end.previousElementSibling.lastElementChild) {
33246
- end = end.previousElementSibling.lastElementChild;
33247
- }
33248
- else {
33249
- end = closest(end.parentElement, 'li');
33250
- if (end && end.nodeName === 'LI') {
33251
- end = end.previousElementSibling;
33252
- }
33253
- }
33254
- }
33255
- else {
33256
- if (!closest(end, 'li') && end.previousElementSibling && end.previousElementSibling.lastChild &&
33257
- end.previousElementSibling.textContent.trim().length > 0) {
33258
- end = end.previousElementSibling.lastChild;
33259
- }
33260
- else if (closest(end, 'li') && end.previousElementSibling && end.previousElementSibling.lastChild) {
33261
- end = closest(end, 'li').parentElement.previousElementSibling.lastChild;
33262
- }
33263
- }
33264
- if (!end || end === this.inputElement) {
33265
- end = start;
33266
- isInvalid = true;
33267
- }
33268
- while (end.nodeName !== '#text' && !isInvalid) {
33269
- if (end.lastElementChild) {
33270
- end = end.lastElementChild;
33271
- }
33272
- else {
33273
- end = end.lastChild;
33274
- }
33275
- }
33276
- newRange.setStart(start, 0);
33277
- newRange.setEnd(end, end.textContent.length);
33278
- this.formatter.editorManager.nodeSelection.setRange(this.contentModule.getDocument(), newRange);
33279
- }
33280
- }
33281
33863
  this.notifyMouseUp(e);
33282
33864
  };
33283
33865
  /**
@@ -33319,10 +33901,10 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
33319
33901
  requestType: 'Paste'
33320
33902
  };
33321
33903
  this.trigger(actionBegin, evenArgs, function (pasteArgs) {
33322
- var currentLength = _this.inputElement.textContent.length;
33904
+ var currentLength = _this.getText().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length;
33323
33905
  var selectionLength = _this.getSelection().length;
33324
33906
  var pastedContentLength = (isNullOrUndefined(e) || isNullOrUndefined(e.clipboardData))
33325
- ? 0 : e.clipboardData.getData('text/plain').replace(/(\r\n|\n|\r)/gm, '').replace(/\u200B/g, '').length;
33907
+ ? 0 : e.clipboardData.getData('text/plain').replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length;
33326
33908
  var totalLength = (currentLength - selectionLength) + pastedContentLength;
33327
33909
  if (_this.editorMode === 'Markdown') {
33328
33910
  var args_1 = { requestType: 'Paste', editorMode: _this.editorMode, event: e };
@@ -34400,6 +34982,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34400
34982
  addClass([this.element], [CLS_FOCUS]);
34401
34983
  this.preventDefaultResize(e);
34402
34984
  this.notify(mouseDown, { args: e });
34985
+ this.formatter.editorManager.observer.notify(mouseDown, { args: e });
34403
34986
  this.clickPoints = { clientX: touch.clientX, clientY: touch.clientY };
34404
34987
  };
34405
34988
  RichTextEditor.prototype.preventImgResize = function (e) {
@@ -34561,6 +35144,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34561
35144
  detach(item[i]);
34562
35145
  }
34563
35146
  }
35147
+ this.removeSelectionClassStates(valueElementWrapper);
34564
35148
  return valueElementWrapper.innerHTML;
34565
35149
  };
34566
35150
  RichTextEditor.prototype.updateStatus = function (e) {
@@ -34608,6 +35192,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34608
35192
  }
34609
35193
  if (this.isBlur && isNullOrUndefined(trg)) {
34610
35194
  removeClass([this.element], [CLS_FOCUS]);
35195
+ this.removeSelectionClassStates(this.inputElement);
34611
35196
  this.notify(focusChange, {});
34612
35197
  var value = this.getUpdatedValue();
34613
35198
  this.setProperties({ value: value });
@@ -34774,6 +35359,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34774
35359
  this.on(resizeInitialized, this.updateResizeFlag, this);
34775
35360
  this.on(updateTbItemsStatus, this.updateStatus, this);
34776
35361
  this.on(cleanupResizeElements, this.cleanupResizeElements, this);
35362
+ this.on(updateValueOnIdle, this.updateValueOnIdle, this);
34777
35363
  if (this.readonly && this.enabled) {
34778
35364
  return;
34779
35365
  }
@@ -34782,7 +35368,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34782
35368
  RichTextEditor.prototype.restrict = function (e) {
34783
35369
  if (this.maxLength >= 0) {
34784
35370
  var element = this.editorMode === 'Markdown' ? this.contentModule.getText() :
34785
- (e && e.currentTarget.textContent);
35371
+ (this.getText().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, ''));
34786
35372
  if (!element) {
34787
35373
  return;
34788
35374
  }
@@ -34862,6 +35448,7 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34862
35448
  this.off(resizeInitialized, this.updateResizeFlag);
34863
35449
  this.off(updateTbItemsStatus, this.updateStatus);
34864
35450
  this.off(cleanupResizeElements, this.cleanupResizeElements);
35451
+ this.off(updateValueOnIdle, this.updateValueOnIdle);
34865
35452
  if (this.readonly && this.enabled) {
34866
35453
  return;
34867
35454
  }
@@ -34931,6 +35518,21 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
34931
35518
  }
34932
35519
  }
34933
35520
  };
35521
+ RichTextEditor.prototype.removeSelectionClassStates = function (element) {
35522
+ var classNames = [CLS_IMG_FOCUS, CLS_TABLE_SEL, CLS_VID_FOCUS, CLS_AUD_FOCUS];
35523
+ for (var i = 0; i < classNames.length; i++) {
35524
+ var item = element.querySelectorAll('.' + classNames[i]);
35525
+ removeClass(item, classNames[i]);
35526
+ if (item.length === 0) {
35527
+ continue;
35528
+ }
35529
+ for (var j = 0; j < item.length; j++) {
35530
+ if (item[j].classList.length === 0) {
35531
+ item[j].removeAttribute('class');
35532
+ }
35533
+ }
35534
+ }
35535
+ };
34934
35536
  __decorate$1([
34935
35537
  Complex({}, ToolbarSettings$1)
34936
35538
  ], RichTextEditor.prototype, "toolbarSettings", void 0);
@@ -35235,5 +35837,5 @@ var RichTextEditor = /** @__PURE__ @class */ (function (_super) {
35235
35837
  * Rich Text Editor component exported items
35236
35838
  */
35237
35839
 
35238
- 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, destroyTooltip, hidePopup, cleanupResizeElements, 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_TEXT_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 };
35840
+ 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, destroyTooltip, hidePopup, cleanupResizeElements, afterKeyDown, updateValueOnIdle, documentClickClosedBy, blockEmptyNodes, inlineEmptyNodes, supportedUnits, conversionFactors, onHandleFontsizeChange, 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_TEXT_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, getTooltipTextDropdownItems, getQuickToolbarTooltipText, 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, PASTE_SOURCE, 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, MOUSE_DOWN };
35239
35841
  //# sourceMappingURL=ej2-richtexteditor.es5.js.map