@componyx/ui 0.0.0-stage → 1.0.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 (169) hide show
  1. package/AppSkin/AppSkin.css +1268 -0
  2. package/AppSkin/AppSkin.js +2748 -0
  3. package/AppSkin/Themes/Default.css +241 -0
  4. package/Base/Base.js +3407 -0
  5. package/Base/ComponentIcons.css +66 -0
  6. package/Base/Font/ComponentIcons.woff +0 -0
  7. package/Base/Font/UI.woff +0 -0
  8. package/Base/Library.js +8432 -0
  9. package/Base/NavigationManager.js +462 -0
  10. package/Base/ResponsiveTemplates.js +371 -0
  11. package/Base/Sanitizer.js +288 -0
  12. package/Base/Themes/Default.css +255 -0
  13. package/Base/UI.css +618 -0
  14. package/Base/UIResourcePath.js +6 -0
  15. package/Bindary/Bindary.js +2011 -0
  16. package/Bindary/Modules/Connection.js +216 -0
  17. package/Bindary/Modules/Core.js +854 -0
  18. package/Bindary/Modules/DataUpdater.js +351 -0
  19. package/Bindary/Modules/ExpressionEngine.js +347 -0
  20. package/Bindary/Modules/ProxyManager.js +482 -0
  21. package/Bindary/Modules/Renderer.js +605 -0
  22. package/Bindary/Modules/Router.js +291 -0
  23. package/Bindary/Modules/Scroller.js +89 -0
  24. package/Bindary/Modules/Template.js +1273 -0
  25. package/BookmarkSpy/BookmarkSpy.js +430 -0
  26. package/Box/Box.css +36 -0
  27. package/Box/Box.js +1685 -0
  28. package/Button/Button.css +470 -0
  29. package/Button/Button.js +1398 -0
  30. package/Button/Themes/Default.css +200 -0
  31. package/Carousel/Carousel.css +273 -0
  32. package/Carousel/Carousel.js +607 -0
  33. package/ColorButton/ColorButton.css +39 -0
  34. package/ColorButton/ColorButton.js +336 -0
  35. package/ColorPicker/ColorPicker.css +359 -0
  36. package/ColorPicker/ColorPicker.js +972 -0
  37. package/ComboBox/ComboBox.css +357 -0
  38. package/ComboBox/ComboBox.js +2342 -0
  39. package/ComboBox/Themes/Default.css +23 -0
  40. package/DataPager/DataPager.css +72 -0
  41. package/DataPager/DataPager.js +674 -0
  42. package/DatePicker/DatePicker.css +227 -0
  43. package/DatePicker/DatePicker.js +1531 -0
  44. package/DatePicker/Themes/Default.css +26 -0
  45. package/Dialog/Dialog.css +106 -0
  46. package/Dialog/Dialog.js +572 -0
  47. package/Dialog/Themes/Default.css +10 -0
  48. package/Editor/Data/Emoji.json +8285 -0
  49. package/Editor/Data/Special.json +1042 -0
  50. package/Editor/Editor.css +1562 -0
  51. package/Editor/Editor.js +4058 -0
  52. package/Editor/Font/Editor.woff +0 -0
  53. package/Editor/Modules/ComponentFactory.js +565 -0
  54. package/Editor/Modules/ContentManager.js +748 -0
  55. package/Editor/Modules/DialogManager.js +1234 -0
  56. package/Editor/Modules/EventManager.js +458 -0
  57. package/Editor/Modules/Format.js +950 -0
  58. package/Editor/Modules/History.js +191 -0
  59. package/Editor/Modules/LayoutState.js +379 -0
  60. package/Editor/Modules/ListManager.js +296 -0
  61. package/Editor/Modules/MenuManager.js +388 -0
  62. package/Editor/Modules/NodeManager.js +681 -0
  63. package/Editor/Modules/ParagraphButtons.js +122 -0
  64. package/Editor/Modules/Resizer.js +176 -0
  65. package/Editor/Modules/SelectionRange.js +564 -0
  66. package/Editor/Modules/SourceViewBuilder.js +212 -0
  67. package/Editor/Modules/SymbolPicker.js +208 -0
  68. package/Editor/Modules/Table.js +2327 -0
  69. package/Editor/Modules/TableDialog.js +757 -0
  70. package/Editor/Modules/Toolbar.js +375 -0
  71. package/Editor/Modules/TooltipMenu.js +125 -0
  72. package/Editor/Modules/Utility.js +131 -0
  73. package/Editor/Themes/Default.css +204 -0
  74. package/FileUpload/FileUpload.css +156 -0
  75. package/FileUpload/FileUpload.js +898 -0
  76. package/FileUpload/Themes/Default.css +17 -0
  77. package/Form/Form.css +1934 -0
  78. package/Form/Form.js +4943 -0
  79. package/Form/Modules/ActionManager.js +368 -0
  80. package/Form/Modules/BuildPanelManager.js +319 -0
  81. package/Form/Modules/ComponentFactory.js +468 -0
  82. package/Form/Modules/ComponentPanel.js +265 -0
  83. package/Form/Modules/ConfigPanelManager.js +685 -0
  84. package/Form/Modules/DataObserver.js +717 -0
  85. package/Form/Modules/Databinder.js +602 -0
  86. package/Form/Modules/Draggable.js +756 -0
  87. package/Form/Modules/OptionsPanel.js +342 -0
  88. package/Form/Modules/Renderer.js +1889 -0
  89. package/Form/Modules/RuleEngine.js +585 -0
  90. package/Form/Modules/RulesPanel.js +1158 -0
  91. package/Form/Modules/Types.js +1709 -0
  92. package/Form/Modules/ValidationManager.js +194 -0
  93. package/Form/Themes/Default.css +216 -0
  94. package/FormField/FormField.css +468 -0
  95. package/FormField/FormField.js +576 -0
  96. package/FormField/Themes/Default.css +99 -0
  97. package/Grid/Grid.css +544 -0
  98. package/Grid/Grid.js +3761 -0
  99. package/Grid/Themes/Default.css +43 -0
  100. package/LICENSE +126 -0
  101. package/MaskedTextBox/MaskedTextBox.css +28 -0
  102. package/MaskedTextBox/MaskedTextBox.js +642 -0
  103. package/MaskedTextBox/Themes/Default.css +6 -0
  104. package/Menu/Menu.css +328 -0
  105. package/Menu/Menu.js +2386 -0
  106. package/Menu/Themes/Default.css +24 -0
  107. package/NumericBox/NumericBox.css +120 -0
  108. package/NumericBox/NumericBox.js +984 -0
  109. package/PanelBar/PanelBar.css +123 -0
  110. package/PanelBar/PanelBar.js +505 -0
  111. package/PanelBar/Themes/Default.css +51 -0
  112. package/PieChart/PieChart.css +95 -0
  113. package/PieChart/PieChart.js +820 -0
  114. package/PieChart/Themes/Default.css +9 -0
  115. package/README.md +178 -3
  116. package/Slider/Slider.css +348 -0
  117. package/Slider/Slider.js +1306 -0
  118. package/Slider/Themes/Default.css +44 -0
  119. package/TabStrip/TabStrip.css +52 -0
  120. package/TabStrip/TabStrip.js +362 -0
  121. package/TabStrip/Themes/Default.css +35 -0
  122. package/TimePicker/Themes/Default.css +30 -0
  123. package/TimePicker/TimePicker.css +253 -0
  124. package/TimePicker/TimePicker.js +1485 -0
  125. package/TooltipManager/Themes/Default.css +21 -0
  126. package/TooltipManager/TooltipManager.css +227 -0
  127. package/TooltipManager/TooltipManager.js +791 -0
  128. package/Validator/Validator.css +54 -0
  129. package/Validator/Validator.js +2508 -0
  130. package/componyx.html-data.json +619 -0
  131. package/index.js +27 -0
  132. package/package.json +43 -4
  133. package/types/AppSkin.d.ts +842 -0
  134. package/types/Base.d.ts +1034 -0
  135. package/types/Bindary.d.ts +1196 -0
  136. package/types/BookmarkSpy.d.ts +112 -0
  137. package/types/Box.d.ts +374 -0
  138. package/types/Button.d.ts +455 -0
  139. package/types/Carousel.d.ts +136 -0
  140. package/types/ColorButton.d.ts +120 -0
  141. package/types/ColorPicker.d.ts +225 -0
  142. package/types/ComboBox.d.ts +507 -0
  143. package/types/DataPager.d.ts +152 -0
  144. package/types/DatePicker.d.ts +354 -0
  145. package/types/Dialog.d.ts +160 -0
  146. package/types/Editor.d.ts +1289 -0
  147. package/types/FileUpload.d.ts +206 -0
  148. package/types/Form.d.ts +3078 -0
  149. package/types/FormField.d.ts +204 -0
  150. package/types/Grid.d.ts +911 -0
  151. package/types/Library.d.ts +1899 -0
  152. package/types/MaskedTextBox.d.ts +91 -0
  153. package/types/Menu.d.ts +577 -0
  154. package/types/NumericBox.d.ts +310 -0
  155. package/types/PanelBar.d.ts +223 -0
  156. package/types/PieChart.d.ts +224 -0
  157. package/types/ResponsiveTemplates.d.ts +108 -0
  158. package/types/Slider.d.ts +227 -0
  159. package/types/TabStrip.d.ts +185 -0
  160. package/types/TimePicker.d.ts +265 -0
  161. package/types/TooltipManager.d.ts +178 -0
  162. package/types/UI.d.ts +29 -0
  163. package/types/Validator.d.ts +653 -0
  164. package/types/index.d.ts +59 -0
  165. package/ui.css +11783 -0
  166. package/ui.js +79477 -0
  167. package/ui.min.css +138 -0
  168. package/ui.min.js +264 -0
  169. package/ui.min.js.map +1 -0
@@ -0,0 +1,458 @@
1
+ /*! Componyx.UI | (c) E.H. Daanen / Componyx | BUSL-1.1 | componyx.com/license */
2
+ componyx.UI.editor_modules = componyx.UI.editor_modules || {};
3
+
4
+ /**
5
+ * Event manager - manages document events.
6
+ * @class EventManager
7
+ * @memberof componyx.UI.editor_modules
8
+ * @ignore
9
+ */
10
+ componyx.UI.editor_modules.EventManager = class EventManager
11
+ {
12
+ #changeTimerId;
13
+ #keyDownTimerId;
14
+
15
+ constructor(editor)
16
+ {
17
+ this.editor = editor;
18
+ this.utility = editor.utility;
19
+ }
20
+
21
+ bindEvents()
22
+ {
23
+ if (!this.editor.getEditorElement())
24
+ return;
25
+
26
+ const el = this.editor.getEditorElement();
27
+ const doc = this.editor.getDoc();
28
+
29
+ el.contentEditable = true;
30
+ el.spellcheck = this.editor.defaultSpellcheck;
31
+
32
+ $lib.on(el, 'focus', this.focus, null, this, true);
33
+ $lib.on(el, 'blur', this.blur, null, this, true);
34
+ $lib.on(el, 'drop', this.drop, null, this, true);
35
+ $lib.on(el, 'dragEnd', this.dragEnd, null, this, true);
36
+ $lib.on(el, 'paste', this.paste, null, this, true);
37
+ $lib.on(el, 'pointerdown', this.pointerDown, null, this, true);
38
+ $lib.on(el, 'keydown', this.keyDown, null, this, true);
39
+ $lib.on(doc, 'selectionchange', this.selectionChange, null, this, true);
40
+ $lib.on(doc, 'pointerup', this.pointerUp, null, this, true);
41
+ $lib.on(document, 'pointerup', this.documentPointerUp, null, this, true);
42
+ $lib.on(document, 'keyup', this.documentKeyUp, null, this, true);
43
+ $lib.on(window, 'resize', this.windowResize, null, this, true);
44
+
45
+ this.editor.table.bindEvents();
46
+ }
47
+
48
+ disposeEvents()
49
+ {
50
+ if (!this.editor.getEditorElement())
51
+ return;
52
+
53
+ const el = this.editor.getEditorElement();
54
+ const doc = this.editor.getDoc();
55
+
56
+ $lib.off(el, 'focus', this.focus);
57
+ $lib.off(el, 'blur', this.blur);
58
+ $lib.off(el, 'drop', this.drop);
59
+ $lib.off(el, 'dragEnd', this.dragEnd);
60
+ $lib.off(el, 'paste', this.paste);
61
+ $lib.off(el, 'pointerdown', this.pointerDown);
62
+ $lib.off(el, 'keydown', this.keyDown);
63
+ $lib.off(doc, 'selectionchange', this.selectionChange);
64
+ $lib.off(doc, 'pointerup', this.pointerUp);
65
+ $lib.off(document, 'pointerup', this.documentPointerUp);
66
+ $lib.off(document, 'keyup', this.documentKeyUp);
67
+ $lib.off(window, 'resize', this.windowResize);
68
+
69
+ this.editor.table.disposeEvents();
70
+ }
71
+
72
+ focus(e)
73
+ {
74
+ if (!this.editor.setActiveEditor(e.target))
75
+ return;
76
+
77
+ this.editor.activateDocument();
78
+ this.editor.cancelSelectionChange = false;
79
+
80
+ if (!this.editor.contentManager.hasContent())
81
+ this.editor.contentManager.insertParagraph();
82
+
83
+ if (!this.editor.hasEditables())
84
+ this.editor.element.classList.add(this.editor.getCssClass(this.editor.classOption.FOCUS));
85
+
86
+ this.editor.setToolbarBoxDisplay();
87
+ this.editor.layoutState.resetActiveModes();
88
+ }
89
+
90
+ blur(e)
91
+ {
92
+ if (this.editor.allowToolbarBoxHide)
93
+ {
94
+ const editorEl = this.editor.getActiveEditor(e.target);
95
+
96
+ if (editorEl)
97
+ this.editor.contentManager.clearEmptyParagraph(editorEl);
98
+ }
99
+
100
+ if (!this.editor.hasEditables())
101
+ this.editor.element.classList.remove(this.editor.getCssClass(this.editor.classOption.FOCUS));
102
+
103
+ this.editor.deactivateDocument();
104
+ this.editor.setToolbarBoxDisplay(false);
105
+ this.editor.cancelSelectionChange = true;
106
+ }
107
+
108
+ selectionChange(e)
109
+ {
110
+ const doc = e.target?.ownerDocument || document;
111
+ const activeElement = doc.activeElement;
112
+
113
+ if (!activeElement || !this.editor.setActiveEditor(activeElement) || this.editor.cancelSelectionChange)
114
+ return;
115
+
116
+ clearTimeout(this.#changeTimerId);
117
+ this.#changeTimerId = setTimeout(this.#handleSelectionChange.bind(this, activeElement), 0);
118
+ }
119
+
120
+ keyDown(e)
121
+ {
122
+ if (!this.editor.setActiveEditor(e.target))
123
+ return;
124
+
125
+ this.editor.activateDocument();
126
+
127
+ if (!this.editor.contentManager.hasContent())
128
+ this.editor.contentManager.insertParagraph();
129
+
130
+ const selection = this.editor.selectionRange,
131
+ range = selection.getRange(),
132
+ sContainer = range.startContainer,
133
+ nodes = selection.getNodesInRange(range),
134
+ rootNodes = selection.getRootNodesInRange(range, nodes),
135
+ rootNode = rootNodes[0],
136
+ prevRootNode = rootNode.previousSibling,
137
+ lastRootNode = rootNodes[rootNodes.length - 1],
138
+ isList = this.editor.nodeManager.isList(rootNode) || rootNode.nodeName === 'LI',
139
+ key = e.key.toLowerCase(),
140
+ isPrintable = this.utility.isPrintableChar(e),
141
+ insideCell = !!rootNode.closest('td, th');
142
+
143
+ this.editor.setToolbarBoxDisplay();
144
+
145
+ if (isPrintable && !selection.allowContent(range))
146
+ return false;
147
+
148
+ if (isPrintable || ' enter tab delete backspace '.indexOf(' ' + key + ' ') > -1)
149
+ this.#afterKeyDown(rootNode, range.collapsed === false);
150
+
151
+ if (e.ctrlKey && key === 'a')
152
+ {
153
+ selection.selectAll();
154
+ return false;
155
+ }
156
+
157
+ if (key === 'enter' && e.shiftKey)
158
+ {
159
+ this.editor.contentManager.insertBR(range);
160
+ return false;
161
+ }
162
+ else if (key === 'enter' && !e.shiftKey && rootNode.nodeName !== 'P' && !isList)
163
+ {
164
+ this.editor.contentManager.insertParagraph();
165
+ return false;
166
+ }
167
+
168
+ // handle backspace/delete on BR+ZW line
169
+ if (key === 'backspace' && range.collapsed)
170
+ {
171
+ const onZW = sContainer.nodeType === 3 && sContainer.nodeValue.match(/^\uFEFF+$/);
172
+ const onBR = sContainer.nodeName === 'BR';
173
+
174
+ if (onZW || onBR)
175
+ {
176
+ const br = onZW ? this.editor.nodeManager.sibling(sContainer, rootNode, true) : sContainer;
177
+ const zw = onZW ? sContainer : sContainer.nextSibling?.nodeValue?.match(/^\uFEFF+$/) ? sContainer.nextSibling : null;
178
+ const prevTextNode = this.editor.nodeManager.sibling(br, rootNode, true, 3);
179
+
180
+ if (br?.nodeName === 'BR')
181
+ {
182
+ br.remove();
183
+ zw?.remove();
184
+
185
+ if (prevTextNode)
186
+ {
187
+ range.setStart(prevTextNode, prevTextNode.textContent.length);
188
+ range.collapse(true);
189
+ selection.restoreRange(range);
190
+ }
191
+
192
+ return false;
193
+ }
194
+ }
195
+ }
196
+
197
+ if (isPrintable && range.collapsed && sContainer.nodeType === 3 &&
198
+ this.editor.nodeManager.isLayoutNode(sContainer.parentNode) &&
199
+ sContainer.textContent.match(/^\uFEFF+$/g))
200
+ {
201
+ range.setStart(sContainer, 0);
202
+ range.setEnd(sContainer, sContainer.length);
203
+ this.editor.storeRange(range);
204
+ }
205
+
206
+ if (isPrintable && rootNode.textContent.length === 0)
207
+ this.editor.nodeManager.createTextNodePlaceHolder(rootNode);
208
+
209
+ if (key === 'backspace' && selection.isCaretAtListItemStart(range))
210
+ {
211
+ this.editor.indent('-' + this.editor.indentValue);
212
+ return false;
213
+ }
214
+ else if (key === 'tab')
215
+ {
216
+ if (!e.shiftKey && !isList && insideCell) // let table navigation handle this
217
+ return;
218
+
219
+ if (!e.shiftKey && range.collapsed && !isList)
220
+ selection.insertIntoRange(range, this.editor.getDoc().createTextNode(this.utility.tabChar), null, true);
221
+ else
222
+ this.editor.indent((e.shiftKey ? '-' : '') + this.editor.indentValue);
223
+
224
+ return false;
225
+ }
226
+ else if (e.ctrlKey && (this.editor.getSortedCommands().find(c => c.shortcutKey && c.shortcutKey.toLowerCase() === key)))
227
+ {
228
+ return false;
229
+ }
230
+
231
+ if (key === 'backspace' && range.collapsed && prevRootNode &&
232
+ prevRootNode.contentEditable === 'false' &&
233
+ selection.isCaretAtParagraphStart(range))
234
+ {
235
+ if (prevRootNode.hasAttribute(this.utility.selAttr))
236
+ this.editor.selectNode.call(prevRootNode, false);
237
+ else
238
+ range.startContainer.previousSibling.remove();
239
+
240
+ return false;
241
+ }
242
+
243
+ if ((rootNode.contentEditable === 'false' || sContainer.contentEditable === 'false') &&
244
+ ' enter delete backspace '.indexOf(' ' + key + ' ') > -1)
245
+ {
246
+ this.editor.resizer.clear(true);
247
+ this.editor.paragraphButtons.destroy(this.editor.getEditorElement());
248
+
249
+ if (rootNode.contentEditable === 'false')
250
+ {
251
+ $lib.each(rootNodes, node =>
252
+ {
253
+ if (node.nodeType === 1 && node.contentEditable === 'false')
254
+ node.remove();
255
+ });
256
+ }
257
+ else
258
+ sContainer.remove();
259
+
260
+ if ((key === 'backspace' || key === 'delete') && lastRootNode.contentEditable === 'false')
261
+ return false;
262
+ }
263
+ }
264
+
265
+ pointerDown(e)
266
+ {
267
+ if (!this.editor.setActiveEditor(e.target))
268
+ return;
269
+
270
+ const x = $lib.clientX(e);
271
+ setTimeout(this.editor.nodeManager.createCursorSpace.bind(this.editor.nodeManager, x), 0);
272
+ }
273
+
274
+ pointerUp(e)
275
+ {
276
+ this.editor.menuManager.menu.collapseAllDelayed();
277
+ this.editor.toolbar.hideBoxes(e);
278
+
279
+ if (this.editor.format.cloneStamp)
280
+ this.editor.format.pasteFormat();
281
+
282
+ this.editor.format.cloneStamp = null;
283
+ this.editor.deactivateDocument();
284
+ }
285
+
286
+ documentPointerUp(e)
287
+ {
288
+ this.editor.toolbar.hideBoxes(e);
289
+ }
290
+
291
+ documentKeyUp(e)
292
+ {
293
+ this.editor.deactivateDocument();
294
+ }
295
+
296
+ drop(e)
297
+ {
298
+ const x = $lib.clientX(e),
299
+ y = $lib.clientY(e),
300
+ files = e.dataTransfer.files,
301
+ doc = this.editor.getDoc();
302
+
303
+ if (files.length && (doc.caretRangeFromPoint || doc.caretPositionFromPoint))
304
+ {
305
+ let range, pos;
306
+
307
+ $lib.each(files, file =>
308
+ {
309
+ if (file && file.type.match('image.*'))
310
+ {
311
+ e.stopPropagation();
312
+ e.preventDefault();
313
+
314
+ const url = window.URL.createObjectURL(file);
315
+ const img = new Image();
316
+
317
+ if (doc.caretRangeFromPoint && !range)
318
+ range = doc.caretRangeFromPoint(x, y);
319
+ else if (!range)
320
+ {
321
+ pos = doc.caretPositionFromPoint(x, y);
322
+ range = doc.createRange();
323
+ range.setStart(pos.offsetNode, pos.offset);
324
+ range.collapse();
325
+ }
326
+
327
+ range.insertNode(img);
328
+ range.setStartAfter(img);
329
+
330
+ img.onload = () =>
331
+ {
332
+ this.editor.activateDocument();
333
+ img.setAttribute('width', img.naturalWidth);
334
+ img.setAttribute('height', img.naturalHeight);
335
+ img.__widthRatio = img.width / img.height;
336
+
337
+ const figure = $lib.element({ tag: 'figure' });
338
+ figure.contentEditable = false;
339
+ $lib.surround(figure, img);
340
+
341
+ this.editor.events.onImageLoad.fire(this.editor, { imageElement: img, file });
342
+ };
343
+
344
+ img.src = url;
345
+ this.editor.events.onImageDrop.fire(this.editor, { imageElement: img, file });
346
+ }
347
+ });
348
+
349
+ this.editor.contentManager.ensureDocStructure(this.editor.getEditorElement());
350
+ }
351
+
352
+ this.editor.history.addItem();
353
+ return false;
354
+ }
355
+
356
+ dragEnd(e)
357
+ {
358
+ this.editor.history.addItem();
359
+ }
360
+
361
+ paste(e)
362
+ {
363
+ const hasHtml = !!e.clipboardData?.getData('text/html');
364
+
365
+ setTimeout(() =>
366
+ {
367
+ const editorEl = this.editor.getEditorElement(),
368
+ selection = this.editor.selectionRange,
369
+ range = selection.ensureTextRange(selection.getRange()),
370
+ marker = selection.createRangeMarker(range),
371
+ html = editorEl.innerHTML;
372
+
373
+ if (hasHtml)
374
+ {
375
+ editorEl.innerHTML = this.editor.sanitizer ? this.editor.sanitizer(html) : this.editor.getSanitizer().sanitize(html);
376
+ }
377
+
378
+ this.editor.contentManager.ensureDocStructure(editorEl, null, marker);
379
+ this.editor.events.onPaste.fire(this.editor, { event: e });
380
+ }, 0);
381
+ }
382
+
383
+ windowResize(e)
384
+ {
385
+ setTimeout(() =>
386
+ {
387
+ const selected = this.editor.getSelectedNodes();
388
+
389
+ if (this.editor.getEditorElement() && selected.length === 1)
390
+ this.editor.selectNode.call(selected[0], false);
391
+ }, 0);
392
+ }
393
+
394
+ #handleSelectionChange(activeElement)
395
+ {
396
+ const selection = this.editor.selectionRange;
397
+ this.editor.activateDocument();
398
+ selection.getRange();
399
+
400
+ if (this.editor.renderState !== 2 ||
401
+ !this.editor.setActiveEditor(activeElement) ||
402
+ !selection.getSelection().rangeCount)
403
+ return;
404
+
405
+ if (selection.rangeChanged(this.editor.getStoredRange()))
406
+ {
407
+ this.editor.storeRange(selection.getRange());
408
+
409
+ if (!this.editor.contentManager.hasContent())
410
+ this.editor.contentManager.insertParagraph();
411
+
412
+ this.editor.clearSelection();
413
+ this.editor.resizer.clear();
414
+ selection.selectNodesInRange(this.editor.getStoredRange());
415
+
416
+ if (!this.editor.element.className.includes(' fullscreen') && this.editor.getToolbarDisplay(this.editor.getEditorElement()) === componyx.UI.Editor.ToolbarDisplayOption.CARET)
417
+ {
418
+ this.editor.setToolbarBoxDisplay(!this.editor.getStoredRange().collapsed);
419
+ }
420
+
421
+ this.editor.events.onSelectionChange.fire(this.editor);
422
+ }
423
+
424
+ this.editor.layoutState.getState();
425
+ this.editor.deactivateDocument();
426
+ }
427
+
428
+ #afterKeyDown(rootNode, mustCorrectify = false)
429
+ {
430
+ clearTimeout(this.#keyDownTimerId);
431
+ this.#keyDownTimerId = setTimeout(() =>
432
+ {
433
+ const selection = this.editor.selectionRange;
434
+ this.editor.activateDocument();
435
+
436
+ if (!this.editor.history.hasDocumentChanged())
437
+ return;
438
+
439
+ const range = selection.ensureTextRange(this.editor.selectionRange.getRange());
440
+ const marker = selection.createRangeMarker(range);
441
+
442
+ if (mustCorrectify)
443
+ this.editor.contentManager.ensureDocStructure(this.editor.getEditorElement(), range, marker);
444
+ else
445
+ {
446
+ this.editor.contentManager.cleanUp(rootNode, null, range, marker);
447
+ selection.removeRangeMarker(marker);
448
+ }
449
+
450
+ this.editor.history.addItem();
451
+ this.editor.layoutState.getState();
452
+ }, 0);
453
+ }
454
+ };
455
+
456
+ var EventManager = componyx.UI.editor_modules.EventManager;
457
+
458
+ export { EventManager as default };