uiik 1.3.0-beta.1 → 1.3.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/detector.d.ts +0 -19
- package/draggable.d.ts +0 -20
- package/droppable.d.ts +0 -21
- package/index.esm.js +52 -449
- package/index.js +55 -451
- package/package.json +1 -1
- package/resizable.d.ts +0 -14
- package/rotatable.d.ts +0 -14
- package/selectable.d.ts +0 -20
- package/sortable.d.ts +0 -24
- package/splittable.d.ts +0 -17
- package/transform.d.ts +2 -28
- package/types.d.ts +7 -311
- package/utils.d.ts +0 -82
package/types.d.ts
CHANGED
|
@@ -1,106 +1,40 @@
|
|
|
1
|
-
|
|
2
|
-
* A Base class for all Uii classes
|
|
3
|
-
*/
|
|
1
|
+
import { UiiTransform } from './transform';
|
|
4
2
|
export declare abstract class Uii {
|
|
5
3
|
#private;
|
|
6
|
-
/**
|
|
7
|
-
* 处理过的dom元素数组
|
|
8
|
-
*/
|
|
9
4
|
protected ele: Array<HTMLElement>;
|
|
10
|
-
/**
|
|
11
|
-
* 当前uii对象的选项
|
|
12
|
-
*/
|
|
13
5
|
opts: Record<string, any>;
|
|
14
6
|
protected enabled: boolean;
|
|
15
7
|
protected eleString: string;
|
|
16
8
|
constructor(ele: string | Element | NodeList | HTMLCollection | Array<string | Element>, opts?: Record<string, any>);
|
|
17
|
-
/**
|
|
18
|
-
* 销毁uii对象,包括卸载事件、清空元素等
|
|
19
|
-
*/
|
|
20
9
|
destroy(): void;
|
|
21
10
|
addPointerDown(el: Element, pointerDown: (args: Record<string, any>) => void | boolean, opts: {
|
|
22
11
|
threshold?: number;
|
|
23
12
|
lockPage?: boolean;
|
|
24
13
|
}): void;
|
|
25
|
-
/**
|
|
26
|
-
* 注册事件,以便在{@link destroy}方法中卸载
|
|
27
|
-
* @param el dom元素
|
|
28
|
-
* @param event 事件名
|
|
29
|
-
* @param hook 回调函数
|
|
30
|
-
* @param useCapture 默认false
|
|
31
|
-
*/
|
|
32
14
|
registerEvent(el: Element, event: string, hook: Function, useCapture?: boolean): void;
|
|
33
|
-
/**
|
|
34
|
-
* 禁用uii实例,禁用后的dom不会响应事件
|
|
35
|
-
*/
|
|
36
15
|
disable(): void;
|
|
37
|
-
/**
|
|
38
|
-
* 启用uii实例
|
|
39
|
-
*/
|
|
40
16
|
enable(): void;
|
|
41
|
-
/**
|
|
42
|
-
* 获取uii实例选项对象
|
|
43
|
-
*/
|
|
44
17
|
getOptions(): Record<string, any>;
|
|
45
|
-
/**
|
|
46
|
-
* 获取指定名称的选项值
|
|
47
|
-
* @param name
|
|
48
|
-
* @returns
|
|
49
|
-
*/
|
|
50
18
|
getOption(name: string): any;
|
|
51
|
-
/**
|
|
52
|
-
* 设置多个选项值。触发`onOptionChanged`
|
|
53
|
-
* @param options
|
|
54
|
-
*/
|
|
55
19
|
setOptions(options?: Record<string, any>): void;
|
|
56
|
-
/**
|
|
57
|
-
* 设置指定name的选项值。触发`onOptionChanged`
|
|
58
|
-
* @param name
|
|
59
|
-
* @param value
|
|
60
|
-
*/
|
|
61
20
|
setOption(name: string, value: any): void;
|
|
62
|
-
/**
|
|
63
|
-
* @internal
|
|
64
|
-
*/
|
|
65
21
|
protected onOptionChanged(opts?: Record<string, any>): void;
|
|
66
22
|
}
|
|
67
23
|
export type ResizableOptions = {
|
|
68
|
-
/**
|
|
69
|
-
* 控制器元素选择器(1-n个元素),如果为空表示点击任意元素即可触发
|
|
70
|
-
*/
|
|
71
24
|
handle?: ((target: HTMLElement | SVGGraphicsElement) => NodeList | HTMLCollection | HTMLElement[] | HTMLElement | SVGGraphicsElement) | string | NodeList | HTMLCollection | HTMLElement[] | HTMLElement | SVGGraphicsElement;
|
|
72
|
-
/**
|
|
73
|
-
* 拖动元素的最小size,如果是数组,表示 [width,height]
|
|
74
|
-
*/
|
|
75
25
|
minSize?: number | Array<number>;
|
|
76
|
-
/**
|
|
77
|
-
* 拖动元素的最大size,如果是数组,表示 [width,height]
|
|
78
|
-
*/
|
|
79
26
|
maxSize?: number | Array<number>;
|
|
80
|
-
/**
|
|
81
|
-
* resizable方向,默认[n,s,e,w,ne,nw,se,sw]
|
|
82
|
-
*/
|
|
83
27
|
dir?: string[];
|
|
84
|
-
/**
|
|
85
|
-
* 宽高比,小数
|
|
86
|
-
*/
|
|
87
28
|
aspectRatio?: number;
|
|
88
|
-
/**
|
|
89
|
-
* 开启ghost模式后,拖动元素时会自动创建元素副本并拖动副本,当拖动结束后,副本销毁并且元素移动到最后位置。默认false
|
|
90
|
-
*/
|
|
91
29
|
ghost?: boolean | Function;
|
|
92
30
|
ghostClass?: string;
|
|
93
31
|
ox?: number | string;
|
|
94
32
|
oy?: number | string;
|
|
95
|
-
/**
|
|
96
|
-
* 指针点击时触发,可用于阻止后续逻辑
|
|
97
|
-
* @param event
|
|
98
|
-
* @returns 返回false则停止后续逻辑
|
|
99
|
-
*/
|
|
100
33
|
onPointerDown?: (event: MouseEvent) => boolean;
|
|
101
34
|
onStart?: (data: {
|
|
102
35
|
w: number;
|
|
103
36
|
h: number;
|
|
37
|
+
transform: UiiTransform;
|
|
104
38
|
}, event: MouseEvent) => void;
|
|
105
39
|
onResize?: (data: {
|
|
106
40
|
w: number;
|
|
@@ -112,44 +46,25 @@ export type ResizableOptions = {
|
|
|
112
46
|
x: number;
|
|
113
47
|
y: number;
|
|
114
48
|
}>;
|
|
49
|
+
transform: UiiTransform;
|
|
115
50
|
}, event: MouseEvent) => void;
|
|
116
51
|
onEnd?: (data: {
|
|
117
52
|
w: number;
|
|
118
53
|
h: number;
|
|
54
|
+
transform: UiiTransform;
|
|
119
55
|
}, event: MouseEvent) => void;
|
|
120
56
|
onClone?: (data: {
|
|
121
57
|
clone: HTMLElement;
|
|
122
58
|
}, event: MouseEvent) => void;
|
|
123
59
|
};
|
|
124
60
|
export type SplittableOptions = {
|
|
125
|
-
/**
|
|
126
|
-
* handle宽/高,默认10
|
|
127
|
-
*/
|
|
128
61
|
handleSize?: number;
|
|
129
|
-
/**
|
|
130
|
-
* 最小区域,如果是数组可以按顺序定义分割区域,默认0
|
|
131
|
-
*/
|
|
132
62
|
minSize?: number | number[];
|
|
133
|
-
/**
|
|
134
|
-
* 单边模式,只修改单侧元素size,用于flex布局。可选值为 start/end
|
|
135
|
-
*/
|
|
136
63
|
oneSideMode?: "start" | "end";
|
|
137
|
-
/**
|
|
138
|
-
* 粘性吸附,如果是数组可以按顺序定义分割区域。设置minSize后生效
|
|
139
|
-
*/
|
|
140
64
|
sticky?: boolean | boolean[];
|
|
141
|
-
/**
|
|
142
|
-
* 自动创建的handle是否在元素内部插入,默认false
|
|
143
|
-
*/
|
|
144
65
|
inside?: boolean;
|
|
145
|
-
/**
|
|
146
|
-
* 开启ghost模式后,拖动元素时会自动创建元素副本并拖动副本,当拖动结束后,副本销毁且元素移动到最后位置。默认false
|
|
147
|
-
*/
|
|
148
66
|
ghost?: boolean;
|
|
149
67
|
ghostClass?: string;
|
|
150
|
-
/**
|
|
151
|
-
* 自定义handle选择器,多个使用空格分隔。handle元素可以是与分割元素平级或在分割元素内
|
|
152
|
-
*/
|
|
153
68
|
handle?: string;
|
|
154
69
|
onStart?: (data: {
|
|
155
70
|
size1: number;
|
|
@@ -173,95 +88,31 @@ export type SplittableOptions = {
|
|
|
173
88
|
}, event: MouseEvent) => void;
|
|
174
89
|
};
|
|
175
90
|
export type DraggableOptions = {
|
|
176
|
-
/**
|
|
177
|
-
* 限制活动范围,默认false
|
|
178
|
-
* boolean 值会获取第一个可拖动元素的parent元素
|
|
179
|
-
* string 选择器选中的第一个元素
|
|
180
|
-
* HTMLElement 包裹所有可拖动元素的容器
|
|
181
|
-
*/
|
|
182
91
|
containment?: boolean | HTMLElement | string;
|
|
183
|
-
/**
|
|
184
|
-
* 如果可拖动目标为选择器,会自动检测watch容器内选择器元素变动并附加拖动能力。默认true
|
|
185
|
-
* boolean 时容器取元素第一个的parent
|
|
186
|
-
* string 时获取选择器元素第一个
|
|
187
|
-
*/
|
|
188
92
|
watch?: boolean | string;
|
|
189
|
-
/**
|
|
190
|
-
* 拖动起始阈值,默认0
|
|
191
|
-
*/
|
|
192
93
|
threshold?: number;
|
|
193
|
-
/**
|
|
194
|
-
* 实际响应拖动的元素选择器,字符串
|
|
195
|
-
*/
|
|
196
94
|
handle?: string;
|
|
197
|
-
/**
|
|
198
|
-
* 禁止触发元素的css选择器
|
|
199
|
-
*/
|
|
200
95
|
filter?: string;
|
|
201
|
-
/**
|
|
202
|
-
* 拖动目标,dom/selector数组,用于拖动交互事件
|
|
203
|
-
*/
|
|
204
96
|
droppable?: (() => NodeList | HTMLCollection | HTMLElement[]) | string | HTMLElement | HTMLElement[];
|
|
205
|
-
/**
|
|
206
|
-
* 开启ghost模式后,拖动元素时会自动创建元素副本并拖动副本,当拖动结束后,副本销毁并且元素移动到最后位置。默认false,支持函数返回副本元素
|
|
207
|
-
*/
|
|
208
97
|
ghost?: ((el: HTMLElement) => HTMLElement) | boolean;
|
|
209
98
|
ghostClass?: string;
|
|
210
|
-
/**
|
|
211
|
-
* 传递v/h可实现单向拖动。默认''
|
|
212
|
-
*/
|
|
213
99
|
direction?: "v" | "h";
|
|
214
|
-
/**
|
|
215
|
-
* 是否在鼠标到达容器边缘时自动滚动,默认true
|
|
216
|
-
*/
|
|
217
100
|
scroll?: boolean;
|
|
218
|
-
/**
|
|
219
|
-
* 滚动速度,默认10
|
|
220
|
-
*/
|
|
221
101
|
scrollSpeed?: number;
|
|
222
|
-
/**
|
|
223
|
-
* 拖动时元素的zIndex
|
|
224
|
-
*/
|
|
225
102
|
zIndex?: number;
|
|
226
|
-
/**
|
|
227
|
-
* 可将不同的拖动元素编为一组,拖动时会自动管理zIndex
|
|
228
|
-
*/
|
|
229
103
|
group?: string;
|
|
230
|
-
/**
|
|
231
|
-
* 拖动时应用的class样式,多个使用空格分开
|
|
232
|
-
*/
|
|
233
104
|
classes?: string;
|
|
234
|
-
/**
|
|
235
|
-
* 拖动元素可自动吸附的目标元素选择器。字符串
|
|
236
|
-
*/
|
|
237
105
|
snap?: string;
|
|
238
106
|
snapOptions?: {
|
|
239
|
-
/**
|
|
240
|
-
* 吸附元素的移动误差,默认10
|
|
241
|
-
*/
|
|
242
107
|
tolerance: number;
|
|
243
108
|
};
|
|
244
|
-
/**
|
|
245
|
-
* 可定义拖动时不同状态下的指针,默认move
|
|
246
|
-
*/
|
|
247
109
|
cursor?: {
|
|
248
110
|
default?: string;
|
|
249
111
|
active?: string;
|
|
250
112
|
over?: string;
|
|
251
113
|
};
|
|
252
|
-
/**
|
|
253
|
-
* 网格拖动模式,每次移动指定的网格大小。数字或数字数组
|
|
254
|
-
*/
|
|
255
114
|
grid?: number | number[];
|
|
256
|
-
/**
|
|
257
|
-
* 拖动类型标识,用于droppable识别交互类型
|
|
258
|
-
*/
|
|
259
115
|
type?: string;
|
|
260
|
-
/**
|
|
261
|
-
* 指针点击时触发,可用于阻止后续逻辑
|
|
262
|
-
* @param event
|
|
263
|
-
* @returns 返回false则停止后续逻辑
|
|
264
|
-
*/
|
|
265
116
|
onPointerDown?: (data: {
|
|
266
117
|
draggable: HTMLElement | SVGGraphicsElement;
|
|
267
118
|
}, event: MouseEvent) => boolean;
|
|
@@ -269,32 +120,21 @@ export type DraggableOptions = {
|
|
|
269
120
|
draggable: HTMLElement | SVGGraphicsElement;
|
|
270
121
|
x: number;
|
|
271
122
|
y: number;
|
|
123
|
+
transform: UiiTransform;
|
|
272
124
|
}, event: MouseEvent) => void;
|
|
273
|
-
/**
|
|
274
|
-
* 拖动中调用,返回false阻止dom移动
|
|
275
|
-
* @param dragDom
|
|
276
|
-
* @param ev
|
|
277
|
-
* @param offsetX
|
|
278
|
-
* @param offsetY
|
|
279
|
-
* @returns
|
|
280
|
-
*/
|
|
281
125
|
onDrag?: (data: {
|
|
282
126
|
draggable: HTMLElement | SVGGraphicsElement;
|
|
283
127
|
x: number;
|
|
284
128
|
y: number;
|
|
285
129
|
ox: number;
|
|
286
130
|
oy: number;
|
|
131
|
+
transform: UiiTransform;
|
|
287
132
|
}, event: MouseEvent) => boolean | void;
|
|
288
|
-
/**
|
|
289
|
-
* 拖动结束后调用,返回false阻止ghost模式下的dom移动
|
|
290
|
-
* @param dragDom
|
|
291
|
-
* @param ev
|
|
292
|
-
* @returns
|
|
293
|
-
*/
|
|
294
133
|
onEnd?: (data: {
|
|
295
134
|
draggable: HTMLElement | SVGGraphicsElement;
|
|
296
135
|
x: number;
|
|
297
136
|
y: number;
|
|
137
|
+
transform: UiiTransform;
|
|
298
138
|
}, event: MouseEvent) => boolean | void;
|
|
299
139
|
onClone?: (data: {
|
|
300
140
|
clone: HTMLElement | SVGGraphicsElement;
|
|
@@ -308,24 +148,9 @@ export type DraggableOptions = {
|
|
|
308
148
|
}, event: MouseEvent) => void;
|
|
309
149
|
};
|
|
310
150
|
export type DroppableOptions = {
|
|
311
|
-
/**
|
|
312
|
-
* 当accepts的draggable对象开始拖动时,自动设置该样式。多个样式使用空格分隔
|
|
313
|
-
*/
|
|
314
151
|
activeClass?: string;
|
|
315
|
-
/**
|
|
316
|
-
* 当accepts的draggable对象拖动到droppable元素上时,自动设置该样式。多个样式使用空格分隔
|
|
317
|
-
*/
|
|
318
152
|
hoverClass?: string;
|
|
319
|
-
/**
|
|
320
|
-
* 定义哪些draggable元素进行交互。如果是字符串,支持不同Draggable对象进行编组
|
|
321
|
-
*/
|
|
322
153
|
accepts?: ((ele: Array<HTMLElement>, draggable: HTMLElement) => boolean) | string;
|
|
323
|
-
/**
|
|
324
|
-
* 当accepts的draggable对象开始拖动时触发
|
|
325
|
-
* @param draggable
|
|
326
|
-
* @param ele
|
|
327
|
-
* @returns
|
|
328
|
-
*/
|
|
329
154
|
onActive?: (data: {
|
|
330
155
|
draggable: HTMLElement;
|
|
331
156
|
droppables: Array<HTMLElement>;
|
|
@@ -346,36 +171,19 @@ export type DroppableOptions = {
|
|
|
346
171
|
draggable: HTMLElement;
|
|
347
172
|
droppable: HTMLElement;
|
|
348
173
|
}, event: MouseEvent) => void;
|
|
349
|
-
/**
|
|
350
|
-
* 当accepts的draggable对象结束拖动时触发
|
|
351
|
-
* @param draggable
|
|
352
|
-
* @param ele
|
|
353
|
-
* @returns
|
|
354
|
-
*/
|
|
355
174
|
onDeactive?: (data: {
|
|
356
175
|
draggable: HTMLElement;
|
|
357
176
|
droppables: Array<HTMLElement>;
|
|
358
177
|
}) => void;
|
|
359
178
|
};
|
|
360
179
|
export type RotatableOptions = {
|
|
361
|
-
/**
|
|
362
|
-
* 可定义拖动时不同状态下的指针,默认crosshair
|
|
363
|
-
*/
|
|
364
180
|
cursor?: {
|
|
365
181
|
default?: string;
|
|
366
182
|
active?: string;
|
|
367
183
|
};
|
|
368
184
|
ox?: number | string;
|
|
369
185
|
oy?: number | string;
|
|
370
|
-
/**
|
|
371
|
-
* 控制器元素选择器(1-n个元素),如果为空表示点击任意元素即可触发
|
|
372
|
-
*/
|
|
373
186
|
handle?: ((target: HTMLElement | SVGGraphicsElement) => NodeList | HTMLCollection | HTMLElement[] | HTMLElement | SVGGraphicsElement) | string | NodeList | HTMLCollection | HTMLElement[] | HTMLElement | SVGGraphicsElement;
|
|
374
|
-
/**
|
|
375
|
-
* 指针点击时触发,可用于阻止后续逻辑
|
|
376
|
-
* @param event
|
|
377
|
-
* @returns 返回false则停止后续逻辑
|
|
378
|
-
*/
|
|
379
187
|
onPointerDown?: (event: MouseEvent) => boolean;
|
|
380
188
|
onStart?: (data: {
|
|
381
189
|
deg: number;
|
|
@@ -395,43 +203,14 @@ export type RotatableOptions = {
|
|
|
395
203
|
}, event: MouseEvent) => {};
|
|
396
204
|
};
|
|
397
205
|
export type SelectableOptions = {
|
|
398
|
-
/**
|
|
399
|
-
* 选择器样式字符串,多个使用空格分隔
|
|
400
|
-
*/
|
|
401
206
|
class?: string;
|
|
402
|
-
/**
|
|
403
|
-
* 选择器拖动进行中,被选中元素应用的样式字符串,多个使用空格分隔
|
|
404
|
-
*/
|
|
405
207
|
selectingClass?: string;
|
|
406
|
-
/**
|
|
407
|
-
* 选择器拖动结束后,被选中元素应用的样式字符串,多个使用空格分隔
|
|
408
|
-
*/
|
|
409
208
|
selectedClass?: string;
|
|
410
|
-
/**
|
|
411
|
-
* 容器中可选择的元素。可以是选择器字符串或返回元素数组的函数
|
|
412
|
-
*/
|
|
413
209
|
targets?: (() => NodeList | HTMLCollection | HTMLElement[]) | string;
|
|
414
|
-
/**
|
|
415
|
-
* 选择模式,默认overlap
|
|
416
|
-
*/
|
|
417
210
|
mode?: "overlap" | "inclusion";
|
|
418
|
-
/**
|
|
419
|
-
* 是否在鼠标到达容器边缘时自动滚动,默认true
|
|
420
|
-
*/
|
|
421
211
|
scroll?: boolean;
|
|
422
|
-
/**
|
|
423
|
-
* 滚动速度,默认10
|
|
424
|
-
*/
|
|
425
212
|
scrollSpeed?: number;
|
|
426
|
-
/**
|
|
427
|
-
* 禁止触发元素的css选择器或校验函数,函数返回true表示需要过滤
|
|
428
|
-
*/
|
|
429
213
|
filter?: ((el: HTMLElement) => boolean) | string;
|
|
430
|
-
/**
|
|
431
|
-
* 指针点击时触发,可用于阻止后续逻辑
|
|
432
|
-
* @param event
|
|
433
|
-
* @returns 返回false则停止后续逻辑
|
|
434
|
-
*/
|
|
435
214
|
onPointerDown?: (event: MouseEvent) => boolean;
|
|
436
215
|
onStart?: (data: {
|
|
437
216
|
selection: Array<HTMLElement>;
|
|
@@ -447,67 +226,20 @@ export type SelectableOptions = {
|
|
|
447
226
|
}, event: MouseEvent) => void;
|
|
448
227
|
};
|
|
449
228
|
export type SortableOptions = {
|
|
450
|
-
/**
|
|
451
|
-
* 是否在鼠标到达容器边缘时自动滚动,默认true
|
|
452
|
-
*/
|
|
453
229
|
scroll?: boolean;
|
|
454
|
-
/**
|
|
455
|
-
* 滚动速度,默认10
|
|
456
|
-
*/
|
|
457
230
|
scrollSpeed?: number;
|
|
458
|
-
/**
|
|
459
|
-
* 禁止触发元素的css选择器
|
|
460
|
-
*/
|
|
461
231
|
filter?: string;
|
|
462
|
-
/**
|
|
463
|
-
* ghost元素插入的容器,默认document.body
|
|
464
|
-
*/
|
|
465
232
|
ghostContainer?: HTMLElement;
|
|
466
|
-
/**
|
|
467
|
-
* ghost元素样式
|
|
468
|
-
*/
|
|
469
233
|
ghostClass?: string;
|
|
470
|
-
/**
|
|
471
|
-
* 用于标识一组sortable容器。当newSortable容器是一组元素时即使该属性为空,也会自动创建匿名group
|
|
472
|
-
*/
|
|
473
234
|
group?: string;
|
|
474
|
-
/**
|
|
475
|
-
* 自定义handle选择器
|
|
476
|
-
*/
|
|
477
235
|
handle?: string;
|
|
478
|
-
/**
|
|
479
|
-
* 当相同group的sortable元素开始拖动时,自动为move.from为true的sortable容器设置该样式。多个样式使用空格分隔
|
|
480
|
-
*/
|
|
481
236
|
activeClass?: string;
|
|
482
|
-
/**
|
|
483
|
-
* 指定sortable元素的拖动策略
|
|
484
|
-
*/
|
|
485
237
|
move?: {
|
|
486
|
-
/**
|
|
487
|
-
* 表示元素从fromContainer的移出策略,默认true
|
|
488
|
-
*/
|
|
489
238
|
to?: ((item: HTMLElement, from: HTMLElement) => boolean) | boolean | 'copy';
|
|
490
|
-
/**
|
|
491
|
-
* 表示来自fromContainer的元素对toContainers的移入策略,默认true
|
|
492
|
-
*/
|
|
493
239
|
from?: ((item: HTMLElement, from: HTMLElement, to: HTMLElement) => boolean) | boolean;
|
|
494
240
|
};
|
|
495
|
-
/**
|
|
496
|
-
* 当ghost元素移出容器后列表元素的处理方式
|
|
497
|
-
* remove 删除列表元素
|
|
498
|
-
* revert 复原拖动前位置
|
|
499
|
-
*/
|
|
500
241
|
spill?: 'remove' | 'revert';
|
|
501
|
-
/**
|
|
502
|
-
* 是否可排序,默认true
|
|
503
|
-
*/
|
|
504
242
|
sort?: boolean;
|
|
505
|
-
/**
|
|
506
|
-
* 当一组中的任意sortable容器中的元素被拖动时,其他容器会触发激活事件
|
|
507
|
-
* @param data
|
|
508
|
-
* @param event
|
|
509
|
-
* @returns
|
|
510
|
-
*/
|
|
511
243
|
onActive?: (data: {
|
|
512
244
|
item: HTMLElement;
|
|
513
245
|
from: HTMLElement;
|
|
@@ -521,22 +253,11 @@ export type SortableOptions = {
|
|
|
521
253
|
from: HTMLElement;
|
|
522
254
|
index: number;
|
|
523
255
|
}, event: MouseEvent) => void;
|
|
524
|
-
/**
|
|
525
|
-
* 拖动结束后触发
|
|
526
|
-
* @param data
|
|
527
|
-
* @param event
|
|
528
|
-
* @returns
|
|
529
|
-
*/
|
|
530
256
|
onEnd?: (data: {
|
|
531
257
|
item: HTMLElement;
|
|
532
258
|
from: HTMLElement;
|
|
533
259
|
to: HTMLElement;
|
|
534
260
|
}, event: MouseEvent) => void;
|
|
535
|
-
/**
|
|
536
|
-
* 拖动中且排序发生变更时触发
|
|
537
|
-
* @param data
|
|
538
|
-
* @param event
|
|
539
|
-
*/
|
|
540
261
|
onChange?: (data: {
|
|
541
262
|
item: HTMLElement;
|
|
542
263
|
from: HTMLElement;
|
|
@@ -544,53 +265,28 @@ export type SortableOptions = {
|
|
|
544
265
|
fromIndex: number;
|
|
545
266
|
toIndex: number;
|
|
546
267
|
}, event: MouseEvent) => void;
|
|
547
|
-
/**
|
|
548
|
-
* 拖动结束后,如果列表排序发生变更时触发,包括顺序变更或新增节点或移除节点
|
|
549
|
-
* @param data
|
|
550
|
-
* @param event
|
|
551
|
-
*/
|
|
552
268
|
onUpdate?: (data: {
|
|
553
269
|
item: HTMLElement;
|
|
554
270
|
from: HTMLElement;
|
|
555
271
|
to: HTMLElement;
|
|
556
272
|
}, event: MouseEvent) => void;
|
|
557
|
-
/**
|
|
558
|
-
* 拖动中指针进入sortable容器时触发
|
|
559
|
-
* @param data
|
|
560
|
-
* @param event
|
|
561
|
-
*/
|
|
562
273
|
onEnter?: (data: {
|
|
563
274
|
item: HTMLElement;
|
|
564
275
|
from: HTMLElement;
|
|
565
276
|
to: HTMLElement;
|
|
566
277
|
dir: string;
|
|
567
278
|
}, event: MouseEvent) => void;
|
|
568
|
-
/**
|
|
569
|
-
* 拖动中指针离开sortable容器时触发
|
|
570
|
-
* @param data
|
|
571
|
-
* @param event
|
|
572
|
-
*/
|
|
573
279
|
onLeave?: (data: {
|
|
574
280
|
item: HTMLElement;
|
|
575
281
|
from: HTMLElement;
|
|
576
282
|
to: HTMLElement;
|
|
577
283
|
}, event: MouseEvent) => void;
|
|
578
|
-
/**
|
|
579
|
-
* 拖动元素插入到sortable容器中时触发
|
|
580
|
-
* @param data
|
|
581
|
-
* @param event
|
|
582
|
-
*/
|
|
583
284
|
onAdd?: (data: {
|
|
584
285
|
item: HTMLElement;
|
|
585
286
|
from: HTMLElement;
|
|
586
287
|
to: HTMLElement;
|
|
587
288
|
index: number;
|
|
588
289
|
}, event: MouseEvent) => void;
|
|
589
|
-
/**
|
|
590
|
-
* 拖动元素从sortable容器中删除时触发
|
|
591
|
-
* @param data
|
|
592
|
-
* @param event
|
|
593
|
-
*/
|
|
594
290
|
onRemove?: (data: {
|
|
595
291
|
item: HTMLElement;
|
|
596
292
|
from: HTMLElement;
|
package/utils.d.ts
CHANGED
|
@@ -1,40 +1,16 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 工具包
|
|
3
|
-
* @author holyhigh2
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* 一角度对应的弧度
|
|
7
|
-
*/
|
|
8
1
|
export declare const ONE_ANG: number;
|
|
9
|
-
/**
|
|
10
|
-
* 一弧度对应的角度
|
|
11
|
-
*/
|
|
12
2
|
export declare const ONE_RAD: number;
|
|
13
|
-
/**
|
|
14
|
-
* 获取child相对于parent的位置信息。含border宽度
|
|
15
|
-
*
|
|
16
|
-
* todo
|
|
17
|
-
* @returns {x,y,w,h}
|
|
18
|
-
*/
|
|
19
3
|
export declare function getBox(child: Element, parent?: Element): {
|
|
20
4
|
x: number;
|
|
21
5
|
y: number;
|
|
22
6
|
w: number;
|
|
23
7
|
h: number;
|
|
24
8
|
};
|
|
25
|
-
/**
|
|
26
|
-
* 获取事件目标与点击点之间的偏移
|
|
27
|
-
* @param e
|
|
28
|
-
* @returns [offx,offy]
|
|
29
|
-
*/
|
|
30
9
|
export declare function getPointOffset(e: MouseEvent, pos: {
|
|
31
10
|
x: number;
|
|
32
11
|
y: number;
|
|
33
12
|
}): number[];
|
|
34
13
|
export declare function isSVGEl(el: Element): el is SVGElement;
|
|
35
|
-
/**
|
|
36
|
-
* 边缘检测最小内部边距
|
|
37
|
-
*/
|
|
38
14
|
export declare const EDGE_THRESHOLD = 5;
|
|
39
15
|
export declare const DRAGGING_RULE = "body * { pointer-events: none; }";
|
|
40
16
|
export declare function lockPage(): void;
|
|
@@ -42,41 +18,20 @@ export declare function unlockPage(): void;
|
|
|
42
18
|
export declare function saveCursor(): void;
|
|
43
19
|
export declare function setCursor(cursor: string): void;
|
|
44
20
|
export declare function restoreCursor(): void;
|
|
45
|
-
/**
|
|
46
|
-
* 获取元素样式/属性中的x/y
|
|
47
|
-
* @param el
|
|
48
|
-
*/
|
|
49
21
|
export declare function getStyleXy(el: HTMLElement | SVGGraphicsElement): {
|
|
50
22
|
x: number;
|
|
51
23
|
y: number;
|
|
52
24
|
};
|
|
53
|
-
/**
|
|
54
|
-
* 获取元素样式/属性中的w/h
|
|
55
|
-
* @param el
|
|
56
|
-
*/
|
|
57
25
|
export declare function getStyleSize(el: HTMLElement | SVGGraphicsElement, cStyle?: CSSStyleDeclaration): {
|
|
58
26
|
w: number;
|
|
59
27
|
h: number;
|
|
60
28
|
};
|
|
61
|
-
/**
|
|
62
|
-
* 获取matrix中的scale/angle
|
|
63
|
-
* @param elCStyle
|
|
64
|
-
* @returns
|
|
65
|
-
*/
|
|
66
29
|
export declare function getMatrixInfo(elCStyle: CSSStyleDeclaration | HTMLElement | SVGGraphicsElement): {
|
|
67
30
|
scale: number;
|
|
68
31
|
angle: number;
|
|
69
32
|
x: number;
|
|
70
33
|
y: number;
|
|
71
34
|
};
|
|
72
|
-
/**
|
|
73
|
-
* 获取当前鼠标相对于指定元素el的坐标
|
|
74
|
-
* @param event 点击事件
|
|
75
|
-
* @param el 元素
|
|
76
|
-
* @param elRect 元素的DOMRect
|
|
77
|
-
* @param elCStyle 元素的计算样式
|
|
78
|
-
* @returns
|
|
79
|
-
*/
|
|
80
35
|
export declare function getPointInContainer(event: MouseEvent | PointerEvent, el: HTMLElement | SVGGraphicsElement, elRect?: DOMRect, elCStyle?: CSSStyleDeclaration, matrixInfo?: {
|
|
81
36
|
scale: number;
|
|
82
37
|
angle: number;
|
|
@@ -84,24 +39,12 @@ export declare function getPointInContainer(event: MouseEvent | PointerEvent, el
|
|
|
84
39
|
x: number;
|
|
85
40
|
y: number;
|
|
86
41
|
};
|
|
87
|
-
/**
|
|
88
|
-
* 获取元素el在容器container中的相对boundingBox
|
|
89
|
-
* @param el
|
|
90
|
-
* @param container
|
|
91
|
-
*/
|
|
92
42
|
export declare function getRectInContainer(el: HTMLElement | SVGGraphicsElement, container: HTMLElement | SVGGraphicsElement): {
|
|
93
43
|
x: number;
|
|
94
44
|
y: number;
|
|
95
45
|
w: number;
|
|
96
46
|
h: number;
|
|
97
47
|
};
|
|
98
|
-
/**
|
|
99
|
-
* 获取指定元素的圆心坐标
|
|
100
|
-
* @param el
|
|
101
|
-
* @param left
|
|
102
|
-
* @param top
|
|
103
|
-
* @returns
|
|
104
|
-
*/
|
|
105
48
|
export declare function getCenterXy(el: HTMLElement, ox?: number, oy?: number): {
|
|
106
49
|
sx: number;
|
|
107
50
|
sy: number;
|
|
@@ -118,39 +61,14 @@ export declare function getCenterXySVG(el: SVGGraphicsElement, ox: number, oy: n
|
|
|
118
61
|
ox: number;
|
|
119
62
|
oy: number;
|
|
120
63
|
};
|
|
121
|
-
/**
|
|
122
|
-
* 获取元素当前顶点
|
|
123
|
-
* @param el
|
|
124
|
-
* @param ox 相对于图形左上角的圆心偏移,支持数字/百分比,仅对SVG元素有效,对于非SVG元素使用transform-origin属性
|
|
125
|
-
* @param oy
|
|
126
|
-
*/
|
|
127
64
|
export declare function getVertex(el: HTMLElement | SVGGraphicsElement, ox: number | string, oy: number | string): Array<{
|
|
128
65
|
x: number;
|
|
129
66
|
y: number;
|
|
130
67
|
}>;
|
|
131
|
-
/**
|
|
132
|
-
* 计算指定矩形旋转后的顶点坐标
|
|
133
|
-
* @param w 宽
|
|
134
|
-
* @param h 高
|
|
135
|
-
* @param cx 圆心
|
|
136
|
-
* @param cy
|
|
137
|
-
* @param sx
|
|
138
|
-
* @param sy
|
|
139
|
-
* @param radian 旋转角 弧度值
|
|
140
|
-
* @returns
|
|
141
|
-
*/
|
|
142
68
|
export declare function calcVertex(w: number, h: number, cx: number, cy: number, sx: number, sy: number, radian: number): Array<{
|
|
143
69
|
x: number;
|
|
144
70
|
y: number;
|
|
145
71
|
}>;
|
|
146
|
-
/**
|
|
147
|
-
* 解析ox/y
|
|
148
|
-
* @param ox 如果不是number或string,originX为0
|
|
149
|
-
* @param oy 如果不是number或string,originY为0
|
|
150
|
-
* @param w
|
|
151
|
-
* @param h
|
|
152
|
-
* @returns {originX,originY}
|
|
153
|
-
*/
|
|
154
72
|
export declare function parseOxy(ox: any, oy: any, w: number, h: number): {
|
|
155
73
|
originX: number;
|
|
156
74
|
originY: number;
|