suneditor 3.0.0-alpha.9 → 3.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (315) hide show
  1. package/CONTRIBUTING.md +170 -22
  2. package/{LICENSE.txt → LICENSE} +9 -9
  3. package/README.md +168 -30
  4. package/dist/suneditor.min.css +1 -1
  5. package/dist/suneditor.min.js +1 -1
  6. package/package.json +47 -21
  7. package/src/assets/design/color.css +121 -0
  8. package/src/assets/design/index.css +3 -0
  9. package/src/assets/design/size.css +35 -0
  10. package/src/assets/design/typography.css +37 -0
  11. package/src/assets/icons/defaultIcons.js +232 -0
  12. package/src/assets/suneditor-contents.css +181 -46
  13. package/src/assets/suneditor.css +1403 -650
  14. package/src/core/base/eventHandlers/handler_toolbar.js +35 -14
  15. package/src/core/base/eventHandlers/handler_ww_clipboard.js +23 -4
  16. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +49 -10
  17. package/src/core/base/eventHandlers/handler_ww_key_input.js +422 -224
  18. package/src/core/base/eventHandlers/handler_ww_mouse.js +83 -36
  19. package/src/core/base/eventManager.js +520 -179
  20. package/src/core/base/history.js +95 -41
  21. package/src/core/class/char.js +26 -11
  22. package/src/core/class/component.js +345 -137
  23. package/src/core/class/format.js +683 -519
  24. package/src/core/class/html.js +485 -305
  25. package/src/core/class/menu.js +133 -47
  26. package/src/core/class/nodeTransform.js +90 -71
  27. package/src/core/class/offset.js +408 -92
  28. package/src/core/class/selection.js +216 -106
  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 +422 -0
  32. package/src/core/class/viewer.js +178 -74
  33. package/src/core/editor.js +496 -389
  34. package/src/core/section/actives.js +123 -27
  35. package/src/core/section/constructor.js +615 -206
  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/events.js +622 -0
  42. package/src/helper/clipboard.js +59 -0
  43. package/src/helper/converter.js +202 -26
  44. package/src/helper/dom/domCheck.js +304 -0
  45. package/src/helper/dom/domQuery.js +669 -0
  46. package/src/helper/dom/domUtils.js +557 -0
  47. package/src/helper/dom/index.js +12 -0
  48. package/src/helper/env.js +46 -56
  49. package/src/helper/index.js +10 -4
  50. package/src/helper/keyCodeMap.js +183 -0
  51. package/src/helper/numbers.js +12 -8
  52. package/src/helper/unicode.js +9 -5
  53. package/src/langs/ckb.js +74 -4
  54. package/src/langs/cs.js +72 -2
  55. package/src/langs/da.js +73 -3
  56. package/src/langs/de.js +73 -4
  57. package/src/langs/en.js +23 -3
  58. package/src/langs/es.js +73 -4
  59. package/src/langs/fa.js +75 -3
  60. package/src/langs/fr.js +73 -3
  61. package/src/langs/he.js +73 -4
  62. package/src/langs/hu.js +230 -0
  63. package/src/langs/index.js +7 -3
  64. package/src/langs/it.js +70 -1
  65. package/src/langs/ja.js +72 -4
  66. package/src/langs/km.js +230 -0
  67. package/src/langs/ko.js +22 -2
  68. package/src/langs/lv.js +74 -5
  69. package/src/langs/nl.js +73 -4
  70. package/src/langs/pl.js +73 -4
  71. package/src/langs/pt_br.js +70 -1
  72. package/src/langs/ro.js +74 -5
  73. package/src/langs/ru.js +73 -4
  74. package/src/langs/se.js +73 -4
  75. package/src/langs/tr.js +73 -1
  76. package/src/langs/{ua.js → uk.js} +75 -6
  77. package/src/langs/ur.js +77 -8
  78. package/src/langs/zh_cn.js +74 -5
  79. package/src/modules/ApiManager.js +77 -54
  80. package/src/modules/Browser.js +667 -0
  81. package/src/modules/ColorPicker.js +162 -102
  82. package/src/modules/Controller.js +273 -142
  83. package/src/modules/Figure.js +925 -484
  84. package/src/modules/FileManager.js +121 -69
  85. package/src/modules/HueSlider.js +113 -61
  86. package/src/modules/Modal.js +291 -122
  87. package/src/modules/ModalAnchorEditor.js +383 -234
  88. package/src/modules/SelectMenu.js +270 -168
  89. package/src/modules/_DragHandle.js +2 -1
  90. package/src/modules/index.js +3 -3
  91. package/src/plugins/browser/audioGallery.js +83 -0
  92. package/src/plugins/browser/fileBrowser.js +103 -0
  93. package/src/plugins/browser/fileGallery.js +83 -0
  94. package/src/plugins/browser/imageGallery.js +81 -0
  95. package/src/plugins/browser/videoGallery.js +103 -0
  96. package/src/plugins/command/blockquote.js +40 -27
  97. package/src/plugins/command/exportPDF.js +134 -0
  98. package/src/plugins/command/fileUpload.js +229 -162
  99. package/src/plugins/command/list_bulleted.js +83 -47
  100. package/src/plugins/command/list_numbered.js +83 -47
  101. package/src/plugins/dropdown/align.js +66 -54
  102. package/src/plugins/dropdown/backgroundColor.js +63 -49
  103. package/src/plugins/dropdown/font.js +71 -47
  104. package/src/plugins/dropdown/fontColor.js +63 -48
  105. package/src/plugins/dropdown/formatBlock.js +70 -33
  106. package/src/plugins/dropdown/hr.js +92 -51
  107. package/src/plugins/dropdown/layout.js +37 -26
  108. package/src/plugins/dropdown/lineHeight.js +54 -38
  109. package/src/plugins/dropdown/list.js +60 -45
  110. package/src/plugins/dropdown/paragraphStyle.js +51 -30
  111. package/src/plugins/dropdown/table.js +2003 -813
  112. package/src/plugins/dropdown/template.js +38 -26
  113. package/src/plugins/dropdown/textStyle.js +43 -31
  114. package/src/plugins/field/mention.js +147 -86
  115. package/src/plugins/index.js +32 -6
  116. package/src/plugins/input/fontSize.js +161 -108
  117. package/src/plugins/input/pageNavigator.js +70 -0
  118. package/src/plugins/modal/audio.js +358 -173
  119. package/src/plugins/modal/drawing.js +531 -0
  120. package/src/plugins/modal/embed.js +886 -0
  121. package/src/plugins/modal/image.js +674 -362
  122. package/src/plugins/modal/link.js +100 -71
  123. package/src/plugins/modal/math.js +367 -167
  124. package/src/plugins/modal/video.js +691 -335
  125. package/src/plugins/popup/anchor.js +222 -0
  126. package/src/suneditor.js +50 -13
  127. package/src/themes/dark.css +122 -0
  128. package/src/typedef.js +130 -0
  129. package/types/assets/icons/defaultIcons.d.ts +153 -0
  130. package/types/core/base/eventHandlers/handler_toolbar.d.ts +41 -0
  131. package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +40 -0
  132. package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +35 -0
  133. package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +45 -0
  134. package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +39 -0
  135. package/types/core/base/eventManager.d.ts +385 -0
  136. package/types/core/base/history.d.ts +81 -0
  137. package/types/core/class/char.d.ts +60 -0
  138. package/types/core/class/component.d.ts +212 -0
  139. package/types/core/class/format.d.ts +616 -0
  140. package/types/core/class/html.d.ts +422 -0
  141. package/types/core/class/menu.d.ts +126 -0
  142. package/types/core/class/nodeTransform.d.ts +93 -0
  143. package/types/core/class/offset.d.ts +522 -0
  144. package/types/core/class/selection.d.ts +188 -0
  145. package/types/core/class/shortcuts.d.ts +142 -0
  146. package/types/core/class/toolbar.d.ts +189 -0
  147. package/types/core/class/ui.d.ts +164 -0
  148. package/types/core/class/viewer.d.ts +140 -0
  149. package/types/core/editor.d.ts +610 -0
  150. package/types/core/section/actives.d.ts +46 -0
  151. package/types/core/section/constructor.d.ts +777 -0
  152. package/types/core/section/context.d.ts +45 -0
  153. package/types/core/section/documentType.d.ts +178 -0
  154. package/types/editorInjector/_classes.d.ts +41 -0
  155. package/types/editorInjector/_core.d.ts +92 -0
  156. package/types/editorInjector/index.d.ts +71 -0
  157. package/types/events.d.ts +273 -0
  158. package/types/helper/clipboard.d.ts +12 -0
  159. package/types/helper/converter.d.ts +197 -0
  160. package/types/helper/dom/domCheck.d.ts +189 -0
  161. package/types/helper/dom/domQuery.d.ts +223 -0
  162. package/types/helper/dom/domUtils.d.ts +226 -0
  163. package/types/helper/dom/index.d.ts +9 -0
  164. package/types/helper/env.d.ts +132 -0
  165. package/types/helper/index.d.ts +174 -0
  166. package/types/helper/keyCodeMap.d.ts +110 -0
  167. package/types/helper/numbers.d.ts +46 -0
  168. package/types/helper/unicode.d.ts +28 -0
  169. package/types/index.d.ts +120 -0
  170. package/{typings/Lang.d.ts → types/langs/_Lang.d.ts} +173 -103
  171. package/types/langs/ckb.d.ts +3 -0
  172. package/types/langs/cs.d.ts +3 -0
  173. package/types/langs/da.d.ts +3 -0
  174. package/types/langs/de.d.ts +3 -0
  175. package/types/langs/en.d.ts +3 -0
  176. package/types/langs/es.d.ts +3 -0
  177. package/types/langs/fa.d.ts +3 -0
  178. package/types/langs/fr.d.ts +3 -0
  179. package/types/langs/he.d.ts +3 -0
  180. package/types/langs/hu.d.ts +3 -0
  181. package/types/langs/index.d.ts +54 -0
  182. package/types/langs/it.d.ts +3 -0
  183. package/types/langs/ja.d.ts +3 -0
  184. package/types/langs/km.d.ts +3 -0
  185. package/types/langs/ko.d.ts +3 -0
  186. package/types/langs/lv.d.ts +3 -0
  187. package/types/langs/nl.d.ts +3 -0
  188. package/types/langs/pl.d.ts +3 -0
  189. package/types/langs/pt_br.d.ts +3 -0
  190. package/types/langs/ro.d.ts +3 -0
  191. package/types/langs/ru.d.ts +3 -0
  192. package/types/langs/se.d.ts +3 -0
  193. package/types/langs/tr.d.ts +3 -0
  194. package/types/langs/uk.d.ts +3 -0
  195. package/types/langs/ur.d.ts +3 -0
  196. package/types/langs/zh_cn.d.ts +3 -0
  197. package/types/modules/ApiManager.d.ts +125 -0
  198. package/types/modules/Browser.d.ts +326 -0
  199. package/types/modules/ColorPicker.d.ts +131 -0
  200. package/types/modules/Controller.d.ts +251 -0
  201. package/types/modules/Figure.d.ts +517 -0
  202. package/types/modules/FileManager.d.ts +202 -0
  203. package/types/modules/HueSlider.d.ts +136 -0
  204. package/types/modules/Modal.d.ts +111 -0
  205. package/types/modules/ModalAnchorEditor.d.ts +236 -0
  206. package/types/modules/SelectMenu.d.ts +194 -0
  207. package/types/modules/_DragHandle.d.ts +7 -0
  208. package/types/modules/index.d.ts +26 -0
  209. package/types/plugins/browser/audioGallery.d.ts +55 -0
  210. package/types/plugins/browser/fileBrowser.d.ts +64 -0
  211. package/types/plugins/browser/fileGallery.d.ts +55 -0
  212. package/types/plugins/browser/imageGallery.d.ts +51 -0
  213. package/types/plugins/browser/videoGallery.d.ts +57 -0
  214. package/types/plugins/command/blockquote.d.ts +28 -0
  215. package/types/plugins/command/exportPDF.d.ts +46 -0
  216. package/types/plugins/command/fileUpload.d.ts +156 -0
  217. package/types/plugins/command/list_bulleted.d.ts +46 -0
  218. package/types/plugins/command/list_numbered.d.ts +46 -0
  219. package/types/plugins/dropdown/align.d.ts +60 -0
  220. package/types/plugins/dropdown/backgroundColor.d.ts +63 -0
  221. package/types/plugins/dropdown/font.d.ts +54 -0
  222. package/types/plugins/dropdown/fontColor.d.ts +63 -0
  223. package/types/plugins/dropdown/formatBlock.d.ts +54 -0
  224. package/types/plugins/dropdown/hr.d.ts +71 -0
  225. package/types/plugins/dropdown/layout.d.ts +40 -0
  226. package/types/plugins/dropdown/lineHeight.d.ts +50 -0
  227. package/types/plugins/dropdown/list.d.ts +39 -0
  228. package/types/plugins/dropdown/paragraphStyle.d.ts +54 -0
  229. package/types/plugins/dropdown/table.d.ts +627 -0
  230. package/types/plugins/dropdown/template.d.ts +40 -0
  231. package/types/plugins/dropdown/textStyle.d.ts +41 -0
  232. package/types/plugins/field/mention.d.ts +102 -0
  233. package/types/plugins/index.d.ts +107 -0
  234. package/types/plugins/input/fontSize.d.ts +170 -0
  235. package/types/plugins/input/pageNavigator.d.ts +28 -0
  236. package/types/plugins/modal/audio.d.ts +269 -0
  237. package/types/plugins/modal/drawing.d.ts +246 -0
  238. package/types/plugins/modal/embed.d.ts +387 -0
  239. package/types/plugins/modal/image.d.ts +451 -0
  240. package/types/plugins/modal/link.d.ts +128 -0
  241. package/types/plugins/modal/math.d.ts +193 -0
  242. package/types/plugins/modal/video.d.ts +485 -0
  243. package/types/plugins/popup/anchor.d.ts +56 -0
  244. package/types/suneditor.d.ts +51 -0
  245. package/types/typedef.d.ts +233 -0
  246. package/.eslintignore +0 -7
  247. package/.eslintrc.json +0 -64
  248. package/src/assets/icons/_default.js +0 -194
  249. package/src/core/base/events.js +0 -320
  250. package/src/core/class/notice.js +0 -42
  251. package/src/helper/domUtils.js +0 -1177
  252. package/src/modules/FileBrowser.js +0 -271
  253. package/src/plugins/command/exportPdf.js +0 -168
  254. package/src/plugins/fileBrowser/imageGallery.js +0 -81
  255. package/src/themes/test.css +0 -61
  256. package/typings/CommandPlugin.d.ts +0 -8
  257. package/typings/DialogPlugin.d.ts +0 -20
  258. package/typings/FileBrowserPlugin.d.ts +0 -30
  259. package/typings/Module.d.ts +0 -15
  260. package/typings/Plugin.d.ts +0 -42
  261. package/typings/SubmenuPlugin.d.ts +0 -8
  262. package/typings/_classes.d.ts +0 -17
  263. package/typings/_colorPicker.d.ts +0 -60
  264. package/typings/_core.d.ts +0 -55
  265. package/typings/align.d.ts +0 -5
  266. package/typings/audio.d.ts +0 -5
  267. package/typings/backgroundColor.d.ts +0 -5
  268. package/typings/blockquote.d.ts +0 -5
  269. package/typings/char.d.ts +0 -39
  270. package/typings/component.d.ts +0 -38
  271. package/typings/context.d.ts +0 -39
  272. package/typings/converter.d.ts +0 -33
  273. package/typings/dialog.d.ts +0 -28
  274. package/typings/domUtils.d.ts +0 -361
  275. package/typings/editor.d.ts +0 -7
  276. package/typings/editor.ts +0 -542
  277. package/typings/env.d.ts +0 -70
  278. package/typings/eventManager.d.ts +0 -37
  279. package/typings/events.d.ts +0 -262
  280. package/typings/fileBrowser.d.ts +0 -42
  281. package/typings/fileManager.d.ts +0 -67
  282. package/typings/font.d.ts +0 -5
  283. package/typings/fontColor.d.ts +0 -5
  284. package/typings/fontSize.d.ts +0 -5
  285. package/typings/format.d.ts +0 -191
  286. package/typings/formatBlock.d.ts +0 -5
  287. package/typings/history.d.ts +0 -48
  288. package/typings/horizontalRule.d.ts +0 -5
  289. package/typings/image.d.ts +0 -5
  290. package/typings/imageGallery.d.ts +0 -5
  291. package/typings/index.d.ts +0 -21
  292. package/typings/index.modules.d.ts +0 -11
  293. package/typings/index.plugins.d.ts +0 -58
  294. package/typings/lineHeight.d.ts +0 -5
  295. package/typings/link.d.ts +0 -5
  296. package/typings/list.d.ts +0 -5
  297. package/typings/math.d.ts +0 -5
  298. package/typings/mediaContainer.d.ts +0 -25
  299. package/typings/mention.d.ts +0 -5
  300. package/typings/node.d.ts +0 -57
  301. package/typings/notice.d.ts +0 -16
  302. package/typings/numbers.d.ts +0 -29
  303. package/typings/offset.d.ts +0 -24
  304. package/typings/options.d.ts +0 -589
  305. package/typings/paragraphStyle.d.ts +0 -5
  306. package/typings/resizing.d.ts +0 -141
  307. package/typings/selection.d.ts +0 -94
  308. package/typings/shortcuts.d.ts +0 -13
  309. package/typings/suneditor.d.ts +0 -9
  310. package/typings/table.d.ts +0 -5
  311. package/typings/template.d.ts +0 -5
  312. package/typings/textStyle.d.ts +0 -5
  313. package/typings/toolbar.d.ts +0 -32
  314. package/typings/unicode.d.ts +0 -25
  315. package/typings/video.d.ts +0 -5
@@ -0,0 +1,125 @@
1
+ export default ApiManager;
2
+ export type ApiManagerParams = {
3
+ /**
4
+ * - HTTP method (GET, POST, PUT, DELETE...)
5
+ */
6
+ method?: string | undefined;
7
+ /**
8
+ * - API's URL
9
+ */
10
+ url?: string | undefined;
11
+ /**
12
+ * - HTTP headers
13
+ */
14
+ headers?:
15
+ | {
16
+ [x: string]: string;
17
+ }
18
+ | undefined;
19
+ /**
20
+ * - API data
21
+ */
22
+ data?: any | undefined;
23
+ /**
24
+ * - API success callback
25
+ */
26
+ callBack?: ((xmlHttp: XMLHttpRequest) => boolean) | undefined;
27
+ /**
28
+ * - API fail callback
29
+ */
30
+ errorCallBack?: ((res: any, xmlHttp: XMLHttpRequest) => string) | undefined;
31
+ /**
32
+ * - XMLHttpRequest.responseType
33
+ */
34
+ responseType?: XMLHttpRequestResponseType | undefined;
35
+ };
36
+ /**
37
+ * @typedef ApiManagerParams
38
+ * @property {string=} method - HTTP method (GET, POST, PUT, DELETE...)
39
+ * @property {string=} url - API's URL
40
+ * @property {Object<string, string>=} headers - HTTP headers
41
+ * @property {*=} data - API data
42
+ * @property {(xmlHttp: XMLHttpRequest) => boolean=} callBack - API success callback
43
+ * @property {(res: *, xmlHttp: XMLHttpRequest) => string=} errorCallBack - API fail callback
44
+ * @property {XMLHttpRequestResponseType=} responseType - XMLHttpRequest.responseType
45
+ */
46
+ /**
47
+ * @class
48
+ * @description API Manager
49
+ */
50
+ declare class ApiManager {
51
+ /**
52
+ * @constructor
53
+ * @param {*} inst The instance object that called the constructor.
54
+ * @param {ApiManagerParams=} params API options
55
+ */
56
+ constructor(inst: any, params?: ApiManagerParams | undefined);
57
+ /**
58
+ * @description Editor instance
59
+ * @type {__se__EditorCore}
60
+ */
61
+ editor: __se__EditorCore;
62
+ /**
63
+ * @description UI class
64
+ * @type {__se__EditorCore["ui"]}
65
+ */
66
+ ui: __se__EditorCore['ui'];
67
+ /**
68
+ * @description Caller instance key name
69
+ * @type {string}
70
+ */
71
+ kind: string;
72
+ _xhr: XMLHttpRequest;
73
+ method: string;
74
+ url: string;
75
+ headers: {
76
+ [x: string]: string;
77
+ };
78
+ data: any;
79
+ callBack: (xmlHttp: XMLHttpRequest) => boolean;
80
+ errorCallBack: (res: any, xmlHttp: XMLHttpRequest) => string;
81
+ responseType: XMLHttpRequestResponseType;
82
+ /**
83
+ * @description Call API
84
+ * @param {ApiManagerParams} params
85
+ */
86
+ call({ method, url, headers, data, callBack, errorCallBack, responseType }: ApiManagerParams): void;
87
+ /**
88
+ * @description Call Async API
89
+ * @param {Object} params
90
+ * @param {string=} params.method - HTTP method (GET, POST, PUT, DELETE...)
91
+ * @param {string=} params.url - API's URL
92
+ * @param {Object<string, string>=} params.headers - HTTP headers
93
+ * @param {*=} params.data - API data
94
+ * @param {XMLHttpRequestResponseType=} params.responseType - XMLHttpRequest.responseType
95
+ * @returns {Promise<XMLHttpRequest>}
96
+ */
97
+ asyncCall({
98
+ method,
99
+ url,
100
+ headers,
101
+ data,
102
+ responseType
103
+ }: {
104
+ method?: string | undefined;
105
+ url?: string | undefined;
106
+ headers?:
107
+ | {
108
+ [x: string]: string;
109
+ }
110
+ | undefined;
111
+ data?: any | undefined;
112
+ responseType?: XMLHttpRequestResponseType | undefined;
113
+ }): Promise<XMLHttpRequest>;
114
+ /**
115
+ * @description Cancel API (xhr.abort())
116
+ */
117
+ cancel(): void;
118
+ /**
119
+ * @private
120
+ * @description Remove unnecessary slashes in API URL.
121
+ * @param {string} url url
122
+ * @returns
123
+ */
124
+ private _normalizeUrl;
125
+ }
@@ -0,0 +1,326 @@
1
+ export default Browser;
2
+ export type BrowserFile = {
3
+ /**
4
+ * - Source url
5
+ */
6
+ src?: string;
7
+ /**
8
+ * - File name | Folder name
9
+ */
10
+ name?: string;
11
+ /**
12
+ * - Thumbnail url
13
+ */
14
+ thumbnail?: string | undefined;
15
+ /**
16
+ * - Image alt
17
+ */
18
+ alt?: string | undefined;
19
+ /**
20
+ * - Tag name list
21
+ */
22
+ tag?: (Array<string> | string) | undefined;
23
+ /**
24
+ * - Type (image, video, audio, etc.)
25
+ */
26
+ type?: string | undefined;
27
+ /**
28
+ * - Frame name (iframe, video, etc.)
29
+ */
30
+ frame?: string | undefined;
31
+ /**
32
+ * - The folder's contents or an API URL.
33
+ */
34
+ _data?: (BrowserFile | string) | undefined;
35
+ /**
36
+ * - Whether this folder is the default selection.
37
+ */
38
+ default?: boolean | undefined;
39
+ /**
40
+ * - Metadata
41
+ */
42
+ meta?:
43
+ | {
44
+ [x: string]: any;
45
+ }
46
+ | undefined;
47
+ };
48
+ export type BrowserParams = {
49
+ /**
50
+ * - File browser window title. Required. Can be overridden in browser.
51
+ */
52
+ title: string;
53
+ /**
54
+ * - Class name of the file browser. Optional. Default: ''.
55
+ */
56
+ className?: string | undefined;
57
+ /**
58
+ * - direct data without server calls
59
+ */
60
+ data?:
61
+ | (
62
+ | {
63
+ [x: string]: any;
64
+ }
65
+ | Array<any>
66
+ )
67
+ | undefined;
68
+ /**
69
+ * - File server url. Required. Can be overridden in browser.
70
+ */
71
+ url?: string | undefined;
72
+ /**
73
+ * - File server http header. Required. Can be overridden in browser.
74
+ */
75
+ headers?:
76
+ | {
77
+ [x: string]: string;
78
+ }
79
+ | undefined;
80
+ /**
81
+ * - Function that actions when an item is clicked. Required. Can be overridden in browser.
82
+ */
83
+ selectorHandler: (target: Node) => void;
84
+ /**
85
+ * - Whether to use the search function. Optional. Default: true.
86
+ */
87
+ useSearch?: boolean | undefined;
88
+ /**
89
+ * - File server search url. Optional. Can be overridden in browser.
90
+ */
91
+ searchUrl?: string | undefined;
92
+ /**
93
+ * - File server search http header. Optional. Can be overridden in browser.
94
+ */
95
+ searchUrlHeader?:
96
+ | {
97
+ [x: string]: string;
98
+ }
99
+ | undefined;
100
+ /**
101
+ * - Class name of list div. Required. Can be overridden in browser.
102
+ */
103
+ listClass?: string | undefined;
104
+ /**
105
+ * - Function that defines the HTML of a file item. Required. Can be overridden in browser.
106
+ */
107
+ drawItemHandler?: ((item: BrowserFile) => string) | undefined;
108
+ /**
109
+ * - "props" argument to "drawItemHandler" function. Optional. Can be overridden in browser.
110
+ */
111
+ props?: Array<any> | undefined;
112
+ /**
113
+ * - Number of "div.se-file-item-column" to be created. Optional. Can be overridden in browser. Default: 4.
114
+ */
115
+ columnSize?: number | undefined;
116
+ /**
117
+ * - Default thumbnail
118
+ */
119
+ thumbnail?: ((item: BrowserFile) => string) | undefined;
120
+ };
121
+ /**
122
+ * @typedef {Object} BrowserFile
123
+ * @property {string} [src=""] - Source url
124
+ * @property {string} [name=""] - File name | Folder name
125
+ * @property {string=} thumbnail - Thumbnail url
126
+ * @property {string=} alt - Image alt
127
+ * @property {Array<string>|string=} tag - Tag name list
128
+ * @property {string=} type - Type (image, video, audio, etc.)
129
+ * @property {string=} frame - Frame name (iframe, video, etc.)
130
+ * @property {BrowserFile | string=} _data - The folder's contents or an API URL.
131
+ * @property {boolean=} default - Whether this folder is the default selection.
132
+ * @property {Object<string, *>=} meta - Metadata
133
+ */
134
+ /**
135
+ * @typedef BrowserParams
136
+ * @property {string} title - File browser window title. Required. Can be overridden in browser.
137
+ * @property {string=} className - Class name of the file browser. Optional. Default: ''.
138
+ * @property {Object<string, *>|Array<*>=} data - direct data without server calls
139
+ * @property {string=} url - File server url. Required. Can be overridden in browser.
140
+ * @property {Object<string, string>=} headers - File server http header. Required. Can be overridden in browser.
141
+ * @property {(target: Node) => void} selectorHandler - Function that actions when an item is clicked. Required. Can be overridden in browser.
142
+ * @property {boolean=} useSearch - Whether to use the search function. Optional. Default: true.
143
+ * @property {string=} searchUrl - File server search url. Optional. Can be overridden in browser.
144
+ * @property {Object<string, string>=} searchUrlHeader - File server search http header. Optional. Can be overridden in browser.
145
+ * @property {string=} listClass - Class name of list div. Required. Can be overridden in browser.
146
+ * @property {(item: BrowserFile) => string=} drawItemHandler - Function that defines the HTML of a file item. Required. Can be overridden in browser.
147
+ * @property {Array<*>=} props - "props" argument to "drawItemHandler" function. Optional. Can be overridden in browser.
148
+ * @property {number=} columnSize - Number of "div.se-file-item-column" to be created. Optional. Can be overridden in browser. Default: 4.
149
+ * @property {((item: BrowserFile) => string)=} thumbnail - Default thumbnail
150
+ */
151
+ /**
152
+ * @class
153
+ * @description File browser plugin
154
+ */
155
+ declare class Browser extends CoreInjector {
156
+ /**
157
+ * @constructor
158
+ * @param {*} inst The instance object that called the constructor.
159
+ * @param {BrowserParams} params Browser options
160
+ */
161
+ constructor(inst: any, params: BrowserParams);
162
+ useSearch: boolean;
163
+ kind: any;
164
+ inst: any;
165
+ area: HTMLElement;
166
+ header: HTMLElement;
167
+ titleArea: HTMLElement;
168
+ tagArea: HTMLElement;
169
+ body: HTMLElement;
170
+ list: HTMLElement;
171
+ side: HTMLElement;
172
+ wrapper: HTMLElement;
173
+ _loading: HTMLElement;
174
+ title: string;
175
+ listClass: string;
176
+ directData:
177
+ | any[]
178
+ | {
179
+ [x: string]: any;
180
+ };
181
+ url: string;
182
+ urlHeader: {
183
+ [x: string]: string;
184
+ };
185
+ searchUrl: string;
186
+ searchUrlHeader: {
187
+ [x: string]: string;
188
+ };
189
+ drawItemHandler: any;
190
+ selectorHandler: (target: Node) => void;
191
+ columnSize: number;
192
+ folderDefaultPath: string;
193
+ closeArrow: string;
194
+ openArrow: string;
195
+ icon_folder: string;
196
+ icon_folder_item: string;
197
+ icon_item: string;
198
+ /**
199
+ * @type {Array<BrowserFile>}
200
+ */
201
+ items: Array<BrowserFile>;
202
+ /**
203
+ * @type {Object<string, {name: string, meta: Object<string, *>}>}
204
+ */
205
+ folders: {
206
+ [x: string]: {
207
+ name: string;
208
+ meta: {
209
+ [x: string]: any;
210
+ };
211
+ };
212
+ };
213
+ /**
214
+ * @type {Object<string, {key?: string, name?: string, children?: *}>}
215
+ */
216
+ tree: {
217
+ [x: string]: {
218
+ key?: string;
219
+ name?: string;
220
+ children?: any;
221
+ };
222
+ };
223
+ /**
224
+ * @type {BrowserFile}
225
+ */
226
+ data: BrowserFile;
227
+ selectedTags: any[];
228
+ keyword: string;
229
+ sideInner: HTMLElement;
230
+ _closeSignal: boolean;
231
+ _bindClose: any;
232
+ __globalEventHandler: (e: any) => void;
233
+ apiManager: ApiManager;
234
+ sideOpenBtn: HTMLButtonElement;
235
+ /**
236
+ * @description Open a file browser plugin
237
+ * @param {Object} [params={}]
238
+ * @param {string=} params.listClass - Class name of list div. If not, use "this.listClass".
239
+ * @param {string=} params.title - File browser window title. If not, use "this.title".
240
+ * @param {string=} params.url - File server url. If not, use "this.url".
241
+ * @param {Object<string, string>=} params.urlHeader - File server http header. If not, use "this.urlHeader".
242
+ */
243
+ open(params?: {
244
+ listClass?: string | undefined;
245
+ title?: string | undefined;
246
+ url?: string | undefined;
247
+ urlHeader?:
248
+ | {
249
+ [x: string]: string;
250
+ }
251
+ | undefined;
252
+ }): void;
253
+ /**
254
+ * @description Close a browser plugin
255
+ * - The plugin's "init" method is called.
256
+ */
257
+ close(): void;
258
+ /**
259
+ * @description Search files
260
+ * @param {string} keyword - Search keyword
261
+ */
262
+ search(keyword: string): void;
263
+ /**
264
+ * @description Filter items by tag
265
+ * @param {Array<BrowserFile>} items - Items to filter
266
+ * @returns {Array<BrowserFile>}
267
+ */
268
+ tagfilter(items: Array<BrowserFile>): Array<BrowserFile>;
269
+ /**
270
+ * @description Show file browser loading box
271
+ */
272
+ showBrowserLoading(): void;
273
+ /**
274
+ * @description Close file browser loading box
275
+ */
276
+ closeBrowserLoading(): void;
277
+ /**
278
+ * @private
279
+ * @description Fetches the file list from the server.
280
+ * @param {string} url - The file server URL.
281
+ * @param {Object<string, string>} urlHeader - The HTTP headers for the request.
282
+ * @param {boolean} pageLoading - Indicates if this is a paginated request.
283
+ */
284
+ private _drawFileList;
285
+ /**
286
+ * @private
287
+ * @description Updates the displayed list of file items.
288
+ * @param {Array<BrowserFile>} items - The file items to display.
289
+ * @param {boolean} update - Whether to update the tags.
290
+ */
291
+ private _drawListItem;
292
+ /**
293
+ * @private
294
+ * @description Adds a global event listener for closing the browser.
295
+ */
296
+ private __addGlobalEvent;
297
+ /**
298
+ * @private
299
+ * @description Removes the global event listener for closing the browser.
300
+ */
301
+ private __removeGlobalEvent;
302
+ /**
303
+ * @private
304
+ * @description Renders the file items or folder structure from data.
305
+ * @param {BrowserFile[]|BrowserFile} data - The data representing the file structure.
306
+ * @returns {boolean} True if rendering was successful, false otherwise.
307
+ */
308
+ private __drowItems;
309
+ /**
310
+ * @private
311
+ * @description Parses folder data into a structured format.
312
+ * @param {BrowserFile} data - The folder data.
313
+ * @param {string} [path] - The current path in the folder hierarchy.
314
+ */
315
+ private __parseFolderData;
316
+ /**
317
+ * @private
318
+ * @description Creates a nested folder list from parsed data.
319
+ * @param {BrowserFile[]|BrowserFile} folderData - The structured folder data.
320
+ * @param {HTMLElement} parentElement - The parent element to append folder structure to.
321
+ */
322
+ private __createFolderList;
323
+ #private;
324
+ }
325
+ import CoreInjector from '../editorInjector/_core';
326
+ import ApiManager from './ApiManager';
@@ -0,0 +1,131 @@
1
+ export default ColorPicker;
2
+ export type HueSliderParams_colorPicker = import('./HueSlider').HueSliderParams;
3
+ export type HueSliderColor_colorPicker = import('./HueSlider').HueSliderColor;
4
+ export type ColorPickerParams = {
5
+ /**
6
+ * color list
7
+ */
8
+ colorList?:
9
+ | Array<
10
+ | string
11
+ | {
12
+ value: string;
13
+ name: string;
14
+ }
15
+ >
16
+ | undefined;
17
+ /**
18
+ * Number of colors to be displayed in one line
19
+ */
20
+ splitNum?: number | undefined;
21
+ /**
22
+ * Default color
23
+ */
24
+ defaultColor?: string | undefined;
25
+ /**
26
+ * Disable HEX input
27
+ */
28
+ disableHEXInput?: boolean | undefined;
29
+ /**
30
+ * Disable remove button
31
+ */
32
+ disableRemove?: boolean | undefined;
33
+ /**
34
+ * hue slider options
35
+ */
36
+ hueSliderOptions?: HueSliderParams_colorPicker | undefined;
37
+ };
38
+ /**
39
+ * @typedef {import('./HueSlider').HueSliderParams} HueSliderParams_colorPicker
40
+ */
41
+ /**
42
+ * @typedef {import('./HueSlider').HueSliderColor} HueSliderColor_colorPicker
43
+ */
44
+ /**
45
+ * @typedef {Object} ColorPickerParams
46
+ * @property {Array<string|{value: string, name: string}>=} [colorList=[]] color list
47
+ * @property {number=} [splitNum=0] Number of colors to be displayed in one line
48
+ * @property {string=} [defaultColor] Default color
49
+ * @property {boolean=} [disableHEXInput=false] Disable HEX input
50
+ * @property {boolean=} [disableRemove=false] Disable remove button
51
+ * @property {HueSliderParams_colorPicker=} [hueSliderOptions] hue slider options
52
+ */
53
+ /**
54
+ * @class
55
+ * @description Create a color picker element and register for related events. (this.target)
56
+ * - When calling the color selection, "submit", and "remove" buttons, the "action" method of the instance is called with the "color" value as an argument.
57
+ */
58
+ declare class ColorPicker extends CoreInjector {
59
+ /**
60
+ * @constructor
61
+ * @param {*} inst The instance object that called the constructor.
62
+ * @param {string} styles style property ("color", "backgroundColor"..)
63
+ * @param {ColorPickerParams} params Color picker options
64
+ */
65
+ constructor(inst: any, styles: string, params: ColorPickerParams);
66
+ kind: any;
67
+ inst: any;
68
+ target: HTMLElement;
69
+ targetButton: Node;
70
+ inputElement: HTMLInputElement;
71
+ styleProperties: string;
72
+ splitNum: number;
73
+ defaultColor: string;
74
+ hueSliderOptions: import('./HueSlider').HueSliderParams;
75
+ parentDisplay: string;
76
+ currentColor: string;
77
+ parentForm: HTMLElement[];
78
+ colorList: any[] | NodeListOf<Element>;
79
+ hueSlider: HueSlider;
80
+ checkedIcon: HTMLElement;
81
+ parentFormDisplay: any[];
82
+ /**
83
+ * @description Displays or resets the currently selected color at color list.
84
+ * @param {Node|string} nodeOrColor Current Selected node
85
+ * @param {Node} target target
86
+ */
87
+ init(nodeOrColor: Node | string, target: Node): void;
88
+ /**
89
+ * @description Store color values
90
+ * @param {string} hexColorStr Hax color value
91
+ */
92
+ setHexColor(hexColorStr: string): void;
93
+ /**
94
+ * @description Close hue slider
95
+ */
96
+ hueSliderClose(): void;
97
+ /**
98
+ * @private
99
+ * @description Set color at input element
100
+ * @param {string} hexColorStr Hax color value
101
+ */
102
+ private _setInputText;
103
+ /**
104
+ * @private
105
+ * @description Gets color value at color property of node
106
+ * @param {Node} node Selected node
107
+ * @returns {string}
108
+ */
109
+ private _getColorInNode;
110
+ /**
111
+ * @private
112
+ * @description Converts color values of other formats to hex color values and returns.
113
+ * @param {string} colorName Color value
114
+ * @returns {string}
115
+ */
116
+ private _colorName2hex;
117
+ /**
118
+ * @editorMethod Modules.HueSlider
119
+ * @description This method is called when the color is selected in the hue slider.
120
+ * @param {HueSliderColor_colorPicker} color - Color object
121
+ */
122
+ hueSliderAction(color: HueSliderColor_colorPicker): void;
123
+ /**
124
+ * @editorMethod Modules.HueSlider
125
+ * @description This method is called when the hue slider is closed.
126
+ */
127
+ hueSliderCancelAction(): void;
128
+ #private;
129
+ }
130
+ import CoreInjector from '../editorInjector/_core';
131
+ import { HueSlider } from '../modules';