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,131 @@
1
+ import type {} from '../../../typedef';
2
+ export default Shortcuts;
3
+ export type ShortcutInfo = {
4
+ /**
5
+ * - Whether the [Ctrl, Command] key is pressed.
6
+ */
7
+ c: boolean;
8
+ /**
9
+ * - Whether the [Shift] key is pressed.
10
+ */
11
+ s: boolean;
12
+ /**
13
+ * - Whether the [Space] key is pressed.
14
+ */
15
+ space: boolean;
16
+ /**
17
+ * - Whether the Enter key is pressed.
18
+ */
19
+ enter: boolean;
20
+ /**
21
+ * - The command key. (e.g. `bold`)
22
+ */
23
+ command: string;
24
+ /**
25
+ * - Whether the cursor is at the end of the line.
26
+ */
27
+ edge: boolean;
28
+ /**
29
+ * - The key pressed (e.g., `1.`).
30
+ */
31
+ key?: string;
32
+ /**
33
+ * - The keyEvent.code.
34
+ */
35
+ keyCode?: string;
36
+ /**
37
+ * - A plugin's `shortcut` method that is called instead of the default `editor.run` method.
38
+ */
39
+ method?: string | ((...args: any) => any);
40
+ /**
41
+ * - The plugin name.
42
+ */
43
+ plugin: string;
44
+ /**
45
+ * - Plugin's type. (`command`, `dropdown`, `modal`, `browser`, `input`, `field`, `popup`).
46
+ */
47
+ type: string;
48
+ /**
49
+ * - The plugin command button.
50
+ */
51
+ button: Node;
52
+ /**
53
+ * - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
54
+ */
55
+ r: Array<string>;
56
+ /**
57
+ * - Whether the event was triggered by a text input (e.g., mention like
58
+ */
59
+ textTrigger: string;
60
+ };
61
+ /**
62
+ * @typedef {Object} ShortcutInfo
63
+ * @property {boolean} c - Whether the [Ctrl, Command] key is pressed.
64
+ * @property {boolean} s - Whether the [Shift] key is pressed.
65
+ * @property {boolean} space - Whether the [Space] key is pressed.
66
+ * @property {boolean} enter - Whether the Enter key is pressed.
67
+ * @property {string} command - The command key. (e.g. `bold`)
68
+ * @property {boolean} edge - Whether the cursor is at the end of the line.
69
+ * @property {string} [key] - The key pressed (e.g., `1.`).
70
+ * @property {string} [keyCode] - The keyEvent.code.
71
+ * @property {string|((...args: *) => *)} [method] - A plugin's `shortcut` method that is called instead of the default `editor.run` method.
72
+ * @property {string} plugin - The plugin name.
73
+ * @property {string} type - Plugin's type. (`command`, `dropdown`, `modal`, `browser`, `input`, `field`, `popup`).
74
+ * @property {Node} button - The plugin command button.
75
+ * @property {Array<string>} r - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
76
+ * @property {string} textTrigger - Whether the event was triggered by a text input (e.g., mention like @ab).
77
+ */
78
+ /**
79
+ * @description Shortcuts class
80
+ */
81
+ declare class Shortcuts {
82
+ /**
83
+ * @constructor
84
+ * @param {SunEditor.Kernel} kernel
85
+ */
86
+ constructor(kernel: SunEditor.Kernel);
87
+ /**
88
+ * @description Shortcuts key map
89
+ * @type {Map<string, *>}
90
+ */
91
+ keyMap: Map<string, any>;
92
+ /**
93
+ * @description Shortcuts reverse key array
94
+ * - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
95
+ * @type {Set<string>}
96
+ */
97
+ reverseKeys: Set<string>;
98
+ /**
99
+ * @description If there is a shortcut function, run it.
100
+ * @param {KeyboardEvent} event Keyboard event object
101
+ * @param {boolean} ctrl Whether the Ctrl key is pressed
102
+ * @param {boolean} shift Whether the Shift key is pressed
103
+ * @param {string} keyCode The keyEvent.code.
104
+ * @param {string} text The text content of the key
105
+ * @param {boolean} edge Whether the cursor is at the end of the line
106
+ * @param {HTMLElement} line The current line node
107
+ * @param {Range} range The current range object
108
+ * @returns {boolean} Whether to execute shortcuts
109
+ */
110
+ command(event: KeyboardEvent, ctrl: boolean, shift: boolean, keyCode: string, text: string, edge: boolean, line: HTMLElement, range: Range): boolean;
111
+ /**
112
+ * @description Disable the shortcut activation.
113
+ */
114
+ disable(): void;
115
+ /**
116
+ * @description Enable the shortcut activation.
117
+ */
118
+ enable(): void;
119
+ /**
120
+ * @internal
121
+ * @description Registers custom shortcut keys (keys starting with `_`) into the shortcut map.
122
+ * Called during initialization and when toolbar is reset.
123
+ */
124
+ _registerCustomShortcuts(): void;
125
+ /**
126
+ * @internal
127
+ * @description Destroy the Shortcuts instance and release memory
128
+ */
129
+ _destroy(): void;
130
+ #private;
131
+ }
@@ -0,0 +1,261 @@
1
+ import type {} from '../../../typedef';
2
+ export default UIManager;
3
+ /**
4
+ * @description The UI class is a class that handles operations related to the user interface of SunEditor.
5
+ * - This class sets the editor's style, theme, editor mode, etc., and controls the state of various UI elements.
6
+ */
7
+ declare class UIManager {
8
+ /**
9
+ * @constructor
10
+ * @param {SunEditor.Kernel} kernel
11
+ */
12
+ constructor(kernel: SunEditor.Kernel);
13
+ alertModal: HTMLElement;
14
+ alertMessage: HTMLSpanElement;
15
+ toastPopup: HTMLElement;
16
+ toastContainer: Element;
17
+ toastMessage: HTMLSpanElement;
18
+ /**
19
+ * @description Whether `SelectMenu` is open
20
+ * @type {boolean}
21
+ */
22
+ selectMenuOn: boolean;
23
+ /**
24
+ * @description Currently open `Controller` info array
25
+ * @type {Array<SunEditor.Module.Controller.Info>}
26
+ */
27
+ opendControllers: Array<SunEditor.Module.Controller.Info>;
28
+ /**
29
+ * @description Controller target's frame div (`editor.frameContext.get('topArea')`)
30
+ * @type {?HTMLElement}
31
+ */
32
+ controllerTargetContext: HTMLElement | null;
33
+ /**
34
+ * @internal
35
+ * @description Current Figure container.
36
+ * @type {?HTMLElement}
37
+ */
38
+ _figureContainer: HTMLElement | null;
39
+ /**
40
+ * @description Set editor frame styles.
41
+ * - Define the style of the edit area
42
+ * - It can also be defined with the `setOptions` method, but the `setEditorStyle` method does not render the editor again.
43
+ * @param {string} style Style string
44
+ * @param {?SunEditor.FrameContext} [fc] Frame context
45
+ */
46
+ setEditorStyle(style: string, fc?: SunEditor.FrameContext | null): void;
47
+ /**
48
+ * @description Set the theme to the editor
49
+ * @param {string} theme Theme name
50
+ */
51
+ setTheme(theme: string): void;
52
+ /**
53
+ * @description Set direction to `rtl` or `ltr`.
54
+ * @param {string} dir `rtl` or `ltr`
55
+ */
56
+ setDir(dir: string): void;
57
+ /**
58
+ * @description Switch to or off `ReadOnly` mode.
59
+ * @param {boolean} value `readOnly` boolean value.
60
+ * @param {string} [rootKey] Root key
61
+ */
62
+ readOnly(value: boolean, rootKey?: string): void;
63
+ /**
64
+ * @description Disables the editor.
65
+ * @param {string} [rootKey] Root key
66
+ */
67
+ disable(rootKey?: string): void;
68
+ /**
69
+ * @description Enables the editor.
70
+ * @param {string} [rootKey] Root key
71
+ */
72
+ enable(rootKey?: string): void;
73
+ /**
74
+ * @description Shows the editor interface.
75
+ * @param {string} [rootKey] Root key
76
+ */
77
+ show(rootKey?: string): void;
78
+ /**
79
+ * @description Hides the editor interface.
80
+ * @param {string} [rootKey] Root key
81
+ */
82
+ hide(rootKey?: string): void;
83
+ /**
84
+ * @description Shows the loading spinner.
85
+ * @param {string} [rootKey] Root key
86
+ */
87
+ showLoading(rootKey?: string): void;
88
+ /**
89
+ * @description Hides the loading spinner.
90
+ * @param {string} [rootKey] Root key
91
+ */
92
+ hideLoading(rootKey?: string): void;
93
+ /**
94
+ * @description Open the alert panel
95
+ * @param {string} text alert message
96
+ * @param {""|"error"|"success"} type alert type
97
+ */
98
+ alertOpen(text: string, type: '' | 'error' | 'success'): void;
99
+ /**
100
+ * @description Close the alert panel
101
+ */
102
+ alertClose(): void;
103
+ /**
104
+ * @description Show toast
105
+ * @param {string} message toast message
106
+ * @param {number} [duration=1000] duration time(ms)
107
+ * @param {""|"error"|"success"} [type=""] duration time(ms)
108
+ */
109
+ showToast(message: string, duration?: number, type?: '' | 'error' | 'success'): void;
110
+ /**
111
+ * @description Close toast
112
+ */
113
+ closeToast(): void;
114
+ /**
115
+ * @description This method disables or enables the toolbar buttons when the `controller` is activated or deactivated.
116
+ * - When the `controller` is activated, the toolbar buttons are disabled; when the `controller` is deactivated, the buttons are enabled.
117
+ * @param {boolean} active If `true`, the toolbar buttons will be disabled. If `false`, the toolbar buttons will be enabled.
118
+ * @returns {boolean} The current state of the controller on disabled buttons.
119
+ */
120
+ setControllerOnDisabledButtons(active: boolean): boolean;
121
+ /**
122
+ * @description Set the controller target context to the current top area.
123
+ */
124
+ onControllerContext(): void;
125
+ /**
126
+ * @description Reset the controller target context.
127
+ */
128
+ offControllerContext(): void;
129
+ /**
130
+ * @description Activate the transparent background `div` so that other elements are not affected during resizing.
131
+ * @param {string} cursor cursor css property
132
+ */
133
+ enableBackWrapper(cursor: string): void;
134
+ /**
135
+ * @description Disabled background `div`
136
+ */
137
+ disableBackWrapper(): void;
138
+ /**
139
+ * @description Closes the currently active controller by delegating to the component's deselect logic.
140
+ * Use this method to close a single active controller from external code.
141
+ * @see _offControllers - For closing all open controllers at once (internal use)
142
+ */
143
+ offCurrentController(): void;
144
+ /**
145
+ * @description Closes the currently open modal dialog.
146
+ */
147
+ offCurrentModal(): void;
148
+ /**
149
+ * @description Get the current figure container only if it is visible (active).
150
+ * @returns {?HTMLElement} The active figure element or null.
151
+ */
152
+ getVisibleFigure(): HTMLElement | null;
153
+ /**
154
+ * @description Set the active figure element (image, video) being resized.
155
+ * @param {?HTMLElement} figure
156
+ */
157
+ setFigureContainer(figure: HTMLElement | null): void;
158
+ preventToolbarHide(allow: any): void;
159
+ get isPreventToolbarHide(): boolean;
160
+ /**
161
+ * @param {SunEditor.FrameContext} rt Root target[key] FrameContext
162
+ */
163
+ reset(rt: SunEditor.FrameContext): void;
164
+ /**
165
+ * @internal
166
+ * @description Closes all open controllers except those marked as `fixed`.
167
+ * Iterates through `opendControllers`, calls `controllerClose` on each non-fixed controller,
168
+ * hides their forms, and resets the controller state.
169
+ * @see offCurrentController - Public method for closing a single controller via component deselect
170
+ */
171
+ _offControllers(): void;
172
+ currentControllerName: string;
173
+ /**
174
+ * @internal
175
+ * @description Synchronizes floating UI element positions with the current scroll offset.
176
+ * Called by eventManager when the wysiwyg area is scrolled.
177
+ * - Adjusts balloon toolbar position based on scroll offset
178
+ * - Closes controllers if scroll target changes
179
+ * - Updates line breaker positions
180
+ * @param {SunEditor.EventWysiwyg} eventWysiwyg - The scroll event source (Window or element with scroll data)
181
+ */
182
+ _syncScrollPosition(eventWysiwyg: SunEditor.EventWysiwyg): void;
183
+ /**
184
+ * @internal
185
+ * @description Repositions all currently open controllers after scroll.
186
+ * Called by eventManager during container scroll events.
187
+ * - Triggers drag handle repositioning if active
188
+ * - Calls _scrollReposition on each open controller
189
+ */
190
+ _repositionControllers(): void;
191
+ /**
192
+ * @internal
193
+ * @description Visible controllers
194
+ * @param {boolean} value hidden/show
195
+ * @param {?boolean} [lineBreakShow] Line break hidden/show (default: Follows the value `value`.)
196
+ */
197
+ _visibleControllers(value: boolean, lineBreakShow?: boolean | null): void;
198
+ setCurrentControllerContext: any;
199
+ /**
200
+ * @internal
201
+ * @description Set the disabled button list
202
+ */
203
+ _initToggleButtons(): void;
204
+ /**
205
+ * @internal
206
+ * @description Toggle the disabled state of buttons reserved for Code View.
207
+ * @param {boolean} isCodeView
208
+ */
209
+ _toggleCodeViewButtons(isCodeView: boolean): void;
210
+ /**
211
+ * @internal
212
+ * @description Toggle the disabled state of buttons when a controller is active.
213
+ * @param {boolean} isOpen
214
+ */
215
+ _toggleControllerButtons(isOpen: boolean): void;
216
+ /**
217
+ * @description Check if the button can be executed in the current state (ReadOnly, etc.)
218
+ * @param {Node} button
219
+ * @returns {boolean}
220
+ */
221
+ isButtonDisabled(button: Node): boolean;
222
+ /**
223
+ * @internal
224
+ * @description Updates `placeholder` visibility based on editor state.
225
+ * Shows `placeholder` when editor is empty, hides it in code view or when content exists.
226
+ * @param {SunEditor.FrameContext} [fc] - Frame context (defaults to current frameContext)
227
+ */
228
+ _updatePlaceholder(fc?: SunEditor.FrameContext): void;
229
+ /**
230
+ * @internal
231
+ * @description Synchronizes frame UI state after content changes.
232
+ * Coordinates `iframe` height adjustment, `placeholder` visibility, and document type page sync.
233
+ * @param {SunEditor.FrameContext} fc - Frame context to synchronize
234
+ */
235
+ _syncFrameState(fc: SunEditor.FrameContext): void;
236
+ /**
237
+ * @internal
238
+ * @description Adjusts `iframe` height to match content height.
239
+ * Handles `auto`-height `iframe`s and manages scrolling based on `maxHeight` option.
240
+ * @param {SunEditor.FrameContext} fc - Frame context containing the `iframe`
241
+ */
242
+ _iframeAutoHeight(fc: SunEditor.FrameContext): void;
243
+ /**
244
+ * @internal
245
+ * @description Emits the `onResizeEditor` event when editor height changes.
246
+ * Calculates height from `ResizeObserverEntry` if not provided directly.
247
+ * @param {SunEditor.FrameContext} fc - Frame context
248
+ * @param {number} h - Height value (`-1` to calculate from `resizeObserverEntry`)
249
+ * @param {ResizeObserverEntry|null} resizeObserverEntry - `ResizeObserver` entry for height calculation
250
+ */
251
+ _emitResizeEvent(fc: SunEditor.FrameContext, h: number, resizeObserverEntry: ResizeObserverEntry | null): void;
252
+ init(): void;
253
+ /**
254
+ * @internal
255
+ * @description Destroy the UI instance and release memory
256
+ */
257
+ _destroy(): void;
258
+ opendModal: any;
259
+ opendBrowser: any;
260
+ #private;
261
+ }
@@ -0,0 +1,104 @@
1
+ import type {} from '../../typedef';
2
+ /**
3
+ * @typedef {Object} ContextStore
4
+ *
5
+ * This object stores **global editor-level UI references** for a SunEditor instance.
6
+ *
7
+ * - Primarily manages **toolbar, menu tray, and status bar containers**.
8
+ * - Used by the editor to control **sticky behavior, sub-toolbars, and global layout**.
9
+ * - Shared across all frames in a multi-frame editor (unlike FrameContextStore which is per-frame).
10
+ * -----------------
11
+ *
12
+ * === Main UI Containers ===
13
+ * @property {HTMLElement} menuTray - The **top menu tray** that holds buttons, dropdowns, or custom menus.
14
+ * @property {HTMLElement} toolbar_main - The **main toolbar** element containing editor actions.
15
+ * @property {HTMLElement} toolbar_buttonTray - The **container for main toolbar buttons**.
16
+ * @property {HTMLElement} toolbar_arrow - The **arrow indicator** in the toolbar (used for dropdown/tool menu navigation).
17
+ * @property {HTMLElement} [toolbar_wrapper] - The **wrapper for the main toolbar and editor frame** (groups UI together).
18
+ *
19
+ * === Sub-Toolbar (Contextual/Balloon) ===
20
+ * @property {HTMLElement} [toolbar_sub_main] - The **sub-toolbar** element (used for contextual or balloon toolbars).
21
+ * @property {HTMLElement} [toolbar_sub_buttonTray] - The **container for sub-toolbar buttons**.
22
+ * @property {HTMLElement} [toolbar_sub_arrow] - The **arrow indicator** in the sub-toolbar.
23
+ * @property {HTMLElement} [toolbar_sub_wrapper] - The **wrapper for the sub-toolbar**, containing its structure.
24
+ *
25
+ * === Status Bar ===
26
+ * @property {HTMLElement} [statusbar_wrapper] - The **wrapper for the status bar** (footer area for resize handles, info, etc.).
27
+ *
28
+ * === Sticky Mode Helpers ===
29
+ * @property {HTMLElement} [_stickyDummy] - A **dummy placeholder** used when the toolbar is in sticky mode (to prevent layout shift).
30
+ * ================================================================================================================================
31
+ */
32
+ /**
33
+ * @description Creates a context map of commonly accessed DOM elements for the editor.
34
+ * @param {Element} toolbar - Main toolbar element.
35
+ * @param {?Element} toolbarContainer - Container element for the toolbar.
36
+ * @param {Element} menuTray - Main menu tray element.
37
+ * @param {?Element} subbar - Sub-toolbar element.
38
+ * @param {?Element} statusbarContainer - Status bar container element.
39
+ * @returns {SunEditor.Context} - A map of key DOM nodes used throughout the editor.
40
+ */
41
+ export function CreateContext(toolbar: Element, toolbarContainer: Element | null, menuTray: Element, subbar: Element | null, statusbarContainer: Element | null): SunEditor.Context;
42
+ /**
43
+ * This object stores **global editor-level UI references** for a SunEditor instance.
44
+ *
45
+ * - Primarily manages **toolbar, menu tray, and status bar containers**.
46
+ * - Used by the editor to control **sticky behavior, sub-toolbars, and global layout**.
47
+ * - Shared across all frames in a multi-frame editor (unlike FrameContextStore which is per-frame).
48
+ * -----------------
49
+ *
50
+ * === Main UI Containers ===
51
+ */
52
+ export type ContextStore = {
53
+ /**
54
+ * - The **top menu tray** that holds buttons, dropdowns, or custom menus.
55
+ */
56
+ menuTray: HTMLElement;
57
+ /**
58
+ * - The **main toolbar** element containing editor actions.
59
+ */
60
+ toolbar_main: HTMLElement;
61
+ /**
62
+ * - The **container for main toolbar buttons**.
63
+ */
64
+ toolbar_buttonTray: HTMLElement;
65
+ /**
66
+ * - The **arrow indicator** in the toolbar (used for dropdown/tool menu navigation).
67
+ */
68
+ toolbar_arrow: HTMLElement;
69
+ /**
70
+ * - The **wrapper for the main toolbar and editor frame** (groups UI together).
71
+ *
72
+ * === Sub-Toolbar (Contextual/Balloon) ===
73
+ */
74
+ toolbar_wrapper?: HTMLElement;
75
+ /**
76
+ * - The **sub-toolbar** element (used for contextual or balloon toolbars).
77
+ */
78
+ toolbar_sub_main?: HTMLElement;
79
+ /**
80
+ * - The **container for sub-toolbar buttons**.
81
+ */
82
+ toolbar_sub_buttonTray?: HTMLElement;
83
+ /**
84
+ * - The **arrow indicator** in the sub-toolbar.
85
+ */
86
+ toolbar_sub_arrow?: HTMLElement;
87
+ /**
88
+ * - The **wrapper for the sub-toolbar**, containing its structure.
89
+ *
90
+ * === Status Bar ===
91
+ */
92
+ toolbar_sub_wrapper?: HTMLElement;
93
+ /**
94
+ * - The **wrapper for the status bar** (footer area for resize handles, info, etc.).
95
+ *
96
+ * === Sticky Mode Helpers ===
97
+ */
98
+ statusbar_wrapper?: HTMLElement;
99
+ /**
100
+ * - A **dummy placeholder** used when the toolbar is in sticky mode (to prevent layout shift).
101
+ * ================================================================================================================================
102
+ */
103
+ _stickyDummy?: HTMLElement;
104
+ };