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,256 @@
1
+ import type {} from '../../typedef';
2
+ /**
3
+ * @typedef {import('./eventOrchestrator').default} EventManagerInstanceType
4
+ */
5
+ /**
6
+ * @typedef {import('../logic/dom/selection').default} Selection
7
+ * @typedef {import('../logic/dom/format').default} Format
8
+ * @typedef {import('../logic/dom/listFormat').default} ListFormat
9
+ * @typedef {import('../logic/shell/component').default} Component
10
+ * @typedef {import('../logic/dom/html').default} Html
11
+ * @typedef {import('../logic/dom/nodeTransform').default} NodeTransform
12
+ * @typedef {import('../logic/dom/char').default} Char
13
+ * @typedef {import('../logic/panel/menu').default} Menu
14
+ */
15
+ /**
16
+ * @typedef {Object} SelectionPorts
17
+ * @property {(...args: Parameters<Selection['getRange']>) => ReturnType<Selection['getRange']>} getRange
18
+ * @property {(...args: Parameters<Selection['getNode']>) => ReturnType<Selection['getNode']>} getNode
19
+ * @property {(...args: Parameters<Selection['setRange']>) => ReturnType<Selection['setRange']>} setRange
20
+ * @property {(...args: Parameters<Selection['get']>) => ReturnType<Selection['get']>} get
21
+ */
22
+ /**
23
+ * @typedef {Object} FormatPorts
24
+ * @property {(...args: Parameters<Format['isLine']>) => ReturnType<Format['isLine']>} isLine
25
+ * @property {(...args: Parameters<Format['getLine']>) => ReturnType<Format['getLine']>} getLine
26
+ * @property {(...args: Parameters<Format['getLines']>) => ReturnType<Format['getLines']>} getLines
27
+ * @property {(...args: Parameters<Format['getBrLine']>) => ReturnType<Format['getBrLine']>} getBrLine
28
+ * @property {(...args: Parameters<Format['getBlock']>) => ReturnType<Format['getBlock']>} getBlock
29
+ * @property {(...args: Parameters<Format['isNormalLine']>) => ReturnType<Format['isNormalLine']>} isNormalLine
30
+ * @property {(...args: Parameters<Format['isBrLine']>) => ReturnType<Format['isBrLine']>} isBrLine
31
+ * @property {(...args: Parameters<Format['isClosureBrLine']>) => ReturnType<Format['isClosureBrLine']>} isClosureBrLine
32
+ * @property {(...args: Parameters<Format['isClosureBlock']>) => ReturnType<Format['isClosureBlock']>} isClosureBlock
33
+ * @property {(...args: Parameters<Format['isEdgeLine']>) => ReturnType<Format['isEdgeLine']>} isEdgeLine
34
+ * @property {(...args: Parameters<Format['removeBlock']>) => ReturnType<Format['removeBlock']>} removeBlock
35
+ * @property {(...args: Parameters<Format['addLine']>) => ReturnType<Format['addLine']>} addLine
36
+ */
37
+ /**
38
+ * @typedef {Object} ListFormatPorts
39
+ * @property {(...args: Parameters<ListFormat['applyNested']>) => ReturnType<ListFormat['applyNested']>} applyNested
40
+ */
41
+ /**
42
+ * @typedef {Object} ComponentPorts
43
+ * @property {(...args: Parameters<Component['deselect']>) => ReturnType<Component['deselect']>} deselect
44
+ * @property {(...args: Parameters<Component['is']>) => ReturnType<Component['is']>} is
45
+ * @property {(...args: Parameters<Component['get']>) => ReturnType<Component['get']>} get
46
+ * @property {(...args: Parameters<Component['select']>) => ReturnType<Component['select']>} select
47
+ */
48
+ /**
49
+ * @typedef {Object} HtmlPorts
50
+ * @property {(...args: Parameters<Html['remove']>) => ReturnType<Html['remove']>} remove
51
+ * @property {(...args: Parameters<Html['insert']>) => ReturnType<Html['insert']>} insert
52
+ * @property {(...args: Parameters<Html['insertNode']>) => ReturnType<Html['insertNode']>} insertNode
53
+ */
54
+ /**
55
+ * @typedef {Object} NodeTransformPorts
56
+ * @property {(...args: Parameters<NodeTransform['removeAllParents']>) => ReturnType<NodeTransform['removeAllParents']>} removeAllParents
57
+ * @property {(...args: Parameters<NodeTransform['split']>) => ReturnType<NodeTransform['split']>} split
58
+ */
59
+ /**
60
+ * @typedef {Object} CharPorts
61
+ * @property {(...args: Parameters<Char['check']>) => ReturnType<Char['check']>} check
62
+ */
63
+ /**
64
+ * @typedef {Object} MenuPorts
65
+ * @property {(...args: Parameters<Menu['dropdownOff']>) => ReturnType<Menu['dropdownOff']>} dropdownOff
66
+ */
67
+ /**
68
+ * @description Create ports for event reducers
69
+ * @param {EventManagerInstanceType} inst - EventManager instance
70
+ * @param {Object} param1 - Additional parameters
71
+ * @param {*} param1._styleNodes - Style nodes reference object
72
+ */
73
+ export function makePorts(
74
+ inst: EventManagerInstanceType,
75
+ {
76
+ _styleNodes,
77
+ }: {
78
+ _styleNodes: any;
79
+ },
80
+ ): {
81
+ focusManager: {
82
+ nativeFocus: () => void;
83
+ blur: () => void;
84
+ };
85
+ selection: {
86
+ getRange: () => Range;
87
+ getNode: () => HTMLElement | Text;
88
+ setRange: (se: any, so: any, ec: any, eo: any) => Range;
89
+ get: () => globalThis.Selection;
90
+ };
91
+ format: {
92
+ isLine: (n: any) => n is HTMLElement;
93
+ getLine: (n: any, p: any) => HTMLElement;
94
+ getLines: (v: any) => HTMLElement[];
95
+ getBrLine: (n: any, p: any) => HTMLBRElement;
96
+ getBlock: (n: any, p: any) => HTMLElement;
97
+ isNormalLine: (n: any) => n is HTMLElement;
98
+ isBrLine: (n: any) => n is HTMLElement;
99
+ isClosureBrLine: (n: any) => n is HTMLElement;
100
+ isClosureBlock: (n: any) => n is HTMLElement;
101
+ isEdgeLine: (node: any, offset: any, dir: any) => node is HTMLElement;
102
+ removeBlock: (
103
+ n: any,
104
+ p: any,
105
+ ) => {
106
+ cc: Node;
107
+ sc: Node;
108
+ so: number;
109
+ ec: Node;
110
+ eo: number;
111
+ removeArray: Array<Node> | null;
112
+ };
113
+ addLine: (el: any, nextOrTag: any) => HTMLElement;
114
+ };
115
+ listFormat: {
116
+ applyNested: (
117
+ cells: any,
118
+ shift: any,
119
+ ) => {
120
+ sc: Node;
121
+ so: number;
122
+ ec: Node;
123
+ eo: number;
124
+ };
125
+ };
126
+ component: {
127
+ deselect: () => void;
128
+ is: (n: any) => boolean;
129
+ get: (n: any) => SunEditor.ComponentInfo;
130
+ select: (t: any, p: any) => boolean;
131
+ };
132
+ html: {
133
+ remove: () => {
134
+ container: Node;
135
+ offset: number;
136
+ commonCon?: Node | null;
137
+ prevContainer?: Node | null;
138
+ };
139
+ insert: (h: any, p: any) => HTMLElement;
140
+ insertNode: (n: any, p: any) => any;
141
+ };
142
+ history: {
143
+ push: (hard: any) => void;
144
+ };
145
+ nodeTransform: {
146
+ removeAllParents: (
147
+ s: any,
148
+ n: any,
149
+ p: any,
150
+ ) => {
151
+ sc: Node | null;
152
+ ec: Node | null;
153
+ };
154
+ split: (n: any, o: any, d: any) => HTMLElement;
155
+ };
156
+ char: {
157
+ check: (content: any) => boolean;
158
+ };
159
+ menu: {
160
+ dropdownOff: () => void;
161
+ };
162
+ setDefaultLine: (tag: any) => void;
163
+ hideToolbar: () => void;
164
+ hideToolbar_sub: () => void;
165
+ styleNodeCache: () => Node[];
166
+ formatAttrsTempCache: (attrs: any) => any;
167
+ setOnShortcutKey: (v: any) => any;
168
+ /**
169
+ * @description Scrolls the editor view to the caret position after pressing `Enter`. (Ignored on mobile devices)
170
+ * @param {Range} range Range object
171
+ */
172
+ enterScrollTo(range: Range): void;
173
+ /**
174
+ * @description Prevents the default behavior of the `Enter` key and refocuses the editor.
175
+ * @param {Event} e The keyboard event
176
+ */
177
+ enterPrevent(e: Event): void;
178
+ };
179
+ export type EventManagerInstanceType = import('./eventOrchestrator').default;
180
+ export type Selection = import('../logic/dom/selection').default;
181
+ export type Format = import('../logic/dom/format').default;
182
+ export type ListFormat = import('../logic/dom/listFormat').default;
183
+ export type Component = import('../logic/shell/component').default;
184
+ export type Html = import('../logic/dom/html').default;
185
+ export type NodeTransform = import('../logic/dom/nodeTransform').default;
186
+ export type Char = import('../logic/dom/char').default;
187
+ export type Menu = import('../logic/panel/menu').default;
188
+ export type SelectionPorts = {
189
+ getRange: (...args: Parameters<Selection['getRange']>) => ReturnType<Selection['getRange']>;
190
+ getNode: (...args: Parameters<Selection['getNode']>) => ReturnType<Selection['getNode']>;
191
+ setRange: (...args: Parameters<Selection['setRange']>) => ReturnType<Selection['setRange']>;
192
+ get: (...args: Parameters<Selection['get']>) => ReturnType<Selection['get']>;
193
+ };
194
+ export type FormatPorts = {
195
+ isLine: (...args: Parameters<Format['isLine']>) => ReturnType<Format['isLine']>;
196
+ getLine: (...args: Parameters<Format['getLine']>) => ReturnType<Format['getLine']>;
197
+ getLines: (...args: Parameters<Format['getLines']>) => ReturnType<Format['getLines']>;
198
+ getBrLine: (...args: Parameters<Format['getBrLine']>) => ReturnType<Format['getBrLine']>;
199
+ getBlock: (...args: Parameters<Format['getBlock']>) => ReturnType<Format['getBlock']>;
200
+ isNormalLine: (...args: Parameters<Format['isNormalLine']>) => ReturnType<Format['isNormalLine']>;
201
+ isBrLine: (...args: Parameters<Format['isBrLine']>) => ReturnType<Format['isBrLine']>;
202
+ isClosureBrLine: (...args: Parameters<Format['isClosureBrLine']>) => ReturnType<Format['isClosureBrLine']>;
203
+ isClosureBlock: (...args: Parameters<Format['isClosureBlock']>) => ReturnType<Format['isClosureBlock']>;
204
+ isEdgeLine: (...args: Parameters<Format['isEdgeLine']>) => ReturnType<Format['isEdgeLine']>;
205
+ removeBlock: (...args: Parameters<Format['removeBlock']>) => ReturnType<Format['removeBlock']>;
206
+ addLine: (...args: Parameters<Format['addLine']>) => ReturnType<Format['addLine']>;
207
+ };
208
+ export type ListFormatPorts = {
209
+ applyNested: (...args: Parameters<ListFormat['applyNested']>) => ReturnType<ListFormat['applyNested']>;
210
+ };
211
+ export type ComponentPorts = {
212
+ deselect: (...args: Parameters<Component['deselect']>) => ReturnType<Component['deselect']>;
213
+ is: (...args: Parameters<Component['is']>) => ReturnType<Component['is']>;
214
+ get: (...args: Parameters<Component['get']>) => ReturnType<Component['get']>;
215
+ select: (...args: Parameters<Component['select']>) => ReturnType<Component['select']>;
216
+ };
217
+ export type HtmlPorts = {
218
+ remove: (...args: Parameters<Html['remove']>) => ReturnType<Html['remove']>;
219
+ insert: (...args: Parameters<Html['insert']>) => ReturnType<Html['insert']>;
220
+ insertNode: (...args: Parameters<Html['insertNode']>) => ReturnType<Html['insertNode']>;
221
+ };
222
+ export type NodeTransformPorts = {
223
+ removeAllParents: (...args: Parameters<NodeTransform['removeAllParents']>) => ReturnType<NodeTransform['removeAllParents']>;
224
+ split: (...args: Parameters<NodeTransform['split']>) => ReturnType<NodeTransform['split']>;
225
+ };
226
+ export type CharPorts = {
227
+ check: (...args: Parameters<Char['check']>) => ReturnType<Char['check']>;
228
+ };
229
+ export type MenuPorts = {
230
+ dropdownOff: (...args: Parameters<Menu['dropdownOff']>) => ReturnType<Menu['dropdownOff']>;
231
+ };
232
+ export type EventReducerPorts = {
233
+ focusManager: {
234
+ nativeFocus: () => void;
235
+ blur: () => void;
236
+ };
237
+ selection: SelectionPorts;
238
+ format: FormatPorts;
239
+ listFormat: ListFormatPorts;
240
+ component: ComponentPorts;
241
+ html: HtmlPorts;
242
+ history: {
243
+ push: (hard: boolean) => void;
244
+ };
245
+ nodeTransform: NodeTransformPorts;
246
+ char: CharPorts;
247
+ menu: MenuPorts;
248
+ setDefaultLine: (tag: string) => void;
249
+ hideToolbar: () => void;
250
+ hideToolbar_sub: () => void;
251
+ styleNodeCache: () => void;
252
+ formatAttrsTempCache: (attrs: { [x: string]: any }) => void;
253
+ setOnShortcutKey: (v: boolean) => void;
254
+ enterPrevent: (e: Event) => void;
255
+ enterScrollTo: (range: Range) => void;
256
+ };
@@ -0,0 +1,84 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @typedef {import('../ports').EventReducerPorts} EventPorts
4
+ */
5
+ /**
6
+ * @typedef {Object} KeydownReducerCtx - Keydown Reducer Context object
7
+ * @property {KeyboardEvent} ctx.e - The keyboard event
8
+ * @property {SunEditor.FrameContext} ctx.fc - Frame context object
9
+ * @property {SunEditor.Store} ctx.store - Editor store object
10
+ * @property {SunEditor.Options} ctx.options - Options object
11
+ * @property {SunEditor.FrameOptions} ctx.frameOptions - Frame options object
12
+ * @property {Range} ctx.range - Current selection range
13
+ * @property {HTMLElement|Text} ctx.selectionNode - Current selection node
14
+ * @property {HTMLElement} ctx.formatEl - Current format element
15
+ * @property {string} ctx.keyCode - Key code
16
+ * @property {boolean} ctx.ctrl - Whether the `ctrl` key is pressed
17
+ * @property {boolean} ctx.alt - Whether the `alt` key is pressed
18
+ * @property {boolean} ctx.shift - Whether the `shift` key is pressed
19
+ */
20
+ /**
21
+ * @typedef {import('../actions').Action[]} EventActions
22
+ */
23
+ /**
24
+ * @description Keydown event reducer
25
+ * @param {EventPorts} ports - Ports for interacting with editor
26
+ * @param {KeydownReducerCtx} ctx - Context object
27
+ * @returns {Promise<EventActions>} Action list
28
+ */
29
+ export function reduceKeydown(ports: EventPorts, ctx: KeydownReducerCtx): Promise<EventActions>;
30
+ export type EventPorts = import('../ports').EventReducerPorts;
31
+ /**
32
+ * - Keydown Reducer Context object
33
+ */
34
+ export type KeydownReducerCtx = {
35
+ /**
36
+ * - The keyboard event
37
+ */
38
+ e: KeyboardEvent;
39
+ /**
40
+ * - Frame context object
41
+ */
42
+ fc: SunEditor.FrameContext;
43
+ /**
44
+ * - Editor store object
45
+ */
46
+ store: SunEditor.Store;
47
+ /**
48
+ * - Options object
49
+ */
50
+ options: SunEditor.Options;
51
+ /**
52
+ * - Frame options object
53
+ */
54
+ frameOptions: SunEditor.FrameOptions;
55
+ /**
56
+ * - Current selection range
57
+ */
58
+ range: Range;
59
+ /**
60
+ * - Current selection node
61
+ */
62
+ selectionNode: HTMLElement | Text;
63
+ /**
64
+ * - Current format element
65
+ */
66
+ formatEl: HTMLElement;
67
+ /**
68
+ * - Key code
69
+ */
70
+ keyCode: string;
71
+ /**
72
+ * - Whether the `ctrl` key is pressed
73
+ */
74
+ ctrl: boolean;
75
+ /**
76
+ * - Whether the `alt` key is pressed
77
+ */
78
+ alt: boolean;
79
+ /**
80
+ * - Whether the `shift` key is pressed
81
+ */
82
+ shift: boolean;
83
+ };
84
+ export type EventActions = import('../actions').Action[];
@@ -0,0 +1,19 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @typedef {import('../actions').Action[]} EventActions
4
+ * @typedef {import('../ports').EventReducerPorts} EventPorts
5
+ * @typedef {import('../reducers/keydown.reducer').KeydownReducerCtx} EventKeydownCtx
6
+ */
7
+ /**
8
+ */
9
+ /**
10
+ * @this {void}
11
+ * @description Arrow key down rule
12
+ * @param {EventActions} actions - Action list
13
+ * @param {EventPorts} ports - Ports for interacting with editor
14
+ * @param {EventKeydownCtx} ctx - Context object
15
+ */
16
+ export function reduceArrowDown(this: void, actions: EventActions, ports: EventPorts, ctx: EventKeydownCtx): void;
17
+ export type EventActions = import('../actions').Action[];
18
+ export type EventPorts = import('../ports').EventReducerPorts;
19
+ export type EventKeydownCtx = import('../reducers/keydown.reducer').KeydownReducerCtx;
@@ -0,0 +1,18 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @typedef {import('../actions').Action[]} EventActions
4
+ * @typedef {import('../ports').EventReducerPorts} EventPorts
5
+ * @typedef {import('../reducers/keydown.reducer').KeydownReducerCtx} EventKeydownCtx
6
+ */
7
+ /**
8
+ * @this {void}
9
+ * @description Backspace key down rule
10
+ * @param {EventActions} actions - Action list
11
+ * @param {EventPorts} ports - Ports for interacting with editor
12
+ * @param {EventKeydownCtx} ctx - Context object
13
+ * @returns {boolean} Return false to stop the processing
14
+ */
15
+ export function reduceBackspaceDown(this: void, actions: EventActions, ports: EventPorts, ctx: EventKeydownCtx): boolean;
16
+ export type EventActions = import('../actions').Action[];
17
+ export type EventPorts = import('../ports').EventReducerPorts;
18
+ export type EventKeydownCtx = import('../reducers/keydown.reducer').KeydownReducerCtx;
@@ -0,0 +1,18 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @typedef {import('../actions').Action[]} EventActions
4
+ * @typedef {import('../ports').EventReducerPorts} EventPorts
5
+ * @typedef {import('../reducers/keydown.reducer').KeydownReducerCtx} EventKeydownCtx
6
+ */
7
+ /**
8
+ * @this {void}
9
+ * @description Delete key down rule
10
+ * @param {EventActions} actions - Action list
11
+ * @param {EventPorts} ports - Ports for interacting with editor
12
+ * @param {EventKeydownCtx} ctx - Context object
13
+ * @returns {boolean} Return false to stop the processing
14
+ */
15
+ export function reduceDeleteDown(this: void, actions: EventActions, ports: EventPorts, ctx: EventKeydownCtx): boolean;
16
+ export type EventActions = import('../actions').Action[];
17
+ export type EventPorts = import('../ports').EventReducerPorts;
18
+ export type EventKeydownCtx = import('../reducers/keydown.reducer').KeydownReducerCtx;
@@ -0,0 +1,18 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @typedef {import('../actions').Action[]} EventActions
4
+ * @typedef {import('../ports').EventReducerPorts} EventPorts
5
+ * @typedef {import('../reducers/keydown.reducer').KeydownReducerCtx} EventKeydownCtx
6
+ */
7
+ /**
8
+ * @this {void}
9
+ * @description Enter key down rule
10
+ * @param {EventActions} actions - Action list
11
+ * @param {EventPorts} ports - Ports for interacting with editor
12
+ * @param {EventKeydownCtx} ctx - Context object
13
+ * @returns {boolean} Return false to stop the processing
14
+ */
15
+ export function reduceEnterDown(this: void, actions: EventActions, ports: EventPorts, ctx: EventKeydownCtx): boolean;
16
+ export type EventActions = import('../actions').Action[];
17
+ export type EventPorts = import('../ports').EventReducerPorts;
18
+ export type EventKeydownCtx = import('../reducers/keydown.reducer').KeydownReducerCtx;
@@ -0,0 +1,18 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @typedef {import('../actions').Action[]} EventActions
4
+ * @typedef {import('../ports').EventReducerPorts} EventPorts
5
+ * @typedef {import('../reducers/keydown.reducer').KeydownReducerCtx} EventKeydownCtx
6
+ */
7
+ /**
8
+ * @this {void}
9
+ * @description Tab key down rule
10
+ * @param {EventActions} actions - Action list
11
+ * @param {EventPorts} _ports - Ports for interacting with editor
12
+ * @param {EventKeydownCtx} ctx - Context object
13
+ * @returns {boolean} Return false to stop the processing
14
+ */
15
+ export function reduceTabDown(this: void, actions: EventActions, _ports: EventPorts, ctx: EventKeydownCtx): boolean;
16
+ export type EventActions = import('../actions').Action[];
17
+ export type EventPorts = import('../ports').EventReducerPorts;
18
+ export type EventKeydownCtx = import('../reducers/keydown.reducer').KeydownReducerCtx;
@@ -0,0 +1,22 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @description Service responsible for `line` breaking and default `line` creation logic.
4
+ * - Handles the `Enter` key behavior (`P` vs `BR` vs `DIV`).
5
+ * - Manages the initial `line` creation when the editor is empty.
6
+ */
7
+ export default class DefaultLineManager {
8
+ /**
9
+ * @constructor
10
+ * @param {import('../eventOrchestrator').default} inst
11
+ */
12
+ constructor({ $ }: import('../eventOrchestrator').default);
13
+ /**
14
+ * @description Executes the default `line` creation logic.
15
+ * - If no `formatName` is provided, it uses the `defaultLine` option (usually `P`).
16
+ * - Handles creating a new `block` element when the user presses `Enter` or when initializing.
17
+ * @param {string} [formatName] The tag name to be used for the new `line` (e.g., `P`, `DIV`, `BR`).
18
+ * @returns {?void}
19
+ */
20
+ execute(formatName?: string): void | null;
21
+ #private;
22
+ }
@@ -0,0 +1,29 @@
1
+ import type {} from '../../../typedef';
2
+ /**
3
+ * @description Service class managing the selection state and toolbar updates.
4
+ * - Handles activating toolbar buttons based on the current selection.
5
+ * - Manages the `active` state of plugins and commands.
6
+ */
7
+ export default class SelectionState {
8
+ /**
9
+ * @constructor
10
+ * @param {import('../eventOrchestrator').default} eventOrchestrator
11
+ */
12
+ constructor(eventOrchestrator: import('../eventOrchestrator').default);
13
+ /**
14
+ * @description Updates the toolbar state based on the current selection.
15
+ * - Traverses the DOM from the selection to the root.
16
+ * - Checks for active tags and styles.
17
+ * - Activates corresponding toolbar buttons.
18
+ * @param {Node} [selectionNode] The node where the selection is currently located.
19
+ * @returns {Node|undefined} The processed selection node.
20
+ */
21
+ update(selectionNode?: Node): Node | undefined;
22
+ /**
23
+ * @description Resets the toolbar state.
24
+ * - Deactivates all buttons and clears the effect.
25
+ * - Equivalent to calling `setKeyEffect([])`.
26
+ */
27
+ reset(): void;
28
+ #private;
29
+ }