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.
- package/CONTRIBUTING.md +170 -22
- package/{LICENSE.txt → LICENSE} +9 -9
- package/README.md +168 -30
- package/dist/suneditor.min.css +1 -1
- package/dist/suneditor.min.js +1 -1
- package/package.json +47 -21
- package/src/assets/design/color.css +121 -0
- package/src/assets/design/index.css +3 -0
- package/src/assets/design/size.css +35 -0
- package/src/assets/design/typography.css +37 -0
- package/src/assets/icons/defaultIcons.js +232 -0
- package/src/assets/suneditor-contents.css +181 -46
- package/src/assets/suneditor.css +1403 -650
- package/src/core/base/eventHandlers/handler_toolbar.js +35 -14
- package/src/core/base/eventHandlers/handler_ww_clipboard.js +23 -4
- package/src/core/base/eventHandlers/handler_ww_dragDrop.js +49 -10
- package/src/core/base/eventHandlers/handler_ww_key_input.js +422 -224
- package/src/core/base/eventHandlers/handler_ww_mouse.js +83 -36
- package/src/core/base/eventManager.js +520 -179
- package/src/core/base/history.js +95 -41
- package/src/core/class/char.js +26 -11
- package/src/core/class/component.js +345 -137
- package/src/core/class/format.js +683 -519
- package/src/core/class/html.js +485 -305
- package/src/core/class/menu.js +133 -47
- package/src/core/class/nodeTransform.js +90 -71
- package/src/core/class/offset.js +408 -92
- package/src/core/class/selection.js +216 -106
- package/src/core/class/shortcuts.js +68 -8
- package/src/core/class/toolbar.js +106 -116
- package/src/core/class/ui.js +422 -0
- package/src/core/class/viewer.js +178 -74
- package/src/core/editor.js +496 -389
- package/src/core/section/actives.js +123 -27
- package/src/core/section/constructor.js +615 -206
- package/src/core/section/context.js +28 -23
- package/src/core/section/documentType.js +561 -0
- package/src/editorInjector/_classes.js +19 -5
- package/src/editorInjector/_core.js +71 -7
- package/src/editorInjector/index.js +63 -1
- package/src/events.js +622 -0
- package/src/helper/clipboard.js +59 -0
- package/src/helper/converter.js +202 -26
- package/src/helper/dom/domCheck.js +304 -0
- package/src/helper/dom/domQuery.js +669 -0
- package/src/helper/dom/domUtils.js +557 -0
- package/src/helper/dom/index.js +12 -0
- package/src/helper/env.js +46 -56
- package/src/helper/index.js +10 -4
- package/src/helper/keyCodeMap.js +183 -0
- package/src/helper/numbers.js +12 -8
- package/src/helper/unicode.js +9 -5
- package/src/langs/ckb.js +74 -4
- package/src/langs/cs.js +72 -2
- package/src/langs/da.js +73 -3
- package/src/langs/de.js +73 -4
- package/src/langs/en.js +23 -3
- package/src/langs/es.js +73 -4
- package/src/langs/fa.js +75 -3
- package/src/langs/fr.js +73 -3
- package/src/langs/he.js +73 -4
- package/src/langs/hu.js +230 -0
- package/src/langs/index.js +7 -3
- package/src/langs/it.js +70 -1
- package/src/langs/ja.js +72 -4
- package/src/langs/km.js +230 -0
- package/src/langs/ko.js +22 -2
- package/src/langs/lv.js +74 -5
- package/src/langs/nl.js +73 -4
- package/src/langs/pl.js +73 -4
- package/src/langs/pt_br.js +70 -1
- package/src/langs/ro.js +74 -5
- package/src/langs/ru.js +73 -4
- package/src/langs/se.js +73 -4
- package/src/langs/tr.js +73 -1
- package/src/langs/{ua.js → uk.js} +75 -6
- package/src/langs/ur.js +77 -8
- package/src/langs/zh_cn.js +74 -5
- package/src/modules/ApiManager.js +77 -54
- package/src/modules/Browser.js +667 -0
- package/src/modules/ColorPicker.js +162 -102
- package/src/modules/Controller.js +273 -142
- package/src/modules/Figure.js +925 -484
- package/src/modules/FileManager.js +121 -69
- package/src/modules/HueSlider.js +113 -61
- package/src/modules/Modal.js +291 -122
- package/src/modules/ModalAnchorEditor.js +383 -234
- package/src/modules/SelectMenu.js +270 -168
- package/src/modules/_DragHandle.js +2 -1
- package/src/modules/index.js +3 -3
- package/src/plugins/browser/audioGallery.js +83 -0
- package/src/plugins/browser/fileBrowser.js +103 -0
- package/src/plugins/browser/fileGallery.js +83 -0
- package/src/plugins/browser/imageGallery.js +81 -0
- package/src/plugins/browser/videoGallery.js +103 -0
- package/src/plugins/command/blockquote.js +40 -27
- package/src/plugins/command/exportPDF.js +134 -0
- package/src/plugins/command/fileUpload.js +229 -162
- package/src/plugins/command/list_bulleted.js +83 -47
- package/src/plugins/command/list_numbered.js +83 -47
- package/src/plugins/dropdown/align.js +66 -54
- package/src/plugins/dropdown/backgroundColor.js +63 -49
- package/src/plugins/dropdown/font.js +71 -47
- package/src/plugins/dropdown/fontColor.js +63 -48
- package/src/plugins/dropdown/formatBlock.js +70 -33
- package/src/plugins/dropdown/hr.js +92 -51
- package/src/plugins/dropdown/layout.js +37 -26
- package/src/plugins/dropdown/lineHeight.js +54 -38
- package/src/plugins/dropdown/list.js +60 -45
- package/src/plugins/dropdown/paragraphStyle.js +51 -30
- package/src/plugins/dropdown/table.js +2003 -813
- package/src/plugins/dropdown/template.js +38 -26
- package/src/plugins/dropdown/textStyle.js +43 -31
- package/src/plugins/field/mention.js +147 -86
- package/src/plugins/index.js +32 -6
- package/src/plugins/input/fontSize.js +161 -108
- package/src/plugins/input/pageNavigator.js +70 -0
- package/src/plugins/modal/audio.js +358 -173
- package/src/plugins/modal/drawing.js +531 -0
- package/src/plugins/modal/embed.js +886 -0
- package/src/plugins/modal/image.js +674 -362
- package/src/plugins/modal/link.js +100 -71
- package/src/plugins/modal/math.js +367 -167
- package/src/plugins/modal/video.js +691 -335
- package/src/plugins/popup/anchor.js +222 -0
- package/src/suneditor.js +50 -13
- package/src/themes/dark.css +122 -0
- package/src/typedef.js +130 -0
- package/types/assets/icons/defaultIcons.d.ts +153 -0
- package/types/core/base/eventHandlers/handler_toolbar.d.ts +41 -0
- package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +40 -0
- package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +35 -0
- package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +45 -0
- package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +39 -0
- package/types/core/base/eventManager.d.ts +385 -0
- package/types/core/base/history.d.ts +81 -0
- package/types/core/class/char.d.ts +60 -0
- package/types/core/class/component.d.ts +212 -0
- package/types/core/class/format.d.ts +616 -0
- package/types/core/class/html.d.ts +422 -0
- package/types/core/class/menu.d.ts +126 -0
- package/types/core/class/nodeTransform.d.ts +93 -0
- package/types/core/class/offset.d.ts +522 -0
- package/types/core/class/selection.d.ts +188 -0
- package/types/core/class/shortcuts.d.ts +142 -0
- package/types/core/class/toolbar.d.ts +189 -0
- package/types/core/class/ui.d.ts +164 -0
- package/types/core/class/viewer.d.ts +140 -0
- package/types/core/editor.d.ts +610 -0
- package/types/core/section/actives.d.ts +46 -0
- package/types/core/section/constructor.d.ts +777 -0
- package/types/core/section/context.d.ts +45 -0
- package/types/core/section/documentType.d.ts +178 -0
- package/types/editorInjector/_classes.d.ts +41 -0
- package/types/editorInjector/_core.d.ts +92 -0
- package/types/editorInjector/index.d.ts +71 -0
- package/types/events.d.ts +273 -0
- package/types/helper/clipboard.d.ts +12 -0
- package/types/helper/converter.d.ts +197 -0
- package/types/helper/dom/domCheck.d.ts +189 -0
- package/types/helper/dom/domQuery.d.ts +223 -0
- package/types/helper/dom/domUtils.d.ts +226 -0
- package/types/helper/dom/index.d.ts +9 -0
- package/types/helper/env.d.ts +132 -0
- package/types/helper/index.d.ts +174 -0
- package/types/helper/keyCodeMap.d.ts +110 -0
- package/types/helper/numbers.d.ts +46 -0
- package/types/helper/unicode.d.ts +28 -0
- package/types/index.d.ts +120 -0
- package/{typings/Lang.d.ts → types/langs/_Lang.d.ts} +173 -103
- package/types/langs/ckb.d.ts +3 -0
- package/types/langs/cs.d.ts +3 -0
- package/types/langs/da.d.ts +3 -0
- package/types/langs/de.d.ts +3 -0
- package/types/langs/en.d.ts +3 -0
- package/types/langs/es.d.ts +3 -0
- package/types/langs/fa.d.ts +3 -0
- package/types/langs/fr.d.ts +3 -0
- package/types/langs/he.d.ts +3 -0
- package/types/langs/hu.d.ts +3 -0
- package/types/langs/index.d.ts +54 -0
- package/types/langs/it.d.ts +3 -0
- package/types/langs/ja.d.ts +3 -0
- package/types/langs/km.d.ts +3 -0
- package/types/langs/ko.d.ts +3 -0
- package/types/langs/lv.d.ts +3 -0
- package/types/langs/nl.d.ts +3 -0
- package/types/langs/pl.d.ts +3 -0
- package/types/langs/pt_br.d.ts +3 -0
- package/types/langs/ro.d.ts +3 -0
- package/types/langs/ru.d.ts +3 -0
- package/types/langs/se.d.ts +3 -0
- package/types/langs/tr.d.ts +3 -0
- package/types/langs/uk.d.ts +3 -0
- package/types/langs/ur.d.ts +3 -0
- package/types/langs/zh_cn.d.ts +3 -0
- package/types/modules/ApiManager.d.ts +125 -0
- package/types/modules/Browser.d.ts +326 -0
- package/types/modules/ColorPicker.d.ts +131 -0
- package/types/modules/Controller.d.ts +251 -0
- package/types/modules/Figure.d.ts +517 -0
- package/types/modules/FileManager.d.ts +202 -0
- package/types/modules/HueSlider.d.ts +136 -0
- package/types/modules/Modal.d.ts +111 -0
- package/types/modules/ModalAnchorEditor.d.ts +236 -0
- package/types/modules/SelectMenu.d.ts +194 -0
- package/types/modules/_DragHandle.d.ts +7 -0
- package/types/modules/index.d.ts +26 -0
- package/types/plugins/browser/audioGallery.d.ts +55 -0
- package/types/plugins/browser/fileBrowser.d.ts +64 -0
- package/types/plugins/browser/fileGallery.d.ts +55 -0
- package/types/plugins/browser/imageGallery.d.ts +51 -0
- package/types/plugins/browser/videoGallery.d.ts +57 -0
- package/types/plugins/command/blockquote.d.ts +28 -0
- package/types/plugins/command/exportPDF.d.ts +46 -0
- package/types/plugins/command/fileUpload.d.ts +156 -0
- package/types/plugins/command/list_bulleted.d.ts +46 -0
- package/types/plugins/command/list_numbered.d.ts +46 -0
- package/types/plugins/dropdown/align.d.ts +60 -0
- package/types/plugins/dropdown/backgroundColor.d.ts +63 -0
- package/types/plugins/dropdown/font.d.ts +54 -0
- package/types/plugins/dropdown/fontColor.d.ts +63 -0
- package/types/plugins/dropdown/formatBlock.d.ts +54 -0
- package/types/plugins/dropdown/hr.d.ts +71 -0
- package/types/plugins/dropdown/layout.d.ts +40 -0
- package/types/plugins/dropdown/lineHeight.d.ts +50 -0
- package/types/plugins/dropdown/list.d.ts +39 -0
- package/types/plugins/dropdown/paragraphStyle.d.ts +54 -0
- package/types/plugins/dropdown/table.d.ts +627 -0
- package/types/plugins/dropdown/template.d.ts +40 -0
- package/types/plugins/dropdown/textStyle.d.ts +41 -0
- package/types/plugins/field/mention.d.ts +102 -0
- package/types/plugins/index.d.ts +107 -0
- package/types/plugins/input/fontSize.d.ts +170 -0
- package/types/plugins/input/pageNavigator.d.ts +28 -0
- package/types/plugins/modal/audio.d.ts +269 -0
- package/types/plugins/modal/drawing.d.ts +246 -0
- package/types/plugins/modal/embed.d.ts +387 -0
- package/types/plugins/modal/image.d.ts +451 -0
- package/types/plugins/modal/link.d.ts +128 -0
- package/types/plugins/modal/math.d.ts +193 -0
- package/types/plugins/modal/video.d.ts +485 -0
- package/types/plugins/popup/anchor.d.ts +56 -0
- package/types/suneditor.d.ts +51 -0
- package/types/typedef.d.ts +233 -0
- package/.eslintignore +0 -7
- package/.eslintrc.json +0 -64
- package/src/assets/icons/_default.js +0 -194
- package/src/core/base/events.js +0 -320
- package/src/core/class/notice.js +0 -42
- package/src/helper/domUtils.js +0 -1177
- package/src/modules/FileBrowser.js +0 -271
- package/src/plugins/command/exportPdf.js +0 -168
- package/src/plugins/fileBrowser/imageGallery.js +0 -81
- package/src/themes/test.css +0 -61
- package/typings/CommandPlugin.d.ts +0 -8
- package/typings/DialogPlugin.d.ts +0 -20
- package/typings/FileBrowserPlugin.d.ts +0 -30
- package/typings/Module.d.ts +0 -15
- package/typings/Plugin.d.ts +0 -42
- package/typings/SubmenuPlugin.d.ts +0 -8
- package/typings/_classes.d.ts +0 -17
- package/typings/_colorPicker.d.ts +0 -60
- package/typings/_core.d.ts +0 -55
- package/typings/align.d.ts +0 -5
- package/typings/audio.d.ts +0 -5
- package/typings/backgroundColor.d.ts +0 -5
- package/typings/blockquote.d.ts +0 -5
- package/typings/char.d.ts +0 -39
- package/typings/component.d.ts +0 -38
- package/typings/context.d.ts +0 -39
- package/typings/converter.d.ts +0 -33
- package/typings/dialog.d.ts +0 -28
- package/typings/domUtils.d.ts +0 -361
- package/typings/editor.d.ts +0 -7
- package/typings/editor.ts +0 -542
- package/typings/env.d.ts +0 -70
- package/typings/eventManager.d.ts +0 -37
- package/typings/events.d.ts +0 -262
- package/typings/fileBrowser.d.ts +0 -42
- package/typings/fileManager.d.ts +0 -67
- package/typings/font.d.ts +0 -5
- package/typings/fontColor.d.ts +0 -5
- package/typings/fontSize.d.ts +0 -5
- package/typings/format.d.ts +0 -191
- package/typings/formatBlock.d.ts +0 -5
- package/typings/history.d.ts +0 -48
- package/typings/horizontalRule.d.ts +0 -5
- package/typings/image.d.ts +0 -5
- package/typings/imageGallery.d.ts +0 -5
- package/typings/index.d.ts +0 -21
- package/typings/index.modules.d.ts +0 -11
- package/typings/index.plugins.d.ts +0 -58
- package/typings/lineHeight.d.ts +0 -5
- package/typings/link.d.ts +0 -5
- package/typings/list.d.ts +0 -5
- package/typings/math.d.ts +0 -5
- package/typings/mediaContainer.d.ts +0 -25
- package/typings/mention.d.ts +0 -5
- package/typings/node.d.ts +0 -57
- package/typings/notice.d.ts +0 -16
- package/typings/numbers.d.ts +0 -29
- package/typings/offset.d.ts +0 -24
- package/typings/options.d.ts +0 -589
- package/typings/paragraphStyle.d.ts +0 -5
- package/typings/resizing.d.ts +0 -141
- package/typings/selection.d.ts +0 -94
- package/typings/shortcuts.d.ts +0 -13
- package/typings/suneditor.d.ts +0 -9
- package/typings/table.d.ts +0 -5
- package/typings/template.d.ts +0 -5
- package/typings/textStyle.d.ts +0 -5
- package/typings/toolbar.d.ts +0 -32
- package/typings/unicode.d.ts +0 -25
- 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';
|