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,522 @@
1
+ export default Offset;
2
+ export type OffsetThis = Omit<Offset & Partial<__se__EditorInjector>, 'offset'>;
3
+ /**
4
+ * Bounding rectangle information of the selection range.
5
+ */
6
+ export type RectsInfo = {
7
+ /**
8
+ * - The left position of the selection.
9
+ */
10
+ left: number;
11
+ /**
12
+ * - The right position of the selection.
13
+ */
14
+ right: number;
15
+ /**
16
+ * - The top position of the selection.
17
+ */
18
+ top: number;
19
+ /**
20
+ * - The bottom position of the selection.
21
+ */
22
+ bottom: number;
23
+ /**
24
+ * - Whether the selection contains text.
25
+ */
26
+ noText?: boolean;
27
+ /**
28
+ * - The width of the selection.
29
+ */
30
+ width?: number;
31
+ /**
32
+ * - The height of the selection.
33
+ */
34
+ height?: number;
35
+ };
36
+ export type OffsetInfo = {
37
+ /**
38
+ * - The top position of the node relative to the entire document, including iframe offsets.
39
+ */
40
+ top: number;
41
+ /**
42
+ * - The left position of the node relative to the entire document, including iframe offsets.
43
+ */
44
+ left: number;
45
+ };
46
+ export type OffsetLocalInfo = {
47
+ /**
48
+ * - The top position of the node relative to the WYSIWYG editor.
49
+ */
50
+ top: number;
51
+ /**
52
+ * - The left position of the node relative to the WYSIWYG editor.
53
+ */
54
+ left: number;
55
+ /**
56
+ * - The right position of the node relative to the WYSIWYG editor.
57
+ */
58
+ right: number;
59
+ /**
60
+ * - The horizontal scroll offset inside the WYSIWYG editor.
61
+ */
62
+ scrollX: number;
63
+ /**
64
+ * - The vertical scroll offset inside the WYSIWYG editor.
65
+ */
66
+ scrollY: number;
67
+ };
68
+ export type OffsetGlobalInfo = {
69
+ /**
70
+ * - The top position of the element relative to the entire document.
71
+ */
72
+ top: number;
73
+ /**
74
+ * - The left position of the element relative to the entire document.
75
+ */
76
+ left: number;
77
+ /**
78
+ * - The total width of the element, including its content, padding, and border.
79
+ */
80
+ width: number;
81
+ /**
82
+ * - The total height of the element, including its content, padding, and border.
83
+ */
84
+ height: number;
85
+ /**
86
+ * - The amount of vertical scrolling applied to the element.
87
+ */
88
+ scrollTop: number;
89
+ /**
90
+ * - The amount of horizontal scrolling applied to the element.
91
+ */
92
+ scrollLeft: number;
93
+ };
94
+ export type OffsetGlobalScrollInfo = {
95
+ /**
96
+ * - Total top scroll distance
97
+ */
98
+ top: number;
99
+ /**
100
+ * - Total left scroll distance
101
+ */
102
+ left: number;
103
+ /**
104
+ * - Total width including scrollable area
105
+ */
106
+ width: number;
107
+ /**
108
+ * - Total height including scrollable area
109
+ */
110
+ height: number;
111
+ /**
112
+ * - Horizontal offset from the top reference element
113
+ */
114
+ x: number;
115
+ /**
116
+ * - Vertical offset from the top reference element
117
+ */
118
+ y: number;
119
+ /**
120
+ * - Element or window used as the vertical scroll reference
121
+ */
122
+ ohOffsetEl: HTMLElement | Window | null;
123
+ /**
124
+ * - Element or window used as the horizontal scroll reference
125
+ */
126
+ owOffsetEl: HTMLElement | Window | null;
127
+ /**
128
+ * - Height of the vertical scrollable area (clientHeight)
129
+ */
130
+ oh: number;
131
+ /**
132
+ * - Width of the horizontal scrollable area (clientWidth)
133
+ */
134
+ ow: number;
135
+ /**
136
+ * - Indicates if the vertical scroll reference is the editor area
137
+ */
138
+ heightEditorRefer: boolean;
139
+ /**
140
+ * - Indicates if the horizontal scroll reference is the editor area
141
+ */
142
+ widthEditorRefer: boolean;
143
+ /**
144
+ * - Top position of the height offset element relative to the viewport
145
+ */
146
+ ts: number;
147
+ /**
148
+ * - Left position of the width offset element relative to the viewport
149
+ */
150
+ ls: number;
151
+ };
152
+ export type OffsetWWScrollInfo = {
153
+ /**
154
+ * - The top scroll offset inside the WYSIWYG editor.
155
+ */
156
+ top: number;
157
+ /**
158
+ * - The left scroll offset inside the WYSIWYG editor.
159
+ */
160
+ left: number;
161
+ /**
162
+ * - The total width of the WYSIWYG editor's scrollable area.
163
+ */
164
+ width: number;
165
+ /**
166
+ * - The total height of the WYSIWYG editor's scrollable area.
167
+ */
168
+ height: number;
169
+ /**
170
+ * - The sum of `top` and `height`, representing the bottom-most scrollable position.
171
+ */
172
+ bottom: number;
173
+ /**
174
+ * - The bounding rectangle of the editor's visible area.
175
+ */
176
+ rects: RectsInfo;
177
+ };
178
+ /**
179
+ * @typedef {Omit<Offset & Partial<__se__EditorInjector>, 'offset'>} OffsetThis
180
+ */
181
+ /**
182
+ * @typedef {Object} RectsInfo Bounding rectangle information of the selection range.
183
+ * @property {number} rects.left - The left position of the selection.
184
+ * @property {number} rects.right - The right position of the selection.
185
+ * @property {number} rects.top - The top position of the selection.
186
+ * @property {number} rects.bottom - The bottom position of the selection.
187
+ * @property {boolean} [rects.noText] - Whether the selection contains text.
188
+ * @property {number} [rects.width] - The width of the selection.
189
+ * @property {number} [rects.height] - The height of the selection.
190
+ */
191
+ /**
192
+ * @typedef {Object} OffsetInfo
193
+ * @property {number} top - The top position of the node relative to the entire document, including iframe offsets.
194
+ * @property {number} left - The left position of the node relative to the entire document, including iframe offsets.
195
+ */
196
+ /**
197
+ * @typedef {Object} OffsetLocalInfo
198
+ * @property {number} top - The top position of the node relative to the WYSIWYG editor.
199
+ * @property {number} left - The left position of the node relative to the WYSIWYG editor.
200
+ * @property {number} right - The right position of the node relative to the WYSIWYG editor.
201
+ * @property {number} scrollX - The horizontal scroll offset inside the WYSIWYG editor.
202
+ * @property {number} scrollY - The vertical scroll offset inside the WYSIWYG editor.
203
+ */
204
+ /**
205
+ * @typedef {Object} OffsetGlobalInfo
206
+ * @property {number} top - The top position of the element relative to the entire document.
207
+ * @property {number} left - The left position of the element relative to the entire document.
208
+ * @property {number} width - The total width of the element, including its content, padding, and border.
209
+ * @property {number} height - The total height of the element, including its content, padding, and border.
210
+ * @property {number} scrollTop - The amount of vertical scrolling applied to the element.
211
+ * @property {number} scrollLeft - The amount of horizontal scrolling applied to the element.
212
+ */
213
+ /**
214
+ * @typedef {Object} OffsetGlobalScrollInfo
215
+ * @property {number} top - Total top scroll distance
216
+ * @property {number} left - Total left scroll distance
217
+ * @property {number} width - Total width including scrollable area
218
+ * @property {number} height - Total height including scrollable area
219
+ * @property {number} x - Horizontal offset from the top reference element
220
+ * @property {number} y - Vertical offset from the top reference element
221
+ * @property {HTMLElement|Window|null} ohOffsetEl - Element or window used as the vertical scroll reference
222
+ * @property {HTMLElement|Window|null} owOffsetEl - Element or window used as the horizontal scroll reference
223
+ * @property {number} oh - Height of the vertical scrollable area (clientHeight)
224
+ * @property {number} ow - Width of the horizontal scrollable area (clientWidth)
225
+ * @property {boolean} heightEditorRefer - Indicates if the vertical scroll reference is the editor area
226
+ * @property {boolean} widthEditorRefer - Indicates if the horizontal scroll reference is the editor area
227
+ * @property {number} ts - Top position of the height offset element relative to the viewport
228
+ * @property {number} ls - Left position of the width offset element relative to the viewport
229
+ */
230
+ /**
231
+ * @typedef {Object} OffsetWWScrollInfo
232
+ * @property {number} top - The top scroll offset inside the WYSIWYG editor.
233
+ * @property {number} left - The left scroll offset inside the WYSIWYG editor.
234
+ * @property {number} width - The total width of the WYSIWYG editor's scrollable area.
235
+ * @property {number} height - The total height of the WYSIWYG editor's scrollable area.
236
+ * @property {number} bottom - The sum of `top` and `height`, representing the bottom-most scrollable position.
237
+ * @property {RectsInfo} rects - The bounding rectangle of the editor's visible area.
238
+ */
239
+ /**
240
+ * @constructor
241
+ * @this {OffsetThis}
242
+ * @description Offset class, get the position of the element
243
+ * @param {__se__EditorCore} editor - The root editor instance
244
+ */
245
+ declare function Offset(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>, editor: __se__EditorCore): void;
246
+ declare class Offset {
247
+ /**
248
+ * @typedef {Omit<Offset & Partial<__se__EditorInjector>, 'offset'>} OffsetThis
249
+ */
250
+ /**
251
+ * @typedef {Object} RectsInfo Bounding rectangle information of the selection range.
252
+ * @property {number} rects.left - The left position of the selection.
253
+ * @property {number} rects.right - The right position of the selection.
254
+ * @property {number} rects.top - The top position of the selection.
255
+ * @property {number} rects.bottom - The bottom position of the selection.
256
+ * @property {boolean} [rects.noText] - Whether the selection contains text.
257
+ * @property {number} [rects.width] - The width of the selection.
258
+ * @property {number} [rects.height] - The height of the selection.
259
+ */
260
+ /**
261
+ * @typedef {Object} OffsetInfo
262
+ * @property {number} top - The top position of the node relative to the entire document, including iframe offsets.
263
+ * @property {number} left - The left position of the node relative to the entire document, including iframe offsets.
264
+ */
265
+ /**
266
+ * @typedef {Object} OffsetLocalInfo
267
+ * @property {number} top - The top position of the node relative to the WYSIWYG editor.
268
+ * @property {number} left - The left position of the node relative to the WYSIWYG editor.
269
+ * @property {number} right - The right position of the node relative to the WYSIWYG editor.
270
+ * @property {number} scrollX - The horizontal scroll offset inside the WYSIWYG editor.
271
+ * @property {number} scrollY - The vertical scroll offset inside the WYSIWYG editor.
272
+ */
273
+ /**
274
+ * @typedef {Object} OffsetGlobalInfo
275
+ * @property {number} top - The top position of the element relative to the entire document.
276
+ * @property {number} left - The left position of the element relative to the entire document.
277
+ * @property {number} width - The total width of the element, including its content, padding, and border.
278
+ * @property {number} height - The total height of the element, including its content, padding, and border.
279
+ * @property {number} scrollTop - The amount of vertical scrolling applied to the element.
280
+ * @property {number} scrollLeft - The amount of horizontal scrolling applied to the element.
281
+ */
282
+ /**
283
+ * @typedef {Object} OffsetGlobalScrollInfo
284
+ * @property {number} top - Total top scroll distance
285
+ * @property {number} left - Total left scroll distance
286
+ * @property {number} width - Total width including scrollable area
287
+ * @property {number} height - Total height including scrollable area
288
+ * @property {number} x - Horizontal offset from the top reference element
289
+ * @property {number} y - Vertical offset from the top reference element
290
+ * @property {HTMLElement|Window|null} ohOffsetEl - Element or window used as the vertical scroll reference
291
+ * @property {HTMLElement|Window|null} owOffsetEl - Element or window used as the horizontal scroll reference
292
+ * @property {number} oh - Height of the vertical scrollable area (clientHeight)
293
+ * @property {number} ow - Width of the horizontal scrollable area (clientWidth)
294
+ * @property {boolean} heightEditorRefer - Indicates if the vertical scroll reference is the editor area
295
+ * @property {boolean} widthEditorRefer - Indicates if the horizontal scroll reference is the editor area
296
+ * @property {number} ts - Top position of the height offset element relative to the viewport
297
+ * @property {number} ls - Left position of the width offset element relative to the viewport
298
+ */
299
+ /**
300
+ * @typedef {Object} OffsetWWScrollInfo
301
+ * @property {number} top - The top scroll offset inside the WYSIWYG editor.
302
+ * @property {number} left - The left scroll offset inside the WYSIWYG editor.
303
+ * @property {number} width - The total width of the WYSIWYG editor's scrollable area.
304
+ * @property {number} height - The total height of the WYSIWYG editor's scrollable area.
305
+ * @property {number} bottom - The sum of `top` and `height`, representing the bottom-most scrollable position.
306
+ * @property {RectsInfo} rects - The bounding rectangle of the editor's visible area.
307
+ */
308
+ /**
309
+ * @constructor
310
+ * @this {OffsetThis}
311
+ * @description Offset class, get the position of the element
312
+ * @param {__se__EditorCore} editor - The root editor instance
313
+ */
314
+ constructor(editor: __se__EditorCore);
315
+ _scrollEvent: any;
316
+ _elTop: number;
317
+ _scrollY: number;
318
+ _isFixed: boolean;
319
+ /**
320
+ * @this {OffsetThis}
321
+ * @description Gets the position just outside the argument's internal editor (wysiwygFrame).
322
+ * @param {Node} node Target node.
323
+ * @returns {OffsetInfo} Position relative to the editor frame.
324
+ */
325
+ get(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>, node: Node): OffsetInfo;
326
+ /**
327
+ * @this {OffsetThis}
328
+ * @description Gets the position inside the internal editor of the argument.
329
+ * @param {Node} node Target node.
330
+ * @returns {OffsetLocalInfo} Position relative to the WYSIWYG editor.
331
+ */
332
+ getLocal(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>, node: Node): OffsetLocalInfo;
333
+ /**
334
+ * @this {OffsetThis}
335
+ * @description Returns the position of the argument relative to the global document.
336
+ * @param {?Node=} node Target element.
337
+ * @returns {OffsetGlobalInfo} Global position and scroll values.
338
+ */
339
+ getGlobal(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>, node?: (Node | null) | undefined): OffsetGlobalInfo;
340
+ /**
341
+ * @this {OffsetThis}
342
+ * @description Gets the current editor-relative scroll offset.
343
+ * @param {?Node=} node Target element.
344
+ * @returns {OffsetGlobalScrollInfo} Global scroll information.
345
+ */
346
+ getGlobalScroll(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>, node?: (Node | null) | undefined): OffsetGlobalScrollInfo;
347
+ /**
348
+ * @this {OffsetThis}
349
+ * @description Get the scroll info of the WYSIWYG area.
350
+ * @returns {OffsetWWScrollInfo} Scroll information within the editor.
351
+ */
352
+ getWWScroll(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>): OffsetWWScrollInfo;
353
+ /**
354
+ * @this {OffsetThis}
355
+ * @description Sets the relative position of an element
356
+ * @param {HTMLElement} element Element to position
357
+ * @param {HTMLElement} e_container Element's root container
358
+ * @param {HTMLElement} target Target element to position against
359
+ * @param {HTMLElement} t_container Target's root container
360
+ * @param {boolean} _reload Whether to reload position
361
+ */
362
+ setRelPosition(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>, element: HTMLElement, e_container: HTMLElement, target: HTMLElement, t_container: HTMLElement, _reload: boolean): void;
363
+ /**
364
+ * @this {OffsetThis}
365
+ * @description Sets the absolute position of an element
366
+ * @param {HTMLElement} element Element to position
367
+ * @param {HTMLElement} target Target element
368
+ * @param {Object} params Position parameters
369
+ * @param {boolean} [params.isWWTarget=false] Whether the target is within the editor's WYSIWYG area
370
+ * @param {{left:number, top:number}} [params.addOffset={left:0, top:0}] Additional offset
371
+ * @param {"bottom"|"top"} [params.position="bottom"] Position ('bottom'|'top')
372
+ * @param {*} params.inst Instance object of caller
373
+ * @returns {{position: "top" | "bottom"} | undefined} Success -> {position: current position}
374
+ */
375
+ setAbsPosition(
376
+ this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>,
377
+ element: HTMLElement,
378
+ target: HTMLElement,
379
+ params: {
380
+ isWWTarget?: boolean;
381
+ addOffset?: {
382
+ left: number;
383
+ top: number;
384
+ };
385
+ position?: 'bottom' | 'top';
386
+ inst: any;
387
+ }
388
+ ):
389
+ | {
390
+ position: 'top' | 'bottom';
391
+ }
392
+ | undefined;
393
+ /**
394
+ * @this {OffsetThis}
395
+ * @description Sets the position of an element relative to a range
396
+ * @param {HTMLElement} element Element to position
397
+ * @param {?Range} range Range to position against.
398
+ * - if null, the current selection range is used
399
+ * @param {Object} [options={}] Position options
400
+ * @param {"bottom"|"top"} [options.position="bottom"] Position ('bottom'|'top')
401
+ * @param {number} [options.addTop=0] Additional top offset
402
+ * @returns {boolean} Success / Failure
403
+ */
404
+ setRangePosition(
405
+ this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>,
406
+ element: HTMLElement,
407
+ range: Range | null,
408
+ {
409
+ position,
410
+ addTop
411
+ }?: {
412
+ position?: 'bottom' | 'top';
413
+ addTop?: number;
414
+ }
415
+ ): boolean;
416
+ /**
417
+ * @private
418
+ * @this {OffsetThis}
419
+ * @description Sets the position of an element relative to the selection range in the editor.
420
+ * - This method calculates the top and left offsets for the element, ensuring it
421
+ * - does not overflow the editor boundaries and adjusts the arrow positioning accordingly.
422
+ * @param {boolean} isDirTop - Determines whether the element should be positioned above (`true`) or below (`false`) the target.
423
+ * @param {RectsInfo} rects - Bounding rectangle information of the selection range.
424
+ * @param {HTMLElement} element - The element to be positioned.
425
+ * @param {number} editorLeft - The left position of the editor.
426
+ * @param {number} editorWidth - The width of the editor.
427
+ * @param {number} scrollLeft - The horizontal scroll offset.
428
+ * @param {number} scrollTop - The vertical scroll offset.
429
+ * @param {number} [addTop=0] - Additional top margin adjustment.
430
+ */
431
+ _setOffsetOnRange(
432
+ this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>,
433
+ isDirTop: boolean,
434
+ rects: RectsInfo,
435
+ element: HTMLElement,
436
+ editorLeft: number,
437
+ editorWidth: number,
438
+ scrollLeft: number,
439
+ scrollTop: number,
440
+ addTop?: number
441
+ ): void;
442
+ /**
443
+ * @private
444
+ * @this {OffsetThis}
445
+ * @description Get available space from page bottom
446
+ * @returns {number} Available space
447
+ */
448
+ _getPageBottomSpace(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>): number;
449
+ /**
450
+ * @private
451
+ * @this {OffsetThis}
452
+ * @description Calculates the vertical margin offsets for the target element relative to the editor frame.
453
+ * - This method determines the top and bottom margins based on various conditions such as
454
+ * - fullscreen mode, iframe usage, toolbar height, and scroll positions.
455
+ * @param {number} tmtw Top margin to window
456
+ * @param {number} tmbw Bottom margin to window
457
+ * @param {number} toolbarH Toolbar height
458
+ * @param {{w: number, h: number}} clientSize documentElement.clientWidth, documentElement.clientHeight
459
+ * @param {RectsInfo} targetRect Target rect object
460
+ * @param {boolean} isTargetAbs Is target absolute position
461
+ * @param {OffsetWWScrollInfo} wwScroll WYSIWYG scroll info
462
+ * @returns {{rmt:number, rmb:number, rt:number}} Margin values (rmt: top margin, rmb: bottom margin, rt: Toolbar height offset adjustment)
463
+ */
464
+ _getVMargin(
465
+ this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>,
466
+ tmtw: number,
467
+ tmbw: number,
468
+ toolbarH: number,
469
+ clientSize: {
470
+ w: number;
471
+ h: number;
472
+ },
473
+ targetRect: RectsInfo,
474
+ isTargetAbs: boolean,
475
+ wwScroll: OffsetWWScrollInfo
476
+ ): {
477
+ rmt: number;
478
+ rmb: number;
479
+ rt: number;
480
+ };
481
+ /**
482
+ * @private
483
+ * @this {OffsetThis}
484
+ * @description Sets the visibility and direction of the arrow element.
485
+ * - This method applies the appropriate class (`se-arrow-up` or `se-arrow-down`)
486
+ * - based on the specified direction key and adjusts the visibility of the arrow.
487
+ * @param {HTMLElement} arrow - The arrow element to be updated.
488
+ * @param {string} key - The direction of the arrow. ("up"|"down"|"")
489
+ * - Accepts `'up'` for an upward arrow, `'down'` for a downward arrow,
490
+ * - or any other value to hide the arrow.
491
+ */
492
+ _setArrow(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>, arrow: HTMLElement, key: string): void;
493
+ /**
494
+ * @private
495
+ * @this {OffsetThis}
496
+ * @description Retrieves the current window scroll position and viewport size.
497
+ * - Returns an object containing the scroll offsets, viewport dimensions, and boundary rects.
498
+ * @returns {{
499
+ * top: number,
500
+ * left: number,
501
+ * width: number,
502
+ * height: number,
503
+ * bottom: number,
504
+ * rects: RectsInfo
505
+ * }} An object with scroll and viewport information.
506
+ */
507
+ _getWindowScroll(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>): {
508
+ top: number;
509
+ left: number;
510
+ width: number;
511
+ height: number;
512
+ bottom: number;
513
+ rects: RectsInfo;
514
+ };
515
+ /**
516
+ * @private
517
+ * @this {OffsetThis}
518
+ * @description Removes the global scroll event listener from the editor.
519
+ * - Resets related scroll tracking properties.
520
+ */
521
+ __removeGlobalEvent(this: Omit<Offset & Partial<import('../../editorInjector').default>, 'offset'>): void;
522
+ }