suneditor 3.0.0-alpha.2 → 3.0.0-alpha.20

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 (306) hide show
  1. package/.eslintrc.json +4 -3
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +19 -11
  4. package/README_V3_TEMP.md +705 -0
  5. package/dist/suneditor.min.css +1 -0
  6. package/dist/suneditor.min.js +1 -0
  7. package/example.md +587 -0
  8. package/package.json +15 -9
  9. package/src/assets/icons/_default.js +166 -131
  10. package/src/assets/{suneditor-content.css → suneditor-contents.css} +182 -45
  11. package/src/assets/suneditor.css +1195 -556
  12. package/src/assets/variables.css +138 -0
  13. package/src/core/base/eventHandlers/handler_toolbar.js +35 -14
  14. package/src/core/base/eventHandlers/handler_ww_clipboard.js +29 -4
  15. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +59 -15
  16. package/src/core/base/eventHandlers/handler_ww_key_input.js +426 -212
  17. package/src/core/base/eventHandlers/handler_ww_mouse.js +108 -32
  18. package/src/core/base/eventManager.js +540 -209
  19. package/src/core/base/events.js +616 -320
  20. package/src/core/base/history.js +93 -39
  21. package/src/core/class/char.js +29 -13
  22. package/src/core/class/component.js +332 -145
  23. package/src/core/class/format.js +671 -509
  24. package/src/core/class/html.js +504 -290
  25. package/src/core/class/menu.js +114 -47
  26. package/src/core/class/nodeTransform.js +111 -66
  27. package/src/core/class/offset.js +409 -105
  28. package/src/core/class/selection.js +220 -108
  29. package/src/core/class/shortcuts.js +68 -8
  30. package/src/core/class/toolbar.js +106 -116
  31. package/src/core/class/ui.js +330 -0
  32. package/src/core/class/viewer.js +178 -74
  33. package/src/core/editor.js +489 -384
  34. package/src/core/section/actives.js +118 -22
  35. package/src/core/section/constructor.js +504 -170
  36. package/src/core/section/context.js +28 -23
  37. package/src/core/section/documentType.js +561 -0
  38. package/src/editorInjector/_classes.js +19 -5
  39. package/src/editorInjector/_core.js +71 -7
  40. package/src/editorInjector/index.js +63 -1
  41. package/src/helper/converter.js +137 -19
  42. package/src/helper/dom/domCheck.js +294 -0
  43. package/src/helper/dom/domQuery.js +609 -0
  44. package/src/helper/dom/domUtils.js +533 -0
  45. package/src/helper/dom/index.js +12 -0
  46. package/src/helper/env.js +42 -19
  47. package/src/helper/index.js +7 -4
  48. package/src/helper/keyCodeMap.js +183 -0
  49. package/src/helper/numbers.js +8 -8
  50. package/src/helper/unicode.js +5 -5
  51. package/src/langs/ckb.js +69 -3
  52. package/src/langs/cs.js +67 -1
  53. package/src/langs/da.js +68 -2
  54. package/src/langs/de.js +68 -3
  55. package/src/langs/en.js +29 -1
  56. package/src/langs/es.js +68 -3
  57. package/src/langs/fa.js +70 -2
  58. package/src/langs/fr.js +68 -2
  59. package/src/langs/he.js +68 -3
  60. package/src/langs/hu.js +226 -0
  61. package/src/langs/index.js +3 -2
  62. package/src/langs/it.js +65 -0
  63. package/src/langs/ja.js +68 -3
  64. package/src/langs/ko.js +66 -1
  65. package/src/langs/lv.js +68 -3
  66. package/src/langs/nl.js +68 -3
  67. package/src/langs/pl.js +68 -3
  68. package/src/langs/pt_br.js +65 -0
  69. package/src/langs/ro.js +69 -4
  70. package/src/langs/ru.js +68 -3
  71. package/src/langs/se.js +68 -3
  72. package/src/langs/tr.js +68 -0
  73. package/src/langs/ua.js +68 -3
  74. package/src/langs/ur.js +71 -6
  75. package/src/langs/zh_cn.js +69 -4
  76. package/src/modules/ApiManager.js +77 -54
  77. package/src/modules/Browser.js +667 -0
  78. package/src/modules/ColorPicker.js +162 -102
  79. package/src/modules/Controller.js +233 -136
  80. package/src/modules/Figure.js +913 -489
  81. package/src/modules/FileManager.js +141 -72
  82. package/src/modules/HueSlider.js +113 -61
  83. package/src/modules/Modal.js +292 -113
  84. package/src/modules/ModalAnchorEditor.js +380 -230
  85. package/src/modules/SelectMenu.js +270 -168
  86. package/src/modules/_DragHandle.js +2 -1
  87. package/src/modules/index.js +3 -3
  88. package/src/plugins/browser/audioGallery.js +83 -0
  89. package/src/plugins/browser/fileBrowser.js +103 -0
  90. package/src/plugins/browser/fileGallery.js +83 -0
  91. package/src/plugins/browser/imageGallery.js +81 -0
  92. package/src/plugins/browser/videoGallery.js +103 -0
  93. package/src/plugins/command/blockquote.js +40 -27
  94. package/src/plugins/command/exportPDF.js +134 -0
  95. package/src/plugins/command/fileUpload.js +226 -158
  96. package/src/plugins/command/list_bulleted.js +93 -47
  97. package/src/plugins/command/list_numbered.js +93 -47
  98. package/src/plugins/dropdown/align.js +66 -54
  99. package/src/plugins/dropdown/backgroundColor.js +76 -45
  100. package/src/plugins/dropdown/font.js +71 -47
  101. package/src/plugins/dropdown/fontColor.js +78 -46
  102. package/src/plugins/dropdown/formatBlock.js +74 -33
  103. package/src/plugins/dropdown/hr.js +102 -51
  104. package/src/plugins/dropdown/layout.js +37 -26
  105. package/src/plugins/dropdown/lineHeight.js +54 -38
  106. package/src/plugins/dropdown/list.js +60 -45
  107. package/src/plugins/dropdown/paragraphStyle.js +51 -30
  108. package/src/plugins/dropdown/table.js +1269 -777
  109. package/src/plugins/dropdown/template.js +38 -26
  110. package/src/plugins/dropdown/textStyle.js +43 -31
  111. package/src/plugins/field/mention.js +144 -82
  112. package/src/plugins/index.js +32 -6
  113. package/src/plugins/input/fontSize.js +161 -108
  114. package/src/plugins/input/pageNavigator.js +70 -0
  115. package/src/plugins/modal/audio.js +341 -169
  116. package/src/plugins/modal/drawing.js +530 -0
  117. package/src/plugins/modal/embed.js +886 -0
  118. package/src/plugins/modal/image.js +673 -358
  119. package/src/plugins/modal/link.js +100 -71
  120. package/src/plugins/modal/math.js +384 -168
  121. package/src/plugins/modal/video.js +693 -336
  122. package/src/plugins/popup/anchor.js +222 -0
  123. package/src/suneditor.js +54 -12
  124. package/src/themes/dark.css +85 -0
  125. package/src/typedef.js +86 -0
  126. package/types/assets/icons/_default.d.ts +152 -0
  127. package/types/core/base/eventHandlers/handler_toolbar.d.ts +41 -0
  128. package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +40 -0
  129. package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +35 -0
  130. package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +45 -0
  131. package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +39 -0
  132. package/types/core/base/eventManager.d.ts +377 -0
  133. package/types/core/base/events.d.ts +297 -0
  134. package/types/core/base/history.d.ts +81 -0
  135. package/types/core/class/char.d.ts +60 -0
  136. package/types/core/class/component.d.ts +259 -0
  137. package/types/core/class/format.d.ts +615 -0
  138. package/types/core/class/html.d.ts +377 -0
  139. package/types/core/class/menu.d.ts +118 -0
  140. package/types/core/class/nodeTransform.d.ts +93 -0
  141. package/types/core/class/offset.d.ts +512 -0
  142. package/types/core/class/selection.d.ts +188 -0
  143. package/types/core/class/shortcuts.d.ts +142 -0
  144. package/types/core/class/toolbar.d.ts +189 -0
  145. package/types/core/class/ui.d.ts +144 -0
  146. package/types/core/class/viewer.d.ts +140 -0
  147. package/types/core/editor.d.ts +606 -0
  148. package/types/core/section/actives.d.ts +46 -0
  149. package/types/core/section/constructor.d.ts +748 -0
  150. package/types/core/section/context.d.ts +45 -0
  151. package/types/core/section/documentType.d.ts +178 -0
  152. package/types/editorInjector/_classes.d.ts +41 -0
  153. package/types/editorInjector/_core.d.ts +92 -0
  154. package/types/editorInjector/index.d.ts +71 -0
  155. package/types/helper/converter.d.ts +150 -0
  156. package/types/helper/dom/domCheck.d.ts +182 -0
  157. package/types/helper/dom/domQuery.d.ts +214 -0
  158. package/types/helper/dom/domUtils.d.ts +211 -0
  159. package/types/helper/dom/index.d.ts +9 -0
  160. package/types/helper/env.d.ts +149 -0
  161. package/types/helper/index.d.ts +163 -0
  162. package/types/helper/keyCodeMap.d.ts +110 -0
  163. package/types/helper/numbers.d.ts +43 -0
  164. package/types/helper/unicode.d.ts +28 -0
  165. package/types/index.d.ts +0 -0
  166. package/{typings/Lang.d.ts → types/langs/_Lang.d.ts} +170 -103
  167. package/types/langs/ckb.d.ts +384 -0
  168. package/types/langs/cs.d.ts +384 -0
  169. package/types/langs/da.d.ts +384 -0
  170. package/types/langs/de.d.ts +384 -0
  171. package/types/langs/en.d.ts +384 -0
  172. package/types/langs/es.d.ts +384 -0
  173. package/types/langs/fa.d.ts +384 -0
  174. package/types/langs/fr.d.ts +384 -0
  175. package/types/langs/he.d.ts +384 -0
  176. package/types/langs/hu.d.ts +384 -0
  177. package/types/langs/index.d.ts +48 -0
  178. package/types/langs/it.d.ts +384 -0
  179. package/types/langs/ja.d.ts +384 -0
  180. package/types/langs/ko.d.ts +384 -0
  181. package/types/langs/lv.d.ts +384 -0
  182. package/types/langs/nl.d.ts +384 -0
  183. package/types/langs/pl.d.ts +384 -0
  184. package/types/langs/pt_br.d.ts +384 -0
  185. package/types/langs/ro.d.ts +384 -0
  186. package/types/langs/ru.d.ts +384 -0
  187. package/types/langs/se.d.ts +384 -0
  188. package/types/langs/tr.d.ts +384 -0
  189. package/types/langs/ua.d.ts +384 -0
  190. package/types/langs/ur.d.ts +384 -0
  191. package/types/langs/zh_cn.d.ts +384 -0
  192. package/types/modules/ApiManager.d.ts +125 -0
  193. package/types/modules/Browser.d.ts +326 -0
  194. package/types/modules/ColorPicker.d.ts +131 -0
  195. package/types/modules/Controller.d.ts +231 -0
  196. package/types/modules/Figure.d.ts +504 -0
  197. package/types/modules/FileManager.d.ts +202 -0
  198. package/types/modules/HueSlider.d.ts +136 -0
  199. package/types/modules/Modal.d.ts +117 -0
  200. package/types/modules/ModalAnchorEditor.d.ts +236 -0
  201. package/types/modules/SelectMenu.d.ts +194 -0
  202. package/types/modules/_DragHandle.d.ts +7 -0
  203. package/types/modules/index.d.ts +26 -0
  204. package/types/plugins/browser/audioGallery.d.ts +55 -0
  205. package/types/plugins/browser/fileBrowser.d.ts +64 -0
  206. package/types/plugins/browser/fileGallery.d.ts +55 -0
  207. package/types/plugins/browser/imageGallery.d.ts +51 -0
  208. package/types/plugins/browser/videoGallery.d.ts +57 -0
  209. package/types/plugins/command/blockquote.d.ts +28 -0
  210. package/types/plugins/command/exportPDF.d.ts +46 -0
  211. package/types/plugins/command/fileUpload.d.ts +156 -0
  212. package/types/plugins/command/list_bulleted.d.ts +56 -0
  213. package/types/plugins/command/list_numbered.d.ts +56 -0
  214. package/types/plugins/dropdown/align.d.ts +60 -0
  215. package/types/plugins/dropdown/backgroundColor.d.ts +63 -0
  216. package/types/plugins/dropdown/font.d.ts +54 -0
  217. package/types/plugins/dropdown/fontColor.d.ts +63 -0
  218. package/types/plugins/dropdown/formatBlock.d.ts +58 -0
  219. package/types/plugins/dropdown/hr.d.ts +81 -0
  220. package/types/plugins/dropdown/layout.d.ts +40 -0
  221. package/types/plugins/dropdown/lineHeight.d.ts +50 -0
  222. package/types/plugins/dropdown/list.d.ts +39 -0
  223. package/types/plugins/dropdown/paragraphStyle.d.ts +54 -0
  224. package/types/plugins/dropdown/table.d.ts +579 -0
  225. package/types/plugins/dropdown/template.d.ts +40 -0
  226. package/types/plugins/dropdown/textStyle.d.ts +41 -0
  227. package/types/plugins/field/mention.d.ts +102 -0
  228. package/types/plugins/index.d.ts +107 -0
  229. package/types/plugins/input/fontSize.d.ts +170 -0
  230. package/types/plugins/input/pageNavigator.d.ts +28 -0
  231. package/types/plugins/modal/audio.d.ts +269 -0
  232. package/types/plugins/modal/drawing.d.ts +246 -0
  233. package/types/plugins/modal/embed.d.ts +387 -0
  234. package/types/plugins/modal/image.d.ts +451 -0
  235. package/types/plugins/modal/link.d.ts +128 -0
  236. package/types/plugins/modal/math.d.ts +193 -0
  237. package/types/plugins/modal/video.d.ts +485 -0
  238. package/types/plugins/popup/anchor.d.ts +56 -0
  239. package/types/suneditor.d.ts +51 -0
  240. package/types/typedef-global.d.ts +144 -0
  241. package/src/core/class/notice.js +0 -42
  242. package/src/helper/domUtils.js +0 -1177
  243. package/src/modules/FileBrowser.js +0 -271
  244. package/src/plugins/command/exportPdf.js +0 -168
  245. package/src/plugins/fileBrowser/imageGallery.js +0 -81
  246. package/src/themes/test.css +0 -61
  247. package/typings/CommandPlugin.d.ts +0 -8
  248. package/typings/DialogPlugin.d.ts +0 -20
  249. package/typings/FileBrowserPlugin.d.ts +0 -30
  250. package/typings/Module.d.ts +0 -15
  251. package/typings/Plugin.d.ts +0 -42
  252. package/typings/SubmenuPlugin.d.ts +0 -8
  253. package/typings/_classes.d.ts +0 -17
  254. package/typings/_colorPicker.d.ts +0 -60
  255. package/typings/_core.d.ts +0 -55
  256. package/typings/align.d.ts +0 -5
  257. package/typings/audio.d.ts +0 -5
  258. package/typings/backgroundColor.d.ts +0 -5
  259. package/typings/blockquote.d.ts +0 -5
  260. package/typings/char.d.ts +0 -39
  261. package/typings/component.d.ts +0 -38
  262. package/typings/context.d.ts +0 -39
  263. package/typings/converter.d.ts +0 -33
  264. package/typings/dialog.d.ts +0 -28
  265. package/typings/domUtils.d.ts +0 -361
  266. package/typings/editor.d.ts +0 -7
  267. package/typings/editor.ts +0 -542
  268. package/typings/env.d.ts +0 -70
  269. package/typings/eventManager.d.ts +0 -37
  270. package/typings/events.d.ts +0 -262
  271. package/typings/fileBrowser.d.ts +0 -42
  272. package/typings/fileManager.d.ts +0 -67
  273. package/typings/font.d.ts +0 -5
  274. package/typings/fontColor.d.ts +0 -5
  275. package/typings/fontSize.d.ts +0 -5
  276. package/typings/format.d.ts +0 -191
  277. package/typings/formatBlock.d.ts +0 -5
  278. package/typings/history.d.ts +0 -48
  279. package/typings/horizontalRule.d.ts +0 -5
  280. package/typings/image.d.ts +0 -5
  281. package/typings/imageGallery.d.ts +0 -5
  282. package/typings/index.d.ts +0 -21
  283. package/typings/index.modules.d.ts +0 -11
  284. package/typings/index.plugins.d.ts +0 -58
  285. package/typings/lineHeight.d.ts +0 -5
  286. package/typings/link.d.ts +0 -5
  287. package/typings/list.d.ts +0 -5
  288. package/typings/math.d.ts +0 -5
  289. package/typings/mediaContainer.d.ts +0 -25
  290. package/typings/mention.d.ts +0 -5
  291. package/typings/node.d.ts +0 -57
  292. package/typings/notice.d.ts +0 -16
  293. package/typings/numbers.d.ts +0 -29
  294. package/typings/offset.d.ts +0 -24
  295. package/typings/options.d.ts +0 -589
  296. package/typings/paragraphStyle.d.ts +0 -5
  297. package/typings/resizing.d.ts +0 -141
  298. package/typings/selection.d.ts +0 -94
  299. package/typings/shortcuts.d.ts +0 -13
  300. package/typings/suneditor.d.ts +0 -9
  301. package/typings/table.d.ts +0 -5
  302. package/typings/template.d.ts +0 -5
  303. package/typings/textStyle.d.ts +0 -5
  304. package/typings/toolbar.d.ts +0 -32
  305. package/typings/unicode.d.ts +0 -25
  306. package/typings/video.d.ts +0 -5
@@ -0,0 +1,142 @@
1
+ export default Shortcuts;
2
+ export type ShortcutsThis = Omit<Shortcuts & Partial<__se__EditorInjector>, 'shortcuts'>;
3
+ export type ShortcutInfo = {
4
+ /**
5
+ * - Whether the [Ctrl, Command] key is pressed.
6
+ */
7
+ c: boolean;
8
+ /**
9
+ * - Whether the [Shift] key is pressed.
10
+ */
11
+ s: boolean;
12
+ /**
13
+ * - Whether the [Space] key is pressed.
14
+ */
15
+ space: boolean;
16
+ /**
17
+ * - Whether the Enter key is pressed.
18
+ */
19
+ enter: boolean;
20
+ /**
21
+ * - The command key. (e.g. "bold")
22
+ */
23
+ command: string;
24
+ /**
25
+ * - Whether the cursor is at the end of the line.
26
+ */
27
+ edge: boolean;
28
+ /**
29
+ * - The key pressed (e.g., "1.").
30
+ */
31
+ key?: string | undefined;
32
+ /**
33
+ * - The keyEvent.code.
34
+ */
35
+ keyCode?: string | undefined;
36
+ /**
37
+ * - A plugin's "shortcut" method that is called instead of the default "editor.run" method.
38
+ */
39
+ method?: (string | ((...args: any) => any)) | undefined;
40
+ /**
41
+ * - The plugin name.
42
+ */
43
+ plugin: string;
44
+ /**
45
+ * - Plugin's type. ("command", "dropdown", "modal", "browser", "input", "field", "popup").
46
+ */
47
+ type: string;
48
+ /**
49
+ * - The plugin command button.
50
+ */
51
+ button: Node;
52
+ /**
53
+ * - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
54
+ */
55
+ r: Array<string>;
56
+ /**
57
+ * - Whether the event was triggered by a text input (e.g., mention like
58
+ */
59
+ textTrigger: string;
60
+ };
61
+ /**
62
+ * @typedef {Omit<Shortcuts & Partial<__se__EditorInjector>, 'shortcuts'>} ShortcutsThis
63
+ */
64
+ /**
65
+ * @typedef {Object} ShortcutInfo
66
+ * @property {boolean} c - Whether the [Ctrl, Command] key is pressed.
67
+ * @property {boolean} s - Whether the [Shift] key is pressed.
68
+ * @property {boolean} space - Whether the [Space] key is pressed.
69
+ * @property {boolean} enter - Whether the Enter key is pressed.
70
+ * @property {string} command - The command key. (e.g. "bold")
71
+ * @property {boolean} edge - Whether the cursor is at the end of the line.
72
+ * @property {string=} key - The key pressed (e.g., "1.").
73
+ * @property {string=} keyCode - The keyEvent.code.
74
+ * @property {string|((...args: *) => *)=} method - A plugin's "shortcut" method that is called instead of the default "editor.run" method.
75
+ * @property {string} plugin - The plugin name.
76
+ * @property {string} type - Plugin's type. ("command", "dropdown", "modal", "browser", "input", "field", "popup").
77
+ * @property {Node} button - The plugin command button.
78
+ * @property {Array<string>} r - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
79
+ * @property {string} textTrigger - Whether the event was triggered by a text input (e.g., mention like @ab).
80
+ */
81
+ /**
82
+ * @constructor
83
+ * @this {ShortcutsThis}
84
+ * @description Shortcuts class
85
+ * @param {__se__EditorCore} editor - The root editor instance
86
+ */
87
+ declare function Shortcuts(this: Omit<Shortcuts & Partial<import('../../editorInjector').default>, 'shortcuts'>, editor: __se__EditorCore): void;
88
+ declare class Shortcuts {
89
+ /**
90
+ * @typedef {Omit<Shortcuts & Partial<__se__EditorInjector>, 'shortcuts'>} ShortcutsThis
91
+ */
92
+ /**
93
+ * @typedef {Object} ShortcutInfo
94
+ * @property {boolean} c - Whether the [Ctrl, Command] key is pressed.
95
+ * @property {boolean} s - Whether the [Shift] key is pressed.
96
+ * @property {boolean} space - Whether the [Space] key is pressed.
97
+ * @property {boolean} enter - Whether the Enter key is pressed.
98
+ * @property {string} command - The command key. (e.g. "bold")
99
+ * @property {boolean} edge - Whether the cursor is at the end of the line.
100
+ * @property {string=} key - The key pressed (e.g., "1.").
101
+ * @property {string=} keyCode - The keyEvent.code.
102
+ * @property {string|((...args: *) => *)=} method - A plugin's "shortcut" method that is called instead of the default "editor.run" method.
103
+ * @property {string} plugin - The plugin name.
104
+ * @property {string} type - Plugin's type. ("command", "dropdown", "modal", "browser", "input", "field", "popup").
105
+ * @property {Node} button - The plugin command button.
106
+ * @property {Array<string>} r - An array of key codes generated with the reverseButtons option, used to reverse the action for a specific key combination.
107
+ * @property {string} textTrigger - Whether the event was triggered by a text input (e.g., mention like @ab).
108
+ */
109
+ /**
110
+ * @constructor
111
+ * @this {ShortcutsThis}
112
+ * @description Shortcuts class
113
+ * @param {__se__EditorCore} editor - The root editor instance
114
+ */
115
+ constructor(editor: __se__EditorCore);
116
+ editor: import('../editor').default;
117
+ isDisabled: boolean;
118
+ /**
119
+ * @this {ShortcutsThis}
120
+ * @description If there is a shortcut function, run it.
121
+ * @param {KeyboardEvent} event Keyboard event object
122
+ * @param {boolean} ctrl Whether the Ctrl key is pressed
123
+ * @param {boolean} shift Whether the Shift key is pressed
124
+ * @param {string} keyCode The keyEvent.code.
125
+ * @param {string} text The text content of the key
126
+ * @param {boolean} edge Whether the cursor is at the end of the line
127
+ * @param {HTMLElement} line The current line node
128
+ * @param {Range} range The current range object
129
+ * @returns {boolean} Whether to execute shortcuts
130
+ */
131
+ command(this: Omit<Shortcuts & Partial<import('../../editorInjector').default>, 'shortcuts'>, event: KeyboardEvent, ctrl: boolean, shift: boolean, keyCode: string, text: string, edge: boolean, line: HTMLElement, range: Range): boolean;
132
+ /**
133
+ * @this {ShortcutsThis}
134
+ * @description Disable the shortcut activation.
135
+ */
136
+ disable(this: Omit<Shortcuts & Partial<import('../../editorInjector').default>, 'shortcuts'>): void;
137
+ /**
138
+ * @this {ShortcutsThis}
139
+ * @description Enable the shortcut activation.
140
+ */
141
+ enable(this: Omit<Shortcuts & Partial<import('../../editorInjector').default>, 'shortcuts'>): void;
142
+ }
@@ -0,0 +1,189 @@
1
+ export default Toolbar;
2
+ export type ToolbarThis = Omit<Toolbar & Partial<__se__EditorInjector>, 'toolbar' | 'subToolbar'>;
3
+ /**
4
+ * @typedef {Omit<Toolbar & Partial<__se__EditorInjector>, 'toolbar' | 'subToolbar'>} ToolbarThis
5
+ */
6
+ /**
7
+ * @constructor
8
+ * @this {ToolbarThis}
9
+ * @description Toolbar class
10
+ * @param {__se__EditorCore} editor - The root editor instance
11
+ * @param {Object} options - toolbar options
12
+ * @param {String} options.keyName - toolbar key name
13
+ * @param {Boolean} options.balloon - balloon toolbar
14
+ * @param {Boolean} options.inline - inline toolbar
15
+ * @param {Boolean} options.balloonAlways - balloon toolbar always show
16
+ * @param {Array<Node>} options.res - responsive toolbar button list
17
+ */
18
+ declare function Toolbar(
19
+ this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>,
20
+ editor: __se__EditorCore,
21
+ {
22
+ keyName,
23
+ balloon,
24
+ inline,
25
+ balloonAlways,
26
+ res
27
+ }: {
28
+ keyName: string;
29
+ balloon: boolean;
30
+ inline: boolean;
31
+ balloonAlways: boolean;
32
+ res: Array<Node>;
33
+ }
34
+ ): void;
35
+ declare class Toolbar {
36
+ /**
37
+ * @typedef {Omit<Toolbar & Partial<__se__EditorInjector>, 'toolbar' | 'subToolbar'>} ToolbarThis
38
+ */
39
+ /**
40
+ * @constructor
41
+ * @this {ToolbarThis}
42
+ * @description Toolbar class
43
+ * @param {__se__EditorCore} editor - The root editor instance
44
+ * @param {Object} options - toolbar options
45
+ * @param {String} options.keyName - toolbar key name
46
+ * @param {Boolean} options.balloon - balloon toolbar
47
+ * @param {Boolean} options.inline - inline toolbar
48
+ * @param {Boolean} options.balloonAlways - balloon toolbar always show
49
+ * @param {Array<Node>} options.res - responsive toolbar button list
50
+ */
51
+ constructor(
52
+ editor: __se__EditorCore,
53
+ {
54
+ keyName,
55
+ balloon,
56
+ inline,
57
+ balloonAlways,
58
+ res
59
+ }: {
60
+ keyName: string;
61
+ balloon: boolean;
62
+ inline: boolean;
63
+ balloonAlways: boolean;
64
+ res: Array<Node>;
65
+ }
66
+ );
67
+ keyName: string;
68
+ isSub: boolean;
69
+ currentMoreLayerActiveButton: HTMLButtonElement;
70
+ _isBalloon: boolean;
71
+ _isInline: boolean;
72
+ _isBalloonAlways: boolean;
73
+ _responsiveCurrentSize: string;
74
+ _originRes: Node[];
75
+ _rButtonArray: Node[];
76
+ _rButtonsInfo: {
77
+ default: Node;
78
+ };
79
+ _rButtonsize: any[];
80
+ _sticky: boolean;
81
+ _isViewPortSize: boolean;
82
+ _inlineToolbarAttr: {
83
+ top: string;
84
+ width: string;
85
+ isShow: boolean;
86
+ };
87
+ _balloonOffset: {
88
+ top: number;
89
+ left: number;
90
+ };
91
+ /**
92
+ * @this {ToolbarThis}
93
+ * @description Disable the toolbar
94
+ */
95
+ disable(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
96
+ /**
97
+ * @this {ToolbarThis}
98
+ * @description Enable the toolbar
99
+ */
100
+ enable(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
101
+ /**
102
+ * @this {ToolbarThis}
103
+ * @description Show the toolbar
104
+ */
105
+ show(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
106
+ /**
107
+ * @this {ToolbarThis}
108
+ * @description Hide the toolbar
109
+ */
110
+ hide(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
111
+ /**
112
+ * @this {ToolbarThis}
113
+ * @description Reset buttons of the responsive toolbar.
114
+ */
115
+ resetResponsiveToolbar(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
116
+ /**
117
+ * @this {ToolbarThis}
118
+ * @description Reset the buttons on the toolbar. (Editor is not reloaded)
119
+ * - You cannot set a new plugin for the button.
120
+ * @param {Array} buttonList Button list
121
+ */
122
+ setButtons(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>, buttonList: any[]): void;
123
+ /**
124
+ * @private
125
+ * @this {ToolbarThis}
126
+ * @description Reset the sticky toolbar position based on the editor state.
127
+ */
128
+ _resetSticky(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
129
+ /**
130
+ * @private
131
+ * @this {ToolbarThis}
132
+ * @description Enable sticky toolbar mode and adjust position.
133
+ */
134
+ _onSticky(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>, inlineOffset: any): void;
135
+ /**
136
+ * @private
137
+ * @this {ToolbarThis}
138
+ * @description Get the viewport's top offset.
139
+ * @returns {number}
140
+ */
141
+ __getViewportTop(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): number;
142
+ /**
143
+ * @private
144
+ * @this {ToolbarThis}
145
+ * @description Disable sticky toolbar mode.
146
+ */
147
+ _offSticky(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
148
+ /**
149
+ * @private
150
+ * @this {ToolbarThis}
151
+ * @description Set up responsive behavior for the toolbar buttons.
152
+ */
153
+ _setResponsive(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
154
+ /**
155
+ * @private
156
+ * @this {ToolbarThis}
157
+ * @description Show the balloon toolbar based on the current selection.
158
+ * @param {?Range=} rangeObj - Selection range
159
+ */
160
+ _showBalloon(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>, rangeObj?: (Range | null) | undefined): void;
161
+ /**
162
+ * @private
163
+ * @this {ToolbarThis}
164
+ * @description Adjust the balloon toolbar's position.
165
+ * @param {boolean} positionTop - Whether the toolbar should be positioned above the selection
166
+ * @param {Range} [range] - Selection range
167
+ */
168
+ _setBalloonOffset(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>, positionTop: boolean, range?: Range): void;
169
+ /**
170
+ * @private
171
+ * @this {ToolbarThis}
172
+ * @description Show the inline toolbar mode.
173
+ */
174
+ _showInline(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
175
+ /**
176
+ * @private
177
+ * @this {ToolbarThis}
178
+ * @description Show a more options layer for toolbar buttons.
179
+ * @param {Node} button - Button element
180
+ * @param {Node} layer - More options layer element
181
+ */
182
+ _moreLayerOn(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>, button: Node, layer: Node): void;
183
+ /**
184
+ * @private
185
+ * @this {ToolbarThis}
186
+ * @description Hide the currently active more options layer.
187
+ */
188
+ _moreLayerOff(this: Omit<Toolbar & Partial<import('../../editorInjector').default>, 'subToolbar' | 'toolbar'>): void;
189
+ }
@@ -0,0 +1,144 @@
1
+ export default UI;
2
+ export type UIThis = Omit<UI & Partial<__se__EditorInjector>, 'ui'>;
3
+ /**
4
+ * @typedef {Omit<UI & Partial<__se__EditorInjector>, 'ui'>} UIThis
5
+ */
6
+ /**
7
+ * @constructor
8
+ * @this {UIThis}
9
+ * @description The UI class is a class that handles operations related to the user interface of SunEditor.
10
+ * - This class sets the editor's style, theme, editor mode, etc., and controls the state of various UI elements.
11
+ * @param {__se__EditorCore} editor - The root editor instance
12
+ */
13
+ declare function UI(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, editor: __se__EditorCore): void;
14
+ declare class UI {
15
+ /**
16
+ * @typedef {Omit<UI & Partial<__se__EditorInjector>, 'ui'>} UIThis
17
+ */
18
+ /**
19
+ * @constructor
20
+ * @this {UIThis}
21
+ * @description The UI class is a class that handles operations related to the user interface of SunEditor.
22
+ * - This class sets the editor's style, theme, editor mode, etc., and controls the state of various UI elements.
23
+ * @param {__se__EditorCore} editor - The root editor instance
24
+ */
25
+ constructor(editor: __se__EditorCore);
26
+ noticeModal: Modal;
27
+ noticeMessage: HTMLSpanElement;
28
+ _backWrapper: HTMLElement;
29
+ _controllerOnBtnDisabled: boolean;
30
+ /**
31
+ * @this {UIThis}
32
+ * @description Set "options.get('editorStyle')" style.
33
+ * - Define the style of the edit area
34
+ * - It can also be defined with the "setOptions" method, but the "setEditorStyle" method does not render the editor again.
35
+ * @param {string} style Style string
36
+ * @param {__se__FrameContext|null} fc Frame context
37
+ */
38
+ setEditorStyle(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, style: string, fc: __se__FrameContext | null): void;
39
+ /**
40
+ * @this {UIThis}
41
+ * @description Set the theme to the editor
42
+ * @param {string} theme Theme name
43
+ */
44
+ setTheme(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, theme: string): void;
45
+ /**
46
+ * @this {UIThis}
47
+ * @description Switch to or off "ReadOnly" mode.
48
+ * @param {boolean} value "readOnly" boolean value.
49
+ * @param {string|undefined} rootKey Root key
50
+ */
51
+ readOnly(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, value: boolean, rootKey: string | undefined): void;
52
+ /**
53
+ * @this {UIThis}
54
+ * @description Disable the suneditor
55
+ * @param {string|undefined} rootKey Root key
56
+ */
57
+ disable(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, rootKey: string | undefined): void;
58
+ /**
59
+ * @this {UIThis}
60
+ * @description Enable the suneditor
61
+ * @param {string|undefined} rootKey Root key
62
+ */
63
+ enable(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, rootKey: string | undefined): void;
64
+ /**
65
+ * @this {UIThis}
66
+ * @description Show the suneditor
67
+ * @param {string|undefined} rootKey Root key
68
+ */
69
+ show(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, rootKey: string | undefined): void;
70
+ /**
71
+ * @this {UIThis}
72
+ * @description Hide the suneditor
73
+ * @param {string|undefined} rootKey Root key
74
+ */
75
+ hide(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, rootKey: string | undefined): void;
76
+ /**
77
+ * @this {UIThis}
78
+ * @description Show loading box
79
+ * @param {string=} rootKey Root key
80
+ */
81
+ showLoading(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, rootKey?: string | undefined): void;
82
+ /**
83
+ * @this {UIThis}
84
+ * @description Hide loading box
85
+ * @param {string=} rootKey Root key
86
+ */
87
+ hideLoading(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, rootKey?: string | undefined): void;
88
+ /**
89
+ * @this {UIThis}
90
+ * @description This method disables or enables the toolbar buttons when the controller is activated or deactivated.
91
+ * - When the controller is activated, the toolbar buttons are disabled; when the controller is deactivated, the buttons are enabled.
92
+ * @param {boolean} active If `true`, the toolbar buttons will be disabled. If `false`, the toolbar buttons will be enabled.
93
+ */
94
+ setControllerOnDisabledButtons(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, active: boolean): void;
95
+ /**
96
+ * @this {UIThis}
97
+ * @description Activate the transparent background "div" so that other elements are not affected during resizing.
98
+ * @param {string} cursor cursor css property
99
+ */
100
+ enableBackWrapper(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, cursor: string): void;
101
+ /**
102
+ * @this {UIThis}
103
+ * @description Disabled background "div"
104
+ */
105
+ disableBackWrapper(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>): void;
106
+ /**
107
+ * @this {UIThis}
108
+ * @description Open the notice panel
109
+ * @param {string} text Notice message
110
+ */
111
+ noticeOpen(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, text: string): void;
112
+ /**
113
+ * @this {UIThis}
114
+ * @description Close the notice panel
115
+ */
116
+ noticeClose(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>): void;
117
+ /**
118
+ * @private
119
+ * @this {UIThis}
120
+ * @description visible controllers
121
+ * @param {boolean} value hidden/show
122
+ * @param {?boolean=} lineBreakShow Line break hidden/show (default: Follows the value "value".)
123
+ */
124
+ _visibleControllers(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>, value: boolean, lineBreakShow?: (boolean | null) | undefined): void;
125
+ /**
126
+ * @private
127
+ * @this {UIThis}
128
+ * @description Off current controllers
129
+ */
130
+ _offCurrentController(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>): void;
131
+ /**
132
+ * @private
133
+ * @this {UIThis}
134
+ * @description Off controllers
135
+ */
136
+ __offControllers(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>): void;
137
+ /**
138
+ * @private
139
+ * @this {UIThis}
140
+ * @description Off current modal
141
+ */
142
+ _offCurrentModal(this: Omit<UI & Partial<import('../../editorInjector').default>, 'ui'>): void;
143
+ }
144
+ import Modal from '../../modules/Modal';
@@ -0,0 +1,140 @@
1
+ export default Viewer;
2
+ export type ViewerThis = Omit<Viewer & Partial<__se__EditorInjector>, 'viewer'>;
3
+ /**
4
+ * @typedef {Omit<Viewer & Partial<__se__EditorInjector>, 'viewer'>} ViewerThis
5
+ */
6
+ /**
7
+ * @constructor
8
+ * @this {ViewerThis}
9
+ * @description Viewer(codeView, fullScreen, showBlocks) class
10
+ * @param {__se__EditorCore} editor - The root editor instance
11
+ */
12
+ declare function Viewer(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, editor: __se__EditorCore): void;
13
+ declare class Viewer {
14
+ /**
15
+ * @typedef {Omit<Viewer & Partial<__se__EditorInjector>, 'viewer'>} ViewerThis
16
+ */
17
+ /**
18
+ * @constructor
19
+ * @this {ViewerThis}
20
+ * @description Viewer(codeView, fullScreen, showBlocks) class
21
+ * @param {__se__EditorCore} editor - The root editor instance
22
+ */
23
+ constructor(editor: __se__EditorCore);
24
+ bodyOverflow: string;
25
+ editorAreaOriginCssText: string;
26
+ wysiwygOriginCssText: string;
27
+ codeWrapperOriginCssText: string;
28
+ codeOriginCssText: string;
29
+ codeNumberOriginCssText: string;
30
+ toolbarOriginCssText: string;
31
+ arrowOriginCssText: string;
32
+ fullScreenInnerHeight: number;
33
+ fullScreenSticky: boolean;
34
+ fullScreenBalloon: boolean;
35
+ fullScreenInline: boolean;
36
+ toolbarParent: any;
37
+ /**
38
+ * @this {ViewerThis}
39
+ * @description Changes to code view or wysiwyg view
40
+ * @param {boolean=} value true/false, If undefined toggle the codeView mode.
41
+ */
42
+ codeView(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, value?: boolean | undefined): void;
43
+ /**
44
+ * @this {ViewerThis}
45
+ * @description Changes to full screen or default screen
46
+ * @param {boolean=} value true/false, If undefined toggle the codeView mode.
47
+ */
48
+ fullScreen(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, value?: boolean | undefined): void;
49
+ _originCssText: any;
50
+ /**
51
+ * @this {ViewerThis}
52
+ * @description Add or remove the class name of "body" so that the code block is visible
53
+ * @param {boolean=} value true/false, If undefined toggle the codeView mode.
54
+ */
55
+ showBlocks(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, value?: boolean | undefined): void;
56
+ /**
57
+ * @private
58
+ * @this {ViewerThis}
59
+ * @description Set the active class to the button of the toolbar
60
+ */
61
+ _setButtonsActive(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>): void;
62
+ /**
63
+ * @this {ViewerThis}
64
+ * @description Prints the current content of the editor.
65
+ */
66
+ print(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>): void;
67
+ /**
68
+ * @this {ViewerThis}
69
+ * @description Open the preview window.
70
+ */
71
+ preview(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>): void;
72
+ /**
73
+ * @private
74
+ * @this {ViewerThis}
75
+ * @description Resets the full-screen height of the editor.
76
+ * - Updates the editor's height dynamically when in full-screen mode.
77
+ */
78
+ _resetFullScreenHeight(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>): boolean;
79
+ /**
80
+ * @private
81
+ * @this {ViewerThis}
82
+ * @description Run CodeMirror Editor
83
+ * @param {"set"|"get"|"readonly"|"refresh"} key method key
84
+ * @param {*} value CodeMirror params
85
+ * @param {string|undefined} rootKey Root key
86
+ */
87
+ _codeMirrorEditor(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, key: 'set' | 'get' | 'readonly' | 'refresh', value: any, rootKey: string | undefined): any;
88
+ /**
89
+ * @private
90
+ * @this {ViewerThis}
91
+ * @description Set method in the code view area
92
+ * @param {string} value HTML string
93
+ */
94
+ _setCodeView(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, value: string): void;
95
+ /**
96
+ * @private
97
+ * @this {ViewerThis}
98
+ * @description Get method in the code view area
99
+ */
100
+ _getCodeView(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>): any;
101
+ /**
102
+ * @private
103
+ * @this {ViewerThis}
104
+ * @description Convert the data of the code view and put it in the WYSIWYG area.
105
+ */
106
+ _setCodeDataToEditor(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>): void;
107
+ /**
108
+ * @private
109
+ * @this {ViewerThis}
110
+ * @description Convert the data of the WYSIWYG area and put it in the code view area.
111
+ */
112
+ _setEditorDataToCodeView(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>): void;
113
+ /**
114
+ * @private
115
+ * @this {ViewerThis}
116
+ * @description Adjusts the height of the code view area.
117
+ * - Ensures the code block auto-resizes based on its content.
118
+ * @param {HTMLElement} code - Code area
119
+ * @param {HTMLTextAreaElement} codeNumbers - Code numbers area
120
+ * @param {boolean} isAuto - Auto height option
121
+ */
122
+ _codeViewAutoHeight(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, code: HTMLElement, codeNumbers: HTMLTextAreaElement, isAuto: boolean): void;
123
+ /**
124
+ * @private
125
+ * @this {ViewerThis}
126
+ * @description Updates the line numbers for the code editor.
127
+ * - Dynamically adjusts line numbers as content grows.
128
+ * @param {HTMLTextAreaElement} lineNumbers - Code numbers area
129
+ * @param {HTMLElement} code - Code area
130
+ */
131
+ _updateLineNumbers(this: Omit<Viewer & Partial<import('../../editorInjector').default>, 'viewer'>, lineNumbers: HTMLTextAreaElement, code: HTMLElement): void;
132
+ /**
133
+ * @private
134
+ * @this {HTMLElement} Code numbers area
135
+ * @description Synchronizes scrolling of line numbers with the code editor.
136
+ * - Keeps the line numbers aligned with the text.
137
+ * @param {HTMLTextAreaElement} codeNumbers - Code numbers textarea
138
+ */
139
+ _scrollLineNumbers(this: HTMLElement, codeNumbers: HTMLTextAreaElement): void;
140
+ }