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
package/src/langs/ur.js CHANGED
@@ -9,7 +9,7 @@
9
9
  throw new Error('SUNEDITOR_LANG a window with a document');
10
10
  }
11
11
  return factory(w);
12
- };
12
+ };
13
13
  } else {
14
14
  factory(global);
15
15
  }
@@ -206,7 +206,7 @@
206
206
  video_modal_url: 'ذرائع ابلاغ کا یو آر ایل، یوٹیوب/ویمیو',
207
207
  width: 'چوڑائی',
208
208
  message_copy_success: 'کلپ بورڈ میں کاپی ہو گیا',
209
- message_copy_fail: 'کاپی ناکام۔ براہ کرم دستی طور پر کاپی کریں۔'
209
+ message_copy_fail: 'کاپی ناکام۔ براہ کرم دستی طور پر کاپی کریں۔',
210
210
  };
211
211
 
212
212
  if (typeof noGlobal === typeof undefined) {
@@ -215,7 +215,7 @@
215
215
  enumerable: true,
216
216
  writable: false,
217
217
  configurable: false,
218
- value: {}
218
+ value: {},
219
219
  });
220
220
  }
221
221
 
@@ -223,7 +223,7 @@
223
223
  enumerable: true,
224
224
  writable: true,
225
225
  configurable: true,
226
- value: lang
226
+ value: lang,
227
227
  });
228
228
  }
229
229
 
@@ -9,7 +9,7 @@
9
9
  throw new Error('SUNEDITOR_LANG a window with a document');
10
10
  }
11
11
  return factory(w);
12
- };
12
+ };
13
13
  } else {
14
14
  factory(global);
15
15
  }
@@ -206,7 +206,7 @@
206
206
  video_modal_url: '嵌入网址, Youtube,Vimeo',
207
207
  width: '宽度',
208
208
  message_copy_success: '已复制到剪贴板',
209
- message_copy_fail: '复制失败,请手动复制。'
209
+ message_copy_fail: '复制失败,请手动复制。',
210
210
  };
211
211
 
212
212
  if (typeof noGlobal === typeof undefined) {
@@ -215,7 +215,7 @@
215
215
  enumerable: true,
216
216
  writable: false,
217
217
  configurable: false,
218
- value: {}
218
+ value: {},
219
219
  });
220
220
  }
221
221
 
@@ -223,7 +223,7 @@
223
223
  enumerable: true,
224
224
  writable: true,
225
225
  configurable: true,
226
- value: lang
226
+ value: lang,
227
227
  });
228
228
  }
229
229
 
@@ -1,61 +1,71 @@
1
- import CoreInjector from '../editorInjector/_core';
2
- import { dom, keyCodeMap } from '../helper';
3
- import ApiManager from './ApiManager';
1
+ import { dom, keyCodeMap } from '../../helper';
2
+ import { _w } from '../../helper/env';
3
+ import ApiManager from '../manager/ApiManager';
4
4
 
5
5
  /**
6
+ * Browser file item structure
6
7
  * @typedef {Object} BrowserFile
7
8
  * @property {string} [src=""] - Source url
8
9
  * @property {string} [name=""] - File name | Folder name
9
- * @property {string=} thumbnail - Thumbnail url
10
- * @property {string=} alt - Image alt
11
- * @property {Array<string>|string=} tag - Tag name list
12
- * @property {string=} type - Type (image, video, audio, etc.)
13
- * @property {string=} frame - Frame name (iframe, video, etc.)
14
- * @property {BrowserFile | string=} _data - The folder's contents or an API URL.
15
- * @property {boolean=} default - Whether this folder is the default selection.
16
- * @property {Object<string, *>=} meta - Metadata
10
+ * @property {string} [thumbnail] - Thumbnail url
11
+ * @property {string} [alt] - Image alt
12
+ * @property {Array<string>|string} [tag] - Tag name list
13
+ * @property {string} [type] - Type (image, video, audio, etc.)
14
+ * @property {string} [frame] - Frame name (iframe, video, etc.)
15
+ * @property {boolean} [default] - Whether this folder is the default selection.
16
+ * @property {Object<string, *>} [meta] - Metadata
17
+ * @property {BrowserFile | string} [_data] - Internal: The folder's contents or an API URL (⚠️ DO NOT USE directly)
17
18
  */
18
19
 
19
20
  /**
20
21
  * @typedef BrowserParams
21
22
  * @property {string} title - File browser window title. Required. Can be overridden in browser.
22
- * @property {string=} className - Class name of the file browser. Optional. Default: ''.
23
- * @property {Object<string, *>|Array<*>=} data - direct data without server calls
24
- * @property {string=} url - File server url. Required. Can be overridden in browser.
25
- * @property {Object<string, string>=} headers - File server http header. Required. Can be overridden in browser.
23
+ * @property {string} [className] - Class name of the file browser. Optional. Default: ''.
24
+ * @property {Object<string, *>|Array<*>} [data] - direct data without server calls
25
+ * @property {string} [url] - File server url. Required. Can be overridden in browser.
26
+ * @property {Object<string, string>} [headers] - File server http header. Required. Can be overridden in browser.
26
27
  * @property {(target: Node) => void} selectorHandler - Function that actions when an item is clicked. Required. Can be overridden in browser.
27
- * @property {boolean=} useSearch - Whether to use the search function. Optional. Default: true.
28
- * @property {string=} searchUrl - File server search url. Optional. Can be overridden in browser.
29
- * @property {Object<string, string>=} searchUrlHeader - File server search http header. Optional. Can be overridden in browser.
30
- * @property {string=} listClass - Class name of list div. Required. Can be overridden in browser.
31
- * @property {(item: BrowserFile) => string=} drawItemHandler - Function that defines the HTML of a file item. Required. Can be overridden in browser.
32
- * @property {Array<*>=} props - "props" argument to "drawItemHandler" function. Optional. Can be overridden in browser.
33
- * @property {number=} columnSize - Number of "div.se-file-item-column" to be created. Optional. Can be overridden in browser. Default: 4.
34
- * @property {((item: BrowserFile) => string)=} thumbnail - Default thumbnail
28
+ * @property {boolean} [useSearch] - Whether to use the search function. Optional. Default: `true`.
29
+ * @property {string} [searchUrl] - File server search url. Optional. Can be overridden in browser.
30
+ * @property {Object<string, string>} [searchUrlHeader] - File server search http header. Optional. Can be overridden in browser.
31
+ * @property {string} [listClass] - Class name of list div. Required. Can be overridden in browser.
32
+ * @property {(item: BrowserFile) => string} [drawItemHandler] - Function that defines the HTML of a file item. Required. Can be overridden in browser.
33
+ * @property {Array<*>} [props] - `props` argument to `drawItemHandler` function. Optional. Can be overridden in browser.
34
+ * @property {number} [columnSize] - Number of `div.se-file-item-column` to be created. Optional. Can be overridden in browser. Default: 4.
35
+ * @property {((item: BrowserFile) => string)} [thumbnail] - Default thumbnail
35
36
  */
36
37
 
37
38
  /**
38
39
  * @class
39
40
  * @description File browser plugin
40
41
  */
41
- class Browser extends CoreInjector {
42
+ class Browser {
43
+ #$;
44
+
45
+ #loading;
46
+ #globalEventHandler;
47
+
48
+ #closeSignal = false;
49
+ #bindClose = null;
50
+
42
51
  /**
43
52
  * @constructor
44
- * @param {*} inst The instance object that called the constructor.
53
+ * @param {*} host The instance object that called the constructor.
54
+ * @param {SunEditor.Deps} $ Kernel dependencies
45
55
  * @param {BrowserParams} params Browser options
46
56
  */
47
- constructor(inst, params) {
48
- super(inst.editor);
57
+ constructor(host, $, params) {
58
+ this.#$ = $;
49
59
 
50
60
  // create HTML
51
61
  this.useSearch = params.useSearch ?? true;
52
62
  const browserFrame = dom.utils.createElement('DIV', { class: 'se-browser sun-editor-common' + (params.className ? ` ${params.className}` : '') });
53
- const contentHTML = CreateHTMLInfos(inst.editor, this.useSearch);
63
+ const contentHTML = CreateHTMLInfos(this.#$, this.useSearch);
54
64
  const content = contentHTML.html;
55
65
 
56
66
  // members
57
- this.kind = inst.constructor.key || inst.constructor.name;
58
- this.inst = inst;
67
+ this.kind = host.constructor['key'] || host.constructor.name;
68
+ this.host = host;
59
69
  this.area = browserFrame;
60
70
  this.header = contentHTML.header;
61
71
  this.titleArea = contentHTML.titleArea;
@@ -64,7 +74,7 @@ class Browser extends CoreInjector {
64
74
  this.list = contentHTML.list;
65
75
  this.side = contentHTML.side;
66
76
  this.wrapper = contentHTML.wrapper;
67
- this._loading = contentHTML._loading;
77
+ this.#loading = contentHTML._loading;
68
78
 
69
79
  this.title = params.title;
70
80
  this.listClass = params.listClass || 'se-preview-list';
@@ -77,66 +87,57 @@ class Browser extends CoreInjector {
77
87
  this.selectorHandler = params.selectorHandler;
78
88
  this.columnSize = params.columnSize || 4;
79
89
  this.folderDefaultPath = '';
80
- this.closeArrow = this.icons.menu_arrow_right;
81
- this.openArrow = this.icons.menu_arrow_down;
82
- this.icon_folder = this.icons.side_menu_folder_item;
83
- this.icon_folder_item = this.icons.side_menu_folder;
84
- this.icon_item = this.icons.side_menu_item;
85
-
86
- /**
87
- * @type {Array<BrowserFile>}
88
- */
90
+ this.closeArrow = this.#$.icons.menu_arrow_right;
91
+ this.openArrow = this.#$.icons.menu_arrow_down;
92
+ this.icon_folder = this.#$.icons.side_menu_folder_item;
93
+ this.icon_folder_item = this.#$.icons.side_menu_folder;
94
+ this.icon_item = this.#$.icons.side_menu_item;
95
+
96
+ /** @type {Array<BrowserFile>} */
89
97
  this.items = [];
90
- /**
91
- * @type {Object<string, {name: string, meta: Object<string, *>}>}
92
- */
98
+ /** @type {Object<string, {name: string, meta: Object<string, *>}>} */
93
99
  this.folders = {};
94
- /**
95
- * @type {Object<string, {key?: string, name?: string, children?: *}>}
96
- */
100
+ /** @type {Object<string, {key?: string, name?: string, children?: *}>} */
97
101
  this.tree = {};
98
- /**
99
- * @type {BrowserFile}
100
- */
102
+ /** @type {BrowserFile} */
101
103
  this.data = {};
102
104
  this.selectedTags = [];
103
105
  this.keyword = '';
104
106
  this.sideInner = null;
105
- this._closeSignal = false;
106
- this._bindClose = null;
107
- this.__globalEventHandler = (e) => {
107
+
108
+ // api manager
109
+ this.apiManager = new ApiManager(this, $, { method: 'GET' });
110
+
111
+ this.#globalEventHandler = (e) => {
108
112
  if (!keyCodeMap.isEsc(e.code)) return;
109
113
  this.close();
110
114
  };
111
- // api manager
112
- this.apiManager = new ApiManager(this, { method: 'GET' });
113
115
 
114
116
  // init
115
117
  browserFrame.appendChild(dom.utils.createElement('DIV', { class: 'se-browser-back' }));
116
118
  browserFrame.appendChild(content);
117
- this.carrierWrapper.appendChild(browserFrame);
118
-
119
- this.eventManager.addEvent(this.tagArea, 'click', this.#OnClickTag.bind(this));
120
- this.eventManager.addEvent(this.list, 'click', this.#OnClickFile.bind(this));
121
- this.eventManager.addEvent(this.side, 'click', this.#OnClickSide.bind(this));
122
- this.eventManager.addEvent(content, 'mousedown', this.#OnMouseDown_browser.bind(this));
123
- this.eventManager.addEvent(content, 'click', this.#OnClick_browser.bind(this));
124
- this.eventManager.addEvent(browserFrame.querySelector('form.se-browser-search-form'), 'submit', this.#Search.bind(this));
125
- this.eventManager.addEvent((this.sideOpenBtn = /** @type {HTMLButtonElement} */ (browserFrame.querySelector('.se-side-open-btn'))), 'click', this.#SideOpen.bind(this));
126
- this.eventManager.addEvent([this.header, browserFrame.querySelector('.se-browser-main')], 'mousedown', this.#SideClose.bind(this));
119
+ this.#$.contextProvider.carrierWrapper.appendChild(browserFrame);
120
+
121
+ this.#$.eventManager.addEvent(this.tagArea, 'click', this.#OnClickTag.bind(this));
122
+ this.#$.eventManager.addEvent(this.list, 'click', this.#OnClickFile.bind(this));
123
+ this.#$.eventManager.addEvent(this.side, 'click', this.#OnClickSide.bind(this));
124
+ this.#$.eventManager.addEvent(content, 'mousedown', this.#OnMouseDown_browser.bind(this));
125
+ this.#$.eventManager.addEvent(content, 'click', this.#OnClick_browser.bind(this));
126
+ this.#$.eventManager.addEvent(browserFrame.querySelector('form.se-browser-search-form'), 'submit', this.#Search.bind(this));
127
+ this.#$.eventManager.addEvent((this.sideOpenBtn = /** @type {HTMLButtonElement} */ (browserFrame.querySelector('.se-side-open-btn'))), 'click', this.#SideOpen.bind(this));
128
+ this.#$.eventManager.addEvent([this.header, browserFrame.querySelector('.se-browser-main')], 'mousedown', this.#SideClose.bind(this));
127
129
  }
128
130
 
129
131
  /**
130
132
  * @description Open a file browser plugin
131
133
  * @param {Object} [params={}]
132
- * @param {string=} params.listClass - Class name of list div. If not, use "this.listClass".
133
- * @param {string=} params.title - File browser window title. If not, use "this.title".
134
- * @param {string=} params.url - File server url. If not, use "this.url".
135
- * @param {Object<string, string>=} params.urlHeader - File server http header. If not, use "this.urlHeader".
134
+ * @param {string} [params.listClass] - Class name of list div. If not, use `this.listClass`.
135
+ * @param {string} [params.title] - File browser window title. If not, use `this.title`.
136
+ * @param {string} [params.url] - File server url. If not, use `this.url`.
137
+ * @param {Object<string, string>} [params.urlHeader] - File server http header. If not, use `this.urlHeader`.
136
138
  */
137
- open(params) {
138
- if (!params) params = {};
139
- this.__addGlobalEvent();
139
+ open(params = {}) {
140
+ this.#addGlobalEvent();
140
141
 
141
142
  const listClassName = params.listClass || this.listClass;
142
143
  if (!dom.utils.hasClass(this.list, listClassName)) {
@@ -145,22 +146,24 @@ class Browser extends CoreInjector {
145
146
 
146
147
  this.titleArea.textContent = params.title || this.title;
147
148
  this.area.style.display = 'block';
148
- this.editor.opendBrowser = this;
149
- this.closeArrow = this.options.get('_rtl') ? this.icons.menu_arrow_left : this.icons.menu_arrow_right;
149
+ this.#$.ui.opendBrowser = this;
150
+ this.closeArrow = this.#$.options.get('_rtl') ? this.#$.icons.menu_arrow_left : this.#$.icons.menu_arrow_right;
150
151
 
151
152
  if (this.directData) {
152
- this.__drowItems(this.directData);
153
+ this.#drowItems(this.directData);
153
154
  } else {
154
- this._drawFileList(params.url || this.url, params.urlHeader || this.urlHeader, false);
155
+ this.#drawFileList(params.url || this.url, params.urlHeader || this.urlHeader, false);
155
156
  }
157
+
158
+ this.body.style.maxHeight = dom.utils.getClientSize().h - (this.#$.offset.getGlobal(this.body).top - _w.scrollY) - 20 + 'px';
156
159
  }
157
160
 
158
161
  /**
159
162
  * @description Close a browser plugin
160
- * - The plugin's "init" method is called.
163
+ * - The plugin's `init` method is called.
161
164
  */
162
165
  close() {
163
- this.__removeGlobalEvent();
166
+ this.#removeGlobalEvent();
164
167
  this.apiManager.cancel();
165
168
 
166
169
  this.area.style.display = 'none';
@@ -171,10 +174,10 @@ class Browser extends CoreInjector {
171
174
  this.data = {};
172
175
  this.keyword = '';
173
176
  this.list.innerHTML = this.tagArea.innerHTML = this.titleArea.textContent = '';
174
- this.editor.opendBrowser = null;
177
+ this.#$.ui.opendBrowser = null;
175
178
  this.sideInner = null;
176
179
 
177
- if (typeof this.inst.init === 'function') this.inst.init();
180
+ this.host.browserInit?.();
178
181
  }
179
182
 
180
183
  /**
@@ -184,10 +187,10 @@ class Browser extends CoreInjector {
184
187
  search(keyword) {
185
188
  if (this.searchUrl) {
186
189
  this.keyword = keyword;
187
- this._drawFileList(this.searchUrl + '?keyword=' + keyword, this.searchUrlHeader, false);
190
+ this.#drawFileList(this.searchUrl + '?keyword=' + keyword, this.searchUrlHeader, false);
188
191
  } else {
189
192
  this.keyword = keyword.toLowerCase();
190
- this._drawListItem(this.items, false);
193
+ this.#drawListItem(this.items, false);
191
194
  }
192
195
  }
193
196
 
@@ -205,24 +208,23 @@ class Browser extends CoreInjector {
205
208
  * @description Show file browser loading box
206
209
  */
207
210
  showBrowserLoading() {
208
- this._loading.style.display = 'block';
211
+ this.#loading.style.display = 'block';
209
212
  }
210
213
 
211
214
  /**
212
215
  * @description Close file browser loading box
213
216
  */
214
217
  closeBrowserLoading() {
215
- this._loading.style.display = 'none';
218
+ this.#loading.style.display = 'none';
216
219
  }
217
220
 
218
221
  /**
219
- * @private
220
222
  * @description Fetches the file list from the server.
221
223
  * @param {string} url - The file server URL.
222
224
  * @param {Object<string, string>} urlHeader - The HTTP headers for the request.
223
225
  * @param {boolean} pageLoading - Indicates if this is a paginated request.
224
226
  */
225
- _drawFileList(url, urlHeader, pageLoading) {
227
+ #drawFileList(url, urlHeader, pageLoading) {
226
228
  this.apiManager.call({ method: 'GET', url, headers: urlHeader, callBack: this.#CallBackGet.bind(this), errorCallBack: this.#CallBackError.bind(this) });
227
229
  if (!pageLoading) {
228
230
  this.sideOpenBtn.style.display = 'none';
@@ -231,12 +233,11 @@ class Browser extends CoreInjector {
231
233
  }
232
234
 
233
235
  /**
234
- * @private
235
236
  * @description Updates the displayed list of file items.
236
237
  * @param {Array<BrowserFile>} items - The file items to display.
237
238
  * @param {boolean} update - Whether to update the tags.
238
239
  */
239
- _drawListItem(items, update) {
240
+ #drawListItem(items, update) {
240
241
  const keyword = this.keyword;
241
242
  items = this.tagfilter(items).filter((item) => item.name.toLowerCase().indexOf(keyword) > -1);
242
243
 
@@ -281,41 +282,38 @@ class Browser extends CoreInjector {
281
282
  }
282
283
 
283
284
  /**
284
- * @private
285
285
  * @description Adds a global event listener for closing the browser.
286
286
  */
287
- __addGlobalEvent() {
288
- this.__removeGlobalEvent();
289
- this._bindClose = this.eventManager.addGlobalEvent('keydown', this.__globalEventHandler, true);
287
+ #addGlobalEvent() {
288
+ this.#removeGlobalEvent();
289
+ this.#bindClose = this.#$.eventManager.addGlobalEvent('keydown', this.#globalEventHandler, true);
290
290
  }
291
291
 
292
292
  /**
293
- * @private
294
293
  * @description Removes the global event listener for closing the browser.
295
294
  */
296
- __removeGlobalEvent() {
297
- if (this._bindClose) this._bindClose = this.eventManager.removeGlobalEvent(this._bindClose);
295
+ #removeGlobalEvent() {
296
+ this.#bindClose &&= this.#$.eventManager.removeGlobalEvent(this.#bindClose);
298
297
  }
299
298
 
300
299
  /**
301
- * @private
302
300
  * @description Renders the file items or folder structure from data.
303
301
  * @param {BrowserFile[]|BrowserFile} data - The data representing the file structure.
304
- * @returns {boolean} True if rendering was successful, false otherwise.
302
+ * @returns {boolean} `true` if rendering was successful, `false` otherwise.
305
303
  */
306
- __drowItems(data) {
304
+ #drowItems(data) {
307
305
  if (Array.isArray(data)) {
308
306
  if (data.length > 0) {
309
- this._drawListItem(data, true);
307
+ this.#drawListItem(data, true);
310
308
  }
311
309
  return true;
312
310
  } else if (typeof data === 'object') {
313
311
  this.sideOpenBtn.style.display = '';
314
- this.__parseFolderData(data);
312
+ this.#parseFolderData(data);
315
313
 
316
314
  this.side.innerHTML = '';
317
315
  const sideInner = (this.sideInner = dom.utils.createElement('div', null));
318
- this.__createFolderList(this.tree, sideInner);
316
+ this.#createFolderList(this.tree, sideInner);
319
317
  this.side.appendChild(sideInner);
320
318
 
321
319
  if (this.folderDefaultPath) {
@@ -333,12 +331,11 @@ class Browser extends CoreInjector {
333
331
  }
334
332
 
335
333
  /**
336
- * @private
337
334
  * @description Parses folder data into a structured format.
338
335
  * @param {BrowserFile} data - The folder data.
339
336
  * @param {string} [path] - The current path in the folder hierarchy.
340
337
  */
341
- __parseFolderData(data, path) {
338
+ #parseFolderData(data, path) {
342
339
  let current = this.tree;
343
340
 
344
341
  // _data
@@ -351,9 +348,7 @@ class Browser extends CoreInjector {
351
348
  const parts = path.split('/');
352
349
  const len = parts.length - 1;
353
350
  parts.forEach((part, index) => {
354
- if (!current[part]) {
355
- current[part] = { children: {} };
356
- }
351
+ current[part] ||= { children: {} };
357
352
 
358
353
  if (index === len) {
359
354
  current[part].key = path;
@@ -375,20 +370,19 @@ class Browser extends CoreInjector {
375
370
 
376
371
  this.folders[currentPath] = {
377
372
  name: v.name || key,
378
- meta: v.meta || {}
373
+ meta: v.meta || {},
379
374
  };
380
375
 
381
- this.__parseFolderData(v, currentPath);
376
+ this.#parseFolderData(v, currentPath);
382
377
  });
383
378
  }
384
379
 
385
380
  /**
386
- * @private
387
381
  * @description Creates a nested folder list from parsed data.
388
382
  * @param {BrowserFile[]|BrowserFile} folderData - The structured folder data.
389
383
  * @param {HTMLElement} parentElement - The parent element to append folder structure to.
390
384
  */
391
- __createFolderList(folderData, parentElement) {
385
+ #createFolderList(folderData, parentElement) {
392
386
  for (const key in folderData) {
393
387
  const item = folderData[key];
394
388
  if (!item) continue;
@@ -397,14 +391,14 @@ class Browser extends CoreInjector {
397
391
  const folderLabel = dom.utils.createElement(
398
392
  'div',
399
393
  item.key ? { 'data-command': item.key, 'aria-label': item.name } : null,
400
- `<span class="se-menu-icon">${item.key ? this.icon_folder : this.icon_folder_item}</span><span>${item.name}</span>`
394
+ `<span class="se-menu-icon">${item.key ? this.icon_folder : this.icon_folder_item}</span><span>${item.name}</span>`,
401
395
  );
402
396
  const folderDiv = dom.utils.createElement('div', { class: 'se-menu-folder' }, folderLabel);
403
397
 
404
398
  folderLabel.insertBefore(dom.utils.createElement('button', null, this.closeArrow), folderLabel.firstElementChild);
405
399
  const childContainer = document.createElement('div');
406
400
  dom.utils.addClass(childContainer, 'se-menu-child|se-menu-hidden');
407
- this.__createFolderList(item.children, childContainer);
401
+ this.#createFolderList(item.children, childContainer);
408
402
  folderDiv.appendChild(childContainer);
409
403
 
410
404
  parentElement.appendChild(folderDiv);
@@ -427,7 +421,7 @@ class Browser extends CoreInjector {
427
421
  try {
428
422
  const res = JSON.parse(xmlHttp.responseText);
429
423
  const data = res.result;
430
- if (this.__drowItems(data)) return;
424
+ if (this.#drowItems(data)) return;
431
425
 
432
426
  if (res.nullMessage) {
433
427
  this.list.innerHTML = res.nullMessage;
@@ -436,7 +430,6 @@ class Browser extends CoreInjector {
436
430
  throw Error(`[SUNEDITOR.browser.drawList.fail] cause: "${e.message}"`);
437
431
  } finally {
438
432
  this.closeBrowserLoading();
439
- this.body.style.maxHeight = dom.utils.getClientSize().h - this.header.offsetHeight - 50 + 'px';
440
433
  }
441
434
  }
442
435
 
@@ -468,7 +461,7 @@ class Browser extends CoreInjector {
468
461
  dom.utils.addClass(selectTag, 'on');
469
462
  }
470
463
 
471
- this._drawListItem(this.items, false);
464
+ this.#drawListItem(this.items, false);
472
465
  }
473
466
 
474
467
  /**
@@ -518,9 +511,9 @@ class Browser extends CoreInjector {
518
511
  this.tagArea.innerHTML = '';
519
512
 
520
513
  if (typeof data === 'string') {
521
- this._drawFileList(data, this.urlHeader, true);
514
+ this.#drawFileList(data, this.urlHeader, true);
522
515
  } else {
523
- this._drawListItem(data, false);
516
+ this.#drawListItem(data, false);
524
517
  }
525
518
  }
526
519
 
@@ -530,9 +523,9 @@ class Browser extends CoreInjector {
530
523
  #OnMouseDown_browser(e) {
531
524
  const eventTarget = dom.query.getEventTarget(e);
532
525
  if (/se-browser-inner/.test(eventTarget.className)) {
533
- this._closeSignal = true;
526
+ this.#closeSignal = true;
534
527
  } else {
535
- this._closeSignal = false;
528
+ this.#closeSignal = false;
536
529
  }
537
530
  }
538
531
 
@@ -543,7 +536,7 @@ class Browser extends CoreInjector {
543
536
  const eventTarget = dom.query.getEventTarget(e);
544
537
  e.stopPropagation();
545
538
 
546
- if (/close/.test(eventTarget.getAttribute('data-command')) || this._closeSignal) {
539
+ if (/close/.test(eventTarget.getAttribute('data-command')) || this.#closeSignal) {
547
540
  this.close();
548
541
  }
549
542
  }
@@ -584,14 +577,13 @@ class Browser extends CoreInjector {
584
577
  }
585
578
 
586
579
  /**
587
- * @private
588
- * @param {__se__EditorCore} editor - editor instance
580
+ * @param {SunEditor.Deps} $ - editor instance
589
581
  * @param {boolean} useSearch - Whether to use the search function
590
582
  * @returns {{ html: HTMLElement, header: HTMLElement, titleArea: HTMLElement, tagArea: HTMLElement, body: HTMLElement, list: HTMLElement, side: HTMLElement, wrapper: HTMLElement, _loading: HTMLElement }} HTML
591
583
  */
592
- function CreateHTMLInfos(editor, useSearch) {
593
- const lang = editor.lang;
594
- const icons = editor.icons;
584
+ function CreateHTMLInfos($, useSearch) {
585
+ const lang = $.lang;
586
+ const icons = $.icons;
595
587
  const htmlString = /*html*/ `
596
588
  <div class="se-browser-content">
597
589
  <div class="se-browser-header">
@@ -638,15 +630,14 @@ function CreateHTMLInfos(editor, useSearch) {
638
630
  list: content.querySelector('.se-browser-list'),
639
631
  side: content.querySelector('.se-browser-side'),
640
632
  wrapper: content.querySelector('.se-browser-wrapper'),
641
- _loading: content.querySelector('.se-loading-box')
633
+ _loading: content.querySelector('.se-loading-box'),
642
634
  };
643
635
  }
644
636
 
645
637
  /**
646
- * @private
647
638
  * @this {{ thumbnail: ((...args: *) => *), props: Array<*> }}
648
- * @description Define the HTML of the item to be put in "div.se-file-item-column".
649
- * - Format: [ { src: "image src", name: "name(@option)", alt: "image alt(@option)", tag: "tag name(@option)" } ]
639
+ * @description Define the HTML of the item to be put in `div.se-file-item-column`.
640
+ * - Format: `[ { src: "image src", name: "name(@option)", alt: "image alt(@option)", tag: "tag name(@option)" } ]`
650
641
  * @param {BrowserFile} item Item of the response data's array
651
642
  */
652
643
  function DrawItems(item) {