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
package/src/helper/keyCodeMap.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview keyCode helper
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
const _arrow = 'ArrowLeft|ArrowUp|ArrowRight|ArrowDown';
|
|
6
2
|
const _fN = 'F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12';
|
|
7
3
|
// const DIR_KEYCODE = /^(3[7-9]|40)$/;
|
|
@@ -19,7 +15,7 @@ const NON_RESPONSE_CODE = `ControlLeft|ControlRight|AltLeft|AltRight|Pause|CapsL
|
|
|
19
15
|
|
|
20
16
|
/** ------------------------------------------------------- [meta] ------------------------------------------------------- */
|
|
21
17
|
/**
|
|
22
|
-
* @description Shift check
|
|
18
|
+
* @description `Shift` check
|
|
23
19
|
* @param {KeyboardEvent} e Event object
|
|
24
20
|
* @returns {boolean}
|
|
25
21
|
*/
|
|
@@ -28,7 +24,7 @@ export function isShift(e) {
|
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
/**
|
|
31
|
-
* @description [Ctrl
|
|
27
|
+
* @description [`Ctrl`|`Meta`] check
|
|
32
28
|
* @param {KeyboardEvent} e Event object
|
|
33
29
|
* @returns {boolean}
|
|
34
30
|
*/
|
|
@@ -39,7 +35,7 @@ export function isCtrl(e) {
|
|
|
39
35
|
}
|
|
40
36
|
|
|
41
37
|
/**
|
|
42
|
-
* @description Alt check
|
|
38
|
+
* @description `Alt` check
|
|
43
39
|
* @param {KeyboardEvent} e Event object
|
|
44
40
|
* @returns {boolean}
|
|
45
41
|
*/
|
|
@@ -48,17 +44,18 @@ export function isAlt(e) {
|
|
|
48
44
|
}
|
|
49
45
|
|
|
50
46
|
/**
|
|
51
|
-
* @description event.
|
|
52
|
-
* @param {KeyboardEvent} e Event object
|
|
47
|
+
* @description Check if the event is related to IME composition (in-progress or commit).
|
|
48
|
+
* @param {KeyboardEvent|InputEvent} e Event object
|
|
53
49
|
* @returns {boolean}
|
|
54
50
|
*/
|
|
55
51
|
export function isComposing(e) {
|
|
56
|
-
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
return e.isComposing || e.key === 'Process' || e.keyCode === 229;
|
|
57
54
|
}
|
|
58
55
|
|
|
59
56
|
/**
|
|
60
|
-
* @description Backspace key check
|
|
61
|
-
* @param {string} code Event.code
|
|
57
|
+
* @description `Backspace` key check
|
|
58
|
+
* @param {string} code `Event.code`
|
|
62
59
|
* @returns {boolean}
|
|
63
60
|
*/
|
|
64
61
|
export function isBackspace(code) {
|
|
@@ -67,8 +64,8 @@ export function isBackspace(code) {
|
|
|
67
64
|
}
|
|
68
65
|
|
|
69
66
|
/**
|
|
70
|
-
* @description Tab key check
|
|
71
|
-
* @param {string} code Event.code
|
|
67
|
+
* @description `Tab` key check
|
|
68
|
+
* @param {string} code `Event.code`
|
|
72
69
|
* @returns {boolean}
|
|
73
70
|
*/
|
|
74
71
|
export function isTab(code) {
|
|
@@ -77,8 +74,8 @@ export function isTab(code) {
|
|
|
77
74
|
}
|
|
78
75
|
|
|
79
76
|
/**
|
|
80
|
-
* @description Enter key check
|
|
81
|
-
* @param {string} code Event.code
|
|
77
|
+
* @description `Enter` key check
|
|
78
|
+
* @param {string} code `Event.code`
|
|
82
79
|
* @returns {boolean}
|
|
83
80
|
*/
|
|
84
81
|
export function isEnter(code) {
|
|
@@ -87,8 +84,8 @@ export function isEnter(code) {
|
|
|
87
84
|
}
|
|
88
85
|
|
|
89
86
|
/**
|
|
90
|
-
* @description ESC key check
|
|
91
|
-
* @param {string} code Event.code
|
|
87
|
+
* @description `ESC` key check
|
|
88
|
+
* @param {string} code `Event.code`
|
|
92
89
|
* @returns {boolean}
|
|
93
90
|
*/
|
|
94
91
|
export function isEsc(code) {
|
|
@@ -97,8 +94,8 @@ export function isEsc(code) {
|
|
|
97
94
|
}
|
|
98
95
|
|
|
99
96
|
/**
|
|
100
|
-
* @description Space key check
|
|
101
|
-
* @param {string} code Event.code
|
|
97
|
+
* @description `Space` key check
|
|
98
|
+
* @param {string} code `Event.code`
|
|
102
99
|
* @returns {boolean}
|
|
103
100
|
*/
|
|
104
101
|
export function isSpace(code) {
|
|
@@ -110,7 +107,7 @@ export function isSpace(code) {
|
|
|
110
107
|
|
|
111
108
|
/**
|
|
112
109
|
* @description Direction key check
|
|
113
|
-
* @param {string} code Event.code
|
|
110
|
+
* @param {string} code `Event.code`
|
|
114
111
|
* @returns {boolean}
|
|
115
112
|
*/
|
|
116
113
|
export function isDirectionKey(code) {
|
|
@@ -118,8 +115,8 @@ export function isDirectionKey(code) {
|
|
|
118
115
|
}
|
|
119
116
|
|
|
120
117
|
/**
|
|
121
|
-
* @description [delete
|
|
122
|
-
* @param {string} code Event.code
|
|
118
|
+
* @description [`delete`, `backspace`] key check
|
|
119
|
+
* @param {string} code `Event.code`
|
|
123
120
|
* @returns {boolean}
|
|
124
121
|
*/
|
|
125
122
|
export function isRemoveKey(code) {
|
|
@@ -128,7 +125,7 @@ export function isRemoveKey(code) {
|
|
|
128
125
|
|
|
129
126
|
/**
|
|
130
127
|
* @description Non-text key check
|
|
131
|
-
* @param {string} code Event.code
|
|
128
|
+
* @param {string} code `Event.code`
|
|
132
129
|
* @returns {boolean}
|
|
133
130
|
*/
|
|
134
131
|
export function isNonTextKey(code) {
|
|
@@ -137,7 +134,7 @@ export function isNonTextKey(code) {
|
|
|
137
134
|
|
|
138
135
|
/**
|
|
139
136
|
* @description Check if the given key is relevant for history push
|
|
140
|
-
* @param {string} code - Event.code
|
|
137
|
+
* @param {string} code - `Event.code`
|
|
141
138
|
* @returns {boolean}
|
|
142
139
|
*/
|
|
143
140
|
export function isHistoryRelevantKey(code) {
|
|
@@ -146,7 +143,7 @@ export function isHistoryRelevantKey(code) {
|
|
|
146
143
|
|
|
147
144
|
/**
|
|
148
145
|
* @description Document type observer key check
|
|
149
|
-
* @param {string} code Event.code
|
|
146
|
+
* @param {string} code `Event.code`
|
|
150
147
|
* @returns {boolean}
|
|
151
148
|
*/
|
|
152
149
|
export function isDocumentTypeObserverKey(code) {
|
|
@@ -155,7 +152,7 @@ export function isDocumentTypeObserverKey(code) {
|
|
|
155
152
|
|
|
156
153
|
/**
|
|
157
154
|
* @description Non-response key check
|
|
158
|
-
* @param {string} code Event.code
|
|
155
|
+
* @param {string} code `Event.code`
|
|
159
156
|
* @returns {boolean}
|
|
160
157
|
*/
|
|
161
158
|
export function isNonResponseKey(code) {
|
|
@@ -177,7 +174,7 @@ const keyCodeMap = {
|
|
|
177
174
|
isNonTextKey,
|
|
178
175
|
isHistoryRelevantKey,
|
|
179
176
|
isDocumentTypeObserverKey,
|
|
180
|
-
isNonResponseKey
|
|
177
|
+
isNonResponseKey,
|
|
181
178
|
};
|
|
182
179
|
|
|
183
180
|
export default keyCodeMap;
|
package/src/helper/numbers.js
CHANGED
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Number-related helper functions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
/**
|
|
6
2
|
* @description Checks for numeric (with decimal point).
|
|
7
3
|
* @param {*} text Text string or number
|
|
@@ -14,7 +10,7 @@ export function is(text) {
|
|
|
14
10
|
/**
|
|
15
11
|
* @description Get a number.
|
|
16
12
|
* @param {string|number} value Text string or number
|
|
17
|
-
* @param {number} [maxDec=0] Maximum number of decimal places (
|
|
13
|
+
* @param {number} [maxDec=0] Maximum number of decimal places (`-1` : `Infinity`)
|
|
18
14
|
* @returns {number}
|
|
19
15
|
*/
|
|
20
16
|
export function get(value, maxDec = 0) {
|
|
@@ -28,8 +24,8 @@ export function get(value, maxDec = 0) {
|
|
|
28
24
|
}
|
|
29
25
|
|
|
30
26
|
/**
|
|
31
|
-
* @description It compares the start and end indexes of
|
|
32
|
-
* - e.g.) 1, 5, 4, 6 =>
|
|
27
|
+
* @description It compares the start and end indexes of `a` and `b` and returns the number of overlapping indexes in the range.
|
|
28
|
+
* - e.g.) 1, 5, 4, 6 => `2` (4,5)
|
|
33
29
|
* @param {number} aStart Start index of 'a'
|
|
34
30
|
* @param {number} aEnd End index of 'a'
|
|
35
31
|
* @param {number} bStart Start index of 'b'
|
|
@@ -66,7 +62,7 @@ const numbers = {
|
|
|
66
62
|
get,
|
|
67
63
|
getOverlapRangeAtIndex,
|
|
68
64
|
isEven,
|
|
69
|
-
isOdd
|
|
65
|
+
isOdd,
|
|
70
66
|
};
|
|
71
67
|
|
|
72
68
|
export default numbers;
|
package/src/helper/unicode.js
CHANGED
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Unicode helper functions
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
const zwsp = 8203;
|
|
6
2
|
|
|
7
3
|
/**
|
|
8
|
-
* @description Unicode Character
|
|
4
|
+
* @description Unicode Character `ZERO WIDTH SPACE` (`\u200B`)
|
|
9
5
|
* @type {string}
|
|
10
6
|
*/
|
|
11
7
|
export const zeroWidthSpace = String.fromCharCode(zwsp);
|
|
12
8
|
|
|
13
9
|
/**
|
|
14
|
-
* @description Regular expression to find
|
|
10
|
+
* @description Regular expression to find `zero width space` (`/\u200B/g`)
|
|
15
11
|
* @type {RegExp}
|
|
16
12
|
*/
|
|
17
13
|
export const zeroWidthRegExp = new RegExp(String.fromCharCode(zwsp), 'g');
|
|
18
14
|
|
|
19
15
|
/**
|
|
20
|
-
* @description Regular expression to find only
|
|
16
|
+
* @description Regular expression to find only `zero width space` (`/\u200B/g`)
|
|
21
17
|
* @type {RegExp}
|
|
22
18
|
*/
|
|
23
19
|
export const onlyZeroWidthRegExp = new RegExp('^' + String.fromCharCode(zwsp) + '+$');
|
|
@@ -41,7 +37,7 @@ const unicode = {
|
|
|
41
37
|
zeroWidthSpace,
|
|
42
38
|
zeroWidthRegExp,
|
|
43
39
|
onlyZeroWidthRegExp,
|
|
44
|
-
escapeStringRegexp
|
|
40
|
+
escapeStringRegexp,
|
|
45
41
|
};
|
|
46
42
|
|
|
47
43
|
export default unicode;
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Editor interface definitions for SunEditor.
|
|
3
|
+
* These types define callback methods that Editor core calls on plugin instances.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// ================================================================
|
|
7
|
+
// EDITOR METHOD TYPES - Methods called by Editor core on plugins
|
|
8
|
+
// ================================================================
|
|
9
|
+
|
|
10
|
+
export const Event = {
|
|
11
|
+
/**
|
|
12
|
+
* Executes the method that is called whenever the cursor position changes.
|
|
13
|
+
* @description Executes the method that is called whenever the cursor position changes.
|
|
14
|
+
* @param {?HTMLElement} element - Node element where the cursor is currently located
|
|
15
|
+
* @param {?HTMLElement} target - The plugin's toolbar button element
|
|
16
|
+
* @returns {boolean|void} - Whether the plugin is active
|
|
17
|
+
* - If it returns `undefined`, it will no longer be called in this scope.
|
|
18
|
+
*/
|
|
19
|
+
Active(element, target) {},
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Executes the event function of `focus`.
|
|
23
|
+
* @param {SunEditor.HookParams.FocusBlur} params - Event parameters
|
|
24
|
+
* @returns {void}
|
|
25
|
+
*/
|
|
26
|
+
OnFocus(params) {},
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Executes the event function of `blur`.
|
|
30
|
+
* @param {SunEditor.HookParams.FocusBlur} params - Event parameters
|
|
31
|
+
* @returns {void}
|
|
32
|
+
*/
|
|
33
|
+
OnBlur(params) {},
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Executes the event function of `mousemove`.
|
|
37
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
38
|
+
* @returns {void}
|
|
39
|
+
*/
|
|
40
|
+
OnMouseMove(params) {},
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Executes the event function of `scroll`.
|
|
44
|
+
* @param {SunEditor.HookParams.Scroll} params - Event parameters
|
|
45
|
+
* @returns {void}
|
|
46
|
+
*/
|
|
47
|
+
OnScroll(params) {},
|
|
48
|
+
|
|
49
|
+
// ====== Sync / Async Event Methods ======
|
|
50
|
+
|
|
51
|
+
// ------- Interruptible events (returning boolean stops event processing) ---
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Executes the event function of `keydown` (sync).
|
|
55
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
56
|
+
* @param {SunEditor.HookParams.KeyEvent} params - Key event information
|
|
57
|
+
* @returns {void|boolean} - Return `false` to prevent the editor's `keydown` processing (shortcuts, actions)
|
|
58
|
+
*/
|
|
59
|
+
OnKeyDown(params) {},
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Executes the event function of `keydown` (async).
|
|
63
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
64
|
+
* @param {SunEditor.HookParams.KeyEvent} params - Key event information
|
|
65
|
+
* @returns {Promise<void|boolean>} - Return `false` to prevent the editor's `keydown` processing (shortcuts, actions)
|
|
66
|
+
*/
|
|
67
|
+
async OnKeyDownAsync(params) {
|
|
68
|
+
return;
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Executes the event function of `keyup` (sync).
|
|
73
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
74
|
+
* @param {SunEditor.HookParams.KeyEvent} params - Key event information
|
|
75
|
+
* @returns {void|boolean} - Return `false` to prevent adding to history
|
|
76
|
+
*/
|
|
77
|
+
OnKeyUp(params) {},
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Executes the event function of `keyup` (async).
|
|
81
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
82
|
+
* @param {SunEditor.HookParams.KeyEvent} params - Key event information
|
|
83
|
+
* @returns {Promise<void|boolean>} - Return `false` to prevent adding to history
|
|
84
|
+
*/
|
|
85
|
+
async OnKeyUpAsync(params) {
|
|
86
|
+
return;
|
|
87
|
+
},
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Executes the event function of `mousedown` (sync).
|
|
91
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
92
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
93
|
+
* @returns {void|boolean} - Return `false` to prevent the editor's `mousedown` processing
|
|
94
|
+
*/
|
|
95
|
+
OnMouseDown(params) {},
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Executes the event function of `mousedown` (async).
|
|
99
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
100
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
101
|
+
* @returns {Promise<void|boolean>} - Return `false` to prevent the editor's `mousedown` processing
|
|
102
|
+
*/
|
|
103
|
+
async OnMouseDownAsync(params) {
|
|
104
|
+
return;
|
|
105
|
+
},
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Executes the event function of `click` (sync).
|
|
109
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
110
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
111
|
+
* @returns {void|boolean} - Return `false` to prevent the editor's `click` processing (component selection)
|
|
112
|
+
*/
|
|
113
|
+
OnClick(params) {},
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Executes the event function of `click` (async).
|
|
117
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
118
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
119
|
+
* @returns {Promise<void|boolean>} - Return `false` to prevent the editor's `click` processing (component selection)
|
|
120
|
+
*/
|
|
121
|
+
async OnClickAsync(params) {
|
|
122
|
+
return;
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Executes the event function of `paste` (sync).
|
|
127
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
128
|
+
* Returning `false` will stop event propagation and cancel the paste.
|
|
129
|
+
* @param {SunEditor.HookParams.Paste} params - Paste event information
|
|
130
|
+
* @returns {void|boolean}
|
|
131
|
+
*/
|
|
132
|
+
OnPaste(params) {},
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Executes the event function of `paste` (async).
|
|
136
|
+
* Called sequentially on all plugins. Returning a boolean stops the loop.
|
|
137
|
+
* Returning `false` will stop event propagation and cancel the paste.
|
|
138
|
+
* @param {SunEditor.HookParams.Paste} params - Paste event information
|
|
139
|
+
* @returns {Promise<void|boolean>}
|
|
140
|
+
*/
|
|
141
|
+
async OnPasteAsync(params) {
|
|
142
|
+
return;
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
// ------- Observation events (non-interruptible) ------
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Executes the event function of `beforeinput` (sync).
|
|
149
|
+
* Called after validation but before the input is processed.
|
|
150
|
+
* @param {SunEditor.HookParams.InputWithData} params - Event parameters
|
|
151
|
+
* @returns {void}
|
|
152
|
+
*/
|
|
153
|
+
OnBeforeInput(params) {},
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Executes the event function of `beforeinput` (async).
|
|
157
|
+
* Called after validation but before the input is processed.
|
|
158
|
+
* @param {SunEditor.HookParams.InputWithData} params - Event parameters
|
|
159
|
+
* @returns {Promise<void>}
|
|
160
|
+
*/
|
|
161
|
+
async OnBeforeInputAsync(params) {
|
|
162
|
+
return;
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Executes the event function of `input` (sync).
|
|
167
|
+
* Called after the input has been processed.
|
|
168
|
+
* @param {SunEditor.HookParams.InputWithData} params - Event parameters
|
|
169
|
+
* @returns {void}
|
|
170
|
+
*/
|
|
171
|
+
OnInput(params) {},
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Executes the event function of `input` (async).
|
|
175
|
+
* Called after the input has been processed.
|
|
176
|
+
* @param {SunEditor.HookParams.InputWithData} params - Event parameters
|
|
177
|
+
* @returns {Promise<void>}
|
|
178
|
+
*/
|
|
179
|
+
async OnInputAsync(params) {
|
|
180
|
+
return;
|
|
181
|
+
},
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Executes the event function of `mouseup` (sync).
|
|
185
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
186
|
+
* @returns {void}
|
|
187
|
+
*/
|
|
188
|
+
OnMouseUp(params) {},
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Executes the event function of `mouseup` (async).
|
|
192
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
193
|
+
* @returns {Promise<void>}
|
|
194
|
+
*/
|
|
195
|
+
async OnMouseUpAsync(params) {
|
|
196
|
+
return;
|
|
197
|
+
},
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Executes the event function of `mouseleave` (sync).
|
|
201
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
202
|
+
* @returns {void}
|
|
203
|
+
*/
|
|
204
|
+
OnMouseLeave(params) {},
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Executes the event function of `mouseleave` (async).
|
|
208
|
+
* @param {SunEditor.HookParams.MouseEvent} params - Mouse event information
|
|
209
|
+
* @returns {Promise<void>}
|
|
210
|
+
*/
|
|
211
|
+
async OnMouseLeaveAsync(params) {
|
|
212
|
+
return;
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Executes when files are pasted or dropped into the editor (sync).
|
|
217
|
+
* This event is called for each file. The paste/drop process is automatically stopped after processing all files.
|
|
218
|
+
* @param {SunEditor.HookParams.FilePasteDrop} params - File paste/drop event information
|
|
219
|
+
* @returns {void}
|
|
220
|
+
*/
|
|
221
|
+
OnFilePasteAndDrop(params) {},
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Executes when files are pasted or dropped into the editor (async).
|
|
225
|
+
* This event is called for each file. The paste/drop process is automatically stopped after processing all files.
|
|
226
|
+
* @param {SunEditor.HookParams.FilePasteDrop} params - File paste/drop event information
|
|
227
|
+
* @returns {Promise<void>}
|
|
228
|
+
*/
|
|
229
|
+
async OnFilePasteAndDropAsync(params) {
|
|
230
|
+
return;
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const Component = {
|
|
235
|
+
/**
|
|
236
|
+
* Executes the method that is called when a component of a plugin is selected.
|
|
237
|
+
* @param {HTMLElement} target - Target component element
|
|
238
|
+
* @returns {void|boolean} - If return `true`, Special components that are not wrapping as `figure`
|
|
239
|
+
*/
|
|
240
|
+
Select(target) {},
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Called when a container is deselected.
|
|
244
|
+
* @param {HTMLElement} target Target element
|
|
245
|
+
* @returns {void}
|
|
246
|
+
*/
|
|
247
|
+
Deselect(target) {},
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Executes the method that is called when a component is being edited.
|
|
251
|
+
* @param {HTMLElement} target - Target element
|
|
252
|
+
* @returns {void}
|
|
253
|
+
*/
|
|
254
|
+
Edit(target) {},
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Method to delete a component of a plugin, called by the `FileManager`, `Controller` module.
|
|
258
|
+
* @param {HTMLElement} target - Target element
|
|
259
|
+
* @returns {Promise<void>}
|
|
260
|
+
*/
|
|
261
|
+
async Destroy(target) {
|
|
262
|
+
return;
|
|
263
|
+
},
|
|
264
|
+
|
|
265
|
+
/**
|
|
266
|
+
* Executes the method that is called when a component copy is requested.
|
|
267
|
+
* @param {SunEditor.HookParams.CopyComponent} params - Copy component event information
|
|
268
|
+
* @returns {boolean | void} - If return `false`, the copy will be canceled
|
|
269
|
+
*/
|
|
270
|
+
Copy(params) {},
|
|
271
|
+
};
|
|
272
|
+
|
|
273
|
+
export const Core = {
|
|
274
|
+
/**
|
|
275
|
+
* This method is used to validate and preserve the format of the component within the editor.
|
|
276
|
+
* - It ensures that the structure and attributes of the element are maintained and secure.
|
|
277
|
+
* - The method checks if the element is already wrapped in a valid container and updates its attributes if necessary.
|
|
278
|
+
* - If the element isn't properly contained, a new container is created to retain the format.
|
|
279
|
+
* @returns {{query: string, method: (element: HTMLElement) => void}} The format retention object containing the query and method to process the element.
|
|
280
|
+
* - query: The selector query to identify the relevant elements.
|
|
281
|
+
* - method: The function to execute on the element to validate and preserve its format.
|
|
282
|
+
*/
|
|
283
|
+
RetainFormat() {
|
|
284
|
+
return { query: '', method: () => {} };
|
|
285
|
+
},
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Executes methods called by shortcut keys.
|
|
289
|
+
* @param {SunEditor.HookParams.Shortcut} params - Information of the `shortcut` plugin
|
|
290
|
+
* @returns {void}
|
|
291
|
+
*/
|
|
292
|
+
Shortcut(params) {},
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Executes the method called when the rtl, ltr mode changes. (`editor.ui.setDir`)
|
|
296
|
+
* @param {string} dir - Direction (`rtl` or `ltr`)
|
|
297
|
+
* @returns {void}
|
|
298
|
+
*/
|
|
299
|
+
SetDir(dir) {},
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Executes when the editor or plugin is initialized.
|
|
303
|
+
* Called during editor initialization and when `resetOptions` is called.
|
|
304
|
+
* @returns {void}
|
|
305
|
+
*/
|
|
306
|
+
Init() {},
|
|
307
|
+
};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Common parameter types used across SunEditor plugins and callbacks.
|
|
3
|
+
* These types define the structure of parameters passed to various plugin methods.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
// ================================================================
|
|
7
|
+
// PARAMS - Common parameter types
|
|
8
|
+
// ================================================================
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {{
|
|
12
|
+
* file: File,
|
|
13
|
+
* event: ClipboardEvent | DragEvent,
|
|
14
|
+
* frameContext: SunEditor.FrameContext
|
|
15
|
+
* }} FilePasteDrop
|
|
16
|
+
* @description Parameters for file paste/drop events
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @typedef {{
|
|
21
|
+
* frameContext: SunEditor.FrameContext,
|
|
22
|
+
* event: FocusEvent
|
|
23
|
+
* }} FocusBlurEvent
|
|
24
|
+
* @description Parameters for focus and blur events
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @typedef {{
|
|
29
|
+
* frameContext: SunEditor.FrameContext,
|
|
30
|
+
* event: Event
|
|
31
|
+
* }} ScrollEvent
|
|
32
|
+
* @description Parameters for scroll events
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @typedef {{
|
|
37
|
+
* frameContext: SunEditor.FrameContext,
|
|
38
|
+
* event: InputEvent,
|
|
39
|
+
* data: string
|
|
40
|
+
* }} InputEventWithData
|
|
41
|
+
* @description Parameters for beforeinput and input events
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* @typedef {{
|
|
46
|
+
* frameContext: SunEditor.FrameContext,
|
|
47
|
+
* event: ClipboardEvent,
|
|
48
|
+
* data: string,
|
|
49
|
+
* doc: Document
|
|
50
|
+
* }} Paste
|
|
51
|
+
* @description Parameters for paste events
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @typedef {{
|
|
56
|
+
* frameContext: SunEditor.FrameContext,
|
|
57
|
+
* event: MouseEvent
|
|
58
|
+
* }} Mouse
|
|
59
|
+
* @description Parameters for mouse events
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* @typedef {{
|
|
64
|
+
* frameContext: SunEditor.FrameContext,
|
|
65
|
+
* event: KeyboardEvent
|
|
66
|
+
* }} Keyboard
|
|
67
|
+
* @description Parameters for keyboard events
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @typedef {{
|
|
72
|
+
* target: HTMLElement,
|
|
73
|
+
* event: KeyboardEvent
|
|
74
|
+
* }} ToolbarInputKeyDown
|
|
75
|
+
* @description Parameters for toolbar input keydown events
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @typedef {{
|
|
80
|
+
* target: HTMLElement,
|
|
81
|
+
* value: string,
|
|
82
|
+
* event: FocusEvent | MouseEvent
|
|
83
|
+
* }} ToolbarInputChange
|
|
84
|
+
* @description Parameters for toolbar input change events (triggered by blur or other input click)
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* @typedef {{
|
|
89
|
+
* event: ClipboardEvent,
|
|
90
|
+
* cloneContainer: HTMLElement,
|
|
91
|
+
* info: SunEditor.ComponentInfo
|
|
92
|
+
* }} CopyComponent
|
|
93
|
+
* @description Parameters for component copy events
|
|
94
|
+
*/
|
|
95
|
+
|
|
96
|
+
// ================================================================
|
|
97
|
+
// PLUGIN EVENT PARAMS - Plugin hook event parameter types
|
|
98
|
+
// ================================================================
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @typedef {{
|
|
102
|
+
* frameContext: SunEditor.FrameContext,
|
|
103
|
+
* event: MouseEvent
|
|
104
|
+
* }} MouseEventInfo
|
|
105
|
+
* @description Parameters for plugin mouse event hooks
|
|
106
|
+
*/
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* @typedef {{
|
|
110
|
+
* frameContext: SunEditor.FrameContext,
|
|
111
|
+
* event: KeyboardEvent,
|
|
112
|
+
* range: Range,
|
|
113
|
+
* line: HTMLElement
|
|
114
|
+
* }} KeyEventInfo
|
|
115
|
+
* @description Parameters for plugin keyboard event hooks
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @typedef {{
|
|
120
|
+
* range: Range,
|
|
121
|
+
* line: HTMLElement,
|
|
122
|
+
* info: import('../core/logic/shell/shortcuts').ShortcutInfo,
|
|
123
|
+
* event: KeyboardEvent,
|
|
124
|
+
* keyCode: string,
|
|
125
|
+
* $: SunEditor.Deps
|
|
126
|
+
* }} ShortcutInfo
|
|
127
|
+
* @description Information of the `shortcut` plugin hook
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
export {};
|