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,430 +0,0 @@
1
- export default HTML;
2
- export type HTMLThis = Omit<HTML & Partial<__se__EditorInjector>, 'html'>;
3
- /**
4
- * @typedef {Omit<HTML & Partial<__se__EditorInjector>, 'html'>} HTMLThis
5
- */
6
- /**
7
- * @constructor
8
- * @this {HTMLThis}
9
- * @description All HTML related classes involved in the editing area
10
- * @param {__se__EditorCore} editor - The root editor instance
11
- */
12
- declare function HTML(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, editor: __se__EditorCore): void;
13
- declare class HTML {
14
- /**
15
- * @typedef {Omit<HTML & Partial<__se__EditorInjector>, 'html'>} HTMLThis
16
- */
17
- /**
18
- * @constructor
19
- * @this {HTMLThis}
20
- * @description All HTML related classes involved in the editing area
21
- * @param {__se__EditorCore} editor - The root editor instance
22
- */
23
- constructor(editor: __se__EditorCore);
24
- fontSizeUnitRegExp: RegExp;
25
- _isAllowedClassName: any;
26
- _allowHTMLComment: any;
27
- _disallowedStyleNodesRegExp: RegExp;
28
- _htmlCheckWhitelistRegExp: RegExp;
29
- _htmlCheckBlacklistRegExp: RegExp;
30
- _elementWhitelistRegExp: RegExp;
31
- _elementBlacklistRegExp: RegExp;
32
- /** @type {Object<string, RegExp>} */
33
- _attributeWhitelist: {
34
- [x: string]: RegExp;
35
- };
36
- /** @type {Object<string, RegExp>} */
37
- _attributeBlacklist: {
38
- [x: string]: RegExp;
39
- };
40
- _attributeWhitelistRegExp: RegExp;
41
- _attributeBlacklistRegExp: RegExp;
42
- _cleanStyleTagKeyRegExp: RegExp;
43
- _cleanStyleRegExpMap: Map<any, any>;
44
- _textStyleTags: any;
45
- /** @type {Object<string, *>} */
46
- _autoStyleify: {
47
- [x: string]: any;
48
- };
49
- __disallowedTagsRegExp: RegExp;
50
- __disallowedTagNameRegExp: RegExp;
51
- __allowedTagNameRegExp: RegExp;
52
- /**
53
- * @this {HTMLThis}
54
- * @description Filters an HTML string based on allowed and disallowed tags, with optional custom validation.
55
- * - Removes blacklisted tags and keeps only whitelisted tags.
56
- * - Allows custom validation functions to replace, modify, or remove elements.
57
- * @param {string} html - The HTML string to be filtered.
58
- * @param {Object} params - Filtering parameters.
59
- * @param {string} [params.tagWhitelist] - Allowed tags, specified as a string with tags separated by '|'. (e.g. "div|p|span").
60
- * @param {string} [params.tagBlacklist] - Disallowed tags, specified as a string with tags separated by '|'. (e.g. "script|iframe").
61
- * @param {(node: Node) => Node | string | null} [params.validate] - Function to validate and modify individual nodes.
62
- * - Return `null` to remove the node.
63
- * - Return a `Node` to replace the current node.
64
- * - Return a `string` to replace the node's outerHTML.
65
- * @param {boolean} [params.validateAll] - Whether to apply validation to all nodes.
66
- * @returns {string} - The filtered HTML string.
67
- */
68
- filter(
69
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
70
- html: string,
71
- {
72
- tagWhitelist,
73
- tagBlacklist,
74
- validate,
75
- validateAll
76
- }: {
77
- tagWhitelist?: string;
78
- tagBlacklist?: string;
79
- validate?: (node: Node) => Node | string | null;
80
- validateAll?: boolean;
81
- }
82
- ): string;
83
- /**
84
- * @this {HTMLThis}
85
- * @description Cleans and compresses HTML code to suit the editor format.
86
- * @param {string} html HTML string to clean and compress
87
- * @param {Object} [options] Cleaning options
88
- * @param {boolean} [options.forceFormat=false] If true, wraps text nodes without a format node in the format tag.
89
- * @param {string|RegExp|null} [options.whitelist=null] Regular expression of allowed tags.
90
- * Create RegExp object using helper.converter.createElementWhitelist method.
91
- * @param {string|RegExp|null} [options.blacklist=null] Regular expression of disallowed tags.
92
- * Create RegExp object using helper.converter.createElementBlacklist method.
93
- * @param {boolean} [options._freeCodeViewMode=false] If true, the free code view mode is enabled.
94
- * @returns {string} Cleaned and compressed HTML string
95
- */
96
- clean(
97
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
98
- html: string,
99
- {
100
- forceFormat,
101
- whitelist,
102
- blacklist,
103
- _freeCodeViewMode
104
- }?: {
105
- forceFormat?: boolean;
106
- whitelist?: string | RegExp | null;
107
- blacklist?: string | RegExp | null;
108
- _freeCodeViewMode?: boolean;
109
- }
110
- ): string;
111
- /**
112
- * @this {HTMLThis}
113
- * @description Inserts an (HTML element / HTML string / plain string) at the selection range.
114
- * - If "frameOptions.get('charCounter_max')" is exceeded when "html" is added, null is returned without addition.
115
- * @param {Node|string} html HTML Element or HTML string or plain string
116
- * @param {Object} [options] Options
117
- * @param {boolean} [options.selectInserted=false] If true, selects the range of the inserted node.
118
- * @param {boolean} [options.skipCharCount=false] If true, inserts even if "frameOptions.get('charCounter_max')" is exceeded.
119
- * @param {boolean} [options.skipCleaning=false] If true, inserts the HTML string without refining it with html.clean.
120
- * @returns {HTMLElement|null} The inserted element or null if insertion failed
121
- */
122
- insert(
123
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
124
- html: Node | string,
125
- {
126
- selectInserted,
127
- skipCharCount,
128
- skipCleaning
129
- }?: {
130
- selectInserted?: boolean;
131
- skipCharCount?: boolean;
132
- skipCleaning?: boolean;
133
- }
134
- ): HTMLElement | null;
135
- /**
136
- * @this {HTMLThis}
137
- * @description Delete selected node and insert argument value node and return.
138
- * - If the "afterNode" exists, it is inserted after the "afterNode"
139
- * - Inserting a text node merges with both text nodes on both sides and returns a new "{ container, startOffset, endOffset }".
140
- * @param {Node} oNode Node to be inserted
141
- * @param {Object} [options] Options
142
- * @param {Node} [options.afterNode=null] If the node exists, it is inserted after the node
143
- * @param {boolean} [options.skipCharCount=null] If true, it will be inserted even if "frameOptions.get('charCounter_max')" is exceeded.
144
- * @returns {Object|Node|null}
145
- */
146
- insertNode(
147
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
148
- oNode: Node,
149
- {
150
- afterNode,
151
- skipCharCount
152
- }?: {
153
- afterNode?: Node;
154
- skipCharCount?: boolean;
155
- }
156
- ): any | Node | null;
157
- /**
158
- * @this {HTMLThis}
159
- * @description Delete the selected range.
160
- * @returns {{container: Node, offset: number, commonCon?: Node|null, prevContainer?: Node|null}}
161
- * - container: "the last element after deletion"
162
- * - offset: "offset"
163
- * - commonCon: "commonAncestorContainer"
164
- * - prevContainer: "previousElementSibling Of the deleted area"
165
- */
166
- remove(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>): {
167
- container: Node;
168
- offset: number;
169
- commonCon?: Node | null;
170
- prevContainer?: Node | null;
171
- };
172
- /**
173
- * @this {HTMLThis}
174
- * @description Gets the current content
175
- * @param {Object} [options] Options
176
- * @param {boolean} [options.withFrame=false] Gets the current content with containing parent div.sun-editor-editable (<div class="sun-editor-editable">{content}</div>).
177
- * Ignored for targetOptions.get('iframe_fullPage') is true.
178
- * @param {boolean} [options.includeFullPage=false] Return only the content of the body without headers when the "iframe_fullPage" option is true
179
- * @param {number|Array<number>} [options.rootKey=null] Root index
180
- * @returns {string|Object<*, string>}
181
- */
182
- get(
183
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
184
- {
185
- withFrame,
186
- includeFullPage,
187
- rootKey
188
- }?: {
189
- withFrame?: boolean;
190
- includeFullPage?: boolean;
191
- rootKey?: number | Array<number>;
192
- }
193
- ): string | any;
194
- /**
195
- * @this {HTMLThis}
196
- * @description Sets the HTML string to the editor content
197
- * @param {string} html HTML string
198
- * @param {Object} [options] Options
199
- * @param {number|Array<number>} [options.rootKey=null] Root index
200
- */
201
- set(
202
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
203
- html: string,
204
- {
205
- rootKey
206
- }?: {
207
- rootKey?: number | Array<number>;
208
- }
209
- ): void;
210
- /**
211
- * @this {HTMLThis}
212
- * @description Add content to the end of content.
213
- * @param {string} html Content to Input
214
- * @param {Object} [options] Options
215
- * @param {number|Array<number>} [options.rootKey=null] Root index
216
- */
217
- add(
218
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
219
- html: string,
220
- {
221
- rootKey
222
- }?: {
223
- rootKey?: number | Array<number>;
224
- }
225
- ): void;
226
- /**
227
- * @this {HTMLThis}
228
- * @description Gets the current content to JSON data
229
- * @param {Object} [options] Options
230
- * @param {boolean} [options.withFrame=false] Gets the current content with containing parent div.sun-editor-editable (<div class="sun-editor-editable">{content}</div>).
231
- * @param {number|Array<number>} [options.rootKey=null] Root index
232
- * @returns {Object<string, *>} JSON data
233
- */
234
- getJson(
235
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
236
- {
237
- withFrame,
238
- rootKey
239
- }?: {
240
- withFrame?: boolean;
241
- rootKey?: number | Array<number>;
242
- }
243
- ): {
244
- [x: string]: any;
245
- };
246
- /**
247
- * @this {HTMLThis}
248
- * @description Sets the JSON data to the editor content
249
- * @param {Object<string, *>} jsdonData HTML string
250
- * @param {Object} [options] Options
251
- * @param {number|Array<number>} [options.rootKey=null] Root index
252
- */
253
- setJson(
254
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
255
- jsdonData: {
256
- [x: string]: any;
257
- },
258
- {
259
- rootKey
260
- }?: {
261
- rootKey?: number | Array<number>;
262
- }
263
- ): void;
264
- /**
265
- * @this {HTMLThis}
266
- * @description Call "clipboard.write" to copy the contents and display a success/failure toast message.
267
- * @param {Element|Text|string} content Content to be copied to the clipboard
268
- * @returns {Promise<boolean>} Success or failure
269
- */
270
- copy(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, content: Element | Text | string): Promise<boolean>;
271
- /**
272
- * @this {HTMLThis}
273
- * @description Sets the content of the iframe's head tag and body tag when using the "iframe" or "iframe_fullPage" option.
274
- * @param {{head: string, body: string}} ctx { head: HTML string, body: HTML string}
275
- * @param {Object} [options] Options
276
- * @param {number|Array<number>} [options.rootKey=null] Root index
277
- */
278
- setFullPage(
279
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
280
- ctx: {
281
- head: string;
282
- body: string;
283
- },
284
- {
285
- rootKey
286
- }?: {
287
- rootKey?: number | Array<number>;
288
- }
289
- ): boolean;
290
- /**
291
- * @this {HTMLThis}
292
- * @description HTML code compression
293
- * @param {string} html HTML string
294
- * @returns {string} HTML string
295
- */
296
- compress(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, html: string): string;
297
- /**
298
- * @private
299
- * @this {HTMLThis}
300
- * @description construct wysiwyg area element to html string
301
- * @param {Node|string} html WYSIWYG element (this.editor.frameContext.get('wysiwyg')) or HTML string.
302
- * @param {boolean} comp If true, does not line break and indentation of tags.
303
- * @returns {string}
304
- */
305
- _convertToCode(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, html: Node | string, comp: boolean): string;
306
- /**
307
- * @private
308
- * @this {HTMLThis}
309
- * @description Checks whether the given list item node should be removed and handles necessary clean-up.
310
- * @param {Node} item The list item node to be checked.
311
- */
312
- _nodeRemoveListItem(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, item: Node): void;
313
- /**
314
- * @private
315
- * @this {HTMLThis}
316
- * @description Recursive function when used to place a node in "BrLine" in "html.insertNode"
317
- * @param {Node} oNode Node to be inserted
318
- * @returns {Node} "oNode"
319
- */
320
- _setIntoFreeFormat(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, oNode: Node): Node;
321
- /**
322
- * @private
323
- * @this {HTMLThis}
324
- * @description Returns HTML string according to tag type and configurati isExcludeFormat.
325
- * @param {Node} node Node
326
- * @param {boolean} forceFormat If true, text nodes that do not have a format node is wrapped with the format tag.
327
- */
328
- _makeLine(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, node: Node, forceFormat: boolean): string;
329
- /**
330
- * @private
331
- * @this {HTMLThis}
332
- * @description Fix tags that do not fit the editor format.
333
- * @param {DocumentFragment} documentFragment Document fragment "DOCUMENT_FRAGMENT_NODE" (nodeType === 11)
334
- * @param {RegExp} htmlCheckWhitelistRegExp Editor tags whitelist
335
- * @param {RegExp} htmlCheckBlacklistRegExp Editor tags blacklist
336
- * @param {boolean} tagFilter Tag filter option
337
- * @param {boolean} formatFilter Format filter option
338
- * @param {boolean} classFilter Class name filter option
339
- * @param {boolean} _freeCodeViewMode Enforces strict HTML validation based on the editor`s policy
340
- */
341
- _consistencyCheckOfHTML(
342
- this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>,
343
- documentFragment: DocumentFragment,
344
- htmlCheckWhitelistRegExp: RegExp,
345
- htmlCheckBlacklistRegExp: RegExp,
346
- tagFilter: boolean,
347
- formatFilter: boolean,
348
- classFilter: boolean,
349
- _freeCodeViewMode: boolean
350
- ): void;
351
- /**
352
- * @private
353
- * @this {HTMLThis}
354
- * @description Removes attribute values such as style and converts tags that do not conform to the "html5" standard.
355
- * @param {string} html HTML string
356
- * @returns {string} HTML string
357
- */
358
- _styleNodeConvertor(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, html: string): string;
359
- /**
360
- * @private
361
- * @this {HTMLThis}
362
- * @description Determines if formatting is required and returns a domTree
363
- * @param {DocumentFragment} domFrag documentFragment
364
- * @returns {DocumentFragment}
365
- */
366
- _editFormat(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, domFrag: DocumentFragment): DocumentFragment;
367
- /**
368
- * @private
369
- * @this {HTMLThis}
370
- * @description Converts a list of DOM nodes into an HTML list structure.
371
- * - If the node is already a list, its innerHTML is used. If it is a block element,
372
- * - the function is called recursively.
373
- * @param {__se__NodeCollection} domTree List of DOM nodes to be converted.
374
- * @returns {string} The generated HTML list.
375
- */
376
- _convertListCell(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, domTree: __se__NodeCollection): string;
377
- /**
378
- * @private
379
- * @this {HTMLThis}
380
- * @description Checks whether the provided DOM nodes require formatting.
381
- * @param {NodeList} domTree List of DOM nodes to check.
382
- * @returns {boolean} True if formatting is required, otherwise false.
383
- */
384
- _isFormatData(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, domTree: NodeList): boolean;
385
- /**
386
- * @private
387
- * @this {HTMLThis}
388
- * @description Cleans the inline style attributes of an HTML element.
389
- * - Extracts allowed styles and removes disallowed ones based on editor settings.
390
- * @param {string} m The full matched string from a regular expression.
391
- * @param {Array|null} v The list of allowed attributes.
392
- * @param {string} name The tag name of the element being cleaned.
393
- * @returns {Array} The updated list of allowed attributes including cleaned styles.
394
- */
395
- _cleanStyle(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, m: string, v: any[] | null, name: string): any[];
396
- /**
397
- * @private
398
- * @this {HTMLThis}
399
- * @description Delete disallowed tags
400
- * @param {string} html HTML string
401
- * @returns {string}
402
- */
403
- _deleteDisallowedTags(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, html: string, whitelistRegExp: any, blacklistRegExp: any): string;
404
- /**
405
- * @private
406
- * @this {HTMLThis}
407
- * @description Recursively checks for duplicate text style nodes within a given parent node.
408
- * @param {Node} oNode The node to check for duplicate styles.
409
- * @param {Node} parentNode The parent node where the duplicate check occurs.
410
- */
411
- _checkDuplicateNode(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, oNode: Node, parentNode: Node): void;
412
- /**
413
- * @private
414
- * @this {HTMLThis}
415
- * @description Recursively checks for duplicate text style nodes within a given parent node.
416
- * - If duplicate styles are found, redundant attributes are removed.
417
- * @param {Node} oNode The node to check for duplicate styles.
418
- * @param {Node} parentNode The parent node where the duplicate check occurs.
419
- * @returns {Node} The cleaned node with redundant styles removed.
420
- */
421
- _dupleCheck(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, oNode: Node, parentNode: Node): Node;
422
- /**
423
- * @private
424
- * @this {HTMLThis}
425
- * @description Reset autoStyleify options.
426
- * @param {Array.<string>} autoStyleify Styles applied automatically on text input.
427
- * - ex ["bold", "underline", "italic", "strike"]
428
- */
429
- __resetAutoStyleify(this: Omit<HTML & Partial<import('../../editorInjector').default>, 'html'>, autoStyleify: Array<string>): void;
430
- }
@@ -1,126 +0,0 @@
1
- export default Menu;
2
- export type MenuThis = Omit<Menu & Partial<__se__EditorInjector>, 'menu'>;
3
- /**
4
- * @typedef {Omit<Menu & Partial<__se__EditorInjector>, 'menu'>} MenuThis
5
- */
6
- /**
7
- * @constructor
8
- * @this {MenuThis}
9
- * @description Dropdown and container menu management class
10
- * @param {__se__EditorCore} editor - The root editor instance
11
- */
12
- declare function Menu(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>, editor: __se__EditorCore): void;
13
- declare class Menu {
14
- /**
15
- * @typedef {Omit<Menu & Partial<__se__EditorInjector>, 'menu'>} MenuThis
16
- */
17
- /**
18
- * @constructor
19
- * @this {MenuThis}
20
- * @description Dropdown and container menu management class
21
- * @param {__se__EditorCore} editor - The root editor instance
22
- */
23
- constructor(editor: __se__EditorCore);
24
- /** @type {Object<string, HTMLElement>} */
25
- targetMap: {
26
- [x: string]: HTMLElement;
27
- };
28
- index: number;
29
- menus: any[];
30
- currentDropdown: HTMLElement;
31
- currentDropdownActiveButton: HTMLButtonElement;
32
- currentDropdownName: string;
33
- currentDropdownType: string;
34
- currentContainer: HTMLElement;
35
- currentContainerActiveButton: HTMLButtonElement;
36
- currentContainerName: string;
37
- _dropdownCommands: any[];
38
- __globalEventHandler: {
39
- mousedown: any;
40
- containerDown: any;
41
- keydown: any;
42
- mousemove: any;
43
- mouseout: any;
44
- };
45
- _bindClose_dropdown_mouse: any;
46
- _bindClose_dropdown_key: any;
47
- _bindClose_cons_mouse: any;
48
- currentDropdownPlugin: any;
49
- __menuBtn: Node;
50
- __menuContainer: HTMLElement;
51
- /**
52
- * @this {MenuThis}
53
- * @description Method for managing dropdown element.
54
- * - You must add the "dropdown" element using the this method at custom plugin.
55
- * @param {{key: string, type: string}} classObj Class object
56
- * @param {Node} menu Dropdown element
57
- */
58
- initDropdownTarget(
59
- this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>,
60
- {
61
- key,
62
- type
63
- }: {
64
- key: string;
65
- type: string;
66
- },
67
- menu: Node
68
- ): void;
69
- /**
70
- * @this {MenuThis}
71
- * @description On dropdown
72
- * @param {Node} button Dropdown's button element to call
73
- */
74
- dropdownOn(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>, button: Node): void;
75
- /**
76
- * @this {MenuThis}
77
- * @description Off dropdown
78
- */
79
- dropdownOff(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>): void;
80
- /**
81
- * @this {MenuThis}
82
- * @description On menu container
83
- * @param {Node} button Container's button element to call
84
- */
85
- containerOn(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>, button: Node): void;
86
- /**
87
- * @this {MenuThis}
88
- * @description Off menu container
89
- */
90
- containerOff(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>): void;
91
- /**
92
- * @private
93
- * @this {MenuThis}
94
- * @description Set the menu position.
95
- * @param {Node} element Button element
96
- * @param {HTMLElement} menu Menu element
97
- */
98
- _setMenuPosition(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>, element: Node, menu: HTMLElement): void;
99
- /**
100
- * @private
101
- * @this {MenuThis}
102
- * @description Restore the last menu position using previously stored button and menu elements.
103
- */
104
- _restoreMenuPosition(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>): void;
105
- /**
106
- * @private
107
- * @this {MenuThis}
108
- * @description Check if the element is part of a more layer
109
- * @param {Node} element The element to check
110
- * @returns {HTMLElement|null} The more layer element or null
111
- */
112
- _checkMoreLayer(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>, element: Node): HTMLElement | null;
113
- /**
114
- * @private
115
- * @this {MenuThis}
116
- * @description Move the selected item in the dropdown menu
117
- * @param {number} num Direction and amount to move (-1 for up, 1 for down)
118
- */
119
- _moveItem(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>, num: number): void;
120
- /**
121
- * @private
122
- * @this {MenuThis}
123
- * @description Remove global event listeners
124
- */
125
- __removeGlobalEvent(this: Omit<Menu & Partial<import('../../editorInjector').default>, 'menu'>): void;
126
- }
@@ -1,93 +0,0 @@
1
- export default NodeTransform;
2
- export type NodeTransformThis = Omit<NodeTransform & Partial<__se__EditorInjector>, 'nodeTransform'>;
3
- /**
4
- * @typedef {Omit<NodeTransform & Partial<__se__EditorInjector>, 'nodeTransform'>} NodeTransformThis
5
- */
6
- /**
7
- * @constructor
8
- * @this {NodeTransformThis}
9
- * @description Node utility class. split, merge, etc.
10
- * @param {__se__EditorCore} editor - The root editor instance
11
- */
12
- declare function NodeTransform(this: Omit<NodeTransform & Partial<import('../../editorInjector').default>, 'nodeTransform'>, editor: __se__EditorCore): void;
13
- declare class NodeTransform {
14
- /**
15
- * @typedef {Omit<NodeTransform & Partial<__se__EditorInjector>, 'nodeTransform'>} NodeTransformThis
16
- */
17
- /**
18
- * @constructor
19
- * @this {NodeTransformThis}
20
- * @description Node utility class. split, merge, etc.
21
- * @param {__se__EditorCore} editor - The root editor instance
22
- */
23
- constructor(editor: __se__EditorCore);
24
- /**
25
- * @this {NodeTransformThis}
26
- * @template {HTMLElement} T
27
- * @description Split all tags based on "baseNode"
28
- * @param {Node} baseNode Element or text node on which to base
29
- * @param {?number|Node} offset Text offset of "baseNode" (Only valid when "baseNode" is a text node)
30
- * @param {number} [depth=0] The nesting depth of the element being split. (default: 0)
31
- * @returns {T} The last element of the splited tag.
32
- */
33
- split<T extends HTMLElement>(this: Omit<NodeTransform & Partial<import('../../editorInjector').default>, 'nodeTransform'>, baseNode: Node, offset: (number | Node) | null, depth?: number): T;
34
- /**
35
- * @this {NodeTransformThis}
36
- * @description Use with "npdePath (dom-query-GetNodePath)" to merge the same attributes and tags if they are present and modify the nodepath.
37
- * - If "offset" has been changed, it will return as much "offset" as it has been modified.
38
- * - An array containing change offsets is returned in the order of the "nodePathArray" array.
39
- * @param {Node} element Element
40
- * @param {?number[][]=} nodePathArray Array of NodePath object ([dom-query-GetNodePath(), ..])
41
- * @param {?boolean=} onlyText If true, non-text nodes like 'span', 'strong'.. are ignored.
42
- * @returns {Array<number>} [offset, ..]
43
- */
44
- mergeSameTags(this: Omit<NodeTransform & Partial<import('../../editorInjector').default>, 'nodeTransform'>, element: Node, nodePathArray?: (number[][] | null) | undefined, onlyText?: (boolean | null) | undefined): Array<number>;
45
- /**
46
- * @this {NodeTransformThis}
47
- * @description Remove nested tags without other child nodes.
48
- * @param {Node} element Element object
49
- * @param {?(current: Node) => boolean|string=} validation Validation function / String("tag1|tag2..") / If null, all tags are applicable.
50
- */
51
- mergeNestedTags(this: Omit<NodeTransform & Partial<import('../../editorInjector').default>, 'nodeTransform'>, element: Node, validation?: (((current: Node) => boolean | string) | null) | undefined): void;
52
- /**
53
- * @this {NodeTransformThis}
54
- * @description Delete itself and all parent nodes that match the condition.
55
- * - Returns an {sc: previousSibling, ec: nextSibling}(the deleted node reference) or null.
56
- * @param {Node} item Node to be remove
57
- * @param {?(current: Node) => boolean=} validation Validation function. default(Deleted if it only have breakLine and blanks)
58
- * @param {?Node=} stopParent Stop when the parent node reaches stopParent
59
- * @returns {{sc: Node|null, ec: Node|null}|null} {sc: previousSibling, ec: nextSibling} (the deleted node reference) or null.
60
- */
61
- removeAllParents(
62
- this: Omit<NodeTransform & Partial<import('../../editorInjector').default>, 'nodeTransform'>,
63
- item: Node,
64
- validation?: (((current: Node) => boolean) | null) | undefined,
65
- stopParent?: (Node | null) | undefined
66
- ): {
67
- sc: Node | null;
68
- ec: Node | null;
69
- } | null;
70
- /**
71
- * @this {NodeTransformThis}
72
- * @description Delete a empty child node of argument element
73
- * @param {Node} element Element node
74
- * @param {?Node} notRemoveNode Do not remove node
75
- * @param {boolean} forceDelete When all child nodes are deleted, the parent node is also deleted.
76
- */
77
- removeEmptyNode(this: Omit<NodeTransform & Partial<import('../../editorInjector').default>, 'nodeTransform'>, element: Node, notRemoveNode: Node | null, forceDelete: boolean): void;
78
- /**
79
- * @this {NodeTransformThis}
80
- * @description Creates a nested node structure from the given array of nodes.
81
- * @param {__se__NodeCollection} nodeArray An array of nodes to clone. The first node in the array will be the top-level parent.
82
- * @param {?(current: Node) => boolean=} validate A validate function.
83
- * @returns {{ parent: Node, inner: Node }} An object containing the top-level parent node and the innermost child node.
84
- */
85
- createNestedNode(
86
- this: Omit<NodeTransform & Partial<import('../../editorInjector').default>, 'nodeTransform'>,
87
- nodeArray: __se__NodeCollection,
88
- validate?: (((current: Node) => boolean) | null) | undefined
89
- ): {
90
- parent: Node;
91
- inner: Node;
92
- };
93
- }