suneditor 3.0.0-beta.9 → 3.0.0-rc.2
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.
- package/README.md +65 -57
- package/dist/suneditor-contents.min.css +1 -0
- package/dist/suneditor.min.css +1 -1
- package/dist/suneditor.min.js +1 -1
- package/package.json +110 -61
- package/src/assets/design/color.css +36 -17
- package/src/assets/design/size.css +2 -0
- package/src/assets/icons/defaultIcons.js +17 -2
- package/src/assets/suneditor-contents.css +51 -16
- package/src/assets/suneditor.css +116 -43
- package/src/core/config/contextProvider.js +288 -0
- package/src/core/config/eventManager.js +188 -0
- package/src/core/config/instanceCheck.js +59 -0
- package/src/core/config/optionProvider.js +452 -0
- package/src/core/editor.js +166 -1637
- package/src/core/event/actions/index.js +229 -0
- package/src/core/event/effects/common.registry.js +74 -0
- package/src/core/event/effects/keydown.registry.js +573 -0
- package/src/core/event/effects/ruleHelpers.js +148 -0
- package/src/core/event/eventOrchestrator.js +944 -0
- package/src/core/event/executor.js +27 -0
- package/src/core/{base/eventHandlers → event/handlers}/handler_toolbar.js +27 -28
- package/src/core/{base/eventHandlers → event/handlers}/handler_ww_clipboard.js +10 -8
- package/src/core/{base/eventHandlers → event/handlers}/handler_ww_dragDrop.js +22 -23
- package/src/core/event/handlers/handler_ww_input.js +75 -0
- package/src/core/event/handlers/handler_ww_key.js +228 -0
- package/src/core/event/handlers/handler_ww_mouse.js +166 -0
- package/src/core/event/ports.js +211 -0
- package/src/core/event/reducers/keydown.reducer.js +97 -0
- package/src/core/event/rules/keydown.rule.arrow.js +63 -0
- package/src/core/event/rules/keydown.rule.backspace.js +208 -0
- package/src/core/event/rules/keydown.rule.delete.js +132 -0
- package/src/core/event/rules/keydown.rule.enter.js +150 -0
- package/src/core/event/rules/keydown.rule.tab.js +35 -0
- package/src/core/event/support/defaultLineManager.js +136 -0
- package/src/core/event/support/selectionState.js +204 -0
- package/src/core/kernel/coreKernel.js +320 -0
- package/src/core/kernel/kernelInjector.js +19 -0
- package/src/core/kernel/store.js +173 -0
- package/src/core/{class → logic/dom}/char.js +42 -45
- package/src/core/logic/dom/format.js +1075 -0
- package/src/core/{class → logic/dom}/html.js +743 -624
- package/src/core/logic/dom/inline.js +1847 -0
- package/src/core/logic/dom/listFormat.js +601 -0
- package/src/core/{class → logic/dom}/nodeTransform.js +92 -72
- package/src/core/{class → logic/dom}/offset.js +254 -317
- package/src/core/logic/dom/selection.js +754 -0
- package/src/core/logic/panel/menu.js +389 -0
- package/src/core/logic/panel/toolbar.js +449 -0
- package/src/core/logic/panel/viewer.js +761 -0
- package/src/core/logic/shell/_commandExecutor.js +380 -0
- package/src/core/logic/shell/commandDispatcher.js +241 -0
- package/src/core/logic/shell/component.js +970 -0
- package/src/core/logic/shell/focusManager.js +110 -0
- package/src/core/{base → logic/shell}/history.js +110 -60
- package/src/core/logic/shell/pluginManager.js +363 -0
- package/src/core/logic/shell/shortcuts.js +130 -0
- package/src/core/logic/shell/ui.js +904 -0
- package/src/core/schema/context.js +66 -0
- package/src/core/schema/frameContext.js +160 -0
- package/src/core/schema/options.js +628 -0
- package/src/core/section/constructor.js +194 -500
- package/src/core/section/documentType.js +297 -222
- package/src/events.js +808 -543
- package/src/helper/clipboard.js +27 -16
- package/src/helper/converter.js +100 -78
- package/src/helper/dom/domCheck.js +56 -30
- package/src/helper/dom/domQuery.js +159 -89
- package/src/helper/dom/domUtils.js +114 -49
- package/src/helper/dom/index.js +5 -1
- package/src/helper/env.js +26 -26
- package/src/helper/index.js +1 -1
- package/src/helper/keyCodeMap.js +25 -28
- package/src/helper/numbers.js +4 -8
- package/src/helper/unicode.js +4 -8
- package/src/hooks/base.js +307 -0
- package/src/hooks/params.js +130 -0
- package/src/interfaces/contracts.js +227 -0
- package/src/interfaces/index.js +7 -0
- package/src/interfaces/plugins.js +239 -0
- package/src/langs/ckb.js +4 -4
- package/src/langs/cs.js +4 -4
- package/src/langs/da.js +4 -4
- package/src/langs/de.js +4 -4
- package/src/langs/en.js +4 -4
- package/src/langs/es.js +4 -4
- package/src/langs/fa.js +4 -4
- package/src/langs/fr.js +4 -4
- package/src/langs/he.js +4 -4
- package/src/langs/hu.js +4 -4
- package/src/langs/it.js +4 -4
- package/src/langs/ja.js +4 -4
- package/src/langs/km.js +4 -4
- package/src/langs/ko.js +4 -4
- package/src/langs/lv.js +4 -4
- package/src/langs/nl.js +4 -4
- package/src/langs/pl.js +4 -4
- package/src/langs/pt_br.js +13 -13
- package/src/langs/ro.js +4 -4
- package/src/langs/ru.js +4 -4
- package/src/langs/se.js +4 -4
- package/src/langs/tr.js +4 -4
- package/src/langs/uk.js +4 -4
- package/src/langs/ur.js +4 -4
- package/src/langs/zh_cn.js +4 -4
- package/src/modules/{Browser.js → contract/Browser.js} +119 -128
- package/src/modules/{ColorPicker.js → contract/ColorPicker.js} +132 -142
- package/src/modules/contract/Controller.js +589 -0
- package/src/modules/{Figure.js → contract/Figure.js} +591 -411
- package/src/modules/{HueSlider.js → contract/HueSlider.js} +125 -86
- package/src/modules/contract/Modal.js +357 -0
- package/src/modules/contract/index.js +9 -0
- package/src/modules/manager/ApiManager.js +197 -0
- package/src/modules/{FileManager.js → manager/FileManager.js} +128 -160
- package/src/modules/manager/index.js +5 -0
- package/src/modules/{ModalAnchorEditor.js → ui/ModalAnchorEditor.js} +108 -138
- package/src/modules/{SelectMenu.js → ui/SelectMenu.js} +119 -120
- package/src/modules/{_DragHandle.js → ui/_DragHandle.js} +1 -1
- package/src/modules/ui/index.js +6 -0
- package/src/plugins/browser/audioGallery.js +23 -26
- package/src/plugins/browser/fileBrowser.js +25 -28
- package/src/plugins/browser/fileGallery.js +20 -23
- package/src/plugins/browser/imageGallery.js +24 -23
- package/src/plugins/browser/videoGallery.js +27 -29
- package/src/plugins/command/blockquote.js +11 -17
- package/src/plugins/command/exportPDF.js +26 -26
- package/src/plugins/command/fileUpload.js +138 -133
- package/src/plugins/command/list_bulleted.js +48 -44
- package/src/plugins/command/list_numbered.js +48 -44
- package/src/plugins/dropdown/align.js +64 -50
- package/src/plugins/dropdown/backgroundColor.js +34 -35
- package/src/plugins/dropdown/{formatBlock.js → blockStyle.js} +43 -37
- package/src/plugins/dropdown/font.js +50 -36
- package/src/plugins/dropdown/fontColor.js +34 -35
- package/src/plugins/dropdown/hr.js +55 -50
- package/src/plugins/dropdown/layout.js +20 -15
- package/src/plugins/dropdown/lineHeight.js +46 -30
- package/src/plugins/dropdown/list.js +32 -33
- package/src/plugins/dropdown/paragraphStyle.js +40 -34
- package/src/plugins/dropdown/table/index.js +915 -0
- package/src/plugins/dropdown/table/render/table.html.js +308 -0
- package/src/plugins/dropdown/table/render/table.menu.js +121 -0
- package/src/plugins/dropdown/table/services/table.cell.js +465 -0
- package/src/plugins/dropdown/table/services/table.clipboard.js +414 -0
- package/src/plugins/dropdown/table/services/table.grid.js +504 -0
- package/src/plugins/dropdown/table/services/table.resize.js +463 -0
- package/src/plugins/dropdown/table/services/table.selection.js +466 -0
- package/src/plugins/dropdown/table/services/table.style.js +844 -0
- package/src/plugins/dropdown/table/shared/table.constants.js +109 -0
- package/src/plugins/dropdown/table/shared/table.utils.js +219 -0
- package/src/plugins/dropdown/template.js +20 -15
- package/src/plugins/dropdown/textStyle.js +28 -22
- package/src/plugins/field/mention.js +54 -49
- package/src/plugins/index.js +5 -5
- package/src/plugins/input/fontSize.js +100 -97
- package/src/plugins/input/pageNavigator.js +13 -10
- package/src/plugins/modal/audio.js +208 -219
- package/src/plugins/modal/drawing.js +99 -104
- package/src/plugins/modal/embed.js +323 -312
- package/src/plugins/modal/image/index.js +942 -0
- package/src/plugins/modal/image/render/image.html.js +150 -0
- package/src/plugins/modal/image/services/image.size.js +198 -0
- package/src/plugins/modal/image/services/image.upload.js +216 -0
- package/src/plugins/modal/image/shared/image.constants.js +20 -0
- package/src/plugins/modal/link.js +74 -54
- package/src/plugins/modal/math.js +126 -119
- package/src/plugins/modal/video/index.js +858 -0
- package/src/plugins/modal/video/render/video.html.js +131 -0
- package/src/plugins/modal/video/services/video.size.js +281 -0
- package/src/plugins/modal/video/services/video.upload.js +92 -0
- package/src/plugins/popup/anchor.js +57 -49
- package/src/suneditor.js +73 -61
- package/src/themes/cobalt.css +155 -0
- package/src/themes/dark.css +143 -120
- package/src/typedef.js +214 -63
- package/types/assets/icons/defaultIcons.d.ts +8 -0
- package/types/assets/suneditor-contents.css.d.ts +1 -0
- package/types/assets/suneditor.css.d.ts +1 -0
- package/types/core/config/contextProvider.d.ts +148 -0
- package/types/core/config/eventManager.d.ts +68 -0
- package/types/core/config/instanceCheck.d.ts +33 -0
- package/types/core/config/optionProvider.d.ts +147 -0
- package/types/core/editor.d.ts +27 -586
- package/types/core/event/actions/index.d.ts +50 -0
- package/types/core/event/effects/common.registry.d.ts +56 -0
- package/types/core/event/effects/keydown.registry.d.ts +80 -0
- package/types/core/event/effects/ruleHelpers.d.ts +36 -0
- package/types/core/event/eventOrchestrator.d.ts +191 -0
- package/types/core/event/executor.d.ts +13 -0
- package/types/core/event/handlers/handler_toolbar.d.ts +38 -0
- package/types/core/event/handlers/handler_ww_clipboard.d.ts +36 -0
- package/types/core/event/handlers/handler_ww_dragDrop.d.ts +26 -0
- package/types/core/event/handlers/handler_ww_input.d.ts +38 -0
- package/types/core/event/handlers/handler_ww_key.d.ts +40 -0
- package/types/core/event/handlers/handler_ww_mouse.d.ts +47 -0
- package/types/core/event/ports.d.ts +256 -0
- package/types/core/event/reducers/keydown.reducer.d.ts +84 -0
- package/types/core/event/rules/keydown.rule.arrow.d.ts +19 -0
- package/types/core/event/rules/keydown.rule.backspace.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.delete.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.enter.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.tab.d.ts +18 -0
- package/types/core/event/support/defaultLineManager.d.ts +22 -0
- package/types/core/event/support/selectionState.d.ts +29 -0
- package/types/core/kernel/coreKernel.d.ts +219 -0
- package/types/core/kernel/kernelInjector.d.ts +16 -0
- package/types/core/kernel/store.d.ts +170 -0
- package/types/core/logic/dom/char.d.ts +46 -0
- package/types/core/logic/dom/format.d.ts +234 -0
- package/types/core/logic/dom/html.d.ts +290 -0
- package/types/core/logic/dom/inline.d.ts +93 -0
- package/types/core/logic/dom/listFormat.d.ts +101 -0
- package/types/core/logic/dom/nodeTransform.d.ts +110 -0
- package/types/core/logic/dom/offset.d.ts +335 -0
- package/types/core/logic/dom/selection.d.ts +165 -0
- package/types/core/logic/panel/menu.d.ts +93 -0
- package/types/core/logic/panel/toolbar.d.ts +128 -0
- package/types/core/logic/panel/viewer.d.ts +89 -0
- package/types/core/logic/shell/_commandExecutor.d.ts +18 -0
- package/types/core/logic/shell/commandDispatcher.d.ts +65 -0
- package/types/core/logic/shell/component.d.ts +182 -0
- package/types/core/logic/shell/focusManager.d.ts +31 -0
- package/types/core/{base → logic/shell}/history.d.ts +13 -12
- package/types/core/logic/shell/pluginManager.d.ts +115 -0
- package/types/core/logic/shell/shortcuts.d.ts +131 -0
- package/types/core/logic/shell/ui.d.ts +261 -0
- package/types/core/schema/context.d.ts +104 -0
- package/types/core/schema/frameContext.d.ts +320 -0
- package/types/core/schema/options.d.ts +1241 -0
- package/types/core/section/constructor.d.ts +117 -652
- package/types/core/section/documentType.d.ts +43 -61
- package/types/events.d.ts +796 -65
- package/types/helper/clipboard.d.ts +5 -4
- package/types/helper/converter.d.ts +55 -43
- package/types/helper/dom/domCheck.d.ts +27 -19
- package/types/helper/dom/domQuery.d.ts +76 -57
- package/types/helper/dom/domUtils.d.ts +62 -39
- package/types/helper/dom/index.d.ts +87 -1
- package/types/helper/env.d.ts +16 -13
- package/types/helper/index.d.ts +8 -2
- package/types/helper/keyCodeMap.d.ts +24 -23
- package/types/helper/numbers.d.ts +4 -6
- package/types/helper/unicode.d.ts +4 -3
- package/types/hooks/base.d.ts +239 -0
- package/types/hooks/params.d.ts +65 -0
- package/types/index.d.ts +20 -117
- package/types/interfaces/contracts.d.ts +183 -0
- package/types/interfaces/index.d.ts +3 -0
- package/types/interfaces/plugins.d.ts +168 -0
- package/types/langs/_Lang.d.ts +2 -2
- package/types/langs/index.d.ts +2 -2
- package/types/modules/contract/Browser.d.ts +262 -0
- package/types/modules/contract/ColorPicker.d.ts +99 -0
- package/types/modules/contract/Controller.d.ts +204 -0
- package/types/modules/contract/Figure.d.ts +529 -0
- package/types/modules/{HueSlider.d.ts → contract/HueSlider.d.ts} +39 -28
- package/types/modules/contract/Modal.d.ts +62 -0
- package/types/modules/contract/index.d.ts +7 -0
- package/types/modules/manager/ApiManager.d.ts +106 -0
- package/types/modules/manager/FileManager.d.ts +124 -0
- package/types/modules/manager/index.d.ts +3 -0
- package/types/modules/ui/ModalAnchorEditor.d.ts +152 -0
- package/types/modules/ui/SelectMenu.d.ts +107 -0
- package/types/modules/{_DragHandle.d.ts → ui/_DragHandle.d.ts} +1 -0
- package/types/modules/ui/index.d.ts +4 -0
- package/types/plugins/browser/audioGallery.d.ts +33 -41
- package/types/plugins/browser/fileBrowser.d.ts +42 -50
- package/types/plugins/browser/fileGallery.d.ts +33 -41
- package/types/plugins/browser/imageGallery.d.ts +30 -37
- package/types/plugins/browser/videoGallery.d.ts +33 -41
- package/types/plugins/command/blockquote.d.ts +4 -21
- package/types/plugins/command/exportPDF.d.ts +23 -33
- package/types/plugins/command/fileUpload.d.ts +80 -100
- package/types/plugins/command/list_bulleted.d.ts +9 -35
- package/types/plugins/command/list_numbered.d.ts +9 -35
- package/types/plugins/dropdown/align.d.ts +23 -46
- package/types/plugins/dropdown/backgroundColor.d.ts +35 -53
- package/types/plugins/dropdown/blockStyle.d.ts +45 -0
- package/types/plugins/dropdown/font.d.ts +18 -41
- package/types/plugins/dropdown/fontColor.d.ts +35 -53
- package/types/plugins/dropdown/hr.d.ts +26 -52
- package/types/plugins/dropdown/layout.d.ts +19 -25
- package/types/plugins/dropdown/lineHeight.d.ts +21 -39
- package/types/plugins/dropdown/list.d.ts +6 -34
- package/types/plugins/dropdown/paragraphStyle.d.ts +34 -45
- package/types/plugins/dropdown/table/index.d.ts +158 -0
- package/types/plugins/dropdown/table/render/table.html.d.ts +71 -0
- package/types/plugins/dropdown/table/render/table.menu.d.ts +59 -0
- package/types/plugins/dropdown/table/services/table.cell.d.ts +76 -0
- package/types/plugins/dropdown/table/services/table.clipboard.d.ts +26 -0
- package/types/plugins/dropdown/table/services/table.grid.d.ts +77 -0
- package/types/plugins/dropdown/table/services/table.resize.d.ts +72 -0
- package/types/plugins/dropdown/table/services/table.selection.d.ts +59 -0
- package/types/plugins/dropdown/table/services/table.style.d.ts +162 -0
- package/types/plugins/dropdown/table/shared/table.constants.d.ts +134 -0
- package/types/plugins/dropdown/table/shared/table.utils.d.ts +91 -0
- package/types/plugins/dropdown/template.d.ts +19 -25
- package/types/plugins/dropdown/textStyle.d.ts +23 -30
- package/types/plugins/field/mention.d.ts +66 -72
- package/types/plugins/index.d.ts +41 -40
- package/types/plugins/input/fontSize.d.ts +57 -96
- package/types/plugins/input/pageNavigator.d.ts +5 -8
- package/types/plugins/modal/audio.d.ts +60 -153
- package/types/plugins/modal/drawing.d.ts +16 -118
- package/types/plugins/modal/embed.d.ts +46 -166
- package/types/plugins/modal/image/index.d.ts +281 -0
- package/types/plugins/modal/image/render/image.html.d.ts +45 -0
- package/types/plugins/modal/image/services/image.size.d.ts +55 -0
- package/types/plugins/modal/image/services/image.upload.d.ts +24 -0
- package/types/plugins/modal/image/shared/image.constants.d.ts +17 -0
- package/types/plugins/modal/link.d.ts +46 -66
- package/types/plugins/modal/math.d.ts +17 -86
- package/types/plugins/modal/{video.d.ts → video/index.d.ts} +89 -221
- package/types/plugins/modal/video/render/video.html.d.ts +37 -0
- package/types/plugins/modal/video/services/video.size.d.ts +74 -0
- package/types/plugins/modal/video/services/video.upload.d.ts +19 -0
- package/types/plugins/popup/anchor.d.ts +8 -38
- package/types/suneditor.d.ts +55 -24
- package/types/typedef.d.ts +344 -228
- package/CONTRIBUTING.md +0 -186
- package/src/core/base/eventHandlers/handler_ww_key_input.js +0 -1200
- package/src/core/base/eventHandlers/handler_ww_mouse.js +0 -194
- package/src/core/base/eventManager.js +0 -1523
- package/src/core/class/component.js +0 -856
- package/src/core/class/format.js +0 -3433
- package/src/core/class/menu.js +0 -346
- package/src/core/class/selection.js +0 -610
- package/src/core/class/shortcuts.js +0 -98
- package/src/core/class/toolbar.js +0 -431
- package/src/core/class/ui.js +0 -424
- package/src/core/class/viewer.js +0 -750
- package/src/core/section/actives.js +0 -266
- package/src/core/section/context.js +0 -102
- package/src/editorInjector/_classes.js +0 -36
- package/src/editorInjector/_core.js +0 -87
- package/src/editorInjector/index.js +0 -73
- package/src/modules/ApiManager.js +0 -191
- package/src/modules/Controller.js +0 -474
- package/src/modules/Modal.js +0 -346
- package/src/modules/index.js +0 -14
- package/src/plugins/dropdown/table.js +0 -4034
- package/src/plugins/modal/image.js +0 -1376
- package/src/plugins/modal/video.js +0 -1226
- package/types/core/base/eventHandlers/handler_toolbar.d.ts +0 -41
- package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +0 -40
- package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +0 -35
- package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +0 -45
- package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +0 -39
- package/types/core/base/eventManager.d.ts +0 -401
- package/types/core/class/char.d.ts +0 -61
- package/types/core/class/component.d.ts +0 -213
- package/types/core/class/format.d.ts +0 -623
- package/types/core/class/html.d.ts +0 -430
- package/types/core/class/menu.d.ts +0 -126
- package/types/core/class/nodeTransform.d.ts +0 -93
- package/types/core/class/offset.d.ts +0 -522
- package/types/core/class/selection.d.ts +0 -188
- package/types/core/class/shortcuts.d.ts +0 -142
- package/types/core/class/toolbar.d.ts +0 -189
- package/types/core/class/ui.d.ts +0 -164
- package/types/core/class/viewer.d.ts +0 -140
- package/types/core/section/actives.d.ts +0 -46
- package/types/core/section/context.d.ts +0 -45
- package/types/editorInjector/_classes.d.ts +0 -41
- package/types/editorInjector/_core.d.ts +0 -87
- package/types/editorInjector/index.d.ts +0 -69
- package/types/modules/ApiManager.d.ts +0 -125
- package/types/modules/Browser.d.ts +0 -326
- package/types/modules/ColorPicker.d.ts +0 -135
- package/types/modules/Controller.d.ts +0 -251
- package/types/modules/Figure.d.ts +0 -517
- package/types/modules/FileManager.d.ts +0 -202
- package/types/modules/Modal.d.ts +0 -111
- package/types/modules/ModalAnchorEditor.d.ts +0 -236
- package/types/modules/SelectMenu.d.ts +0 -194
- package/types/modules/index.d.ts +0 -26
- package/types/plugins/dropdown/formatBlock.d.ts +0 -55
- package/types/plugins/dropdown/table.d.ts +0 -627
- package/types/plugins/modal/image.d.ts +0 -451
- /package/{LICENSE → LICENSE.txt} +0 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import type {} from '../../../typedef';
|
|
2
|
+
export default Shortcuts;
|
|
3
|
+
export type ShortcutInfo = {
|
|
4
|
+
/**
|
|
5
|
+
* - Whether the [Ctrl, Command] key is pressed.
|
|
6
|
+
*/
|
|
7
|
+
c: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* - Whether the [Shift] key is pressed.
|
|
10
|
+
*/
|
|
11
|
+
s: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* - Whether the [Space] key is pressed.
|
|
14
|
+
*/
|
|
15
|
+
space: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* - Whether the Enter key is pressed.
|
|
18
|
+
*/
|
|
19
|
+
enter: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* - The command key. (e.g. `bold`)
|
|
22
|
+
*/
|
|
23
|
+
command: string;
|
|
24
|
+
/**
|
|
25
|
+
* - Whether the cursor is at the end of the line.
|
|
26
|
+
*/
|
|
27
|
+
edge: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* - The key pressed (e.g., `1.`).
|
|
30
|
+
*/
|
|
31
|
+
key?: string;
|
|
32
|
+
/**
|
|
33
|
+
* - The keyEvent.code.
|
|
34
|
+
*/
|
|
35
|
+
keyCode?: string;
|
|
36
|
+
/**
|
|
37
|
+
* - A plugin's `shortcut` method that is called instead of the default `editor.run` method.
|
|
38
|
+
*/
|
|
39
|
+
method?: string | ((...args: any) => any);
|
|
40
|
+
/**
|
|
41
|
+
* - The plugin name.
|
|
42
|
+
*/
|
|
43
|
+
plugin: string;
|
|
44
|
+
/**
|
|
45
|
+
* - Plugin's type. (`command`, `dropdown`, `modal`, `browser`, `input`, `field`, `popup`).
|
|
46
|
+
*/
|
|
47
|
+
type: string;
|
|
48
|
+
/**
|
|
49
|
+
* - The plugin command button.
|
|
50
|
+
*/
|
|
51
|
+
button: Node;
|
|
52
|
+
/**
|
|
53
|
+
* - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
|
|
54
|
+
*/
|
|
55
|
+
r: Array<string>;
|
|
56
|
+
/**
|
|
57
|
+
* - Whether the event was triggered by a text input (e.g., mention like
|
|
58
|
+
*/
|
|
59
|
+
textTrigger: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* @typedef {Object} ShortcutInfo
|
|
63
|
+
* @property {boolean} c - Whether the [Ctrl, Command] key is pressed.
|
|
64
|
+
* @property {boolean} s - Whether the [Shift] key is pressed.
|
|
65
|
+
* @property {boolean} space - Whether the [Space] key is pressed.
|
|
66
|
+
* @property {boolean} enter - Whether the Enter key is pressed.
|
|
67
|
+
* @property {string} command - The command key. (e.g. `bold`)
|
|
68
|
+
* @property {boolean} edge - Whether the cursor is at the end of the line.
|
|
69
|
+
* @property {string} [key] - The key pressed (e.g., `1.`).
|
|
70
|
+
* @property {string} [keyCode] - The keyEvent.code.
|
|
71
|
+
* @property {string|((...args: *) => *)} [method] - A plugin's `shortcut` method that is called instead of the default `editor.run` method.
|
|
72
|
+
* @property {string} plugin - The plugin name.
|
|
73
|
+
* @property {string} type - Plugin's type. (`command`, `dropdown`, `modal`, `browser`, `input`, `field`, `popup`).
|
|
74
|
+
* @property {Node} button - The plugin command button.
|
|
75
|
+
* @property {Array<string>} r - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
|
|
76
|
+
* @property {string} textTrigger - Whether the event was triggered by a text input (e.g., mention like @ab).
|
|
77
|
+
*/
|
|
78
|
+
/**
|
|
79
|
+
* @description Shortcuts class
|
|
80
|
+
*/
|
|
81
|
+
declare class Shortcuts {
|
|
82
|
+
/**
|
|
83
|
+
* @constructor
|
|
84
|
+
* @param {SunEditor.Kernel} kernel
|
|
85
|
+
*/
|
|
86
|
+
constructor(kernel: SunEditor.Kernel);
|
|
87
|
+
/**
|
|
88
|
+
* @description Shortcuts key map
|
|
89
|
+
* @type {Map<string, *>}
|
|
90
|
+
*/
|
|
91
|
+
keyMap: Map<string, any>;
|
|
92
|
+
/**
|
|
93
|
+
* @description Shortcuts reverse key array
|
|
94
|
+
* - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
|
|
95
|
+
* @type {Set<string>}
|
|
96
|
+
*/
|
|
97
|
+
reverseKeys: Set<string>;
|
|
98
|
+
/**
|
|
99
|
+
* @description If there is a shortcut function, run it.
|
|
100
|
+
* @param {KeyboardEvent} event Keyboard event object
|
|
101
|
+
* @param {boolean} ctrl Whether the Ctrl key is pressed
|
|
102
|
+
* @param {boolean} shift Whether the Shift key is pressed
|
|
103
|
+
* @param {string} keyCode The keyEvent.code.
|
|
104
|
+
* @param {string} text The text content of the key
|
|
105
|
+
* @param {boolean} edge Whether the cursor is at the end of the line
|
|
106
|
+
* @param {HTMLElement} line The current line node
|
|
107
|
+
* @param {Range} range The current range object
|
|
108
|
+
* @returns {boolean} Whether to execute shortcuts
|
|
109
|
+
*/
|
|
110
|
+
command(event: KeyboardEvent, ctrl: boolean, shift: boolean, keyCode: string, text: string, edge: boolean, line: HTMLElement, range: Range): boolean;
|
|
111
|
+
/**
|
|
112
|
+
* @description Disable the shortcut activation.
|
|
113
|
+
*/
|
|
114
|
+
disable(): void;
|
|
115
|
+
/**
|
|
116
|
+
* @description Enable the shortcut activation.
|
|
117
|
+
*/
|
|
118
|
+
enable(): void;
|
|
119
|
+
/**
|
|
120
|
+
* @internal
|
|
121
|
+
* @description Registers custom shortcut keys (keys starting with `_`) into the shortcut map.
|
|
122
|
+
* Called during initialization and when toolbar is reset.
|
|
123
|
+
*/
|
|
124
|
+
_registerCustomShortcuts(): void;
|
|
125
|
+
/**
|
|
126
|
+
* @internal
|
|
127
|
+
* @description Destroy the Shortcuts instance and release memory
|
|
128
|
+
*/
|
|
129
|
+
_destroy(): void;
|
|
130
|
+
#private;
|
|
131
|
+
}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
import type {} from '../../../typedef';
|
|
2
|
+
export default UIManager;
|
|
3
|
+
/**
|
|
4
|
+
* @description The UI class is a class that handles operations related to the user interface of SunEditor.
|
|
5
|
+
* - This class sets the editor's style, theme, editor mode, etc., and controls the state of various UI elements.
|
|
6
|
+
*/
|
|
7
|
+
declare class UIManager {
|
|
8
|
+
/**
|
|
9
|
+
* @constructor
|
|
10
|
+
* @param {SunEditor.Kernel} kernel
|
|
11
|
+
*/
|
|
12
|
+
constructor(kernel: SunEditor.Kernel);
|
|
13
|
+
alertModal: HTMLElement;
|
|
14
|
+
alertMessage: HTMLSpanElement;
|
|
15
|
+
toastPopup: HTMLElement;
|
|
16
|
+
toastContainer: Element;
|
|
17
|
+
toastMessage: HTMLSpanElement;
|
|
18
|
+
/**
|
|
19
|
+
* @description Whether `SelectMenu` is open
|
|
20
|
+
* @type {boolean}
|
|
21
|
+
*/
|
|
22
|
+
selectMenuOn: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* @description Currently open `Controller` info array
|
|
25
|
+
* @type {Array<SunEditor.Module.Controller.Info>}
|
|
26
|
+
*/
|
|
27
|
+
opendControllers: Array<SunEditor.Module.Controller.Info>;
|
|
28
|
+
/**
|
|
29
|
+
* @description Controller target's frame div (`editor.frameContext.get('topArea')`)
|
|
30
|
+
* @type {?HTMLElement}
|
|
31
|
+
*/
|
|
32
|
+
controllerTargetContext: HTMLElement | null;
|
|
33
|
+
/**
|
|
34
|
+
* @internal
|
|
35
|
+
* @description Current Figure container.
|
|
36
|
+
* @type {?HTMLElement}
|
|
37
|
+
*/
|
|
38
|
+
_figureContainer: HTMLElement | null;
|
|
39
|
+
/**
|
|
40
|
+
* @description Set editor frame styles.
|
|
41
|
+
* - Define the style of the edit area
|
|
42
|
+
* - It can also be defined with the `setOptions` method, but the `setEditorStyle` method does not render the editor again.
|
|
43
|
+
* @param {string} style Style string
|
|
44
|
+
* @param {?SunEditor.FrameContext} [fc] Frame context
|
|
45
|
+
*/
|
|
46
|
+
setEditorStyle(style: string, fc?: SunEditor.FrameContext | null): void;
|
|
47
|
+
/**
|
|
48
|
+
* @description Set the theme to the editor
|
|
49
|
+
* @param {string} theme Theme name
|
|
50
|
+
*/
|
|
51
|
+
setTheme(theme: string): void;
|
|
52
|
+
/**
|
|
53
|
+
* @description Set direction to `rtl` or `ltr`.
|
|
54
|
+
* @param {string} dir `rtl` or `ltr`
|
|
55
|
+
*/
|
|
56
|
+
setDir(dir: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* @description Switch to or off `ReadOnly` mode.
|
|
59
|
+
* @param {boolean} value `readOnly` boolean value.
|
|
60
|
+
* @param {string} [rootKey] Root key
|
|
61
|
+
*/
|
|
62
|
+
readOnly(value: boolean, rootKey?: string): void;
|
|
63
|
+
/**
|
|
64
|
+
* @description Disables the editor.
|
|
65
|
+
* @param {string} [rootKey] Root key
|
|
66
|
+
*/
|
|
67
|
+
disable(rootKey?: string): void;
|
|
68
|
+
/**
|
|
69
|
+
* @description Enables the editor.
|
|
70
|
+
* @param {string} [rootKey] Root key
|
|
71
|
+
*/
|
|
72
|
+
enable(rootKey?: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* @description Shows the editor interface.
|
|
75
|
+
* @param {string} [rootKey] Root key
|
|
76
|
+
*/
|
|
77
|
+
show(rootKey?: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* @description Hides the editor interface.
|
|
80
|
+
* @param {string} [rootKey] Root key
|
|
81
|
+
*/
|
|
82
|
+
hide(rootKey?: string): void;
|
|
83
|
+
/**
|
|
84
|
+
* @description Shows the loading spinner.
|
|
85
|
+
* @param {string} [rootKey] Root key
|
|
86
|
+
*/
|
|
87
|
+
showLoading(rootKey?: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* @description Hides the loading spinner.
|
|
90
|
+
* @param {string} [rootKey] Root key
|
|
91
|
+
*/
|
|
92
|
+
hideLoading(rootKey?: string): void;
|
|
93
|
+
/**
|
|
94
|
+
* @description Open the alert panel
|
|
95
|
+
* @param {string} text alert message
|
|
96
|
+
* @param {""|"error"|"success"} type alert type
|
|
97
|
+
*/
|
|
98
|
+
alertOpen(text: string, type: '' | 'error' | 'success'): void;
|
|
99
|
+
/**
|
|
100
|
+
* @description Close the alert panel
|
|
101
|
+
*/
|
|
102
|
+
alertClose(): void;
|
|
103
|
+
/**
|
|
104
|
+
* @description Show toast
|
|
105
|
+
* @param {string} message toast message
|
|
106
|
+
* @param {number} [duration=1000] duration time(ms)
|
|
107
|
+
* @param {""|"error"|"success"} [type=""] duration time(ms)
|
|
108
|
+
*/
|
|
109
|
+
showToast(message: string, duration?: number, type?: '' | 'error' | 'success'): void;
|
|
110
|
+
/**
|
|
111
|
+
* @description Close toast
|
|
112
|
+
*/
|
|
113
|
+
closeToast(): void;
|
|
114
|
+
/**
|
|
115
|
+
* @description This method disables or enables the toolbar buttons when the `controller` is activated or deactivated.
|
|
116
|
+
* - When the `controller` is activated, the toolbar buttons are disabled; when the `controller` is deactivated, the buttons are enabled.
|
|
117
|
+
* @param {boolean} active If `true`, the toolbar buttons will be disabled. If `false`, the toolbar buttons will be enabled.
|
|
118
|
+
* @returns {boolean} The current state of the controller on disabled buttons.
|
|
119
|
+
*/
|
|
120
|
+
setControllerOnDisabledButtons(active: boolean): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* @description Set the controller target context to the current top area.
|
|
123
|
+
*/
|
|
124
|
+
onControllerContext(): void;
|
|
125
|
+
/**
|
|
126
|
+
* @description Reset the controller target context.
|
|
127
|
+
*/
|
|
128
|
+
offControllerContext(): void;
|
|
129
|
+
/**
|
|
130
|
+
* @description Activate the transparent background `div` so that other elements are not affected during resizing.
|
|
131
|
+
* @param {string} cursor cursor css property
|
|
132
|
+
*/
|
|
133
|
+
enableBackWrapper(cursor: string): void;
|
|
134
|
+
/**
|
|
135
|
+
* @description Disabled background `div`
|
|
136
|
+
*/
|
|
137
|
+
disableBackWrapper(): void;
|
|
138
|
+
/**
|
|
139
|
+
* @description Closes the currently active controller by delegating to the component's deselect logic.
|
|
140
|
+
* Use this method to close a single active controller from external code.
|
|
141
|
+
* @see _offControllers - For closing all open controllers at once (internal use)
|
|
142
|
+
*/
|
|
143
|
+
offCurrentController(): void;
|
|
144
|
+
/**
|
|
145
|
+
* @description Closes the currently open modal dialog.
|
|
146
|
+
*/
|
|
147
|
+
offCurrentModal(): void;
|
|
148
|
+
/**
|
|
149
|
+
* @description Get the current figure container only if it is visible (active).
|
|
150
|
+
* @returns {?HTMLElement} The active figure element or null.
|
|
151
|
+
*/
|
|
152
|
+
getVisibleFigure(): HTMLElement | null;
|
|
153
|
+
/**
|
|
154
|
+
* @description Set the active figure element (image, video) being resized.
|
|
155
|
+
* @param {?HTMLElement} figure
|
|
156
|
+
*/
|
|
157
|
+
setFigureContainer(figure: HTMLElement | null): void;
|
|
158
|
+
preventToolbarHide(allow: any): void;
|
|
159
|
+
get isPreventToolbarHide(): boolean;
|
|
160
|
+
/**
|
|
161
|
+
* @param {SunEditor.FrameContext} rt Root target[key] FrameContext
|
|
162
|
+
*/
|
|
163
|
+
reset(rt: SunEditor.FrameContext): void;
|
|
164
|
+
/**
|
|
165
|
+
* @internal
|
|
166
|
+
* @description Closes all open controllers except those marked as `fixed`.
|
|
167
|
+
* Iterates through `opendControllers`, calls `controllerClose` on each non-fixed controller,
|
|
168
|
+
* hides their forms, and resets the controller state.
|
|
169
|
+
* @see offCurrentController - Public method for closing a single controller via component deselect
|
|
170
|
+
*/
|
|
171
|
+
_offControllers(): void;
|
|
172
|
+
currentControllerName: string;
|
|
173
|
+
/**
|
|
174
|
+
* @internal
|
|
175
|
+
* @description Synchronizes floating UI element positions with the current scroll offset.
|
|
176
|
+
* Called by eventManager when the wysiwyg area is scrolled.
|
|
177
|
+
* - Adjusts balloon toolbar position based on scroll offset
|
|
178
|
+
* - Closes controllers if scroll target changes
|
|
179
|
+
* - Updates line breaker positions
|
|
180
|
+
* @param {SunEditor.EventWysiwyg} eventWysiwyg - The scroll event source (Window or element with scroll data)
|
|
181
|
+
*/
|
|
182
|
+
_syncScrollPosition(eventWysiwyg: SunEditor.EventWysiwyg): void;
|
|
183
|
+
/**
|
|
184
|
+
* @internal
|
|
185
|
+
* @description Repositions all currently open controllers after scroll.
|
|
186
|
+
* Called by eventManager during container scroll events.
|
|
187
|
+
* - Triggers drag handle repositioning if active
|
|
188
|
+
* - Calls _scrollReposition on each open controller
|
|
189
|
+
*/
|
|
190
|
+
_repositionControllers(): void;
|
|
191
|
+
/**
|
|
192
|
+
* @internal
|
|
193
|
+
* @description Visible controllers
|
|
194
|
+
* @param {boolean} value hidden/show
|
|
195
|
+
* @param {?boolean} [lineBreakShow] Line break hidden/show (default: Follows the value `value`.)
|
|
196
|
+
*/
|
|
197
|
+
_visibleControllers(value: boolean, lineBreakShow?: boolean | null): void;
|
|
198
|
+
setCurrentControllerContext: any;
|
|
199
|
+
/**
|
|
200
|
+
* @internal
|
|
201
|
+
* @description Set the disabled button list
|
|
202
|
+
*/
|
|
203
|
+
_initToggleButtons(): void;
|
|
204
|
+
/**
|
|
205
|
+
* @internal
|
|
206
|
+
* @description Toggle the disabled state of buttons reserved for Code View.
|
|
207
|
+
* @param {boolean} isCodeView
|
|
208
|
+
*/
|
|
209
|
+
_toggleCodeViewButtons(isCodeView: boolean): void;
|
|
210
|
+
/**
|
|
211
|
+
* @internal
|
|
212
|
+
* @description Toggle the disabled state of buttons when a controller is active.
|
|
213
|
+
* @param {boolean} isOpen
|
|
214
|
+
*/
|
|
215
|
+
_toggleControllerButtons(isOpen: boolean): void;
|
|
216
|
+
/**
|
|
217
|
+
* @description Check if the button can be executed in the current state (ReadOnly, etc.)
|
|
218
|
+
* @param {Node} button
|
|
219
|
+
* @returns {boolean}
|
|
220
|
+
*/
|
|
221
|
+
isButtonDisabled(button: Node): boolean;
|
|
222
|
+
/**
|
|
223
|
+
* @internal
|
|
224
|
+
* @description Updates `placeholder` visibility based on editor state.
|
|
225
|
+
* Shows `placeholder` when editor is empty, hides it in code view or when content exists.
|
|
226
|
+
* @param {SunEditor.FrameContext} [fc] - Frame context (defaults to current frameContext)
|
|
227
|
+
*/
|
|
228
|
+
_updatePlaceholder(fc?: SunEditor.FrameContext): void;
|
|
229
|
+
/**
|
|
230
|
+
* @internal
|
|
231
|
+
* @description Synchronizes frame UI state after content changes.
|
|
232
|
+
* Coordinates `iframe` height adjustment, `placeholder` visibility, and document type page sync.
|
|
233
|
+
* @param {SunEditor.FrameContext} fc - Frame context to synchronize
|
|
234
|
+
*/
|
|
235
|
+
_syncFrameState(fc: SunEditor.FrameContext): void;
|
|
236
|
+
/**
|
|
237
|
+
* @internal
|
|
238
|
+
* @description Adjusts `iframe` height to match content height.
|
|
239
|
+
* Handles `auto`-height `iframe`s and manages scrolling based on `maxHeight` option.
|
|
240
|
+
* @param {SunEditor.FrameContext} fc - Frame context containing the `iframe`
|
|
241
|
+
*/
|
|
242
|
+
_iframeAutoHeight(fc: SunEditor.FrameContext): void;
|
|
243
|
+
/**
|
|
244
|
+
* @internal
|
|
245
|
+
* @description Emits the `onResizeEditor` event when editor height changes.
|
|
246
|
+
* Calculates height from `ResizeObserverEntry` if not provided directly.
|
|
247
|
+
* @param {SunEditor.FrameContext} fc - Frame context
|
|
248
|
+
* @param {number} h - Height value (`-1` to calculate from `resizeObserverEntry`)
|
|
249
|
+
* @param {ResizeObserverEntry|null} resizeObserverEntry - `ResizeObserver` entry for height calculation
|
|
250
|
+
*/
|
|
251
|
+
_emitResizeEvent(fc: SunEditor.FrameContext, h: number, resizeObserverEntry: ResizeObserverEntry | null): void;
|
|
252
|
+
init(): void;
|
|
253
|
+
/**
|
|
254
|
+
* @internal
|
|
255
|
+
* @description Destroy the UI instance and release memory
|
|
256
|
+
*/
|
|
257
|
+
_destroy(): void;
|
|
258
|
+
opendModal: any;
|
|
259
|
+
opendBrowser: any;
|
|
260
|
+
#private;
|
|
261
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {Object} ContextStore
|
|
4
|
+
*
|
|
5
|
+
* This object stores **global editor-level UI references** for a SunEditor instance.
|
|
6
|
+
*
|
|
7
|
+
* - Primarily manages **toolbar, menu tray, and status bar containers**.
|
|
8
|
+
* - Used by the editor to control **sticky behavior, sub-toolbars, and global layout**.
|
|
9
|
+
* - Shared across all frames in a multi-frame editor (unlike FrameContextStore which is per-frame).
|
|
10
|
+
* -----------------
|
|
11
|
+
*
|
|
12
|
+
* === Main UI Containers ===
|
|
13
|
+
* @property {HTMLElement} menuTray - The **top menu tray** that holds buttons, dropdowns, or custom menus.
|
|
14
|
+
* @property {HTMLElement} toolbar_main - The **main toolbar** element containing editor actions.
|
|
15
|
+
* @property {HTMLElement} toolbar_buttonTray - The **container for main toolbar buttons**.
|
|
16
|
+
* @property {HTMLElement} toolbar_arrow - The **arrow indicator** in the toolbar (used for dropdown/tool menu navigation).
|
|
17
|
+
* @property {HTMLElement} [toolbar_wrapper] - The **wrapper for the main toolbar and editor frame** (groups UI together).
|
|
18
|
+
*
|
|
19
|
+
* === Sub-Toolbar (Contextual/Balloon) ===
|
|
20
|
+
* @property {HTMLElement} [toolbar_sub_main] - The **sub-toolbar** element (used for contextual or balloon toolbars).
|
|
21
|
+
* @property {HTMLElement} [toolbar_sub_buttonTray] - The **container for sub-toolbar buttons**.
|
|
22
|
+
* @property {HTMLElement} [toolbar_sub_arrow] - The **arrow indicator** in the sub-toolbar.
|
|
23
|
+
* @property {HTMLElement} [toolbar_sub_wrapper] - The **wrapper for the sub-toolbar**, containing its structure.
|
|
24
|
+
*
|
|
25
|
+
* === Status Bar ===
|
|
26
|
+
* @property {HTMLElement} [statusbar_wrapper] - The **wrapper for the status bar** (footer area for resize handles, info, etc.).
|
|
27
|
+
*
|
|
28
|
+
* === Sticky Mode Helpers ===
|
|
29
|
+
* @property {HTMLElement} [_stickyDummy] - A **dummy placeholder** used when the toolbar is in sticky mode (to prevent layout shift).
|
|
30
|
+
* ================================================================================================================================
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* @description Creates a context map of commonly accessed DOM elements for the editor.
|
|
34
|
+
* @param {Element} toolbar - Main toolbar element.
|
|
35
|
+
* @param {?Element} toolbarContainer - Container element for the toolbar.
|
|
36
|
+
* @param {Element} menuTray - Main menu tray element.
|
|
37
|
+
* @param {?Element} subbar - Sub-toolbar element.
|
|
38
|
+
* @param {?Element} statusbarContainer - Status bar container element.
|
|
39
|
+
* @returns {SunEditor.Context} - A map of key DOM nodes used throughout the editor.
|
|
40
|
+
*/
|
|
41
|
+
export function CreateContext(toolbar: Element, toolbarContainer: Element | null, menuTray: Element, subbar: Element | null, statusbarContainer: Element | null): SunEditor.Context;
|
|
42
|
+
/**
|
|
43
|
+
* This object stores **global editor-level UI references** for a SunEditor instance.
|
|
44
|
+
*
|
|
45
|
+
* - Primarily manages **toolbar, menu tray, and status bar containers**.
|
|
46
|
+
* - Used by the editor to control **sticky behavior, sub-toolbars, and global layout**.
|
|
47
|
+
* - Shared across all frames in a multi-frame editor (unlike FrameContextStore which is per-frame).
|
|
48
|
+
* -----------------
|
|
49
|
+
*
|
|
50
|
+
* === Main UI Containers ===
|
|
51
|
+
*/
|
|
52
|
+
export type ContextStore = {
|
|
53
|
+
/**
|
|
54
|
+
* - The **top menu tray** that holds buttons, dropdowns, or custom menus.
|
|
55
|
+
*/
|
|
56
|
+
menuTray: HTMLElement;
|
|
57
|
+
/**
|
|
58
|
+
* - The **main toolbar** element containing editor actions.
|
|
59
|
+
*/
|
|
60
|
+
toolbar_main: HTMLElement;
|
|
61
|
+
/**
|
|
62
|
+
* - The **container for main toolbar buttons**.
|
|
63
|
+
*/
|
|
64
|
+
toolbar_buttonTray: HTMLElement;
|
|
65
|
+
/**
|
|
66
|
+
* - The **arrow indicator** in the toolbar (used for dropdown/tool menu navigation).
|
|
67
|
+
*/
|
|
68
|
+
toolbar_arrow: HTMLElement;
|
|
69
|
+
/**
|
|
70
|
+
* - The **wrapper for the main toolbar and editor frame** (groups UI together).
|
|
71
|
+
*
|
|
72
|
+
* === Sub-Toolbar (Contextual/Balloon) ===
|
|
73
|
+
*/
|
|
74
|
+
toolbar_wrapper?: HTMLElement;
|
|
75
|
+
/**
|
|
76
|
+
* - The **sub-toolbar** element (used for contextual or balloon toolbars).
|
|
77
|
+
*/
|
|
78
|
+
toolbar_sub_main?: HTMLElement;
|
|
79
|
+
/**
|
|
80
|
+
* - The **container for sub-toolbar buttons**.
|
|
81
|
+
*/
|
|
82
|
+
toolbar_sub_buttonTray?: HTMLElement;
|
|
83
|
+
/**
|
|
84
|
+
* - The **arrow indicator** in the sub-toolbar.
|
|
85
|
+
*/
|
|
86
|
+
toolbar_sub_arrow?: HTMLElement;
|
|
87
|
+
/**
|
|
88
|
+
* - The **wrapper for the sub-toolbar**, containing its structure.
|
|
89
|
+
*
|
|
90
|
+
* === Status Bar ===
|
|
91
|
+
*/
|
|
92
|
+
toolbar_sub_wrapper?: HTMLElement;
|
|
93
|
+
/**
|
|
94
|
+
* - The **wrapper for the status bar** (footer area for resize handles, info, etc.).
|
|
95
|
+
*
|
|
96
|
+
* === Sticky Mode Helpers ===
|
|
97
|
+
*/
|
|
98
|
+
statusbar_wrapper?: HTMLElement;
|
|
99
|
+
/**
|
|
100
|
+
* - A **dummy placeholder** used when the toolbar is in sticky mode (to prevent layout shift).
|
|
101
|
+
* ================================================================================================================================
|
|
102
|
+
*/
|
|
103
|
+
_stickyDummy?: HTMLElement;
|
|
104
|
+
};
|