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
@@ -1,233 +1,349 @@
1
+ import type {} from './events';
1
2
  export {};
2
3
 
3
4
  declare global {
4
- type __se__NodeCollection = Array<Node> | HTMLCollection | NodeList;
5
- type __se__EditorCore = import('./core/editor').default;
6
- type __se__EditorInjector = import('./editorInjector').default;
7
- type __se__CoreInjector = import('./editorInjector/_core').default;
8
- type __se__ComponentInfo = {
9
- /**
10
- * - The target element associated with the component.
11
- */
12
- target: HTMLElement;
13
- /**
14
- * - The name of the plugin related to the component.
15
- */
16
- pluginName: string;
17
- /**
18
- * - Options related to the component.
19
- */
20
- options: {
21
- [x: string]: any;
5
+ namespace SunEditor {
6
+ type Instance = import('./core/editor').default;
7
+ type Kernel = import('./core/kernel/coreKernel').default;
8
+ type Store = import('./core/kernel/store').default;
9
+ type StorePathMap = import('./core/kernel/store').StoreState;
10
+ type Deps = import('./core/kernel/coreKernel').Deps;
11
+ type InitOptions = import('./core/schema/options').EditorInitOptions;
12
+ type InitFrameOptions = import('./core/schema/options').EditorFrameOptions;
13
+ type Context = import('./core/config/contextProvider').ContextMap;
14
+ type Options = import('./core/config/optionProvider').BaseOptionsMap;
15
+ type FrameContext = import('./core/config/contextProvider').FrameContextMap;
16
+ type FrameOptions = import('./core/config/optionProvider').FrameOptionsMap;
17
+ type EventWysiwyg = HTMLElement & Window;
18
+ type WysiwygFrame = HTMLElement & HTMLIFrameElement;
19
+ type GlobalWindow = Window & typeof globalThis;
20
+ type ComponentInfo = {
21
+ /**
22
+ * - The target element associated with the component.
23
+ */
24
+ target: HTMLElement;
25
+ /**
26
+ * - The name of the plugin related to the component.
27
+ */
28
+ pluginName: string;
29
+ /**
30
+ * - Options related to the component.
31
+ */
32
+ options: {
33
+ [x: string]: any;
34
+ };
35
+ /**
36
+ * - The main container element for the component.
37
+ */
38
+ container: HTMLElement;
39
+ /**
40
+ * - The cover element, if applicable.
41
+ */
42
+ cover: HTMLElement | null;
43
+ /**
44
+ * - The inline cover element, if applicable.
45
+ */
46
+ inlineCover: HTMLElement | null;
47
+ /**
48
+ * - The caption element, if applicable.
49
+ */
50
+ caption: HTMLElement | null;
51
+ /**
52
+ * - Whether the component is a file-related component.
53
+ */
54
+ isFile: boolean;
55
+ /**
56
+ * - The element that triggered the component, if applicable.
57
+ */
58
+ launcher: HTMLElement | null;
59
+ /**
60
+ * - Whether the component is an input component (e.g., table).
61
+ */
62
+ isInputType: boolean;
22
63
  };
23
- /**
24
- * - The main container element for the component.
25
- */
26
- container: HTMLElement;
27
- /**
28
- * - The cover element, if applicable.
29
- */
30
- cover: HTMLElement | null;
31
- /**
32
- * - The inline cover element, if applicable.
33
- */
34
- inlineCover: HTMLElement | null;
35
- /**
36
- * - The caption element, if applicable.
37
- */
38
- caption: HTMLElement | null;
39
- /**
40
- * - Whether the component is a file-related component.
41
- */
42
- isFile: boolean;
43
- /**
44
- * - The element that triggered the component, if applicable.
45
- */
46
- launcher: HTMLElement | null;
47
- /**
48
- * - Whether the component is an input component (e.g., table).
49
- */
50
- isInputType: boolean;
51
- };
52
- type __se__EditorStatus = {
53
- /**
54
- * Boolean value of whether the editor has focus
55
- */
56
- hasFocus: boolean;
57
- /**
58
- * Indent size of tab (4)
59
- */
60
- tabSize: number;
61
- /**
62
- * Indent size (25)px
63
- */
64
- indentSize: number;
65
- /**
66
- * Indent size of Code view mode (2)
67
- */
68
- codeIndentSize: number;
69
- /**
70
- * An element array of the current cursor's node structure
71
- */
72
- currentNodes: Array<string>;
73
- /**
74
- * An element name array of the current cursor's node structure
75
- */
76
- currentNodesMap: Array<string>;
77
- /**
78
- * Boolean value of whether component is selected
79
- */
80
- onSelected: boolean;
81
- /**
82
- * Current root key
83
- */
84
- rootKey: number;
85
- /**
86
- * Current range object
87
- */
88
- _range: Range;
89
- /**
90
- * Mouse down event status
91
- */
92
- _onMousedown: boolean;
93
- };
94
- type __se__EventInfo = {
95
- /**
96
- * Target element
97
- */
98
- target: any;
99
- /**
100
- * Event type
101
- */
102
- type: string;
103
- /**
104
- * Event listener
105
- */
106
- listener: (...args: any) => any;
107
- /**
108
- * Event useCapture option
109
- */
110
- useCapture?: (boolean | AddEventListenerOptions) | undefined;
111
- };
112
- type __se__GlobalEventInfo = {
113
- /**
114
- * Event type
115
- */
116
- type: string;
117
- /**
118
- * Event listener
119
- */
120
- listener: (...args: any) => any;
121
- /**
122
- * Use event capture
123
- */
124
- useCapture?: (boolean | AddEventListenerOptions) | undefined;
125
- };
126
- type __se__PluginMouseEventInfo = {
127
- /**
128
- * Frame context
129
- */
130
- frameContext: __se__FrameContext;
131
- /**
132
- * Event object
133
- */
134
- event: MouseEvent;
135
- };
136
- type __se__PluginKeyEventInfo = {
137
- /**
138
- * Frame context
139
- */
140
- frameContext: __se__FrameContext;
141
- /**
142
- * Event object
143
- */
144
- event: KeyboardEvent;
145
- /**
146
- * range object
147
- */
148
- range: Range;
149
- /**
150
- * Current line element
151
- */
152
- line: HTMLElement;
153
- };
154
- type __se__PluginToolbarInputChangeEventInfo = {
155
- /**
156
- * Input element
157
- */
158
- target: HTMLElement;
159
- /**
160
- * Event object
161
- */
162
- event: Event;
163
- /**
164
- * Input value
165
- */
166
- value: string;
167
- };
168
- /**
169
- * Information of the "shortcut" plugin
170
- */
171
- type __se__PluginShortcutInfo = {
172
- /**
173
- * - Range object
174
- */
175
- range: Range;
176
- /**
177
- * - The line element of the current range
178
- */
179
- line: HTMLElement;
180
- /**
181
- * - Information of the shortcut
182
- */
183
- info: import('./core/class/shortcuts').ShortcutInfo;
184
- /**
185
- * - Key event object
186
- */
187
- event: KeyboardEvent;
188
- /**
189
- * - KeyBoardEvent.code
190
- */
191
- keyCode: string;
192
- /**
193
- * - The root editor instance
194
- */
195
- editor: __se__EditorCore;
196
- };
197
- type __se__PluginPasteParams = {
198
- /**
199
- * Frame context
200
- */
201
- frameContext: __se__FrameContext;
202
- /**
203
- * Clipboard event object
204
- */
205
- event: ClipboardEvent;
206
- /**
207
- * Format cleaned paste data (HTML string)
208
- */
209
- data: string;
210
- /**
211
- * DomParser data (new DOMParser().parseFromString(data, 'text/html');)
212
- */
213
- doc: Document;
214
- };
215
- type __se__PluginCopyComponentParams = {
216
- /**
217
- * Clipboard event object
218
- */
219
- event: ClipboardEvent;
220
- /**
221
- * Cloned component container
222
- */
223
- cloneContainer: HTMLElement;
224
- /**
225
- * Component information
226
- */
227
- info: __se__ComponentInfo;
228
- };
229
- type __se__FrameOptions = Map<string, any>;
230
- type __se__FrameContext = Map<string, any>;
231
- type __se__Context = Map<string, any>;
232
- type __se__Class_OffsetGlobalInfo = import('./core/class/offset').OffsetGlobalInfo;
64
+ type ComponentInsertType = 'auto' | 'select' | 'line' | 'none';
65
+ type NodeCollection = Array<Node> | HTMLCollection | NodeList;
66
+ export namespace Module {
67
+ namespace Controller {
68
+ type Info = import('./modules/contract/Controller').ControllerInfo;
69
+ }
70
+ namespace Figure {
71
+ type Info = import('./modules/contract/Figure').FigureInfo;
72
+ type TargetInfo = import('./modules/contract/Figure').FigureTargetInfo;
73
+ type ControlButton = import('./modules/contract/Figure').FigureControlButton;
74
+ type ControlResize = import('./modules/contract/Figure').FigureControlResize;
75
+ type ControlCustomAction = import('./modules/contract/Figure').ControlCustomAction;
76
+ type Controls = import('./modules/contract/Figure').FigureControls;
77
+ }
78
+ namespace Browser {
79
+ type File = import('./modules/contract/Browser').BrowserFile;
80
+ }
81
+ namespace HueSlider {
82
+ type Color = import('./modules/contract/HueSlider').HueSliderColor;
83
+ }
84
+ }
85
+ export namespace Hook {
86
+ namespace Event {
87
+ type Active = typeof import('./hooks/base').Event.Active;
88
+ type OnFocus = typeof import('./hooks/base').Event.OnFocus;
89
+ type OnBlur = typeof import('./hooks/base').Event.OnBlur;
90
+ type OnMouseMove = typeof import('./hooks/base').Event.OnMouseMove;
91
+ type OnScroll = typeof import('./hooks/base').Event.OnScroll;
92
+ type OnBeforeInput = typeof import('./hooks/base').Event.OnBeforeInput;
93
+ type OnBeforeInputAsync = typeof import('./hooks/base').Event.OnBeforeInputAsync;
94
+ type OnInput = typeof import('./hooks/base').Event.OnInput;
95
+ type OnInputAsync = typeof import('./hooks/base').Event.OnInputAsync;
96
+ type OnKeyDown = typeof import('./hooks/base').Event.OnKeyDown;
97
+ type OnKeyDownAsync = typeof import('./hooks/base').Event.OnKeyDownAsync;
98
+ type OnKeyUp = typeof import('./hooks/base').Event.OnKeyUp;
99
+ type OnKeyUpAsync = typeof import('./hooks/base').Event.OnKeyUpAsync;
100
+ type OnMouseDown = typeof import('./hooks/base').Event.OnMouseDown;
101
+ type OnMouseDownAsync = typeof import('./hooks/base').Event.OnMouseDownAsync;
102
+ type OnMouseUp = typeof import('./hooks/base').Event.OnMouseUp;
103
+ type OnMouseUpAsync = typeof import('./hooks/base').Event.OnMouseUpAsync;
104
+ type OnClick = typeof import('./hooks/base').Event.OnClick;
105
+ type OnClickAsync = typeof import('./hooks/base').Event.OnClickAsync;
106
+ type OnMouseLeave = typeof import('./hooks/base').Event.OnMouseLeave;
107
+ type OnMouseLeaveAsync = typeof import('./hooks/base').Event.OnMouseLeaveAsync;
108
+ type OnFilePasteAndDrop = typeof import('./hooks/base').Event.OnFilePasteAndDrop;
109
+ type OnFilePasteAndDropAsync = typeof import('./hooks/base').Event.OnFilePasteAndDropAsync;
110
+ type OnPaste = typeof import('./hooks/base').Event.OnPaste;
111
+ type OnPasteAsync = typeof import('./hooks/base').Event.OnPasteAsync;
112
+ }
113
+ namespace Core {
114
+ type RetainFormat = typeof import('./hooks/base').Core.RetainFormat;
115
+ type Shortcut = typeof import('./hooks/base').Core.Shortcut;
116
+ type SetDir = typeof import('./hooks/base').Core.SetDir;
117
+ type Init = typeof import('./hooks/base').Core.Init;
118
+ }
119
+ namespace Component {
120
+ type Select = typeof import('./interfaces/contracts').EditorComponent.prototype.componentSelect;
121
+ type Deselect = typeof import('./interfaces/contracts').EditorComponent.prototype.componentDeselect;
122
+ type Edit = typeof import('./interfaces/contracts').EditorComponent.prototype.componentEdit;
123
+ type Destroy = typeof import('./interfaces/contracts').EditorComponent.prototype.componentDestroy;
124
+ type Copy = typeof import('./interfaces/contracts').EditorComponent.prototype.componentCopy;
125
+ }
126
+ namespace Modal {
127
+ type Action = typeof import('./interfaces/contracts').ModuleModal.prototype.modalAction;
128
+ type On = typeof import('./interfaces/contracts').ModuleModal.prototype.modalOn;
129
+ type Init = typeof import('./interfaces/contracts').ModuleModal.prototype.modalInit;
130
+ type Off = typeof import('./interfaces/contracts').ModuleModal.prototype.modalOff;
131
+ type Resize = typeof import('./interfaces/contracts').ModuleModal.prototype.modalResize;
132
+ }
133
+ namespace Controller {
134
+ type Action = typeof import('./interfaces/contracts').ModuleController.prototype.controllerAction;
135
+ type On = typeof import('./interfaces/contracts').ModuleController.prototype.controllerOn;
136
+ type Close = typeof import('./interfaces/contracts').ModuleController.prototype.controllerClose;
137
+ }
138
+ namespace Browser {
139
+ type Init = typeof import('./interfaces/contracts').ModuleBrowser.prototype.browserInit;
140
+ }
141
+ namespace ColorPicker {
142
+ type Action = typeof import('./interfaces/contracts').ModuleColorPicker.prototype.colorPickerAction;
143
+ type HueSliderOpen = typeof import('./interfaces/contracts').ModuleColorPicker.prototype.colorPickerHueSliderOpen;
144
+ type HueSliderClose = typeof import('./interfaces/contracts').ModuleColorPicker.prototype.colorPickerHueSliderClose;
145
+ }
146
+ namespace HueSlider {
147
+ type Action = typeof import('./interfaces/contracts').ModuleHueSlider.prototype.hueSliderAction;
148
+ type CancelAction = typeof import('./interfaces/contracts').ModuleHueSlider.prototype.hueSliderCancelAction;
149
+ }
150
+ }
151
+ export namespace HookParams {
152
+ type MouseEvent = import('./hooks/params').MouseEventInfo;
153
+ type KeyEvent = import('./hooks/params').KeyEventInfo;
154
+ type Shortcut = import('./hooks/params').ShortcutInfo;
155
+ type FilePasteDrop = import('./hooks/params').FilePasteDrop;
156
+ type FocusBlur = import('./hooks/params').FocusBlurEvent;
157
+ type Scroll = import('./hooks/params').ScrollEvent;
158
+ type InputWithData = import('./hooks/params').InputEventWithData;
159
+ type Paste = import('./hooks/params').Paste;
160
+ type Mouse = import('./hooks/params').Mouse;
161
+ type Keyboard = import('./hooks/params').Keyboard;
162
+ type ToolbarInputKeyDown = import('./hooks/params').ToolbarInputKeyDown;
163
+ type ToolbarInputChange = import('./hooks/params').ToolbarInputChange;
164
+ type CopyComponent = import('./hooks/params').CopyComponent;
165
+ }
166
+ export namespace Event {
167
+ /**
168
+ * EventManager event information
169
+ */
170
+ type Info = {
171
+ /**
172
+ * Target element
173
+ */
174
+ target: any;
175
+ /**
176
+ * Event type
177
+ */
178
+ type: string;
179
+ /**
180
+ * Event listener
181
+ */
182
+ listener: EventListenerOrEventListenerObject;
183
+ /**
184
+ * Event useCapture option
185
+ */
186
+ useCapture?: boolean | AddEventListenerOptions;
187
+ };
188
+ /**
189
+ * EventManager global event information
190
+ */
191
+ type GlobalInfo = {
192
+ /**
193
+ * Event type
194
+ */
195
+ type: string;
196
+ /**
197
+ * Event listener
198
+ */
199
+ listener: (...args: any) => any;
200
+ /**
201
+ * Use event capture
202
+ */
203
+ useCapture?: boolean | AddEventListenerOptions;
204
+ };
205
+ /**
206
+ * EventHandlers object containing all event callback functions
207
+ * To access individual handler types, use indexed access:
208
+ * Use `SunEditor.Event.Handlers["onload"]` to get the `onload` callback type
209
+ */
210
+ type Handlers = import('./events').EventHandlers;
211
+ }
212
+ export namespace EventParams {
213
+ /**
214
+ * EventParams - Event callback parameters
215
+ */
216
+ type BaseEvent = import('./events').BaseEvent;
217
+ /**
218
+ * EventParams - Event callback parameters
219
+ */
220
+ type ClipboardEvent = import('./events').ClipboardEvent;
221
+ /**
222
+ * EventParams - Event callback parameters
223
+ */
224
+ type FileManagementInfo = import('./events').FileManagementInfo;
225
+ /**
226
+ * EventParams - Event callback parameters
227
+ */
228
+ type ProcessInfo = import('./events').ProcessInfo;
229
+ /**
230
+ * EventParams - Event callback parameters
231
+ */
232
+ type ImageInfo = import('./events').ImageInfo;
233
+ /**
234
+ * EventParams - Event callback parameters
235
+ */
236
+ type VideoInfo = import('./events').VideoInfo;
237
+ /**
238
+ * EventParams - Event callback parameters
239
+ */
240
+ type AudioInfo = import('./events').AudioInfo;
241
+ /**
242
+ * EventParams - Event callback parameters
243
+ */
244
+ type FileInfo = import('./events').FileInfo;
245
+ /**
246
+ * EventParams - Event callback parameters
247
+ */
248
+ type EmbedInfo = import('./events').EmbedInfo;
249
+ /**
250
+ * The event object passed to the plugin event handler
251
+ */
252
+ type PluginEvent = import('./core/logic/shell/pluginManager').PluginEventParam;
253
+ }
254
+ export namespace UI {
255
+ /**
256
+ * Special toolbar control strings
257
+ * - `"|"`: Vertical separator between buttons
258
+ * - `"/"`: Line break (start new row)
259
+ * - `":[title]-[icon]"`: More button with dropdown (e.g., `":More Button-default.more_vertical"`)
260
+ * - `"-left"|"-right"`: Float alignment for button groups
261
+ * - `"#fix"`: RTL direction fix
262
+ * - `"%100"|"%50"`: Responsive breakpoint (percentage)
263
+ */
264
+ type ButtonSpecial = '|' | '/' | `-${'left' | 'right' | 'center'}` | '#fix' | `:${string}-${string}` | `%${number}`;
265
+ /**
266
+ * Plugin buttons available in the toolbar
267
+ */
268
+ type ButtonCommand =
269
+ | 'bold'
270
+ | 'underline'
271
+ | 'italic'
272
+ | 'strike'
273
+ | 'subscript'
274
+ | 'superscript'
275
+ | 'removeFormat'
276
+ | 'copyFormat'
277
+ | 'indent'
278
+ | 'outdent'
279
+ | 'fullScreen'
280
+ | 'showBlocks'
281
+ | 'codeView'
282
+ | 'undo'
283
+ | 'redo'
284
+ | 'preview'
285
+ | 'print'
286
+ | 'copy'
287
+ | 'dir'
288
+ | 'dir_ltr'
289
+ | 'dir_rtl'
290
+ | 'save'
291
+ | 'newDocument'
292
+ | 'selectAll'
293
+ | 'pageBreak'
294
+ | 'pageUp'
295
+ | 'pageDown'
296
+ | 'pageNavigator';
297
+ /**
298
+ * Single button item in the toolbar (includes special controls and custom strings)
299
+ */
300
+ type ButtonPlugin =
301
+ | 'blockquote'
302
+ | 'exportPDF'
303
+ | 'fileUpload'
304
+ | 'list_bulleted'
305
+ | 'list_numbered'
306
+ | 'mention'
307
+ | 'align'
308
+ | 'font'
309
+ | 'fontColor'
310
+ | 'backgroundColor'
311
+ | 'list'
312
+ | 'table'
313
+ | 'blockStyle'
314
+ | 'hr'
315
+ | 'layout'
316
+ | 'lineHeight'
317
+ | 'template'
318
+ | 'paragraphStyle'
319
+ | 'textStyle'
320
+ | 'link'
321
+ | 'image'
322
+ | 'video'
323
+ | 'audio'
324
+ | 'embed'
325
+ | 'math'
326
+ | 'drawing'
327
+ | 'imageGallery'
328
+ | 'videoGallery'
329
+ | 'audioGallery'
330
+ | 'fileGallery'
331
+ | 'fileBrowser'
332
+ | 'fontSize'
333
+ | 'pageNavigator'
334
+ | 'anchor';
335
+ /**
336
+ * Button list configuration for the toolbar
337
+ * Supports nested arrays, special controls, and responsive breakpoint configurations
338
+ */
339
+ type ButtonItem = SunEditor.UI.ButtonCommand | SunEditor.UI.ButtonPlugin | SunEditor.UI.ButtonSpecial | string;
340
+ /**
341
+ * ///
342
+ * ---[ End of auto-generated button types ]---
343
+ */
344
+ type ButtonList = Array<SunEditor.UI.ButtonItem | SunEditor.UI.ButtonList | SunEditor.UI.ButtonSpecial>;
345
+ }
346
+ }
233
347
  }
348
+
349
+ export type { SunEditor };