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
|
@@ -1,53 +1,85 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default FileUpload;
|
|
3
|
+
export type FileUploadPluginOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* - Server request URL for file upload
|
|
6
|
+
*/
|
|
7
|
+
uploadUrl: string;
|
|
8
|
+
/**
|
|
9
|
+
* - Server request headers
|
|
10
|
+
*/
|
|
11
|
+
uploadHeaders?: {
|
|
12
|
+
[x: string]: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* - Total upload size limit in bytes
|
|
16
|
+
*/
|
|
17
|
+
uploadSizeLimit?: number;
|
|
18
|
+
/**
|
|
19
|
+
* - Single file size limit in bytes
|
|
20
|
+
*/
|
|
21
|
+
uploadSingleSizeLimit?: number;
|
|
22
|
+
/**
|
|
23
|
+
* - Allow multiple file uploads
|
|
24
|
+
*/
|
|
25
|
+
allowMultiple?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* - Accepted file formats (e.g., 'image/*, .pdf')
|
|
28
|
+
*/
|
|
29
|
+
acceptedFormats?: string;
|
|
30
|
+
/**
|
|
31
|
+
* - Specify the default form of the file component as `box` or `link`
|
|
32
|
+
*/
|
|
33
|
+
as?: string;
|
|
34
|
+
/**
|
|
35
|
+
* - Additional controls to be added to the figure
|
|
36
|
+
*/
|
|
37
|
+
controls?: Array<string>;
|
|
38
|
+
/**
|
|
39
|
+
* - Component insertion behavior for selection and cursor placement. [default: `options.get('componentInsertBehavior')`]
|
|
40
|
+
* - `auto`: Move cursor to the next line if possible, otherwise select the component.
|
|
41
|
+
* - `select`: Always select the inserted component.
|
|
42
|
+
* - `line`: Move cursor to the next line if possible, or create a new line and move there.
|
|
43
|
+
* - `none`: Do nothing.
|
|
44
|
+
*/
|
|
45
|
+
insertBehavior?: SunEditor.ComponentInsertType;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* @typedef FileUploadPluginOptions
|
|
49
|
+
* @property {string} uploadUrl - Server request URL for file upload
|
|
50
|
+
* @property {Object<string, string>} [uploadHeaders] - Server request headers
|
|
51
|
+
* @property {number} [uploadSizeLimit] - Total upload size limit in bytes
|
|
52
|
+
* @property {number} [uploadSingleSizeLimit] - Single file size limit in bytes
|
|
53
|
+
* @property {boolean} [allowMultiple=false] - Allow multiple file uploads
|
|
54
|
+
* @property {string} [acceptedFormats="*"] - Accepted file formats (e.g., 'image/*, .pdf')
|
|
55
|
+
* @property {string} [as="box"] - Specify the default form of the file component as `box` or `link`
|
|
56
|
+
* @property {Array<string>} [controls] - Additional controls to be added to the figure
|
|
57
|
+
* @property {SunEditor.ComponentInsertType} [insertBehavior] - Component insertion behavior for selection and cursor placement. [default: `options.get('componentInsertBehavior')`]
|
|
58
|
+
* - `auto`: Move cursor to the next line if possible, otherwise select the component.
|
|
59
|
+
* - `select`: Always select the inserted component.
|
|
60
|
+
* - `line`: Move cursor to the next line if possible, or create a new line and move there.
|
|
61
|
+
* - `none`: Do nothing.
|
|
62
|
+
*/
|
|
2
63
|
/**
|
|
3
64
|
* @class
|
|
4
65
|
* @description File upload plugin
|
|
5
66
|
*/
|
|
6
|
-
declare class FileUpload extends
|
|
7
|
-
static key: string;
|
|
8
|
-
static type: string;
|
|
9
|
-
static className: string;
|
|
67
|
+
declare class FileUpload extends PluginCommand {
|
|
10
68
|
static options: {
|
|
11
69
|
eventIndex: number;
|
|
12
70
|
};
|
|
13
71
|
/**
|
|
14
|
-
* @this {FileUpload}
|
|
15
72
|
* @param {HTMLElement} node - The node to check.
|
|
16
73
|
* @returns {HTMLElement|null} Returns a node if the node is a valid component.
|
|
17
74
|
*/
|
|
18
|
-
static component(
|
|
75
|
+
static component(node: HTMLElement): HTMLElement | null;
|
|
19
76
|
/**
|
|
20
77
|
* @constructor
|
|
21
|
-
* @param {
|
|
22
|
-
* @param {
|
|
23
|
-
* @param {string} pluginOptions.uploadUrl - server request url
|
|
24
|
-
* @param {Object<string, string>=} pluginOptions.uploadHeaders - server request headers
|
|
25
|
-
* @param {string=} pluginOptions.uploadSizeLimit - upload size limit
|
|
26
|
-
* @param {string=} pluginOptions.uploadSingleSizeLimit - upload single size limit
|
|
27
|
-
* @param {boolean=} pluginOptions.allowMultiple - allow multiple files
|
|
28
|
-
* @param {string=} pluginOptions.acceptedFormats - accepted formats
|
|
29
|
-
* @param {string=} pluginOptions.as - Whether to use the 'Box' or 'Link' conversion button
|
|
30
|
-
* @param {Array<string>} pluginOptions.controls - Additional controls to be added to the figure
|
|
78
|
+
* @param {SunEditor.Kernel} editor - The core kernel
|
|
79
|
+
* @param {FileUploadPluginOptions} pluginOptions - plugin options
|
|
31
80
|
*/
|
|
32
|
-
constructor(
|
|
33
|
-
editor: __se__EditorCore,
|
|
34
|
-
pluginOptions: {
|
|
35
|
-
uploadUrl: string;
|
|
36
|
-
uploadHeaders?:
|
|
37
|
-
| {
|
|
38
|
-
[x: string]: string;
|
|
39
|
-
}
|
|
40
|
-
| undefined;
|
|
41
|
-
uploadSizeLimit?: string | undefined;
|
|
42
|
-
uploadSingleSizeLimit?: string | undefined;
|
|
43
|
-
allowMultiple?: boolean | undefined;
|
|
44
|
-
acceptedFormats?: string | undefined;
|
|
45
|
-
as?: string | undefined;
|
|
46
|
-
controls: Array<string>;
|
|
47
|
-
}
|
|
48
|
-
);
|
|
81
|
+
constructor(editor: SunEditor.Kernel, pluginOptions: FileUploadPluginOptions);
|
|
49
82
|
title: any;
|
|
50
|
-
icon: string;
|
|
51
83
|
uploadUrl: string;
|
|
52
84
|
uploadHeaders: {
|
|
53
85
|
[x: string]: string;
|
|
@@ -56,72 +88,35 @@ declare class FileUpload extends EditorInjector {
|
|
|
56
88
|
uploadSingleSizeLimit: number;
|
|
57
89
|
allowMultiple: boolean;
|
|
58
90
|
acceptedFormats: string;
|
|
59
|
-
_acceptedCheck: string[];
|
|
60
91
|
as: string;
|
|
92
|
+
insertBehavior: SunEditor.ComponentInsertType;
|
|
61
93
|
input: HTMLElement;
|
|
62
|
-
_element: HTMLElement;
|
|
63
94
|
figure: Figure;
|
|
64
95
|
fileManager: FileManager;
|
|
65
96
|
controller: Controller;
|
|
66
97
|
editInput: HTMLInputElement;
|
|
67
|
-
|
|
68
|
-
* @editorMethod Editor.core
|
|
69
|
-
* @description Executes the main execution method of the plugin.
|
|
70
|
-
* - It is executed by clicking a toolbar "command" button or calling an API.
|
|
71
|
-
*/
|
|
72
|
-
action(): void;
|
|
73
|
-
/**
|
|
74
|
-
* @editorMethod Editor.Component
|
|
75
|
-
* @description Executes the method that is called when a component of a plugin is selected.
|
|
76
|
-
* @param {HTMLElement} target Target component element
|
|
77
|
-
*/
|
|
78
|
-
select(target: HTMLElement): boolean;
|
|
79
|
-
/**
|
|
80
|
-
* @editorMethod Editor.EventManager
|
|
81
|
-
* @description Executes the event function of "paste" or "drop".
|
|
82
|
-
* @param {Object} params { frameContext, event, file }
|
|
83
|
-
* @param {__se__FrameContext} params.frameContext Frame context
|
|
84
|
-
* @param {ClipboardEvent} params.event Event object
|
|
85
|
-
* @param {File} params.file File object
|
|
86
|
-
* @returns {boolean} - If return false, the file upload will be canceled
|
|
87
|
-
*/
|
|
88
|
-
onFilePasteAndDrop({ file }: { frameContext: __se__FrameContext; event: ClipboardEvent; file: File }): boolean;
|
|
89
|
-
/**
|
|
90
|
-
* @editorMethod Modules.Controller
|
|
91
|
-
* @description Executes the method that is called when a target component is edited.
|
|
92
|
-
* @param {HTMLElement|Text} target Target element
|
|
93
|
-
*/
|
|
94
|
-
edit(target: HTMLElement | Text): void;
|
|
95
|
-
/**
|
|
96
|
-
* @editorMethod Modules.Controller
|
|
97
|
-
* @description Executes the method that is called when a button is clicked in the "controller".
|
|
98
|
-
* @param {HTMLButtonElement} target Target button element
|
|
99
|
-
*/
|
|
98
|
+
onFilePasteAndDrop(params: SunEditor.HookParams.FilePasteDrop): void;
|
|
100
99
|
controllerAction(target: HTMLButtonElement): void;
|
|
100
|
+
componentSelect(target: HTMLElement): void | boolean;
|
|
101
|
+
componentEdit(target: HTMLElement): void;
|
|
102
|
+
componentDestroy(target: HTMLElement): Promise<void>;
|
|
101
103
|
/**
|
|
102
|
-
* @
|
|
103
|
-
* @description Method to delete a component of a plugin, called by the "FileManager", "Controller" module.
|
|
104
|
-
* @param {HTMLElement} target Target element
|
|
105
|
-
* @returns {Promise<void>}
|
|
106
|
-
*/
|
|
107
|
-
destroy(target: HTMLElement): Promise<void>;
|
|
108
|
-
/**
|
|
109
|
-
* @description Create an "file" component using the provided files.
|
|
104
|
+
* @description Create a `file` component using the provided files.
|
|
110
105
|
* @param {File[]|FileList} fileList File object list
|
|
111
106
|
* @returns {Promise<boolean>} If return false, the file upload will be canceled
|
|
112
107
|
*/
|
|
113
108
|
submitFile(fileList: File[] | FileList): Promise<boolean>;
|
|
114
109
|
/**
|
|
115
|
-
* @description Convert format to link or block
|
|
110
|
+
* @description Convert format to `link` or `block`
|
|
116
111
|
* @param {HTMLElement} target Target element
|
|
117
|
-
* @param {string} value
|
|
112
|
+
* @param {string} value `link` or `block`
|
|
118
113
|
*/
|
|
119
114
|
convertFormat(target: HTMLElement, value: string): void;
|
|
120
115
|
/**
|
|
121
116
|
* @description Create file element
|
|
122
117
|
* @param {string} url File URL
|
|
123
118
|
* @param {File|{name: string, size: number}} file File object
|
|
124
|
-
* @param {boolean} isLast
|
|
119
|
+
* @param {boolean} isLast Indicates whether this is the last file in the batch (used for scroll and insert actions).
|
|
125
120
|
*/
|
|
126
121
|
create(
|
|
127
122
|
url: string,
|
|
@@ -131,26 +126,11 @@ declare class FileUpload extends EditorInjector {
|
|
|
131
126
|
name: string;
|
|
132
127
|
size: number;
|
|
133
128
|
},
|
|
134
|
-
isLast: boolean
|
|
129
|
+
isLast: boolean,
|
|
135
130
|
): void;
|
|
136
|
-
/**
|
|
137
|
-
* @private
|
|
138
|
-
* @description Processes the server response after file upload.
|
|
139
|
-
* - Registers the uploaded files in the editor.
|
|
140
|
-
* @param {Object<string, *>} response - The response object from the server.
|
|
141
|
-
*/
|
|
142
|
-
private _register;
|
|
143
|
-
/**
|
|
144
|
-
* @private
|
|
145
|
-
* @description Handles file upload errors.
|
|
146
|
-
* - Displays an error message if the upload fails.
|
|
147
|
-
* @param {Object<string, *>} response - The error response from the server.
|
|
148
|
-
* @returns {Promise<void>}
|
|
149
|
-
*/
|
|
150
|
-
private _error;
|
|
151
131
|
#private;
|
|
152
132
|
}
|
|
153
|
-
import
|
|
154
|
-
import { Figure } from '../../modules';
|
|
155
|
-
import {
|
|
156
|
-
import {
|
|
133
|
+
import { PluginCommand } from '../../interfaces';
|
|
134
|
+
import { Figure } from '../../modules/contract';
|
|
135
|
+
import { Controller } from '../../modules/contract';
|
|
136
|
+
import { FileManager } from '../../modules/manager';
|
|
@@ -1,47 +1,21 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default List_bulleted;
|
|
2
3
|
/**
|
|
3
4
|
* @class
|
|
5
|
+
* @implements {PluginDropdown}
|
|
4
6
|
* @description List bulleted plugin, Several types of lists are provided.
|
|
5
7
|
*/
|
|
6
|
-
declare class List_bulleted extends
|
|
7
|
-
static key: string;
|
|
8
|
-
static type: string;
|
|
9
|
-
static className: string;
|
|
8
|
+
declare class List_bulleted extends PluginCommand implements PluginDropdown {
|
|
10
9
|
title: any;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @editorMethod Editor.EventManager
|
|
16
|
-
* @description Executes the method that is called whenever the cursor position changes.
|
|
17
|
-
* @param {?HTMLElement=} element - Node element where the cursor is currently located
|
|
18
|
-
* @param {?HTMLElement=} target - The plugin's toolbar button element
|
|
19
|
-
* @returns {boolean} - Whether the plugin is active
|
|
20
|
-
* - If it returns "undefined", it will no longer be called in this scope.
|
|
21
|
-
*/
|
|
22
|
-
active(element?: (HTMLElement | null) | undefined, target?: (HTMLElement | null) | undefined): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* @editorMethod Modules.Dropdown
|
|
25
|
-
* @description Executes the method that is called when a plugin's dropdown menu is opened.
|
|
26
|
-
*/
|
|
27
|
-
on(): void;
|
|
28
|
-
/**
|
|
29
|
-
* @editorMethod Editor.core
|
|
30
|
-
* @description Executes the main execution method of the plugin.
|
|
31
|
-
* - Called when an item in the "dropdown" menu is clicked.
|
|
32
|
-
* @param {HTMLElement} target - The plugin's toolbar button element
|
|
33
|
-
*/
|
|
34
|
-
action(target: HTMLElement): void;
|
|
35
|
-
/**
|
|
36
|
-
* @editorMethod Editor.core
|
|
37
|
-
* @description Executes methods called by shortcut keys.
|
|
38
|
-
* @param {__se__PluginShortcutInfo} params - Information of the "shortcut" plugin
|
|
39
|
-
*/
|
|
40
|
-
shortcut({ range, info }: __se__PluginShortcutInfo): void;
|
|
10
|
+
active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
|
|
11
|
+
on(target?: HTMLElement): void;
|
|
12
|
+
shortcut(params: SunEditor.HookParams.Shortcut): void;
|
|
41
13
|
/**
|
|
42
14
|
* @description Add a bulleted list
|
|
43
15
|
* @param {string} [type=""] List type
|
|
44
16
|
*/
|
|
45
17
|
submit(type?: string): void;
|
|
18
|
+
#private;
|
|
46
19
|
}
|
|
47
|
-
import
|
|
20
|
+
import { PluginDropdown } from '../../interfaces';
|
|
21
|
+
import { PluginCommand } from '../../interfaces';
|
|
@@ -1,47 +1,21 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default List_numbered;
|
|
2
3
|
/**
|
|
3
4
|
* @class
|
|
5
|
+
* @implements {PluginDropdown}
|
|
4
6
|
* @description List numbered plugin, Several types of lists are provided.
|
|
5
7
|
*/
|
|
6
|
-
declare class List_numbered extends
|
|
7
|
-
static key: string;
|
|
8
|
-
static type: string;
|
|
9
|
-
static className: string;
|
|
8
|
+
declare class List_numbered extends PluginCommand implements PluginDropdown {
|
|
10
9
|
title: any;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* @editorMethod Editor.EventManager
|
|
16
|
-
* @description Executes the method that is called whenever the cursor position changes.
|
|
17
|
-
* @param {?HTMLElement=} element - Node element where the cursor is currently located
|
|
18
|
-
* @param {?HTMLElement=} target - The plugin's toolbar button element
|
|
19
|
-
* @returns {boolean} - Whether the plugin is active
|
|
20
|
-
* - If it returns "undefined", it will no longer be called in this scope.
|
|
21
|
-
*/
|
|
22
|
-
active(element?: (HTMLElement | null) | undefined, target?: (HTMLElement | null) | undefined): boolean;
|
|
23
|
-
/**
|
|
24
|
-
* @editorMethod Modules.Dropdown
|
|
25
|
-
* @description Executes the method that is called when a plugin's dropdown menu is opened.
|
|
26
|
-
*/
|
|
27
|
-
on(): void;
|
|
28
|
-
/**
|
|
29
|
-
* @editorMethod Editor.core
|
|
30
|
-
* @description Executes the main execution method of the plugin.
|
|
31
|
-
* - Called when an item in the "dropdown" menu is clicked.
|
|
32
|
-
* @param {HTMLElement} target - The plugin's toolbar button element
|
|
33
|
-
*/
|
|
34
|
-
action(target: HTMLElement): void;
|
|
35
|
-
/**
|
|
36
|
-
* @editorMethod Editor.core
|
|
37
|
-
* @description Executes methods called by shortcut keys.
|
|
38
|
-
* @param {__se__PluginShortcutInfo} params - Information of the "shortcut" plugin
|
|
39
|
-
*/
|
|
40
|
-
shortcut({ range, info }: __se__PluginShortcutInfo): void;
|
|
10
|
+
active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
|
|
11
|
+
on(target?: HTMLElement): void;
|
|
12
|
+
shortcut(params: SunEditor.HookParams.Shortcut): void;
|
|
41
13
|
/**
|
|
42
14
|
* @description Add a numbered list
|
|
43
15
|
* @param {string} [type=""] List type
|
|
44
16
|
*/
|
|
45
17
|
submit(type?: string): void;
|
|
18
|
+
#private;
|
|
46
19
|
}
|
|
47
|
-
import
|
|
20
|
+
import { PluginDropdown } from '../../interfaces';
|
|
21
|
+
import { PluginCommand } from '../../interfaces';
|
|
@@ -1,61 +1,38 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default Align;
|
|
3
|
+
export type AlignPluginOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* - Align items
|
|
6
|
+
*/
|
|
7
|
+
items?: Array<'right' | 'center' | 'left' | 'justify'>;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @typedef {Object} AlignPluginOptions
|
|
11
|
+
* @property {Array.<"right"|"center"|"left"|"justify">} [items] - Align items
|
|
12
|
+
*/
|
|
2
13
|
/**
|
|
3
14
|
* @class
|
|
4
15
|
* @description Align plugin
|
|
5
16
|
*/
|
|
6
|
-
declare class Align extends
|
|
7
|
-
static key: string;
|
|
8
|
-
static type: string;
|
|
9
|
-
static className: string;
|
|
17
|
+
declare class Align extends PluginDropdown {
|
|
10
18
|
/**
|
|
11
|
-
* @param {
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {Array.<"right"|"center"|"left"|"justify">} pluginOptions.items - Align items
|
|
19
|
+
* @param {SunEditor.Kernel} editor - The core kernel
|
|
20
|
+
* @param {AlignPluginOptions} pluginOptions - Plugin options
|
|
14
21
|
*/
|
|
15
|
-
constructor(
|
|
16
|
-
editor: __se__EditorCore,
|
|
17
|
-
pluginOptions: {
|
|
18
|
-
items: Array<'right' | 'center' | 'left' | 'justify'>;
|
|
19
|
-
}
|
|
20
|
-
);
|
|
22
|
+
constructor(editor: SunEditor.Kernel, pluginOptions: AlignPluginOptions);
|
|
21
23
|
title: any;
|
|
22
|
-
icon: string;
|
|
23
24
|
_itemMenu: HTMLUListElement;
|
|
24
25
|
defaultDir: string;
|
|
25
26
|
alignIcons: {
|
|
26
|
-
justify:
|
|
27
|
-
left:
|
|
28
|
-
right:
|
|
29
|
-
center:
|
|
27
|
+
justify: any;
|
|
28
|
+
left: any;
|
|
29
|
+
right: any;
|
|
30
|
+
center: any;
|
|
30
31
|
};
|
|
31
32
|
alignList: NodeListOf<Element>;
|
|
32
|
-
|
|
33
|
-
* @editorMethod Editor.EventManager
|
|
34
|
-
* @description Executes the method that is called whenever the cursor position changes.
|
|
35
|
-
* @param {?HTMLElement=} element - Node element where the cursor is currently located
|
|
36
|
-
* @param {?HTMLElement=} target - The plugin's toolbar button element
|
|
37
|
-
* @returns {boolean} - Whether the plugin is active
|
|
38
|
-
* - If it returns "undefined", it will no longer be called in this scope.
|
|
39
|
-
*/
|
|
40
|
-
active(element?: (HTMLElement | null) | undefined, target?: (HTMLElement | null) | undefined): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* @editorMethod Modules.Dropdown
|
|
43
|
-
* @description Executes the method that is called when a plugin's dropdown menu is opened.
|
|
44
|
-
* @param {HTMLElement} target Line element at the current cursor position
|
|
45
|
-
*/
|
|
46
|
-
on(target: HTMLElement): void;
|
|
47
|
-
/**
|
|
48
|
-
* @editorMethod Editor.core
|
|
49
|
-
* @description Executes the method called when the rtl, ltr mode changes. ("editor.setDir")
|
|
50
|
-
* @param {string} dir Direction ("rtl" or "ltr")
|
|
51
|
-
*/
|
|
33
|
+
active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
|
|
52
34
|
setDir(dir: string): void;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
* @description Executes the main execution method of the plugin.
|
|
56
|
-
* - Called when an item in the "dropdown" menu is clicked.
|
|
57
|
-
* @param {HTMLElement} target - The plugin's toolbar button element
|
|
58
|
-
*/
|
|
59
|
-
action(target: HTMLElement): void;
|
|
35
|
+
init(): void;
|
|
36
|
+
#private;
|
|
60
37
|
}
|
|
61
|
-
import
|
|
38
|
+
import { PluginDropdown } from '../../interfaces';
|
|
@@ -1,64 +1,46 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default BackgroundColor;
|
|
3
|
+
export type BackgroundColorPluginOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* - Color list
|
|
6
|
+
*/
|
|
7
|
+
items?: Array<
|
|
8
|
+
| string
|
|
9
|
+
| {
|
|
10
|
+
value: string;
|
|
11
|
+
name: string;
|
|
12
|
+
}
|
|
13
|
+
>;
|
|
14
|
+
/**
|
|
15
|
+
* - Number of colors per line
|
|
16
|
+
*/
|
|
17
|
+
splitNum?: number;
|
|
18
|
+
/**
|
|
19
|
+
* - Disable HEX input
|
|
20
|
+
*/
|
|
21
|
+
disableHEXInput?: boolean;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* @typedef {Object} BackgroundColorPluginOptions
|
|
25
|
+
* @property {Array<string|{value: string, name: string}>} [items] - Color list
|
|
26
|
+
* @property {number} [splitNum] - Number of colors per line
|
|
27
|
+
* @property {boolean} [disableHEXInput] - Disable HEX input
|
|
28
|
+
*/
|
|
2
29
|
/**
|
|
3
30
|
* @class
|
|
4
31
|
* @description Text background color plugin
|
|
5
32
|
*/
|
|
6
|
-
declare class BackgroundColor extends
|
|
7
|
-
static key: string;
|
|
8
|
-
static type: string;
|
|
9
|
-
static className: string;
|
|
33
|
+
declare class BackgroundColor extends PluginDropdownFree {
|
|
10
34
|
/**
|
|
11
35
|
* @constructor
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {
|
|
14
|
-
* @param {Array<string|{value: string, name: string}>} pluginOptions.items - Color list
|
|
15
|
-
* @param {number} pluginOptions.splitNum - Number of colors per line
|
|
16
|
-
* @param {boolean} pluginOptions.disableHEXInput - Disable HEX input
|
|
36
|
+
* @param {SunEditor.Kernel} editor - The core kernel
|
|
37
|
+
* @param {BackgroundColorPluginOptions} pluginOptions - Plugin options
|
|
17
38
|
*/
|
|
18
|
-
constructor(
|
|
19
|
-
editor: __se__EditorCore,
|
|
20
|
-
pluginOptions: {
|
|
21
|
-
items: Array<
|
|
22
|
-
| string
|
|
23
|
-
| {
|
|
24
|
-
value: string;
|
|
25
|
-
name: string;
|
|
26
|
-
}
|
|
27
|
-
>;
|
|
28
|
-
splitNum: number;
|
|
29
|
-
disableHEXInput: boolean;
|
|
30
|
-
}
|
|
31
|
-
);
|
|
39
|
+
constructor(editor: SunEditor.Kernel, pluginOptions: BackgroundColorPluginOptions);
|
|
32
40
|
title: any;
|
|
33
|
-
icon: string;
|
|
34
41
|
colorPicker: ColorPicker;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
* @description Executes the method that is called whenever the cursor position changes.
|
|
38
|
-
* @param {?HTMLElement=} element - Node element where the cursor is currently located
|
|
39
|
-
* @param {?HTMLElement=} target - The plugin's toolbar button element
|
|
40
|
-
* @returns {boolean} - Whether the plugin is active
|
|
41
|
-
* - If it returns "undefined", it will no longer be called in this scope.
|
|
42
|
-
*/
|
|
43
|
-
active(element?: (HTMLElement | null) | undefined, target?: (HTMLElement | null) | undefined): boolean;
|
|
44
|
-
/**
|
|
45
|
-
* @editorMethod Modules.Dropdown
|
|
46
|
-
* @description Executes the method that is called when a plugin's "dropdown" menu is opened.
|
|
47
|
-
* @param {HTMLElement} target Line element at the current cursor position
|
|
48
|
-
*/
|
|
49
|
-
on(target: HTMLElement): void;
|
|
50
|
-
/**
|
|
51
|
-
* @editorMethod Modules.Dropdown
|
|
52
|
-
* @description Executes the method that is called when a plugin's "dropdown" menu is closed.
|
|
53
|
-
*/
|
|
54
|
-
off(): void;
|
|
55
|
-
/**
|
|
56
|
-
* @editorMethod Modules.ColorPicker
|
|
57
|
-
* @description Executes the method called when a button of "ColorPicker" module is clicked.
|
|
58
|
-
* - This plugin is by applying the "ColorPicker" module globally to the "dropdown" menu, the default "action" method is not called.
|
|
59
|
-
* @param {string} color - Color code (hex)
|
|
60
|
-
*/
|
|
61
|
-
colorPickerAction(color: string): void;
|
|
42
|
+
active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
|
|
43
|
+
colorPickerAction(color: SunEditor.Module.HueSlider.Color): void;
|
|
62
44
|
}
|
|
63
|
-
import
|
|
64
|
-
import ColorPicker from '../../modules/
|
|
45
|
+
import { PluginDropdownFree } from '../../interfaces';
|
|
46
|
+
import { ColorPicker } from '../../modules/contract';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default BlockStyle;
|
|
3
|
+
export type BlockStyleItem = {
|
|
4
|
+
tag: string;
|
|
5
|
+
command: 'line' | 'br-line' | 'block';
|
|
6
|
+
name?: string;
|
|
7
|
+
class?: string;
|
|
8
|
+
};
|
|
9
|
+
export type BlockStylePluginOptions = {
|
|
10
|
+
/**
|
|
11
|
+
* - Format list
|
|
12
|
+
*/
|
|
13
|
+
items?: Array<'p' | 'div' | 'blockquote' | 'pre' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | string | BlockStyleItem>;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {{tag: string, command: "line"|"br-line"|"block", name?: string, class?: string}} BlockStyleItem
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* @typedef {Object} BlockStylePluginOptions
|
|
20
|
+
* @property {Array<"p"|"div"|"blockquote"|"pre"|"h1"|"h2"|"h3"|"h4"|"h5"|"h6"|string|BlockStyleItem>} [items] - Format list
|
|
21
|
+
*/
|
|
22
|
+
/**
|
|
23
|
+
* @class
|
|
24
|
+
* @description BlockStyle Plugin (`P`, `BLOCKQUOTE`, `PRE`, `H1`, `H2`...)
|
|
25
|
+
*/
|
|
26
|
+
declare class BlockStyle extends PluginDropdown {
|
|
27
|
+
/**
|
|
28
|
+
* @constructor
|
|
29
|
+
* @param {SunEditor.Kernel} editor - The core kernel
|
|
30
|
+
* @param {BlockStylePluginOptions} pluginOptions - Plugin options
|
|
31
|
+
*/
|
|
32
|
+
constructor(editor: SunEditor.Kernel, pluginOptions: BlockStylePluginOptions);
|
|
33
|
+
title: any;
|
|
34
|
+
inner: string;
|
|
35
|
+
formatList: NodeListOf<Element>;
|
|
36
|
+
currentFormat: string;
|
|
37
|
+
active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
|
|
38
|
+
/**
|
|
39
|
+
* @description Create a header tag, call by `shortcut` class
|
|
40
|
+
* - (e.g. shortcuts._h1: ['c+s+49+$~blockStyle.applyHeaderByShortcut', ''])
|
|
41
|
+
* @param {SunEditor.HookParams.Shortcut} params - Information of the `shortcut` plugin
|
|
42
|
+
*/
|
|
43
|
+
applyHeaderByShortcut({ keyCode }: SunEditor.HookParams.Shortcut): void;
|
|
44
|
+
}
|
|
45
|
+
import { PluginDropdown } from '../../interfaces';
|
|
@@ -1,55 +1,32 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default Font;
|
|
3
|
+
export type FontPluginOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* - Font list
|
|
6
|
+
*/
|
|
7
|
+
items?: Array<string>;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* @typedef {Object} FontPluginOptions
|
|
11
|
+
* @property {Array<string>} [items] - Font list
|
|
12
|
+
*/
|
|
2
13
|
/**
|
|
3
14
|
* @class
|
|
4
15
|
* @description Text font plugin
|
|
5
16
|
*/
|
|
6
|
-
declare class Font extends
|
|
7
|
-
static key: string;
|
|
8
|
-
static type: string;
|
|
9
|
-
static className: string;
|
|
17
|
+
declare class Font extends PluginDropdown {
|
|
10
18
|
/**
|
|
11
19
|
* @constructor
|
|
12
|
-
* @param {
|
|
13
|
-
* @param {
|
|
14
|
-
* @param {Array<string>} pluginOptions.items - Font list
|
|
15
|
-
* @param {number} pluginOptions.splitNum - Number of colors per line
|
|
16
|
-
* @param {boolean} pluginOptions.disableHEXInput - Disable HEX input
|
|
20
|
+
* @param {SunEditor.Kernel} editor - The core kernel
|
|
21
|
+
* @param {FontPluginOptions} pluginOptions - plugin options
|
|
17
22
|
*/
|
|
18
|
-
constructor(
|
|
19
|
-
editor: __se__EditorCore,
|
|
20
|
-
pluginOptions: {
|
|
21
|
-
items: Array<string>;
|
|
22
|
-
splitNum: number;
|
|
23
|
-
disableHEXInput: boolean;
|
|
24
|
-
}
|
|
25
|
-
);
|
|
23
|
+
constructor(editor: SunEditor.Kernel, pluginOptions: FontPluginOptions);
|
|
26
24
|
title: any;
|
|
27
25
|
inner: string;
|
|
28
26
|
currentFont: string;
|
|
29
27
|
fontList: NodeListOf<Element>;
|
|
30
28
|
fontArray: string[];
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
* @description Executes the method that is called whenever the cursor position changes.
|
|
34
|
-
* @param {?HTMLElement=} element - Node element where the cursor is currently located
|
|
35
|
-
* @param {?HTMLElement=} target - The plugin's toolbar button element
|
|
36
|
-
* @returns {boolean} - Whether the plugin is active
|
|
37
|
-
* - If it returns "undefined", it will no longer be called in this scope.
|
|
38
|
-
*/
|
|
39
|
-
active(element?: (HTMLElement | null) | undefined, target?: (HTMLElement | null) | undefined): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* @editorMethod Modules.Dropdown
|
|
42
|
-
* @description Executes the method that is called when a plugin's dropdown menu is opened.
|
|
43
|
-
* @param {HTMLElement} target Line element at the current cursor position
|
|
44
|
-
*/
|
|
45
|
-
on(target: HTMLElement): void;
|
|
46
|
-
/**
|
|
47
|
-
* @editorMethod Editor.core
|
|
48
|
-
* @description Executes the main execution method of the plugin.
|
|
49
|
-
* - Called when an item in the "dropdown" menu is clicked.
|
|
50
|
-
* @param {HTMLElement} target - The plugin's toolbar button element
|
|
51
|
-
* @returns {Promise<void>}
|
|
52
|
-
*/
|
|
53
|
-
action(target: HTMLElement): Promise<void>;
|
|
29
|
+
active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
|
|
30
|
+
#private;
|
|
54
31
|
}
|
|
55
|
-
import
|
|
32
|
+
import { PluginDropdown } from '../../interfaces';
|