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 @@
|
|
|
1
|
+
declare module 'suneditor/css/contents';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare module 'suneditor/css';
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {import('../schema/frameContext').FrameContextStore} ConfigFrameContextStore
|
|
4
|
+
* @typedef {import('../schema/context').ContextStore} ConfigContextStore
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {Object} ContextMap
|
|
8
|
+
* @property {(k: keyof ConfigContextStore) => HTMLElement|null} get - Get a DOM element from the context by key.
|
|
9
|
+
* @property {(k: keyof ConfigContextStore, v: HTMLElement) => void} set - Set a DOM element in the context by key.
|
|
10
|
+
* @property {(k: keyof ConfigContextStore) => boolean} has - Check if a key exists in the context.
|
|
11
|
+
* @property {(k: keyof ConfigContextStore) => boolean} delete - Delete a key from the context.
|
|
12
|
+
* @property {() => Object<keyof ConfigContextStore, HTMLElement|null>} [getAll] - Get all DOM elements in the context as an object.
|
|
13
|
+
* @property {number} size - Get context size
|
|
14
|
+
* @property {() => void} clear - Clear all elements in the context.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* @typedef {Object} FrameContextMap
|
|
18
|
+
* @property {<K extends keyof ConfigFrameContextStore>(k: K) => ConfigFrameContextStore[K]} get - Get a DOM element from the context by key.
|
|
19
|
+
* @property {<K extends keyof ConfigFrameContextStore>(k: K, v: ConfigFrameContextStore[K]) => void} set - Set a DOM element in the context by key.
|
|
20
|
+
* @property {<K extends keyof ConfigFrameContextStore>(k: K) => boolean} has - Check if a key exists in the context.
|
|
21
|
+
* @property {<K extends keyof ConfigFrameContextStore>(k: K) => boolean} delete - Delete a key from the context.
|
|
22
|
+
* @property {() => Object<keyof ConfigFrameContextStore, *>} [getAll] - Get all DOM elements in the context as an object.
|
|
23
|
+
* @property {(newMap: *) => void} [reset] - Reset the context with a new Map.
|
|
24
|
+
* @property {number} size - Get context size
|
|
25
|
+
* @property {() => void} clear - Clear all elements in the context.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* @description Provides Map-based access to editor DOM contexts (global and per-frame).
|
|
29
|
+
*/
|
|
30
|
+
export default class ContextProvider {
|
|
31
|
+
/**
|
|
32
|
+
* @constructor
|
|
33
|
+
* @param {import('../section/constructor').ConstructorReturnType} product
|
|
34
|
+
*/
|
|
35
|
+
constructor(product: import('../section/constructor').ConstructorReturnType);
|
|
36
|
+
/**
|
|
37
|
+
* @description Frame root key array
|
|
38
|
+
* @type {Array<*>}
|
|
39
|
+
*/
|
|
40
|
+
rootKeys: Array<any>;
|
|
41
|
+
/**
|
|
42
|
+
* @description Controllers carrier
|
|
43
|
+
* @type {HTMLElement}
|
|
44
|
+
*/
|
|
45
|
+
carrierWrapper: HTMLElement;
|
|
46
|
+
/**
|
|
47
|
+
* @description Default icons object
|
|
48
|
+
* @type {Object<string, string>}
|
|
49
|
+
*/
|
|
50
|
+
icons: {
|
|
51
|
+
[x: string]: string;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* @description loaded language
|
|
55
|
+
* @type {Object<string, *>}
|
|
56
|
+
*/
|
|
57
|
+
lang: {
|
|
58
|
+
[x: string]: any;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* @description Closest ShadowRoot to editor if found
|
|
62
|
+
* @type {ShadowRoot & { getSelection?: () => Selection }} - Chromium-based browsers (Chrome, Edge, etc.) has a getSelection method on the ShadowRoot
|
|
63
|
+
*/
|
|
64
|
+
shadowRoot: ShadowRoot & {
|
|
65
|
+
getSelection?: () => Selection;
|
|
66
|
+
};
|
|
67
|
+
get frameRoots(): Map<string, import('../schema/frameContext').FrameContexType>;
|
|
68
|
+
get context(): ContextMap;
|
|
69
|
+
get frameContext(): FrameContextMap;
|
|
70
|
+
init(): void;
|
|
71
|
+
/**
|
|
72
|
+
* @param {SunEditor.FrameContext} rt Root target[key] FrameContext
|
|
73
|
+
*/
|
|
74
|
+
reset(rt: SunEditor.FrameContext): void;
|
|
75
|
+
/**
|
|
76
|
+
* @description Execute a function by traversing all root targets.
|
|
77
|
+
* @param {(frameContext: SunEditor.FrameContext, rootKey: string|null, frameRoots: Map<string|null, SunEditor.FrameContext>) => void} f Callback function
|
|
78
|
+
*/
|
|
79
|
+
applyToRoots(f: (frameContext: SunEditor.FrameContext, rootKey: string | null, frameRoots: Map<string | null, SunEditor.FrameContext>) => void): void;
|
|
80
|
+
_destroy(): void;
|
|
81
|
+
#private;
|
|
82
|
+
}
|
|
83
|
+
export type ConfigFrameContextStore = import('../schema/frameContext').FrameContextStore;
|
|
84
|
+
export type ConfigContextStore = import('../schema/context').ContextStore;
|
|
85
|
+
export type ContextMap = {
|
|
86
|
+
/**
|
|
87
|
+
* - Get a DOM element from the context by key.
|
|
88
|
+
*/
|
|
89
|
+
get: (k: keyof ConfigContextStore) => HTMLElement | null;
|
|
90
|
+
/**
|
|
91
|
+
* - Set a DOM element in the context by key.
|
|
92
|
+
*/
|
|
93
|
+
set: (k: keyof ConfigContextStore, v: HTMLElement) => void;
|
|
94
|
+
/**
|
|
95
|
+
* - Check if a key exists in the context.
|
|
96
|
+
*/
|
|
97
|
+
has: (k: keyof ConfigContextStore) => boolean;
|
|
98
|
+
/**
|
|
99
|
+
* - Delete a key from the context.
|
|
100
|
+
*/
|
|
101
|
+
delete: (k: keyof ConfigContextStore) => boolean;
|
|
102
|
+
/**
|
|
103
|
+
* - Get all DOM elements in the context as an object.
|
|
104
|
+
*/
|
|
105
|
+
getAll?: () => any;
|
|
106
|
+
/**
|
|
107
|
+
* - Get context size
|
|
108
|
+
*/
|
|
109
|
+
size: number;
|
|
110
|
+
/**
|
|
111
|
+
* - Clear all elements in the context.
|
|
112
|
+
*/
|
|
113
|
+
clear: () => void;
|
|
114
|
+
};
|
|
115
|
+
export type FrameContextMap = {
|
|
116
|
+
/**
|
|
117
|
+
* - Get a DOM element from the context by key.
|
|
118
|
+
*/
|
|
119
|
+
get: <K extends keyof ConfigFrameContextStore>(k: K) => ConfigFrameContextStore[K];
|
|
120
|
+
/**
|
|
121
|
+
* - Set a DOM element in the context by key.
|
|
122
|
+
*/
|
|
123
|
+
set: <K extends keyof ConfigFrameContextStore>(k: K, v: ConfigFrameContextStore[K]) => void;
|
|
124
|
+
/**
|
|
125
|
+
* - Check if a key exists in the context.
|
|
126
|
+
*/
|
|
127
|
+
has: <K extends keyof ConfigFrameContextStore>(k: K) => boolean;
|
|
128
|
+
/**
|
|
129
|
+
* - Delete a key from the context.
|
|
130
|
+
*/
|
|
131
|
+
delete: <K extends keyof ConfigFrameContextStore>(k: K) => boolean;
|
|
132
|
+
/**
|
|
133
|
+
* - Get all DOM elements in the context as an object.
|
|
134
|
+
*/
|
|
135
|
+
getAll?: () => any;
|
|
136
|
+
/**
|
|
137
|
+
* - Reset the context with a new Map.
|
|
138
|
+
*/
|
|
139
|
+
reset?: (newMap: any) => void;
|
|
140
|
+
/**
|
|
141
|
+
* - Get context size
|
|
142
|
+
*/
|
|
143
|
+
size: number;
|
|
144
|
+
/**
|
|
145
|
+
* - Clear all elements in the context.
|
|
146
|
+
*/
|
|
147
|
+
clear: () => void;
|
|
148
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default EventManager;
|
|
3
|
+
/**
|
|
4
|
+
* @description Event manager, editor's all event management class
|
|
5
|
+
*/
|
|
6
|
+
declare class EventManager {
|
|
7
|
+
/**
|
|
8
|
+
* @constructor
|
|
9
|
+
* @param {import('./contextProvider').default} contextProvider
|
|
10
|
+
* @param {import('./optionProvider').default} optionProvider
|
|
11
|
+
* @param {import('../kernel/coreKernel').Deps} $
|
|
12
|
+
*/
|
|
13
|
+
constructor(contextProvider: import('./contextProvider').default, optionProvider: import('./optionProvider').default, $: import('../kernel/coreKernel').Deps);
|
|
14
|
+
/**
|
|
15
|
+
* @description Events object, call by triggerEvent function
|
|
16
|
+
* @type {SunEditor.Event.Handlers}
|
|
17
|
+
*/
|
|
18
|
+
events: SunEditor.Event.Handlers;
|
|
19
|
+
/**
|
|
20
|
+
* @description Call the event function by injecting self: this.
|
|
21
|
+
* @type {(eventName: string, ...args: *) => Promise<*>}
|
|
22
|
+
*/
|
|
23
|
+
triggerEvent: (eventName: string, ...args: any) => Promise<any>;
|
|
24
|
+
/** @type {HTMLInputElement} */
|
|
25
|
+
__focusTemp: HTMLInputElement;
|
|
26
|
+
/**
|
|
27
|
+
* @description Register for an event.
|
|
28
|
+
* - Only events registered with this method are unregistered or re-registered when methods such as 'setOptions', 'destroy' are called.
|
|
29
|
+
* @param {*} target Target element
|
|
30
|
+
* @param {string} type Event type
|
|
31
|
+
* @param {EventListenerOrEventListenerObject} listener Event handler
|
|
32
|
+
* @param {boolean|AddEventListenerOptions} [useCapture] Event useCapture option
|
|
33
|
+
* @return {?SunEditor.Event.Info} Registered event information
|
|
34
|
+
*/
|
|
35
|
+
addEvent(target: any, type: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean | AddEventListenerOptions): SunEditor.Event.Info | null;
|
|
36
|
+
/**
|
|
37
|
+
* @description Remove event
|
|
38
|
+
* @param {SunEditor.Event.Info} params event info = this.addEvent()
|
|
39
|
+
* @returns {undefined|null} Success: null, Not found: undefined
|
|
40
|
+
*/
|
|
41
|
+
removeEvent(params: SunEditor.Event.Info): undefined | null;
|
|
42
|
+
/**
|
|
43
|
+
* @description Add an event to document.
|
|
44
|
+
* - When created as an Iframe, the same event is added to the document in the Iframe.
|
|
45
|
+
* @param {string} type Event type
|
|
46
|
+
* @param {(...args: *) => *} listener Event listener
|
|
47
|
+
* @param {boolean|AddEventListenerOptions} [useCapture] Use event capture
|
|
48
|
+
* @return {SunEditor.Event.GlobalInfo} Registered event information
|
|
49
|
+
*/
|
|
50
|
+
addGlobalEvent(type: string, listener: (...args: any) => any, useCapture?: boolean | AddEventListenerOptions): SunEditor.Event.GlobalInfo;
|
|
51
|
+
/**
|
|
52
|
+
* @description Remove events from document.
|
|
53
|
+
* - When created as an Iframe, the event of the document inside the Iframe is also removed.
|
|
54
|
+
* @param {string|SunEditor.Event.GlobalInfo} type Event type or (Event info = this.addGlobalEvent())
|
|
55
|
+
* @param {(...args: *) => *} [listener] Event listener
|
|
56
|
+
* @param {boolean|AddEventListenerOptions} [useCapture] Use event capture
|
|
57
|
+
* @returns {undefined|null} Success: null, Not found: undefined
|
|
58
|
+
*/
|
|
59
|
+
removeGlobalEvent(type: string | SunEditor.Event.GlobalInfo, listener?: (...args: any) => any, useCapture?: boolean | AddEventListenerOptions): undefined | null;
|
|
60
|
+
/**
|
|
61
|
+
* @internal
|
|
62
|
+
* @description Gives an active effect when the mouse down event is blocked. (Used when "env.isGecko" is true)
|
|
63
|
+
* @param {Node} target Target element
|
|
64
|
+
*/
|
|
65
|
+
_injectActiveEvent(target: Node): void;
|
|
66
|
+
_init(): void;
|
|
67
|
+
#private;
|
|
68
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default InstanceCheck;
|
|
3
|
+
/**
|
|
4
|
+
* @description iframe-safe instanceof check utility class
|
|
5
|
+
*/
|
|
6
|
+
declare class InstanceCheck {
|
|
7
|
+
/**
|
|
8
|
+
* @constructor
|
|
9
|
+
* @param {SunEditor.FrameContext} frameContext - Frame context
|
|
10
|
+
*/
|
|
11
|
+
constructor(frameContext: SunEditor.FrameContext);
|
|
12
|
+
/**
|
|
13
|
+
* @param {*} obj
|
|
14
|
+
* @returns {obj is Node}
|
|
15
|
+
*/
|
|
16
|
+
isNode(obj: any): obj is Node;
|
|
17
|
+
/**
|
|
18
|
+
* @param {*} obj
|
|
19
|
+
* @returns {obj is Element}
|
|
20
|
+
*/
|
|
21
|
+
isElement(obj: any): obj is Element;
|
|
22
|
+
/**
|
|
23
|
+
* @param {*} obj
|
|
24
|
+
* @returns {obj is Range}
|
|
25
|
+
*/
|
|
26
|
+
isRange(obj: any): obj is Range;
|
|
27
|
+
/**
|
|
28
|
+
* @param {*} obj
|
|
29
|
+
* @returns {obj is Selection}
|
|
30
|
+
*/
|
|
31
|
+
isSelection(obj: any): obj is Selection;
|
|
32
|
+
#private;
|
|
33
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {import('../schema/options').ProcessedBaseOptions} ConfigAllBaseOptions
|
|
4
|
+
* @typedef {import('../schema/options').ProcessedFrameOptions} ConfigAllFrameOptions
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {Object} BaseOptionsMap
|
|
8
|
+
* - A Map containing all processed editor base options.
|
|
9
|
+
* - This Map contains all keys from {@link ConfigAllBaseOptions}, where:
|
|
10
|
+
* - Keys are option names (string)
|
|
11
|
+
* - Values depend on the specific option (see {@link ConfigAllBaseOptions} for details)
|
|
12
|
+
*
|
|
13
|
+
* @property {<K extends keyof ConfigAllBaseOptions>(k: K) => ConfigAllBaseOptions[K]} get - Retrieves the value of a specific option.
|
|
14
|
+
* @property {<K extends keyof ConfigAllBaseOptions>(k: K, v: ConfigAllBaseOptions[K]) => void} set - Sets the value of a specific option.
|
|
15
|
+
* @property {<K extends keyof ConfigAllBaseOptions>(k: K) => boolean} has - Checks if a specific option exists.
|
|
16
|
+
* @property {() => Object<keyof ConfigAllBaseOptions, *>} getAll - Retrieves all options as an object.
|
|
17
|
+
* @property {(options: Map<*, *>) => void} setMany - Sets multiple options at once.
|
|
18
|
+
* @property {(newMap: SunEditor.InitOptions) => void} reset - Replaces all options with a new Map.
|
|
19
|
+
* @property {() => number} size - Get option size
|
|
20
|
+
* @property {() => void} clear - Clears all stored options.
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* @typedef {Object} FrameOptionsMap
|
|
24
|
+
* - A Map containing all processed frame-level options.
|
|
25
|
+
* - This Map contains all keys from {@link ConfigAllFrameOptions}, where:
|
|
26
|
+
* - Keys are option names (string)
|
|
27
|
+
* - Values depend on the specific option (see {@link ConfigAllFrameOptions} for details)
|
|
28
|
+
*
|
|
29
|
+
* @property {<K extends keyof ConfigAllFrameOptions>(k: K) => ConfigAllFrameOptions[K]} get - Retrieves the value of a specific option.
|
|
30
|
+
* @property {<K extends keyof ConfigAllFrameOptions>(k: K, v: ConfigAllFrameOptions[K]) => void} set - Sets the value of a specific option.
|
|
31
|
+
* @property {<K extends keyof ConfigAllFrameOptions>(k: K) => boolean} has - Checks if a specific option exists.
|
|
32
|
+
* @property {() => Object<keyof ConfigAllFrameOptions, *>} getAll - Retrieves all options as an object.
|
|
33
|
+
* @property {(options: Map<*, *>) => void} setMany - Sets multiple options at once.
|
|
34
|
+
* @property {(newMap: SunEditor.FrameOptions) => void} reset - Replaces all options with a new Map.
|
|
35
|
+
* @property {() => number} size - Get option size
|
|
36
|
+
* @property {() => void} clear - Clears all stored options.
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* @description Provides Map-based access to editor options (base and per-frame).
|
|
40
|
+
*/
|
|
41
|
+
export default class OptionProvider {
|
|
42
|
+
/**
|
|
43
|
+
* @constructor
|
|
44
|
+
* @param {SunEditor.Kernel} kernel
|
|
45
|
+
* @param {import('../section/constructor').ConstructorReturnType} product
|
|
46
|
+
*/
|
|
47
|
+
constructor(kernel: SunEditor.Kernel, product: import('../section/constructor').ConstructorReturnType, options: any);
|
|
48
|
+
/**
|
|
49
|
+
* @return {BaseOptionsMap}
|
|
50
|
+
*/
|
|
51
|
+
get options(): BaseOptionsMap;
|
|
52
|
+
get frameOptions(): FrameOptionsMap;
|
|
53
|
+
/**
|
|
54
|
+
* @description Add or reset option property (Editor is reloaded)
|
|
55
|
+
* @param {SunEditor.InitOptions} newOptions Options
|
|
56
|
+
*/
|
|
57
|
+
reset(newOptions: SunEditor.InitOptions): void;
|
|
58
|
+
/**
|
|
59
|
+
* @description Add or reset frame option property (Editor is reloaded)
|
|
60
|
+
* @param {SunEditor.FrameOptions} newOptions Options
|
|
61
|
+
*/
|
|
62
|
+
resetFrame(newOptions: SunEditor.FrameOptions): void;
|
|
63
|
+
_destroy(): void;
|
|
64
|
+
#private;
|
|
65
|
+
}
|
|
66
|
+
export type ConfigAllBaseOptions = import('../schema/options').ProcessedBaseOptions;
|
|
67
|
+
export type ConfigAllFrameOptions = import('../schema/options').ProcessedFrameOptions;
|
|
68
|
+
/**
|
|
69
|
+
* - A Map containing all processed editor base options.
|
|
70
|
+
* - This Map contains all keys from {@link ConfigAllBaseOptions}, where:
|
|
71
|
+
* - Keys are option names (string)
|
|
72
|
+
* - Values depend on the specific option (see {@link ConfigAllBaseOptions} for details)
|
|
73
|
+
*/
|
|
74
|
+
export type BaseOptionsMap = {
|
|
75
|
+
/**
|
|
76
|
+
* - Retrieves the value of a specific option.
|
|
77
|
+
*/
|
|
78
|
+
get: <K extends keyof ConfigAllBaseOptions>(k: K) => ConfigAllBaseOptions[K];
|
|
79
|
+
/**
|
|
80
|
+
* - Sets the value of a specific option.
|
|
81
|
+
*/
|
|
82
|
+
set: <K extends keyof ConfigAllBaseOptions>(k: K, v: ConfigAllBaseOptions[K]) => void;
|
|
83
|
+
/**
|
|
84
|
+
* - Checks if a specific option exists.
|
|
85
|
+
*/
|
|
86
|
+
has: <K extends keyof ConfigAllBaseOptions>(k: K) => boolean;
|
|
87
|
+
/**
|
|
88
|
+
* - Retrieves all options as an object.
|
|
89
|
+
*/
|
|
90
|
+
getAll: () => any;
|
|
91
|
+
/**
|
|
92
|
+
* - Sets multiple options at once.
|
|
93
|
+
*/
|
|
94
|
+
setMany: (options: Map<any, any>) => void;
|
|
95
|
+
/**
|
|
96
|
+
* - Replaces all options with a new Map.
|
|
97
|
+
*/
|
|
98
|
+
reset: (newMap: SunEditor.InitOptions) => void;
|
|
99
|
+
/**
|
|
100
|
+
* - Get option size
|
|
101
|
+
*/
|
|
102
|
+
size: () => number;
|
|
103
|
+
/**
|
|
104
|
+
* - Clears all stored options.
|
|
105
|
+
*/
|
|
106
|
+
clear: () => void;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* - A Map containing all processed frame-level options.
|
|
110
|
+
* - This Map contains all keys from {@link ConfigAllFrameOptions}, where:
|
|
111
|
+
* - Keys are option names (string)
|
|
112
|
+
* - Values depend on the specific option (see {@link ConfigAllFrameOptions} for details)
|
|
113
|
+
*/
|
|
114
|
+
export type FrameOptionsMap = {
|
|
115
|
+
/**
|
|
116
|
+
* - Retrieves the value of a specific option.
|
|
117
|
+
*/
|
|
118
|
+
get: <K extends keyof ConfigAllFrameOptions>(k: K) => ConfigAllFrameOptions[K];
|
|
119
|
+
/**
|
|
120
|
+
* - Sets the value of a specific option.
|
|
121
|
+
*/
|
|
122
|
+
set: <K extends keyof ConfigAllFrameOptions>(k: K, v: ConfigAllFrameOptions[K]) => void;
|
|
123
|
+
/**
|
|
124
|
+
* - Checks if a specific option exists.
|
|
125
|
+
*/
|
|
126
|
+
has: <K extends keyof ConfigAllFrameOptions>(k: K) => boolean;
|
|
127
|
+
/**
|
|
128
|
+
* - Retrieves all options as an object.
|
|
129
|
+
*/
|
|
130
|
+
getAll: () => any;
|
|
131
|
+
/**
|
|
132
|
+
* - Sets multiple options at once.
|
|
133
|
+
*/
|
|
134
|
+
setMany: (options: Map<any, any>) => void;
|
|
135
|
+
/**
|
|
136
|
+
* - Replaces all options with a new Map.
|
|
137
|
+
*/
|
|
138
|
+
reset: (newMap: SunEditor.FrameOptions) => void;
|
|
139
|
+
/**
|
|
140
|
+
* - Get option size
|
|
141
|
+
*/
|
|
142
|
+
size: () => number;
|
|
143
|
+
/**
|
|
144
|
+
* - Clears all stored options.
|
|
145
|
+
*/
|
|
146
|
+
clear: () => void;
|
|
147
|
+
};
|