mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-15 22:22:51 +00:00
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
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);
|
||
}
|
||
} |