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.
Files changed (380) hide show
  1. package/README.md +65 -57
  2. package/dist/suneditor-contents.min.css +1 -0
  3. package/dist/suneditor.min.css +1 -1
  4. package/dist/suneditor.min.js +1 -1
  5. package/package.json +110 -61
  6. package/src/assets/design/color.css +36 -17
  7. package/src/assets/design/size.css +2 -0
  8. package/src/assets/icons/defaultIcons.js +17 -2
  9. package/src/assets/suneditor-contents.css +51 -16
  10. package/src/assets/suneditor.css +116 -43
  11. package/src/core/config/contextProvider.js +288 -0
  12. package/src/core/config/eventManager.js +188 -0
  13. package/src/core/config/instanceCheck.js +59 -0
  14. package/src/core/config/optionProvider.js +452 -0
  15. package/src/core/editor.js +166 -1637
  16. package/src/core/event/actions/index.js +229 -0
  17. package/src/core/event/effects/common.registry.js +74 -0
  18. package/src/core/event/effects/keydown.registry.js +573 -0
  19. package/src/core/event/effects/ruleHelpers.js +148 -0
  20. package/src/core/event/eventOrchestrator.js +944 -0
  21. package/src/core/event/executor.js +27 -0
  22. package/src/core/{base/eventHandlers → event/handlers}/handler_toolbar.js +27 -28
  23. package/src/core/{base/eventHandlers → event/handlers}/handler_ww_clipboard.js +10 -8
  24. package/src/core/{base/eventHandlers → event/handlers}/handler_ww_dragDrop.js +22 -23
  25. package/src/core/event/handlers/handler_ww_input.js +75 -0
  26. package/src/core/event/handlers/handler_ww_key.js +228 -0
  27. package/src/core/event/handlers/handler_ww_mouse.js +166 -0
  28. package/src/core/event/ports.js +211 -0
  29. package/src/core/event/reducers/keydown.reducer.js +97 -0
  30. package/src/core/event/rules/keydown.rule.arrow.js +63 -0
  31. package/src/core/event/rules/keydown.rule.backspace.js +208 -0
  32. package/src/core/event/rules/keydown.rule.delete.js +132 -0
  33. package/src/core/event/rules/keydown.rule.enter.js +150 -0
  34. package/src/core/event/rules/keydown.rule.tab.js +35 -0
  35. package/src/core/event/support/defaultLineManager.js +136 -0
  36. package/src/core/event/support/selectionState.js +204 -0
  37. package/src/core/kernel/coreKernel.js +320 -0
  38. package/src/core/kernel/kernelInjector.js +19 -0
  39. package/src/core/kernel/store.js +173 -0
  40. package/src/core/{class → logic/dom}/char.js +42 -45
  41. package/src/core/logic/dom/format.js +1075 -0
  42. package/src/core/{class → logic/dom}/html.js +743 -624
  43. package/src/core/logic/dom/inline.js +1847 -0
  44. package/src/core/logic/dom/listFormat.js +601 -0
  45. package/src/core/{class → logic/dom}/nodeTransform.js +92 -72
  46. package/src/core/{class → logic/dom}/offset.js +254 -317
  47. package/src/core/logic/dom/selection.js +754 -0
  48. package/src/core/logic/panel/menu.js +389 -0
  49. package/src/core/logic/panel/toolbar.js +449 -0
  50. package/src/core/logic/panel/viewer.js +761 -0
  51. package/src/core/logic/shell/_commandExecutor.js +380 -0
  52. package/src/core/logic/shell/commandDispatcher.js +241 -0
  53. package/src/core/logic/shell/component.js +970 -0
  54. package/src/core/logic/shell/focusManager.js +110 -0
  55. package/src/core/{base → logic/shell}/history.js +110 -60
  56. package/src/core/logic/shell/pluginManager.js +363 -0
  57. package/src/core/logic/shell/shortcuts.js +130 -0
  58. package/src/core/logic/shell/ui.js +904 -0
  59. package/src/core/schema/context.js +66 -0
  60. package/src/core/schema/frameContext.js +160 -0
  61. package/src/core/schema/options.js +628 -0
  62. package/src/core/section/constructor.js +194 -500
  63. package/src/core/section/documentType.js +297 -222
  64. package/src/events.js +808 -543
  65. package/src/helper/clipboard.js +27 -16
  66. package/src/helper/converter.js +100 -78
  67. package/src/helper/dom/domCheck.js +56 -30
  68. package/src/helper/dom/domQuery.js +159 -89
  69. package/src/helper/dom/domUtils.js +114 -49
  70. package/src/helper/dom/index.js +5 -1
  71. package/src/helper/env.js +26 -26
  72. package/src/helper/index.js +1 -1
  73. package/src/helper/keyCodeMap.js +25 -28
  74. package/src/helper/numbers.js +4 -8
  75. package/src/helper/unicode.js +4 -8
  76. package/src/hooks/base.js +307 -0
  77. package/src/hooks/params.js +130 -0
  78. package/src/interfaces/contracts.js +227 -0
  79. package/src/interfaces/index.js +7 -0
  80. package/src/interfaces/plugins.js +239 -0
  81. package/src/langs/ckb.js +4 -4
  82. package/src/langs/cs.js +4 -4
  83. package/src/langs/da.js +4 -4
  84. package/src/langs/de.js +4 -4
  85. package/src/langs/en.js +4 -4
  86. package/src/langs/es.js +4 -4
  87. package/src/langs/fa.js +4 -4
  88. package/src/langs/fr.js +4 -4
  89. package/src/langs/he.js +4 -4
  90. package/src/langs/hu.js +4 -4
  91. package/src/langs/it.js +4 -4
  92. package/src/langs/ja.js +4 -4
  93. package/src/langs/km.js +4 -4
  94. package/src/langs/ko.js +4 -4
  95. package/src/langs/lv.js +4 -4
  96. package/src/langs/nl.js +4 -4
  97. package/src/langs/pl.js +4 -4
  98. package/src/langs/pt_br.js +13 -13
  99. package/src/langs/ro.js +4 -4
  100. package/src/langs/ru.js +4 -4
  101. package/src/langs/se.js +4 -4
  102. package/src/langs/tr.js +4 -4
  103. package/src/langs/uk.js +4 -4
  104. package/src/langs/ur.js +4 -4
  105. package/src/langs/zh_cn.js +4 -4
  106. package/src/modules/{Browser.js → contract/Browser.js} +119 -128
  107. package/src/modules/{ColorPicker.js → contract/ColorPicker.js} +132 -142
  108. package/src/modules/contract/Controller.js +589 -0
  109. package/src/modules/{Figure.js → contract/Figure.js} +591 -411
  110. package/src/modules/{HueSlider.js → contract/HueSlider.js} +125 -86
  111. package/src/modules/contract/Modal.js +357 -0
  112. package/src/modules/contract/index.js +9 -0
  113. package/src/modules/manager/ApiManager.js +197 -0
  114. package/src/modules/{FileManager.js → manager/FileManager.js} +128 -160
  115. package/src/modules/manager/index.js +5 -0
  116. package/src/modules/{ModalAnchorEditor.js → ui/ModalAnchorEditor.js} +108 -138
  117. package/src/modules/{SelectMenu.js → ui/SelectMenu.js} +119 -120
  118. package/src/modules/{_DragHandle.js → ui/_DragHandle.js} +1 -1
  119. package/src/modules/ui/index.js +6 -0
  120. package/src/plugins/browser/audioGallery.js +23 -26
  121. package/src/plugins/browser/fileBrowser.js +25 -28
  122. package/src/plugins/browser/fileGallery.js +20 -23
  123. package/src/plugins/browser/imageGallery.js +24 -23
  124. package/src/plugins/browser/videoGallery.js +27 -29
  125. package/src/plugins/command/blockquote.js +11 -17
  126. package/src/plugins/command/exportPDF.js +26 -26
  127. package/src/plugins/command/fileUpload.js +138 -133
  128. package/src/plugins/command/list_bulleted.js +48 -44
  129. package/src/plugins/command/list_numbered.js +48 -44
  130. package/src/plugins/dropdown/align.js +64 -50
  131. package/src/plugins/dropdown/backgroundColor.js +34 -35
  132. package/src/plugins/dropdown/{formatBlock.js → blockStyle.js} +43 -37
  133. package/src/plugins/dropdown/font.js +50 -36
  134. package/src/plugins/dropdown/fontColor.js +34 -35
  135. package/src/plugins/dropdown/hr.js +55 -50
  136. package/src/plugins/dropdown/layout.js +20 -15
  137. package/src/plugins/dropdown/lineHeight.js +46 -30
  138. package/src/plugins/dropdown/list.js +32 -33
  139. package/src/plugins/dropdown/paragraphStyle.js +40 -34
  140. package/src/plugins/dropdown/table/index.js +915 -0
  141. package/src/plugins/dropdown/table/render/table.html.js +308 -0
  142. package/src/plugins/dropdown/table/render/table.menu.js +121 -0
  143. package/src/plugins/dropdown/table/services/table.cell.js +465 -0
  144. package/src/plugins/dropdown/table/services/table.clipboard.js +414 -0
  145. package/src/plugins/dropdown/table/services/table.grid.js +504 -0
  146. package/src/plugins/dropdown/table/services/table.resize.js +463 -0
  147. package/src/plugins/dropdown/table/services/table.selection.js +466 -0
  148. package/src/plugins/dropdown/table/services/table.style.js +844 -0
  149. package/src/plugins/dropdown/table/shared/table.constants.js +109 -0
  150. package/src/plugins/dropdown/table/shared/table.utils.js +219 -0
  151. package/src/plugins/dropdown/template.js +20 -15
  152. package/src/plugins/dropdown/textStyle.js +28 -22
  153. package/src/plugins/field/mention.js +54 -49
  154. package/src/plugins/index.js +5 -5
  155. package/src/plugins/input/fontSize.js +100 -97
  156. package/src/plugins/input/pageNavigator.js +13 -10
  157. package/src/plugins/modal/audio.js +208 -219
  158. package/src/plugins/modal/drawing.js +99 -104
  159. package/src/plugins/modal/embed.js +323 -312
  160. package/src/plugins/modal/image/index.js +942 -0
  161. package/src/plugins/modal/image/render/image.html.js +150 -0
  162. package/src/plugins/modal/image/services/image.size.js +198 -0
  163. package/src/plugins/modal/image/services/image.upload.js +216 -0
  164. package/src/plugins/modal/image/shared/image.constants.js +20 -0
  165. package/src/plugins/modal/link.js +74 -54
  166. package/src/plugins/modal/math.js +126 -119
  167. package/src/plugins/modal/video/index.js +858 -0
  168. package/src/plugins/modal/video/render/video.html.js +131 -0
  169. package/src/plugins/modal/video/services/video.size.js +281 -0
  170. package/src/plugins/modal/video/services/video.upload.js +92 -0
  171. package/src/plugins/popup/anchor.js +57 -49
  172. package/src/suneditor.js +73 -61
  173. package/src/themes/cobalt.css +155 -0
  174. package/src/themes/dark.css +143 -120
  175. package/src/typedef.js +214 -63
  176. package/types/assets/icons/defaultIcons.d.ts +8 -0
  177. package/types/assets/suneditor-contents.css.d.ts +1 -0
  178. package/types/assets/suneditor.css.d.ts +1 -0
  179. package/types/core/config/contextProvider.d.ts +148 -0
  180. package/types/core/config/eventManager.d.ts +68 -0
  181. package/types/core/config/instanceCheck.d.ts +33 -0
  182. package/types/core/config/optionProvider.d.ts +147 -0
  183. package/types/core/editor.d.ts +27 -586
  184. package/types/core/event/actions/index.d.ts +50 -0
  185. package/types/core/event/effects/common.registry.d.ts +56 -0
  186. package/types/core/event/effects/keydown.registry.d.ts +80 -0
  187. package/types/core/event/effects/ruleHelpers.d.ts +36 -0
  188. package/types/core/event/eventOrchestrator.d.ts +191 -0
  189. package/types/core/event/executor.d.ts +13 -0
  190. package/types/core/event/handlers/handler_toolbar.d.ts +38 -0
  191. package/types/core/event/handlers/handler_ww_clipboard.d.ts +36 -0
  192. package/types/core/event/handlers/handler_ww_dragDrop.d.ts +26 -0
  193. package/types/core/event/handlers/handler_ww_input.d.ts +38 -0
  194. package/types/core/event/handlers/handler_ww_key.d.ts +40 -0
  195. package/types/core/event/handlers/handler_ww_mouse.d.ts +47 -0
  196. package/types/core/event/ports.d.ts +256 -0
  197. package/types/core/event/reducers/keydown.reducer.d.ts +84 -0
  198. package/types/core/event/rules/keydown.rule.arrow.d.ts +19 -0
  199. package/types/core/event/rules/keydown.rule.backspace.d.ts +18 -0
  200. package/types/core/event/rules/keydown.rule.delete.d.ts +18 -0
  201. package/types/core/event/rules/keydown.rule.enter.d.ts +18 -0
  202. package/types/core/event/rules/keydown.rule.tab.d.ts +18 -0
  203. package/types/core/event/support/defaultLineManager.d.ts +22 -0
  204. package/types/core/event/support/selectionState.d.ts +29 -0
  205. package/types/core/kernel/coreKernel.d.ts +219 -0
  206. package/types/core/kernel/kernelInjector.d.ts +16 -0
  207. package/types/core/kernel/store.d.ts +170 -0
  208. package/types/core/logic/dom/char.d.ts +46 -0
  209. package/types/core/logic/dom/format.d.ts +234 -0
  210. package/types/core/logic/dom/html.d.ts +290 -0
  211. package/types/core/logic/dom/inline.d.ts +93 -0
  212. package/types/core/logic/dom/listFormat.d.ts +101 -0
  213. package/types/core/logic/dom/nodeTransform.d.ts +110 -0
  214. package/types/core/logic/dom/offset.d.ts +335 -0
  215. package/types/core/logic/dom/selection.d.ts +165 -0
  216. package/types/core/logic/panel/menu.d.ts +93 -0
  217. package/types/core/logic/panel/toolbar.d.ts +128 -0
  218. package/types/core/logic/panel/viewer.d.ts +89 -0
  219. package/types/core/logic/shell/_commandExecutor.d.ts +18 -0
  220. package/types/core/logic/shell/commandDispatcher.d.ts +65 -0
  221. package/types/core/logic/shell/component.d.ts +182 -0
  222. package/types/core/logic/shell/focusManager.d.ts +31 -0
  223. package/types/core/{base → logic/shell}/history.d.ts +13 -12
  224. package/types/core/logic/shell/pluginManager.d.ts +115 -0
  225. package/types/core/logic/shell/shortcuts.d.ts +131 -0
  226. package/types/core/logic/shell/ui.d.ts +261 -0
  227. package/types/core/schema/context.d.ts +104 -0
  228. package/types/core/schema/frameContext.d.ts +320 -0
  229. package/types/core/schema/options.d.ts +1241 -0
  230. package/types/core/section/constructor.d.ts +117 -652
  231. package/types/core/section/documentType.d.ts +43 -61
  232. package/types/events.d.ts +796 -65
  233. package/types/helper/clipboard.d.ts +5 -4
  234. package/types/helper/converter.d.ts +55 -43
  235. package/types/helper/dom/domCheck.d.ts +27 -19
  236. package/types/helper/dom/domQuery.d.ts +76 -57
  237. package/types/helper/dom/domUtils.d.ts +62 -39
  238. package/types/helper/dom/index.d.ts +87 -1
  239. package/types/helper/env.d.ts +16 -13
  240. package/types/helper/index.d.ts +8 -2
  241. package/types/helper/keyCodeMap.d.ts +24 -23
  242. package/types/helper/numbers.d.ts +4 -6
  243. package/types/helper/unicode.d.ts +4 -3
  244. package/types/hooks/base.d.ts +239 -0
  245. package/types/hooks/params.d.ts +65 -0
  246. package/types/index.d.ts +20 -117
  247. package/types/interfaces/contracts.d.ts +183 -0
  248. package/types/interfaces/index.d.ts +3 -0
  249. package/types/interfaces/plugins.d.ts +168 -0
  250. package/types/langs/_Lang.d.ts +2 -2
  251. package/types/langs/index.d.ts +2 -2
  252. package/types/modules/contract/Browser.d.ts +262 -0
  253. package/types/modules/contract/ColorPicker.d.ts +99 -0
  254. package/types/modules/contract/Controller.d.ts +204 -0
  255. package/types/modules/contract/Figure.d.ts +529 -0
  256. package/types/modules/{HueSlider.d.ts → contract/HueSlider.d.ts} +39 -28
  257. package/types/modules/contract/Modal.d.ts +62 -0
  258. package/types/modules/contract/index.d.ts +7 -0
  259. package/types/modules/manager/ApiManager.d.ts +106 -0
  260. package/types/modules/manager/FileManager.d.ts +124 -0
  261. package/types/modules/manager/index.d.ts +3 -0
  262. package/types/modules/ui/ModalAnchorEditor.d.ts +152 -0
  263. package/types/modules/ui/SelectMenu.d.ts +107 -0
  264. package/types/modules/{_DragHandle.d.ts → ui/_DragHandle.d.ts} +1 -0
  265. package/types/modules/ui/index.d.ts +4 -0
  266. package/types/plugins/browser/audioGallery.d.ts +33 -41
  267. package/types/plugins/browser/fileBrowser.d.ts +42 -50
  268. package/types/plugins/browser/fileGallery.d.ts +33 -41
  269. package/types/plugins/browser/imageGallery.d.ts +30 -37
  270. package/types/plugins/browser/videoGallery.d.ts +33 -41
  271. package/types/plugins/command/blockquote.d.ts +4 -21
  272. package/types/plugins/command/exportPDF.d.ts +23 -33
  273. package/types/plugins/command/fileUpload.d.ts +80 -100
  274. package/types/plugins/command/list_bulleted.d.ts +9 -35
  275. package/types/plugins/command/list_numbered.d.ts +9 -35
  276. package/types/plugins/dropdown/align.d.ts +23 -46
  277. package/types/plugins/dropdown/backgroundColor.d.ts +35 -53
  278. package/types/plugins/dropdown/blockStyle.d.ts +45 -0
  279. package/types/plugins/dropdown/font.d.ts +18 -41
  280. package/types/plugins/dropdown/fontColor.d.ts +35 -53
  281. package/types/plugins/dropdown/hr.d.ts +26 -52
  282. package/types/plugins/dropdown/layout.d.ts +19 -25
  283. package/types/plugins/dropdown/lineHeight.d.ts +21 -39
  284. package/types/plugins/dropdown/list.d.ts +6 -34
  285. package/types/plugins/dropdown/paragraphStyle.d.ts +34 -45
  286. package/types/plugins/dropdown/table/index.d.ts +158 -0
  287. package/types/plugins/dropdown/table/render/table.html.d.ts +71 -0
  288. package/types/plugins/dropdown/table/render/table.menu.d.ts +59 -0
  289. package/types/plugins/dropdown/table/services/table.cell.d.ts +76 -0
  290. package/types/plugins/dropdown/table/services/table.clipboard.d.ts +26 -0
  291. package/types/plugins/dropdown/table/services/table.grid.d.ts +77 -0
  292. package/types/plugins/dropdown/table/services/table.resize.d.ts +72 -0
  293. package/types/plugins/dropdown/table/services/table.selection.d.ts +59 -0
  294. package/types/plugins/dropdown/table/services/table.style.d.ts +162 -0
  295. package/types/plugins/dropdown/table/shared/table.constants.d.ts +134 -0
  296. package/types/plugins/dropdown/table/shared/table.utils.d.ts +91 -0
  297. package/types/plugins/dropdown/template.d.ts +19 -25
  298. package/types/plugins/dropdown/textStyle.d.ts +23 -30
  299. package/types/plugins/field/mention.d.ts +66 -72
  300. package/types/plugins/index.d.ts +41 -40
  301. package/types/plugins/input/fontSize.d.ts +57 -96
  302. package/types/plugins/input/pageNavigator.d.ts +5 -8
  303. package/types/plugins/modal/audio.d.ts +60 -153
  304. package/types/plugins/modal/drawing.d.ts +16 -118
  305. package/types/plugins/modal/embed.d.ts +46 -166
  306. package/types/plugins/modal/image/index.d.ts +281 -0
  307. package/types/plugins/modal/image/render/image.html.d.ts +45 -0
  308. package/types/plugins/modal/image/services/image.size.d.ts +55 -0
  309. package/types/plugins/modal/image/services/image.upload.d.ts +24 -0
  310. package/types/plugins/modal/image/shared/image.constants.d.ts +17 -0
  311. package/types/plugins/modal/link.d.ts +46 -66
  312. package/types/plugins/modal/math.d.ts +17 -86
  313. package/types/plugins/modal/{video.d.ts → video/index.d.ts} +89 -221
  314. package/types/plugins/modal/video/render/video.html.d.ts +37 -0
  315. package/types/plugins/modal/video/services/video.size.d.ts +74 -0
  316. package/types/plugins/modal/video/services/video.upload.d.ts +19 -0
  317. package/types/plugins/popup/anchor.d.ts +8 -38
  318. package/types/suneditor.d.ts +55 -24
  319. package/types/typedef.d.ts +344 -228
  320. package/CONTRIBUTING.md +0 -186
  321. package/src/core/base/eventHandlers/handler_ww_key_input.js +0 -1200
  322. package/src/core/base/eventHandlers/handler_ww_mouse.js +0 -194
  323. package/src/core/base/eventManager.js +0 -1523
  324. package/src/core/class/component.js +0 -856
  325. package/src/core/class/format.js +0 -3433
  326. package/src/core/class/menu.js +0 -346
  327. package/src/core/class/selection.js +0 -610
  328. package/src/core/class/shortcuts.js +0 -98
  329. package/src/core/class/toolbar.js +0 -431
  330. package/src/core/class/ui.js +0 -424
  331. package/src/core/class/viewer.js +0 -750
  332. package/src/core/section/actives.js +0 -266
  333. package/src/core/section/context.js +0 -102
  334. package/src/editorInjector/_classes.js +0 -36
  335. package/src/editorInjector/_core.js +0 -87
  336. package/src/editorInjector/index.js +0 -73
  337. package/src/modules/ApiManager.js +0 -191
  338. package/src/modules/Controller.js +0 -474
  339. package/src/modules/Modal.js +0 -346
  340. package/src/modules/index.js +0 -14
  341. package/src/plugins/dropdown/table.js +0 -4034
  342. package/src/plugins/modal/image.js +0 -1376
  343. package/src/plugins/modal/video.js +0 -1226
  344. package/types/core/base/eventHandlers/handler_toolbar.d.ts +0 -41
  345. package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +0 -40
  346. package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +0 -35
  347. package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +0 -45
  348. package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +0 -39
  349. package/types/core/base/eventManager.d.ts +0 -401
  350. package/types/core/class/char.d.ts +0 -61
  351. package/types/core/class/component.d.ts +0 -213
  352. package/types/core/class/format.d.ts +0 -623
  353. package/types/core/class/html.d.ts +0 -430
  354. package/types/core/class/menu.d.ts +0 -126
  355. package/types/core/class/nodeTransform.d.ts +0 -93
  356. package/types/core/class/offset.d.ts +0 -522
  357. package/types/core/class/selection.d.ts +0 -188
  358. package/types/core/class/shortcuts.d.ts +0 -142
  359. package/types/core/class/toolbar.d.ts +0 -189
  360. package/types/core/class/ui.d.ts +0 -164
  361. package/types/core/class/viewer.d.ts +0 -140
  362. package/types/core/section/actives.d.ts +0 -46
  363. package/types/core/section/context.d.ts +0 -45
  364. package/types/editorInjector/_classes.d.ts +0 -41
  365. package/types/editorInjector/_core.d.ts +0 -87
  366. package/types/editorInjector/index.d.ts +0 -69
  367. package/types/modules/ApiManager.d.ts +0 -125
  368. package/types/modules/Browser.d.ts +0 -326
  369. package/types/modules/ColorPicker.d.ts +0 -135
  370. package/types/modules/Controller.d.ts +0 -251
  371. package/types/modules/Figure.d.ts +0 -517
  372. package/types/modules/FileManager.d.ts +0 -202
  373. package/types/modules/Modal.d.ts +0 -111
  374. package/types/modules/ModalAnchorEditor.d.ts +0 -236
  375. package/types/modules/SelectMenu.d.ts +0 -194
  376. package/types/modules/index.d.ts +0 -26
  377. package/types/plugins/dropdown/formatBlock.d.ts +0 -55
  378. package/types/plugins/dropdown/table.d.ts +0 -627
  379. package/types/plugins/modal/image.d.ts +0 -451
  380. /package/{LICENSE → LICENSE.txt} +0 -0
@@ -0,0 +1,128 @@
1
+ import type {} from '../../../typedef';
2
+ export default Toolbar;
3
+ /**
4
+ * @description Toolbar class
5
+ */
6
+ declare class Toolbar {
7
+ /**
8
+ * @constructor
9
+ * @param {SunEditor.Kernel} kernel
10
+ * @param {Object} options - Toolbar options
11
+ * @param {"toolbar"|"toolbar_sub"} options.keyName - Toolbar key name
12
+ * @param {boolean} options.balloon - Balloon toolbar
13
+ * @param {boolean} options.inline - Inline toolbar
14
+ * @param {boolean} options.balloonAlways - Balloon toolbar always show
15
+ * @param {Array<Node>} options.res - Responsive toolbar button list
16
+ */
17
+ constructor(
18
+ kernel: SunEditor.Kernel,
19
+ {
20
+ keyName,
21
+ balloon,
22
+ inline,
23
+ balloonAlways,
24
+ res,
25
+ }: {
26
+ keyName: 'toolbar' | 'toolbar_sub';
27
+ balloon: boolean;
28
+ inline: boolean;
29
+ balloonAlways: boolean;
30
+ res: Array<Node>;
31
+ },
32
+ );
33
+ isSub: boolean;
34
+ /**
35
+ * @type {Object}
36
+ * @description Key names for the toolbar elements.
37
+ * @property {"toolbar_sub_main"|"toolbar_main"} main - Main toolbar key name
38
+ * @property {"toolbar_sub_buttonTray"|"toolbar_buttonTray"} buttonTray - Button tray key name
39
+ * @property {"toolbar_sub_width"|"toolbar_width"} width - Toolbar width key name
40
+ */
41
+ keyName: any;
42
+ currentMoreLayerActiveButton: HTMLButtonElement;
43
+ isSticky: boolean;
44
+ isBalloonMode: boolean;
45
+ isInlineMode: boolean;
46
+ isBalloonAlwaysMode: boolean;
47
+ inlineToolbarAttr: {
48
+ top: string;
49
+ width: string;
50
+ isShow: boolean;
51
+ };
52
+ balloonOffset: {
53
+ top: number;
54
+ left: number;
55
+ };
56
+ /**
57
+ * @description Disables all toolbar buttons.
58
+ */
59
+ disable(): void;
60
+ /**
61
+ * @description Enables all toolbar buttons.
62
+ */
63
+ enable(): void;
64
+ /**
65
+ * @description Shows the toolbar.
66
+ */
67
+ show(): void;
68
+ /**
69
+ * @description Hides the toolbar.
70
+ */
71
+ hide(): void;
72
+ /**
73
+ * @description Reset buttons of the responsive toolbar.
74
+ */
75
+ resetResponsiveToolbar(): void;
76
+ /**
77
+ * @description Reset the buttons on the toolbar. (Editor is not reloaded.)
78
+ * - You cannot set a new plugin for the button.
79
+ * @param {Array} buttonList Button list
80
+ */
81
+ setButtons(buttonList: any[]): void;
82
+ /**
83
+ * @internal
84
+ * @description Reset the sticky toolbar position based on the editor state.
85
+ */
86
+ _resetSticky(): void;
87
+ /**
88
+ * @internal
89
+ * @description Set up responsive behavior for the toolbar buttons.
90
+ */
91
+ _setResponsive(): void;
92
+ /**
93
+ * @internal
94
+ * @description Show the `balloon` toolbar based on the current selection.
95
+ * @param {?Range} [rangeObj] - Selection range
96
+ */
97
+ _showBalloon(rangeObj?: Range | null): void;
98
+ /**
99
+ * @internal
100
+ * @description Adjust the `balloon` toolbar's position.
101
+ * @param {boolean} positionTop - Whether the toolbar should be positioned above the selection
102
+ * @param {Range} [range] - Selection range
103
+ */
104
+ _setBalloonOffset(positionTop: boolean, range?: Range): void;
105
+ /**
106
+ * @internal
107
+ * @description Show the `inline` toolbar mode.
108
+ */
109
+ _showInline(): void;
110
+ /**
111
+ * @internal
112
+ * @description Show a more options layer for toolbar buttons.
113
+ * @param {Node} button - Button element
114
+ * @param {Node} layer - More options layer element
115
+ */
116
+ _moreLayerOn(button: Node, layer: Node): void;
117
+ /**
118
+ * @internal
119
+ * @description Hide the currently active more options layer.
120
+ */
121
+ _moreLayerOff(): void;
122
+ /**
123
+ * @internal
124
+ * @description Destroy the Toolbar instance and release memory
125
+ */
126
+ _destroy(): void;
127
+ #private;
128
+ }
@@ -0,0 +1,89 @@
1
+ import type {} from '../../../typedef';
2
+ export default Viewer;
3
+ /**
4
+ * @description Viewer (`codeView`, `fullScreen`, `showBlocks`) class
5
+ */
6
+ declare class Viewer {
7
+ /**
8
+ * @constructor
9
+ * @param {SunEditor.Kernel} kernel
10
+ */
11
+ constructor(kernel: SunEditor.Kernel);
12
+ /**
13
+ * @description Changes to code view or wysiwyg view
14
+ * @param {boolean} [value] `true`/`false`, If `undefined` toggle the `codeView` mode.
15
+ */
16
+ codeView(value?: boolean): void;
17
+ /**
18
+ * @description Changes to full screen or default screen
19
+ * @param {boolean} [value] `true`/`false`, If `undefined` toggle the `fullScreen` mode.
20
+ */
21
+ fullScreen(value?: boolean): void;
22
+ /**
23
+ * @description Add or remove the class name of `body` so that the code block is visible
24
+ * @param {boolean} [value] `true`/`false`, If `undefined` toggle the `showBlocks` mode.
25
+ */
26
+ showBlocks(value?: boolean): void;
27
+ /**
28
+ * @internal
29
+ * @description Set the `active` class to the button of the toolbar
30
+ */
31
+ _setButtonsActive(): void;
32
+ /**
33
+ * @description Prints the current content of the editor.
34
+ * @throws {Error} Throws error if print operation fails.
35
+ */
36
+ print(): void;
37
+ /**
38
+ * @description Open the preview window.
39
+ */
40
+ preview(): void;
41
+ /**
42
+ * @internal
43
+ * @description Resets the full-screen height of the editor.
44
+ * - Updates the editor's height dynamically when in full-screen mode.
45
+ */
46
+ _resetFullScreenHeight(): boolean;
47
+ /**
48
+ * @internal
49
+ * @description Run `CodeMirror` Editor
50
+ * @param {"set"|"get"|"readonly"|"refresh"} key Method key
51
+ * @param {*} value `CodeMirror` params
52
+ * @param {string} [rootKey] Root key
53
+ */
54
+ _codeMirrorEditor(key: 'set' | 'get' | 'readonly' | 'refresh', value: any, rootKey?: string): any;
55
+ /**
56
+ * @internal
57
+ * @description Set method in the code view area
58
+ * @param {string} value HTML string
59
+ */
60
+ _setCodeView(value: string): void;
61
+ /**
62
+ * @internal
63
+ * @description Get method in the code view area
64
+ */
65
+ _getCodeView(): any;
66
+ /**
67
+ * @internal
68
+ * @description Adjusts the height of the code view area.
69
+ * - Ensures the code block `auto`-resizes based on its content.
70
+ * @param {HTMLElement} code - Code area
71
+ * @param {HTMLTextAreaElement} codeNumbers - Code numbers area
72
+ * @param {boolean} isAuto - `auto` height option
73
+ */
74
+ _codeViewAutoHeight(code: HTMLElement, codeNumbers: HTMLTextAreaElement, isAuto: boolean): void;
75
+ /**
76
+ * @internal
77
+ * @this {HTMLElement} Code numbers area
78
+ * @description Synchronizes scrolling of line numbers with the code editor.
79
+ * - Keeps the line numbers aligned with the text.
80
+ * @param {HTMLTextAreaElement} codeNumbers - Code numbers textarea
81
+ */
82
+ _scrollLineNumbers(this: HTMLElement, codeNumbers: HTMLTextAreaElement): void;
83
+ /**
84
+ * @internal
85
+ * @description Destroy the Viewer instance and release memory
86
+ */
87
+ _destroy(): void;
88
+ #private;
89
+ }
@@ -0,0 +1,18 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @description Executes built-in editor commands (formatting, undo/redo, save, codeView, etc.)
4
+ * - and manages copy-format state.
5
+ */
6
+ export default class CommandExecutor {
7
+ /**
8
+ * @constructor
9
+ * @param {SunEditor.Kernel} kernel
10
+ */
11
+ constructor(kernel: SunEditor.Kernel);
12
+ /**
13
+ * @description Execute default command of command button
14
+ */
15
+ execute(command: any, button: any): Promise<void>;
16
+ copyFormat(): void;
17
+ #private;
18
+ }
@@ -0,0 +1,65 @@
1
+ import type {} from '../../../typedef';
2
+ export const COMMAND_BUTTONS: '.se-menu-list .se-toolbar-btn[data-command]';
3
+ /**
4
+ * @description Routes toolbar button commands to their handlers and manages active button states.
5
+ */
6
+ export default class CommandDispatcher {
7
+ /**
8
+ * @constructor
9
+ * @param {SunEditor.Kernel} kernel
10
+ */
11
+ constructor(kernel: SunEditor.Kernel);
12
+ /**
13
+ * @description All command buttons map
14
+ * @type {Map<string, HTMLElement>}
15
+ */
16
+ allCommandButtons: Map<string, HTMLElement>;
17
+ /**
18
+ * @description All command buttons map
19
+ * @type {Map<string, HTMLElement>}
20
+ */
21
+ subAllCommandButtons: Map<string, HTMLElement>;
22
+ get targets(): Map<string, HTMLButtonElement[]>;
23
+ /**
24
+ * @description Returns the active commands array.
25
+ * @returns {Array<string>}
26
+ */
27
+ get activeCommands(): Array<string>;
28
+ /**
29
+ * @description Run plugin calls and basic commands.
30
+ * @param {string} command Command string
31
+ * @param {string} type Display type string (`command`, `dropdown`, `modal`, `container`)
32
+ * @param {?Node} [button] The element of command button
33
+ */
34
+ run(command: string, type: string, button?: Node | null): void;
35
+ /**
36
+ * @description Execute `editor.run` with command button.
37
+ * @param {Node} target Command target
38
+ */
39
+ runFromTarget(target: Node): void;
40
+ /**
41
+ * @description It is executed by inserting the button of `commandTargets` as the argument value of the `func` function.
42
+ * - `func` is called as long as the button array's length.
43
+ * @param {string} cmd data-command
44
+ * @param {(...args: *) => *} func Function.
45
+ */
46
+ applyTargets(cmd: string, func: (...args: any) => any): void;
47
+ /**
48
+ * @description Sets command target elements.
49
+ * @param {string} cmd - The command identifier.
50
+ * @param {HTMLButtonElement} target - The associated command button.
51
+ */
52
+ registerTargets(cmd: string, target: HTMLButtonElement): void;
53
+ resetTargets(): void;
54
+ /**
55
+ * @internal
56
+ * @description Caching basic buttons to use
57
+ */
58
+ _initCommandButtons(): void;
59
+ _copyFormat(): void;
60
+ /**
61
+ * @description Destroy the CommandDispatcher
62
+ */
63
+ _destroy(): void;
64
+ #private;
65
+ }
@@ -0,0 +1,182 @@
1
+ import type {} from '../../../typedef';
2
+ export default Component;
3
+ /**
4
+ * @description Class for managing components such as images and tables that are not in `line` format
5
+ */
6
+ declare class Component {
7
+ /**
8
+ * @constructor
9
+ * @param {SunEditor.Kernel} kernel
10
+ */
11
+ constructor(kernel: SunEditor.Kernel);
12
+ /**
13
+ * @description The current component information, used copy, cut, and keydown events
14
+ * @type {SunEditor.ComponentInfo}
15
+ */
16
+ info: SunEditor.ComponentInfo;
17
+ /**
18
+ * @description Component is selected
19
+ * @type {boolean}
20
+ */
21
+ isSelected: boolean;
22
+ /**
23
+ * @description Currently selected component target
24
+ * @type {?Node}
25
+ */
26
+ currentTarget: Node | null;
27
+ /**
28
+ * @description Currently selected component plugin instance
29
+ * @type {*}
30
+ */
31
+ currentPlugin: any;
32
+ /**
33
+ * @description Currently selected component plugin name
34
+ * @type {*}
35
+ */
36
+ currentPluginName: any;
37
+ /**
38
+ * @description Currently selected component information
39
+ * @type {?SunEditor.ComponentInfo}
40
+ */
41
+ currentInfo: SunEditor.ComponentInfo | null;
42
+ /** @internal */
43
+ __selectionSelected: boolean;
44
+ /** @internal */
45
+ __prevent: boolean;
46
+ /**
47
+ * @description Initialize eventManager reference after EventManager is created.
48
+ */
49
+ _init(): void;
50
+ /**
51
+ * @description Inserts an element and returns it. (Used for elements: table, hr, image, video)
52
+ * - If `element` is `HR`, inserts and returns the new line.
53
+ * @param {Node} element Element to be inserted
54
+ * @param {Object} [options] Options
55
+ * @param {boolean} [options.skipCharCount=false] If `true`, it will be inserted even if `frameOptions.get('charCounter_max')` is exceeded.
56
+ * @param {boolean} [options.skipHistory=false] If `true`, do not push to history.
57
+ * @param {boolean} [options.scrollTo=true] `true` : Scroll to the inserted element, `false` : Do not scroll.
58
+ * @param {SunEditor.ComponentInsertType} [options.insertBehavior] If `true`, do not automatically select the inserted component. [default: `options.get('componentInsertBehavior')`]
59
+ * - If `null`, no action is performed after insertion.
60
+ * @returns {HTMLElement} The inserted element or new line (for HR)
61
+ */
62
+ insert(
63
+ element: Node,
64
+ {
65
+ skipCharCount,
66
+ skipHistory,
67
+ scrollTo,
68
+ insertBehavior,
69
+ }?: {
70
+ skipCharCount?: boolean;
71
+ skipHistory?: boolean;
72
+ scrollTo?: boolean;
73
+ insertBehavior?: SunEditor.ComponentInsertType;
74
+ },
75
+ ): HTMLElement;
76
+ /**
77
+ * @description Handles post-insertion behavior for a newly created component based on the specified mode.
78
+ * @param {Node} container The inserted component element.
79
+ * @param {?Node} [oNode] Optional node to use for selection if the component cannot be selected.
80
+ * @param {SunEditor.ComponentInsertType} [insertBehavior] Behavior mode after component insertion.
81
+ */
82
+ applyInsertBehavior(container: Node, oNode?: Node | null, insertBehavior?: SunEditor.ComponentInsertType): void;
83
+ /**
84
+ * @description Gets the file component and that plugin name
85
+ * - return: {target, component, pluginName} | null
86
+ * @param {Node} element Target element (figure tag, component div, file tag)
87
+ * @returns {SunEditor.ComponentInfo|null}
88
+ */
89
+ get(element: Node): SunEditor.ComponentInfo | null;
90
+ /**
91
+ * @description The component(media, file component, table, etc) is selected and the resizing module is called.
92
+ * @param {Node} element Target element
93
+ * @param {string} pluginName The plugin name for the selected target.
94
+ * @param {Object} [options] Options
95
+ * @param {boolean} [options.isInput=false] Whether the target is an input component (table).
96
+ */
97
+ select(
98
+ element: Node,
99
+ pluginName: string,
100
+ {
101
+ isInput,
102
+ }?: {
103
+ isInput?: boolean;
104
+ },
105
+ ): boolean;
106
+ /**
107
+ * @description Deselects the selected component.
108
+ */
109
+ deselect(): void;
110
+ /**
111
+ * @description Determines if the specified node is a block component (e.g., img, iframe, video, audio, table) with the class `se-component`
112
+ * - or a direct `FIGURE` node. This function checks if the node itself is a component
113
+ * - or if it belongs to any components identified by the component manager.
114
+ * @param {Node} element The DOM node to check.
115
+ * @returns {boolean} True if the node is a block component or part of it, otherwise false.
116
+ */
117
+ is(element: Node): boolean;
118
+ /**
119
+ * @description Checks if the given node is an inline component (class `se-inline-component`).
120
+ * - If the node is a `FIGURE`, it checks the parent element instead.
121
+ * - It also verifies whether the node is part of an inline component recognized by the component manager.
122
+ * @param {Node} element The DOM node to check.
123
+ * @returns {boolean} True if the node is an inline component or part of it, otherwise false.
124
+ */
125
+ isInline(element: Node): boolean;
126
+ /**
127
+ * @description Checks if the specified node qualifies as a basic component within the editor.
128
+ * - This function verifies whether the node is recognized as a component by the `is` function, while also ensuring that it is not an inline component as determined by the `isInline` function.
129
+ * - This is used to identify block-level elements or standalone components that are not part of the inline component classification.
130
+ * @param {Node} element The DOM node to check.
131
+ * @returns {boolean} True if the node is a basic (non-inline) component, otherwise false.
132
+ */
133
+ isBasic(element: Node): boolean;
134
+ /**
135
+ * @description Copies the specified component node to the clipboard.
136
+ * - This function is different from the one called when the user presses the `Ctrl + C` key combination.
137
+ * @param {Node} container The DOM node to check.
138
+ */
139
+ copy(container: Node): Promise<void>;
140
+ /**
141
+ * @description Temporarily selects a component without showing its controller.
142
+ * This is a lightweight selection mode used for:
143
+ * - Mouse hover: Shows visual selection while hovering, auto-deselects on mouse out
144
+ * - Table column/row resize: Maintains selection after resize without showing controller
145
+ *
146
+ * Key differences from `select()`:
147
+ * - Does NOT show the component's controller (resize handles, toolbar, etc.)
148
+ * - Sets `__overInfo` flag so selection is automatically cleared on mouse out
149
+ * - Calling `select()` afterward will upgrade to full selection with controller
150
+ *
151
+ * @param {Element} target The element to hover-select
152
+ */
153
+ hoverSelect(target: Element): void;
154
+ /**
155
+ * @internal
156
+ * @description Deselects the currently selected component, removing any selection effects and associated event listeners.
157
+ * - This method resets the selection state and hides UI elements related to the component selection.
158
+ */
159
+ __deselect(): void;
160
+ /**
161
+ * @internal
162
+ * @description Set line breaker of component
163
+ * @param {HTMLElement} element Element tag
164
+ */
165
+ _setComponentLineBreaker(element: HTMLElement): void;
166
+ /**
167
+ * @internal
168
+ * @description Removes global event listeners that were previously added for component interactions.
169
+ */
170
+ __removeGlobalEvent(): void;
171
+ /**
172
+ * @internal
173
+ * @description Removes drag-related events and resets drag-related states.
174
+ */
175
+ __removeDragEvent(): void;
176
+ /**
177
+ * @internal
178
+ * @description Destroy the Component instance and release memory
179
+ */
180
+ _destroy(): void;
181
+ #private;
182
+ }
@@ -0,0 +1,31 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @description Manages editor focus and blur behavior across frames and controllers.
4
+ */
5
+ export default class FocusManager {
6
+ /**
7
+ * @constructor
8
+ * @param {SunEditor.Kernel} kernel
9
+ */
10
+ constructor(kernel: SunEditor.Kernel);
11
+ /**
12
+ * @description Focus to wysiwyg area
13
+ * @param {*} [rootKey] Root frame key.
14
+ */
15
+ focus(rootKey?: any): void;
16
+ /**
17
+ * @description If `focusEl` is a component, then that component is selected; if it is a format element, the last text is selected
18
+ * - If `focusEl` is `null`, then selected last element
19
+ * @param {?Node} [focusEl] Focus element
20
+ */
21
+ focusEdge(focusEl?: Node | null): void;
22
+ /**
23
+ * @description Focus to wysiwyg area using native focus function
24
+ */
25
+ nativeFocus(): void;
26
+ /**
27
+ * @description Focusout to wysiwyg area (.blur())
28
+ */
29
+ blur(): void;
30
+ #private;
31
+ }
@@ -1,17 +1,18 @@
1
+ import type {} from '../../../typedef';
1
2
  /**
2
3
  * @description History stack closure
3
- * @param {__se__EditorCore} editor - The root editor instance
4
+ * @param {SunEditor.Kernel} kernel
4
5
  */
5
- export default function History(editor: __se__EditorCore): {
6
+ export default function History(kernel: SunEditor.Kernel): {
6
7
  /**
7
8
  * @description Saving the current status to the history object stack
8
- * - If "delay" is true, it will be saved after (options.get('historyStackDelayTime') || 400) milliseconds.
9
- * - If the function is called again with the "delay" argument true before it is saved, the delay time is renewed.
9
+ * - If `delay` is `true`, it will be saved after (`options.get('historyStackDelayTime')` || 400) milliseconds.
10
+ * - If the function is called again with the `delay` argument `true` before it is saved, the delay time is renewed.
10
11
  * - You can specify the delay time by sending a number.
11
- * @param {boolean|number} delay If true, add stack without delay time.
12
- * @param {*=} [rootKey] The key of the root frame to save history for.
12
+ * @param {boolean|number} delay If `true`, add stack without delay time.
13
+ * @param {*} [rootKey] The key of the root frame to save history for.
13
14
  */
14
- push(delay: boolean | number, rootKey?: any | undefined): void;
15
+ push(delay: boolean | number, rootKey?: any): void;
15
16
  /**
16
17
  * @description Immediately saves the current state to the history stack if a delayed save is pending.
17
18
  * @param {*} rootKey The key of the root frame.
@@ -28,9 +29,9 @@ export default function History(editor: __se__EditorCore): {
28
29
  redo(): void;
29
30
  /**
30
31
  * @description Overwrites the current state in the history stack with the latest content.
31
- * @param {string=} [rootKey] The key of the root frame to overwrite.
32
+ * @param {string} [rootKey] The key of the root frame to overwrite.
32
33
  */
33
- overwrite(rootKey?: string | undefined): void;
34
+ overwrite(rootKey?: string): void;
34
35
  /**
35
36
  * @description Pauses the history stack, preventing new entries from being added for up to 5 seconds.
36
37
  */
@@ -53,8 +54,8 @@ export default function History(editor: __se__EditorCore): {
53
54
  * @description Returns the root stack containing the history of each frame.
54
55
  * @returns {{content: string, s: {path: number|number[], offset: number|number[]}, e: {path: number|number[], offset: number|number[]}, frame: HTMLElement}} The root stack object.
55
56
  * - content: content html string
56
- * - s: depth info of the "start" range
57
- * - e: depth info of the "end" range
57
+ * - s: depth info of the `start` range
58
+ * - e: depth info of the `end` range
58
59
  * - frame: wysiwyg editable element.
59
60
  */
60
61
  getRootStack(): {
@@ -77,5 +78,5 @@ export default function History(editor: __se__EditorCore): {
77
78
  /**
78
79
  * @description Clears the entire history stack and cancels any pending save operations.
79
80
  */
80
- destroy(): void;
81
+ _destroy(): void;
81
82
  };
@@ -0,0 +1,115 @@
1
+ import type {} from '../../../typedef';
2
+ export default PluginManager;
3
+ export type PluginEventParam = {
4
+ frameContext: SunEditor.FrameContext;
5
+ event: Event;
6
+ data?: string;
7
+ line?: Node;
8
+ range?: Range;
9
+ file?: File;
10
+ doc?: Document;
11
+ };
12
+ export type ComponentChecker = (element: Node | null) => any;
13
+ /**
14
+ * @typedef {Object} PluginEventParam
15
+ * @property {SunEditor.FrameContext} frameContext
16
+ * @property {Event} event
17
+ * @property {string} [data]
18
+ * @property {Node} [line]
19
+ * @property {Range} [range]
20
+ * @property {File} [file]
21
+ * @property {Document} [doc]
22
+ */
23
+ /**
24
+ * @typedef {(element: Node | null) => * } ComponentChecker
25
+ */
26
+ /**
27
+ * @description Manages plugin registration and state.
28
+ * Extracts `plugin` related responsibilities from the monolithic `Editor` class.
29
+ */
30
+ declare class PluginManager {
31
+ /**
32
+ * @constructor
33
+ * @param {SunEditor.Kernel} kernel
34
+ * @param {import('../../section/constructor').ConstructorReturnType} [product] - Initial editor context
35
+ */
36
+ constructor(kernel: SunEditor.Kernel, product?: import('../../section/constructor').ConstructorReturnType);
37
+ /**
38
+ * @description Returns the plugins object.
39
+ * @returns {Object<string, *>}
40
+ */
41
+ get plugins(): {
42
+ [x: string]: any;
43
+ };
44
+ /**
45
+ * @description Returns the file component management object.
46
+ * @returns {Object<string, *>}
47
+ */
48
+ get fileInfo(): {
49
+ [x: string]: any;
50
+ };
51
+ /**
52
+ * @description Finds component information for the given element.
53
+ * @param {Node} element The DOM element to check.
54
+ * @returns {SunEditor.ComponentInfo|null}
55
+ */
56
+ findComponentInfo(element: Node): SunEditor.ComponentInfo | null;
57
+ /**
58
+ * @description Apply retain format rules from plugins to the parsed DOM
59
+ * @param {DocumentFragment|Document} domParser
60
+ */
61
+ applyRetainFormat(domParser: DocumentFragment | Document): void;
62
+ /**
63
+ * @description Dispatches an event to all registered plugin handlers synchronously.
64
+ * @param {string} name The event name (e.g., 'onMouseMove', 'onFocus')
65
+ * @param {PluginEventParam} e The event payload
66
+ * @returns {boolean|undefined} Returns false if any handler cancels the event
67
+ */
68
+ emitEvent(name: string, e: PluginEventParam): boolean | undefined;
69
+ /**
70
+ * @description Dispatches an event to all registered plugin handlers asynchronously.
71
+ * @param {string} name The event name (e.g., 'onKeyDown', 'onPaste')
72
+ * @param {PluginEventParam} e The event payload
73
+ * @returns {Promise<boolean|undefined>} Returns false if any handler cancels the event
74
+ */
75
+ emitEventAsync(name: string, e: PluginEventParam): Promise<boolean | undefined>;
76
+ /**
77
+ * @description Check the components such as image and video and modify them according to the format.
78
+ * @param {boolean} loaded If `true`, the component is loaded.
79
+ */
80
+ checkFileInfo(loaded: boolean): void;
81
+ /**
82
+ * @description Initialize the information of the components.
83
+ */
84
+ resetFileInfo(): void;
85
+ /**
86
+ * @description If the plugin is not added, add the plugin and call the `add` function.
87
+ * - If the plugin is added call `callBack` function.
88
+ * @param {string} pluginName The name of the plugin to call
89
+ * @param {?Array<HTMLElement>} targets Plugin target button
90
+ * @param {?Object<string, *>} pluginOptions Plugin's options
91
+ */
92
+ register(
93
+ pluginName: string,
94
+ targets: Array<HTMLElement> | null,
95
+ pluginOptions: {
96
+ [x: string]: any;
97
+ } | null,
98
+ ): void;
99
+ /**
100
+ * @description Initialize the plugin manager and register plugins.
101
+ * @param {SunEditor.InitOptions} options
102
+ */
103
+ init(options: SunEditor.InitOptions): void;
104
+ /**
105
+ * @description Get a specific plugin instance
106
+ * @param {string} name
107
+ * @returns {*}
108
+ */
109
+ get(name: string): any;
110
+ /**
111
+ * @description Destroy the plugin manager
112
+ */
113
+ _destroy(): void;
114
+ #private;
115
+ }