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,748 @@
1
+ /**
2
+ * @description Create shortcuts desc span.
3
+ * @param {string} command Command string
4
+ * @param {Array<string>} values options.shortcuts[command]
5
+ * @param {Element|null} button Command button element
6
+ * @param {Map<string, *>} keyMap Map to store shortcut key info
7
+ * @param {Array} rc "_reverseCommandArray" option
8
+ * @param {Array} reverseKeys Reverse key array
9
+ */
10
+ export function CreateShortcuts(command: string, button: Element | null, values: Array<string>, keyMap: Map<string, any>, rc: any[], reverseKeys: any[]): void;
11
+ /**
12
+ * @description Initialize options
13
+ * @param {EditorInitOptions} options Configuration options for the editor.
14
+ * @param {Array<{target: Element, key: *, options: EditorFrameOptions}>} editorTargets Target textarea
15
+ * @param {Object<string, *>} plugins Plugins object
16
+ * @returns {{o: Map<string, *>, i: Object<string, string>, l: Object<string, string>, v: string, buttons: Array<string[]|string>, subButtons: Array<string[]|string>, statusbarContainer: Element|null, frameMap: Map<*, *>}}
17
+ * - o: options
18
+ * - i: icons
19
+ * - l: lang
20
+ * - v: value
21
+ * - buttons: Toolbar button list
22
+ * - subButtons: Sub-Toolbar button list
23
+ * - statusbarContainer: statusbar container
24
+ * - frameMap: converted options map
25
+ */
26
+ export function InitOptions(
27
+ options: EditorInitOptions,
28
+ editorTargets: Array<{
29
+ target: Element;
30
+ key: any;
31
+ options: EditorFrameOptions;
32
+ }>,
33
+ plugins: {
34
+ [x: string]: any;
35
+ }
36
+ ): {
37
+ o: Map<string, any>;
38
+ i: {
39
+ [x: string]: string;
40
+ };
41
+ l: {
42
+ [x: string]: string;
43
+ };
44
+ v: string;
45
+ buttons: Array<string[] | string>;
46
+ subButtons: Array<string[] | string>;
47
+ statusbarContainer: Element | null;
48
+ frameMap: Map<any, any>;
49
+ };
50
+ /**
51
+ * @description Create a context object for the editor frame.
52
+ * @param {Map<string, *>} targetOptions - editor.frameOptions
53
+ * @param {HTMLElement} statusbar - statusbar element
54
+ * @returns {{statusbar: HTMLElement, navigation: HTMLElement, charWrapper: HTMLElement, charCounter: HTMLElement}}
55
+ */
56
+ export function CreateStatusbar(
57
+ targetOptions: Map<string, any>,
58
+ statusbar: HTMLElement
59
+ ): {
60
+ statusbar: HTMLElement;
61
+ navigation: HTMLElement;
62
+ charWrapper: HTMLElement;
63
+ charCounter: HTMLElement;
64
+ };
65
+ /**
66
+ * @description Create tooltip HTML
67
+ * @param {string} text Tooltip text
68
+ * @returns {string} Tooltip HTML
69
+ */
70
+ export function CreateTooltipInner(text: string): string;
71
+ /**
72
+ * @description Update a button state, attributes, and icons
73
+ * @param {HTMLElement|null} element Button element
74
+ * @param {Object<string, *>} plugin Plugin
75
+ * @param {Object<string, string>} icons Icons
76
+ * @param {Object<string, string>} lang lang
77
+ */
78
+ export function UpdateButton(
79
+ element: HTMLElement | null,
80
+ plugin: {
81
+ [x: string]: any;
82
+ },
83
+ icons: {
84
+ [x: string]: string;
85
+ },
86
+ lang: {
87
+ [x: string]: string;
88
+ }
89
+ ): void;
90
+ /**
91
+ * @description Create editor HTML
92
+ * @param {Array} buttonList option.buttonList
93
+ * @param {?Object<string, *>} plugins Plugins
94
+ * @param {Map<string, *>} options options
95
+ * @param {Object<string, string>} icons icons
96
+ * @param {Object<string, string>} lang lang
97
+ * @param {boolean} isUpdate Is update
98
+ * @returns {{element: HTMLElement, pluginCallButtons: Object<string, Array<HTMLElement>>, responsiveButtons: Array<HTMLElement>, buttonTray: HTMLElement, updateButtons: Array<{button: HTMLElement, plugin: *, key: string}>}}}
99
+ */
100
+ export function CreateToolBar(
101
+ buttonList: any[],
102
+ plugins: {
103
+ [x: string]: any;
104
+ } | null,
105
+ options: Map<string, any>,
106
+ icons: {
107
+ [x: string]: string;
108
+ },
109
+ lang: {
110
+ [x: string]: string;
111
+ },
112
+ isUpdate: boolean
113
+ ): {
114
+ element: HTMLElement;
115
+ pluginCallButtons: {
116
+ [x: string]: Array<HTMLElement>;
117
+ };
118
+ responsiveButtons: Array<HTMLElement>;
119
+ buttonTray: HTMLElement;
120
+ updateButtons: Array<{
121
+ button: HTMLElement;
122
+ plugin: any;
123
+ key: string;
124
+ }>;
125
+ };
126
+ export const RO_UNAVAILABD: string[];
127
+ export default Constructor;
128
+ export type EditorFrameOptions = {
129
+ /**
130
+ * - Initial value for the editor.
131
+ */
132
+ value?: string;
133
+ /**
134
+ * - Placeholder text.
135
+ */
136
+ placeholder?: string;
137
+ /**
138
+ * - Attributes for the editable frame[.sun-editor-editable]. (e.g. [key]: value)
139
+ */
140
+ editableFrameAttributes?: {
141
+ [x: string]: string;
142
+ };
143
+ /**
144
+ * - Width for the editor.
145
+ */
146
+ width?: string;
147
+ /**
148
+ * - Min width for the editor.
149
+ */
150
+ minWidth?: string;
151
+ /**
152
+ * - Max width for the editor.
153
+ */
154
+ maxWidth?: string;
155
+ /**
156
+ * - Height for the editor.
157
+ */
158
+ height?: string;
159
+ /**
160
+ * - Min height for the editor.
161
+ */
162
+ minHeight?: string;
163
+ /**
164
+ * - Max height for the editor.
165
+ */
166
+ maxHeight?: string;
167
+ /**
168
+ * - Style string of the top frame of the editor. (e.g. "border: 1px solid #ccc;").
169
+ */
170
+ editorStyle?: string;
171
+ /**
172
+ * - Content will be placed in an iframe and isolated from the rest of the page.
173
+ */
174
+ iframe?: boolean;
175
+ /**
176
+ * - Allows the usage of HTML, HEAD, BODY tags and DOCTYPE declaration on the "iframe".
177
+ */
178
+ iframe_fullPage?: boolean;
179
+ /**
180
+ * - Attributes of the "iframe". (e.g. {'scrolling': 'no'})
181
+ */
182
+ iframe_attributes?: {
183
+ [x: string]: string;
184
+ };
185
+ /**
186
+ * - Name or Array of the CSS file to apply inside the iframe.
187
+ * - You can also use regular expressions.
188
+ * - Applied by searching by filename in the link tag of document,
189
+ * - or put the URL value (".css" can be omitted).
190
+ */
191
+ iframe_cssFileName?: string;
192
+ /**
193
+ * - Enables the status bar.
194
+ */
195
+ statusbar?: boolean;
196
+ /**
197
+ * - Displays the current node structure to status bar.
198
+ */
199
+ statusbar_showPathLabel?: boolean;
200
+ /**
201
+ * - Enables resize function of bottom status bar
202
+ */
203
+ statusbar_resizeEnable?: boolean;
204
+ /**
205
+ * - Shows the number of characters in the editor.
206
+ * - If the maxCharCount option has a value, it becomes true.
207
+ */
208
+ charCounter?: boolean;
209
+ /**
210
+ * - The maximum number of characters allowed to be inserted into the editor.
211
+ */
212
+ charCounter_max?: number;
213
+ /**
214
+ * - Text to be displayed in the "charCounter" area of the bottom bar. (e.g. "Characters : 20/200")
215
+ */
216
+ charCounter_label?: string;
217
+ /**
218
+ * - Defines the calculation method of the "charCounter" option.
219
+ * - 'char': Characters length.
220
+ * - 'byte': Binary data size of characters.
221
+ * - 'byte-html': Binary data size of the full HTML string.
222
+ */
223
+ charCounter_type?: 'char' | 'byte' | 'byte-html';
224
+ };
225
+ export type EditorBaseOptions = {
226
+ /**
227
+ * - Plugin configuration.
228
+ */
229
+ plugins?:
230
+ | {
231
+ [x: string]: any;
232
+ }
233
+ | Array<{
234
+ [x: string]: any;
235
+ }>;
236
+ /**
237
+ * - Plugin configuration.
238
+ */
239
+ excludedPlugins?: Array<string>;
240
+ /**
241
+ * - List of toolbar buttons, grouped by sub-arrays.
242
+ */
243
+ buttonList?: Array<string[] | string>;
244
+ /**
245
+ * - Enables migration mode for SunEditor v2.
246
+ */
247
+ v2Migration?: boolean;
248
+ /**
249
+ * - Enables strict filtering of tags, attributes, and styles.
250
+ */
251
+ strictMode?:
252
+ | boolean
253
+ | {
254
+ tagFilter: boolean;
255
+ formatFilter: boolean;
256
+ classFilter: boolean;
257
+ styleNodeFilter: boolean;
258
+ attrFilter: boolean;
259
+ styleFilter: boolean;
260
+ };
261
+ /**
262
+ * - Toolbar mode: "classic", "inline", "balloon", "balloon-always".
263
+ */
264
+ mode?: 'classic' | 'inline' | 'balloon' | 'balloon-always';
265
+ /**
266
+ * - Editor type: "document:header,page".
267
+ */
268
+ type?: string;
269
+ /**
270
+ * - Editor theme.
271
+ */
272
+ theme?: string;
273
+ /**
274
+ * - Language configuration.
275
+ */
276
+ lang?: {
277
+ [x: string]: string;
278
+ };
279
+ /**
280
+ * - Allowed font size units.
281
+ */
282
+ fontSizeUnits?: Array<string>;
283
+ /**
284
+ * - Allowed class names.
285
+ */
286
+ allowedClassName?: string;
287
+ /**
288
+ * - Closes modals when clicking outside.
289
+ */
290
+ closeModalOutsideClick?: boolean;
291
+ /**
292
+ * - Keeps the format of the copied content.
293
+ */
294
+ copyFormatKeepOn?: boolean;
295
+ /**
296
+ * - Synchronizes tab indent with spaces.
297
+ */
298
+ syncTabIndent?: boolean;
299
+ /**
300
+ * - Disables tab key input.
301
+ */
302
+ tabDisable?: boolean;
303
+ /**
304
+ * - Automatically converts URLs into hyperlinks. ("Link" plugin required)
305
+ */
306
+ autoLinkify?: boolean;
307
+ /**
308
+ * - Styles applied automatically on text input.
309
+ */
310
+ autoStyleify?: Array<string>;
311
+ /**
312
+ * - Configuration for scroll behavior when navigating editor content.
313
+ */
314
+ scrollToOptions?: {
315
+ [x: string]: string | number;
316
+ };
317
+ /**
318
+ * - Configuration for scroll behavior when navigating components.
319
+ */
320
+ componentScrollToOptions?: {
321
+ [x: string]: string | number;
322
+ };
323
+ /**
324
+ * - This option determines how inline elements (such as <span>, <strong>, etc.) are handled when deleting text.
325
+ * - "repeat": Inline styles are retained unless the backspace key is repeatedly pressed. If the user continuously presses backspace, the styles will eventually be removed.
326
+ * - "none": Inline styles are not retained at all. When deleting text, the associated inline elements are immediately removed along with it.
327
+ * - "always": Inline styles persist indefinitely unless explicitly removed. Even if all text inside an inline element is deleted, the element itself remains until manually removed.
328
+ */
329
+ retainStyleMode?: 'repeat' | 'always' | 'none';
330
+ /**
331
+ * - Specifies extra allowed or disallowed tags.
332
+ */
333
+ allowedExtraTags?: {
334
+ [x: string]: boolean;
335
+ };
336
+ /**
337
+ * - Custom event handlers.
338
+ */
339
+ events?: {
340
+ [x: string]: (...args: any) => any;
341
+ };
342
+ /**
343
+ * - The basic tags that serves as the base for "textStyleTags"
344
+ */
345
+ __textStyleTags?: string;
346
+ /**
347
+ * - Additional text style tags.
348
+ */
349
+ textStyleTags?: string;
350
+ /**
351
+ * - Maps text styles to specific HTML tags.
352
+ */
353
+ convertTextTags?: {
354
+ [x: string]: string;
355
+ };
356
+ /**
357
+ * - The basic tags that serves as the base for "tagStyles"
358
+ */
359
+ __tagStyles?: {
360
+ [x: string]: string;
361
+ };
362
+ /**
363
+ * - Specifies allowed styles for HTML tags.
364
+ */
365
+ tagStyles?: {
366
+ [x: string]: string;
367
+ };
368
+ /**
369
+ * - Specifies allowed styles for the "span" tag.
370
+ */
371
+ spanStyles?: string;
372
+ /**
373
+ * - Specifies allowed styles for the "line" element (p..).
374
+ */
375
+ lineStyles?: string;
376
+ /**
377
+ * - Text direction: "ltr" or "rtl".
378
+ */
379
+ textDirection?: string;
380
+ /**
381
+ * - An array of command pairs whose shortcut icons should be opposite each other, depending on the "textDirection" mode.
382
+ */
383
+ reverseButtons?: Array<string>;
384
+ /**
385
+ * - Delay time for history stack updates (ms).
386
+ */
387
+ historyStackDelayTime?: number;
388
+ /**
389
+ * - Line properties that should be reset when changing lines (e.g. "id|name").
390
+ */
391
+ lineAttrReset?: string;
392
+ /**
393
+ * - Class name for printing.
394
+ */
395
+ printClass?: string;
396
+ /**
397
+ * - Default line element when inserting new lines.
398
+ */
399
+ defaultLine?: string;
400
+ /**
401
+ * - Default allowed HTML elements. The default values are maintained.
402
+ */
403
+ __defaultElementWhitelist?: string;
404
+ /**
405
+ * - Allowed HTML elements. Delimiter: "|" (e.g. "p|div", "*").
406
+ */
407
+ elementWhitelist?: string;
408
+ /**
409
+ * - Disallowed HTML elements. Delimiter: "|" (e.g. "script|style").
410
+ */
411
+ elementBlacklist?: string;
412
+ /**
413
+ * - Allowed attributes. Delimiter: "|" (e.g. "href|target").
414
+ */
415
+ __defaultAttributeWhitelist?: string;
416
+ /**
417
+ * - Allowed attributes. (e.g. {a: "href|target", img: "src|alt"}).
418
+ */
419
+ attributeWhitelist?: {
420
+ [x: string]: string;
421
+ };
422
+ /**
423
+ * - Disallowed attributes. (e.g. {a: "href|target", img: "src|alt"}).
424
+ */
425
+ attributeBlacklist?: {
426
+ [x: string]: string;
427
+ };
428
+ /**
429
+ * - Overrides the editor's default "line" element.
430
+ */
431
+ __defaultFormatLine?: string;
432
+ /**
433
+ * - Specifies the editor's "line" elements.
434
+ * - (P, DIV, H[1-6], PRE, LI | class="__se__format__line_xxx")
435
+ * - "line" element also contain "brLine" element
436
+ */
437
+ formatLine?: string;
438
+ /**
439
+ * - Overrides the editor's default "brLine" element.
440
+ */
441
+ __defaultFormatBrLine?: string;
442
+ /**
443
+ * - Specifies the editor's "brLine" elements. (e.g. "PRE").
444
+ * - (PRE | class="__se__format__br_line_xxx")
445
+ * - "brLine" elements is included in the "line" element.
446
+ * - "brLine" elements's line break is "BR" tag.
447
+ * ※ Entering the Enter key in the space on the last line ends "brLine" and appends "line".
448
+ */
449
+ formatBrLine?: string;
450
+ /**
451
+ * - Overrides the editor's default "closureBrLine" element.
452
+ */
453
+ __defaultFormatClosureBrLine?: string;
454
+ /**
455
+ * - Specifies the editor's "closureBrLine" elements.
456
+ * - (class="__se__format__br_line__closure_xxx")
457
+ * - "closureBrLine" elements is included in the "brLine".
458
+ * - "closureBrLine" elements's line break is "BR" tag.
459
+ * - ※ You cannot exit this format with the Enter key or Backspace key.
460
+ * - ※ Use it only in special cases. ([ex] format of table cells)
461
+ */
462
+ formatClosureBrLine?: string;
463
+ /**
464
+ * - Overrides the editor's default "block" element.
465
+ */
466
+ __defaultFormatBlock?: string;
467
+ /**
468
+ * - Specifies the editor's "block" elements.
469
+ * - (BLOCKQUOTE, OL, UL, FIGCAPTION, TABLE, THEAD, TBODY, TR, TH, TD | class="__se__format__block_xxx")
470
+ * - "block" is wrap the "line" and "component"
471
+ */
472
+ formatBlock?: string;
473
+ /**
474
+ * - Overrides the editor's default "closureBlock" element.
475
+ */
476
+ __defaultFormatClosureBlock?: string;
477
+ /**
478
+ * - Specifies the editor's "closureBlock" elements.
479
+ * - (TH, TD | class="__se__format__block_closure_xxx")
480
+ * - "closureBlock" elements is included in the "block".
481
+ * - "closureBlock" element is wrap the "line" and "component"
482
+ * - ※ You cannot exit this format with the Enter key or Backspace key.
483
+ * - ※ Use it only in special cases. ([ex] format of table cells)
484
+ */
485
+ formatClosureBlock?: string;
486
+ /**
487
+ * - Allowed empty tags.
488
+ */
489
+ allowedEmptyTags?: string;
490
+ /**
491
+ * - Toolbar width.
492
+ */
493
+ toolbar_width?: number | string;
494
+ /**
495
+ * - Container element for the toolbar.
496
+ */
497
+ toolbar_container?: Element | string;
498
+ /**
499
+ * - Enables sticky toolbar with optional offset.
500
+ */
501
+ toolbar_sticky?: number;
502
+ /**
503
+ * - Hides toolbar initially.
504
+ */
505
+ toolbar_hide?: boolean;
506
+ /**
507
+ * - Sub-toolbar configuration.
508
+ */
509
+ subToolbar?: {
510
+ buttonList?: Array<Array<string>>;
511
+ mode?: 'balloon' | 'balloon-always';
512
+ width?: number | string;
513
+ };
514
+ /**
515
+ * - Container element for the status bar.
516
+ */
517
+ statusbar_container?: Element | string;
518
+ /**
519
+ * - Displays shortcut hints in tooltips.
520
+ */
521
+ shortcutsHint?: boolean;
522
+ /**
523
+ * - Disables keyboard shortcuts.
524
+ */
525
+ shortcutsDisable?: boolean;
526
+ /**
527
+ * - Custom keyboard shortcuts.
528
+ */
529
+ shortcuts?: {
530
+ [x: string]: string[];
531
+ };
532
+ /**
533
+ * - Offset applied when entering fullscreen mode.
534
+ */
535
+ fullScreenOffset?: number;
536
+ /**
537
+ * - Custom template for preview mode.
538
+ */
539
+ previewTemplate?: string;
540
+ /**
541
+ * - Custom template for print mode.
542
+ */
543
+ printTemplate?: string;
544
+ /**
545
+ * - Enables automatic selection of inserted components.
546
+ */
547
+ componentAutoSelect?: boolean;
548
+ /**
549
+ * - Default URL protocol for links.
550
+ */
551
+ defaultUrlProtocol?: string;
552
+ /**
553
+ * - Specifies additional styles to the list of allowed styles. Delimiter: "|" (e.g. "color|background-color").
554
+ */
555
+ allUsedStyles?: string;
556
+ /**
557
+ * - Overrides the default icons.
558
+ */
559
+ icons?: {
560
+ [x: string]: string;
561
+ };
562
+ /**
563
+ * - Enables free code view mode.
564
+ */
565
+ freeCodeViewMode?: string;
566
+ /**
567
+ * - Line format filter configuration.
568
+ */
569
+ __lineFormatFilter?: boolean;
570
+ /**
571
+ * - Plugin retain filter configuration.
572
+ */
573
+ __pluginRetainFilter?: boolean;
574
+ /**
575
+ * - Defines the list of styles that are applied directly to the `<li>` element
576
+ * - when a text style is applied to the entire list item.
577
+ * - For example, when changing the font size or color of a list item (`<li>`),
578
+ * - these styles will be applied to the `<li>` tag instead of wrapping the content inside additional tags.
579
+ */
580
+ __listCommonStyle?: Array<string>;
581
+ /**
582
+ * - External libraries like CodeMirror or MathJax.
583
+ */
584
+ externalLibs?: {
585
+ [x: string]: any;
586
+ };
587
+ /**
588
+ * - Dynamic plugin options, where the key is the plugin name and the value is its configuration.
589
+ */
590
+ PluginOptions?: {
591
+ [x: string]: any;
592
+ };
593
+ };
594
+ export type EditorInitOptions = EditorBaseOptions & EditorFrameOptions;
595
+ /**
596
+ * @typedef {Object} EditorFrameOptions
597
+ * @property {string} [value=""] - Initial value for the editor.
598
+ * @property {string} [placeholder=""] - Placeholder text.
599
+ * @property {Object<string, string>} [editableFrameAttributes={}] - Attributes for the editable frame[.sun-editor-editable]. (e.g. [key]: value)
600
+ * @property {string} [width="100%"] - Width for the editor.
601
+ * @property {string} [minWidth=""] - Min width for the editor.
602
+ * @property {string} [maxWidth=""] - Max width for the editor.
603
+ * @property {string} [height="auto"] - Height for the editor.
604
+ * @property {string} [minHeight=""] - Min height for the editor.
605
+ * @property {string} [maxHeight=""] - Max height for the editor.
606
+ * @property {string} [editorStyle=""] - Style string of the top frame of the editor. (e.g. "border: 1px solid #ccc;").
607
+ * @property {boolean} [iframe=false] - Content will be placed in an iframe and isolated from the rest of the page.
608
+ * @property {boolean} [iframe_fullPage=false] - Allows the usage of HTML, HEAD, BODY tags and DOCTYPE declaration on the "iframe".
609
+ * @property {Object<string, string>} [iframe_attributes={}] - Attributes of the "iframe". (e.g. {'scrolling': 'no'})
610
+ * @property {string} [iframe_cssFileName="suneditor"] - Name or Array of the CSS file to apply inside the iframe.
611
+ * - You can also use regular expressions.
612
+ * - Applied by searching by filename in the link tag of document,
613
+ * - or put the URL value (".css" can be omitted).
614
+ * @property {boolean} [statusbar=true] - Enables the status bar.
615
+ * @property {boolean} [statusbar_showPathLabel=true] - Displays the current node structure to status bar.
616
+ * @property {boolean} [statusbar_resizeEnable=true] - Enables resize function of bottom status bar
617
+ * @property {boolean} [charCounter=false] - Shows the number of characters in the editor.
618
+ * - If the maxCharCount option has a value, it becomes true.
619
+ * @property {number} [charCounter_max] - The maximum number of characters allowed to be inserted into the editor.
620
+ * @property {string} [charCounter_label] - Text to be displayed in the "charCounter" area of the bottom bar. (e.g. "Characters : 20/200")
621
+ * @property {"char"|"byte"|"byte-html"} [charCounter_type="char"] - Defines the calculation method of the "charCounter" option.
622
+ * - 'char': Characters length.
623
+ * - 'byte': Binary data size of characters.
624
+ * - 'byte-html': Binary data size of the full HTML string.
625
+ */
626
+ /**
627
+ * @typedef {Object} EditorBaseOptions
628
+ * @property {Object<string, *>|Array<Object<string, *>>} [plugins] - Plugin configuration.
629
+ * @property {Array<string>} [excludedPlugins] - Plugin configuration.
630
+ * @property {Array<string[]|string>} [buttonList] - List of toolbar buttons, grouped by sub-arrays.
631
+ * @property {boolean} [v2Migration=false] - Enables migration mode for SunEditor v2.
632
+ * @property {boolean|{tagFilter: boolean, formatFilter: boolean, classFilter: boolean, styleNodeFilter: boolean, attrFilter: boolean, styleFilter: boolean}} [strictMode=true] - Enables strict filtering of tags, attributes, and styles.
633
+ * @property {"classic"|"inline"|"balloon"|"balloon-always"} [mode="classic"] - Toolbar mode: "classic", "inline", "balloon", "balloon-always".
634
+ * @property {string} [type=""] - Editor type: "document:header,page".
635
+ * @property {string} [theme=""] - Editor theme.
636
+ * @property {Object<string, string>} [lang] - Language configuration.
637
+ * @property {Array<string>} [fontSizeUnits=["px", "pt", "em", "rem"]] - Allowed font size units.
638
+ * @property {string} [allowedClassName] - Allowed class names.
639
+ * @property {boolean} [closeModalOutsideClick=false] - Closes modals when clicking outside.
640
+ * @property {boolean} [copyFormatKeepOn=false] - Keeps the format of the copied content.
641
+ * @property {boolean} [syncTabIndent=true] - Synchronizes tab indent with spaces.
642
+ * @property {boolean} [tabDisable=false] - Disables tab key input.
643
+ * @property {boolean} [autoLinkify] - Automatically converts URLs into hyperlinks. ("Link" plugin required)
644
+ * @property {Array<string>} [autoStyleify=["bold", "underline", "italic", "strike"]] - Styles applied automatically on text input.
645
+ * @property {Object<string, string|number>} [scrollToOptions={behavior: "auto", block: "nearest"}] - Configuration for scroll behavior when navigating editor content.
646
+ * @property {Object<string, string|number>} [componentScrollToOptions={behavior: "smooth", block: "center"}] - Configuration for scroll behavior when navigating components.
647
+ * @property {"repeat"|"always"|"none"} [retainStyleMode="repeat"] - This option determines how inline elements (such as <span>, <strong>, etc.) are handled when deleting text.
648
+ * - "repeat": Inline styles are retained unless the backspace key is repeatedly pressed. If the user continuously presses backspace, the styles will eventually be removed.
649
+ * - "none": Inline styles are not retained at all. When deleting text, the associated inline elements are immediately removed along with it.
650
+ * - "always": Inline styles persist indefinitely unless explicitly removed. Even if all text inside an inline element is deleted, the element itself remains until manually removed.
651
+ * @property {Object<string, boolean>} [allowedExtraTags={script: false, style: false, meta: false, link: false, "[a-z]+:[a-z]+": false}] - Specifies extra allowed or disallowed tags.
652
+ * @property {Object<string, (...args: *) => *>} [events={}] - Custom event handlers.
653
+ * @property {string} [__textStyleTags="strong|span|font|b|var|i|em|u|ins|s|strike|del|sub|sup|mark|a|label|code|summary"] - The basic tags that serves as the base for "textStyleTags"
654
+ * @property {string} [textStyleTags="strong|span|font|b|var|i|em|u|ins|s|strike|del|sub|sup|mark|a|label|code|summary"] - Additional text style tags.
655
+ * @property {Object<string, string>} [convertTextTags={bold: "strong", underline: "u", italic: "em", strike: "del", subscript: "sub", superscript: "sup"}] - Maps text styles to specific HTML tags.
656
+ * @property {Object<string, string>} [__tagStyles={'table|th|td': 'border|border-[a-z]+|background-color|text-align|float|font-weight|text-decoration|font-style', 'ol|ul': 'list-style-type'}] - The basic tags that serves as the base for "tagStyles"
657
+ * @property {Object<string, string>} [tagStyles={}] - Specifies allowed styles for HTML tags.
658
+ * @property {string} [spanStyles="font-family|font-size|color|background-color"] - Specifies allowed styles for the "span" tag.
659
+ * @property {string} [lineStyles="text-align|margin-left|margin-right|line-height"] - Specifies allowed styles for the "line" element (p..).
660
+ * @property {string} [textDirection="ltr"] - Text direction: "ltr" or "rtl".
661
+ * @property {Array<string>} [reverseButtons=['indent-outdent']] - An array of command pairs whose shortcut icons should be opposite each other, depending on the "textDirection" mode.
662
+ * @property {number} [historyStackDelayTime=400] - Delay time for history stack updates (ms).
663
+ * @property {string} [lineAttrReset=""] - Line properties that should be reset when changing lines (e.g. "id|name").
664
+ * @property {string} [printClass=""] - Class name for printing.
665
+ * @property {string} [defaultLine="p"] - Default line element when inserting new lines.
666
+ * @property {string} [__defaultElementWhitelist="br|div"] - Default allowed HTML elements. The default values are maintained.
667
+ * @property {string} [elementWhitelist=""] - Allowed HTML elements. Delimiter: "|" (e.g. "p|div", "*").
668
+ * @property {string} [elementBlacklist=""] - Disallowed HTML elements. Delimiter: "|" (e.g. "script|style").
669
+ * @property {string} [__defaultAttributeWhitelist] - Allowed attributes. Delimiter: "|" (e.g. "href|target").
670
+ * @property {Object<string, string>} [attributeWhitelist=""] - Allowed attributes. (e.g. {a: "href|target", img: "src|alt"}).
671
+ * @property {Object<string, string>} [attributeBlacklist=""] - Disallowed attributes. (e.g. {a: "href|target", img: "src|alt"}).
672
+ * @property {string} [__defaultFormatLine="P|DIV|H[1-6]|LI|TH|TD|DETAILS"] - Overrides the editor's default "line" element.
673
+ * @property {string} [formatLine="P|DIV|H[1-6]|LI|TH|TD|DETAILS"] - Specifies the editor's "line" elements.
674
+ * - (P, DIV, H[1-6], PRE, LI | class="__se__format__line_xxx")
675
+ * - "line" element also contain "brLine" element
676
+ * @property {string} [__defaultFormatBrLine="PRE"] - Overrides the editor's default "brLine" element.
677
+ * @property {string} [formatBrLine="PRE"] - Specifies the editor's "brLine" elements. (e.g. "PRE").
678
+ * - (PRE | class="__se__format__br_line_xxx")
679
+ * - "brLine" elements is included in the "line" element.
680
+ * - "brLine" elements's line break is "BR" tag.
681
+ * ※ Entering the Enter key in the space on the last line ends "brLine" and appends "line".
682
+ * @property {string} [__defaultFormatClosureBrLine=""] - Overrides the editor's default "closureBrLine" element.
683
+ * @property {string} [formatClosureBrLine=""] - Specifies the editor's "closureBrLine" elements.
684
+ * - (class="__se__format__br_line__closure_xxx")
685
+ * - "closureBrLine" elements is included in the "brLine".
686
+ * - "closureBrLine" elements's line break is "BR" tag.
687
+ * - ※ You cannot exit this format with the Enter key or Backspace key.
688
+ * - ※ Use it only in special cases. ([ex] format of table cells)
689
+ * @property {string} [__defaultFormatBlock="BLOCKQUOTE|OL|UL|FIGCAPTION|TABLE|THEAD|TBODY|TR|CAPTION|DETAILS"] - Overrides the editor's default "block" element.
690
+ * @property {string} [formatBlock="BLOCKQUOTE|OL|UL|FIGCAPTION|TABLE|THEAD|TBODY|TR|CAPTION|DETAILS"] - Specifies the editor's "block" elements.
691
+ * - (BLOCKQUOTE, OL, UL, FIGCAPTION, TABLE, THEAD, TBODY, TR, TH, TD | class="__se__format__block_xxx")
692
+ * - "block" is wrap the "line" and "component"
693
+ * @property {string} [__defaultFormatClosureBlock="TH|TD"] - Overrides the editor's default "closureBlock" element.
694
+ * @property {string} [formatClosureBlock="TH|TD"] - Specifies the editor's "closureBlock" elements.
695
+ * - (TH, TD | class="__se__format__block_closure_xxx")
696
+ * - "closureBlock" elements is included in the "block".
697
+ * - "closureBlock" element is wrap the "line" and "component"
698
+ * - ※ You cannot exit this format with the Enter key or Backspace key.
699
+ * - ※ Use it only in special cases. ([ex] format of table cells)
700
+ * @property {string} [allowedEmptyTags=".se-component, pre, blockquote, hr, li, table, img, iframe, video, audio, canvas, details"] - Allowed empty tags.
701
+ * @property {number|string} [toolbar_width="auto"] - Toolbar width.
702
+ * @property {Element|string} [toolbar_container] - Container element for the toolbar.
703
+ * @property {number} [toolbar_sticky=0] - Enables sticky toolbar with optional offset.
704
+ * @property {boolean} [toolbar_hide=false] - Hides toolbar initially.
705
+ * @property {Object} [subToolbar] - Sub-toolbar configuration.
706
+ * @property {Array<Array<string>>} [subToolbar.buttonList] - List of Sub-toolbar buttons, grouped by sub-arrays.
707
+ * @property {"balloon"|"balloon-always"} [subToolbar.mode="balloon"] - Sub-toolbar mode: "balloon", "balloon-always".
708
+ * @property {number|string} [subToolbar.width="auto"] - Sub-toolbar width.
709
+ * @property {Element|string} [statusbar_container] - Container element for the status bar.
710
+ * @property {boolean} [shortcutsHint=true] - Displays shortcut hints in tooltips.
711
+ * @property {boolean} [shortcutsDisable=false] - Disables keyboard shortcuts.
712
+ * @property {Object<string, Array<string>>} [shortcuts] - Custom keyboard shortcuts.
713
+ * @property {number} [fullScreenOffset=0] - Offset applied when entering fullscreen mode.
714
+ * @property {string} [previewTemplate] - Custom template for preview mode.
715
+ * @property {string} [printTemplate] - Custom template for print mode.
716
+ * @property {boolean} [componentAutoSelect=false] - Enables automatic selection of inserted components.
717
+ * @property {string} [defaultUrlProtocol] - Default URL protocol for links.
718
+ * @property {string} [allUsedStyles] - Specifies additional styles to the list of allowed styles. Delimiter: "|" (e.g. "color|background-color").
719
+ * @property {Object<string, string>} [icons] - Overrides the default icons.
720
+ * @property {string} [freeCodeViewMode=false] - Enables free code view mode.
721
+ * @property {boolean} [__lineFormatFilter=true] - Line format filter configuration.
722
+ * @property {boolean} [__pluginRetainFilter=true] - Plugin retain filter configuration.
723
+ * @property {Array<string>} [__listCommonStyle=["fontSize", "color", "fontFamily", "fontWeight", "fontStyle"]] - Defines the list of styles that are applied directly to the `<li>` element
724
+ * - when a text style is applied to the entire list item.
725
+ * - For example, when changing the font size or color of a list item (`<li>`),
726
+ * - these styles will be applied to the `<li>` tag instead of wrapping the content inside additional tags.
727
+ * @property {Object<string, *>} [externalLibs] - External libraries like CodeMirror or MathJax.
728
+ * @property {Object<string, *>} [PluginOptions] - Dynamic plugin options, where the key is the plugin name and the value is its configuration.
729
+ */
730
+ /**
731
+ * @typedef {EditorBaseOptions & EditorFrameOptions} EditorInitOptions
732
+ */
733
+ /**
734
+ * @description Creates a new SunEditor instance with specified options.
735
+ * @param {Array<{target: Element, key: *, options: EditorFrameOptions}>} editorTargets - Target element or multi-root object.
736
+ * @param {EditorInitOptions} options - Configuration options for the editor.
737
+ * @returns {Object<string, *>} - SunEditor instance with context, options, and DOM elements.
738
+ */
739
+ declare function Constructor(
740
+ editorTargets: Array<{
741
+ target: Element;
742
+ key: any;
743
+ options: EditorFrameOptions;
744
+ }>,
745
+ options: EditorInitOptions
746
+ ): {
747
+ [x: string]: any;
748
+ };