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,62 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default Modal;
|
|
3
|
+
/**
|
|
4
|
+
* @class
|
|
5
|
+
* @description Modal window module
|
|
6
|
+
*/
|
|
7
|
+
declare class Modal {
|
|
8
|
+
/**
|
|
9
|
+
* @description Create a file input tag in the modal window.
|
|
10
|
+
* @param {{icons: SunEditor.Deps['icons'], lang: SunEditor.Deps['lang']}} param0 - icons and language object
|
|
11
|
+
* @param {{acceptedFormats?: string, allowMultiple?: boolean}} param1 - options
|
|
12
|
+
* - acceptedFormats: `"image/*, video/*, audio/*"`, etc.
|
|
13
|
+
* - allowMultiple: `true` or `false`
|
|
14
|
+
* @returns {string} HTML string
|
|
15
|
+
*/
|
|
16
|
+
static CreateFileInput(
|
|
17
|
+
{
|
|
18
|
+
icons,
|
|
19
|
+
lang,
|
|
20
|
+
}: {
|
|
21
|
+
icons: SunEditor.Deps['icons'];
|
|
22
|
+
lang: SunEditor.Deps['lang'];
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
acceptedFormats,
|
|
26
|
+
allowMultiple,
|
|
27
|
+
}: {
|
|
28
|
+
acceptedFormats?: string;
|
|
29
|
+
allowMultiple?: boolean;
|
|
30
|
+
},
|
|
31
|
+
): string;
|
|
32
|
+
/**
|
|
33
|
+
* @description A function called when the contents of `input` have changed and you want to adjust the style.
|
|
34
|
+
* @param {Element} wrapper - Modal file input wrapper(`.se-flex-input-wrapper`)
|
|
35
|
+
* @param {FileList|File[]} files - FileList object
|
|
36
|
+
*/
|
|
37
|
+
static OnChangeFile(wrapper: Element, files: FileList | File[]): void;
|
|
38
|
+
/**
|
|
39
|
+
* @description Modal window module
|
|
40
|
+
* @param {*} inst The instance object that called the constructor.
|
|
41
|
+
* @param {SunEditor.Deps} $ Kernel dependencies
|
|
42
|
+
* @param {Element} element Modal element
|
|
43
|
+
*/
|
|
44
|
+
constructor(inst: any, $: SunEditor.Deps, element: Element);
|
|
45
|
+
inst: any;
|
|
46
|
+
kind: any;
|
|
47
|
+
form: HTMLElement;
|
|
48
|
+
isUpdate: boolean;
|
|
49
|
+
/** @type {HTMLInputElement} */
|
|
50
|
+
focusElement: HTMLInputElement;
|
|
51
|
+
/**
|
|
52
|
+
* @description Open a modal plugin
|
|
53
|
+
* - The plugin's `init` method is called.
|
|
54
|
+
*/
|
|
55
|
+
open(): void;
|
|
56
|
+
/**
|
|
57
|
+
* @description Close a modal plugin
|
|
58
|
+
* - The plugin's `init` and `modalOff` method is called.
|
|
59
|
+
*/
|
|
60
|
+
close(): void;
|
|
61
|
+
#private;
|
|
62
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export { default as Browser } from './Browser.js';
|
|
3
|
+
export { default as ColorPicker } from './ColorPicker.js';
|
|
4
|
+
export { default as Controller } from './Controller.js';
|
|
5
|
+
export { default as Figure } from './Figure.js';
|
|
6
|
+
export { default as HueSlider } from './HueSlider.js';
|
|
7
|
+
export { default as Modal } from './Modal.js';
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default ApiManager;
|
|
3
|
+
export type ApiManagerParams = {
|
|
4
|
+
/**
|
|
5
|
+
* - HTTP method (GET, POST, PUT, DELETE...)
|
|
6
|
+
*/
|
|
7
|
+
method?: string;
|
|
8
|
+
/**
|
|
9
|
+
* - API's URL
|
|
10
|
+
*/
|
|
11
|
+
url?: string;
|
|
12
|
+
/**
|
|
13
|
+
* - HTTP headers
|
|
14
|
+
*/
|
|
15
|
+
headers?: {
|
|
16
|
+
[x: string]: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* - API data
|
|
20
|
+
*/
|
|
21
|
+
data?: any;
|
|
22
|
+
/**
|
|
23
|
+
* - API success callback
|
|
24
|
+
*/
|
|
25
|
+
callBack?: (xmlHttp: XMLHttpRequest) => boolean;
|
|
26
|
+
/**
|
|
27
|
+
* - API fail callback
|
|
28
|
+
*/
|
|
29
|
+
errorCallBack?: (res: any, xmlHttp: XMLHttpRequest) => string;
|
|
30
|
+
/**
|
|
31
|
+
* - XMLHttpRequest.responseType
|
|
32
|
+
*/
|
|
33
|
+
responseType?: XMLHttpRequestResponseType;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* @typedef ApiManagerParams
|
|
37
|
+
* @property {string} [method] - HTTP method (GET, POST, PUT, DELETE...)
|
|
38
|
+
* @property {string} [url] - API's URL
|
|
39
|
+
* @property {Object<string, string>} [headers] - HTTP headers
|
|
40
|
+
* @property {*} [data] - API data
|
|
41
|
+
* @property {(xmlHttp: XMLHttpRequest) => boolean} [callBack] - API success callback
|
|
42
|
+
* @property {(res: *, xmlHttp: XMLHttpRequest) => string} [errorCallBack] - API fail callback
|
|
43
|
+
* @property {XMLHttpRequestResponseType} [responseType] - XMLHttpRequest.responseType
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* @class
|
|
47
|
+
* @description API Manager
|
|
48
|
+
*/
|
|
49
|
+
declare class ApiManager {
|
|
50
|
+
/**
|
|
51
|
+
* @constructor
|
|
52
|
+
* @param {*} inst The instance object that called the constructor.
|
|
53
|
+
* @param {SunEditor.Deps} $ Kernel dependencies
|
|
54
|
+
* @param {ApiManagerParams} [params] API options
|
|
55
|
+
*/
|
|
56
|
+
constructor(inst: any, $: SunEditor.Deps, params?: ApiManagerParams);
|
|
57
|
+
/**
|
|
58
|
+
* @description Caller instance key name
|
|
59
|
+
* @type {string}
|
|
60
|
+
*/
|
|
61
|
+
kind: string;
|
|
62
|
+
method: string;
|
|
63
|
+
url: string;
|
|
64
|
+
headers: {
|
|
65
|
+
[x: string]: string;
|
|
66
|
+
};
|
|
67
|
+
data: any;
|
|
68
|
+
callBack: (xmlHttp: XMLHttpRequest) => boolean;
|
|
69
|
+
errorCallBack: (res: any, xmlHttp: XMLHttpRequest) => string;
|
|
70
|
+
responseType: XMLHttpRequestResponseType;
|
|
71
|
+
/**
|
|
72
|
+
* @description Call API
|
|
73
|
+
* @param {ApiManagerParams} params
|
|
74
|
+
*/
|
|
75
|
+
call({ method, url, headers, data, callBack, errorCallBack, responseType }: ApiManagerParams): void;
|
|
76
|
+
/**
|
|
77
|
+
* @description Call Async API
|
|
78
|
+
* @param {Object} params
|
|
79
|
+
* @param {string} [params.method] - HTTP method (GET, POST, PUT, DELETE...)
|
|
80
|
+
* @param {string} [params.url] - API's URL
|
|
81
|
+
* @param {Object<string, string>} [params.headers] - HTTP headers
|
|
82
|
+
* @param {*} [params.data] - API data
|
|
83
|
+
* @param {XMLHttpRequestResponseType} [params.responseType] - XMLHttpRequest.responseType
|
|
84
|
+
* @returns {Promise<XMLHttpRequest>}
|
|
85
|
+
*/
|
|
86
|
+
asyncCall({
|
|
87
|
+
method,
|
|
88
|
+
url,
|
|
89
|
+
headers,
|
|
90
|
+
data,
|
|
91
|
+
responseType,
|
|
92
|
+
}: {
|
|
93
|
+
method?: string;
|
|
94
|
+
url?: string;
|
|
95
|
+
headers?: {
|
|
96
|
+
[x: string]: string;
|
|
97
|
+
};
|
|
98
|
+
data?: any;
|
|
99
|
+
responseType?: XMLHttpRequestResponseType;
|
|
100
|
+
}): Promise<XMLHttpRequest>;
|
|
101
|
+
/**
|
|
102
|
+
* @description Cancel API (xhr.abort())
|
|
103
|
+
*/
|
|
104
|
+
cancel(): void;
|
|
105
|
+
#private;
|
|
106
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default FileManager;
|
|
3
|
+
export type FileManagerParams = {
|
|
4
|
+
/**
|
|
5
|
+
* The query selector used to find file elements in the editor
|
|
6
|
+
*/
|
|
7
|
+
query: string;
|
|
8
|
+
/**
|
|
9
|
+
* Event name for file load (e.g., `'onImageLoad'`)
|
|
10
|
+
*/
|
|
11
|
+
loadEventName: string;
|
|
12
|
+
/**
|
|
13
|
+
* Event name for file action (e.g., `'onImageAction'`)
|
|
14
|
+
*/
|
|
15
|
+
actionEventName: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @typedef {Object} FileManagerParams
|
|
19
|
+
* @property {string} query The query selector used to find file elements in the editor
|
|
20
|
+
* @property {string} loadEventName Event name for file load (e.g., `'onImageLoad'`)
|
|
21
|
+
* @property {string} actionEventName Event name for file action (e.g., `'onImageAction'`)
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* @class
|
|
25
|
+
* @description This module manages the file information of the editor.
|
|
26
|
+
*/
|
|
27
|
+
declare class FileManager {
|
|
28
|
+
/**
|
|
29
|
+
* @constructor
|
|
30
|
+
* @param {*} inst The instance object that called the constructor.
|
|
31
|
+
* @param {SunEditor.Deps} $ Kernel dependencies
|
|
32
|
+
* @param {FileManagerParams} params FileManager options
|
|
33
|
+
*/
|
|
34
|
+
constructor(inst: any, $: SunEditor.Deps, params: FileManagerParams);
|
|
35
|
+
kind: any;
|
|
36
|
+
inst: any;
|
|
37
|
+
query: string;
|
|
38
|
+
loadEventName: string;
|
|
39
|
+
actionEventName: string;
|
|
40
|
+
infoList: any[];
|
|
41
|
+
infoIndex: number;
|
|
42
|
+
uploadFileLength: number;
|
|
43
|
+
__updateTags: any[];
|
|
44
|
+
apiManager: ApiManager;
|
|
45
|
+
/**
|
|
46
|
+
* @description Upload the file to the server.
|
|
47
|
+
* @param {string} uploadUrl Upload server url
|
|
48
|
+
* @param {?Object<string, string>} uploadHeader Request header
|
|
49
|
+
* @param {FileList|File[]|{formData: FormData, size: number}} data FormData in body or Files array
|
|
50
|
+
* @param {?(xmlHttp: XMLHttpRequest) => boolean} [callBack] Success call back function
|
|
51
|
+
* @param {?(res: *, xmlHttp: XMLHttpRequest) => string} [errorCallBack] Error call back function
|
|
52
|
+
*/
|
|
53
|
+
upload(
|
|
54
|
+
uploadUrl: string,
|
|
55
|
+
uploadHeader: {
|
|
56
|
+
[x: string]: string;
|
|
57
|
+
} | null,
|
|
58
|
+
data:
|
|
59
|
+
| FileList
|
|
60
|
+
| File[]
|
|
61
|
+
| {
|
|
62
|
+
formData: FormData;
|
|
63
|
+
size: number;
|
|
64
|
+
},
|
|
65
|
+
callBack?: ((xmlHttp: XMLHttpRequest) => boolean) | null,
|
|
66
|
+
errorCallBack?: ((res: any, xmlHttp: XMLHttpRequest) => string) | null,
|
|
67
|
+
): void;
|
|
68
|
+
/**
|
|
69
|
+
* @description Upload the file to the server.
|
|
70
|
+
* @param {string} uploadUrl Upload server url
|
|
71
|
+
* @param {?Object<string, string>} uploadHeader Request header
|
|
72
|
+
* @param {FileList|File[]|{formData: FormData, size: number}} data FormData in body or Files array
|
|
73
|
+
* @returns {Promise<XMLHttpRequest>}
|
|
74
|
+
*/
|
|
75
|
+
asyncUpload(
|
|
76
|
+
uploadUrl: string,
|
|
77
|
+
uploadHeader: {
|
|
78
|
+
[x: string]: string;
|
|
79
|
+
} | null,
|
|
80
|
+
data:
|
|
81
|
+
| FileList
|
|
82
|
+
| File[]
|
|
83
|
+
| {
|
|
84
|
+
formData: FormData;
|
|
85
|
+
size: number;
|
|
86
|
+
},
|
|
87
|
+
): Promise<XMLHttpRequest>;
|
|
88
|
+
/**
|
|
89
|
+
* @description Set the file information to the element.
|
|
90
|
+
* @param {Node} element File information element
|
|
91
|
+
* @param {Object} params
|
|
92
|
+
* @param {string} params.name File name
|
|
93
|
+
* @param {number} params.size File size
|
|
94
|
+
* @returns
|
|
95
|
+
*/
|
|
96
|
+
setFileData(
|
|
97
|
+
element: Node,
|
|
98
|
+
{
|
|
99
|
+
name,
|
|
100
|
+
size,
|
|
101
|
+
}: {
|
|
102
|
+
name: string;
|
|
103
|
+
size: number;
|
|
104
|
+
},
|
|
105
|
+
): void;
|
|
106
|
+
/**
|
|
107
|
+
* @description Gets the sum of the sizes of the currently saved files.
|
|
108
|
+
* @returns {number} Size
|
|
109
|
+
*/
|
|
110
|
+
getSize(): number;
|
|
111
|
+
/**
|
|
112
|
+
* @internal
|
|
113
|
+
* @description Checke the file's information and modify the tag that does not fit the format.
|
|
114
|
+
* @param {boolean} loaded Whether the editor is loaded
|
|
115
|
+
*/
|
|
116
|
+
_checkInfo(loaded: boolean): void;
|
|
117
|
+
/**
|
|
118
|
+
* @internal
|
|
119
|
+
* @description Reset info object and `infoList = []`, `infoIndex = 0`
|
|
120
|
+
*/
|
|
121
|
+
_resetInfo(): void;
|
|
122
|
+
#private;
|
|
123
|
+
}
|
|
124
|
+
import ApiManager from './ApiManager';
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default ModalAnchorEditor;
|
|
3
|
+
export type ModalAnchorEditorParams = {
|
|
4
|
+
/**
|
|
5
|
+
* - Modal title display.
|
|
6
|
+
*/
|
|
7
|
+
title?: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* - Create Text to display input.
|
|
10
|
+
*/
|
|
11
|
+
textToDisplay?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* - Default checked value of the "Open in new window" checkbox.
|
|
14
|
+
*/
|
|
15
|
+
openNewWindow?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* - If `true`, disables the automatic prefixing of the host URL to the value of the link.
|
|
18
|
+
*/
|
|
19
|
+
noAutoPrefix?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* - The `rel` attribute list of anchor tag.
|
|
22
|
+
*/
|
|
23
|
+
relList?: Array<string>;
|
|
24
|
+
/**
|
|
25
|
+
* - Default `rel` attributes of anchor tag.
|
|
26
|
+
*/
|
|
27
|
+
defaultRel?: {
|
|
28
|
+
default?: string;
|
|
29
|
+
check_new_window?: string;
|
|
30
|
+
check_bookmark?: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* - File upload URL.
|
|
34
|
+
*/
|
|
35
|
+
uploadUrl?: string;
|
|
36
|
+
/**
|
|
37
|
+
* - File upload headers.
|
|
38
|
+
*/
|
|
39
|
+
uploadHeaders?: {
|
|
40
|
+
[x: string]: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* - File upload size limit.
|
|
44
|
+
*/
|
|
45
|
+
uploadSizeLimit?: number;
|
|
46
|
+
/**
|
|
47
|
+
* - File upload single size limit.
|
|
48
|
+
*/
|
|
49
|
+
uploadSingleSizeLimit?: number;
|
|
50
|
+
/**
|
|
51
|
+
* - File upload accepted formats.
|
|
52
|
+
*/
|
|
53
|
+
acceptedFormats?: string;
|
|
54
|
+
/**
|
|
55
|
+
* - If `true`, enables file upload.
|
|
56
|
+
*/
|
|
57
|
+
enableFileUpload?: boolean;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* @typedef {Object} ModalAnchorEditorParams
|
|
61
|
+
* @property {boolean} [title=false] - Modal title display.
|
|
62
|
+
* @property {boolean} [textToDisplay=''] - Create Text to display input.
|
|
63
|
+
* @property {boolean} [openNewWindow=false] - Default checked value of the "Open in new window" checkbox.
|
|
64
|
+
* @property {boolean} [noAutoPrefix=false] - If `true`, disables the automatic prefixing of the host URL to the value of the link.
|
|
65
|
+
* @property {Array<string>} [relList=[]] - The `rel` attribute list of anchor tag.
|
|
66
|
+
* @property {{default?: string, check_new_window?: string, check_bookmark?: string}} [defaultRel={}] - Default `rel` attributes of anchor tag.
|
|
67
|
+
* @property {string} [uploadUrl] - File upload URL.
|
|
68
|
+
* @property {Object<string, string>} [uploadHeaders] - File upload headers.
|
|
69
|
+
* @property {number} [uploadSizeLimit] - File upload size limit.
|
|
70
|
+
* @property {number} [uploadSingleSizeLimit] - File upload single size limit.
|
|
71
|
+
* @property {string} [acceptedFormats] - File upload accepted formats.
|
|
72
|
+
* @property {boolean} [enableFileUpload] - If `true`, enables file upload.
|
|
73
|
+
*/
|
|
74
|
+
/**
|
|
75
|
+
* @class
|
|
76
|
+
* @description Modal form Anchor tag editor
|
|
77
|
+
* - Use it by inserting it into Modal in a plugin that uses Modal.
|
|
78
|
+
*/
|
|
79
|
+
declare class ModalAnchorEditor {
|
|
80
|
+
/**
|
|
81
|
+
* @constructor
|
|
82
|
+
* @param {SunEditor.Deps} $ Kernel dependencies
|
|
83
|
+
* @param {HTMLElement} modalForm Modal <form>
|
|
84
|
+
* @param {ModalAnchorEditorParams} params ModalAnchorEditor options
|
|
85
|
+
*/
|
|
86
|
+
constructor($: SunEditor.Deps, modalForm: HTMLElement, params: ModalAnchorEditorParams);
|
|
87
|
+
openNewWindow: boolean;
|
|
88
|
+
relList: string[];
|
|
89
|
+
defaultRel: {
|
|
90
|
+
default?: string;
|
|
91
|
+
check_new_window?: string;
|
|
92
|
+
check_bookmark?: string;
|
|
93
|
+
};
|
|
94
|
+
noAutoPrefix: boolean;
|
|
95
|
+
uploadUrl: string;
|
|
96
|
+
uploadHeaders: {
|
|
97
|
+
[x: string]: string;
|
|
98
|
+
};
|
|
99
|
+
uploadSizeLimit: number;
|
|
100
|
+
uploadSingleSizeLimit: number;
|
|
101
|
+
input: HTMLElement;
|
|
102
|
+
fileManager: FileManager;
|
|
103
|
+
host: string;
|
|
104
|
+
/** @type {HTMLInputElement} */
|
|
105
|
+
urlInput: HTMLInputElement;
|
|
106
|
+
/** @type {HTMLInputElement} */
|
|
107
|
+
displayInput: HTMLInputElement;
|
|
108
|
+
/** @type {HTMLInputElement} */
|
|
109
|
+
titleInput: HTMLInputElement;
|
|
110
|
+
/** @type {HTMLInputElement} */
|
|
111
|
+
newWindowCheck: HTMLInputElement;
|
|
112
|
+
/** @type {HTMLInputElement} */
|
|
113
|
+
downloadCheck: HTMLInputElement;
|
|
114
|
+
/** @type {HTMLElement} */
|
|
115
|
+
download: HTMLElement;
|
|
116
|
+
/** @type {HTMLElement} */
|
|
117
|
+
preview: HTMLElement;
|
|
118
|
+
/** @type {HTMLElement} */
|
|
119
|
+
bookmark: HTMLElement;
|
|
120
|
+
/** @type {HTMLButtonElement} */
|
|
121
|
+
bookmarkButton: HTMLButtonElement;
|
|
122
|
+
currentRel: any[];
|
|
123
|
+
currentTarget: HTMLAnchorElement;
|
|
124
|
+
linkValue: string;
|
|
125
|
+
/** @type {HTMLButtonElement} */
|
|
126
|
+
relButton: HTMLButtonElement;
|
|
127
|
+
/** @type {HTMLElement} */
|
|
128
|
+
relPreview: HTMLElement;
|
|
129
|
+
/**
|
|
130
|
+
* @description Initialize.
|
|
131
|
+
* - Sets the current anchor element to be edited.
|
|
132
|
+
* @param {Node} element Modal target element
|
|
133
|
+
*/
|
|
134
|
+
set(element: Node): void;
|
|
135
|
+
/**
|
|
136
|
+
* @description Opens the anchor editor modal and populates it with data.
|
|
137
|
+
* @param {boolean} isUpdate - Indicates whether an existing anchor is being updated (`true`) or a new one is being created (`false`).
|
|
138
|
+
*/
|
|
139
|
+
on(isUpdate: boolean): void;
|
|
140
|
+
/**
|
|
141
|
+
* @description Creates an anchor (`<a>`) element with the specified attributes.
|
|
142
|
+
* @param {boolean} notText - If `true`, the anchor will not contain text content.
|
|
143
|
+
* @returns {HTMLElement|null} - The newly created anchor element, or `null` if the URL is empty.
|
|
144
|
+
*/
|
|
145
|
+
create(notText: boolean): HTMLElement | null;
|
|
146
|
+
/**
|
|
147
|
+
* @description Resets the ModalAnchorEditor to its initial state.
|
|
148
|
+
*/
|
|
149
|
+
init(): void;
|
|
150
|
+
#private;
|
|
151
|
+
}
|
|
152
|
+
import FileManager from '../manager/FileManager';
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
2
|
+
export default SelectMenu;
|
|
3
|
+
export type SelectMenuParams = {
|
|
4
|
+
/**
|
|
5
|
+
* Position of the select menu, specified as `"[left|right]-[middle|top|bottom]"` or `"[top|bottom]-[center|left|right]"`
|
|
6
|
+
*/
|
|
7
|
+
position: string;
|
|
8
|
+
/**
|
|
9
|
+
* Flag to determine if the checklist is enabled (`true` or `false`)
|
|
10
|
+
*/
|
|
11
|
+
checkList?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Optional text direction: `"rtl"` for right-to-left, `"ltr"` for left-to-right
|
|
14
|
+
*/
|
|
15
|
+
dir?: 'rtl' | 'ltr';
|
|
16
|
+
/**
|
|
17
|
+
* Optional split number for horizontal positioning; defines how many items per row
|
|
18
|
+
*/
|
|
19
|
+
splitNum?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Optional method to call when the menu is opened
|
|
22
|
+
*/
|
|
23
|
+
openMethod?: () => void;
|
|
24
|
+
/**
|
|
25
|
+
* Optional method to call when the menu is closed
|
|
26
|
+
*/
|
|
27
|
+
closeMethod?: () => void;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @typedef {Object} SelectMenuParams
|
|
31
|
+
* @property {string} position Position of the select menu, specified as `"[left|right]-[middle|top|bottom]"` or `"[top|bottom]-[center|left|right]"`
|
|
32
|
+
* @property {boolean} [checkList=false] Flag to determine if the checklist is enabled (`true` or `false`)
|
|
33
|
+
* @property {"rtl" | "ltr"} [dir="ltr"] Optional text direction: `"rtl"` for right-to-left, `"ltr"` for left-to-right
|
|
34
|
+
* @property {number} [splitNum=0] Optional split number for horizontal positioning; defines how many items per row
|
|
35
|
+
* @property {() => void} [openMethod] Optional method to call when the menu is opened
|
|
36
|
+
* @property {() => void} [closeMethod] Optional method to call when the menu is closed
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* @class
|
|
40
|
+
* @description Creates a select menu
|
|
41
|
+
*/
|
|
42
|
+
declare class SelectMenu {
|
|
43
|
+
/**
|
|
44
|
+
* @constructor
|
|
45
|
+
* @param {SunEditor.Deps} $ Kernel dependencies
|
|
46
|
+
* @param {SelectMenuParams} params SelectMenu options
|
|
47
|
+
*/
|
|
48
|
+
constructor($: SunEditor.Deps, params: SelectMenuParams);
|
|
49
|
+
form: HTMLElement;
|
|
50
|
+
items: any[];
|
|
51
|
+
/** @type {HTMLLIElement[]} */
|
|
52
|
+
menus: HTMLLIElement[];
|
|
53
|
+
menuLen: number;
|
|
54
|
+
index: number;
|
|
55
|
+
item: any;
|
|
56
|
+
isOpen: boolean;
|
|
57
|
+
checkList: boolean;
|
|
58
|
+
position: string;
|
|
59
|
+
subPosition: string;
|
|
60
|
+
splitNum: number;
|
|
61
|
+
horizontal: boolean;
|
|
62
|
+
openMethod: () => void;
|
|
63
|
+
closeMethod: () => void;
|
|
64
|
+
/**
|
|
65
|
+
* @description Creates the select menu items.
|
|
66
|
+
* @param {Array<string>|SunEditor.NodeCollection} items - Command list of selectable items.
|
|
67
|
+
* @param {Array<string>|SunEditor.NodeCollection} [menus] - Optional list of menu display elements; defaults to `items`.
|
|
68
|
+
*/
|
|
69
|
+
create(items: Array<string> | SunEditor.NodeCollection, menus?: Array<string> | SunEditor.NodeCollection): void;
|
|
70
|
+
/**
|
|
71
|
+
* @description Initializes the select menu and attaches it to a reference element.
|
|
72
|
+
* @param {Node} referElement - The element that triggers the select menu.
|
|
73
|
+
* @param {(command: string) => void} selectMethod - The function to execute when an item is selected.
|
|
74
|
+
* @param {{class?: string, style?: string}} [attr={}] - Additional attributes for the select menu container.
|
|
75
|
+
*/
|
|
76
|
+
on(
|
|
77
|
+
referElement: Node,
|
|
78
|
+
selectMethod: (command: string) => void,
|
|
79
|
+
attr?: {
|
|
80
|
+
class?: string;
|
|
81
|
+
style?: string;
|
|
82
|
+
},
|
|
83
|
+
): void;
|
|
84
|
+
/**
|
|
85
|
+
* @description Select menu open
|
|
86
|
+
* @param {?string} [position] `"[left|right]-[middle|top|bottom] | [top|bottom]-[center|left|right]"`
|
|
87
|
+
* @param {?string} [onItemQuerySelector] The querySelector string of the menu to be activated
|
|
88
|
+
*/
|
|
89
|
+
open(position?: string | null, onItemQuerySelector?: string | null): void;
|
|
90
|
+
/**
|
|
91
|
+
* @description Select menu close
|
|
92
|
+
*/
|
|
93
|
+
close(): void;
|
|
94
|
+
/**
|
|
95
|
+
* @description Get the index of the selected item
|
|
96
|
+
* @param {number} index Item index
|
|
97
|
+
* @returns
|
|
98
|
+
*/
|
|
99
|
+
getItem(index: number): any;
|
|
100
|
+
/**
|
|
101
|
+
* @description Set the index of the selected item
|
|
102
|
+
* @param {number} index Item index
|
|
103
|
+
*/
|
|
104
|
+
setItem(index: number): void;
|
|
105
|
+
_onItem: Element;
|
|
106
|
+
#private;
|
|
107
|
+
}
|
|
@@ -1,55 +1,47 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default AudioGallery;
|
|
2
|
-
export type
|
|
3
|
+
export type AudioGalleryPluginOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* - Direct data without server calls
|
|
6
|
+
*/
|
|
7
|
+
data?: Array<SunEditor.Module.Browser.File>;
|
|
8
|
+
/**
|
|
9
|
+
* - Server request URL
|
|
10
|
+
*/
|
|
11
|
+
url?: string;
|
|
12
|
+
/**
|
|
13
|
+
* - Server request headers
|
|
14
|
+
*/
|
|
15
|
+
headers?: {
|
|
16
|
+
[x: string]: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* - Default thumbnail
|
|
20
|
+
*/
|
|
21
|
+
thumbnail?: string | ((item: SunEditor.Module.Browser.File) => string);
|
|
22
|
+
};
|
|
3
23
|
/**
|
|
4
|
-
* @typedef {
|
|
24
|
+
* @typedef {Object} AudioGalleryPluginOptions
|
|
25
|
+
* @property {Array<SunEditor.Module.Browser.File>} [data] - Direct data without server calls
|
|
26
|
+
* @property {string} [url] - Server request URL
|
|
27
|
+
* @property {Object<string, string>} [headers] - Server request headers
|
|
28
|
+
* @property {string|((item: SunEditor.Module.Browser.File) => string)} [thumbnail] - Default thumbnail
|
|
5
29
|
*/
|
|
6
30
|
/**
|
|
7
31
|
* @class
|
|
8
|
-
* @extends EditorInjector
|
|
9
32
|
* @description Audio gallery plugin
|
|
10
33
|
*/
|
|
11
|
-
declare class AudioGallery extends
|
|
12
|
-
static key: string;
|
|
13
|
-
static type: string;
|
|
14
|
-
static className: string;
|
|
34
|
+
declare class AudioGallery extends PluginBrowser {
|
|
15
35
|
/**
|
|
16
36
|
* @constructor
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
19
|
-
* @param {Array<*>=} pluginOptions.data - direct data without server calls
|
|
20
|
-
* @param {string} pluginOptions.url - server request url
|
|
21
|
-
* @param {Object<string, string>=} pluginOptions.headers - server request headers
|
|
22
|
-
* @param {string|((item: BrowserFile_audioGallery) => string)} pluginOptions.thumbnail - default thumbnail
|
|
37
|
+
* @param {SunEditor.Kernel} kernel - The core kernel
|
|
38
|
+
* @param {AudioGalleryPluginOptions} pluginOptions
|
|
23
39
|
*/
|
|
24
|
-
constructor(
|
|
25
|
-
editor: __se__EditorCore,
|
|
26
|
-
pluginOptions: {
|
|
27
|
-
data?: Array<any> | undefined;
|
|
28
|
-
url: string;
|
|
29
|
-
headers?:
|
|
30
|
-
| {
|
|
31
|
-
[x: string]: string;
|
|
32
|
-
}
|
|
33
|
-
| undefined;
|
|
34
|
-
thumbnail: string | ((item: BrowserFile_audioGallery) => string);
|
|
35
|
-
}
|
|
36
|
-
);
|
|
40
|
+
constructor(kernel: SunEditor.Kernel, pluginOptions: AudioGalleryPluginOptions);
|
|
37
41
|
title: any;
|
|
38
|
-
|
|
39
|
-
onSelectfunction: (targe: Node) => any;
|
|
42
|
+
onSelectfunction: (target: Node) => any;
|
|
40
43
|
browser: Browser;
|
|
41
|
-
/**
|
|
42
|
-
* @editorMethod Modules.Browser
|
|
43
|
-
* @description Executes the method that is called when a "Browser" module's is opened.
|
|
44
|
-
* @param {?(targe: Node) => *=} onSelectfunction method to be executed after selecting an item in the gallery
|
|
45
|
-
*/
|
|
46
|
-
open(onSelectfunction?: (((targe: Node) => any) | null) | undefined): void;
|
|
47
|
-
/**
|
|
48
|
-
* @editorMethod Modules.Browser
|
|
49
|
-
* @description Executes the method that is called when a "Browser" module's is closed.
|
|
50
|
-
*/
|
|
51
|
-
close(): void;
|
|
52
44
|
#private;
|
|
53
45
|
}
|
|
54
|
-
import
|
|
55
|
-
import { Browser } from '../../modules';
|
|
46
|
+
import { PluginBrowser } from '../../interfaces';
|
|
47
|
+
import { Browser } from '../../modules/contract';
|