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,45 +1,63 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default FontSize;
|
|
3
|
+
export type FontSizePluginOptions = {
|
|
4
|
+
/**
|
|
5
|
+
* - The unit for the font size.
|
|
6
|
+
* - Accepted values include: `'px'`, `'pt'`, `'em'`, `'rem'`, `'vw'`, `'vh'`, `'%'` or `'text'`.
|
|
7
|
+
* - If `'text'` is used, a text-based font size list is applied.
|
|
8
|
+
*/
|
|
9
|
+
sizeUnit?: string;
|
|
10
|
+
/**
|
|
11
|
+
* - Determines whether the default size label is displayed in the dropdown menu.
|
|
12
|
+
*/
|
|
13
|
+
showDefaultSizeLabel?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* - When `true`, displays increase and decrease buttons for font size adjustments.
|
|
16
|
+
*/
|
|
17
|
+
showIncDecControls?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* - When `true`, disables the direct font size input box.
|
|
20
|
+
*/
|
|
21
|
+
disableInput?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* - Optional object to override or extend the default unit mapping for font sizes.
|
|
24
|
+
*/
|
|
25
|
+
unitMap?: {
|
|
26
|
+
[x: string]: {
|
|
27
|
+
default: number;
|
|
28
|
+
inc: number;
|
|
29
|
+
min: number;
|
|
30
|
+
max: number;
|
|
31
|
+
list: Array<number>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* @typedef {Object} FontSizePluginOptions
|
|
37
|
+
* @property {string} [sizeUnit='px'] - The unit for the font size.
|
|
38
|
+
* - Accepted values include: `'px'`, `'pt'`, `'em'`, `'rem'`, `'vw'`, `'vh'`, `'%'` or `'text'`.
|
|
39
|
+
* - If `'text'` is used, a text-based font size list is applied.
|
|
40
|
+
* @property {boolean} [showDefaultSizeLabel=true] - Determines whether the default size label is displayed in the dropdown menu.
|
|
41
|
+
* @property {boolean} [showIncDecControls=false] - When `true`, displays increase and decrease buttons for font size adjustments.
|
|
42
|
+
* @property {boolean} [disableInput=true] - When `true`, disables the direct font size input box.
|
|
43
|
+
* @property {Object<string, {default: number, inc: number, min: number, max: number, list: Array<number>}>} [unitMap={}] - Optional object to override or extend the default unit mapping for font sizes.
|
|
44
|
+
*/
|
|
2
45
|
/**
|
|
3
46
|
* @class
|
|
47
|
+
* @implements {PluginCommand}
|
|
48
|
+
* @implements {PluginDropdown}
|
|
4
49
|
* @description FontSize Plugin
|
|
5
50
|
* - This plugin enables users to modify the font size of selected text within the editor.
|
|
6
51
|
* - It supports various measurement units (e.g., 'px', 'pt', 'em', 'rem', 'vw', 'vh', '%') and
|
|
7
52
|
* - provides multiple interfaces: dropdown menus, direct input, and optional increment/decrement buttons.
|
|
8
53
|
*/
|
|
9
|
-
declare class FontSize extends
|
|
10
|
-
static key: string;
|
|
11
|
-
static type: string;
|
|
12
|
-
static className: string;
|
|
54
|
+
declare class FontSize extends PluginInput implements PluginCommand, PluginDropdown {
|
|
13
55
|
/**
|
|
14
56
|
* @constructor
|
|
15
|
-
* @param {
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {string=} [pluginOptions.sizeUnit='px'] - The unit for the font size.
|
|
18
|
-
* - Accepted values include: 'px', 'pt', 'em', 'rem', 'vw', 'vh', '%' or 'text'.
|
|
19
|
-
* - If 'text' is used, a text-based font size list is applied.
|
|
20
|
-
* @param {boolean=} [pluginOptions.showDefaultSizeLabel=true] - Determines whether the default size label is displayed in the dropdown menu.
|
|
21
|
-
* @param {boolean=} [pluginOptions.showIncDecControls=false] - When true, displays increase and decrease buttons for font size adjustments.
|
|
22
|
-
* @param {boolean=} [pluginOptions.disableInput=true] - When true, disables the direct font size input box.
|
|
23
|
-
* @param {Object<string, {default: number, inc: number, min: number, max: number, list: Array<number>}>} [pluginOptions.unitMap={}] - Optional object to override or extend the default unit mapping for font sizes.
|
|
57
|
+
* @param {SunEditor.Kernel} editor - The core kernel
|
|
58
|
+
* @param {FontSizePluginOptions} pluginOptions - Configuration options for the FontSize plugin.
|
|
24
59
|
*/
|
|
25
|
-
constructor(
|
|
26
|
-
editor: __se__EditorCore,
|
|
27
|
-
pluginOptions: {
|
|
28
|
-
sizeUnit?: string | undefined;
|
|
29
|
-
showDefaultSizeLabel?: boolean | undefined;
|
|
30
|
-
showIncDecControls?: boolean | undefined;
|
|
31
|
-
disableInput?: boolean | undefined;
|
|
32
|
-
unitMap?: {
|
|
33
|
-
[x: string]: {
|
|
34
|
-
default: number;
|
|
35
|
-
inc: number;
|
|
36
|
-
min: number;
|
|
37
|
-
max: number;
|
|
38
|
-
list: Array<number>;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
);
|
|
60
|
+
constructor(editor: SunEditor.Kernel, pluginOptions: FontSizePluginOptions);
|
|
43
61
|
unitMap: {
|
|
44
62
|
text: {
|
|
45
63
|
default: string;
|
|
@@ -97,75 +115,18 @@ declare class FontSize extends EditorInjector {
|
|
|
97
115
|
list: number[];
|
|
98
116
|
};
|
|
99
117
|
};
|
|
100
|
-
sizeUnit:
|
|
118
|
+
sizeUnit: string;
|
|
101
119
|
title: any;
|
|
102
120
|
inner: string | boolean;
|
|
103
|
-
beforeItem: HTMLElement;
|
|
104
|
-
afterItem: HTMLElement;
|
|
105
|
-
replaceButton: HTMLElement;
|
|
106
121
|
currentSize: string;
|
|
107
122
|
sizeList: NodeListOf<Element>;
|
|
108
123
|
hasInputFocus: boolean;
|
|
109
124
|
isInputActive: boolean;
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
* @param {?HTMLElement=} element - Node element where the cursor is currently located
|
|
115
|
-
* @param {?HTMLElement=} target - The plugin's toolbar button element
|
|
116
|
-
* @returns {boolean} - Whether the plugin is active
|
|
117
|
-
* - If it returns "undefined", it will no longer be called in this scope.
|
|
118
|
-
*/
|
|
119
|
-
active(element?: (HTMLElement | null) | undefined, target?: (HTMLElement | null) | undefined): boolean;
|
|
120
|
-
/**
|
|
121
|
-
* @editorMethod Editor.Toolbar
|
|
122
|
-
* @description Executes the event function of toolbar's input tag - "keydown".
|
|
123
|
-
* @param {Object} params
|
|
124
|
-
* @param {HTMLElement} params.target Input element
|
|
125
|
-
* @param {KeyboardEvent} params.event Event object
|
|
126
|
-
*/
|
|
127
|
-
onInputKeyDown({ target, event }: { target: HTMLElement; event: KeyboardEvent }): void;
|
|
128
|
-
/**
|
|
129
|
-
* @editorMethod Editor.Toolbar
|
|
130
|
-
* @description Executes the event function of toolbar's input tag - "change".
|
|
131
|
-
* @param {__se__PluginToolbarInputChangeEventInfo} params
|
|
132
|
-
*/
|
|
133
|
-
onInputChange({ target, value: changeValue, event }: __se__PluginToolbarInputChangeEventInfo): void;
|
|
134
|
-
/**
|
|
135
|
-
* @editorMethod Modules.Dropdown
|
|
136
|
-
* @description Executes the method that is called when a plugin's dropdown menu is opened.
|
|
137
|
-
* @param {HTMLElement} target Line element at the current cursor position
|
|
138
|
-
*/
|
|
139
|
-
on(target: HTMLElement): void;
|
|
140
|
-
/**
|
|
141
|
-
* @editorMethod Editor.core
|
|
142
|
-
* @description Executes the main execution method of the plugin.
|
|
143
|
-
* - Called when an item in the "dropdown" menu is clicked.
|
|
144
|
-
* @param {HTMLElement} target - The plugin's toolbar button element
|
|
145
|
-
*/
|
|
146
|
-
action(target: HTMLElement): void;
|
|
147
|
-
/**
|
|
148
|
-
* @private
|
|
149
|
-
* @description Retrieves the default font size of the editor.
|
|
150
|
-
* @returns {string} - The computed font size from the editor.
|
|
151
|
-
*/
|
|
152
|
-
private _getDefaultSize;
|
|
153
|
-
/**
|
|
154
|
-
* @private
|
|
155
|
-
* @description Extracts the font size and unit from the given element or input value.
|
|
156
|
-
* @param {string|Element} target - The target input or element.
|
|
157
|
-
* @returns {{ unit: string, value: number|string }} - An object containing:
|
|
158
|
-
* - `unit` (string): The detected font size unit.
|
|
159
|
-
* - `value` (number|string): The numeric font size value or text-based size.
|
|
160
|
-
*/
|
|
161
|
-
private _getSize;
|
|
162
|
-
/**
|
|
163
|
-
* @private
|
|
164
|
-
* @description Sets the font size in the toolbar input field or button label.
|
|
165
|
-
* @param {HTMLElement} target - The target element in the toolbar.
|
|
166
|
-
* @param {string|number} value - The font size value.
|
|
167
|
-
* @returns {string|number} - The applied font size.
|
|
168
|
-
*/
|
|
169
|
-
private _setSize;
|
|
125
|
+
active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
|
|
126
|
+
on(target?: HTMLElement): void;
|
|
127
|
+
action(target?: HTMLElement): void | Promise<void>;
|
|
128
|
+
#private;
|
|
170
129
|
}
|
|
171
|
-
import
|
|
130
|
+
import { PluginCommand } from '../../interfaces';
|
|
131
|
+
import { PluginDropdown } from '../../interfaces';
|
|
132
|
+
import { PluginInput } from '../../interfaces';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default PageNavigator;
|
|
2
3
|
/**
|
|
3
4
|
* @class
|
|
@@ -7,22 +8,18 @@ export default PageNavigator;
|
|
|
7
8
|
* - the total number of pages. When the user changes the value in the input field, the plugin triggers
|
|
8
9
|
* - a page navigation event through the editor's document context.
|
|
9
10
|
*/
|
|
10
|
-
declare class PageNavigator extends
|
|
11
|
-
static key: string;
|
|
12
|
-
static type: string;
|
|
13
|
-
static className: string;
|
|
11
|
+
declare class PageNavigator extends PluginInput {
|
|
14
12
|
title: any;
|
|
15
13
|
inner: HTMLInputElement;
|
|
16
|
-
afterItem: HTMLElement;
|
|
17
14
|
pageNum: number;
|
|
18
15
|
totalPages: number;
|
|
19
16
|
/**
|
|
20
|
-
*
|
|
21
|
-
* @description Updates the displayed page number and total pages in the navigator.
|
|
17
|
+
* Updates the displayed page number and total pages in the navigator.
|
|
22
18
|
* @param {number} pageNum - The current page number to display.
|
|
23
19
|
* @param {number} totalPages - The total number of pages in the document.
|
|
20
|
+
* @returns {void}
|
|
24
21
|
*/
|
|
25
22
|
display(pageNum: number, totalPages: number): void;
|
|
26
23
|
#private;
|
|
27
24
|
}
|
|
28
|
-
import
|
|
25
|
+
import { PluginInput } from '../../interfaces';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import type {} from '../../typedef';
|
|
1
2
|
export default Audio_;
|
|
2
|
-
export type AudioInfo_audio = import('../../events').AudioInfo;
|
|
3
3
|
export type AudioPluginOptions = {
|
|
4
4
|
/**
|
|
5
|
-
* - The default width of the
|
|
5
|
+
* - The default width of the `AUDIO` tag (e.g., `"300px"`).
|
|
6
6
|
*/
|
|
7
7
|
defaultWidth?: string;
|
|
8
8
|
/**
|
|
9
|
-
* - The default height of the
|
|
9
|
+
* - The default height of the `AUDIO` tag (e.g., `"150px"`).
|
|
10
10
|
*/
|
|
11
11
|
defaultHeight?: string;
|
|
12
12
|
/**
|
|
@@ -14,7 +14,7 @@ export type AudioPluginOptions = {
|
|
|
14
14
|
*/
|
|
15
15
|
createFileInput?: boolean;
|
|
16
16
|
/**
|
|
17
|
-
* - Whether to create a URL input element (default is true if file input is not created).
|
|
17
|
+
* - Whether to create a URL input element (default is `true` if file input is not created).
|
|
18
18
|
*/
|
|
19
19
|
createUrlInput?: boolean;
|
|
20
20
|
/**
|
|
@@ -40,55 +40,60 @@ export type AudioPluginOptions = {
|
|
|
40
40
|
*/
|
|
41
41
|
allowMultiple?: boolean;
|
|
42
42
|
/**
|
|
43
|
-
* - Accepted file formats (default is "audio/*").
|
|
43
|
+
* - Accepted file formats (default is `"audio/*"`).
|
|
44
44
|
*/
|
|
45
45
|
acceptedFormats?: string;
|
|
46
46
|
/**
|
|
47
|
-
* - Additional attributes to set on the
|
|
47
|
+
* - Additional attributes to set on the `AUDIO` tag.
|
|
48
48
|
*/
|
|
49
49
|
audioTagAttributes?: {
|
|
50
50
|
[x: string]: string;
|
|
51
51
|
};
|
|
52
|
+
/**
|
|
53
|
+
* - Component insertion behavior for selection and cursor placement. [default: `options.get('componentInsertBehavior')`]
|
|
54
|
+
* - `auto`: Move cursor to the next line if possible, otherwise select the component.
|
|
55
|
+
* - `select`: Always select the inserted component.
|
|
56
|
+
* - `line`: Move cursor to the next line if possible, or create a new line and move there.
|
|
57
|
+
* - `none`: Do nothing.
|
|
58
|
+
*/
|
|
59
|
+
insertBehavior?: SunEditor.ComponentInsertType;
|
|
52
60
|
};
|
|
53
|
-
/**
|
|
54
|
-
* @typedef {import('../../events').AudioInfo} AudioInfo_audio
|
|
55
|
-
*/
|
|
56
61
|
/**
|
|
57
62
|
* @typedef {Object} AudioPluginOptions
|
|
58
|
-
* @property {string} [defaultWidth="300px"] - The default width of the
|
|
59
|
-
* @property {string} [defaultHeight="150px"] - The default height of the
|
|
63
|
+
* @property {string} [defaultWidth="300px"] - The default width of the `AUDIO` tag (e.g., `"300px"`).
|
|
64
|
+
* @property {string} [defaultHeight="150px"] - The default height of the `AUDIO` tag (e.g., `"150px"`).
|
|
60
65
|
* @property {boolean} [createFileInput] - Whether to create a file input element.
|
|
61
|
-
* @property {boolean} [createUrlInput] - Whether to create a URL input element (default is true if file input is not created).
|
|
66
|
+
* @property {boolean} [createUrlInput] - Whether to create a URL input element (default is `true` if file input is not created).
|
|
62
67
|
* @property {string} [uploadUrl] - The URL to which files will be uploaded.
|
|
63
68
|
* @property {Object<string, string>} [uploadHeaders] - Headers to include in the file upload request.
|
|
64
69
|
* @property {number} [uploadSizeLimit] - The total upload size limit in bytes.
|
|
65
70
|
* @property {number} [uploadSingleSizeLimit] - The single file size limit in bytes.
|
|
66
71
|
* @property {boolean} [allowMultiple] - Whether to allow multiple file uploads.
|
|
67
|
-
* @property {string} [acceptedFormats="audio/*"] - Accepted file formats (default is "audio/*").
|
|
68
|
-
* @property {Object<string, string>} [audioTagAttributes] - Additional attributes to set on the
|
|
72
|
+
* @property {string} [acceptedFormats="audio/*"] - Accepted file formats (default is `"audio/*"`).
|
|
73
|
+
* @property {Object<string, string>} [audioTagAttributes] - Additional attributes to set on the `AUDIO` tag.
|
|
74
|
+
* @property {SunEditor.ComponentInsertType} [insertBehavior] - Component insertion behavior for selection and cursor placement. [default: `options.get('componentInsertBehavior')`]
|
|
75
|
+
* - `auto`: Move cursor to the next line if possible, otherwise select the component.
|
|
76
|
+
* - `select`: Always select the inserted component.
|
|
77
|
+
* - `line`: Move cursor to the next line if possible, or create a new line and move there.
|
|
78
|
+
* - `none`: Do nothing.
|
|
69
79
|
*/
|
|
70
80
|
/**
|
|
71
81
|
* @class
|
|
72
82
|
* @description Audio modal plugin.
|
|
73
83
|
*/
|
|
74
|
-
declare class Audio_ extends
|
|
75
|
-
static key: string;
|
|
76
|
-
static type: string;
|
|
77
|
-
static className: string;
|
|
84
|
+
declare class Audio_ extends PluginModal {
|
|
78
85
|
/**
|
|
79
|
-
* @this {Audio_}
|
|
80
86
|
* @param {HTMLElement} node - The node to check.
|
|
81
87
|
* @returns {HTMLElement|null} Returns a node if the node is a valid component.
|
|
82
88
|
*/
|
|
83
|
-
static component(
|
|
89
|
+
static component(node: HTMLElement): HTMLElement | null;
|
|
84
90
|
/**
|
|
85
91
|
* @constructor
|
|
86
|
-
* @param {
|
|
92
|
+
* @param {SunEditor.Kernel} editor - The core kernel
|
|
87
93
|
* @param {AudioPluginOptions} pluginOptions
|
|
88
94
|
*/
|
|
89
|
-
constructor(editor:
|
|
95
|
+
constructor(editor: SunEditor.Kernel, pluginOptions: AudioPluginOptions);
|
|
90
96
|
title: any;
|
|
91
|
-
icon: string;
|
|
92
97
|
pluginOptions: {
|
|
93
98
|
defaultWidth: string;
|
|
94
99
|
defaultHeight: string;
|
|
@@ -105,6 +110,7 @@ declare class Audio_ extends EditorInjector {
|
|
|
105
110
|
audioTagAttributes: {
|
|
106
111
|
[x: string]: string;
|
|
107
112
|
};
|
|
113
|
+
insertBehavior: SunEditor.ComponentInsertType;
|
|
108
114
|
};
|
|
109
115
|
modal: Modal;
|
|
110
116
|
controller: Controller;
|
|
@@ -118,152 +124,53 @@ declare class Audio_ extends EditorInjector {
|
|
|
118
124
|
audioUrlFile: HTMLInputElement;
|
|
119
125
|
/** @type {HTMLElement} */
|
|
120
126
|
preview: HTMLElement;
|
|
121
|
-
/** @type {HTMLAudioElement} */
|
|
122
|
-
_element: HTMLAudioElement;
|
|
123
|
-
defaultWidth: string;
|
|
124
|
-
defaultHeight: string;
|
|
125
|
-
urlValue: string;
|
|
126
|
-
/**
|
|
127
|
-
* @editorMethod Modules.Modal
|
|
128
|
-
* @description Executes the method that is called when a "Modal" module's is opened.
|
|
129
|
-
*/
|
|
130
|
-
open(): void;
|
|
131
|
-
/**
|
|
132
|
-
* @editorMethod Modules.Modal
|
|
133
|
-
* @description Executes the method that is called when a plugin's modal is opened.
|
|
134
|
-
* @param {boolean} isUpdate "Indicates whether the modal is for editing an existing component (true) or registering a new one (false)."
|
|
135
|
-
*/
|
|
136
|
-
on(isUpdate: boolean): void;
|
|
137
|
-
/**
|
|
138
|
-
* @editorMethod Editor.EventManager
|
|
139
|
-
* @description Executes the event function of "paste" or "drop".
|
|
140
|
-
* @param {Object} params { frameContext, event, file }
|
|
141
|
-
* @param {__se__FrameContext} params.frameContext Frame context
|
|
142
|
-
* @param {ClipboardEvent} params.event Event object
|
|
143
|
-
* @param {File} params.file File object
|
|
144
|
-
* @returns {boolean} - If return false, the file upload will be canceled
|
|
145
|
-
*/
|
|
146
|
-
onFilePasteAndDrop({ file }: { frameContext: __se__FrameContext; event: ClipboardEvent; file: File }): boolean;
|
|
147
|
-
/**
|
|
148
|
-
* @editorMethod Modules.Modal
|
|
149
|
-
* @description This function is called when a form within a modal window is "submit".
|
|
150
|
-
* @returns {Promise<boolean>} Success or failure
|
|
151
|
-
*/
|
|
152
|
-
modalAction(): Promise<boolean>;
|
|
153
|
-
/**
|
|
154
|
-
* @editorMethod Modules.Modal
|
|
155
|
-
* @description This function is called before the modal window is opened, but before it is closed.
|
|
156
|
-
*/
|
|
157
|
-
init(): void;
|
|
158
|
-
/**
|
|
159
|
-
* @editorMethod Modules.Controller
|
|
160
|
-
* @description Executes the method that is called when a button is clicked in the "controller".
|
|
161
|
-
* @param {HTMLButtonElement} target Target button element
|
|
162
|
-
*/
|
|
163
|
-
controllerAction(target: HTMLButtonElement): void;
|
|
164
|
-
/**
|
|
165
|
-
* @editorMethod Editor.core
|
|
166
|
-
* @description This method is used to validate and preserve the format of the component within the editor.
|
|
167
|
-
* - It ensures that the structure and attributes of the element are maintained and secure.
|
|
168
|
-
* - The method checks if the element is already wrapped in a valid container and updates its attributes if necessary.
|
|
169
|
-
* - If the element isn't properly contained, a new container is created to retain the format.
|
|
170
|
-
* @returns {{query: string, method: (element: HTMLAudioElement) => void}} The format retention object containing the query and method to process the element.
|
|
171
|
-
* - query: The selector query to identify the relevant elements (in this case, 'audio').
|
|
172
|
-
* - method:The function to execute on the element to validate and preserve its format.
|
|
173
|
-
* - The function takes the element as an argument, checks if it is contained correctly, and applies necessary adjustments.
|
|
174
|
-
*/
|
|
175
127
|
retainFormat(): {
|
|
176
128
|
query: string;
|
|
177
|
-
method: (element:
|
|
129
|
+
method: (element: HTMLElement) => void;
|
|
178
130
|
};
|
|
131
|
+
onFilePasteAndDrop(params: SunEditor.HookParams.FilePasteDrop): void;
|
|
132
|
+
modalOn(isUpdate: boolean): void;
|
|
133
|
+
modalAction(): Promise<boolean>;
|
|
134
|
+
modalInit(): void;
|
|
135
|
+
controllerAction(target: HTMLButtonElement): void;
|
|
136
|
+
componentSelect(target: HTMLElement): void | boolean;
|
|
137
|
+
componentDestroy(target: HTMLElement): Promise<void>;
|
|
179
138
|
/**
|
|
180
|
-
* @
|
|
181
|
-
* @description Executes the method that is called when a component of a plugin is selected.
|
|
182
|
-
* @param {HTMLElement} target Target component element
|
|
183
|
-
*/
|
|
184
|
-
select(target: HTMLElement): void;
|
|
185
|
-
/**
|
|
186
|
-
* @private
|
|
187
|
-
* @description Prepares the component for selection.
|
|
188
|
-
* - Ensures that the controller is properly positioned and initialized.
|
|
189
|
-
* - Prevents duplicate event handling if the component is already selected.
|
|
190
|
-
* @param {HTMLElement} target - The selected element.
|
|
191
|
-
*/
|
|
192
|
-
private _ready;
|
|
193
|
-
/**
|
|
194
|
-
* @editorMethod Editor.Component
|
|
195
|
-
* @description Method to delete a component of a plugin, called by the "FileManager", "Controller" module.
|
|
196
|
-
* @param {HTMLElement=} target Target element, if null current selected element
|
|
197
|
-
* @returns {Promise<void>}
|
|
198
|
-
*/
|
|
199
|
-
destroy(target?: HTMLElement | undefined): Promise<void>;
|
|
200
|
-
/**
|
|
201
|
-
* @private
|
|
202
|
-
* @description Registers uploaded audio files and creates the corresponding audio elements.
|
|
203
|
-
* - Iterates through the uploaded files and inserts them into the editor.
|
|
204
|
-
* @param {AudioInfo_audio} info - Upload metadata, including `isUpdate` flag and `element`.
|
|
205
|
-
* @param {Object<string, *>} response - Server response containing uploaded file details.
|
|
206
|
-
*/
|
|
207
|
-
private _register;
|
|
208
|
-
/**
|
|
209
|
-
* @description Create an "audio" component using the provided files.
|
|
139
|
+
* @description Create an `audio` component using the provided files.
|
|
210
140
|
* @param {FileList|File[]} fileList File object list
|
|
211
|
-
* @returns {Promise<boolean>} If return false
|
|
141
|
+
* @returns {Promise<boolean>} If return `false`, the file upload will be canceled
|
|
212
142
|
*/
|
|
213
143
|
submitFile(fileList: FileList | File[]): Promise<boolean>;
|
|
214
144
|
/**
|
|
215
|
-
* @description Create an
|
|
145
|
+
* @description Create an `audio` component using the provided url.
|
|
216
146
|
* @param {string} url File url
|
|
217
147
|
* @returns {Promise<boolean>}
|
|
218
148
|
*/
|
|
219
149
|
submitURL(url: string): Promise<boolean>;
|
|
220
150
|
/**
|
|
221
|
-
* @
|
|
222
|
-
* @description Creates or updates an audio component within the editor.
|
|
151
|
+
* @description Creates or updates an `audio` component within the editor.
|
|
223
152
|
* - If `isUpdate` is `true`, updates the existing element's `src`.
|
|
224
|
-
* - Otherwise, inserts a new audio component with the given file.
|
|
225
|
-
* @param {HTMLAudioElement} element - The target
|
|
153
|
+
* - Otherwise, inserts a new `audio` component with the given file.
|
|
154
|
+
* @param {HTMLAudioElement} element - The target `AUDIO` element.
|
|
226
155
|
* @param {string} src - The source URL of the audio file.
|
|
227
156
|
* @param {{name: string, size: number}} file - The file metadata (name, size).
|
|
228
157
|
* @param {boolean} isUpdate - Whether to update an existing element.
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
* - Adds the `controls` attribute and applies any custom attributes.
|
|
242
|
-
* @param {HTMLElement} element - The `<audio>` element to modify.
|
|
243
|
-
*/
|
|
244
|
-
private _setTagAttrs;
|
|
245
|
-
/**
|
|
246
|
-
* @private
|
|
247
|
-
* @description Uploads audio files to the server.
|
|
248
|
-
* - Sends a request to the configured upload URL and processes the response.
|
|
249
|
-
* @param {AudioInfo_audio} info - Upload metadata, including `files` and `isUpdate`.
|
|
250
|
-
* @param {FileList|File[]} files - The files to be uploaded.
|
|
251
|
-
*/
|
|
252
|
-
private _serverUpload;
|
|
253
|
-
/**
|
|
254
|
-
* @private
|
|
255
|
-
* @description Handles errors that occur during the audio upload process.
|
|
256
|
-
* - Triggers the `onAudioUploadError` event to allow custom handling of errors.
|
|
257
|
-
* - Displays an error message in the editor's UI.
|
|
258
|
-
* - Logs the error to the console for debugging.
|
|
259
|
-
* @param {Object<string, *>} response - The error response object from the server or upload process.
|
|
260
|
-
* @returns {Promise<void>}
|
|
261
|
-
*/
|
|
262
|
-
private _error;
|
|
158
|
+
* @param {boolean} isLast - Indicates whether this is the last file in the batch (used for scroll and insert actions).
|
|
159
|
+
*/
|
|
160
|
+
create(
|
|
161
|
+
element: HTMLAudioElement,
|
|
162
|
+
src: string,
|
|
163
|
+
file: {
|
|
164
|
+
name: string;
|
|
165
|
+
size: number;
|
|
166
|
+
},
|
|
167
|
+
isUpdate: boolean,
|
|
168
|
+
isLast: boolean,
|
|
169
|
+
): void;
|
|
263
170
|
#private;
|
|
264
171
|
}
|
|
265
|
-
import
|
|
266
|
-
import { Modal } from '../../modules';
|
|
267
|
-
import { Controller } from '../../modules';
|
|
268
|
-
import {
|
|
269
|
-
import {
|
|
172
|
+
import { PluginModal } from '../../interfaces';
|
|
173
|
+
import { Modal } from '../../modules/contract';
|
|
174
|
+
import { Controller } from '../../modules/contract';
|
|
175
|
+
import { Figure } from '../../modules/contract';
|
|
176
|
+
import { FileManager } from '../../modules/manager';
|