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,297 @@
1
+ declare namespace _default {
2
+ let onload: any;
3
+ let onScroll: any;
4
+ let onMouseDown: any;
5
+ let onClick: any;
6
+ let onInput: any;
7
+ let onMouseLeave: any;
8
+ let onKeyDown: any;
9
+ let onKeyUp: any;
10
+ let onFocus: any;
11
+ let onBlur: any;
12
+ let onCopy: any;
13
+ let onCut: any;
14
+ let onChange: any;
15
+ let onShowToolbar: any;
16
+ let onShowController: any;
17
+ let onBeforeShowController: any;
18
+ let onToggleCodeView: any;
19
+ let onToggleFullScreen: any;
20
+ let onResizeEditor: any;
21
+ let onSetToolbarButtons: any;
22
+ let onSave: any;
23
+ let onDrop: any;
24
+ let onPaste: any;
25
+ let imageUploadHandler: any;
26
+ let onImageUploadBefore: any;
27
+ let onImageLoad: any;
28
+ let onImageAction: any;
29
+ let onImageUploadError: any;
30
+ let onImageDeleteBefore: any;
31
+ let videoUploadHandler: any;
32
+ let onVideoUploadBefore: any;
33
+ let onVideoLoad: any;
34
+ let onVideoAction: any;
35
+ let onVideoUploadError: any;
36
+ let onVideoDeleteBefore: any;
37
+ let audioUploadHandler: any;
38
+ let onAudioUploadBefore: any;
39
+ let onAudioUploadError: any;
40
+ let onAudioLoad: any;
41
+ let onAudioAction: any;
42
+ let onAudioDeleteBefore: any;
43
+ let onFileUploadBefore: any;
44
+ let onFileLoad: any;
45
+ let onFileAction: any;
46
+ let onFileUploadError: any;
47
+ let onFileDeleteBefore: any;
48
+ let onExportPDFBefore: any;
49
+ let onFileManagerAction: any;
50
+ let onEmbedInputBefore: any;
51
+ }
52
+ export default _default;
53
+ export type ControllerInstance = import('../../modules/Controller').default;
54
+ export type BaseEvent = {
55
+ /**
56
+ * - The root editor instance
57
+ */
58
+ editor: __se__EditorCore;
59
+ /**
60
+ * - frame context
61
+ */
62
+ frameContext: __se__FrameContext;
63
+ /**
64
+ * - event object
65
+ */
66
+ event: Event;
67
+ };
68
+ export type ClipboardEvent = {
69
+ /**
70
+ * - The root editor instance
71
+ */
72
+ editor: __se__EditorCore;
73
+ /**
74
+ * - frame context
75
+ */
76
+ frameContext: __se__FrameContext;
77
+ /**
78
+ * - event object
79
+ */
80
+ event: Event;
81
+ /**
82
+ * - drop data
83
+ */
84
+ data: string;
85
+ /**
86
+ * - is max char count
87
+ */
88
+ maxCharCount: boolean;
89
+ /**
90
+ * - "SE"|"MS"|"" - source
91
+ */
92
+ from: string;
93
+ };
94
+ export type ControllerInfo = {
95
+ /**
96
+ * - controller position
97
+ */
98
+ position: 'top' | 'bottom' | 'position';
99
+ /**
100
+ * - controller instance
101
+ */
102
+ inst: ControllerInstance;
103
+ /**
104
+ * - controller element
105
+ */
106
+ form: HTMLElement;
107
+ /**
108
+ * - controller target element
109
+ */
110
+ target: HTMLElement;
111
+ /**
112
+ * - If the target is a Range, set it to true.
113
+ */
114
+ isRangeTarget: boolean;
115
+ /**
116
+ * - "form"" is not included in the carrier.
117
+ */
118
+ notInCarrier: boolean;
119
+ };
120
+ export type FileManagementInfo = {
121
+ /**
122
+ * - source URL of the image.
123
+ */
124
+ src: string;
125
+ /**
126
+ * - index of the image.
127
+ */
128
+ index: number;
129
+ /**
130
+ * - name of the file.
131
+ */
132
+ name: string;
133
+ /**
134
+ * - size of the file in bytes.
135
+ */
136
+ size: number;
137
+ /**
138
+ * - target element.
139
+ */
140
+ element: HTMLElement;
141
+ /**
142
+ * - delete function.
143
+ */
144
+ delete: () => void;
145
+ /**
146
+ * - select function.
147
+ */
148
+ select: () => void;
149
+ };
150
+ export type ProcessInfo = {
151
+ /**
152
+ * - origin url
153
+ */
154
+ origin: string;
155
+ /**
156
+ * - url
157
+ */
158
+ url: string;
159
+ /**
160
+ * - tag name
161
+ */
162
+ tag: 'video' | 'iframe';
163
+ /**
164
+ * - embed children tags
165
+ */
166
+ children: HTMLCollection | null;
167
+ };
168
+ export type ImageInfo = {
169
+ /**
170
+ * - FileList object
171
+ */
172
+ files: FileList;
173
+ /**
174
+ * - target element
175
+ */
176
+ element: HTMLImageElement;
177
+ /**
178
+ * - width value
179
+ */
180
+ inputWidth: string;
181
+ /**
182
+ * - height value
183
+ */
184
+ inputHeight: string;
185
+ /**
186
+ * - align value
187
+ */
188
+ align: string;
189
+ /**
190
+ * - new create or update
191
+ */
192
+ isUpdate: boolean;
193
+ /**
194
+ * - Anchor element, if it exists
195
+ */
196
+ anchor: HTMLElement | null;
197
+ /**
198
+ * - alt text value
199
+ */
200
+ alt: string;
201
+ };
202
+ export type VideoInfo = {
203
+ /**
204
+ * - FileList object
205
+ */
206
+ files: FileList;
207
+ /**
208
+ * - target element
209
+ */
210
+ element: HTMLIFrameElement | HTMLVideoElement;
211
+ /**
212
+ * - width value
213
+ */
214
+ inputWidth: string;
215
+ /**
216
+ * - height value
217
+ */
218
+ inputHeight: string;
219
+ /**
220
+ * - align value
221
+ */
222
+ align: string;
223
+ /**
224
+ * - new create or update
225
+ */
226
+ isUpdate: boolean;
227
+ /**
228
+ * - video url
229
+ */
230
+ url: string;
231
+ /**
232
+ * - video process info
233
+ */
234
+ process: ProcessInfo | null;
235
+ };
236
+ export type AudioInfo = {
237
+ /**
238
+ * - target element
239
+ */
240
+ element: HTMLAudioElement;
241
+ /**
242
+ * - FileList object
243
+ */
244
+ files: FileList;
245
+ /**
246
+ * - new create or update
247
+ */
248
+ isUpdate: boolean;
249
+ };
250
+ export type FileInfo = {
251
+ /**
252
+ * - file url
253
+ */
254
+ url: string;
255
+ /**
256
+ * - FileList object
257
+ */
258
+ files: FileList;
259
+ /**
260
+ * - upload headers
261
+ */
262
+ uploadHeaders: any;
263
+ };
264
+ export type EmbedInfo = {
265
+ /**
266
+ * - target element
267
+ */
268
+ element: HTMLElement;
269
+ /**
270
+ * - width value
271
+ */
272
+ inputWidth: string;
273
+ /**
274
+ * - height value
275
+ */
276
+ inputHeight: string;
277
+ /**
278
+ * - align value
279
+ */
280
+ align: string;
281
+ /**
282
+ * - new create or update
283
+ */
284
+ isUpdate: boolean;
285
+ /**
286
+ * - embed url
287
+ */
288
+ url: string;
289
+ /**
290
+ * - When the input source is stacked in an iframe, etc., the actual embedded DOM
291
+ */
292
+ children: HTMLElement | null;
293
+ /**
294
+ * - embed process info
295
+ */
296
+ process: ProcessInfo | null;
297
+ };
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @description History stack closure
3
+ * @param {__se__EditorCore} editor - The root editor instance
4
+ */
5
+ export default function History(editor: __se__EditorCore): {
6
+ /**
7
+ * @description Saving the current status to the history object stack
8
+ * - If "delay" is true, it will be saved after (options.get('historyStackDelayTime') || 400) milliseconds.
9
+ * - If the function is called again with the "delay" argument true before it is saved, the delay time is renewed.
10
+ * - You can specify the delay time by sending a number.
11
+ * @param {boolean|number} delay If true, add stack without delay time.
12
+ * @param {*=} [rootKey] The key of the root frame to save history for.
13
+ */
14
+ push(delay: boolean | number, rootKey?: any | undefined): void;
15
+ /**
16
+ * @description Immediately saves the current state to the history stack if a delayed save is pending.
17
+ * @param {*} rootKey The key of the root frame.
18
+ * @param {Range} range The selection range object.
19
+ */
20
+ check(rootKey: any, range: Range): void;
21
+ /**
22
+ * @description Undo function that restores the previous state from the history stack.
23
+ */
24
+ undo(): void;
25
+ /**
26
+ * @description Redo function that re-applies a previously undone state from the history stack.
27
+ */
28
+ redo(): void;
29
+ /**
30
+ * @description Overwrites the current state in the history stack with the latest content.
31
+ * @param {string=} [rootKey] The key of the root frame to overwrite.
32
+ */
33
+ overwrite(rootKey?: string | undefined): void;
34
+ /**
35
+ * @description Pauses the history stack, preventing new entries from being added for up to 5 seconds.
36
+ */
37
+ pause(): void;
38
+ /**
39
+ * @description Resumes history tracking by allowing new entries to be added to the stack.
40
+ */
41
+ resume(): void;
42
+ /**
43
+ * @description Resets the history stack and disables related UI buttons.
44
+ */
45
+ reset(): void;
46
+ /**
47
+ * @description Updates the state of history-related buttons (undo, redo, save) based on the current history stack.
48
+ * @param {*} rootKey The key of the root frame.
49
+ * @param {number} [index] The index of the current history state.
50
+ */
51
+ resetButtons(rootKey: any, index?: number): void;
52
+ /**
53
+ * @description Returns the root stack containing the history of each frame.
54
+ * @returns {{content: string, s: {path: number|number[], offset: number|number[]}, e: {path: number|number[], offset: number|number[]}, frame: HTMLElement}} The root stack object.
55
+ * - content: content html string
56
+ * - s: depth info of the "start" range
57
+ * - e: depth info of the "end" range
58
+ * - frame: wysiwyg editable element.
59
+ */
60
+ getRootStack(): {
61
+ content: string;
62
+ s: {
63
+ path: number | number[];
64
+ offset: number | number[];
65
+ };
66
+ e: {
67
+ path: number | number[];
68
+ offset: number | number[];
69
+ };
70
+ frame: HTMLElement;
71
+ };
72
+ /**
73
+ * @description Resets the delay time for saving history.
74
+ * @param {number} ms The new delay time in milliseconds.
75
+ */
76
+ resetDelayTime(ms: number): void;
77
+ /**
78
+ * @description Clears the entire history stack and cancels any pending save operations.
79
+ */
80
+ destroy(): void;
81
+ };
@@ -0,0 +1,60 @@
1
+ export default Char;
2
+ export type CharThis = Omit<Char & Partial<__se__EditorInjector>, 'char'>;
3
+ /**
4
+ * @typedef {Omit<Char & Partial<__se__EditorInjector>, 'char'>} CharThis
5
+ */
6
+ /**
7
+ * @constructor
8
+ * @this {CharThis}
9
+ * @description character count, character limit, etc. management class
10
+ * @param {__se__EditorCore} editor - The root editor instance
11
+ */
12
+ declare function Char(this: Omit<Char & Partial<import('../../editorInjector').default>, 'char'>, editor: __se__EditorCore): void;
13
+ declare class Char {
14
+ /**
15
+ * @typedef {Omit<Char & Partial<__se__EditorInjector>, 'char'>} CharThis
16
+ */
17
+ /**
18
+ * @constructor
19
+ * @this {CharThis}
20
+ * @description character count, character limit, etc. management class
21
+ * @param {__se__EditorCore} editor - The root editor instance
22
+ */
23
+ constructor(editor: __se__EditorCore);
24
+ /**
25
+ * @this {CharThis}
26
+ * @description Returns false if char count is greater than "frameOptions.get('charCounter_max')" when "html" is added to the current editor.
27
+ * @param {Node|string} html Element node or String.
28
+ * @returns {boolean}
29
+ */
30
+ check(this: Omit<Char & Partial<import('../../editorInjector').default>, 'char'>, html: Node | string): boolean;
31
+ /**
32
+ * @this {CharThis}
33
+ * @description Get the [content]'s number of characters or binary data size. (frameOptions.get('charCounter_type'))
34
+ * - If [content] is undefined, get the current editor's number of characters or binary data size.
35
+ * @param {string=} content Content to count. (defalut: this.editor.frameContext.get('wysiwyg'))
36
+ * @returns {number}
37
+ */
38
+ getLength(this: Omit<Char & Partial<import('../../editorInjector').default>, 'char'>, content?: string | undefined): number;
39
+ /**
40
+ * @this {CharThis}
41
+ * @descriptionGets Get the length in bytes of a string.
42
+ * @param {string} text String text
43
+ * @returns {number}
44
+ */
45
+ getByteLength(this: Omit<Char & Partial<import('../../editorInjector').default>, 'char'>, text: string): number;
46
+ /**
47
+ * @this {CharThis}
48
+ * @description Set the char count to charCounter element textContent.
49
+ */
50
+ display(this: Omit<Char & Partial<import('../../editorInjector').default>, 'char'>): void;
51
+ /**
52
+ * @this {CharThis}
53
+ * @description Returns false if char count is greater than "frameOptions.get('charCounter_max')" when "inputText" is added to the current editor.
54
+ * - If the current number of characters is greater than "charCounter_max", the excess characters are removed.
55
+ * And call the char.display()
56
+ * @param {string} inputText Text added.
57
+ * @returns {boolean}
58
+ */
59
+ test(this: Omit<Char & Partial<import('../../editorInjector').default>, 'char'>, inputText: string, _fromInputEvent: any): boolean;
60
+ }
@@ -0,0 +1,259 @@
1
+ export default Component;
2
+ export type ComponentThis = Omit<Component & Partial<__se__EditorInjector>, 'component'>;
3
+ export type ComponentInfo = {
4
+ /**
5
+ * - The target element associated with the component.
6
+ */
7
+ target: HTMLElement;
8
+ /**
9
+ * - The name of the plugin related to the component.
10
+ */
11
+ pluginName: string;
12
+ /**
13
+ * - Options related to the component.
14
+ */
15
+ options: {
16
+ [x: string]: any;
17
+ };
18
+ /**
19
+ * - The main container element for the component.
20
+ */
21
+ container: HTMLElement;
22
+ /**
23
+ * - The cover element, if applicable.
24
+ */
25
+ cover: HTMLElement | null;
26
+ /**
27
+ * - The inline cover element, if applicable.
28
+ */
29
+ inlineCover: HTMLElement | null;
30
+ /**
31
+ * - The caption element, if applicable.
32
+ */
33
+ caption: HTMLElement | null;
34
+ /**
35
+ * - Whether the component is a file-related component.
36
+ */
37
+ isFile: boolean;
38
+ /**
39
+ * - The element that triggered the component, if applicable.
40
+ */
41
+ launcher: HTMLElement | null;
42
+ };
43
+ /**
44
+ * @typedef {Omit<Component & Partial<__se__EditorInjector>, 'component'>} ComponentThis
45
+ */
46
+ /**
47
+ * @typedef {Object} ComponentInfo
48
+ * @property {HTMLElement} target - The target element associated with the component.
49
+ * @property {string} pluginName - The name of the plugin related to the component.
50
+ * @property {Object<string, *>} options - Options related to the component.
51
+ * @property {HTMLElement} container - The main container element for the component.
52
+ * @property {?HTMLElement} cover - The cover element, if applicable.
53
+ * @property {?HTMLElement} inlineCover - The inline cover element, if applicable.
54
+ * @property {?HTMLElement} caption - The caption element, if applicable.
55
+ * @property {boolean} isFile - Whether the component is a file-related component.
56
+ * @property {?HTMLElement} launcher - The element that triggered the component, if applicable.
57
+ */
58
+ /**
59
+ * @constructor
60
+ * @this {ComponentThis}
61
+ * @description Class for managing components such as images and tables that are not in line format
62
+ * @param {__se__EditorCore} editor - The root editor instance
63
+ */
64
+ declare function Component(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, editor: __se__EditorCore): void;
65
+ declare class Component {
66
+ /**
67
+ * @typedef {Omit<Component & Partial<__se__EditorInjector>, 'component'>} ComponentThis
68
+ */
69
+ /**
70
+ * @typedef {Object} ComponentInfo
71
+ * @property {HTMLElement} target - The target element associated with the component.
72
+ * @property {string} pluginName - The name of the plugin related to the component.
73
+ * @property {Object<string, *>} options - Options related to the component.
74
+ * @property {HTMLElement} container - The main container element for the component.
75
+ * @property {?HTMLElement} cover - The cover element, if applicable.
76
+ * @property {?HTMLElement} inlineCover - The inline cover element, if applicable.
77
+ * @property {?HTMLElement} caption - The caption element, if applicable.
78
+ * @property {boolean} isFile - Whether the component is a file-related component.
79
+ * @property {?HTMLElement} launcher - The element that triggered the component, if applicable.
80
+ */
81
+ /**
82
+ * @constructor
83
+ * @this {ComponentThis}
84
+ * @description Class for managing components such as images and tables that are not in line format
85
+ * @param {__se__EditorCore} editor - The root editor instance
86
+ */
87
+ constructor(editor: __se__EditorCore);
88
+ /**
89
+ * @description The current component information, used copy, cut, and keydown events
90
+ * @type {ComponentInfo}
91
+ */
92
+ info: ComponentInfo;
93
+ /**
94
+ * @description Component is selected
95
+ * @type {boolean}
96
+ */
97
+ isSelected: boolean;
98
+ /**
99
+ * @description Currently selected component target
100
+ * @type {Node|null}
101
+ */
102
+ currentTarget: Node | null;
103
+ /**
104
+ * @description Currently selected component plugin instance
105
+ * @type {*}
106
+ */
107
+ currentPlugin: any;
108
+ /**
109
+ * @description Currently selected component plugin name
110
+ * @type {*}
111
+ */
112
+ currentPluginName: any;
113
+ /**
114
+ * @description Currently selected component information
115
+ * @type {ComponentInfo|null}
116
+ */
117
+ currentInfo: ComponentInfo | null;
118
+ /** @type {Object<string, (...args: *) => *>} */
119
+ __globalEvents: {
120
+ [x: string]: (...args: any) => any;
121
+ };
122
+ /** @type {__se__GlobalEventInfo|void} */
123
+ _bindClose_copy: __se__GlobalEventInfo | void;
124
+ /** @type {__se__GlobalEventInfo|void} */
125
+ _bindClose_cut: __se__GlobalEventInfo | void;
126
+ /** @type {__se__GlobalEventInfo|void} */
127
+ _bindClose_keydown: __se__GlobalEventInfo | void;
128
+ /** @type {__se__GlobalEventInfo|void} */
129
+ _bindClose_mousedown: __se__GlobalEventInfo | void;
130
+ /** @type {__se__GlobalEventInfo|void} */
131
+ _bindClose_touchstart: __se__GlobalEventInfo | void;
132
+ /** @type {boolean} */
133
+ __selectionSelected: boolean;
134
+ /**
135
+ * @this {ComponentThis}
136
+ * @description Inserts an element and returns it. (Used for elements: table, hr, image, video)
137
+ * - If "element" is "HR", inserts and returns the new line.
138
+ * @param {Node} element Element to be inserted
139
+ * @param {Object} [options] Options
140
+ * @param {boolean} [options.skipCharCount=false] If true, it will be inserted even if "frameOptions.get('charCounter_max')" is exceeded.
141
+ * @param {boolean} [options.skipSelection=false] If true, do not automatically select the inserted component.
142
+ * @param {boolean} [options.skipHistory=false] If true, do not push to history.
143
+ * @returns {HTMLElement} The inserted element or new line (for HR)
144
+ */
145
+ insert(
146
+ this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>,
147
+ element: Node,
148
+ {
149
+ skipCharCount,
150
+ skipSelection,
151
+ skipHistory
152
+ }?: {
153
+ skipCharCount?: boolean;
154
+ skipSelection?: boolean;
155
+ skipHistory?: boolean;
156
+ }
157
+ ): HTMLElement;
158
+ /**
159
+ * @this {ComponentThis}
160
+ * @description Gets the file component and that plugin name
161
+ * - return: {target, component, pluginName} | null
162
+ * @param {Node} element Target element (figure tag, component div, file tag)
163
+ * @returns {ComponentInfo|null}
164
+ */
165
+ get(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, element: Node): ComponentInfo | null;
166
+ /**
167
+ * @this {ComponentThis}
168
+ * @description The component(media, file component, table, etc) is selected and the resizing module is called.
169
+ * @param {Node} element Target element
170
+ * @param {string} pluginName The plugin name for the selected target.
171
+ * @param {boolean=} isInput Whether the target is an input component.(table)
172
+ */
173
+ select(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, element: Node, pluginName: string, isInput?: boolean | undefined): boolean;
174
+ /**
175
+ * @this {ComponentThis}
176
+ * @description Deselects the selected component.
177
+ */
178
+ deselect(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>): void;
179
+ /**
180
+ * @this {ComponentThis}
181
+ * @description Determines if the specified node is a block component (e.g., img, iframe, video, audio, table) with the class "se-component"
182
+ * - or a direct FIGURE node. This function checks if the node itself is a component
183
+ * - or if it belongs to any components identified by the component manager.
184
+ * @param {Node} element The DOM node to check.
185
+ * @returns {boolean} True if the node is a block component or part of it, otherwise false.
186
+ */
187
+ is(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, element: Node): boolean;
188
+ /**
189
+ * @this {ComponentThis}
190
+ * @description Checks if the given node is an inline component (class "se-inline-component").
191
+ * - If the node is a FIGURE, it checks the parent element instead.
192
+ * - It also verifies whether the node is part of an inline component recognized by the component manager.
193
+ * @param {Node} element The DOM node to check.
194
+ * @returns {boolean} True if the node is an inline component or part of it, otherwise false.
195
+ */
196
+ isInline(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, element: Node): boolean;
197
+ /**
198
+ * @this {ComponentThis}
199
+ * @description Checks if the specified node qualifies as a basic component within the editor.
200
+ * - This function verifies whether the node is recognized as a component by the `is` function, while also ensuring that it is not an inline component as determined by the `isInline` function.
201
+ * - This is used to identify block-level elements or standalone components that are not part of the inline component classification.
202
+ * @param {Node} element The DOM node to check.
203
+ * @returns {boolean} True if the node is a basic (non-inline) component, otherwise false.
204
+ */
205
+ isBasic(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, element: Node): boolean;
206
+ /**
207
+ * @private
208
+ * @this {ComponentThis}
209
+ * @description Checks if the given element is a file component by matching its tag name against the file manager's regular expressions.
210
+ * - It also verifies whether the element has the required attributes based on the tag type.
211
+ * @param {Node} element The element to check.
212
+ * @returns {boolean} Returns true if the element is a file component, otherwise false.
213
+ */
214
+ __isFiles(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, element: Node): boolean;
215
+ /**
216
+ * @private
217
+ * @this {ComponentThis}
218
+ * @description Deselects the currently selected component, removing any selection effects and associated event listeners.
219
+ * - This method resets the selection state and hides UI elements related to the component selection.
220
+ */
221
+ __deselect(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>): void;
222
+ /**
223
+ * @private
224
+ * @this {ComponentThis}
225
+ * @description Set line breaker of component
226
+ * @param {HTMLElement} element Element tag
227
+ */
228
+ _setComponentLineBreaker(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>, element: HTMLElement): void;
229
+ /**
230
+ * @private
231
+ * @this {ComponentThis}
232
+ * @description Adds global event listeners for component interactions such as copy, cut, and keydown events.
233
+ */
234
+ __addGlobalEvent(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>): void;
235
+ /**
236
+ * @private
237
+ * @this {ComponentThis}
238
+ * @description Removes global event listeners that were previously added for component interactions.
239
+ */
240
+ __removeGlobalEvent(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>): void;
241
+ /**
242
+ * @private
243
+ * @this {ComponentThis}
244
+ * @description Adds global event listeners for non-file-related interactions such as mouse and touch events.
245
+ */
246
+ __addNotFileGlobalEvent(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>): void;
247
+ /**
248
+ * @private
249
+ * @this {ComponentThis}
250
+ * @description Removes global event listeners related to non-file interactions.
251
+ */
252
+ __removeNotFileGlobalEvent(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>): void;
253
+ /**
254
+ * @private
255
+ * @this {ComponentThis}
256
+ * @description Removes drag-related events and resets drag-related states.
257
+ */
258
+ _removeDragEvent(this: Omit<Component & Partial<import('../../editorInjector').default>, 'component'>): void;
259
+ }