@tmagic/stage 1.3.10 → 1.3.12
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/dist/tmagic-stage.js +15 -5
- package/dist/tmagic-stage.umd.cjs +14 -4
- package/package.json +4 -4
- package/src/ActionManager.ts +8 -2
- package/src/StageCore.ts +8 -1
- package/src/TargetShadow.ts +4 -2
- package/src/types.ts +2 -2
- package/src/util.ts +1 -0
- package/types/ActionManager.d.ts +2 -1
- package/types/StageCore.d.ts +2 -1
- package/types/types.d.ts +2 -2
- package/dist/tmagic-stage.js.map +0 -1
- package/dist/tmagic-stage.umd.cjs.map +0 -1
package/dist/tmagic-stage.js
CHANGED
|
@@ -2,7 +2,7 @@ import EventEmitter, { EventEmitter as EventEmitter$1 } from 'events';
|
|
|
2
2
|
import KeyController from 'keycon';
|
|
3
3
|
import { merge, throttle } from 'lodash-es';
|
|
4
4
|
import { Env } from '@tmagic/core';
|
|
5
|
-
import { removeClassName, addClassName, removeClassNameByClassName, getDocument, createDiv, injectStyle, isSameDomain, getHost } from '@tmagic/utils';
|
|
5
|
+
import { removeClassName, guid, addClassName, removeClassNameByClassName, getDocument, createDiv, injectStyle, isSameDomain, getHost } from '@tmagic/utils';
|
|
6
6
|
import MoveableHelper from 'moveable-helper';
|
|
7
7
|
import Moveable from 'moveable';
|
|
8
8
|
import Guides from '@scena/guides';
|
|
@@ -82,6 +82,7 @@ const getTargetElStyle = (el, zIndex) => {
|
|
|
82
82
|
width: ${el.clientWidth}px;
|
|
83
83
|
height: ${el.clientHeight}px;
|
|
84
84
|
border: ${border};
|
|
85
|
+
opacity: 0;
|
|
85
86
|
${typeof zIndex !== "undefined" ? `z-index: ${zIndex};` : ""}
|
|
86
87
|
`;
|
|
87
88
|
};
|
|
@@ -252,7 +253,7 @@ const getBorderWidth = (el) => {
|
|
|
252
253
|
class TargetShadow {
|
|
253
254
|
el;
|
|
254
255
|
els = [];
|
|
255
|
-
idPrefix =
|
|
256
|
+
idPrefix = `target_calibrate_${guid()}`;
|
|
256
257
|
container;
|
|
257
258
|
scrollLeft = 0;
|
|
258
259
|
scrollTop = 0;
|
|
@@ -267,7 +268,7 @@ class TargetShadow {
|
|
|
267
268
|
this.zIndex = config.zIndex;
|
|
268
269
|
}
|
|
269
270
|
if (config.idPrefix) {
|
|
270
|
-
this.idPrefix = config.idPrefix
|
|
271
|
+
this.idPrefix = `${config.idPrefix}_${guid()}`;
|
|
271
272
|
}
|
|
272
273
|
this.container.addEventListener("customScroll", this.scrollHandler);
|
|
273
274
|
}
|
|
@@ -1620,7 +1621,7 @@ class ActionManager extends EventEmitter {
|
|
|
1620
1621
|
return;
|
|
1621
1622
|
const els = this.getElementsFromPoint(event);
|
|
1622
1623
|
for (const el of els) {
|
|
1623
|
-
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && await this.isContainer(el) && !excludeElList.includes(el)) {
|
|
1624
|
+
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && await this.isContainer?.(el) && !excludeElList.includes(el)) {
|
|
1624
1625
|
addClassName(el, doc, this.containerHighlightClassName);
|
|
1625
1626
|
break;
|
|
1626
1627
|
}
|
|
@@ -1649,6 +1650,7 @@ class ActionManager extends EventEmitter {
|
|
|
1649
1650
|
this.container.removeEventListener("mousemove", this.mouseMoveHandler);
|
|
1650
1651
|
this.container.removeEventListener("mouseleave", this.mouseLeaveHandler);
|
|
1651
1652
|
this.container.removeEventListener("wheel", this.mouseWheelHandler);
|
|
1653
|
+
this.container.removeEventListener("dblclick", this.dblclickHandler);
|
|
1652
1654
|
this.dr.destroy();
|
|
1653
1655
|
this.multiDr?.destroy();
|
|
1654
1656
|
this.highlightLayer.destroy();
|
|
@@ -1772,6 +1774,7 @@ class ActionManager extends EventEmitter {
|
|
|
1772
1774
|
this.container.addEventListener("mousemove", this.mouseMoveHandler);
|
|
1773
1775
|
this.container.addEventListener("mouseleave", this.mouseLeaveHandler);
|
|
1774
1776
|
this.container.addEventListener("wheel", this.mouseWheelHandler);
|
|
1777
|
+
this.container.addEventListener("dblclick", this.dblclickHandler);
|
|
1775
1778
|
}
|
|
1776
1779
|
/**
|
|
1777
1780
|
* 初始化键盘事件监听
|
|
@@ -1862,6 +1865,9 @@ class ActionManager extends EventEmitter {
|
|
|
1862
1865
|
mouseWheelHandler = () => {
|
|
1863
1866
|
this.clearHighlight();
|
|
1864
1867
|
};
|
|
1868
|
+
dblclickHandler = (event) => {
|
|
1869
|
+
this.emit("dblclick", event);
|
|
1870
|
+
};
|
|
1865
1871
|
}
|
|
1866
1872
|
|
|
1867
1873
|
class Rule extends EventEmitter {
|
|
@@ -2611,6 +2617,9 @@ class StageCore extends EventEmitter$1 {
|
|
|
2611
2617
|
* 监听页面大小变化
|
|
2612
2618
|
*/
|
|
2613
2619
|
observePageResize(page) {
|
|
2620
|
+
if (this.pageResizeObserver) {
|
|
2621
|
+
this.pageResizeObserver.disconnect();
|
|
2622
|
+
}
|
|
2614
2623
|
if (typeof ResizeObserver !== "undefined") {
|
|
2615
2624
|
this.pageResizeObserver = new ResizeObserver((entries) => {
|
|
2616
2625
|
this.mask.pageResize(entries);
|
|
@@ -2676,6 +2685,8 @@ class StageCore extends EventEmitter$1 {
|
|
|
2676
2685
|
this.multiSelect(idOrElList);
|
|
2677
2686
|
}).on("multi-select", (selectedElList, event) => {
|
|
2678
2687
|
this.emit("multi-select", selectedElList, event);
|
|
2688
|
+
}).on("dblclick", (event) => {
|
|
2689
|
+
this.emit("dblclick", event);
|
|
2679
2690
|
});
|
|
2680
2691
|
}
|
|
2681
2692
|
/**
|
|
@@ -2726,4 +2737,3 @@ class StageCore extends EventEmitter$1 {
|
|
|
2726
2737
|
}
|
|
2727
2738
|
|
|
2728
2739
|
export { AbleActionEventType, CONTAINER_HIGHLIGHT_CLASS_NAME, ContainerHighlightType, DEFAULT_ZOOM, DRAG_EL_ID_PREFIX, GHOST_EL_ID_PREFIX, GuidesType, HIGHLIGHT_EL_ID_PREFIX, Mode, MouseButton, PAGE_CLASS, RenderType, SELECTED_CLASS, SelectStatus, StageDragResize, StageDragStatus, StageMask, StageRender, ZIndex, addSelectedClassName, calcValueByFontsize, StageCore as default, down, getAbsolutePosition, getBorderWidth, getMarginValue, getMode, getOffset, getScrollParent, getTargetElStyle, isAbsolute, isFixed, isFixedParent, isMoveableButton, isRelative, isStatic, removeSelectedClassName, up };
|
|
2729
|
-
//# sourceMappingURL=tmagic-stage.js.map
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
width: ${el.clientWidth}px;
|
|
80
80
|
height: ${el.clientHeight}px;
|
|
81
81
|
border: ${border};
|
|
82
|
+
opacity: 0;
|
|
82
83
|
${typeof zIndex !== "undefined" ? `z-index: ${zIndex};` : ""}
|
|
83
84
|
`;
|
|
84
85
|
};
|
|
@@ -249,7 +250,7 @@
|
|
|
249
250
|
class TargetShadow {
|
|
250
251
|
el;
|
|
251
252
|
els = [];
|
|
252
|
-
idPrefix =
|
|
253
|
+
idPrefix = `target_calibrate_${utils.guid()}`;
|
|
253
254
|
container;
|
|
254
255
|
scrollLeft = 0;
|
|
255
256
|
scrollTop = 0;
|
|
@@ -264,7 +265,7 @@
|
|
|
264
265
|
this.zIndex = config.zIndex;
|
|
265
266
|
}
|
|
266
267
|
if (config.idPrefix) {
|
|
267
|
-
this.idPrefix = config.idPrefix
|
|
268
|
+
this.idPrefix = `${config.idPrefix}_${utils.guid()}`;
|
|
268
269
|
}
|
|
269
270
|
this.container.addEventListener("customScroll", this.scrollHandler);
|
|
270
271
|
}
|
|
@@ -1617,7 +1618,7 @@
|
|
|
1617
1618
|
return;
|
|
1618
1619
|
const els = this.getElementsFromPoint(event);
|
|
1619
1620
|
for (const el of els) {
|
|
1620
|
-
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && await this.isContainer(el) && !excludeElList.includes(el)) {
|
|
1621
|
+
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && await this.isContainer?.(el) && !excludeElList.includes(el)) {
|
|
1621
1622
|
utils.addClassName(el, doc, this.containerHighlightClassName);
|
|
1622
1623
|
break;
|
|
1623
1624
|
}
|
|
@@ -1646,6 +1647,7 @@
|
|
|
1646
1647
|
this.container.removeEventListener("mousemove", this.mouseMoveHandler);
|
|
1647
1648
|
this.container.removeEventListener("mouseleave", this.mouseLeaveHandler);
|
|
1648
1649
|
this.container.removeEventListener("wheel", this.mouseWheelHandler);
|
|
1650
|
+
this.container.removeEventListener("dblclick", this.dblclickHandler);
|
|
1649
1651
|
this.dr.destroy();
|
|
1650
1652
|
this.multiDr?.destroy();
|
|
1651
1653
|
this.highlightLayer.destroy();
|
|
@@ -1769,6 +1771,7 @@
|
|
|
1769
1771
|
this.container.addEventListener("mousemove", this.mouseMoveHandler);
|
|
1770
1772
|
this.container.addEventListener("mouseleave", this.mouseLeaveHandler);
|
|
1771
1773
|
this.container.addEventListener("wheel", this.mouseWheelHandler);
|
|
1774
|
+
this.container.addEventListener("dblclick", this.dblclickHandler);
|
|
1772
1775
|
}
|
|
1773
1776
|
/**
|
|
1774
1777
|
* 初始化键盘事件监听
|
|
@@ -1859,6 +1862,9 @@
|
|
|
1859
1862
|
mouseWheelHandler = () => {
|
|
1860
1863
|
this.clearHighlight();
|
|
1861
1864
|
};
|
|
1865
|
+
dblclickHandler = (event) => {
|
|
1866
|
+
this.emit("dblclick", event);
|
|
1867
|
+
};
|
|
1862
1868
|
}
|
|
1863
1869
|
|
|
1864
1870
|
class Rule extends EventEmitter {
|
|
@@ -2608,6 +2614,9 @@
|
|
|
2608
2614
|
* 监听页面大小变化
|
|
2609
2615
|
*/
|
|
2610
2616
|
observePageResize(page) {
|
|
2617
|
+
if (this.pageResizeObserver) {
|
|
2618
|
+
this.pageResizeObserver.disconnect();
|
|
2619
|
+
}
|
|
2611
2620
|
if (typeof ResizeObserver !== "undefined") {
|
|
2612
2621
|
this.pageResizeObserver = new ResizeObserver((entries) => {
|
|
2613
2622
|
this.mask.pageResize(entries);
|
|
@@ -2673,6 +2682,8 @@
|
|
|
2673
2682
|
this.multiSelect(idOrElList);
|
|
2674
2683
|
}).on("multi-select", (selectedElList, event) => {
|
|
2675
2684
|
this.emit("multi-select", selectedElList, event);
|
|
2685
|
+
}).on("dblclick", (event) => {
|
|
2686
|
+
this.emit("dblclick", event);
|
|
2676
2687
|
});
|
|
2677
2688
|
}
|
|
2678
2689
|
/**
|
|
@@ -2764,4 +2775,3 @@
|
|
|
2764
2775
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
|
|
2765
2776
|
|
|
2766
2777
|
}));
|
|
2767
|
-
//# sourceMappingURL=tmagic-stage.umd.cjs.map
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.3.
|
|
2
|
+
"version": "1.3.12",
|
|
3
3
|
"name": "@tmagic/stage",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": [
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@scena/guides": "^0.29.2",
|
|
29
|
-
"@tmagic/core": "1.3.
|
|
30
|
-
"@tmagic/schema": "1.3.
|
|
31
|
-
"@tmagic/utils": "1.3.
|
|
29
|
+
"@tmagic/core": "1.3.12",
|
|
30
|
+
"@tmagic/schema": "1.3.12",
|
|
31
|
+
"@tmagic/utils": "1.3.12",
|
|
32
32
|
"events": "^3.3.0",
|
|
33
33
|
"keycon": "^1.4.0",
|
|
34
34
|
"lodash-es": "^4.17.21",
|
package/src/ActionManager.ts
CHANGED
|
@@ -79,7 +79,7 @@ export default class ActionManager extends EventEmitter {
|
|
|
79
79
|
private getTargetElement: GetTargetElement;
|
|
80
80
|
private getElementsFromPoint: GetElementsFromPoint;
|
|
81
81
|
private canSelect: CanSelect;
|
|
82
|
-
private isContainer
|
|
82
|
+
private isContainer?: IsContainer;
|
|
83
83
|
private getRenderDocument: GetRenderDocument;
|
|
84
84
|
private disabledMultiSelect = false;
|
|
85
85
|
private config: ActionManagerConfig;
|
|
@@ -328,7 +328,7 @@ export default class ActionManager extends EventEmitter {
|
|
|
328
328
|
const els = this.getElementsFromPoint(event);
|
|
329
329
|
|
|
330
330
|
for (const el of els) {
|
|
331
|
-
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && (await this.isContainer(el)) && !excludeElList.includes(el)) {
|
|
331
|
+
if (!el.id.startsWith(GHOST_EL_ID_PREFIX) && (await this.isContainer?.(el)) && !excludeElList.includes(el)) {
|
|
332
332
|
addClassName(el, doc, this.containerHighlightClassName);
|
|
333
333
|
break;
|
|
334
334
|
}
|
|
@@ -360,6 +360,7 @@ export default class ActionManager extends EventEmitter {
|
|
|
360
360
|
this.container.removeEventListener('mousemove', this.mouseMoveHandler);
|
|
361
361
|
this.container.removeEventListener('mouseleave', this.mouseLeaveHandler);
|
|
362
362
|
this.container.removeEventListener('wheel', this.mouseWheelHandler);
|
|
363
|
+
this.container.removeEventListener('dblclick', this.dblclickHandler);
|
|
363
364
|
this.dr.destroy();
|
|
364
365
|
this.multiDr?.destroy();
|
|
365
366
|
this.highlightLayer.destroy();
|
|
@@ -512,6 +513,7 @@ export default class ActionManager extends EventEmitter {
|
|
|
512
513
|
this.container.addEventListener('mousemove', this.mouseMoveHandler);
|
|
513
514
|
this.container.addEventListener('mouseleave', this.mouseLeaveHandler);
|
|
514
515
|
this.container.addEventListener('wheel', this.mouseWheelHandler);
|
|
516
|
+
this.container.addEventListener('dblclick', this.dblclickHandler);
|
|
515
517
|
}
|
|
516
518
|
|
|
517
519
|
/**
|
|
@@ -619,4 +621,8 @@ export default class ActionManager extends EventEmitter {
|
|
|
619
621
|
private mouseWheelHandler = () => {
|
|
620
622
|
this.clearHighlight();
|
|
621
623
|
};
|
|
624
|
+
|
|
625
|
+
private dblclickHandler = (event: MouseEvent) => {
|
|
626
|
+
this.emit('dblclick', event);
|
|
627
|
+
};
|
|
622
628
|
}
|
package/src/StageCore.ts
CHANGED
|
@@ -46,8 +46,8 @@ export default class StageCore extends EventEmitter {
|
|
|
46
46
|
public container?: HTMLDivElement;
|
|
47
47
|
public renderer: StageRender;
|
|
48
48
|
public mask: StageMask;
|
|
49
|
+
public actionManager: ActionManager;
|
|
49
50
|
|
|
50
|
-
private actionManager: ActionManager;
|
|
51
51
|
private pageResizeObserver: ResizeObserver | null = null;
|
|
52
52
|
private autoScrollIntoView: boolean | undefined;
|
|
53
53
|
private customizedRender?: CustomizeRender;
|
|
@@ -252,6 +252,10 @@ export default class StageCore extends EventEmitter {
|
|
|
252
252
|
* 监听页面大小变化
|
|
253
253
|
*/
|
|
254
254
|
private observePageResize(page: HTMLElement): void {
|
|
255
|
+
if (this.pageResizeObserver) {
|
|
256
|
+
this.pageResizeObserver.disconnect();
|
|
257
|
+
}
|
|
258
|
+
|
|
255
259
|
if (typeof ResizeObserver !== 'undefined') {
|
|
256
260
|
this.pageResizeObserver = new ResizeObserver((entries) => {
|
|
257
261
|
this.mask.pageResize(entries);
|
|
@@ -329,6 +333,9 @@ export default class StageCore extends EventEmitter {
|
|
|
329
333
|
})
|
|
330
334
|
.on('multi-select', (selectedElList: HTMLElement[], event: MouseEvent) => {
|
|
331
335
|
this.emit('multi-select', selectedElList, event);
|
|
336
|
+
})
|
|
337
|
+
.on('dblclick', (event: MouseEvent) => {
|
|
338
|
+
this.emit('dblclick', event);
|
|
332
339
|
});
|
|
333
340
|
}
|
|
334
341
|
|
package/src/TargetShadow.ts
CHANGED
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
* See the License for the specific language governing permissions and
|
|
16
16
|
* limitations under the License.
|
|
17
17
|
*/
|
|
18
|
+
import { guid } from '@tmagic/utils';
|
|
19
|
+
|
|
18
20
|
import { Mode, ZIndex } from './const';
|
|
19
21
|
import type { TargetElement as ShadowElement, TargetShadowConfig, UpdateDragEl } from './types';
|
|
20
22
|
import { getTargetElStyle, isFixedParent } from './util';
|
|
@@ -26,7 +28,7 @@ export default class TargetShadow {
|
|
|
26
28
|
public el?: ShadowElement;
|
|
27
29
|
public els: ShadowElement[] = [];
|
|
28
30
|
|
|
29
|
-
private idPrefix =
|
|
31
|
+
private idPrefix = `target_calibrate_${guid()}`;
|
|
30
32
|
private container: HTMLElement;
|
|
31
33
|
private scrollLeft = 0;
|
|
32
34
|
private scrollTop = 0;
|
|
@@ -46,7 +48,7 @@ export default class TargetShadow {
|
|
|
46
48
|
}
|
|
47
49
|
|
|
48
50
|
if (config.idPrefix) {
|
|
49
|
-
this.idPrefix = config.idPrefix
|
|
51
|
+
this.idPrefix = `${config.idPrefix}_${guid()}`;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
this.container.addEventListener('customScroll', this.scrollHandler);
|
package/src/types.ts
CHANGED
|
@@ -66,7 +66,7 @@ export interface StageCoreConfig {
|
|
|
66
66
|
/** 放大倍数,默认1倍 */
|
|
67
67
|
zoom?: number;
|
|
68
68
|
canSelect?: CanSelect;
|
|
69
|
-
isContainer
|
|
69
|
+
isContainer?: IsContainer;
|
|
70
70
|
containerHighlightClassName?: string;
|
|
71
71
|
containerHighlightDuration?: number;
|
|
72
72
|
containerHighlightType?: ContainerHighlightType;
|
|
@@ -91,7 +91,7 @@ export interface ActionManagerConfig {
|
|
|
91
91
|
disabledDragStart?: boolean;
|
|
92
92
|
disabledMultiSelect?: boolean;
|
|
93
93
|
canSelect?: CanSelect;
|
|
94
|
-
isContainer
|
|
94
|
+
isContainer?: IsContainer;
|
|
95
95
|
getRootContainer: GetRootContainer;
|
|
96
96
|
getRenderDocument: GetRenderDocument;
|
|
97
97
|
updateDragEl?: UpdateDragEl;
|
package/src/util.ts
CHANGED
package/types/ActionManager.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export default class ActionManager extends EventEmitter {
|
|
|
33
33
|
private getTargetElement;
|
|
34
34
|
private getElementsFromPoint;
|
|
35
35
|
private canSelect;
|
|
36
|
-
private isContainer
|
|
36
|
+
private isContainer?;
|
|
37
37
|
private getRenderDocument;
|
|
38
38
|
private disabledMultiSelect;
|
|
39
39
|
private config;
|
|
@@ -143,4 +143,5 @@ export default class ActionManager extends EventEmitter {
|
|
|
143
143
|
private mouseUpHandler;
|
|
144
144
|
private mouseLeaveHandler;
|
|
145
145
|
private mouseWheelHandler;
|
|
146
|
+
private dblclickHandler;
|
|
146
147
|
}
|
package/types/StageCore.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { EventEmitter } from 'events';
|
|
4
4
|
import type { MoveableOptions } from 'moveable';
|
|
5
5
|
import type { Id } from '@tmagic/schema';
|
|
6
|
+
import ActionManager from './ActionManager';
|
|
6
7
|
import StageMask from './StageMask';
|
|
7
8
|
import StageRender from './StageRender';
|
|
8
9
|
import type { RemoveData, StageCoreConfig, UpdateData } from './types';
|
|
@@ -13,7 +14,7 @@ export default class StageCore extends EventEmitter {
|
|
|
13
14
|
container?: HTMLDivElement;
|
|
14
15
|
renderer: StageRender;
|
|
15
16
|
mask: StageMask;
|
|
16
|
-
|
|
17
|
+
actionManager: ActionManager;
|
|
17
18
|
private pageResizeObserver;
|
|
18
19
|
private autoScrollIntoView;
|
|
19
20
|
private customizedRender?;
|
package/types/types.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export interface StageCoreConfig {
|
|
|
38
38
|
/** 放大倍数,默认1倍 */
|
|
39
39
|
zoom?: number;
|
|
40
40
|
canSelect?: CanSelect;
|
|
41
|
-
isContainer
|
|
41
|
+
isContainer?: IsContainer;
|
|
42
42
|
containerHighlightClassName?: string;
|
|
43
43
|
containerHighlightDuration?: number;
|
|
44
44
|
containerHighlightType?: ContainerHighlightType;
|
|
@@ -62,7 +62,7 @@ export interface ActionManagerConfig {
|
|
|
62
62
|
disabledDragStart?: boolean;
|
|
63
63
|
disabledMultiSelect?: boolean;
|
|
64
64
|
canSelect?: CanSelect;
|
|
65
|
-
isContainer
|
|
65
|
+
isContainer?: IsContainer;
|
|
66
66
|
getRootContainer: GetRootContainer;
|
|
67
67
|
getRenderDocument: GetRenderDocument;
|
|
68
68
|
updateDragEl?: UpdateDragEl;
|