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