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,251 @@
1
+ export default Controller;
2
+ export type ControllerInfo = {
3
+ /**
4
+ * The controller instance
5
+ */
6
+ inst: any;
7
+ /**
8
+ * The controller position ("bottom"|"top")
9
+ */
10
+ position?: string;
11
+ /**
12
+ * The controller element
13
+ */
14
+ form?: HTMLElement;
15
+ /**
16
+ * The controller target element
17
+ */
18
+ target?: HTMLElement | Range;
19
+ /**
20
+ * If the controller is not in the "carrierWrapper", set it to true.
21
+ */
22
+ notInCarrier?: boolean;
23
+ /**
24
+ * If the target is a Range, set it to true.
25
+ */
26
+ isRangeTarget?: boolean;
27
+ /**
28
+ * If the controller is fixed and should not be closed, set it to true.
29
+ */
30
+ fixed?: boolean;
31
+ };
32
+ export type ControllerParams = {
33
+ /**
34
+ * Controller position
35
+ */
36
+ position?: 'top' | 'bottom';
37
+ /**
38
+ * If the controller is in the WYSIWYG area, set it to true.
39
+ */
40
+ isWWTarget?: boolean | undefined;
41
+ /**
42
+ * Method to be called when the controller is closed.
43
+ */
44
+ initMethod?: (() => void) | undefined;
45
+ /**
46
+ * If true, When the "controller" is opened, buttons without the "se-component-enabled" class are disabled.
47
+ */
48
+ disabled?: boolean | undefined;
49
+ /**
50
+ * The parent "controller" array when "controller" is opened nested.
51
+ */
52
+ parents?: Array<HTMLElement> | undefined;
53
+ /**
54
+ * If true, the parent element is hidden when the controller is opened.
55
+ */
56
+ parentsHide?: boolean | undefined;
57
+ /**
58
+ * The related sibling controller element that this controller is positioned relative to.
59
+ */
60
+ sibling?: HTMLElement | undefined;
61
+ /**
62
+ * The relative position of this controller to the sibling element (e.g., display above or beside the sibling).
63
+ */
64
+ siblingPosition?: 'top' | 'side';
65
+ /**
66
+ * If the controller is inside a form, set it to true.
67
+ */
68
+ isInsideForm?: boolean | undefined;
69
+ /**
70
+ * If the controller is outside a form, set it to true.
71
+ */
72
+ isOutsideForm?: boolean | undefined;
73
+ };
74
+ /**
75
+ * @typedef {Object} ControllerInfo
76
+ * @property {*} inst The controller instance
77
+ * @property {string} [position="bottom"] The controller position ("bottom"|"top")
78
+ * @property {HTMLElement} [form=null] The controller element
79
+ * @property {HTMLElement|Range} [target=null] The controller target element
80
+ * @property {boolean} [notInCarrier=false] If the controller is not in the "carrierWrapper", set it to true.
81
+ * @property {boolean} [isRangeTarget=false] If the target is a Range, set it to true.
82
+ * @property {boolean} [fixed=false] If the controller is fixed and should not be closed, set it to true.
83
+ */
84
+ /**
85
+ * @typedef {Object} ControllerParams
86
+ * @property {"top"|"bottom"} [position="bottom"] Controller position
87
+ * @property {boolean=} [isWWTarget=true] If the controller is in the WYSIWYG area, set it to true.
88
+ * @property {() => void=} [initMethod=null] Method to be called when the controller is closed.
89
+ * @property {boolean=} [disabled=false] If true, When the "controller" is opened, buttons without the "se-component-enabled" class are disabled.
90
+ * @property {Array<HTMLElement>=} [parents=[]] The parent "controller" array when "controller" is opened nested.
91
+ * @property {boolean=} [parentsHide=false] If true, the parent element is hidden when the controller is opened.
92
+ * @property {HTMLElement=} [sibling=null] The related sibling controller element that this controller is positioned relative to.
93
+ * @property {"top"|"side"} [siblingPosition="top"] The relative position of this controller to the sibling element (e.g., display above or beside the sibling).
94
+ * @property {boolean=} [isInsideForm=false] If the controller is inside a form, set it to true.
95
+ * @property {boolean=} [isOutsideForm=false] If the controller is outside a form, set it to true.
96
+ */
97
+ /**
98
+ * @class
99
+ * @description Controller module class that handles the UI and interaction logic for a specific editor controller element.
100
+ */
101
+ declare class Controller extends EditorInjector {
102
+ /**
103
+ * @constructor
104
+ * @param {*} inst The instance object that called the constructor.
105
+ * @param {Node} element Controller element
106
+ * @param {ControllerParams} params Controller options
107
+ * @param {?string=} _name An optional name for the controller key.
108
+ */
109
+ constructor(inst: any, element: Node, params: ControllerParams, _name?: (string | null) | undefined);
110
+ kind: any;
111
+ inst: any;
112
+ form: HTMLFormElement;
113
+ isOpen: boolean;
114
+ currentTarget: Node;
115
+ currentPositionTarget: Range | Node;
116
+ isWWTarget: boolean;
117
+ position: 'top' | 'bottom';
118
+ disabled: boolean;
119
+ parents: HTMLElement[];
120
+ parentsHide: boolean;
121
+ sibling: HTMLElement;
122
+ siblingPosition: 'top' | 'side';
123
+ isInsideForm: boolean;
124
+ isOutsideForm: boolean;
125
+ toTop: boolean;
126
+ _reserveIndex: boolean;
127
+ _initMethod: () => void;
128
+ __globalEventHandlers: {
129
+ keydown: any;
130
+ mousedown: any;
131
+ };
132
+ _bindClose_key: any;
133
+ _bindClose_mouse: any;
134
+ /** @type {{left?: number, top?: number, addOfffset?: {left?: number, top?: number}}} */
135
+ __offset: {
136
+ left?: number;
137
+ top?: number;
138
+ addOfffset?: {
139
+ left?: number;
140
+ top?: number;
141
+ };
142
+ };
143
+ __addOffset: {
144
+ left: number;
145
+ top: number;
146
+ };
147
+ __shadowRootEventForm: HTMLFormElement;
148
+ __shadowRootEventListener: (e: any) => any;
149
+ /**
150
+ * @description Open a modal plugin
151
+ * @param {Node|Range} target Target element
152
+ * @param {Node} [positionTarget] Position target element
153
+ * @param {Object} [params={}] params
154
+ * @param {boolean=} params.isWWTarget If the controller is in the WYSIWYG area, set it to true.
155
+ * @param {() => void=} params.initMethod Method to be called when the controller is closed.
156
+ * @param {boolean=} params.disabled If true, When the "controller" is opened, buttons without the "se-component-enabled" class are disabled. (default: this.disabled)
157
+ * @param {{left?: number, top?: number}=} params.addOffset Additional offset values
158
+ */
159
+ open(
160
+ target: Node | Range,
161
+ positionTarget?: Node,
162
+ {
163
+ isWWTarget,
164
+ initMethod,
165
+ disabled,
166
+ addOffset
167
+ }?: {
168
+ isWWTarget?: boolean | undefined;
169
+ initMethod?: (() => void) | undefined;
170
+ disabled?: boolean | undefined;
171
+ addOffset?:
172
+ | {
173
+ left?: number;
174
+ top?: number;
175
+ }
176
+ | undefined;
177
+ }
178
+ ): void;
179
+ /**
180
+ * @description Close a modal plugin
181
+ * - The plugin's "init" method is called.
182
+ * @param {boolean=} force If true, parent controllers are forcibly closed.
183
+ */
184
+ close(force?: boolean | undefined): void;
185
+ /**
186
+ * @description Hide controller
187
+ */
188
+ hide(): void;
189
+ /**
190
+ * @description Show controller
191
+ */
192
+ show(): void;
193
+ /**
194
+ * @description Sets whether the element (form) should be brought to the top based on z-index.
195
+ * @param {boolean} value - true: '2147483646', false: '2147483645'.
196
+ */
197
+ bringToTop(value: boolean): void;
198
+ /**
199
+ * @description Reset controller position
200
+ * @param {Node=} target
201
+ */
202
+ resetPosition(target?: Node | undefined): void;
203
+ /**
204
+ * @private
205
+ * @description Show controller at editor area (controller elements, function, "controller target element(@Required)", "controller name(@Required)", etc..)
206
+ * @param {HTMLFormElement} form Controller element
207
+ * @param {Node|Range} target Controller target element
208
+ * @param {boolean} isRangeTarget If the target is a Range, set it to true.
209
+ */
210
+ private _controllerOn;
211
+ /**
212
+ * @private
213
+ * @description Hide controller at editor area (link button, image resize button..)
214
+ */
215
+ private _controllerOff;
216
+ /**
217
+ * @private
218
+ * @description Specify the position of the controller.
219
+ * @param {HTMLElement} controller Controller element.
220
+ * @param {Node|Range} refer Element or Range that is the basis of the controller's position.
221
+ * @param {boolean} [skipAutoReposition=false] If true, skips scroll/resize-based automatic positioning logic.
222
+ */
223
+ private _setControllerPosition;
224
+ /**
225
+ * @private
226
+ * @description Adds global event listeners.
227
+ * - When the controller is opened
228
+ */
229
+ private __addGlobalEvent;
230
+ /**
231
+ * @private
232
+ * @description Removes global event listeners.
233
+ * - When the ESC key is pressed, the controller is closed.
234
+ */
235
+ private __removeGlobalEvent;
236
+ /**
237
+ * @private
238
+ * @description Checks if the controller is fixed and should not be closed.
239
+ * @returns {boolean} True if the controller is fixed.
240
+ */
241
+ private _checkFixed;
242
+ /**
243
+ * @private
244
+ * @description Checks if the given target is within a form or controller.
245
+ * @param {Node} target The target element.
246
+ * @returns {boolean} True if the target is inside a form or controller.
247
+ */
248
+ private _checkForm;
249
+ #private;
250
+ }
251
+ import EditorInjector from '../editorInjector';