@alilc/lowcode-shell
Version:
Shell Layer for AliLowCodeEngine
60 lines (59 loc) • 2.02 kB
TypeScript
import { IDragon, INode } from '@alilc/lowcode-designer';
import { dragonSymbol, nodeSymbol } from '../symbols';
import { IPublicModelDragon, IPublicModelLocateEvent, IPublicModelDragObject, IPublicTypeDragNodeDataObject, IPublicModelNode, IPublicTypeDragObject } from '@alilc/lowcode-types';
export declare const innerDragonSymbol: unique symbol;
export declare class Dragon implements IPublicModelDragon {
readonly workspaceMode: boolean;
private readonly [innerDragonSymbol];
constructor(innerDragon: IDragon, workspaceMode: boolean);
get [dragonSymbol](): IDragon;
static create(dragon: IDragon | null, workspaceMode: boolean): IPublicModelDragon | null;
/**
* is dragging or not
*/
get dragging(): boolean;
/**
* 绑定 dragstart 事件
* @param func
* @returns
*/
onDragstart(func: (e: IPublicModelLocateEvent) => any): () => void;
/**
* 绑定 drag 事件
* @param func
* @returns
*/
onDrag(func: (e: IPublicModelLocateEvent) => any): () => void;
/**
* 绑定 dragend 事件
* @param func
* @returns
*/
onDragend(func: (o: {
dragObject: IPublicModelDragObject;
copy?: boolean;
}) => any): () => void;
/**
* 设置拖拽监听的区域 shell,以及自定义拖拽转换函数 boost
* @param shell 拖拽监听的区域
* @param boost 拖拽转换函数
*/
from(shell: Element, boost: (e: MouseEvent) => IPublicTypeDragNodeDataObject | null): any;
/**
* boost your dragObject for dragging(flying) 发射拖拽对象
*
* @param dragObject 拖拽对象
* @param boostEvent 拖拽初始时事件
*/
boost(dragObject: IPublicTypeDragObject, boostEvent: MouseEvent | DragEvent, fromRglNode?: IPublicModelNode & {
[nodeSymbol]: INode;
}): void;
/**
* 添加投放感应区
*/
addSensor(sensor: any): void;
/**
* 移除投放感应
*/
removeSensor(sensor: any): void;
}