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,168 @@
1
+ import type {} from '../typedef';
2
+ /**
3
+ * @abstract
4
+ * @interface
5
+ * Base class for Browser plugins
6
+ * Child classes MUST implement open(), close(), and onSelectFile() methods
7
+ */
8
+ export class PluginBrowser extends Base {
9
+ /**
10
+ * @abstract
11
+ * @description Executes the method that is called when a `Browser` module's is opened.
12
+ * @param {?(target: Node) => *} [onSelectfunction] - Method to be executed after selecting an item in the gallery
13
+ * @returns {void}
14
+ */
15
+ open(onSelectfunction?: ((target: Node) => any) | null): void;
16
+ /**
17
+ * @abstract
18
+ * @description Executes the method that is called when a `Browser` module's is closed.
19
+ * @returns {void}
20
+ */
21
+ close(): void;
22
+ }
23
+ /**
24
+ * @abstract
25
+ * @interface
26
+ * Base class for Command plugins
27
+ * Child classes MUST implement the action() method
28
+ */
29
+ export class PluginCommand extends Base {
30
+ /**
31
+ * @abstract
32
+ * @description Executes the main execution method of the plugin.
33
+ * - It is executed by clicking a toolbar `command` button or calling an API.
34
+ * - MUST be overridden by child classes
35
+ * @param {HTMLElement} [target] - The plugin's toolbar button element
36
+ * @returns {void | Promise<void>}
37
+ */
38
+ action(target?: HTMLElement): void | Promise<void>;
39
+ }
40
+ /**
41
+ * @abstract
42
+ * @interface
43
+ * Base class for Dropdown plugins
44
+ * Child classes MUST implement the action() method
45
+ * Child classes MAY optionally implement on() and off() methods
46
+ */
47
+ export class PluginDropdown extends Base {
48
+ /**
49
+ * @optional
50
+ * @description Executes the method that is called when a plugin's dropdown menu is opened.
51
+ * @param {HTMLElement} [target] - The dropdown target element
52
+ * @returns {void}
53
+ */
54
+ on?(target?: HTMLElement): void;
55
+ /**
56
+ * @abstract
57
+ * @description Executes the main execution method of the plugin.
58
+ * - Called when an item in the `dropdown` menu is clicked.
59
+ * - MUST be overridden by child classes
60
+ * @param {HTMLElement} target - The clicked dropdown item element
61
+ * @returns {void | Promise<void>}
62
+ */
63
+ action(target: HTMLElement): void | Promise<void>;
64
+ }
65
+ /**
66
+ * @abstract
67
+ * @interface
68
+ * Base class for Dropdown-Free plugins
69
+ * These plugins handle their own event logic without automatic action() calls
70
+ * Typically used for complex UI components like ColorPicker or Table
71
+ * Child classes MAY optionally implement on() and off() methods
72
+ */
73
+ export class PluginDropdownFree extends Base {
74
+ /**
75
+ * @optional
76
+ * @description Executes the method that is called when a plugin's dropdown menu is opened.
77
+ * @param {HTMLElement} [target] - The dropdown target element
78
+ * @returns {void}
79
+ */
80
+ on?(target?: HTMLElement): void;
81
+ /**
82
+ * @optional
83
+ * @description Executes the method that is called when a plugin's dropdown menu is closed.
84
+ * @returns {void}
85
+ */
86
+ off?(): void;
87
+ }
88
+ /**
89
+ * @abstract
90
+ * @interface
91
+ * Base class for Field plugins
92
+ * These plugins typically respond to input events in the wysiwyg area
93
+ *
94
+ * **Commonly used hooks:**
95
+ * - `onInput()` - Responds to input events in the editor (See: `mention` plugin)
96
+ * - Other event hooks can be used as needed (`onKeydown`, `onClick`, etc.)
97
+ *
98
+ * Child classes MAY optionally implement event hook methods
99
+ * @see {Mention} - Example implementation using onInput hook
100
+ */
101
+ export class PluginField extends Base {}
102
+ export class PluginInput extends Base {
103
+ /**
104
+ * @optional
105
+ * @description Executes the event function of toolbar's input tag - `keydown`.
106
+ * @param {SunEditor.HookParams.ToolbarInputKeyDown} params - Input event information
107
+ * @returns {void}
108
+ */
109
+ toolbarInputKeyDown?(params: SunEditor.HookParams.ToolbarInputKeyDown): void;
110
+ /**
111
+ * @optional
112
+ * @description Executes the event function of toolbar's input tag - `change`.
113
+ * @param {SunEditor.HookParams.ToolbarInputChange} params - Input event information
114
+ * @returns {void}
115
+ */
116
+ toolbarInputChange?(params: SunEditor.HookParams.ToolbarInputChange): void;
117
+ }
118
+ export class PluginModal extends Base {
119
+ /**
120
+ * @abstract
121
+ * Opens the modal window (Plugin's public API called by toolbar/external code)
122
+ * @param {HTMLElement} [target] - The plugin's toolbar button element
123
+ * @returns {void}
124
+ */
125
+ open(target?: HTMLElement): void;
126
+ }
127
+ export class PluginPopup extends Base {
128
+ /**
129
+ * @abstract
130
+ * Called when a popup is shown
131
+ * @returns {void}
132
+ */
133
+ show(): void;
134
+ }
135
+ /**
136
+ * @abstract
137
+ * Base class for all plugins - contains common properties
138
+ */
139
+ declare class Base extends KernelInjector {
140
+ /** @type {string} - Plugin type (`browser`|`command`|`dropdown`|`field`|`input`|`modal`|`popup`) */
141
+ static type: string;
142
+ /** @type {string} - Unique plugin identifier */
143
+ static key: string;
144
+ /** @type {string} - CSS class name for the plugin button */
145
+ static className: string;
146
+ /**
147
+ * Plugin-specific options
148
+ * @type {{eventIndex?: number, isInputComponent?: boolean}}
149
+ * @property {number} [eventIndex=0] - Plugin event handler execution priority (higher = later)
150
+ * @property {boolean} [isInputComponent=false] - Allow keyboard input inside component (e.g., table cells), prevents auto-selection on arrow keys
151
+ */
152
+ static options: {
153
+ eventIndex?: number;
154
+ isInputComponent?: boolean;
155
+ };
156
+ /** @type {string} */
157
+ title: string;
158
+ /** @type {string} */
159
+ icon: string;
160
+ /** @type {HTMLElement} */
161
+ beforeItem: HTMLElement;
162
+ /** @type {HTMLElement} */
163
+ afterItem: HTMLElement;
164
+ /** @type {HTMLElement} */
165
+ replaceButton: HTMLElement;
166
+ }
167
+ import KernelInjector from '../core/kernel/kernelInjector';
168
+ export {};
@@ -1,4 +1,4 @@
1
- export interface _Lang {
1
+ export type _Lang = {
2
2
  code: string;
3
3
  align: string;
4
4
  alignBottom: string;
@@ -191,4 +191,4 @@ export interface _Lang {
191
191
  width: string;
192
192
  message_copy_success: string;
193
193
  message_copy_fail: string;
194
- }
194
+ };
@@ -38,8 +38,8 @@ import he from './he';
38
38
  import hu from './hu';
39
39
  import it from './it';
40
40
  import ja from './ja';
41
- import ko from './ko';
42
41
  import km from './km';
42
+ import ko from './ko';
43
43
  import lv from './lv';
44
44
  import nl from './nl';
45
45
  import pl from './pl';
@@ -51,4 +51,4 @@ import tr from './tr';
51
51
  import uk from './uk';
52
52
  import ur from './ur';
53
53
  import zh_cn from './zh_cn';
54
- export { ckb, cs, da, de, en, es, fa, fr, he, hu, it, ja, ko, km, lv, nl, pl, pt_br, ro, ru, se, tr, uk, ur, zh_cn };
54
+ export { ckb, cs, da, de, en, es, fa, fr, he, hu, it, ja, km, ko, lv, nl, pl, pt_br, ro, ru, se, tr, uk, ur, zh_cn };
@@ -0,0 +1,262 @@
1
+ import type {} from '../../typedef';
2
+ export default Browser;
3
+ /**
4
+ * Browser file item structure
5
+ */
6
+ export type BrowserFile = {
7
+ /**
8
+ * - Source url
9
+ */
10
+ src?: string;
11
+ /**
12
+ * - File name | Folder name
13
+ */
14
+ name?: string;
15
+ /**
16
+ * - Thumbnail url
17
+ */
18
+ thumbnail?: string;
19
+ /**
20
+ * - Image alt
21
+ */
22
+ alt?: string;
23
+ /**
24
+ * - Tag name list
25
+ */
26
+ tag?: Array<string> | string;
27
+ /**
28
+ * - Type (image, video, audio, etc.)
29
+ */
30
+ type?: string;
31
+ /**
32
+ * - Frame name (iframe, video, etc.)
33
+ */
34
+ frame?: string;
35
+ /**
36
+ * - Whether this folder is the default selection.
37
+ */
38
+ default?: boolean;
39
+ /**
40
+ * - Metadata
41
+ */
42
+ meta?: {
43
+ [x: string]: any;
44
+ };
45
+ /**
46
+ * - Internal: The folder's contents or an API URL (⚠️ DO NOT USE directly)
47
+ */
48
+ _data?: BrowserFile | string;
49
+ };
50
+ export type BrowserParams = {
51
+ /**
52
+ * - File browser window title. Required. Can be overridden in browser.
53
+ */
54
+ title: string;
55
+ /**
56
+ * - Class name of the file browser. Optional. Default: ''.
57
+ */
58
+ className?: string;
59
+ /**
60
+ * - direct data without server calls
61
+ */
62
+ data?:
63
+ | {
64
+ [x: string]: any;
65
+ }
66
+ | Array<any>;
67
+ /**
68
+ * - File server url. Required. Can be overridden in browser.
69
+ */
70
+ url?: string;
71
+ /**
72
+ * - File server http header. Required. Can be overridden in browser.
73
+ */
74
+ headers?: {
75
+ [x: string]: string;
76
+ };
77
+ /**
78
+ * - Function that actions when an item is clicked. Required. Can be overridden in browser.
79
+ */
80
+ selectorHandler: (target: Node) => void;
81
+ /**
82
+ * - Whether to use the search function. Optional. Default: `true`.
83
+ */
84
+ useSearch?: boolean;
85
+ /**
86
+ * - File server search url. Optional. Can be overridden in browser.
87
+ */
88
+ searchUrl?: string;
89
+ /**
90
+ * - File server search http header. Optional. Can be overridden in browser.
91
+ */
92
+ searchUrlHeader?: {
93
+ [x: string]: string;
94
+ };
95
+ /**
96
+ * - Class name of list div. Required. Can be overridden in browser.
97
+ */
98
+ listClass?: string;
99
+ /**
100
+ * - Function that defines the HTML of a file item. Required. Can be overridden in browser.
101
+ */
102
+ drawItemHandler?: (item: BrowserFile) => string;
103
+ /**
104
+ * - `props` argument to `drawItemHandler` function. Optional. Can be overridden in browser.
105
+ */
106
+ props?: Array<any>;
107
+ /**
108
+ * - Number of `div.se-file-item-column` to be created. Optional. Can be overridden in browser. Default: 4.
109
+ */
110
+ columnSize?: number;
111
+ /**
112
+ * - Default thumbnail
113
+ */
114
+ thumbnail?: (item: BrowserFile) => string;
115
+ };
116
+ /**
117
+ * Browser file item structure
118
+ * @typedef {Object} BrowserFile
119
+ * @property {string} [src=""] - Source url
120
+ * @property {string} [name=""] - File name | Folder name
121
+ * @property {string} [thumbnail] - Thumbnail url
122
+ * @property {string} [alt] - Image alt
123
+ * @property {Array<string>|string} [tag] - Tag name list
124
+ * @property {string} [type] - Type (image, video, audio, etc.)
125
+ * @property {string} [frame] - Frame name (iframe, video, etc.)
126
+ * @property {boolean} [default] - Whether this folder is the default selection.
127
+ * @property {Object<string, *>} [meta] - Metadata
128
+ * @property {BrowserFile | string} [_data] - Internal: The folder's contents or an API URL (⚠️ DO NOT USE directly)
129
+ */
130
+ /**
131
+ * @typedef BrowserParams
132
+ * @property {string} title - File browser window title. Required. Can be overridden in browser.
133
+ * @property {string} [className] - Class name of the file browser. Optional. Default: ''.
134
+ * @property {Object<string, *>|Array<*>} [data] - direct data without server calls
135
+ * @property {string} [url] - File server url. Required. Can be overridden in browser.
136
+ * @property {Object<string, string>} [headers] - File server http header. Required. Can be overridden in browser.
137
+ * @property {(target: Node) => void} selectorHandler - Function that actions when an item is clicked. Required. Can be overridden in browser.
138
+ * @property {boolean} [useSearch] - Whether to use the search function. Optional. Default: `true`.
139
+ * @property {string} [searchUrl] - File server search url. Optional. Can be overridden in browser.
140
+ * @property {Object<string, string>} [searchUrlHeader] - File server search http header. Optional. Can be overridden in browser.
141
+ * @property {string} [listClass] - Class name of list div. Required. Can be overridden in browser.
142
+ * @property {(item: BrowserFile) => string} [drawItemHandler] - Function that defines the HTML of a file item. Required. Can be overridden in browser.
143
+ * @property {Array<*>} [props] - `props` argument to `drawItemHandler` function. Optional. Can be overridden in browser.
144
+ * @property {number} [columnSize] - Number of `div.se-file-item-column` to be created. Optional. Can be overridden in browser. Default: 4.
145
+ * @property {((item: BrowserFile) => string)} [thumbnail] - Default thumbnail
146
+ */
147
+ /**
148
+ * @class
149
+ * @description File browser plugin
150
+ */
151
+ declare class Browser {
152
+ /**
153
+ * @constructor
154
+ * @param {*} host The instance object that called the constructor.
155
+ * @param {SunEditor.Deps} $ Kernel dependencies
156
+ * @param {BrowserParams} params Browser options
157
+ */
158
+ constructor(host: any, $: SunEditor.Deps, params: BrowserParams);
159
+ useSearch: boolean;
160
+ kind: any;
161
+ host: any;
162
+ area: HTMLElement;
163
+ header: HTMLElement;
164
+ titleArea: HTMLElement;
165
+ tagArea: HTMLElement;
166
+ body: HTMLElement;
167
+ list: HTMLElement;
168
+ side: HTMLElement;
169
+ wrapper: HTMLElement;
170
+ title: string;
171
+ listClass: string;
172
+ directData:
173
+ | any[]
174
+ | {
175
+ [x: string]: any;
176
+ };
177
+ url: string;
178
+ urlHeader: {
179
+ [x: string]: string;
180
+ };
181
+ searchUrl: string;
182
+ searchUrlHeader: {
183
+ [x: string]: string;
184
+ };
185
+ drawItemHandler: any;
186
+ selectorHandler: (target: Node) => void;
187
+ columnSize: number;
188
+ folderDefaultPath: string;
189
+ closeArrow: any;
190
+ openArrow: any;
191
+ icon_folder: any;
192
+ icon_folder_item: any;
193
+ icon_item: any;
194
+ /** @type {Array<BrowserFile>} */
195
+ items: Array<BrowserFile>;
196
+ /** @type {Object<string, {name: string, meta: Object<string, *>}>} */
197
+ folders: {
198
+ [x: string]: {
199
+ name: string;
200
+ meta: {
201
+ [x: string]: any;
202
+ };
203
+ };
204
+ };
205
+ /** @type {Object<string, {key?: string, name?: string, children?: *}>} */
206
+ tree: {
207
+ [x: string]: {
208
+ key?: string;
209
+ name?: string;
210
+ children?: any;
211
+ };
212
+ };
213
+ /** @type {BrowserFile} */
214
+ data: BrowserFile;
215
+ selectedTags: any[];
216
+ keyword: string;
217
+ sideInner: HTMLElement;
218
+ apiManager: ApiManager;
219
+ sideOpenBtn: HTMLButtonElement;
220
+ /**
221
+ * @description Open a file browser plugin
222
+ * @param {Object} [params={}]
223
+ * @param {string} [params.listClass] - Class name of list div. If not, use `this.listClass`.
224
+ * @param {string} [params.title] - File browser window title. If not, use `this.title`.
225
+ * @param {string} [params.url] - File server url. If not, use `this.url`.
226
+ * @param {Object<string, string>} [params.urlHeader] - File server http header. If not, use `this.urlHeader`.
227
+ */
228
+ open(params?: {
229
+ listClass?: string;
230
+ title?: string;
231
+ url?: string;
232
+ urlHeader?: {
233
+ [x: string]: string;
234
+ };
235
+ }): void;
236
+ /**
237
+ * @description Close a browser plugin
238
+ * - The plugin's `init` method is called.
239
+ */
240
+ close(): void;
241
+ /**
242
+ * @description Search files
243
+ * @param {string} keyword - Search keyword
244
+ */
245
+ search(keyword: string): void;
246
+ /**
247
+ * @description Filter items by tag
248
+ * @param {Array<BrowserFile>} items - Items to filter
249
+ * @returns {Array<BrowserFile>}
250
+ */
251
+ tagfilter(items: Array<BrowserFile>): Array<BrowserFile>;
252
+ /**
253
+ * @description Show file browser loading box
254
+ */
255
+ showBrowserLoading(): void;
256
+ /**
257
+ * @description Close file browser loading box
258
+ */
259
+ closeBrowserLoading(): void;
260
+ #private;
261
+ }
262
+ import ApiManager from '../manager/ApiManager';
@@ -0,0 +1,99 @@
1
+ import type {} from '../../typedef';
2
+ export default ColorPicker;
3
+ export type ColorPickerParams = {
4
+ /**
5
+ * The form element to attach the color picker.
6
+ */
7
+ form: HTMLElement;
8
+ /**
9
+ * color list
10
+ */
11
+ colorList?: Array<
12
+ | string
13
+ | {
14
+ value: string;
15
+ name: string;
16
+ }
17
+ >;
18
+ /**
19
+ * Number of colors to be displayed in one line
20
+ */
21
+ splitNum?: number;
22
+ /**
23
+ * Default color
24
+ */
25
+ defaultColor?: string;
26
+ /**
27
+ * Disable HEX input
28
+ */
29
+ disableHEXInput?: boolean;
30
+ /**
31
+ * Disable remove button
32
+ */
33
+ disableRemove?: boolean;
34
+ /**
35
+ * hue slider options
36
+ */
37
+ hueSliderOptions?: import('./HueSlider').HueSliderParams;
38
+ };
39
+ /**
40
+ * @typedef {Object} ColorPickerParams
41
+ * @property {HTMLElement} form The form element to attach the color picker.
42
+ * @property {Array<string|{value: string, name: string}>} [colorList=[]] color list
43
+ * @property {number} [splitNum=0] Number of colors to be displayed in one line
44
+ * @property {string} [defaultColor] Default color
45
+ * @property {boolean} [disableHEXInput=false] Disable HEX input
46
+ * @property {boolean} [disableRemove=false] Disable remove button
47
+ * @property {import('./HueSlider').HueSliderParams} [hueSliderOptions] hue slider options
48
+ */
49
+ /**
50
+ * @class
51
+ * @description Create a color picker element and register for related events. (`this.target`)
52
+ * - When calling the color selection, `submit`, and `remove` buttons, the `action` method of the instance is called with the `color` value as an argument.
53
+ */
54
+ declare class ColorPicker {
55
+ /**
56
+ * @constructor
57
+ * @param {*} host The instance object that called the constructor.
58
+ * @param {SunEditor.Deps} $ Kernel dependencies
59
+ * @param {string} styles style property (`"color"`, `"backgroundColor"`..)
60
+ * @param {ColorPickerParams} params Color picker options
61
+ */
62
+ constructor(host: any, $: SunEditor.Deps, styles: string, params: ColorPickerParams);
63
+ kind: any;
64
+ host: any;
65
+ form: HTMLElement;
66
+ target: HTMLElement;
67
+ targetButton: Node;
68
+ inputElement: HTMLInputElement;
69
+ styleProperties: string;
70
+ splitNum: number;
71
+ defaultColor: string;
72
+ hueSliderOptions: import('./HueSlider').HueSliderParams;
73
+ currentColor: string;
74
+ colorList: any[] | NodeListOf<Element>;
75
+ hueSlider: HueSlider;
76
+ checkedIcon: HTMLElement;
77
+ /**
78
+ * @description Displays or resets the currently selected color at color list.
79
+ * @param {Node|string} nodeOrColor Current Selected node
80
+ * @param {Node} target target
81
+ * @param {?(current: Node) => boolean} [stopCondition] - A function used to stop traversing parent nodes while finding the color.
82
+ * - When this function returns `true`, the traversal ends at that node.
83
+ * - e.g., `(node) => this.format.isLine(node)` stops at line-level elements like <p>, <div>.
84
+ */
85
+ init(nodeOrColor: Node | string, target: Node, stopCondition?: ((current: Node) => boolean) | null): void;
86
+ /**
87
+ * @description Store color values
88
+ * @param {string} hexColorStr Hax color value
89
+ */
90
+ setHexColor(hexColorStr: string): void;
91
+ /**
92
+ * @description Close hue slider
93
+ */
94
+ hueSliderClose(): void;
95
+ hueSliderAction(color: SunEditor.Module.HueSlider.Color): void;
96
+ hueSliderCancelAction(): void;
97
+ #private;
98
+ }
99
+ import HueSlider from './HueSlider';