forked from alibaba/lowcode-engine
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdragon.ts
More file actions
57 lines (50 loc) · 1.31 KB
/
dragon.ts
File metadata and controls
57 lines (50 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import {
Dragon as InnerDragon,
DragNodeDataObject,
} from '@alilc/lowcode-designer';
import { dragonSymbol } from './symbols';
export default class Dragon {
private readonly [dragonSymbol]: InnerDragon;
constructor(dragon: InnerDragon) {
this[dragonSymbol] = dragon;
}
static create(dragon: InnerDragon | null) {
if (!dragon) return null;
return new Dragon(dragon);
}
/**
* 绑定 dragstart 事件
* @param func
* @returns
*/
onDragstart(func: (/* e: LocateEvent */) => any) {
// TODO: 补充必要参数
return this[dragonSymbol].onDragstart(() => func());
}
/**
* 绑定 drag 事件
* @param func
* @returns
*/
onDrag(func: (/* e: LocateEvent */) => any) {
// TODO: 补充必要参数
return this[dragonSymbol].onDrag(() => func());
}
/**
* 绑定 dragend 事件
* @param func
* @returns
*/
onDragend(func: (/* e: LocateEvent */) => any) {
// TODO: 补充必要参数
return this[dragonSymbol].onDragend(() => func());
}
/**
* 设置拖拽监听的区域 shell,以及自定义拖拽转换函数 boost
* @param shell 拖拽监听的区域
* @param boost 拖拽转换函数
*/
from(shell: Element, boost: (e: MouseEvent) => DragNodeDataObject | null) {
return this[dragonSymbol].from(shell, boost);
}
}