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,451 +0,0 @@
1
- export default Image_;
2
- export type ModalReturns_image = {
3
- html: HTMLElement;
4
- alignForm: HTMLElement;
5
- fileModalWrapper: HTMLElement;
6
- imgInputFile: HTMLInputElement;
7
- imgUrlFile: HTMLInputElement;
8
- altText: HTMLInputElement;
9
- captionCheckEl: HTMLInputElement;
10
- previewSrc: HTMLElement;
11
- tabs: HTMLElement;
12
- galleryButton: HTMLButtonElement;
13
- proportion: HTMLInputElement;
14
- inputX: HTMLInputElement;
15
- inputY: HTMLInputElement;
16
- revertBtn: HTMLButtonElement;
17
- asBlock: HTMLButtonElement;
18
- asInline: HTMLButtonElement;
19
- fileRemoveBtn: HTMLButtonElement;
20
- };
21
- export type ImageInfo_image = import('../../events').ImageInfo;
22
- export type FigureControls_image = import('../../modules/Figure').FigureControls;
23
- export type ImagePluginOptions = {
24
- /**
25
- * - Whether the image element can be resized.
26
- */
27
- canResize?: boolean;
28
- /**
29
- * - Whether to display the height input field.
30
- */
31
- showHeightInput?: boolean;
32
- /**
33
- * - The default width of the image. If a number is provided, "px" will be appended.
34
- */
35
- defaultWidth?: string;
36
- /**
37
- * - The default height of the image. If a number is provided, "px" will be appended.
38
- */
39
- defaultHeight?: string;
40
- /**
41
- * - Whether to allow only percentage-based sizing.
42
- */
43
- percentageOnlySize?: boolean;
44
- /**
45
- * - Whether to create a file input element for image uploads.
46
- */
47
- createFileInput?: boolean;
48
- /**
49
- * - Whether to create a URL input element for image insertion.
50
- */
51
- createUrlInput?: boolean;
52
- /**
53
- * - The URL endpoint for image file uploads.
54
- */
55
- uploadUrl?: string;
56
- /**
57
- * - Additional headers to include in the file upload request.
58
- */
59
- uploadHeaders?: {
60
- [x: string]: string;
61
- };
62
- /**
63
- * - The total upload size limit in bytes.
64
- */
65
- uploadSizeLimit?: number;
66
- /**
67
- * - The single file upload size limit in bytes.
68
- */
69
- uploadSingleSizeLimit?: number;
70
- /**
71
- * - Whether multiple image uploads are allowed.
72
- */
73
- allowMultiple?: boolean;
74
- /**
75
- * - The accepted file formats for image uploads.
76
- */
77
- acceptedFormats?: string;
78
- /**
79
- * - Whether to enable format type selection (block or inline).
80
- */
81
- useFormatType?: boolean;
82
- /**
83
- * - The default image format type ("block" or "inline").
84
- */
85
- defaultFormatType?: string;
86
- /**
87
- * - Whether to retain the chosen format type after image insertion.
88
- */
89
- keepFormatType?: boolean;
90
- /**
91
- * - Whether to enable file uploads for linked images.
92
- */
93
- linkEnableFileUpload?: boolean;
94
- /**
95
- * - Figure controls.
96
- */
97
- controls?: FigureControls_image;
98
- };
99
- /**
100
- * @typedef {import('../../events').ImageInfo} ImageInfo_image
101
- */
102
- /**
103
- * @typedef {import('../../modules/Figure').FigureControls} FigureControls_image
104
- */
105
- /**
106
- * @typedef {Object} ImagePluginOptions
107
- * @property {boolean} [canResize=true] - Whether the image element can be resized.
108
- * @property {boolean} [showHeightInput=true] - Whether to display the height input field.
109
- * @property {string} [defaultWidth="auto"] - The default width of the image. If a number is provided, "px" will be appended.
110
- * @property {string} [defaultHeight="auto"] - The default height of the image. If a number is provided, "px" will be appended.
111
- * @property {boolean} [percentageOnlySize=false] - Whether to allow only percentage-based sizing.
112
- * @property {boolean} [createFileInput=true] - Whether to create a file input element for image uploads.
113
- * @property {boolean} [createUrlInput=true] - Whether to create a URL input element for image insertion.
114
- * @property {string} [uploadUrl] - The URL endpoint for image file uploads.
115
- * @property {Object<string, string>} [uploadHeaders] - Additional headers to include in the file upload request.
116
- * @property {number} [uploadSizeLimit] - The total upload size limit in bytes.
117
- * @property {number} [uploadSingleSizeLimit] - The single file upload size limit in bytes.
118
- * @property {boolean} [allowMultiple=false] - Whether multiple image uploads are allowed.
119
- * @property {string} [acceptedFormats="image/*"] - The accepted file formats for image uploads.
120
- * @property {boolean} [useFormatType=true] - Whether to enable format type selection (block or inline).
121
- * @property {string} [defaultFormatType="block"] - The default image format type ("block" or "inline").
122
- * @property {boolean} [keepFormatType=false] - Whether to retain the chosen format type after image insertion.
123
- * @property {boolean} [linkEnableFileUpload] - Whether to enable file uploads for linked images.
124
- * @property {FigureControls_image} [controls] - Figure controls.
125
- */
126
- /**
127
- * @class
128
- * @description Image plugin.
129
- * - This plugin provides image insertion functionality within the editor, supporting both file upload and URL input.
130
- */
131
- declare class Image_ extends EditorInjector {
132
- static key: string;
133
- static type: string;
134
- static className: string;
135
- /**
136
- * @this {Image_}
137
- * @param {Element} node - The node to check.
138
- * @returns {Element|null} Returns a node if the node is a valid component.
139
- */
140
- static component(this: Image_, node: Element): Element | null;
141
- /**
142
- * @constructor
143
- * @param {__se__EditorCore} editor - The root editor instance
144
- * @param {ImagePluginOptions} pluginOptions
145
- */
146
- constructor(editor: __se__EditorCore, pluginOptions: ImagePluginOptions);
147
- title: any;
148
- icon: string;
149
- pluginOptions: {
150
- canResize: boolean;
151
- showHeightInput: boolean;
152
- defaultWidth: string;
153
- defaultHeight: string;
154
- percentageOnlySize: boolean;
155
- createFileInput: boolean;
156
- createUrlInput: boolean;
157
- uploadUrl: string;
158
- uploadHeaders: {
159
- [x: string]: string;
160
- };
161
- uploadSizeLimit: number;
162
- uploadSingleSizeLimit: number;
163
- allowMultiple: boolean;
164
- acceptedFormats: string;
165
- useFormatType: boolean;
166
- defaultFormatType: string;
167
- keepFormatType: boolean;
168
- };
169
- alignForm: HTMLElement;
170
- anchor: ModalAnchorEditor;
171
- modal: Modal;
172
- figure: Figure;
173
- fileManager: FileManager;
174
- fileModalWrapper: HTMLElement;
175
- imgInputFile: HTMLInputElement;
176
- imgUrlFile: HTMLInputElement;
177
- focusElement: HTMLInputElement;
178
- altText: HTMLInputElement;
179
- captionCheckEl: HTMLInputElement;
180
- captionEl: HTMLElement;
181
- previewSrc: HTMLElement;
182
- sizeUnit: string;
183
- as: string;
184
- proportion: HTMLInputElement;
185
- inputX: HTMLInputElement;
186
- inputY: HTMLInputElement;
187
- _linkElement: any;
188
- _linkValue: string;
189
- _align: string;
190
- _svgDefaultSize: string;
191
- _base64RenderIndex: number;
192
- _element: any;
193
- _cover: any;
194
- _container: any;
195
- _caption: HTMLElement;
196
- _ratio: {
197
- w: number;
198
- h: number;
199
- };
200
- _origin_w: string;
201
- _origin_h: string;
202
- _resizing: boolean;
203
- _onlyPercentage: boolean;
204
- _nonResizing: boolean;
205
- asBlock: HTMLButtonElement;
206
- asInline: HTMLButtonElement;
207
- /**
208
- * @editorMethod Modules.Modal
209
- * @description Executes the method that is called when a "Modal" module's is opened.
210
- */
211
- open(): void;
212
- /**
213
- * @editorMethod Modules.Controller(Figure)
214
- * @description Executes the method that is called when a target component is edited.
215
- */
216
- edit(): void;
217
- /**
218
- * @editorMethod Modules.Modal
219
- * @description Executes the method that is called when a plugin's modal is opened.
220
- * @param {boolean} isUpdate "Indicates whether the modal is for editing an existing component (true) or registering a new one (false)."
221
- */
222
- on(isUpdate: boolean): void;
223
- /**
224
- * @editorMethod Editor.EventManager
225
- * @description Executes the event function of "paste" or "drop".
226
- * @param {Object} params { frameContext, event, file }
227
- * @param {__se__FrameContext} params.frameContext Frame context
228
- * @param {ClipboardEvent} params.event Event object
229
- * @param {File} params.file File object
230
- * @returns {boolean} - If return false, the file upload will be canceled
231
- */
232
- onFilePasteAndDrop({ file }: { frameContext: __se__FrameContext; event: ClipboardEvent; file: File }): boolean;
233
- /**
234
- * @editorMethod Modules.Modal
235
- * @description This function is called when a form within a modal window is "submit".
236
- * @returns {Promise<boolean>} Success or failure
237
- */
238
- modalAction(): Promise<boolean>;
239
- /**
240
- * @editorMethod Editor.core
241
- * @description This method is used to validate and preserve the format of the component within the editor.
242
- * - It ensures that the structure and attributes of the element are maintained and secure.
243
- * - The method checks if the element is already wrapped in a valid container and updates its attributes if necessary.
244
- * - If the element isn't properly contained, a new container is created to retain the format.
245
- * @returns {{query: string, method: (element: HTMLImageElement) => void}} The format retention object containing the query and method to process the element.
246
- * - query: The selector query to identify the relevant elements (in this case, 'audio').
247
- * - method:The function to execute on the element to validate and preserve its format.
248
- * - The function takes the element as an argument, checks if it is contained correctly, and applies necessary adjustments.
249
- */
250
- retainFormat(): {
251
- query: string;
252
- method: (element: HTMLImageElement) => void;
253
- };
254
- /**
255
- * @editorMethod Modules.Modal
256
- * @description This function is called before the modal window is opened, but before it is closed.
257
- */
258
- init(): void;
259
- /**
260
- * @editorMethod Editor.Component
261
- * @description Executes the method that is called when a component of a plugin is selected.
262
- * @param {HTMLElement} target Target component element
263
- */
264
- select(target: HTMLElement): void;
265
- /**
266
- * @private
267
- * @description Prepares the component for selection.
268
- * - Ensures that the controller is properly positioned and initialized.
269
- * - Prevents duplicate event handling if the component is already selected.
270
- * @param {HTMLElement} target - The selected element.
271
- */
272
- private _ready;
273
- /**
274
- * @editorMethod Editor.Component
275
- * @description Method to delete a component of a plugin, called by the "FileManager", "Controller" module.
276
- * @param {HTMLElement} target Target element
277
- * @returns {Promise<void>}
278
- */
279
- destroy(target: HTMLElement): Promise<void>;
280
- /**
281
- * @private
282
- * @description Retrieves the current image information.
283
- * @returns {*} - The image data.
284
- */
285
- private _getInfo;
286
- /**
287
- * @private
288
- * @description Toggles between block and inline image format.
289
- * @param {boolean} isInline - Whether the image should be inline.
290
- */
291
- private _activeAsInline;
292
- /**
293
- * @description Create an "image" component using the provided files.
294
- * @param {FileList|File[]} fileList File object list
295
- * @returns {Promise<boolean>} If return false, the file upload will be canceled
296
- */
297
- submitFile(fileList: FileList | File[]): Promise<boolean>;
298
- /**
299
- * @description Create an "image" component using the provided url.
300
- * @param {string} url File url
301
- * @returns {Promise<boolean>} If return false, the file upload will be canceled
302
- */
303
- submitURL(url: string): Promise<boolean>;
304
- /**
305
- * @private
306
- * @description Updates the selected image size, alt text, and caption.
307
- * @param {string} width - New image width.
308
- * @param {string} height - New image height.
309
- */
310
- private _update;
311
- /**
312
- * @private
313
- * @description Validates the image size and applies necessary transformations.
314
- * @param {string} width - The width of the image.
315
- * @param {string} height - The height of the image.
316
- */
317
- private _fileCheck;
318
- /**
319
- * @private
320
- * @description Creates a new image component based on provided parameters.
321
- * @param {string} src - The image source URL.
322
- * @param {?Node} anchor - Optional anchor wrapping the image.
323
- * @param {string} width - Image width.
324
- * @param {string} height - Image height.
325
- * @param {string} align - Image alignment.
326
- * @param {{name: string, size: number}} file - File metadata.
327
- * @param {string} alt - Alternative text.
328
- */
329
- private _produce;
330
- /**
331
- * @private
332
- * @description Applies the specified width and height to the image.
333
- * @param {string} w - Image width.
334
- * @param {string} h - Image height.
335
- */
336
- private _applySize;
337
- /**
338
- * @description Creates a new image component, wraps it in a figure container with an optional anchor,
339
- * - applies size and alignment settings, and inserts it into the editor.
340
- * @param {string} src - The URL of the image to be inserted.
341
- * @param {?Node} anchor - An optional anchor element to wrap the image. If provided, a clone is used.
342
- * @param {string} width - The width value to be applied to the image.
343
- * @param {string} height - The height value to be applied to the image.
344
- * @param {string} align - The alignment setting for the image (e.g., 'left', 'center', 'right').
345
- * @param {{name: string, size: number}} file - File metadata associated with the image
346
- * @param {string} alt - The alternative text for the image.
347
- */
348
- create(
349
- src: string,
350
- anchor: Node | null,
351
- width: string,
352
- height: string,
353
- align: string,
354
- file: {
355
- name: string;
356
- size: number;
357
- },
358
- alt: string
359
- ): void;
360
- /**
361
- * @description Creates a new inline image component, wraps it in an inline figure container with an optional anchor,
362
- * - applies size settings, and inserts it into the editor.
363
- * @param {string} src - The URL of the image to be inserted.
364
- * @param {?Node} anchor - An optional anchor element to wrap the image. If provided, a clone is used.
365
- * @param {string} width - The width value to be applied to the image.
366
- * @param {string} height - The height value to be applied to the image.
367
- * @param {{name: string, size: number}} file - File metadata associated with the image
368
- * @param {string} alt - The alternative text for the image.
369
- */
370
- createInline(
371
- src: string,
372
- anchor: Node | null,
373
- width: string,
374
- height: string,
375
- file: {
376
- name: string;
377
- size: number;
378
- },
379
- alt: string
380
- ): void;
381
- /**
382
- * @private
383
- * @description Updates the image source URL.
384
- * @param {string} src - The new image source.
385
- * @param {HTMLImageElement} element - The image element.
386
- * @param {{ name: string, size: number }} file - File metadata.
387
- */
388
- private _updateSrc;
389
- /**
390
- * @private
391
- * @description Registers the uploaded image and inserts it into the editor.
392
- * @param {ImageInfo_image} info - Image info.
393
- * @param {Object<string, *>} response - Server response data.
394
- */
395
- private _register;
396
- /**
397
- * @private
398
- * @description Uploads the image to the server.
399
- * @param {ImageInfo_image} info - Image upload info.
400
- * @param {FileList} files - List of image files.
401
- */
402
- private _serverUpload;
403
- /**
404
- * @private
405
- * @description Converts an image file to Base64 and inserts it into the editor.
406
- * @param {FileList|File[]} files - List of image files.
407
- * @param {?Node} anchor - Optional anchor wrapping the image.
408
- * @param {string} width - Image width.
409
- * @param {string} height - Image height.
410
- * @param {string} align - Image alignment.
411
- * @param {string} alt - Alternative text.
412
- * @param {boolean} isUpdate - Whether the image is being updated.
413
- */
414
- private _setBase64;
415
- /**
416
- * @private
417
- * @description Inserts an image using a Base64-encoded string.
418
- * @param {boolean} update - Whether the image is being updated.
419
- * @param {Array<{result: string, file: { name: string, size: number }}>} filesStack - Stack of Base64-encoded files.
420
- * - result: Image url or Base64-encoded string
421
- * - file: File metadata ({ name: string, size: number })
422
- * @param {HTMLImageElement} updateElement - The image element being updated.
423
- * @param {?HTMLAnchorElement} anchor - Optional anchor wrapping the image.
424
- * @param {string} width - Image width.
425
- * @param {string} height - Image height.
426
- * @param {string} align - Image alignment.
427
- * @param {string} alt - Alternative text.
428
- */
429
- private _onRenderBase64;
430
- /**
431
- * @private
432
- * @description Wraps an image element with an anchor if provided.
433
- * @param {Node} imgTag - The image element to be wrapped.
434
- * @param {?Node} anchor - The anchor element to wrap around the image. If null, returns the image itself.
435
- * @returns {Node} - The wrapped image inside the anchor or the original image element.
436
- */
437
- private _setAnchor;
438
- /**
439
- * @private
440
- * @description Handles errors during image upload and displays appropriate messages.
441
- * @param {Object<string, *>} response - The error response from the server.
442
- * @returns {Promise<void>}
443
- */
444
- private _error;
445
- #private;
446
- }
447
- import EditorInjector from '../../editorInjector';
448
- import { ModalAnchorEditor } from '../../modules';
449
- import { Modal } from '../../modules';
450
- import { Figure } from '../../modules';
451
- import { FileManager } from '../../modules';
File without changes