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,162 +1,172 @@
1
- import EditorInjector from '../../editorInjector';
1
+ import { PluginCommand, PluginDropdown, PluginInput } from '../../interfaces';
2
2
  import { dom, numbers, keyCodeMap } from '../../helper';
3
3
 
4
+ void PluginCommand;
5
+ void PluginDropdown;
6
+
4
7
  const DEFAULT_UNIT_MAP = {
5
8
  text: {
6
9
  default: '13px',
7
10
  list: [
8
11
  {
9
12
  title: 'XX-Small',
10
- size: '8px'
13
+ size: '8px',
11
14
  },
12
15
  {
13
16
  title: 'X-Small',
14
- size: '10px'
17
+ size: '10px',
15
18
  },
16
19
  {
17
20
  title: 'Small',
18
- size: '13px'
21
+ size: '13px',
19
22
  },
20
23
  {
21
24
  title: 'Medium',
22
- size: '16px'
25
+ size: '16px',
23
26
  },
24
27
  {
25
28
  title: 'Large',
26
- size: '18px'
29
+ size: '18px',
27
30
  },
28
31
  {
29
32
  title: 'X-Large',
30
- size: '24px'
33
+ size: '24px',
31
34
  },
32
35
  {
33
36
  title: 'XX-Large',
34
- size: '32px'
35
- }
36
- ]
37
+ size: '32px',
38
+ },
39
+ ],
37
40
  },
38
41
  px: {
39
42
  default: 13,
40
43
  inc: 1,
41
44
  min: 8,
42
45
  max: 72,
43
- list: [8, 10, 13, 15, 18, 20, 22, 26, 28, 36, 48, 72]
46
+ list: [8, 10, 13, 15, 18, 20, 22, 26, 28, 36, 48, 72],
44
47
  },
45
48
  pt: {
46
49
  default: 10,
47
50
  inc: 1,
48
51
  min: 6,
49
52
  max: 72,
50
- list: [6, 8, 10, 12, 14, 18, 22, 26, 32]
53
+ list: [6, 8, 10, 12, 14, 18, 22, 26, 32],
51
54
  },
52
55
  em: {
53
56
  default: 1,
54
57
  inc: 0.1,
55
58
  min: 0.5,
56
59
  max: 5,
57
- list: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3]
60
+ list: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3],
58
61
  },
59
62
  rem: {
60
63
  default: 1,
61
64
  inc: 0.1,
62
65
  min: 0.5,
63
66
  max: 5,
64
- list: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3]
67
+ list: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 2.5, 3],
65
68
  },
66
69
  vw: {
67
70
  inc: 0.1,
68
71
  min: 0.5,
69
72
  max: 10,
70
- list: [2, 3.5, 4, 4.5, 6, 8]
73
+ list: [2, 3.5, 4, 4.5, 6, 8],
71
74
  },
72
75
  vh: {
73
76
  default: 1.5,
74
77
  inc: 0.1,
75
78
  min: 0.5,
76
79
  max: 10,
77
- list: [1, 1.5, 2, 2.5, 3, 3.5, 4]
80
+ list: [1, 1.5, 2, 2.5, 3, 3.5, 4],
78
81
  },
79
82
  '%': {
80
83
  default: 100,
81
84
  inc: 1,
82
85
  min: 50,
83
86
  max: 200,
84
- list: [50, 70, 90, 100, 120, 140, 160, 180, 200]
85
- }
87
+ list: [50, 70, 90, 100, 120, 140, 160, 180, 200],
88
+ },
86
89
  };
87
90
 
91
+ /**
92
+ * @typedef {Object} FontSizePluginOptions
93
+ * @property {string} [sizeUnit='px'] - The unit for the font size.
94
+ * - Accepted values include: `'px'`, `'pt'`, `'em'`, `'rem'`, `'vw'`, `'vh'`, `'%'` or `'text'`.
95
+ * - If `'text'` is used, a text-based font size list is applied.
96
+ * @property {boolean} [showDefaultSizeLabel=true] - Determines whether the default size label is displayed in the dropdown menu.
97
+ * @property {boolean} [showIncDecControls=false] - When `true`, displays increase and decrease buttons for font size adjustments.
98
+ * @property {boolean} [disableInput=true] - When `true`, disables the direct font size input box.
99
+ * @property {Object<string, {default: number, inc: number, min: number, max: number, list: Array<number>}>} [unitMap={}] - Optional object to override or extend the default unit mapping for font sizes.
100
+ */
101
+
88
102
  /**
89
103
  * @class
104
+ * @implements {PluginCommand}
105
+ * @implements {PluginDropdown}
90
106
  * @description FontSize Plugin
91
107
  * - This plugin enables users to modify the font size of selected text within the editor.
92
108
  * - It supports various measurement units (e.g., 'px', 'pt', 'em', 'rem', 'vw', 'vh', '%') and
93
109
  * - provides multiple interfaces: dropdown menus, direct input, and optional increment/decrement buttons.
94
110
  */
95
- class FontSize extends EditorInjector {
111
+ class FontSize extends PluginInput {
96
112
  static key = 'fontSize';
97
- static type = 'input';
98
113
  static className = 'se-btn-select se-btn-input se-btn-tool-font-size';
99
114
 
115
+ #disableInput;
116
+
100
117
  /**
101
118
  * @constructor
102
- * @param {__se__EditorCore} editor - The root editor instance
103
- * @param {Object} pluginOptions - Configuration options for the FontSize plugin.
104
- * @param {string=} [pluginOptions.sizeUnit='px'] - The unit for the font size.
105
- * - Accepted values include: 'px', 'pt', 'em', 'rem', 'vw', 'vh', '%' or 'text'.
106
- * - If 'text' is used, a text-based font size list is applied.
107
- * @param {boolean=} [pluginOptions.showDefaultSizeLabel=true] - Determines whether the default size label is displayed in the dropdown menu.
108
- * @param {boolean=} [pluginOptions.showIncDecControls=false] - When true, displays increase and decrease buttons for font size adjustments.
109
- * @param {boolean=} [pluginOptions.disableInput=true] - When true, disables the direct font size input box.
110
- * @param {Object<string, {default: number, inc: number, min: number, max: number, list: Array<number>}>} [pluginOptions.unitMap={}] - Optional object to override or extend the default unit mapping for font sizes.
119
+ * @param {SunEditor.Kernel} editor - The core kernel
120
+ * @param {FontSizePluginOptions} pluginOptions - Configuration options for the FontSize plugin.
111
121
  */
112
122
  constructor(editor, pluginOptions) {
113
123
  super(editor);
114
124
 
115
125
  // create HTML
116
126
  this.unitMap = { ...DEFAULT_UNIT_MAP, ...(pluginOptions.unitMap || {}) };
117
- this.sizeUnit = /text/.test(pluginOptions.sizeUnit) ? '' : pluginOptions.sizeUnit || this.options.get('fontSizeUnits')[0];
127
+ this.sizeUnit = /text/.test(pluginOptions.sizeUnit) ? '' : pluginOptions.sizeUnit || this.$.options.get('fontSizeUnits')[0];
118
128
 
119
129
  const unitMap = this.unitMap[this.sizeUnit || 'text'];
120
- const menu = CreateHTML(editor, unitMap, this.sizeUnit, pluginOptions.showDefaultSizeLabel);
130
+ const menu = CreateHTML(this.$, unitMap, this.sizeUnit, pluginOptions.showDefaultSizeLabel);
121
131
 
122
132
  // plugin basic properties
123
- const showIncDec = this.sizeUnit ? pluginOptions.showIncDecControls ?? false : false;
124
- const disableInput = this.sizeUnit ? pluginOptions.disableInput ?? false : true;
133
+ const showIncDec = this.sizeUnit ? (pluginOptions.showIncDecControls ?? false) : false;
134
+ const disableInput = this.sizeUnit ? (pluginOptions.disableInput ?? false) : true;
125
135
 
126
- this.title = this.lang.fontSize;
136
+ this.title = this.$.lang.fontSize;
127
137
  this.inner =
128
138
  disableInput && !showIncDec
129
139
  ? false
130
140
  : disableInput
131
- ? `<span class="se-txt se-not-arrow-text __se__font_size">${this.lang.fontSize}</span>`
132
- : `<input type="text" class="__se__font_size se-not-arrow-text" placeholder="${this.lang.fontSize}" />`;
141
+ ? `<span class="se-txt se-not-arrow-text __se__font_size">${this.$.lang.fontSize}</span>`
142
+ : `<input type="text" class="__se__font_size se-not-arrow-text" placeholder="${this.$.lang.fontSize}" />`;
133
143
 
134
144
  // increase, decrease buttons
135
145
  if (showIncDec) {
136
146
  this.beforeItem = dom.utils.createElement(
137
147
  'button',
138
148
  { class: 'se-btn se-tooltip se-sub-btn', 'data-command': FontSize.key, 'data-type': 'command', 'data-value': 'dec' },
139
- `${this.icons.minus}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.lang.decrease}</span></span>`
149
+ `${this.$.icons.minus}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.$.lang.decrease}</span></span>`,
140
150
  );
141
151
  this.afterItem = dom.utils.createElement(
142
152
  'button',
143
153
  { class: 'se-btn se-tooltip se-sub-btn', 'data-command': FontSize.key, 'data-type': 'command', 'data-value': 'inc' },
144
- `${this.icons.plus}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.lang.increase}</span></span>`
154
+ `${this.$.icons.plus}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.$.lang.increase}</span></span>`,
145
155
  );
146
156
  } else if (!disableInput) {
147
157
  this.afterItem = dom.utils.createElement(
148
158
  'button',
149
159
  { class: 'se-btn se-tooltip se-sub-arrow-btn', 'data-command': FontSize.key, 'data-type': 'dropdown' },
150
- `${this.icons.arrow_down}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.lang.fontSize}</span></span>`
160
+ `${this.$.icons.arrow_down}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.$.lang.fontSize}</span></span>`,
151
161
  );
152
- this.menu.initDropdownTarget({ key: FontSize.key, type: 'dropdown' }, menu);
162
+ this.$.menu.initDropdownTarget({ key: FontSize.key, type: 'dropdown' }, menu);
153
163
  } else if (disableInput && !showIncDec) {
154
164
  this.replaceButton = dom.utils.createElement(
155
165
  'button',
156
166
  { class: 'se-btn se-tooltip se-btn-select se-btn-tool-font-size', 'data-command': FontSize.key, 'data-type': 'dropdown' },
157
- `<span class="se-txt __se__font_size">${this.lang.fontSize}</span>${this.icons.arrow_down}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.lang.fontSize}</span></span>`
167
+ `<span class="se-txt __se__font_size">${this.$.lang.fontSize}</span>${this.$.icons.arrow_down}<span class="se-tooltip-inner"><span class="se-tooltip-text">${this.$.lang.fontSize}</span></span>`,
158
168
  );
159
- this.menu.initDropdownTarget({ key: FontSize.key, type: 'dropdown' }, menu);
169
+ this.$.menu.initDropdownTarget({ key: FontSize.key, type: 'dropdown' }, menu);
160
170
  }
161
171
 
162
172
  // members
@@ -164,30 +174,26 @@ class FontSize extends EditorInjector {
164
174
  this.sizeList = menu.querySelectorAll('li button');
165
175
  this.hasInputFocus = false;
166
176
  this.isInputActive = false; // input target event
167
- this._disableInput = disableInput;
177
+ this.#disableInput = disableInput;
168
178
 
169
179
  // init
170
- this.menu.initDropdownTarget(FontSize, menu);
180
+ this.$.menu.initDropdownTarget(FontSize, menu);
171
181
  }
172
182
 
173
183
  /**
174
- * @editorMethod Editor.EventManager
175
- * @description Executes the method that is called whenever the cursor position changes.
176
- * @param {?HTMLElement=} element - Node element where the cursor is currently located
177
- * @param {?HTMLElement=} target - The plugin's toolbar button element
178
- * @returns {boolean} - Whether the plugin is active
179
- * - If it returns "undefined", it will no longer be called in this scope.
184
+ * @hook Editor.EventManager
185
+ * @type {SunEditor.Hook.Event.Active}
180
186
  */
181
187
  active(element, target) {
182
188
  if (!dom.utils.hasClass(target, '__se__font_size')) return false;
183
189
 
184
190
  let fontSize = '';
185
191
  if (!element) {
186
- this._setSize(target, this._getDefaultSize());
187
- } else if (this.format.isLine(element)) {
192
+ this.#setSize(target, this.#getDefaultSize());
193
+ } else if (this.$.format.isLine(element)) {
188
194
  return undefined;
189
195
  } else if ((fontSize = dom.utils.getStyle(element, 'fontSize'))) {
190
- this._setSize(target, fontSize);
196
+ this.#setSize(target, fontSize);
191
197
  return true;
192
198
  }
193
199
 
@@ -195,23 +201,20 @@ class FontSize extends EditorInjector {
195
201
  }
196
202
 
197
203
  /**
198
- * @editorMethod Editor.Toolbar
199
- * @description Executes the event function of toolbar's input tag - "keydown".
200
- * @param {Object} params
201
- * @param {HTMLElement} params.target Input element
202
- * @param {KeyboardEvent} params.event Event object
204
+ * @override
205
+ * @type {PluginInput['toolbarInputKeyDown']}
203
206
  */
204
- onInputKeyDown({ target, event }) {
207
+ toolbarInputKeyDown({ target, event }) {
205
208
  const keyCode = event.code;
206
209
 
207
- if (this._disableInput || keyCodeMap.isSpace(keyCode)) {
210
+ if (this.#disableInput || keyCodeMap.isSpace(keyCode)) {
208
211
  event.preventDefault();
209
212
  return;
210
213
  }
211
214
 
212
- if (!/^(38|40|13)$/.test(keyCode)) return;
215
+ if (!/^(ArrowUp|ArrowDown|Enter)$/.test(keyCode)) return;
213
216
 
214
- const { value, unit } = this._getSize(target);
217
+ const { value, unit } = this.#getSize(target);
215
218
  if (!value) return;
216
219
 
217
220
  const numValue = numbers.get(value);
@@ -231,11 +234,11 @@ class FontSize extends EditorInjector {
231
234
 
232
235
  try {
233
236
  this.isInputActive = true;
234
- const size = this._setSize(target, changeValue + unit);
235
- if (this._disableInput) return;
237
+ const size = this.#setSize(target, changeValue + unit);
238
+ if (this.#disableInput) return;
236
239
 
237
240
  const newNode = dom.utils.createElement('SPAN', { style: 'font-size: ' + size + ';' });
238
- this.format.applyInlineElement(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
241
+ this.$.inline.apply(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
239
242
 
240
243
  if (!keyCodeMap.isEnter(keyCode)) target.focus();
241
244
  } finally {
@@ -244,37 +247,35 @@ class FontSize extends EditorInjector {
244
247
  }
245
248
 
246
249
  /**
247
- * @editorMethod Editor.Toolbar
248
- * @description Executes the event function of toolbar's input tag - "change".
249
- * @param {__se__PluginToolbarInputChangeEventInfo} params
250
+ * @override
251
+ * @type {PluginInput['toolbarInputChange']}
250
252
  */
251
- onInputChange({ target, value: changeValue, event }) {
252
- if (this._disableInput) return;
253
+ toolbarInputChange({ target, value: changeValue, event }) {
254
+ if (this.#disableInput) return;
253
255
 
254
256
  try {
255
257
  this.isInputActive = true;
256
258
 
257
259
  // eslint-disable-next-line prefer-const
258
- let { value, unit } = this._getSize(changeValue);
260
+ let { value, unit } = this.#getSize(changeValue);
259
261
  const { max, min } = this.unitMap[unit];
260
262
  value = value > max ? max : value < min ? min : value;
261
263
 
262
- const newNode = dom.utils.createElement('SPAN', { style: 'font-size: ' + this._setSize(target, value + unit) + ';' });
263
- this.format.applyInlineElement(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
264
+ const newNode = dom.utils.createElement('SPAN', { style: 'font-size: ' + this.#setSize(target, value + unit) + ';' });
265
+ this.$.inline.apply(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
264
266
  } finally {
265
267
  this.isInputActive = false;
266
268
  event.preventDefault();
267
- this.editor.focus();
269
+ this.$.focusManager.focus();
268
270
  }
269
271
  }
270
272
 
271
273
  /**
272
- * @editorMethod Modules.Dropdown
273
- * @description Executes the method that is called when a plugin's dropdown menu is opened.
274
- * @param {HTMLElement} target Line element at the current cursor position
274
+ * @imple Dropdown
275
+ * @type {PluginDropdown['on']}
275
276
  */
276
277
  on(target) {
277
- const { value, unit } = this._getSize(target);
278
+ const { value, unit } = this.#getSize(target);
278
279
  const currentSize = value + unit;
279
280
 
280
281
  if (currentSize === this.currentSize) return;
@@ -292,80 +293,75 @@ class FontSize extends EditorInjector {
292
293
  }
293
294
 
294
295
  /**
295
- * @editorMethod Editor.core
296
- * @description Executes the main execution method of the plugin.
297
- * - Called when an item in the "dropdown" menu is clicked.
298
- * @param {HTMLElement} target - The plugin's toolbar button element
296
+ * @imple Command
297
+ * @type {PluginCommand['action']}
299
298
  */
300
299
  action(target) {
301
300
  const commandValue = target.getAttribute('data-command');
302
301
 
303
302
  if (commandValue === FontSize.key) {
304
- const { value, unit } = this._getSize(target);
303
+ const { value, unit } = this.#getSize(target);
305
304
  let newSize = numbers.get(value) + (target.getAttribute('data-value') === 'inc' ? 1 : -1);
306
305
  const { min, max } = this.unitMap[unit];
307
306
  newSize = newSize < min ? min : newSize > max ? max : newSize;
308
307
 
309
308
  const newNode = dom.utils.createElement('SPAN', { style: 'font-size: ' + newSize + unit + ';' });
310
- this.format.applyInlineElement(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
309
+ this.$.inline.apply(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
311
310
  } else if (commandValue) {
312
311
  const newNode = dom.utils.createElement('SPAN', { style: 'font-size: ' + commandValue + ';' });
313
- this.format.applyInlineElement(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
312
+ this.$.inline.apply(newNode, { stylesToModify: ['font-size'], nodesToRemove: null, strictRemove: null });
314
313
  } else {
315
- this.format.applyInlineElement(null, { stylesToModify: ['font-size'], nodesToRemove: ['span'], strictRemove: true });
314
+ this.$.inline.apply(null, { stylesToModify: ['font-size'], nodesToRemove: ['span'], strictRemove: true });
316
315
  }
317
316
 
318
- this.menu.dropdownOff();
317
+ this.$.menu.dropdownOff();
319
318
  }
320
319
 
321
320
  /**
322
- * @private
323
321
  * @description Retrieves the default font size of the editor.
324
322
  * @returns {string} - The computed font size from the editor.
325
323
  */
326
- _getDefaultSize() {
327
- return this.editor.frameContext.get('wwComputedStyle').fontSize;
324
+ #getDefaultSize() {
325
+ return this.$.frameContext.get('wwComputedStyle').fontSize;
328
326
  }
329
327
 
330
328
  /**
331
- * @private
332
329
  * @description Extracts the font size and unit from the given element or input value.
333
330
  * @param {string|Element} target - The target input or element.
334
331
  * @returns {{ unit: string, value: number|string }} - An object containing:
335
332
  * - `unit` (string): The detected font size unit.
336
333
  * - `value` (number|string): The numeric font size value or text-based size.
337
334
  */
338
- _getSize(target) {
335
+ #getSize(target) {
339
336
  target = typeof target === 'string' ? target : target.parentElement.querySelector('.__se__font_size');
340
337
  if (!target)
341
338
  return {
342
339
  unit: this.sizeUnit,
343
- value: this.sizeUnit ? 0 : ''
340
+ value: this.sizeUnit ? 0 : '',
344
341
  };
345
342
 
346
343
  const size = typeof target === 'string' ? target : dom.check.isInputElement(target) ? target.value : target.textContent;
347
344
  const splitValue = this.sizeUnit ? size.split(/(\d+)/) : [size, ''];
348
345
 
349
346
  let unit = (splitValue.pop() || '').trim().toLowerCase();
350
- unit = this.options.get('fontSizeUnits').includes(unit) ? unit : this.sizeUnit;
347
+ unit = this.$.options.get('fontSizeUnits').includes(unit) ? unit : this.sizeUnit;
351
348
 
352
349
  const tempValue = splitValue.pop();
353
350
  const value = unit ? Number(tempValue) : tempValue;
354
351
 
355
352
  return {
356
353
  unit,
357
- value
354
+ value,
358
355
  };
359
356
  }
360
357
 
361
358
  /**
362
- * @private
363
359
  * @description Sets the font size in the toolbar input field or button label.
364
360
  * @param {HTMLElement} target - The target element in the toolbar.
365
361
  * @param {string|number} value - The font size value.
366
362
  * @returns {string|number} - The applied font size.
367
363
  */
368
- _setSize(target, value) {
364
+ #setSize(target, value) {
369
365
  target = target.parentElement.querySelector('.__se__font_size');
370
366
  if (!target) return 0;
371
367
 
@@ -377,6 +373,13 @@ class FontSize extends EditorInjector {
377
373
  }
378
374
  }
379
375
 
376
+ /**
377
+ * @param {SunEditor.Deps} $ - Kernel dependencies
378
+ * @param {{list: Array<number|{title: string, size: string}>, default?: number|string}} unitMap - Font size unit map
379
+ * @param {string} sizeUnit - Size unit string
380
+ * @param {boolean} showDefaultSizeLabel - Whether to show default size label
381
+ * @returns {HTMLElement}
382
+ */
380
383
  function CreateHTML({ lang }, unitMap, sizeUnit, showDefaultSizeLabel) {
381
384
  const sizeList = unitMap.list;
382
385
  const defaultSize = unitMap.default;
@@ -1,4 +1,4 @@
1
- import EditorInjector from '../../editorInjector';
1
+ import { PluginInput } from '../../interfaces';
2
2
  import { dom } from '../../helper';
3
3
 
4
4
  /**
@@ -9,20 +9,19 @@ import { dom } from '../../helper';
9
9
  * - the total number of pages. When the user changes the value in the input field, the plugin triggers
10
10
  * - a page navigation event through the editor's document context.
11
11
  */
12
- class PageNavigator extends EditorInjector {
12
+ class PageNavigator extends PluginInput {
13
13
  static key = 'pageNavigator';
14
- static type = 'input';
15
14
  static className = 'se-btn-input se-btn-tool-pageNavigator';
16
15
 
17
16
  /**
18
17
  * @constructor
19
- * @param {__se__EditorCore} editor - The root editor instance
18
+ * @param {SunEditor.Kernel} editor - The core kernel
20
19
  */
21
20
  constructor(editor) {
22
21
  super(editor);
23
22
 
24
23
  // create HTML
25
- this.title = this.lang.pageNumber;
24
+ this.title = this.$.lang.pageNumber;
26
25
  this.inner = CreateInner();
27
26
  this.afterItem = dom.utils.createElement('span', { class: 'se-btn se-sub-btn' }, ``);
28
27
 
@@ -31,13 +30,14 @@ class PageNavigator extends EditorInjector {
31
30
  this.totalPages = 1;
32
31
 
33
32
  // init
34
- this.eventManager.addEvent(this.inner, 'change', this.#OnChangeInner.bind(this));
33
+ this.$.eventManager.addEvent(this.inner, 'change', this.#OnChangeInner.bind(this));
35
34
  }
35
+
36
36
  /**
37
- * @editorMethod Editor.documentType
38
- * @description Updates the displayed page number and total pages in the navigator.
37
+ * Updates the displayed page number and total pages in the navigator.
39
38
  * @param {number} pageNum - The current page number to display.
40
39
  * @param {number} totalPages - The total number of pages in the document.
40
+ * @returns {void}
41
41
  */
42
42
  display(pageNum, totalPages) {
43
43
  // data update
@@ -53,16 +53,19 @@ class PageNavigator extends EditorInjector {
53
53
  * @param {InputEvent} e - Event object
54
54
  */
55
55
  #OnChangeInner(e) {
56
- if (!this.editor.frameContext.has('documentType-use-page')) return;
56
+ if (!this.$.frameContext.has('documentType_use_page')) return;
57
57
 
58
58
  /** @type {HTMLInputElement} */
59
59
  const eventTarget = dom.query.getEventTarget(e);
60
60
 
61
61
  const value = Number(eventTarget.value) || 1;
62
- this.editor.frameContext.get('documentType').pageGo(value);
62
+ this.$.frameContext.get('documentType').pageGo(value);
63
63
  }
64
64
  }
65
65
 
66
+ /**
67
+ * @returns {HTMLInputElement}
68
+ */
66
69
  function CreateInner() {
67
70
  return /** @type {HTMLInputElement} */ (dom.utils.createElement('input', { type: 'number', class: 'se-not-arrow-text', placeholder: '1', value: '1', min: '1' }, null));
68
71
  }