@syncfusion/ej2-richtexteditor 23.2.7-52849 → 24.1.41-569421

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 (171) hide show
  1. package/.eslintrc.json +260 -0
  2. package/CHANGELOG.md +203 -1
  3. package/dist/ej2-richtexteditor.umd.min.js +1 -1
  4. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-richtexteditor.es2015.js +9873 -7941
  6. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-richtexteditor.es5.js +9967 -8034
  8. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  9. package/package.json +13 -13
  10. package/src/common/config.d.ts +7 -0
  11. package/src/common/config.js +12 -1
  12. package/src/common/constant.d.ts +6 -0
  13. package/src/common/constant.js +6 -0
  14. package/src/common/interface.d.ts +12 -0
  15. package/src/common/types.d.ts +6 -0
  16. package/src/common/util.d.ts +6 -0
  17. package/src/common/util.js +61 -20
  18. package/src/editor-manager/base/constant.d.ts +6 -0
  19. package/src/editor-manager/base/constant.js +6 -0
  20. package/src/editor-manager/base/editor-manager.d.ts +5 -0
  21. package/src/editor-manager/base/editor-manager.js +59 -0
  22. package/src/editor-manager/base/interface.d.ts +8 -0
  23. package/src/editor-manager/plugin/audio.js +13 -3
  24. package/src/editor-manager/plugin/dom-node.d.ts +5 -1
  25. package/src/editor-manager/plugin/dom-node.js +169 -28
  26. package/src/editor-manager/plugin/format-painter-actions.d.ts +1 -0
  27. package/src/editor-manager/plugin/format-painter-actions.js +19 -1
  28. package/src/editor-manager/plugin/formats.d.ts +1 -0
  29. package/src/editor-manager/plugin/formats.js +38 -3
  30. package/src/editor-manager/plugin/image.js +38 -15
  31. package/src/editor-manager/plugin/indents.js +1 -1
  32. package/src/editor-manager/plugin/inserthtml.d.ts +1 -0
  33. package/src/editor-manager/plugin/inserthtml.js +83 -20
  34. package/src/editor-manager/plugin/link.js +8 -3
  35. package/src/editor-manager/plugin/lists.js +159 -70
  36. package/src/editor-manager/plugin/ms-word-clean-up.d.ts +3 -0
  37. package/src/editor-manager/plugin/ms-word-clean-up.js +215 -85
  38. package/src/editor-manager/plugin/nodecutter.js +5 -2
  39. package/src/editor-manager/plugin/selection-commands.d.ts +2 -0
  40. package/src/editor-manager/plugin/selection-commands.js +248 -4
  41. package/src/editor-manager/plugin/table.d.ts +4 -1
  42. package/src/editor-manager/plugin/table.js +95 -49
  43. package/src/editor-manager/plugin/toolbar-status.d.ts +2 -2
  44. package/src/editor-manager/plugin/toolbar-status.js +20 -10
  45. package/src/editor-manager/plugin/undo.d.ts +1 -0
  46. package/src/editor-manager/plugin/undo.js +21 -1
  47. package/src/rich-text-editor/actions/base-quick-toolbar.d.ts +4 -3
  48. package/src/rich-text-editor/actions/base-quick-toolbar.js +61 -14
  49. package/src/rich-text-editor/actions/base-toolbar.js +33 -34
  50. package/src/rich-text-editor/actions/color-picker.d.ts +1 -0
  51. package/src/rich-text-editor/actions/color-picker.js +13 -3
  52. package/src/rich-text-editor/actions/count.js +1 -1
  53. package/src/rich-text-editor/actions/dropdown-buttons.d.ts +1 -0
  54. package/src/rich-text-editor/actions/dropdown-buttons.js +11 -5
  55. package/src/rich-text-editor/actions/emoji-picker.js +16 -7
  56. package/src/rich-text-editor/actions/enter-key.js +10 -5
  57. package/src/rich-text-editor/actions/file-manager.js +1 -1
  58. package/src/rich-text-editor/actions/format-painter.js +5 -2
  59. package/src/rich-text-editor/actions/full-screen.js +5 -4
  60. package/src/rich-text-editor/actions/html-editor.d.ts +2 -0
  61. package/src/rich-text-editor/actions/html-editor.js +124 -17
  62. package/src/rich-text-editor/actions/keyboard.js +3 -1
  63. package/src/rich-text-editor/actions/markdown-editor.js +3 -1
  64. package/src/rich-text-editor/actions/paste-clean-up.d.ts +5 -0
  65. package/src/rich-text-editor/actions/paste-clean-up.js +156 -28
  66. package/src/rich-text-editor/actions/quick-toolbar.d.ts +8 -0
  67. package/src/rich-text-editor/actions/quick-toolbar.js +59 -12
  68. package/src/rich-text-editor/actions/resize.js +2 -1
  69. package/src/rich-text-editor/actions/toolbar-action.js +1 -1
  70. package/src/rich-text-editor/actions/toolbar.d.ts +3 -3
  71. package/src/rich-text-editor/actions/toolbar.js +35 -96
  72. package/src/rich-text-editor/base/classes.d.ts +5 -5
  73. package/src/rich-text-editor/base/classes.js +5 -5
  74. package/src/rich-text-editor/base/constant.d.ts +46 -1
  75. package/src/rich-text-editor/base/constant.js +215 -1
  76. package/src/rich-text-editor/base/interface.d.ts +47 -3
  77. package/src/rich-text-editor/base/rich-text-editor-model.d.ts +3 -3
  78. package/src/rich-text-editor/base/rich-text-editor.d.ts +16 -4
  79. package/src/rich-text-editor/base/rich-text-editor.js +184 -97
  80. package/src/rich-text-editor/base/util.js +22 -4
  81. package/src/rich-text-editor/formatter/formatter.js +16 -4
  82. package/src/rich-text-editor/models/default-locale.js +31 -25
  83. package/src/rich-text-editor/models/items.js +3 -3
  84. package/src/rich-text-editor/models/toolbar-settings-model.d.ts +1 -1
  85. package/src/rich-text-editor/models/toolbar-settings.d.ts +1 -1
  86. package/src/rich-text-editor/models/toolbar-settings.js +1 -1
  87. package/src/rich-text-editor/renderer/audio-module.d.ts +1 -0
  88. package/src/rich-text-editor/renderer/audio-module.js +22 -4
  89. package/src/rich-text-editor/renderer/dialog-renderer.d.ts +2 -0
  90. package/src/rich-text-editor/renderer/dialog-renderer.js +22 -2
  91. package/src/rich-text-editor/renderer/iframe-content-renderer.js +2 -1
  92. package/src/rich-text-editor/renderer/image-module.d.ts +9 -1
  93. package/src/rich-text-editor/renderer/image-module.js +248 -213
  94. package/src/rich-text-editor/renderer/link-module.js +53 -24
  95. package/src/rich-text-editor/renderer/table-module.d.ts +10 -1
  96. package/src/rich-text-editor/renderer/table-module.js +343 -168
  97. package/src/rich-text-editor/renderer/toolbar-renderer.d.ts +3 -6
  98. package/src/rich-text-editor/renderer/toolbar-renderer.js +106 -101
  99. package/src/rich-text-editor/renderer/video-module.d.ts +3 -0
  100. package/src/rich-text-editor/renderer/video-module.js +82 -41
  101. package/src/rich-text-editor/renderer/view-source.d.ts +1 -0
  102. package/src/rich-text-editor/renderer/view-source.js +15 -5
  103. package/src/selection/selection.js +3 -0
  104. package/styles/bootstrap-dark.css +353 -103
  105. package/styles/bootstrap.css +357 -112
  106. package/styles/bootstrap4.css +338 -96
  107. package/styles/bootstrap5-dark.css +344 -97
  108. package/styles/bootstrap5.css +344 -97
  109. package/styles/fabric-dark.css +332 -90
  110. package/styles/fabric.css +333 -91
  111. package/styles/fluent-dark.css +360 -98
  112. package/styles/fluent.css +360 -98
  113. package/styles/highcontrast-light.css +332 -90
  114. package/styles/highcontrast.css +336 -91
  115. package/styles/material-dark.css +339 -92
  116. package/styles/material.css +339 -92
  117. package/styles/material3-dark.css +348 -100
  118. package/styles/material3.css +348 -100
  119. package/styles/rich-text-editor/_bds-definition.scss +279 -0
  120. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +17 -13
  121. package/styles/rich-text-editor/_bootstrap-definition.scss +22 -19
  122. package/styles/rich-text-editor/_bootstrap4-definition.scss +11 -7
  123. package/styles/rich-text-editor/_bootstrap5-definition.scss +8 -4
  124. package/styles/rich-text-editor/_fabric-dark-definition.scss +6 -2
  125. package/styles/rich-text-editor/_fabric-definition.scss +7 -3
  126. package/styles/rich-text-editor/_fluent-definition.scss +14 -10
  127. package/styles/rich-text-editor/_fusionnew-definition.scss +7 -3
  128. package/styles/rich-text-editor/_highcontrast-definition.scss +7 -3
  129. package/styles/rich-text-editor/_highcontrast-light-definition.scss +6 -2
  130. package/styles/rich-text-editor/_layout.scss +211 -34
  131. package/styles/rich-text-editor/_material-dark-definition.scss +6 -2
  132. package/styles/rich-text-editor/_material-definition.scss +6 -2
  133. package/styles/rich-text-editor/_material3-definition.scss +16 -12
  134. package/styles/rich-text-editor/_tailwind-definition.scss +23 -19
  135. package/styles/rich-text-editor/_theme.scss +113 -24
  136. package/styles/rich-text-editor/bootstrap-dark.css +353 -103
  137. package/styles/rich-text-editor/bootstrap.css +357 -112
  138. package/styles/rich-text-editor/bootstrap4.css +338 -96
  139. package/styles/rich-text-editor/bootstrap5-dark.css +344 -97
  140. package/styles/rich-text-editor/bootstrap5.css +344 -97
  141. package/styles/rich-text-editor/fabric-dark.css +332 -90
  142. package/styles/rich-text-editor/fabric.css +333 -91
  143. package/styles/rich-text-editor/fluent-dark.css +360 -98
  144. package/styles/rich-text-editor/fluent.css +360 -98
  145. package/styles/rich-text-editor/highcontrast-light.css +332 -90
  146. package/styles/rich-text-editor/highcontrast.css +336 -91
  147. package/styles/rich-text-editor/icons/_bds.scss +348 -0
  148. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +4 -4
  149. package/styles/rich-text-editor/icons/_bootstrap.scss +4 -4
  150. package/styles/rich-text-editor/icons/_bootstrap4.scss +4 -4
  151. package/styles/rich-text-editor/icons/_bootstrap5.scss +4 -4
  152. package/styles/rich-text-editor/icons/_fabric-dark.scss +4 -4
  153. package/styles/rich-text-editor/icons/_fabric.scss +4 -4
  154. package/styles/rich-text-editor/icons/_fluent.scss +4 -4
  155. package/styles/rich-text-editor/icons/_fusionnew.scss +3 -3
  156. package/styles/rich-text-editor/icons/_highcontrast-light.scss +4 -4
  157. package/styles/rich-text-editor/icons/_highcontrast.scss +4 -4
  158. package/styles/rich-text-editor/icons/_material-dark.scss +4 -4
  159. package/styles/rich-text-editor/icons/_material.scss +4 -4
  160. package/styles/rich-text-editor/icons/_material3.scss +4 -4
  161. package/styles/rich-text-editor/icons/_tailwind.scss +4 -4
  162. package/styles/rich-text-editor/material-dark.css +339 -92
  163. package/styles/rich-text-editor/material.css +339 -92
  164. package/styles/rich-text-editor/material3-dark.css +348 -100
  165. package/styles/rich-text-editor/material3.css +348 -100
  166. package/styles/rich-text-editor/tailwind-dark.css +383 -113
  167. package/styles/rich-text-editor/tailwind.css +383 -113
  168. package/styles/tailwind-dark.css +383 -113
  169. package/styles/tailwind.css +383 -113
  170. package/.github/PULL_REQUEST_TEMPLATE/Bug.md +0 -41
  171. package/.github/PULL_REQUEST_TEMPLATE/Feature.md +0 -27
@@ -17,12 +17,11 @@ export declare class ToolbarRenderer implements IRenderer {
17
17
  * @private
18
18
  */
19
19
  parent: IRichTextEditor;
20
- private popupContainer;
21
20
  private currentElement;
22
21
  private currentDropdown;
23
- private popupOverlay;
24
22
  private tooltip;
25
23
  private l10n;
24
+ private tooltipTargetEle;
26
25
  /**
27
26
  * Constructor for toolbar renderer module
28
27
  *
@@ -41,7 +40,6 @@ export declare class ToolbarRenderer implements IRenderer {
41
40
  private tooltipBeforeRender;
42
41
  private dropDownOpen;
43
42
  private dropDownClose;
44
- private removePopupContainer;
45
43
  /**
46
44
  * renderToolbar method
47
45
  *
@@ -60,6 +58,8 @@ export declare class ToolbarRenderer implements IRenderer {
60
58
  * @deprecated
61
59
  */
62
60
  renderDropDownButton(args: IDropDownModel): DropDownButton;
61
+ private mouseOutHandler;
62
+ private closeTooltip;
63
63
  /**
64
64
  * renderListDropDown method
65
65
  *
@@ -69,8 +69,6 @@ export declare class ToolbarRenderer implements IRenderer {
69
69
  * @deprecated
70
70
  */
71
71
  renderListDropDown(args: IDropDownModel): DropDownButton;
72
- private onPopupOverlay;
73
- private setIsModel;
74
72
  private paletteSelection;
75
73
  /**
76
74
  * renderColorPickerDropDown method
@@ -85,7 +83,6 @@ export declare class ToolbarRenderer implements IRenderer {
85
83
  */
86
84
  renderColorPickerDropDown(args: IColorPickerModel, item: string, colorPicker: ColorPicker, defaultColor: string): DropDownButton;
87
85
  private pickerRefresh;
88
- private popupModal;
89
86
  private setColorPickerContentWidth;
90
87
  /**
91
88
  * renderColorPicker method
@@ -1,5 +1,5 @@
1
- import { addClass, Browser, removeClass, EventHandler, formatUnit, isNullOrUndefined, isNullOrUndefined as isNOU } from '@syncfusion/ej2-base';
2
- import { getInstance, closest, selectAll, detach } from '@syncfusion/ej2-base';
1
+ import { addClass, Browser, removeClass, formatUnit, isNullOrUndefined, isNullOrUndefined as isNOU, EventHandler } from '@syncfusion/ej2-base';
2
+ import { getInstance, closest, selectAll } from '@syncfusion/ej2-base';
3
3
  import { Toolbar } from '@syncfusion/ej2-navigations';
4
4
  import { DropDownButton } from '@syncfusion/ej2-splitbuttons';
5
5
  import { Popup, Tooltip } from '@syncfusion/ej2-popups';
@@ -8,6 +8,7 @@ import * as events from '../base/constant';
8
8
  import { CLS_TOOLBAR, CLS_DROPDOWN_BTN, CLS_RTE_ELEMENTS, CLS_TB_BTN, CLS_INLINE_DROPDOWN, CLS_COLOR_CONTENT, CLS_FONT_COLOR_DROPDOWN, CLS_BACKGROUND_COLOR_DROPDOWN, CLS_COLOR_PALETTE, CLS_FONT_COLOR_PICKER, CLS_BACKGROUND_COLOR_PICKER, CLS_CUSTOM_TILE, CLS_NOCOLOR_ITEM, CLS_BULLETFORMATLIST_TB_BTN, CLS_NUMBERFORMATLIST_TB_BTN, CLS_LIST_PRIMARY_CONTENT } from '../base/classes';
9
9
  import { ColorPicker } from '@syncfusion/ej2-inputs';
10
10
  import { hasClass } from '../base/util';
11
+ import { ToolbarStatus } from '../../editor-manager/plugin/toolbar-status';
11
12
  /**
12
13
  * `Toolbar renderer` module is used to render toolbar in RichTextEditor.
13
14
  *
@@ -30,21 +31,22 @@ var ToolbarRenderer = /** @class */ (function () {
30
31
  }
31
32
  ToolbarRenderer.prototype.wireEvent = function () {
32
33
  this.parent.on(events.destroy, this.unWireEvent, this);
33
- this.parent.on(events.maximizeMinimizeClick, this.destroyTooltip, this);
34
+ this.parent.on(events.destroyTooltip, this.destroyTooltip, this);
35
+ this.parent.on(events.closeTooltip, this.closeTooltip, this);
34
36
  };
35
37
  ToolbarRenderer.prototype.destroyTooltip = function () {
36
- if (!isNullOrUndefined(document.querySelector('.e-tooltip-wrap')) && !isNullOrUndefined(document.querySelector(' [data-tooltip-id]'))) {
37
- var tooltipTargetEle = this.parent.element.querySelector('[data-tooltip-id]');
38
+ var currentDocument = this.parent.iframeSettings.enable ? this.parent.contentModule.getPanel().ownerDocument :
39
+ this.parent.contentModule.getDocument();
40
+ if (!isNullOrUndefined(currentDocument.querySelector('.e-tooltip-wrap')) && !isNullOrUndefined(currentDocument.querySelector('[data-tooltip-id]'))) {
41
+ var tooltipTargetEle = currentDocument.querySelector('[data-tooltip-id]');
38
42
  var event_1 = new MouseEvent('mouseleave', { bubbles: true, cancelable: true });
39
43
  tooltipTargetEle.dispatchEvent(event_1);
40
44
  }
41
45
  };
42
46
  ToolbarRenderer.prototype.unWireEvent = function () {
43
47
  this.parent.off(events.destroy, this.unWireEvent);
44
- if (this.popupOverlay) {
45
- EventHandler.remove(this.popupOverlay, 'click touchmove', this.onPopupOverlay);
46
- }
47
- this.removePopupContainer();
48
+ this.parent.off(events.destroyTooltip, this.destroyTooltip);
49
+ this.parent.off(events.closeTooltip, this.closeTooltip);
48
50
  };
49
51
  ToolbarRenderer.prototype.toolbarBeforeCreate = function (e) {
50
52
  if (this.mode === 'Extended') {
@@ -64,8 +66,8 @@ var ToolbarRenderer = /** @class */ (function () {
64
66
  }
65
67
  };
66
68
  ToolbarRenderer.prototype.dropDownSelected = function (args) {
67
- this.parent.notify(events.dropDownSelect, args);
68
- this.onPopupOverlay();
69
+ this.parent.notify(events.dropDownSelect, { element: args.element, item: args.item, originalEvent: args.event });
70
+ this.destroyTooltip();
69
71
  };
70
72
  ToolbarRenderer.prototype.beforeDropDownItemRender = function (args) {
71
73
  if (this.parent.readonly || !this.parent.enabled) {
@@ -88,41 +90,36 @@ var ToolbarRenderer = /** @class */ (function () {
88
90
  break;
89
91
  }
90
92
  }
93
+ if (args.target.querySelector('.e-active')) {
94
+ args.cancel = true;
95
+ }
91
96
  };
92
97
  ToolbarRenderer.prototype.dropDownOpen = function (args) {
93
98
  if (args.element.parentElement.getAttribute('id').indexOf('TableCell') > -1 && !isNOU(args.element.parentElement.querySelector('.e-cell-merge')) &&
94
99
  (!isNOU(args.element.parentElement.querySelector('.e-cell-horizontal-split')) || !isNOU(args.element.parentElement.querySelector('.e-cell-vertical-split')))) {
95
100
  var listEle = args.element.querySelectorAll('li');
96
- if (this.parent.inputElement.querySelectorAll('.e-cell-select').length === 1) {
101
+ var selectedEles_1 = this.parent.inputElement.querySelectorAll('.e-cell-select');
102
+ if (selectedEles_1.length === 1) {
97
103
  addClass([listEle[0]], 'e-disabled');
98
104
  removeClass([listEle[1], listEle[2]], 'e-disabled');
99
105
  }
100
- else if (this.parent.inputElement.querySelectorAll('.e-cell-select').length > 1) {
101
- removeClass([listEle[0]], 'e-disabled');
106
+ else if (selectedEles_1.length > 1) {
107
+ if (!Array.from(selectedEles_1).every(function (element) {
108
+ return element.tagName.toLowerCase() === selectedEles_1[0].tagName.toLowerCase();
109
+ })) {
110
+ addClass([listEle[0]], 'e-disabled');
111
+ }
112
+ else {
113
+ removeClass([listEle[0]], 'e-disabled');
114
+ }
102
115
  addClass([listEle[1], listEle[2]], 'e-disabled');
103
116
  }
104
117
  }
105
- if (Browser.isDevice && !args.element.parentElement.classList.contains(classes.CLS_QUICK_DROPDOWN)) {
106
- this.popupModal(args.element.parentElement);
107
- }
108
118
  this.parent.notify(events.selectionSave, args);
109
119
  };
110
120
  ToolbarRenderer.prototype.dropDownClose = function (args) {
111
- this.removePopupContainer();
112
121
  this.parent.notify(events.selectionRestore, args);
113
122
  };
114
- ToolbarRenderer.prototype.removePopupContainer = function () {
115
- if (Browser.isDevice && !isNullOrUndefined(this.popupContainer)) {
116
- var popupEle = this.popupContainer.querySelector('.e-dropdown-popup.e-tbar-btn.e-control');
117
- if (popupEle) {
118
- this.popupContainer.parentNode.insertBefore(popupEle, this.popupContainer.nextSibling);
119
- popupEle.style.removeProperty('position');
120
- removeClass([popupEle], 'e-popup-modal');
121
- }
122
- detach(this.popupContainer);
123
- this.popupContainer = undefined;
124
- }
125
- };
126
123
  /**
127
124
  * renderToolbar method
128
125
  *
@@ -156,11 +153,11 @@ var ToolbarRenderer = /** @class */ (function () {
156
153
  openDelay: 400,
157
154
  opensOn: 'Hover',
158
155
  beforeRender: this.tooltipBeforeRender.bind(this),
159
- cssClass: this.parent.cssClass,
156
+ cssClass: this.parent.getCssClass(),
160
157
  windowCollision: true,
161
158
  position: 'BottomCenter'
162
159
  });
163
- this.tooltip.appendTo(args.target);
160
+ this.tooltip.appendTo(args.target.parentElement);
164
161
  }
165
162
  };
166
163
  /**
@@ -216,7 +213,7 @@ var ToolbarRenderer = /** @class */ (function () {
216
213
  }
217
214
  //Alignments preselect
218
215
  var alignEle = proxy.parent.getRange().startContainer;
219
- while (alignEle !== proxy.parent.element.querySelector('.e-content') && !isNOU(alignEle.parentElement)) {
216
+ while (alignEle !== proxy.parent.inputElement && !isNOU(alignEle.parentElement)) {
220
217
  if (alignEle.nodeName === '#text') {
221
218
  alignEle = alignEle.parentElement;
222
219
  }
@@ -242,7 +239,8 @@ var ToolbarRenderer = /** @class */ (function () {
242
239
  alignEle = alignEle.parentElement;
243
240
  }
244
241
  //image preselect
245
- var imageEle = startNode.closest('img') ? startNode.closest('img') : startNode.querySelector('img');
242
+ var closestNode = startNode.closest('img');
243
+ var imageEle = closestNode ? closestNode : startNode.querySelector('img');
246
244
  if (args.items[0].command === 'Images') {
247
245
  if (!isNOU(imageEle)) {
248
246
  var index = void 0;
@@ -261,12 +259,23 @@ var ToolbarRenderer = /** @class */ (function () {
261
259
  }
262
260
  }
263
261
  //Formats preselect
264
- if (args.items[0].command === 'Formats') {
262
+ if (args.items[0].command === 'Formats' || args.items[0].command === 'Font') {
263
+ var fontName_1 = [];
264
+ var formats_1 = [];
265
+ _this.parent.format.types.forEach(function (item) {
266
+ formats_1.push(item.value.toLocaleLowerCase());
267
+ });
268
+ _this.parent.fontFamily.items.forEach(function (item) {
269
+ fontName_1.push(item.value);
270
+ });
271
+ var toolbarStatus = ToolbarStatus.get(_this.parent.contentModule.getDocument(), _this.parent.contentModule.getEditPanel(), formats_1, null, fontName_1);
265
272
  for (var index = 0; index < args.element.childNodes.length; index++) {
266
273
  var divNode = _this.parent.createElement('div');
267
274
  divNode.innerHTML = dropDown.content.trim();
268
- if (divNode.textContent.trim() !== ''
269
- && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) {
275
+ if ((divNode.textContent.trim() !== ''
276
+ && args.element.childNodes[index].textContent.trim() === divNode.textContent.trim()) ||
277
+ ((args.items[0].command === 'Formats' && !isNOU(toolbarStatus.formats) && _this.parent.format.types[index].value.toLowerCase() === toolbarStatus.formats.toLowerCase() && args.element.childNodes[index].classList.contains(_this.parent.format.types[index].cssClass))
278
+ || (args.items[0].command === 'Font' && !isNOU(toolbarStatus.fontname) && _this.parent.fontFamily.items[index].value.toLowerCase() === toolbarStatus.fontname.toLowerCase() && args.element.childNodes[index].classList.contains(_this.parent.fontFamily.items[index].cssClass)))) {
270
279
  if (!args.element.childNodes[index].classList.contains('e-active')) {
271
280
  addClass([args.element.childNodes[index]], 'e-active');
272
281
  }
@@ -291,6 +300,32 @@ var ToolbarRenderer = /** @class */ (function () {
291
300
  popupElement.setAttribute('aria-owns', this.parent.getID());
292
301
  return dropDown;
293
302
  };
303
+ ToolbarRenderer.prototype.mouseOutHandler = function () {
304
+ if (!isNOU(this.tooltipTargetEle)) {
305
+ this.tooltipTargetEle.setAttribute('title', this.tooltipTargetEle.getAttribute('data-title'));
306
+ }
307
+ else {
308
+ var currentDocument = this.parent.iframeSettings.enable ? this.parent.contentModule.getPanel().ownerDocument :
309
+ this.parent.contentModule.getDocument();
310
+ this.tooltipTargetEle = currentDocument.querySelector('[data-title]');
311
+ this.tooltipTargetEle.setAttribute('title', this.tooltipTargetEle.getAttribute('data-title'));
312
+ }
313
+ this.tooltipTargetEle.removeAttribute('data-title');
314
+ EventHandler.remove(this.tooltipTargetEle, 'mouseout', this.mouseOutHandler);
315
+ };
316
+ ToolbarRenderer.prototype.closeTooltip = function (args) {
317
+ var currentDocument = this.parent.iframeSettings.enable ? this.parent.contentModule.getPanel().ownerDocument :
318
+ this.parent.contentModule.getDocument();
319
+ this.tooltipTargetEle = closest(args.target, '[data-tooltip-id]');
320
+ if (!isNOU(this.tooltipTargetEle) && this.parent.showTooltip && !isNOU(currentDocument.querySelector('.e-tooltip-wrap'))) {
321
+ this.destroyTooltip();
322
+ if (!this.tooltipTargetEle.closest('.e-rte-quick-popup')) {
323
+ this.tooltipTargetEle.setAttribute('data-title', this.tooltipTargetEle.getAttribute('title'));
324
+ this.tooltipTargetEle.removeAttribute('title');
325
+ EventHandler.add(this.tooltipTargetEle, 'mouseout', this.mouseOutHandler, this);
326
+ }
327
+ }
328
+ };
294
329
  /**
295
330
  * renderListDropDown method
296
331
  *
@@ -300,6 +335,7 @@ var ToolbarRenderer = /** @class */ (function () {
300
335
  * @deprecated
301
336
  */
302
337
  ToolbarRenderer.prototype.renderListDropDown = function (args) {
338
+ var _this = this;
303
339
  // eslint-disable-next-line
304
340
  var proxy = this;
305
341
  var css = CLS_RTE_ELEMENTS + ' ' + CLS_TB_BTN + ((this.parent.inlineMode) ? (' ' + CLS_INLINE_DROPDOWN) : '');
@@ -315,6 +351,37 @@ var ToolbarRenderer = /** @class */ (function () {
315
351
  enableRtl: this.parent.enableRtl,
316
352
  select: this.dropDownSelected.bind(this),
317
353
  beforeOpen: function (args) {
354
+ if (proxy.parent.editorMode !== 'Markdown') {
355
+ var startNode = proxy.parent.getRange().startContainer.parentElement;
356
+ var listElem = startNode.closest('LI');
357
+ var currentLiElem = !isNOU(listElem) ? listElem.parentElement : null;
358
+ if (!isNOU(currentLiElem) && (currentLiElem.nodeName === 'OL' || currentLiElem.nodeName === 'UL')) {
359
+ if (currentLiElem.nodeName === 'UL' && args.items[0].subCommand === 'NumberFormatList') {
360
+ addClass([args.element.childNodes[0]], 'e-active');
361
+ }
362
+ else if (currentLiElem.nodeName === 'OL' && args.items[0].subCommand === 'BulletFormatList') {
363
+ addClass([args.element.childNodes[0]], 'e-active');
364
+ }
365
+ else {
366
+ var currentListStyle = currentLiElem.style.listStyleType.split('-').join('').toLocaleLowerCase();
367
+ currentListStyle = currentListStyle === 'decimal' ? 'number' : currentListStyle;
368
+ for (var index = 0; index < args.element.childNodes.length; index++) {
369
+ if (currentListStyle === args.element.childNodes[index].innerHTML.split(' ').join('').toLocaleLowerCase()) {
370
+ addClass([args.element.childNodes[index]], 'e-active');
371
+ break;
372
+ }
373
+ else if (currentListStyle === '' && args.element.childNodes[index].innerHTML !== 'None') {
374
+ addClass([args.element.childNodes[index]], 'e-active');
375
+ break;
376
+ }
377
+ }
378
+ }
379
+ }
380
+ else {
381
+ addClass([args.element.childNodes[0]], 'e-active');
382
+ }
383
+ }
384
+ _this.closeTooltip({ target: args.event.target });
318
385
  if (proxy.parent.readonly || !proxy.parent.enabled) {
319
386
  args.cancel = true;
320
387
  return;
@@ -354,39 +421,6 @@ var ToolbarRenderer = /** @class */ (function () {
354
421
  };
355
422
  return dropDown;
356
423
  };
357
- // eslint-disable-next-line
358
- ToolbarRenderer.prototype.onPopupOverlay = function (args) {
359
- if (!isNullOrUndefined(this.popupOverlay)) {
360
- closest(this.popupOverlay, '.e-popup-container').style.display = 'none';
361
- this.popupOverlay.style.display = 'none';
362
- removeClass([this.popupOverlay], 'e-popup-overlay');
363
- }
364
- };
365
- ToolbarRenderer.prototype.setIsModel = function (element) {
366
- if (!closest(element, '.e-popup-container')) {
367
- this.popupContainer = this.parent.createElement('div', {
368
- className: 'e-rte-modal-popup e-popup-container e-center'
369
- });
370
- element.parentNode.insertBefore(this.popupContainer, element);
371
- this.popupContainer.appendChild(element);
372
- this.popupContainer.style.zIndex = element.style.zIndex;
373
- this.popupContainer.style.display = 'flex';
374
- element.style.position = 'relative';
375
- addClass([element], 'e-popup-modal');
376
- this.popupOverlay = this.parent.createElement('div', { className: 'e-popup-overlay' });
377
- // eslint-disable-next-line
378
- this.popupOverlay.style.zIndex = (parseInt(element.style.zIndex, null) - 1).toString();
379
- this.popupOverlay.style.display = 'block';
380
- this.popupContainer.appendChild(this.popupOverlay);
381
- EventHandler.add(this.popupOverlay, 'click touchmove', this.onPopupOverlay, this);
382
- }
383
- else {
384
- element.parentElement.style.display = 'flex';
385
- this.popupOverlay = element.nextElementSibling;
386
- this.popupOverlay.style.display = 'block';
387
- addClass([this.popupOverlay], 'e-popup-overlay');
388
- }
389
- };
390
424
  ToolbarRenderer.prototype.paletteSelection = function (dropDownArgs, currentElement) {
391
425
  var ele = dropDownArgs.element.querySelector('.e-control.e-colorpicker');
392
426
  var colorbox = [].slice.call(selectAll('.e-tile', ele.parentElement));
@@ -415,7 +449,7 @@ var ToolbarRenderer = /** @class */ (function () {
415
449
  var proxy = this;
416
450
  var css = CLS_RTE_ELEMENTS + ' ' + CLS_TB_BTN + ((this.parent.inlineMode) ? (' ' + CLS_INLINE_DROPDOWN) : '');
417
451
  css += (' ' + ((item === 'backgroundcolor') ? CLS_BACKGROUND_COLOR_DROPDOWN : CLS_FONT_COLOR_DROPDOWN));
418
- css += ' ' + this.parent.cssClass;
452
+ css += this.parent.getCssClass(true);
419
453
  var content = proxy.parent.createElement('span', { className: CLS_COLOR_CONTENT });
420
454
  var inlineEle = proxy.parent.createElement('span', { className: args.cssClass });
421
455
  var range;
@@ -487,9 +521,6 @@ var ToolbarRenderer = /** @class */ (function () {
487
521
  if (focusEle) {
488
522
  focusEle.focus();
489
523
  }
490
- if (Browser.isDevice) {
491
- _this.popupModal(dropDownArgs.element.parentElement);
492
- }
493
524
  _this.pickerRefresh(dropDownArgs);
494
525
  },
495
526
  beforeClose: function (dropDownArgs) {
@@ -517,22 +548,6 @@ var ToolbarRenderer = /** @class */ (function () {
517
548
  },
518
549
  close: function (dropDownArgs) {
519
550
  proxy.parent.notify(events.selectionRestore, {});
520
- var dropElement = closest(dropDownArgs.element.parentElement, '.e-popup-container');
521
- if (dropElement) {
522
- dropElement.style.display = 'none';
523
- dropElement.lastElementChild.style.display = 'none';
524
- removeClass([dropElement.lastElementChild], 'e-popup-overlay');
525
- }
526
- if (Browser.isDevice && !isNullOrUndefined(dropElement)) {
527
- var popupEle = dropElement.querySelector('.e-dropdown-popup.e-tbar-btn.e-control');
528
- if (popupEle) {
529
- dropElement.parentNode.insertBefore(popupEle, dropElement.nextSibling);
530
- popupEle.style.removeProperty('position');
531
- removeClass([popupEle], 'e-popup-modal');
532
- }
533
- detach(dropElement);
534
- proxy.popupContainer = undefined;
535
- }
536
551
  }
537
552
  });
538
553
  dropDown.isStringTemplate = true;
@@ -560,16 +575,6 @@ var ToolbarRenderer = /** @class */ (function () {
560
575
  popupElem.style.width = (popupElem.offsetWidth - 5).toString() + 'px';
561
576
  }
562
577
  };
563
- ToolbarRenderer.prototype.popupModal = function (element) {
564
- var popupInst = getInstance(element, Popup);
565
- popupInst.relateTo = document.body;
566
- popupInst.position = { X: 0, Y: 0 };
567
- popupInst.targetType = 'container';
568
- popupInst.collision = { X: 'fit', Y: 'fit' };
569
- popupInst.offsetY = 4;
570
- popupInst.dataBind();
571
- this.setIsModel(element);
572
- };
573
578
  ToolbarRenderer.prototype.setColorPickerContentWidth = function (colorPicker) {
574
579
  var colorPickerContent = colorPicker.element.nextSibling;
575
580
  if (colorPickerContent.style.width === '0px') {
@@ -608,7 +613,7 @@ var ToolbarRenderer = /** @class */ (function () {
608
613
  args.element.classList.add(CLS_COLOR_PALETTE);
609
614
  args.element.classList.add(CLS_CUSTOM_TILE);
610
615
  if (!isNullOrUndefined(_this.parent.cssClass)) {
611
- var allClassName = _this.parent.cssClass.split(' ');
616
+ var allClassName = _this.parent.getCssClass().split(' ');
612
617
  for (var i = 0; i < allClassName.length; i++) {
613
618
  if (allClassName[i].trim() !== '') {
614
619
  args.element.classList.add(allClassName[i]);
@@ -23,6 +23,7 @@ export declare class Video {
23
23
  private isAllowedTypes;
24
24
  private pageX;
25
25
  private pageY;
26
+ private mouseX;
26
27
  private dialogRenderObj;
27
28
  private deletedVid;
28
29
  private changedWidthValue;
@@ -51,6 +52,7 @@ export declare class Video {
51
52
  private vidResizePos;
52
53
  private calcPos;
53
54
  private setAspectRatio;
55
+ private updateVidEleWidth;
54
56
  private pixToPerc;
55
57
  private vidDupMouseMove;
56
58
  private resizing;
@@ -59,6 +61,7 @@ export declare class Video {
59
61
  private resizeBtnInit;
60
62
  private onToolbarAction;
61
63
  private onKeyDown;
64
+ private handleSelectAll;
62
65
  private openDialog;
63
66
  private showDialog;
64
67
  private closeDialog;