suneditor 3.0.0-beta.9 → 3.0.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -57
- package/dist/suneditor-contents.min.css +1 -0
- package/dist/suneditor.min.css +1 -1
- package/dist/suneditor.min.js +1 -1
- package/package.json +110 -61
- package/src/assets/design/color.css +36 -17
- package/src/assets/design/size.css +2 -0
- package/src/assets/icons/defaultIcons.js +17 -2
- package/src/assets/suneditor-contents.css +51 -16
- package/src/assets/suneditor.css +116 -43
- package/src/core/config/contextProvider.js +288 -0
- package/src/core/config/eventManager.js +188 -0
- package/src/core/config/instanceCheck.js +59 -0
- package/src/core/config/optionProvider.js +452 -0
- package/src/core/editor.js +166 -1637
- package/src/core/event/actions/index.js +229 -0
- package/src/core/event/effects/common.registry.js +74 -0
- package/src/core/event/effects/keydown.registry.js +573 -0
- package/src/core/event/effects/ruleHelpers.js +148 -0
- package/src/core/event/eventOrchestrator.js +944 -0
- package/src/core/event/executor.js +27 -0
- package/src/core/{base/eventHandlers → event/handlers}/handler_toolbar.js +27 -28
- package/src/core/{base/eventHandlers → event/handlers}/handler_ww_clipboard.js +10 -8
- package/src/core/{base/eventHandlers → event/handlers}/handler_ww_dragDrop.js +22 -23
- package/src/core/event/handlers/handler_ww_input.js +75 -0
- package/src/core/event/handlers/handler_ww_key.js +228 -0
- package/src/core/event/handlers/handler_ww_mouse.js +166 -0
- package/src/core/event/ports.js +211 -0
- package/src/core/event/reducers/keydown.reducer.js +97 -0
- package/src/core/event/rules/keydown.rule.arrow.js +63 -0
- package/src/core/event/rules/keydown.rule.backspace.js +208 -0
- package/src/core/event/rules/keydown.rule.delete.js +132 -0
- package/src/core/event/rules/keydown.rule.enter.js +150 -0
- package/src/core/event/rules/keydown.rule.tab.js +35 -0
- package/src/core/event/support/defaultLineManager.js +136 -0
- package/src/core/event/support/selectionState.js +204 -0
- package/src/core/kernel/coreKernel.js +320 -0
- package/src/core/kernel/kernelInjector.js +19 -0
- package/src/core/kernel/store.js +173 -0
- package/src/core/{class → logic/dom}/char.js +42 -45
- package/src/core/logic/dom/format.js +1075 -0
- package/src/core/{class → logic/dom}/html.js +743 -624
- package/src/core/logic/dom/inline.js +1847 -0
- package/src/core/logic/dom/listFormat.js +601 -0
- package/src/core/{class → logic/dom}/nodeTransform.js +92 -72
- package/src/core/{class → logic/dom}/offset.js +254 -317
- package/src/core/logic/dom/selection.js +754 -0
- package/src/core/logic/panel/menu.js +389 -0
- package/src/core/logic/panel/toolbar.js +449 -0
- package/src/core/logic/panel/viewer.js +761 -0
- package/src/core/logic/shell/_commandExecutor.js +380 -0
- package/src/core/logic/shell/commandDispatcher.js +241 -0
- package/src/core/logic/shell/component.js +970 -0
- package/src/core/logic/shell/focusManager.js +110 -0
- package/src/core/{base → logic/shell}/history.js +110 -60
- package/src/core/logic/shell/pluginManager.js +363 -0
- package/src/core/logic/shell/shortcuts.js +130 -0
- package/src/core/logic/shell/ui.js +904 -0
- package/src/core/schema/context.js +66 -0
- package/src/core/schema/frameContext.js +160 -0
- package/src/core/schema/options.js +628 -0
- package/src/core/section/constructor.js +194 -500
- package/src/core/section/documentType.js +297 -222
- package/src/events.js +808 -543
- package/src/helper/clipboard.js +27 -16
- package/src/helper/converter.js +100 -78
- package/src/helper/dom/domCheck.js +56 -30
- package/src/helper/dom/domQuery.js +159 -89
- package/src/helper/dom/domUtils.js +114 -49
- package/src/helper/dom/index.js +5 -1
- package/src/helper/env.js +26 -26
- package/src/helper/index.js +1 -1
- package/src/helper/keyCodeMap.js +25 -28
- package/src/helper/numbers.js +4 -8
- package/src/helper/unicode.js +4 -8
- package/src/hooks/base.js +307 -0
- package/src/hooks/params.js +130 -0
- package/src/interfaces/contracts.js +227 -0
- package/src/interfaces/index.js +7 -0
- package/src/interfaces/plugins.js +239 -0
- package/src/langs/ckb.js +4 -4
- package/src/langs/cs.js +4 -4
- package/src/langs/da.js +4 -4
- package/src/langs/de.js +4 -4
- package/src/langs/en.js +4 -4
- package/src/langs/es.js +4 -4
- package/src/langs/fa.js +4 -4
- package/src/langs/fr.js +4 -4
- package/src/langs/he.js +4 -4
- package/src/langs/hu.js +4 -4
- package/src/langs/it.js +4 -4
- package/src/langs/ja.js +4 -4
- package/src/langs/km.js +4 -4
- package/src/langs/ko.js +4 -4
- package/src/langs/lv.js +4 -4
- package/src/langs/nl.js +4 -4
- package/src/langs/pl.js +4 -4
- package/src/langs/pt_br.js +13 -13
- package/src/langs/ro.js +4 -4
- package/src/langs/ru.js +4 -4
- package/src/langs/se.js +4 -4
- package/src/langs/tr.js +4 -4
- package/src/langs/uk.js +4 -4
- package/src/langs/ur.js +4 -4
- package/src/langs/zh_cn.js +4 -4
- package/src/modules/{Browser.js → contract/Browser.js} +119 -128
- package/src/modules/{ColorPicker.js → contract/ColorPicker.js} +132 -142
- package/src/modules/contract/Controller.js +589 -0
- package/src/modules/{Figure.js → contract/Figure.js} +591 -411
- package/src/modules/{HueSlider.js → contract/HueSlider.js} +125 -86
- package/src/modules/contract/Modal.js +357 -0
- package/src/modules/contract/index.js +9 -0
- package/src/modules/manager/ApiManager.js +197 -0
- package/src/modules/{FileManager.js → manager/FileManager.js} +128 -160
- package/src/modules/manager/index.js +5 -0
- package/src/modules/{ModalAnchorEditor.js → ui/ModalAnchorEditor.js} +108 -138
- package/src/modules/{SelectMenu.js → ui/SelectMenu.js} +119 -120
- package/src/modules/{_DragHandle.js → ui/_DragHandle.js} +1 -1
- package/src/modules/ui/index.js +6 -0
- package/src/plugins/browser/audioGallery.js +23 -26
- package/src/plugins/browser/fileBrowser.js +25 -28
- package/src/plugins/browser/fileGallery.js +20 -23
- package/src/plugins/browser/imageGallery.js +24 -23
- package/src/plugins/browser/videoGallery.js +27 -29
- package/src/plugins/command/blockquote.js +11 -17
- package/src/plugins/command/exportPDF.js +26 -26
- package/src/plugins/command/fileUpload.js +138 -133
- package/src/plugins/command/list_bulleted.js +48 -44
- package/src/plugins/command/list_numbered.js +48 -44
- package/src/plugins/dropdown/align.js +64 -50
- package/src/plugins/dropdown/backgroundColor.js +34 -35
- package/src/plugins/dropdown/{formatBlock.js → blockStyle.js} +43 -37
- package/src/plugins/dropdown/font.js +50 -36
- package/src/plugins/dropdown/fontColor.js +34 -35
- package/src/plugins/dropdown/hr.js +55 -50
- package/src/plugins/dropdown/layout.js +20 -15
- package/src/plugins/dropdown/lineHeight.js +46 -30
- package/src/plugins/dropdown/list.js +32 -33
- package/src/plugins/dropdown/paragraphStyle.js +40 -34
- package/src/plugins/dropdown/table/index.js +915 -0
- package/src/plugins/dropdown/table/render/table.html.js +308 -0
- package/src/plugins/dropdown/table/render/table.menu.js +121 -0
- package/src/plugins/dropdown/table/services/table.cell.js +465 -0
- package/src/plugins/dropdown/table/services/table.clipboard.js +414 -0
- package/src/plugins/dropdown/table/services/table.grid.js +504 -0
- package/src/plugins/dropdown/table/services/table.resize.js +463 -0
- package/src/plugins/dropdown/table/services/table.selection.js +466 -0
- package/src/plugins/dropdown/table/services/table.style.js +844 -0
- package/src/plugins/dropdown/table/shared/table.constants.js +109 -0
- package/src/plugins/dropdown/table/shared/table.utils.js +219 -0
- package/src/plugins/dropdown/template.js +20 -15
- package/src/plugins/dropdown/textStyle.js +28 -22
- package/src/plugins/field/mention.js +54 -49
- package/src/plugins/index.js +5 -5
- package/src/plugins/input/fontSize.js +100 -97
- package/src/plugins/input/pageNavigator.js +13 -10
- package/src/plugins/modal/audio.js +208 -219
- package/src/plugins/modal/drawing.js +99 -104
- package/src/plugins/modal/embed.js +323 -312
- package/src/plugins/modal/image/index.js +942 -0
- package/src/plugins/modal/image/render/image.html.js +150 -0
- package/src/plugins/modal/image/services/image.size.js +198 -0
- package/src/plugins/modal/image/services/image.upload.js +216 -0
- package/src/plugins/modal/image/shared/image.constants.js +20 -0
- package/src/plugins/modal/link.js +74 -54
- package/src/plugins/modal/math.js +126 -119
- package/src/plugins/modal/video/index.js +858 -0
- package/src/plugins/modal/video/render/video.html.js +131 -0
- package/src/plugins/modal/video/services/video.size.js +281 -0
- package/src/plugins/modal/video/services/video.upload.js +92 -0
- package/src/plugins/popup/anchor.js +57 -49
- package/src/suneditor.js +73 -61
- package/src/themes/cobalt.css +155 -0
- package/src/themes/dark.css +143 -120
- package/src/typedef.js +214 -63
- package/types/assets/icons/defaultIcons.d.ts +8 -0
- package/types/assets/suneditor-contents.css.d.ts +1 -0
- package/types/assets/suneditor.css.d.ts +1 -0
- package/types/core/config/contextProvider.d.ts +148 -0
- package/types/core/config/eventManager.d.ts +68 -0
- package/types/core/config/instanceCheck.d.ts +33 -0
- package/types/core/config/optionProvider.d.ts +147 -0
- package/types/core/editor.d.ts +27 -586
- package/types/core/event/actions/index.d.ts +50 -0
- package/types/core/event/effects/common.registry.d.ts +56 -0
- package/types/core/event/effects/keydown.registry.d.ts +80 -0
- package/types/core/event/effects/ruleHelpers.d.ts +36 -0
- package/types/core/event/eventOrchestrator.d.ts +191 -0
- package/types/core/event/executor.d.ts +13 -0
- package/types/core/event/handlers/handler_toolbar.d.ts +38 -0
- package/types/core/event/handlers/handler_ww_clipboard.d.ts +36 -0
- package/types/core/event/handlers/handler_ww_dragDrop.d.ts +26 -0
- package/types/core/event/handlers/handler_ww_input.d.ts +38 -0
- package/types/core/event/handlers/handler_ww_key.d.ts +40 -0
- package/types/core/event/handlers/handler_ww_mouse.d.ts +47 -0
- package/types/core/event/ports.d.ts +256 -0
- package/types/core/event/reducers/keydown.reducer.d.ts +84 -0
- package/types/core/event/rules/keydown.rule.arrow.d.ts +19 -0
- package/types/core/event/rules/keydown.rule.backspace.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.delete.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.enter.d.ts +18 -0
- package/types/core/event/rules/keydown.rule.tab.d.ts +18 -0
- package/types/core/event/support/defaultLineManager.d.ts +22 -0
- package/types/core/event/support/selectionState.d.ts +29 -0
- package/types/core/kernel/coreKernel.d.ts +219 -0
- package/types/core/kernel/kernelInjector.d.ts +16 -0
- package/types/core/kernel/store.d.ts +170 -0
- package/types/core/logic/dom/char.d.ts +46 -0
- package/types/core/logic/dom/format.d.ts +234 -0
- package/types/core/logic/dom/html.d.ts +290 -0
- package/types/core/logic/dom/inline.d.ts +93 -0
- package/types/core/logic/dom/listFormat.d.ts +101 -0
- package/types/core/logic/dom/nodeTransform.d.ts +110 -0
- package/types/core/logic/dom/offset.d.ts +335 -0
- package/types/core/logic/dom/selection.d.ts +165 -0
- package/types/core/logic/panel/menu.d.ts +93 -0
- package/types/core/logic/panel/toolbar.d.ts +128 -0
- package/types/core/logic/panel/viewer.d.ts +89 -0
- package/types/core/logic/shell/_commandExecutor.d.ts +18 -0
- package/types/core/logic/shell/commandDispatcher.d.ts +65 -0
- package/types/core/logic/shell/component.d.ts +182 -0
- package/types/core/logic/shell/focusManager.d.ts +31 -0
- package/types/core/{base → logic/shell}/history.d.ts +13 -12
- package/types/core/logic/shell/pluginManager.d.ts +115 -0
- package/types/core/logic/shell/shortcuts.d.ts +131 -0
- package/types/core/logic/shell/ui.d.ts +261 -0
- package/types/core/schema/context.d.ts +104 -0
- package/types/core/schema/frameContext.d.ts +320 -0
- package/types/core/schema/options.d.ts +1241 -0
- package/types/core/section/constructor.d.ts +117 -652
- package/types/core/section/documentType.d.ts +43 -61
- package/types/events.d.ts +796 -65
- package/types/helper/clipboard.d.ts +5 -4
- package/types/helper/converter.d.ts +55 -43
- package/types/helper/dom/domCheck.d.ts +27 -19
- package/types/helper/dom/domQuery.d.ts +76 -57
- package/types/helper/dom/domUtils.d.ts +62 -39
- package/types/helper/dom/index.d.ts +87 -1
- package/types/helper/env.d.ts +16 -13
- package/types/helper/index.d.ts +8 -2
- package/types/helper/keyCodeMap.d.ts +24 -23
- package/types/helper/numbers.d.ts +4 -6
- package/types/helper/unicode.d.ts +4 -3
- package/types/hooks/base.d.ts +239 -0
- package/types/hooks/params.d.ts +65 -0
- package/types/index.d.ts +20 -117
- package/types/interfaces/contracts.d.ts +183 -0
- package/types/interfaces/index.d.ts +3 -0
- package/types/interfaces/plugins.d.ts +168 -0
- package/types/langs/_Lang.d.ts +2 -2
- package/types/langs/index.d.ts +2 -2
- package/types/modules/contract/Browser.d.ts +262 -0
- package/types/modules/contract/ColorPicker.d.ts +99 -0
- package/types/modules/contract/Controller.d.ts +204 -0
- package/types/modules/contract/Figure.d.ts +529 -0
- package/types/modules/{HueSlider.d.ts → contract/HueSlider.d.ts} +39 -28
- package/types/modules/contract/Modal.d.ts +62 -0
- package/types/modules/contract/index.d.ts +7 -0
- package/types/modules/manager/ApiManager.d.ts +106 -0
- package/types/modules/manager/FileManager.d.ts +124 -0
- package/types/modules/manager/index.d.ts +3 -0
- package/types/modules/ui/ModalAnchorEditor.d.ts +152 -0
- package/types/modules/ui/SelectMenu.d.ts +107 -0
- package/types/modules/{_DragHandle.d.ts → ui/_DragHandle.d.ts} +1 -0
- package/types/modules/ui/index.d.ts +4 -0
- package/types/plugins/browser/audioGallery.d.ts +33 -41
- package/types/plugins/browser/fileBrowser.d.ts +42 -50
- package/types/plugins/browser/fileGallery.d.ts +33 -41
- package/types/plugins/browser/imageGallery.d.ts +30 -37
- package/types/plugins/browser/videoGallery.d.ts +33 -41
- package/types/plugins/command/blockquote.d.ts +4 -21
- package/types/plugins/command/exportPDF.d.ts +23 -33
- package/types/plugins/command/fileUpload.d.ts +80 -100
- package/types/plugins/command/list_bulleted.d.ts +9 -35
- package/types/plugins/command/list_numbered.d.ts +9 -35
- package/types/plugins/dropdown/align.d.ts +23 -46
- package/types/plugins/dropdown/backgroundColor.d.ts +35 -53
- package/types/plugins/dropdown/blockStyle.d.ts +45 -0
- package/types/plugins/dropdown/font.d.ts +18 -41
- package/types/plugins/dropdown/fontColor.d.ts +35 -53
- package/types/plugins/dropdown/hr.d.ts +26 -52
- package/types/plugins/dropdown/layout.d.ts +19 -25
- package/types/plugins/dropdown/lineHeight.d.ts +21 -39
- package/types/plugins/dropdown/list.d.ts +6 -34
- package/types/plugins/dropdown/paragraphStyle.d.ts +34 -45
- package/types/plugins/dropdown/table/index.d.ts +158 -0
- package/types/plugins/dropdown/table/render/table.html.d.ts +71 -0
- package/types/plugins/dropdown/table/render/table.menu.d.ts +59 -0
- package/types/plugins/dropdown/table/services/table.cell.d.ts +76 -0
- package/types/plugins/dropdown/table/services/table.clipboard.d.ts +26 -0
- package/types/plugins/dropdown/table/services/table.grid.d.ts +77 -0
- package/types/plugins/dropdown/table/services/table.resize.d.ts +72 -0
- package/types/plugins/dropdown/table/services/table.selection.d.ts +59 -0
- package/types/plugins/dropdown/table/services/table.style.d.ts +162 -0
- package/types/plugins/dropdown/table/shared/table.constants.d.ts +134 -0
- package/types/plugins/dropdown/table/shared/table.utils.d.ts +91 -0
- package/types/plugins/dropdown/template.d.ts +19 -25
- package/types/plugins/dropdown/textStyle.d.ts +23 -30
- package/types/plugins/field/mention.d.ts +66 -72
- package/types/plugins/index.d.ts +41 -40
- package/types/plugins/input/fontSize.d.ts +57 -96
- package/types/plugins/input/pageNavigator.d.ts +5 -8
- package/types/plugins/modal/audio.d.ts +60 -153
- package/types/plugins/modal/drawing.d.ts +16 -118
- package/types/plugins/modal/embed.d.ts +46 -166
- package/types/plugins/modal/image/index.d.ts +281 -0
- package/types/plugins/modal/image/render/image.html.d.ts +45 -0
- package/types/plugins/modal/image/services/image.size.d.ts +55 -0
- package/types/plugins/modal/image/services/image.upload.d.ts +24 -0
- package/types/plugins/modal/image/shared/image.constants.d.ts +17 -0
- package/types/plugins/modal/link.d.ts +46 -66
- package/types/plugins/modal/math.d.ts +17 -86
- package/types/plugins/modal/{video.d.ts → video/index.d.ts} +89 -221
- package/types/plugins/modal/video/render/video.html.d.ts +37 -0
- package/types/plugins/modal/video/services/video.size.d.ts +74 -0
- package/types/plugins/modal/video/services/video.upload.d.ts +19 -0
- package/types/plugins/popup/anchor.d.ts +8 -38
- package/types/suneditor.d.ts +55 -24
- package/types/typedef.d.ts +344 -228
- package/CONTRIBUTING.md +0 -186
- package/src/core/base/eventHandlers/handler_ww_key_input.js +0 -1200
- package/src/core/base/eventHandlers/handler_ww_mouse.js +0 -194
- package/src/core/base/eventManager.js +0 -1523
- package/src/core/class/component.js +0 -856
- package/src/core/class/format.js +0 -3433
- package/src/core/class/menu.js +0 -346
- package/src/core/class/selection.js +0 -610
- package/src/core/class/shortcuts.js +0 -98
- package/src/core/class/toolbar.js +0 -431
- package/src/core/class/ui.js +0 -424
- package/src/core/class/viewer.js +0 -750
- package/src/core/section/actives.js +0 -266
- package/src/core/section/context.js +0 -102
- package/src/editorInjector/_classes.js +0 -36
- package/src/editorInjector/_core.js +0 -87
- package/src/editorInjector/index.js +0 -73
- package/src/modules/ApiManager.js +0 -191
- package/src/modules/Controller.js +0 -474
- package/src/modules/Modal.js +0 -346
- package/src/modules/index.js +0 -14
- package/src/plugins/dropdown/table.js +0 -4034
- package/src/plugins/modal/image.js +0 -1376
- package/src/plugins/modal/video.js +0 -1226
- package/types/core/base/eventHandlers/handler_toolbar.d.ts +0 -41
- package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +0 -40
- package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +0 -35
- package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +0 -45
- package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +0 -39
- package/types/core/base/eventManager.d.ts +0 -401
- package/types/core/class/char.d.ts +0 -61
- package/types/core/class/component.d.ts +0 -213
- package/types/core/class/format.d.ts +0 -623
- package/types/core/class/html.d.ts +0 -430
- package/types/core/class/menu.d.ts +0 -126
- package/types/core/class/nodeTransform.d.ts +0 -93
- package/types/core/class/offset.d.ts +0 -522
- package/types/core/class/selection.d.ts +0 -188
- package/types/core/class/shortcuts.d.ts +0 -142
- package/types/core/class/toolbar.d.ts +0 -189
- package/types/core/class/ui.d.ts +0 -164
- package/types/core/class/viewer.d.ts +0 -140
- package/types/core/section/actives.d.ts +0 -46
- package/types/core/section/context.d.ts +0 -45
- package/types/editorInjector/_classes.d.ts +0 -41
- package/types/editorInjector/_core.d.ts +0 -87
- package/types/editorInjector/index.d.ts +0 -69
- package/types/modules/ApiManager.d.ts +0 -125
- package/types/modules/Browser.d.ts +0 -326
- package/types/modules/ColorPicker.d.ts +0 -135
- package/types/modules/Controller.d.ts +0 -251
- package/types/modules/Figure.d.ts +0 -517
- package/types/modules/FileManager.d.ts +0 -202
- package/types/modules/Modal.d.ts +0 -111
- package/types/modules/ModalAnchorEditor.d.ts +0 -236
- package/types/modules/SelectMenu.d.ts +0 -194
- package/types/modules/index.d.ts +0 -26
- package/types/plugins/dropdown/formatBlock.d.ts +0 -55
- package/types/plugins/dropdown/table.d.ts +0 -627
- package/types/plugins/modal/image.d.ts +0 -451
- /package/{LICENSE → LICENSE.txt} +0 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import type {} from '../typedef';
|
|
2
|
+
/**
|
|
3
|
+
* @abstract
|
|
4
|
+
* @interface
|
|
5
|
+
* Base class for Browser plugins
|
|
6
|
+
* Child classes MUST implement open(), close(), and onSelectFile() methods
|
|
7
|
+
*/
|
|
8
|
+
export class PluginBrowser extends Base {
|
|
9
|
+
/**
|
|
10
|
+
* @abstract
|
|
11
|
+
* @description Executes the method that is called when a `Browser` module's is opened.
|
|
12
|
+
* @param {?(target: Node) => *} [onSelectfunction] - Method to be executed after selecting an item in the gallery
|
|
13
|
+
* @returns {void}
|
|
14
|
+
*/
|
|
15
|
+
open(onSelectfunction?: ((target: Node) => any) | null): void;
|
|
16
|
+
/**
|
|
17
|
+
* @abstract
|
|
18
|
+
* @description Executes the method that is called when a `Browser` module's is closed.
|
|
19
|
+
* @returns {void}
|
|
20
|
+
*/
|
|
21
|
+
close(): void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @abstract
|
|
25
|
+
* @interface
|
|
26
|
+
* Base class for Command plugins
|
|
27
|
+
* Child classes MUST implement the action() method
|
|
28
|
+
*/
|
|
29
|
+
export class PluginCommand extends Base {
|
|
30
|
+
/**
|
|
31
|
+
* @abstract
|
|
32
|
+
* @description Executes the main execution method of the plugin.
|
|
33
|
+
* - It is executed by clicking a toolbar `command` button or calling an API.
|
|
34
|
+
* - MUST be overridden by child classes
|
|
35
|
+
* @param {HTMLElement} [target] - The plugin's toolbar button element
|
|
36
|
+
* @returns {void | Promise<void>}
|
|
37
|
+
*/
|
|
38
|
+
action(target?: HTMLElement): void | Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* @abstract
|
|
42
|
+
* @interface
|
|
43
|
+
* Base class for Dropdown plugins
|
|
44
|
+
* Child classes MUST implement the action() method
|
|
45
|
+
* Child classes MAY optionally implement on() and off() methods
|
|
46
|
+
*/
|
|
47
|
+
export class PluginDropdown extends Base {
|
|
48
|
+
/**
|
|
49
|
+
* @optional
|
|
50
|
+
* @description Executes the method that is called when a plugin's dropdown menu is opened.
|
|
51
|
+
* @param {HTMLElement} [target] - The dropdown target element
|
|
52
|
+
* @returns {void}
|
|
53
|
+
*/
|
|
54
|
+
on?(target?: HTMLElement): void;
|
|
55
|
+
/**
|
|
56
|
+
* @abstract
|
|
57
|
+
* @description Executes the main execution method of the plugin.
|
|
58
|
+
* - Called when an item in the `dropdown` menu is clicked.
|
|
59
|
+
* - MUST be overridden by child classes
|
|
60
|
+
* @param {HTMLElement} target - The clicked dropdown item element
|
|
61
|
+
* @returns {void | Promise<void>}
|
|
62
|
+
*/
|
|
63
|
+
action(target: HTMLElement): void | Promise<void>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @abstract
|
|
67
|
+
* @interface
|
|
68
|
+
* Base class for Dropdown-Free plugins
|
|
69
|
+
* These plugins handle their own event logic without automatic action() calls
|
|
70
|
+
* Typically used for complex UI components like ColorPicker or Table
|
|
71
|
+
* Child classes MAY optionally implement on() and off() methods
|
|
72
|
+
*/
|
|
73
|
+
export class PluginDropdownFree extends Base {
|
|
74
|
+
/**
|
|
75
|
+
* @optional
|
|
76
|
+
* @description Executes the method that is called when a plugin's dropdown menu is opened.
|
|
77
|
+
* @param {HTMLElement} [target] - The dropdown target element
|
|
78
|
+
* @returns {void}
|
|
79
|
+
*/
|
|
80
|
+
on?(target?: HTMLElement): void;
|
|
81
|
+
/**
|
|
82
|
+
* @optional
|
|
83
|
+
* @description Executes the method that is called when a plugin's dropdown menu is closed.
|
|
84
|
+
* @returns {void}
|
|
85
|
+
*/
|
|
86
|
+
off?(): void;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @abstract
|
|
90
|
+
* @interface
|
|
91
|
+
* Base class for Field plugins
|
|
92
|
+
* These plugins typically respond to input events in the wysiwyg area
|
|
93
|
+
*
|
|
94
|
+
* **Commonly used hooks:**
|
|
95
|
+
* - `onInput()` - Responds to input events in the editor (See: `mention` plugin)
|
|
96
|
+
* - Other event hooks can be used as needed (`onKeydown`, `onClick`, etc.)
|
|
97
|
+
*
|
|
98
|
+
* Child classes MAY optionally implement event hook methods
|
|
99
|
+
* @see {Mention} - Example implementation using onInput hook
|
|
100
|
+
*/
|
|
101
|
+
export class PluginField extends Base {}
|
|
102
|
+
export class PluginInput extends Base {
|
|
103
|
+
/**
|
|
104
|
+
* @optional
|
|
105
|
+
* @description Executes the event function of toolbar's input tag - `keydown`.
|
|
106
|
+
* @param {SunEditor.HookParams.ToolbarInputKeyDown} params - Input event information
|
|
107
|
+
* @returns {void}
|
|
108
|
+
*/
|
|
109
|
+
toolbarInputKeyDown?(params: SunEditor.HookParams.ToolbarInputKeyDown): void;
|
|
110
|
+
/**
|
|
111
|
+
* @optional
|
|
112
|
+
* @description Executes the event function of toolbar's input tag - `change`.
|
|
113
|
+
* @param {SunEditor.HookParams.ToolbarInputChange} params - Input event information
|
|
114
|
+
* @returns {void}
|
|
115
|
+
*/
|
|
116
|
+
toolbarInputChange?(params: SunEditor.HookParams.ToolbarInputChange): void;
|
|
117
|
+
}
|
|
118
|
+
export class PluginModal extends Base {
|
|
119
|
+
/**
|
|
120
|
+
* @abstract
|
|
121
|
+
* Opens the modal window (Plugin's public API called by toolbar/external code)
|
|
122
|
+
* @param {HTMLElement} [target] - The plugin's toolbar button element
|
|
123
|
+
* @returns {void}
|
|
124
|
+
*/
|
|
125
|
+
open(target?: HTMLElement): void;
|
|
126
|
+
}
|
|
127
|
+
export class PluginPopup extends Base {
|
|
128
|
+
/**
|
|
129
|
+
* @abstract
|
|
130
|
+
* Called when a popup is shown
|
|
131
|
+
* @returns {void}
|
|
132
|
+
*/
|
|
133
|
+
show(): void;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* @abstract
|
|
137
|
+
* Base class for all plugins - contains common properties
|
|
138
|
+
*/
|
|
139
|
+
declare class Base extends KernelInjector {
|
|
140
|
+
/** @type {string} - Plugin type (`browser`|`command`|`dropdown`|`field`|`input`|`modal`|`popup`) */
|
|
141
|
+
static type: string;
|
|
142
|
+
/** @type {string} - Unique plugin identifier */
|
|
143
|
+
static key: string;
|
|
144
|
+
/** @type {string} - CSS class name for the plugin button */
|
|
145
|
+
static className: string;
|
|
146
|
+
/**
|
|
147
|
+
* Plugin-specific options
|
|
148
|
+
* @type {{eventIndex?: number, isInputComponent?: boolean}}
|
|
149
|
+
* @property {number} [eventIndex=0] - Plugin event handler execution priority (higher = later)
|
|
150
|
+
* @property {boolean} [isInputComponent=false] - Allow keyboard input inside component (e.g., table cells), prevents auto-selection on arrow keys
|
|
151
|
+
*/
|
|
152
|
+
static options: {
|
|
153
|
+
eventIndex?: number;
|
|
154
|
+
isInputComponent?: boolean;
|
|
155
|
+
};
|
|
156
|
+
/** @type {string} */
|
|
157
|
+
title: string;
|
|
158
|
+
/** @type {string} */
|
|
159
|
+
icon: string;
|
|
160
|
+
/** @type {HTMLElement} */
|
|
161
|
+
beforeItem: HTMLElement;
|
|
162
|
+
/** @type {HTMLElement} */
|
|
163
|
+
afterItem: HTMLElement;
|
|
164
|
+
/** @type {HTMLElement} */
|
|
165
|
+
replaceButton: HTMLElement;
|
|
166
|
+
}
|
|
167
|
+
import KernelInjector from '../core/kernel/kernelInjector';
|
|
168
|
+
export {};
|
package/types/langs/_Lang.d.ts
CHANGED
package/types/langs/index.d.ts
CHANGED
|
@@ -38,8 +38,8 @@ import he from './he';
|
|
|
38
38
|
import hu from './hu';
|
|
39
39
|
import it from './it';
|
|
40
40
|
import ja from './ja';
|
|
41
|
-
import ko from './ko';
|
|
42
41
|
import km from './km';
|
|
42
|
+
import ko from './ko';
|
|
43
43
|
import lv from './lv';
|
|
44
44
|
import nl from './nl';
|
|
45
45
|
import pl from './pl';
|
|
@@ -51,4 +51,4 @@ import tr from './tr';
|
|
|
51
51
|
import uk from './uk';
|
|
52
52
|
import ur from './ur';
|
|
53
53
|
import zh_cn from './zh_cn';
|
|
54
|
-
export { ckb, cs, da, de, en, es, fa, fr, he, hu, it, ja,
|
|
54
|
+
export { ckb, cs, da, de, en, es, fa, fr, he, hu, it, ja, km, ko, lv, nl, pl, pt_br, ro, ru, se, tr, uk, ur, zh_cn };
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default Browser;
|
|
3
|
+
/**
|
|
4
|
+
* Browser file item structure
|
|
5
|
+
*/
|
|
6
|
+
export type BrowserFile = {
|
|
7
|
+
/**
|
|
8
|
+
* - Source url
|
|
9
|
+
*/
|
|
10
|
+
src?: string;
|
|
11
|
+
/**
|
|
12
|
+
* - File name | Folder name
|
|
13
|
+
*/
|
|
14
|
+
name?: string;
|
|
15
|
+
/**
|
|
16
|
+
* - Thumbnail url
|
|
17
|
+
*/
|
|
18
|
+
thumbnail?: string;
|
|
19
|
+
/**
|
|
20
|
+
* - Image alt
|
|
21
|
+
*/
|
|
22
|
+
alt?: string;
|
|
23
|
+
/**
|
|
24
|
+
* - Tag name list
|
|
25
|
+
*/
|
|
26
|
+
tag?: Array<string> | string;
|
|
27
|
+
/**
|
|
28
|
+
* - Type (image, video, audio, etc.)
|
|
29
|
+
*/
|
|
30
|
+
type?: string;
|
|
31
|
+
/**
|
|
32
|
+
* - Frame name (iframe, video, etc.)
|
|
33
|
+
*/
|
|
34
|
+
frame?: string;
|
|
35
|
+
/**
|
|
36
|
+
* - Whether this folder is the default selection.
|
|
37
|
+
*/
|
|
38
|
+
default?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* - Metadata
|
|
41
|
+
*/
|
|
42
|
+
meta?: {
|
|
43
|
+
[x: string]: any;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* - Internal: The folder's contents or an API URL (⚠️ DO NOT USE directly)
|
|
47
|
+
*/
|
|
48
|
+
_data?: BrowserFile | string;
|
|
49
|
+
};
|
|
50
|
+
export type BrowserParams = {
|
|
51
|
+
/**
|
|
52
|
+
* - File browser window title. Required. Can be overridden in browser.
|
|
53
|
+
*/
|
|
54
|
+
title: string;
|
|
55
|
+
/**
|
|
56
|
+
* - Class name of the file browser. Optional. Default: ''.
|
|
57
|
+
*/
|
|
58
|
+
className?: string;
|
|
59
|
+
/**
|
|
60
|
+
* - direct data without server calls
|
|
61
|
+
*/
|
|
62
|
+
data?:
|
|
63
|
+
| {
|
|
64
|
+
[x: string]: any;
|
|
65
|
+
}
|
|
66
|
+
| Array<any>;
|
|
67
|
+
/**
|
|
68
|
+
* - File server url. Required. Can be overridden in browser.
|
|
69
|
+
*/
|
|
70
|
+
url?: string;
|
|
71
|
+
/**
|
|
72
|
+
* - File server http header. Required. Can be overridden in browser.
|
|
73
|
+
*/
|
|
74
|
+
headers?: {
|
|
75
|
+
[x: string]: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* - Function that actions when an item is clicked. Required. Can be overridden in browser.
|
|
79
|
+
*/
|
|
80
|
+
selectorHandler: (target: Node) => void;
|
|
81
|
+
/**
|
|
82
|
+
* - Whether to use the search function. Optional. Default: `true`.
|
|
83
|
+
*/
|
|
84
|
+
useSearch?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* - File server search url. Optional. Can be overridden in browser.
|
|
87
|
+
*/
|
|
88
|
+
searchUrl?: string;
|
|
89
|
+
/**
|
|
90
|
+
* - File server search http header. Optional. Can be overridden in browser.
|
|
91
|
+
*/
|
|
92
|
+
searchUrlHeader?: {
|
|
93
|
+
[x: string]: string;
|
|
94
|
+
};
|
|
95
|
+
/**
|
|
96
|
+
* - Class name of list div. Required. Can be overridden in browser.
|
|
97
|
+
*/
|
|
98
|
+
listClass?: string;
|
|
99
|
+
/**
|
|
100
|
+
* - Function that defines the HTML of a file item. Required. Can be overridden in browser.
|
|
101
|
+
*/
|
|
102
|
+
drawItemHandler?: (item: BrowserFile) => string;
|
|
103
|
+
/**
|
|
104
|
+
* - `props` argument to `drawItemHandler` function. Optional. Can be overridden in browser.
|
|
105
|
+
*/
|
|
106
|
+
props?: Array<any>;
|
|
107
|
+
/**
|
|
108
|
+
* - Number of `div.se-file-item-column` to be created. Optional. Can be overridden in browser. Default: 4.
|
|
109
|
+
*/
|
|
110
|
+
columnSize?: number;
|
|
111
|
+
/**
|
|
112
|
+
* - Default thumbnail
|
|
113
|
+
*/
|
|
114
|
+
thumbnail?: (item: BrowserFile) => string;
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Browser file item structure
|
|
118
|
+
* @typedef {Object} BrowserFile
|
|
119
|
+
* @property {string} [src=""] - Source url
|
|
120
|
+
* @property {string} [name=""] - File name | Folder name
|
|
121
|
+
* @property {string} [thumbnail] - Thumbnail url
|
|
122
|
+
* @property {string} [alt] - Image alt
|
|
123
|
+
* @property {Array<string>|string} [tag] - Tag name list
|
|
124
|
+
* @property {string} [type] - Type (image, video, audio, etc.)
|
|
125
|
+
* @property {string} [frame] - Frame name (iframe, video, etc.)
|
|
126
|
+
* @property {boolean} [default] - Whether this folder is the default selection.
|
|
127
|
+
* @property {Object<string, *>} [meta] - Metadata
|
|
128
|
+
* @property {BrowserFile | string} [_data] - Internal: The folder's contents or an API URL (⚠️ DO NOT USE directly)
|
|
129
|
+
*/
|
|
130
|
+
/**
|
|
131
|
+
* @typedef BrowserParams
|
|
132
|
+
* @property {string} title - File browser window title. Required. Can be overridden in browser.
|
|
133
|
+
* @property {string} [className] - Class name of the file browser. Optional. Default: ''.
|
|
134
|
+
* @property {Object<string, *>|Array<*>} [data] - direct data without server calls
|
|
135
|
+
* @property {string} [url] - File server url. Required. Can be overridden in browser.
|
|
136
|
+
* @property {Object<string, string>} [headers] - File server http header. Required. Can be overridden in browser.
|
|
137
|
+
* @property {(target: Node) => void} selectorHandler - Function that actions when an item is clicked. Required. Can be overridden in browser.
|
|
138
|
+
* @property {boolean} [useSearch] - Whether to use the search function. Optional. Default: `true`.
|
|
139
|
+
* @property {string} [searchUrl] - File server search url. Optional. Can be overridden in browser.
|
|
140
|
+
* @property {Object<string, string>} [searchUrlHeader] - File server search http header. Optional. Can be overridden in browser.
|
|
141
|
+
* @property {string} [listClass] - Class name of list div. Required. Can be overridden in browser.
|
|
142
|
+
* @property {(item: BrowserFile) => string} [drawItemHandler] - Function that defines the HTML of a file item. Required. Can be overridden in browser.
|
|
143
|
+
* @property {Array<*>} [props] - `props` argument to `drawItemHandler` function. Optional. Can be overridden in browser.
|
|
144
|
+
* @property {number} [columnSize] - Number of `div.se-file-item-column` to be created. Optional. Can be overridden in browser. Default: 4.
|
|
145
|
+
* @property {((item: BrowserFile) => string)} [thumbnail] - Default thumbnail
|
|
146
|
+
*/
|
|
147
|
+
/**
|
|
148
|
+
* @class
|
|
149
|
+
* @description File browser plugin
|
|
150
|
+
*/
|
|
151
|
+
declare class Browser {
|
|
152
|
+
/**
|
|
153
|
+
* @constructor
|
|
154
|
+
* @param {*} host The instance object that called the constructor.
|
|
155
|
+
* @param {SunEditor.Deps} $ Kernel dependencies
|
|
156
|
+
* @param {BrowserParams} params Browser options
|
|
157
|
+
*/
|
|
158
|
+
constructor(host: any, $: SunEditor.Deps, params: BrowserParams);
|
|
159
|
+
useSearch: boolean;
|
|
160
|
+
kind: any;
|
|
161
|
+
host: any;
|
|
162
|
+
area: HTMLElement;
|
|
163
|
+
header: HTMLElement;
|
|
164
|
+
titleArea: HTMLElement;
|
|
165
|
+
tagArea: HTMLElement;
|
|
166
|
+
body: HTMLElement;
|
|
167
|
+
list: HTMLElement;
|
|
168
|
+
side: HTMLElement;
|
|
169
|
+
wrapper: HTMLElement;
|
|
170
|
+
title: string;
|
|
171
|
+
listClass: string;
|
|
172
|
+
directData:
|
|
173
|
+
| any[]
|
|
174
|
+
| {
|
|
175
|
+
[x: string]: any;
|
|
176
|
+
};
|
|
177
|
+
url: string;
|
|
178
|
+
urlHeader: {
|
|
179
|
+
[x: string]: string;
|
|
180
|
+
};
|
|
181
|
+
searchUrl: string;
|
|
182
|
+
searchUrlHeader: {
|
|
183
|
+
[x: string]: string;
|
|
184
|
+
};
|
|
185
|
+
drawItemHandler: any;
|
|
186
|
+
selectorHandler: (target: Node) => void;
|
|
187
|
+
columnSize: number;
|
|
188
|
+
folderDefaultPath: string;
|
|
189
|
+
closeArrow: any;
|
|
190
|
+
openArrow: any;
|
|
191
|
+
icon_folder: any;
|
|
192
|
+
icon_folder_item: any;
|
|
193
|
+
icon_item: any;
|
|
194
|
+
/** @type {Array<BrowserFile>} */
|
|
195
|
+
items: Array<BrowserFile>;
|
|
196
|
+
/** @type {Object<string, {name: string, meta: Object<string, *>}>} */
|
|
197
|
+
folders: {
|
|
198
|
+
[x: string]: {
|
|
199
|
+
name: string;
|
|
200
|
+
meta: {
|
|
201
|
+
[x: string]: any;
|
|
202
|
+
};
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
/** @type {Object<string, {key?: string, name?: string, children?: *}>} */
|
|
206
|
+
tree: {
|
|
207
|
+
[x: string]: {
|
|
208
|
+
key?: string;
|
|
209
|
+
name?: string;
|
|
210
|
+
children?: any;
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
/** @type {BrowserFile} */
|
|
214
|
+
data: BrowserFile;
|
|
215
|
+
selectedTags: any[];
|
|
216
|
+
keyword: string;
|
|
217
|
+
sideInner: HTMLElement;
|
|
218
|
+
apiManager: ApiManager;
|
|
219
|
+
sideOpenBtn: HTMLButtonElement;
|
|
220
|
+
/**
|
|
221
|
+
* @description Open a file browser plugin
|
|
222
|
+
* @param {Object} [params={}]
|
|
223
|
+
* @param {string} [params.listClass] - Class name of list div. If not, use `this.listClass`.
|
|
224
|
+
* @param {string} [params.title] - File browser window title. If not, use `this.title`.
|
|
225
|
+
* @param {string} [params.url] - File server url. If not, use `this.url`.
|
|
226
|
+
* @param {Object<string, string>} [params.urlHeader] - File server http header. If not, use `this.urlHeader`.
|
|
227
|
+
*/
|
|
228
|
+
open(params?: {
|
|
229
|
+
listClass?: string;
|
|
230
|
+
title?: string;
|
|
231
|
+
url?: string;
|
|
232
|
+
urlHeader?: {
|
|
233
|
+
[x: string]: string;
|
|
234
|
+
};
|
|
235
|
+
}): void;
|
|
236
|
+
/**
|
|
237
|
+
* @description Close a browser plugin
|
|
238
|
+
* - The plugin's `init` method is called.
|
|
239
|
+
*/
|
|
240
|
+
close(): void;
|
|
241
|
+
/**
|
|
242
|
+
* @description Search files
|
|
243
|
+
* @param {string} keyword - Search keyword
|
|
244
|
+
*/
|
|
245
|
+
search(keyword: string): void;
|
|
246
|
+
/**
|
|
247
|
+
* @description Filter items by tag
|
|
248
|
+
* @param {Array<BrowserFile>} items - Items to filter
|
|
249
|
+
* @returns {Array<BrowserFile>}
|
|
250
|
+
*/
|
|
251
|
+
tagfilter(items: Array<BrowserFile>): Array<BrowserFile>;
|
|
252
|
+
/**
|
|
253
|
+
* @description Show file browser loading box
|
|
254
|
+
*/
|
|
255
|
+
showBrowserLoading(): void;
|
|
256
|
+
/**
|
|
257
|
+
* @description Close file browser loading box
|
|
258
|
+
*/
|
|
259
|
+
closeBrowserLoading(): void;
|
|
260
|
+
#private;
|
|
261
|
+
}
|
|
262
|
+
import ApiManager from '../manager/ApiManager';
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default ColorPicker;
|
|
3
|
+
export type ColorPickerParams = {
|
|
4
|
+
/**
|
|
5
|
+
* The form element to attach the color picker.
|
|
6
|
+
*/
|
|
7
|
+
form: HTMLElement;
|
|
8
|
+
/**
|
|
9
|
+
* color list
|
|
10
|
+
*/
|
|
11
|
+
colorList?: Array<
|
|
12
|
+
| string
|
|
13
|
+
| {
|
|
14
|
+
value: string;
|
|
15
|
+
name: string;
|
|
16
|
+
}
|
|
17
|
+
>;
|
|
18
|
+
/**
|
|
19
|
+
* Number of colors to be displayed in one line
|
|
20
|
+
*/
|
|
21
|
+
splitNum?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Default color
|
|
24
|
+
*/
|
|
25
|
+
defaultColor?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Disable HEX input
|
|
28
|
+
*/
|
|
29
|
+
disableHEXInput?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Disable remove button
|
|
32
|
+
*/
|
|
33
|
+
disableRemove?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* hue slider options
|
|
36
|
+
*/
|
|
37
|
+
hueSliderOptions?: import('./HueSlider').HueSliderParams;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* @typedef {Object} ColorPickerParams
|
|
41
|
+
* @property {HTMLElement} form The form element to attach the color picker.
|
|
42
|
+
* @property {Array<string|{value: string, name: string}>} [colorList=[]] color list
|
|
43
|
+
* @property {number} [splitNum=0] Number of colors to be displayed in one line
|
|
44
|
+
* @property {string} [defaultColor] Default color
|
|
45
|
+
* @property {boolean} [disableHEXInput=false] Disable HEX input
|
|
46
|
+
* @property {boolean} [disableRemove=false] Disable remove button
|
|
47
|
+
* @property {import('./HueSlider').HueSliderParams} [hueSliderOptions] hue slider options
|
|
48
|
+
*/
|
|
49
|
+
/**
|
|
50
|
+
* @class
|
|
51
|
+
* @description Create a color picker element and register for related events. (`this.target`)
|
|
52
|
+
* - When calling the color selection, `submit`, and `remove` buttons, the `action` method of the instance is called with the `color` value as an argument.
|
|
53
|
+
*/
|
|
54
|
+
declare class ColorPicker {
|
|
55
|
+
/**
|
|
56
|
+
* @constructor
|
|
57
|
+
* @param {*} host The instance object that called the constructor.
|
|
58
|
+
* @param {SunEditor.Deps} $ Kernel dependencies
|
|
59
|
+
* @param {string} styles style property (`"color"`, `"backgroundColor"`..)
|
|
60
|
+
* @param {ColorPickerParams} params Color picker options
|
|
61
|
+
*/
|
|
62
|
+
constructor(host: any, $: SunEditor.Deps, styles: string, params: ColorPickerParams);
|
|
63
|
+
kind: any;
|
|
64
|
+
host: any;
|
|
65
|
+
form: HTMLElement;
|
|
66
|
+
target: HTMLElement;
|
|
67
|
+
targetButton: Node;
|
|
68
|
+
inputElement: HTMLInputElement;
|
|
69
|
+
styleProperties: string;
|
|
70
|
+
splitNum: number;
|
|
71
|
+
defaultColor: string;
|
|
72
|
+
hueSliderOptions: import('./HueSlider').HueSliderParams;
|
|
73
|
+
currentColor: string;
|
|
74
|
+
colorList: any[] | NodeListOf<Element>;
|
|
75
|
+
hueSlider: HueSlider;
|
|
76
|
+
checkedIcon: HTMLElement;
|
|
77
|
+
/**
|
|
78
|
+
* @description Displays or resets the currently selected color at color list.
|
|
79
|
+
* @param {Node|string} nodeOrColor Current Selected node
|
|
80
|
+
* @param {Node} target target
|
|
81
|
+
* @param {?(current: Node) => boolean} [stopCondition] - A function used to stop traversing parent nodes while finding the color.
|
|
82
|
+
* - When this function returns `true`, the traversal ends at that node.
|
|
83
|
+
* - e.g., `(node) => this.format.isLine(node)` stops at line-level elements like <p>, <div>.
|
|
84
|
+
*/
|
|
85
|
+
init(nodeOrColor: Node | string, target: Node, stopCondition?: ((current: Node) => boolean) | null): void;
|
|
86
|
+
/**
|
|
87
|
+
* @description Store color values
|
|
88
|
+
* @param {string} hexColorStr Hax color value
|
|
89
|
+
*/
|
|
90
|
+
setHexColor(hexColorStr: string): void;
|
|
91
|
+
/**
|
|
92
|
+
* @description Close hue slider
|
|
93
|
+
*/
|
|
94
|
+
hueSliderClose(): void;
|
|
95
|
+
hueSliderAction(color: SunEditor.Module.HueSlider.Color): void;
|
|
96
|
+
hueSliderCancelAction(): void;
|
|
97
|
+
#private;
|
|
98
|
+
}
|
|
99
|
+
import HueSlider from './HueSlider';
|