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,136 @@
1
+ export default HueSlider;
2
+ export type ControllerParams_hueSlider = import('../modules/Controller').ControllerParams;
3
+ export type HueSliderColor = {
4
+ /**
5
+ * - HEX color
6
+ */
7
+ hex: string;
8
+ /**
9
+ * - Red color value
10
+ */
11
+ r: number;
12
+ /**
13
+ * - Green color value
14
+ */
15
+ g: number;
16
+ /**
17
+ * - Blue color value
18
+ */
19
+ b: number;
20
+ /**
21
+ * - Hue color value
22
+ */
23
+ h: number;
24
+ /**
25
+ * - Saturation color value
26
+ */
27
+ s: number;
28
+ /**
29
+ * - Lightness color value
30
+ */
31
+ l: number;
32
+ };
33
+ export type HueSliderParams = {
34
+ /**
35
+ * The form element to attach the hue slider.
36
+ */
37
+ form?: Node;
38
+ /**
39
+ * Whether to create a new form element.
40
+ */
41
+ isNewForm?: boolean;
42
+ /**
43
+ * Controller options
44
+ */
45
+ controllerOptions?: ControllerParams_hueSlider;
46
+ };
47
+ /**
48
+ * @typedef {import('../modules/Controller').ControllerParams} ControllerParams_hueSlider
49
+ */
50
+ /**
51
+ * @typedef {Object} HueSliderColor
52
+ * @property {string} hex - HEX color
53
+ * @property {number} r - Red color value
54
+ * @property {number} g - Green color value
55
+ * @property {number} b - Blue color value
56
+ * @property {number} h - Hue color value
57
+ * @property {number} s - Saturation color value
58
+ * @property {number} l - Lightness color value
59
+ */
60
+ /**
61
+ * @typedef {Object} HueSliderParams
62
+ * @property {Node} [form] The form element to attach the hue slider.
63
+ * @property {boolean} [isNewForm] Whether to create a new form element.
64
+ * @property {ControllerParams_hueSlider} [controllerOptions] Controller options
65
+ */
66
+ /**
67
+ * @class
68
+ * @description Create a Hue slider. (only create one at a time)
69
+ * - When you call the .attach() method, the hue slider is appended to the form element.
70
+ * It must be called every time it is used.
71
+ */
72
+ declare class HueSlider {
73
+ /**
74
+ * @constructor
75
+ * @param {*} inst The instance object that called the constructor.
76
+ * @param {HueSliderParams} [params={}] Hue slider options
77
+ * @param {string} [className=""] The class name of the hue slider.
78
+ */
79
+ constructor(inst: any, params?: HueSliderParams, className?: string);
80
+ editor: any;
81
+ eventManager: any;
82
+ inst: any;
83
+ form: Node;
84
+ ctx: {
85
+ wheelX: number;
86
+ wheelY: number;
87
+ lightness: number;
88
+ wheelPointerX: string;
89
+ wheelPointerY: string;
90
+ gradientPointerX: string;
91
+ color: {
92
+ hex: string;
93
+ r: number;
94
+ g: number;
95
+ b: number;
96
+ h: number;
97
+ s: number;
98
+ l: number;
99
+ };
100
+ };
101
+ isOpen: boolean;
102
+ controlle: any;
103
+ __globalMouseDown: any;
104
+ __globalMouseMove: any;
105
+ __globalMouseUp: any;
106
+ controller: Controller;
107
+ /**
108
+ * @description Get the current color information.
109
+ * @returns {HueSliderColor} color information
110
+ */
111
+ get(): HueSliderColor;
112
+ /**
113
+ * @description Open the hue slider.
114
+ * @param {Node} target The element to attach the hue slider.
115
+ */
116
+ open(target: Node): void;
117
+ /**
118
+ * @description Reset information and close the hue slider.
119
+ */
120
+ off(): void;
121
+ /**
122
+ * @description Close the hue slider. (include off method)
123
+ * - Call the instance's hueSliderCancelAction method.
124
+ */
125
+ close(): void;
126
+ /**
127
+ * @description Attach the hue slider to the form element.
128
+ * @param {?Node=} form The element to attach the hue slider.
129
+ */
130
+ attach(form?: (Node | null) | undefined): void;
131
+ /**
132
+ * @description Initialize the hue slider information.
133
+ */
134
+ init(): void;
135
+ }
136
+ import Controller from './Controller';
@@ -0,0 +1,111 @@
1
+ export default Modal;
2
+ /**
3
+ * @class
4
+ * @description Modal window module
5
+ */
6
+ declare class Modal extends CoreInjector {
7
+ /**
8
+ * @description Create a file input tag in the modal window.
9
+ * @param {{icons: __se__EditorCore['icons'], lang: __se__EditorCore['lang']}} param0 - icons and language object
10
+ * @param {{acceptedFormats: string, allowMultiple}} param1 - options
11
+ * - acceptedFormats: "image/*, video/*, audio/*", etc.
12
+ * - allowMultiple: true or false
13
+ * @returns {string} HTML string
14
+ */
15
+ static CreateFileInput(
16
+ {
17
+ icons,
18
+ lang
19
+ }: {
20
+ icons: __se__EditorCore['icons'];
21
+ lang: __se__EditorCore['lang'];
22
+ },
23
+ {
24
+ acceptedFormats,
25
+ allowMultiple
26
+ }: {
27
+ acceptedFormats: string;
28
+ allowMultiple: any;
29
+ }
30
+ ): string;
31
+ /**
32
+ * @description A function called when the contents of "input" have changed and you want to adjust the style.
33
+ * @param {Element} wrapper - Modal file input wrapper(.se-flex-input-wrapper)
34
+ * @param {FileList|File[]} files - FileList object
35
+ */
36
+ static OnChangeFile(wrapper: Element, files: FileList | File[]): void;
37
+ /**
38
+ * @description Modal window module
39
+ * @param {* & {editor: __se__EditorCore}} inst The instance object that called the constructor.
40
+ * @param {Element} element Modal element
41
+ */
42
+ constructor(
43
+ inst: any & {
44
+ editor: __se__EditorCore;
45
+ },
46
+ element: Element
47
+ );
48
+ offset: import('../core/class/offset').default;
49
+ ui: import('../core/class/ui').default;
50
+ inst: any;
51
+ kind: any;
52
+ form: HTMLElement;
53
+ isUpdate: boolean;
54
+ /** @type {HTMLInputElement} */
55
+ focusElement: HTMLInputElement;
56
+ /** @type {HTMLElement} */
57
+ _modalArea: HTMLElement;
58
+ /** @type {HTMLElement} */
59
+ _modalInner: HTMLElement;
60
+ _closeListener: any[];
61
+ _bindClose: any;
62
+ _onClickEvent: any;
63
+ _closeSignal: boolean;
64
+ /** @type {HTMLElement} */
65
+ _resizeBody: HTMLElement;
66
+ _currentHandle: HTMLElement;
67
+ __resizeDir: string;
68
+ __offetTop: number;
69
+ __offetLeft: number;
70
+ __globalEventHandlers: {
71
+ mousemove: any;
72
+ mouseup: any;
73
+ };
74
+ _bindClose_mousemove: any;
75
+ _bindClose_mouseup: any;
76
+ /**
77
+ * @description Open a modal plugin
78
+ * - The plugin's "init" method is called.
79
+ */
80
+ open(): void;
81
+ /**
82
+ * @description Close a modal plugin
83
+ * - The plugin's "init" and "off" method is called.
84
+ */
85
+ close(): void;
86
+ /**
87
+ * @private
88
+ * @description Fixes the current controller's display state when the modal is opened or closed.
89
+ * @param {boolean} fixed - Whether to fix or unfix the controller.
90
+ */
91
+ private _fixCurrentController;
92
+ /**
93
+ * @private
94
+ * @description Saves the current offset position of the modal for resizing calculations.
95
+ * @returns {__se__Class_OffsetGlobalInfo} The offset position of the modal.
96
+ */
97
+ private _saveOffset;
98
+ /**
99
+ * @private
100
+ * @description Adds global event listeners for resizing the modal.
101
+ * @param {string} dir - The direction in which resizing is occurring.
102
+ */
103
+ private __addGlobalEvent;
104
+ /**
105
+ * @private
106
+ * @description Removes global event listeners related to modal resizing.
107
+ */
108
+ private __removeGlobalEvent;
109
+ #private;
110
+ }
111
+ import CoreInjector from '../editorInjector/_core';
@@ -0,0 +1,236 @@
1
+ export default ModalAnchorEditor;
2
+ export type RELAttr = {
3
+ default?: string;
4
+ check_new_window?: string;
5
+ check_bookmark?: string;
6
+ };
7
+ export type ModalAnchorEditorParams = {
8
+ /**
9
+ * - Modal title display.
10
+ */
11
+ title?: boolean;
12
+ /**
13
+ * - Create Text to display input.
14
+ */
15
+ textToDisplay?: boolean;
16
+ /**
17
+ * - Default checked value of the "Open in new window" checkbox.
18
+ */
19
+ openNewWindow?: boolean;
20
+ /**
21
+ * - If true, disables the automatic prefixing of the host URL to the value of the link.
22
+ */
23
+ noAutoPrefix?: boolean;
24
+ /**
25
+ * - The "rel" attribute list of anchor tag.
26
+ */
27
+ relList?: Array<string>;
28
+ /**
29
+ * - Default "rel" attributes of anchor tag.
30
+ */
31
+ defaultRel?: RELAttr;
32
+ /**
33
+ * - File upload URL.
34
+ */
35
+ uploadUrl?: string | undefined;
36
+ /**
37
+ * - File upload headers.
38
+ */
39
+ uploadHeaders?:
40
+ | {
41
+ [x: string]: string;
42
+ }
43
+ | undefined;
44
+ /**
45
+ * - File upload size limit.
46
+ */
47
+ uploadSizeLimit?: number | undefined;
48
+ /**
49
+ * - File upload single size limit.
50
+ */
51
+ uploadSingleSizeLimit?: number | undefined;
52
+ /**
53
+ * - File upload accepted formats.
54
+ */
55
+ acceptedFormats?: string | undefined;
56
+ /**
57
+ * - If true, enables file upload.
58
+ */
59
+ enableFileUpload?: boolean | undefined;
60
+ };
61
+ /**
62
+ * @typedef {{default?: string, check_new_window?: string, check_bookmark?: string}} RELAttr
63
+ */
64
+ /**
65
+ * @typedef {Object} ModalAnchorEditorParams
66
+ * @property {boolean} [title=false] - Modal title display.
67
+ * @property {boolean} [textToDisplay=''] - Create Text to display input.
68
+ * @property {boolean} [openNewWindow=false] - Default checked value of the "Open in new window" checkbox.
69
+ * @property {boolean} [noAutoPrefix=false] - If true, disables the automatic prefixing of the host URL to the value of the link.
70
+ * @property {Array<string>} [relList=[]] - The "rel" attribute list of anchor tag.
71
+ * @property {RELAttr} [defaultRel={}] - Default "rel" attributes of anchor tag.
72
+ * @property {string=} uploadUrl - File upload URL.
73
+ * @property {Object<string, string>=} uploadHeaders - File upload headers.
74
+ * @property {number=} uploadSizeLimit - File upload size limit.
75
+ * @property {number=} uploadSingleSizeLimit - File upload single size limit.
76
+ * @property {string=} acceptedFormats - File upload accepted formats.
77
+ * @property {boolean=} enableFileUpload - If true, enables file upload.
78
+ * @example "REL" structure
79
+ {
80
+ default: 'nofollow', // Default rel
81
+ check_new_window: 'noreferrer noopener', // When "open new window" is checked
82
+ check_bookmark: 'bookmark' // When "bookmark" is checked
83
+ }
84
+ If true, disables the automatic prefixing of the host URL to the value of the link.
85
+ */
86
+ /**
87
+ * @class
88
+ * @description Modal form Anchor tag editor
89
+ * - Use it by inserting it into Modal in a plugin that uses Modal.
90
+ */
91
+ declare class ModalAnchorEditor extends EditorInjector {
92
+ /**
93
+ * @constructor
94
+ * @param {*} inst The instance object that called the constructor.
95
+ * @param {Node} modalForm The modal form element
96
+ * @param {ModalAnchorEditorParams} params ModalAnchorEditor options
97
+ */
98
+ constructor(inst: any, modalForm: Node, params: ModalAnchorEditorParams);
99
+ openNewWindow: boolean;
100
+ relList: string[];
101
+ defaultRel: RELAttr;
102
+ noAutoPrefix: boolean;
103
+ uploadUrl: string;
104
+ uploadHeaders: {
105
+ [x: string]: string;
106
+ };
107
+ uploadSizeLimit: number;
108
+ uploadSingleSizeLimit: number;
109
+ input: HTMLElement;
110
+ fileManager: FileManager;
111
+ kink: any;
112
+ inst: any;
113
+ modalForm: HTMLElement;
114
+ host: string;
115
+ /** @type {HTMLInputElement} */
116
+ urlInput: HTMLInputElement;
117
+ /** @type {HTMLInputElement} */
118
+ displayInput: HTMLInputElement;
119
+ /** @type {HTMLInputElement} */
120
+ titleInput: HTMLInputElement;
121
+ /** @type {HTMLInputElement} */
122
+ newWindowCheck: HTMLInputElement;
123
+ /** @type {HTMLInputElement} */
124
+ downloadCheck: HTMLInputElement;
125
+ /** @type {HTMLElement} */
126
+ download: HTMLElement;
127
+ /** @type {HTMLElement} */
128
+ preview: HTMLElement;
129
+ /** @type {HTMLElement} */
130
+ bookmark: HTMLElement;
131
+ /** @type {HTMLButtonElement} */
132
+ bookmarkButton: HTMLButtonElement;
133
+ currentRel: any[];
134
+ currentTarget: HTMLAnchorElement;
135
+ linkValue: string;
136
+ _change: boolean;
137
+ _isRel: boolean;
138
+ /** @type {HTMLButtonElement} */
139
+ relButton: HTMLButtonElement;
140
+ /** @type {HTMLElement} */
141
+ relPreview: HTMLElement;
142
+ selectMenu_rel: SelectMenu;
143
+ selectMenu_bookmark: SelectMenu;
144
+ /**
145
+ * @description Initialize.
146
+ * - Sets the current anchor element to be edited.
147
+ * @param {Node} element Modal target element
148
+ */
149
+ set(element: Node): void;
150
+ /**
151
+ * @description Opens the anchor editor modal and populates it with data.
152
+ * @param {boolean} isUpdate - Indicates whether an existing anchor is being updated (`true`) or a new one is being created (`false`).
153
+ */
154
+ on(isUpdate: boolean): void;
155
+ /**
156
+ * @description Creates an anchor (`<a>`) element with the specified attributes.
157
+ * @param {boolean} notText - If `true`, the anchor will not contain text content.
158
+ * @returns {HTMLElement|null} - The newly created anchor element, or `null` if the URL is empty.
159
+ */
160
+ create(notText: boolean): HTMLElement | null;
161
+ /**
162
+ * @description Resets the ModalAnchorEditor to its initial state.
163
+ */
164
+ init(): void;
165
+ /**
166
+ * @private
167
+ * @description Updates the anchor element with new attributes.
168
+ * @param {HTMLAnchorElement} anchor - The anchor (`<a>`) element to update.
169
+ * @param {string} url - The URL for the anchor's `href` attribute.
170
+ * @param {string} displayText - The text to be displayed inside the anchor.
171
+ * @param {string} title - The tooltip text (title attribute).
172
+ * @param {boolean} notText - If `true`, the anchor will not contain text content.
173
+ */
174
+ private _updateAnchor;
175
+ /**
176
+ * @private
177
+ * @description Checks if the given path is an internal bookmark.
178
+ * @param {string} path - The URL or anchor link.
179
+ * @returns {boolean} - `true` if the path is an internal bookmark, otherwise `false`.
180
+ */
181
+ private _selfPathBookmark;
182
+ /**
183
+ * @private
184
+ * @description Updates the `rel` attribute list in the modal and preview.
185
+ * @param {string} relAttr - The `rel` attribute string to set.
186
+ */
187
+ private _setRel;
188
+ /**
189
+ * @private
190
+ * @description Generates a list of bookmark headers within the editor.
191
+ * @param {string} urlValue - The current URL input value.
192
+ */
193
+ private _createBookmarkList;
194
+ /**
195
+ * @private
196
+ * @description Updates the preview of the anchor link.
197
+ * @param {string} value - The current URL value.
198
+ */
199
+ private _setLinkPreview;
200
+ /**
201
+ * @private
202
+ * @description Merges the given `rel` attribute value with the current list.
203
+ * @param {string} relAttr - The `rel` attribute to merge.
204
+ * @returns {string} - The updated `rel` attribute string.
205
+ */
206
+ private _relMerge;
207
+ /**
208
+ * @private
209
+ * @description Removes the specified `rel` attribute from the current list.
210
+ * @param {string} relAttr - The `rel` attribute to remove.
211
+ * @returns {string} - The updated `rel` attribute string.
212
+ */
213
+ private _relDelete;
214
+ /**
215
+ * @private
216
+ * @description Registers a newly uploaded file and sets its URL in the modal form.
217
+ * @param {Object<string, *>} response - The response object from the file upload request.
218
+ */
219
+ private _register;
220
+ /**
221
+ * @private
222
+ * @description Handles file upload errors.
223
+ * @param {Object<string, *>} response - The error response object.
224
+ * @returns {Promise<void>}
225
+ */
226
+ private _error;
227
+ /**
228
+ * @description Handles the callback after a file upload completes.
229
+ * @param {XMLHttpRequest} xmlHttp - The XMLHttpRequest object containing the response.
230
+ */
231
+ _uploadCallBack(xmlHttp: XMLHttpRequest): void;
232
+ #private;
233
+ }
234
+ import EditorInjector from '../editorInjector';
235
+ import FileManager from './FileManager';
236
+ import SelectMenu from './SelectMenu';
@@ -0,0 +1,194 @@
1
+ export default SelectMenu;
2
+ export type SelectMenuParams = {
3
+ /**
4
+ * Position of the select menu, specified as "[left|right]-[middle|top|bottom]" or "[top|bottom]-[center|left|right]"
5
+ */
6
+ position: string;
7
+ /**
8
+ * Flag to determine if the checklist is enabled (true or false)
9
+ */
10
+ checkList?: boolean;
11
+ /**
12
+ * Optional text direction: "rtl" for right-to-left, "ltr" for left-to-right
13
+ */
14
+ dir?: 'rtl' | 'ltr';
15
+ /**
16
+ * Optional split number for horizontal positioning; defines how many items per row
17
+ */
18
+ splitNum?: number;
19
+ /**
20
+ * Optional method to call when the menu is opened
21
+ */
22
+ openMethod?: (() => void) | undefined;
23
+ /**
24
+ * Optional method to call when the menu is closed
25
+ */
26
+ closeMethod?: (() => void) | undefined;
27
+ };
28
+ /**
29
+ * @typedef {Object} SelectMenuParams
30
+ * @property {string} position Position of the select menu, specified as "[left|right]-[middle|top|bottom]" or "[top|bottom]-[center|left|right]"
31
+ * @property {boolean} [checkList=false] Flag to determine if the checklist is enabled (true or false)
32
+ * @property {"rtl" | "ltr"} [dir="ltr"] Optional text direction: "rtl" for right-to-left, "ltr" for left-to-right
33
+ * @property {number} [splitNum=0] Optional split number for horizontal positioning; defines how many items per row
34
+ * @property {() => void=} openMethod Optional method to call when the menu is opened
35
+ * @property {() => void=} closeMethod Optional method to call when the menu is closed
36
+ */
37
+ /**
38
+ * @class
39
+ * @description Creates a select menu
40
+ */
41
+ declare class SelectMenu extends CoreInjector {
42
+ /**
43
+ * @constructor
44
+ * @param {*} inst The instance object that called the constructor.
45
+ * @param {SelectMenuParams} params Select menu options
46
+ */
47
+ constructor(inst: any, params: SelectMenuParams);
48
+ kink: any;
49
+ inst: any;
50
+ form: HTMLElement;
51
+ items: any[];
52
+ /** @type {HTMLLIElement[]} */
53
+ menus: HTMLLIElement[];
54
+ menuLen: number;
55
+ index: number;
56
+ item: any;
57
+ isOpen: boolean;
58
+ checkList: boolean;
59
+ position: string;
60
+ subPosition: string;
61
+ _dirPosition: string;
62
+ _dirSubPosition: string;
63
+ _textDirDiff: boolean;
64
+ splitNum: number;
65
+ horizontal: boolean;
66
+ openMethod: () => void;
67
+ closeMethod: () => void;
68
+ _refer: HTMLElement;
69
+ _keydownTarget: Window | HTMLInputElement;
70
+ _selectMethod: (command: string) => void;
71
+ _bindClose_key: any;
72
+ _bindClose_mousedown: any;
73
+ _bindClose_click: any;
74
+ _closeSignal: boolean;
75
+ __events: {
76
+ mousedown: any;
77
+ mousemove: any;
78
+ click: any;
79
+ keydown: any;
80
+ };
81
+ __eventHandlers: {
82
+ mousedown: any;
83
+ mousemove: any;
84
+ click: any;
85
+ keydown: any;
86
+ };
87
+ __globalEventHandlers: {
88
+ keydown: any;
89
+ mousedown: any;
90
+ click: any;
91
+ };
92
+ /**
93
+ * @description Creates the select menu items.
94
+ * @param {Array<string>|__se__NodeCollection} items - Command list of selectable items.
95
+ * @param {Array<string>|__se__NodeCollection} [menus] - Optional list of menu display elements; defaults to `items`.
96
+ */
97
+ create(items: Array<string> | __se__NodeCollection, menus?: Array<string> | __se__NodeCollection): void;
98
+ /**
99
+ * @description Initializes the select menu and attaches it to a reference element.
100
+ * @param {Node} referElement - The element that triggers the select menu.
101
+ * @param {(command: string) => void} selectMethod - The function to execute when an item is selected.
102
+ * @param {{class?: string, style?: string}} [attr={}] - Additional attributes for the select menu container.
103
+ */
104
+ on(
105
+ referElement: Node,
106
+ selectMethod: (command: string) => void,
107
+ attr?: {
108
+ class?: string;
109
+ style?: string;
110
+ }
111
+ ): void;
112
+ /**
113
+ * @description Select menu open
114
+ * @param {?string=} position "[left|right]-[middle|top|bottom] | [top|bottom]-[center|left|right]"
115
+ * @param {?string=} onItemQuerySelector The querySelector string of the menu to be activated
116
+ */
117
+ open(position?: (string | null) | undefined, onItemQuerySelector?: (string | null) | undefined): void;
118
+ /**
119
+ * @description Select menu close
120
+ */
121
+ close(): void;
122
+ /**
123
+ * @description Get the index of the selected item
124
+ * @param {number} index Item index
125
+ * @returns
126
+ */
127
+ getItem(index: number): any;
128
+ /**
129
+ * @description Set the index of the selected item
130
+ * @param {number} index Item index
131
+ */
132
+ setItem(index: number): void;
133
+ /**
134
+ * @private
135
+ * @description Appends a formatted list of items to the menu.
136
+ * @param {string} html - The HTML string representing the menu items.
137
+ */
138
+ private _createFormat;
139
+ /**
140
+ * @private
141
+ * @description Resets the menu state and removes event listeners.
142
+ */
143
+ private _init;
144
+ _onItem: Element;
145
+ /**
146
+ * @private
147
+ * @description Moves the selection up or down by a specified number of items.
148
+ * @param {number} num - The number of items to move (negative for up, positive for down).
149
+ */
150
+ private _moveItem;
151
+ /**
152
+ * @private
153
+ * @description Highlights and selects an item by index.
154
+ * @param {number} selectIndex - The index of the item to select.
155
+ */
156
+ private _selectItem;
157
+ /**
158
+ * @private
159
+ * @description Sets the position of the select menu relative to the reference element.
160
+ * @param {string} position Menu position ("left"|"right") | ("top"|"bottom")
161
+ * @param {string} subPosition Sub position ("middle"|"top"|"bottom") | ("center"|"left"|"right")
162
+ * @param {string} [onItemQuerySelector] - A query selector string to highlight a specific item.
163
+ * @param {boolean} [_re=false] - Whether this is a retry after adjusting the position.
164
+ */
165
+ private _setPosition;
166
+ /**
167
+ * @private
168
+ * @description Selects an item and triggers the callback function.
169
+ * @param {number} index - The index of the item to select.
170
+ */
171
+ private _select;
172
+ /**
173
+ * @private
174
+ * @description Adds event listeners for menu interactions.
175
+ */
176
+ private __addEvents;
177
+ /**
178
+ * @private
179
+ * @description Removes event listeners for menu interactions.
180
+ */
181
+ private __removeEvents;
182
+ /**
183
+ * @private
184
+ * @description Adds global event listeners for closing the menu.
185
+ */
186
+ private __addGlobalEvent;
187
+ /**
188
+ * @private
189
+ * @description Removes global event listeners for closing the menu.
190
+ */
191
+ private __removeGlobalEvent;
192
+ #private;
193
+ }
194
+ import CoreInjector from '../editorInjector/_core';
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @module _DragHandle
3
+ * @description A module that handles drag and drop events.
4
+ * - this module is initialize in the `classes/component.js`.
5
+ */
6
+ export const _DragHandle: Map<string, any>;
7
+ export default _DragHandle;
@@ -0,0 +1,26 @@
1
+ declare namespace _default {
2
+ export { _DragHandle };
3
+ export { ApiManager };
4
+ export { ColorPicker };
5
+ export { Controller };
6
+ export { Browser };
7
+ export { FileManager };
8
+ export { HueSlider };
9
+ export { Figure };
10
+ export { Modal };
11
+ export { ModalAnchorEditor };
12
+ export { SelectMenu };
13
+ }
14
+ export default _default;
15
+ import _DragHandle from './_DragHandle';
16
+ import ApiManager from './ApiManager';
17
+ import ColorPicker from './ColorPicker';
18
+ import Controller from './Controller';
19
+ import Browser from './Browser';
20
+ import FileManager from './FileManager';
21
+ import HueSlider from './HueSlider';
22
+ import Figure from './Figure';
23
+ import Modal from './Modal';
24
+ import ModalAnchorEditor from './ModalAnchorEditor';
25
+ import SelectMenu from './SelectMenu';
26
+ export { _DragHandle, ApiManager, ColorPicker, Controller, Browser, FileManager, HueSlider, Figure, Modal, ModalAnchorEditor, SelectMenu };