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,281 @@
1
+ import type {} from '../../../typedef';
2
+ export default Image_;
3
+ export type ImagePluginOptions = {
4
+ /**
5
+ * - Whether the image element can be resized.
6
+ */
7
+ canResize?: boolean;
8
+ /**
9
+ * - Whether to display the height input field.
10
+ */
11
+ showHeightInput?: boolean;
12
+ /**
13
+ * - The default width of the image. If a number is provided, `"px"` will be appended.
14
+ */
15
+ defaultWidth?: string;
16
+ /**
17
+ * - The default height of the image. If a number is provided, `"px"` will be appended.
18
+ */
19
+ defaultHeight?: string;
20
+ /**
21
+ * - Whether to allow only percentage-based sizing.
22
+ */
23
+ percentageOnlySize?: boolean;
24
+ /**
25
+ * - Whether to create a file input element for image uploads.
26
+ */
27
+ createFileInput?: boolean;
28
+ /**
29
+ * - Whether to create a URL input element for image insertion.
30
+ */
31
+ createUrlInput?: boolean;
32
+ /**
33
+ * - The URL endpoint for image file uploads.
34
+ */
35
+ uploadUrl?: string;
36
+ /**
37
+ * - Additional headers to include in the file upload request.
38
+ */
39
+ uploadHeaders?: {
40
+ [x: string]: string;
41
+ };
42
+ /**
43
+ * - The total upload size limit in bytes.
44
+ */
45
+ uploadSizeLimit?: number;
46
+ /**
47
+ * - The single file upload size limit in bytes.
48
+ */
49
+ uploadSingleSizeLimit?: number;
50
+ /**
51
+ * - Whether multiple image uploads are allowed.
52
+ */
53
+ allowMultiple?: boolean;
54
+ /**
55
+ * - The accepted file formats for image uploads.
56
+ */
57
+ acceptedFormats?: string;
58
+ /**
59
+ * - Whether to enable format type selection (`block` or `inline`).
60
+ */
61
+ useFormatType?: boolean;
62
+ /**
63
+ * - The default image format type (`"block"` or `"inline"`).
64
+ */
65
+ defaultFormatType?: 'block' | 'inline';
66
+ /**
67
+ * - Whether to retain the chosen format type after image insertion.
68
+ */
69
+ keepFormatType?: boolean;
70
+ /**
71
+ * - Whether to enable file uploads for linked images.
72
+ */
73
+ linkEnableFileUpload?: boolean;
74
+ /**
75
+ * - Figure controls.
76
+ */
77
+ controls?: SunEditor.Module.Figure.Controls;
78
+ /**
79
+ * - Component insertion behavior for selection and cursor placement. [default: `options.get('componentInsertBehavior')`]
80
+ * - For inline components: places the cursor near the inserted component or selects it if no nearby range is available.
81
+ * - For block components: executes behavior based on `selectMode`:
82
+ * - `auto`: Move cursor to the next line if possible, otherwise select the component.
83
+ * - `select`: Always select the inserted component.
84
+ * - `line`: Move cursor to the next line if possible, or create a new line and move there.
85
+ * - `none`: Do nothing.
86
+ */
87
+ insertBehavior?: SunEditor.ComponentInsertType;
88
+ };
89
+ export type ImageState = {
90
+ /**
91
+ * - Size unit (`'px'` or `'%'`)
92
+ */
93
+ sizeUnit: string;
94
+ /**
95
+ * - Whether only percentage sizing is allowed
96
+ */
97
+ onlyPercentage: boolean;
98
+ /**
99
+ * - Image production index for batch operations
100
+ */
101
+ produceIndex: number;
102
+ };
103
+ /**
104
+ * @typedef {Object} ImagePluginOptions
105
+ * @property {boolean} [canResize=true] - Whether the image element can be resized.
106
+ * @property {boolean} [showHeightInput=true] - Whether to display the height input field.
107
+ * @property {string} [defaultWidth="auto"] - The default width of the image. If a number is provided, `"px"` will be appended.
108
+ * @property {string} [defaultHeight="auto"] - The default height of the image. If a number is provided, `"px"` will be appended.
109
+ * @property {boolean} [percentageOnlySize=false] - Whether to allow only percentage-based sizing.
110
+ * @property {boolean} [createFileInput=true] - Whether to create a file input element for image uploads.
111
+ * @property {boolean} [createUrlInput=true] - Whether to create a URL input element for image insertion.
112
+ * @property {string} [uploadUrl] - The URL endpoint for image file uploads.
113
+ * @property {Object<string, string>} [uploadHeaders] - Additional headers to include in the file upload request.
114
+ * @property {number} [uploadSizeLimit] - The total upload size limit in bytes.
115
+ * @property {number} [uploadSingleSizeLimit] - The single file upload size limit in bytes.
116
+ * @property {boolean} [allowMultiple=false] - Whether multiple image uploads are allowed.
117
+ * @property {string} [acceptedFormats="image/*"] - The accepted file formats for image uploads.
118
+ * @property {boolean} [useFormatType=true] - Whether to enable format type selection (`block` or `inline`).
119
+ * @property {'block'|'inline'} [defaultFormatType="block"] - The default image format type (`"block"` or `"inline"`).
120
+ * @property {boolean} [keepFormatType=false] - Whether to retain the chosen format type after image insertion.
121
+ * @property {boolean} [linkEnableFileUpload] - Whether to enable file uploads for linked images.
122
+ * @property {SunEditor.Module.Figure.Controls} [controls] - Figure controls.
123
+ * @property {SunEditor.ComponentInsertType} [insertBehavior] - Component insertion behavior for selection and cursor placement. [default: `options.get('componentInsertBehavior')`]
124
+ * - For inline components: places the cursor near the inserted component or selects it if no nearby range is available.
125
+ * - For block components: executes behavior based on `selectMode`:
126
+ * - `auto`: Move cursor to the next line if possible, otherwise select the component.
127
+ * - `select`: Always select the inserted component.
128
+ * - `line`: Move cursor to the next line if possible, or create a new line and move there.
129
+ * - `none`: Do nothing.
130
+ */
131
+ /**
132
+ * @typedef {Object} ImageState
133
+ * @property {string} sizeUnit - Size unit (`'px'` or `'%'`)
134
+ * @property {boolean} onlyPercentage - Whether only percentage sizing is allowed
135
+ * @property {number} produceIndex - Image production index for batch operations
136
+ */
137
+ /**
138
+ * @class
139
+ * @description Image plugin.
140
+ * - This plugin provides image insertion functionality within the editor, supporting both file upload and URL input.
141
+ */
142
+ declare class Image_ extends PluginModal {
143
+ /**
144
+ * @param {Element} node - The node to check.
145
+ * @returns {Element|null} Returns a node if the node is a valid component.
146
+ */
147
+ static component(node: Element): Element | null;
148
+ /**
149
+ * @constructor
150
+ * @param {SunEditor.Kernel} editor - The core kernel
151
+ * @param {ImagePluginOptions} pluginOptions
152
+ */
153
+ constructor(editor: SunEditor.Kernel, pluginOptions: ImagePluginOptions);
154
+ title: any;
155
+ pluginOptions: {
156
+ canResize: boolean;
157
+ showHeightInput: boolean;
158
+ defaultWidth: string;
159
+ defaultHeight: string;
160
+ percentageOnlySize: boolean;
161
+ createFileInput: boolean;
162
+ createUrlInput: boolean;
163
+ uploadUrl: string;
164
+ uploadHeaders: {
165
+ [x: string]: string;
166
+ };
167
+ uploadSizeLimit: number;
168
+ uploadSingleSizeLimit: number;
169
+ allowMultiple: boolean;
170
+ acceptedFormats: string;
171
+ useFormatType: boolean;
172
+ defaultFormatType: 'block' | 'inline';
173
+ keepFormatType: boolean;
174
+ insertBehavior: SunEditor.ComponentInsertType;
175
+ };
176
+ alignForm: HTMLElement;
177
+ anchor: ModalAnchorEditor;
178
+ modal: Modal;
179
+ figure: Figure;
180
+ fileManager: FileManager;
181
+ /** @type {ImageState} */
182
+ state: ImageState;
183
+ fileModalWrapper: HTMLElement;
184
+ imgInputFile: HTMLInputElement;
185
+ imgUrlFile: HTMLInputElement;
186
+ focusElement: HTMLInputElement;
187
+ altText: HTMLInputElement;
188
+ captionCheckEl: HTMLInputElement;
189
+ captionEl: HTMLElement;
190
+ previewSrc: HTMLElement;
191
+ as: 'block' | 'inline';
192
+ sizeService: ImageSizeService;
193
+ uploadService: ImageUploadService;
194
+ asBlock: HTMLButtonElement;
195
+ asInline: HTMLButtonElement;
196
+ /**
197
+ * @template {keyof ImageState} K
198
+ * @param {K} key
199
+ * @param {ImageState[K]} value
200
+ */
201
+ setState<K extends keyof ImageState>(key: K, value: ImageState[K]): void;
202
+ retainFormat(): {
203
+ query: string;
204
+ method: (element: HTMLElement) => void;
205
+ };
206
+ onFilePasteAndDrop(params: SunEditor.HookParams.FilePasteDrop): void;
207
+ modalOn(isUpdate: boolean): void;
208
+ modalAction(): Promise<boolean>;
209
+ modalInit(): void;
210
+ componentSelect(target: HTMLElement): void | boolean;
211
+ componentEdit(target: HTMLElement): void;
212
+ componentDestroy(target: HTMLElement): Promise<void>;
213
+ /**
214
+ * @description Create an `image` component using the provided files.
215
+ * @param {FileList|File[]} fileList File object list
216
+ * @returns {Promise<boolean>} If return `false`, the file upload will be canceled
217
+ */
218
+ submitFile(fileList: FileList | File[]): Promise<boolean>;
219
+ /**
220
+ * @description Create an `image` component using the provided url.
221
+ * @param {string} url File url
222
+ * @returns {Promise<boolean>} If return `false`, the file upload will be canceled
223
+ */
224
+ submitURL(url: string): Promise<boolean>;
225
+ /**
226
+ * @description Creates a new image component, wraps it in a figure container with an optional anchor,
227
+ * - applies size and alignment settings, and inserts it into the editor.
228
+ * @param {string} src - The URL of the image to be inserted.
229
+ * @param {?Node} anchor - An optional anchor element to wrap the image. If provided, a clone is used.
230
+ * @param {string} width - The width value to be applied to the image.
231
+ * @param {string} height - The height value to be applied to the image.
232
+ * @param {string} align - The alignment setting for the image (e.g., 'left', 'center', 'right').
233
+ * @param {{name: string, size: number}} file - File metadata associated with the image
234
+ * @param {string} alt - The alternative text for the image.
235
+ * @param {boolean} isLast - Indicates whether this is the last file in the batch (used for scroll and insert actions).
236
+ */
237
+ create(
238
+ src: string,
239
+ anchor: Node | null,
240
+ width: string,
241
+ height: string,
242
+ align: string,
243
+ file: {
244
+ name: string;
245
+ size: number;
246
+ },
247
+ alt: string,
248
+ isLast: boolean,
249
+ ): void;
250
+ /**
251
+ * @description Creates a new inline image component, wraps it in an inline figure container with an optional anchor,
252
+ * - applies size settings, and inserts it into the editor.
253
+ * @param {string} src - The URL of the image to be inserted.
254
+ * @param {?Node} anchor - An optional anchor element to wrap the image. If provided, a clone is used.
255
+ * @param {string} width - The width value to be applied to the image.
256
+ * @param {string} height - The height value to be applied to the image.
257
+ * @param {{name: string, size: number}} file - File metadata associated with the image
258
+ * @param {string} alt - The alternative text for the image.
259
+ * @param {boolean} isLast - Indicates whether this is the last file in the batch (used for scroll and insert actions).
260
+ */
261
+ createInline(
262
+ src: string,
263
+ anchor: Node | null,
264
+ width: string,
265
+ height: string,
266
+ file: {
267
+ name: string;
268
+ size: number;
269
+ },
270
+ alt: string,
271
+ isLast: boolean,
272
+ ): void;
273
+ #private;
274
+ }
275
+ import { PluginModal } from '../../../interfaces';
276
+ import { Modal } from '../../../modules/contract';
277
+ import { Figure } from '../../../modules/contract';
278
+ import { FileManager } from '../../../modules/manager';
279
+ import { ModalAnchorEditor } from '../../../modules/ui';
280
+ import ImageSizeService from './services/image.size';
281
+ import ImageUploadService from './services/image.upload';
@@ -0,0 +1,45 @@
1
+ import type {} from '../../../../typedef';
2
+ /**
3
+ * @typedef {Object} ModalReturns_image
4
+ * @property {HTMLElement} html
5
+ * @property {HTMLElement} alignForm
6
+ * @property {HTMLElement} fileModalWrapper
7
+ * @property {HTMLInputElement} imgInputFile
8
+ * @property {HTMLInputElement} imgUrlFile
9
+ * @property {HTMLInputElement} altText
10
+ * @property {HTMLInputElement} captionCheckEl
11
+ * @property {HTMLElement} previewSrc
12
+ * @property {HTMLElement} tabs
13
+ * @property {HTMLButtonElement} galleryButton
14
+ * @property {HTMLInputElement} proportion
15
+ * @property {HTMLInputElement} inputX
16
+ * @property {HTMLInputElement} inputY
17
+ * @property {HTMLButtonElement} revertBtn
18
+ * @property {HTMLButtonElement} asBlock
19
+ * @property {HTMLButtonElement} asInline
20
+ * @property {HTMLButtonElement} fileRemoveBtn
21
+ *
22
+ * @param {SunEditor.Deps} $
23
+ * @param {*} pluginOptions
24
+ * @returns {ModalReturns_image}
25
+ */
26
+ export function CreateHTML_modal({ lang, icons, plugins }: SunEditor.Deps, pluginOptions: any): ModalReturns_image;
27
+ export type ModalReturns_image = {
28
+ html: HTMLElement;
29
+ alignForm: HTMLElement;
30
+ fileModalWrapper: HTMLElement;
31
+ imgInputFile: HTMLInputElement;
32
+ imgUrlFile: HTMLInputElement;
33
+ altText: HTMLInputElement;
34
+ captionCheckEl: HTMLInputElement;
35
+ previewSrc: HTMLElement;
36
+ tabs: HTMLElement;
37
+ galleryButton: HTMLButtonElement;
38
+ proportion: HTMLInputElement;
39
+ inputX: HTMLInputElement;
40
+ inputY: HTMLInputElement;
41
+ revertBtn: HTMLButtonElement;
42
+ asBlock: HTMLButtonElement;
43
+ asInline: HTMLButtonElement;
44
+ fileRemoveBtn: HTMLButtonElement;
45
+ };
@@ -0,0 +1,55 @@
1
+ import type {} from '../../../../typedef';
2
+ /**
3
+ * @class ImageSizeService
4
+ * @description Handles image resizing, proportion calculations, and size input management.
5
+ */
6
+ export class ImageSizeService {
7
+ /**
8
+ * @param {import('../index').default} main - The main Image_ plugin instance.
9
+ * @param {import('../render/image.html').ModalReturns_image} modalEl - Modal element
10
+ */
11
+ constructor(main: import('../index').default, modalEl: import('../render/image.html').ModalReturns_image);
12
+ /**
13
+ * @description Sets the width and height input values.
14
+ * @param {string} w - Width value
15
+ * @param {string} h - Height value
16
+ */
17
+ setInputSize(w: string, h: string): void;
18
+ /**
19
+ * @description Gets the current width and height input values.
20
+ * @returns {{w: string, h: string}}
21
+ */
22
+ getInputSize(): {
23
+ w: string;
24
+ h: string;
25
+ };
26
+ /**
27
+ * @description Sets the original width and height of the image.
28
+ * @param {string} w - Original width
29
+ * @param {string} h - Original height
30
+ */
31
+ setOriginSize(w: string, h: string): void;
32
+ /**
33
+ * @description Applies the specified width and height to the image.
34
+ * @param {string} w - Image width.
35
+ * @param {string} h - Image height.
36
+ */
37
+ applySize(w: string, h: string): void;
38
+ /**
39
+ * @description Called when the modal is opened. Resets size inputs to default.
40
+ */
41
+ on(): void;
42
+ /**
43
+ * @description Prepares the size inputs and proportion state when an image is selected.
44
+ * @param {SunEditor.Module.Figure.TargetInfo} figureInfo - Figure size information
45
+ * @param {string} w - Current width
46
+ * @param {string} h - Current height
47
+ */
48
+ ready(figureInfo: SunEditor.Module.Figure.TargetInfo, w: string, h: string): void;
49
+ /**
50
+ * @description Initializes the size service state.
51
+ */
52
+ init(): void;
53
+ #private;
54
+ }
55
+ export default ImageSizeService;
@@ -0,0 +1,24 @@
1
+ import type {} from '../../../../typedef';
2
+ /**
3
+ * @class ImageUploadService
4
+ * @description Handles image upload operations including file upload, URL upload, and `Base64` conversion.
5
+ */
6
+ export class ImageUploadService {
7
+ /**
8
+ * @param {import('../index').default} main - The main Image_ plugin instance.
9
+ */
10
+ constructor(main: import('../index').default);
11
+ _base64RenderIndex: number;
12
+ /**
13
+ * @description Uploads the image to the server.
14
+ * @param {SunEditor.EventParams.ImageInfo} info - Image upload info.
15
+ */
16
+ serverUpload(info: SunEditor.EventParams.ImageInfo): void;
17
+ /**
18
+ * @description Handles image upload via URL.
19
+ * @param {*} info - Image information.
20
+ */
21
+ urlUpload(info: any): void;
22
+ #private;
23
+ }
24
+ export default ImageUploadService;
@@ -0,0 +1,17 @@
1
+ import type {} from '../../../../typedef';
2
+ /**
3
+ * @description Image plugin constants
4
+ */
5
+ export const DEFAULT_SVG_SIZE: '30%';
6
+ export namespace SIZE_UNIT {
7
+ let PERCENTAGE: string;
8
+ let PIXEL: string;
9
+ }
10
+ /**
11
+ * @type {{ BLOCK: 'block', INLINE: 'inline' }}
12
+ */
13
+ export const FORMAT_TYPE: {
14
+ BLOCK: 'block';
15
+ INLINE: 'inline';
16
+ };
17
+ export const DEFAULT_ACCEPTED_FORMATS: 'image/*';
@@ -1,13 +1,6 @@
1
+ import type {} from '../../typedef';
1
2
  export default Link;
2
- export type LinkPluginOptions = {
3
- /**
4
- * - Whether to display the link text.
5
- */
6
- textToDisplay?: boolean;
7
- /**
8
- * - Whether to display the link title.
9
- */
10
- title?: boolean;
3
+ export type LinkOptions = {
11
4
  /**
12
5
  * - The URL endpoint for file uploads.
13
6
  */
@@ -31,99 +24,86 @@ export type LinkPluginOptions = {
31
24
  */
32
25
  acceptedFormats?: string;
33
26
  };
27
+ export type LinkPluginOptions = Omit<LinkOptions & import('../../modules/ui/ModalAnchorEditor').ModalAnchorEditorParams, ''>;
34
28
  /**
35
- * @typedef {Object} LinkPluginOptions
36
- * @property {boolean} [textToDisplay=true] - Whether to display the link text.
37
- * @property {boolean} [title=true] - Whether to display the link title.
29
+ * @typedef {Object} LinkOptions
38
30
  * @property {string} [uploadUrl] - The URL endpoint for file uploads.
39
31
  * @property {Object<string, string>} [uploadHeaders] - Additional headers for file upload requests.
40
32
  * @property {number} [uploadSizeLimit] - The total file upload size limit in bytes.
41
33
  * @property {number} [uploadSingleSizeLimit] - The single file upload size limit in bytes.
42
34
  * @property {string} [acceptedFormats] - Accepted file formats for link uploads.
43
35
  */
36
+ /**
37
+ * @typedef {Omit<LinkOptions & import('../../modules/ui/ModalAnchorEditor').ModalAnchorEditorParams, ''>} LinkPluginOptions
38
+ */
44
39
  /**
45
40
  * @class
46
41
  * @description Link plugin.
47
42
  * - This plugin provides link insertion and editing functionality within the editor.
48
43
  * - It also supports file uploads if an upload URL is provided.
49
44
  */
50
- declare class Link extends EditorInjector {
51
- static key: string;
52
- static type: string;
53
- static className: string;
45
+ declare class Link extends PluginModal {
54
46
  /**
55
47
  * @constructor
56
- * @param {__se__EditorCore} editor - The root editor instance
48
+ * @param {SunEditor.Kernel} editor - The core kernel
57
49
  * @param {LinkPluginOptions} pluginOptions
58
50
  */
59
- constructor(editor: __se__EditorCore, pluginOptions: LinkPluginOptions);
51
+ constructor(editor: SunEditor.Kernel, pluginOptions: LinkPluginOptions);
60
52
  title: any;
61
- icon: string;
53
+ target: HTMLAnchorElement;
62
54
  isUpdateState: boolean;
63
55
  pluginOptions: {
64
56
  uploadUrl: string;
65
57
  uploadHeaders: {
66
58
  [x: string]: string;
59
+ } & {
60
+ [x: string]: string;
67
61
  };
68
62
  uploadSizeLimit: number;
69
63
  uploadSingleSizeLimit: number;
70
64
  acceptedFormats: string;
71
65
  enableFileUpload: boolean;
72
66
  /**
73
- * - Whether to display the link text.
67
+ * - Modal title display.
68
+ */
69
+ title?: boolean;
70
+ /**
71
+ * - Create Text to display input.
74
72
  */
75
73
  textToDisplay?: boolean;
76
74
  /**
77
- * - Whether to display the link title.
75
+ * - Default checked value of the "Open in new window" checkbox.
78
76
  */
79
- title?: boolean;
77
+ openNewWindow?: boolean;
78
+ /**
79
+ * - If `true`, disables the automatic prefixing of the host URL to the value of the link.
80
+ */
81
+ noAutoPrefix?: boolean;
82
+ /**
83
+ * - The `rel` attribute list of anchor tag.
84
+ */
85
+ relList?: Array<string>;
86
+ /**
87
+ * - Default `rel` attributes of anchor tag.
88
+ */
89
+ defaultRel?: {
90
+ default?: string;
91
+ check_new_window?: string;
92
+ check_bookmark?: string;
93
+ };
80
94
  };
81
95
  anchor: ModalAnchorEditor;
82
96
  modal: Modal;
83
97
  controller: Controller;
84
- /**
85
- * @editorMethod Editor.EventManager
86
- * @description Executes the method that is called whenever the cursor position changes.
87
- * @param {?HTMLElement=} element - Node element where the cursor is currently located
88
- * @returns {boolean} - Whether the plugin is active
89
- * - If it returns "undefined", it will no longer be called in this scope.
90
- */
91
- active(element?: (HTMLElement | null) | undefined): boolean;
92
- /**
93
- * @editorMethod Modules.Modal
94
- * @description Executes the method that is called when a "Modal" module's is opened.
95
- */
96
- open(): void;
97
- /**
98
- * @editorMethod Modules.Modal
99
- * @description Executes the method that is called when a plugin's modal is opened.
100
- * @param {boolean} isUpdate "Indicates whether the modal is for editing an existing component (true) or registering a new one (false)."
101
- */
102
- on(isUpdate: boolean): void;
103
- /**
104
- * @editorMethod Modules.Modal
105
- * @description This function is called when a form within a modal window is "submit".
106
- * @returns {boolean} Success or failure
107
- */
108
- modalAction(): boolean;
109
- /**
110
- * @editorMethod Modules.Modal
111
- * @description This function is called before the modal window is opened, but before it is closed.
112
- */
113
- init(): void;
114
- /**
115
- * @editorMethod Modules.Controller
116
- * @description Executes the method that is called when a button is clicked in the "controller".
117
- * @param {HTMLButtonElement} target Target button element
118
- */
98
+ active(element: HTMLElement | null, target: HTMLElement | null): boolean | void;
99
+ modalOn(isUpdate: boolean): void;
100
+ modalAction(): Promise<boolean>;
101
+ modalInit(): void;
119
102
  controllerAction(target: HTMLButtonElement): void;
120
- /**
121
- * @editorMethod Modules.Controller
122
- * @description This function is called before the "controller" before it is closed.
123
- */
124
- close(): void;
103
+ controllerClose(): void;
104
+ #private;
125
105
  }
126
- import EditorInjector from '../../editorInjector';
127
- import { ModalAnchorEditor } from '../../modules';
128
- import { Modal } from '../../modules';
129
- import { Controller } from '../../modules';
106
+ import { PluginModal } from '../../interfaces';
107
+ import { Modal } from '../../modules/contract';
108
+ import { Controller } from '../../modules/contract';
109
+ import { ModalAnchorEditor } from '../../modules/ui';