import { IEventBus } from '@alilc/lowcode-editor-core'; import { IPublicTypeDragNodeObject, IPublicTypeDragAnyObject, IPublicTypeDragNodeDataObject, IPublicModelDragObject, IPublicModelNode, IPublicModelDragon, IPublicModelLocateEvent, IPublicModelSensor } from '@alilc/lowcode-types'; import { INode } from '../document'; import type { IDesigner } from './designer'; export interface ILocateEvent extends IPublicModelLocateEvent { readonly type: 'LocateEvent'; /** * 激活的感应器 */ sensor?: IPublicModelSensor; } /** * @deprecated use same function in @alilc/lowcode-utils */ export declare function isDragNodeObject(obj: any): obj is IPublicTypeDragNodeObject; /** * @deprecated use same function in @alilc/lowcode-utils */ export declare function isDragNodeDataObject(obj: any): obj is IPublicTypeDragNodeDataObject; /** * @deprecated use same function in @alilc/lowcode-utils */ export declare function isDragAnyObject(obj: any): obj is IPublicTypeDragAnyObject; export declare function isLocateEvent(e: any): e is ILocateEvent; /** * mouse shake check */ export declare function isShaken(e1: MouseEvent | DragEvent, e2: MouseEvent | DragEvent): boolean; export declare function isInvalidPoint(e: any, last: any): boolean; export declare function isSameAs(e1: MouseEvent | DragEvent, e2: MouseEvent | DragEvent): boolean; export declare function setShaken(e: any): void; /** * Drag-on 拖拽引擎 */ export declare class Dragon implements IPublicModelDragon { readonly designer: IDesigner; private sensors; private nodeInstPointerEvents; key: number; /** * current active sensor, 可用于感应区高亮 */ private _activeSensor; get activeSensor(): IPublicModelSensor | undefined; private _dragging; private _canDrop; get dragging(): boolean; viewName: string | undefined; emitter: IEventBus; constructor(designer: IDesigner); /** * Quick listen a shell(container element) drag behavior * @param shell container element * @param boost boost got a drag object */ from(shell: Element, boost: (e: MouseEvent) => IPublicModelDragObject | null): () => void; /** * boost your dragObject for dragging(flying) 发射拖拽对象 * * @param dragObject 拖拽对象 * @param boostEvent 拖拽初始时事件 */ boost(dragObject: IPublicModelDragObject, boostEvent: MouseEvent | DragEvent, fromRglNode?: INode | IPublicModelNode): void; private getMasterSensors; private getSimulators; private setNativeSelection; /** * 设置拖拽态 */ private setDraggingState; /** * 设置拷贝态 */ private setCopyState; /** * 清除所有态:拖拽态、拷贝态 */ private clearState; /** * 添加投放感应区 */ addSensor(sensor: any): void; /** * 移除投放感应 */ removeSensor(sensor: any): void; onDragstart(func: (e: ILocateEvent) => any): () => void; onDrag(func: (e: ILocateEvent) => any): () => void; onDragend(func: (x: { dragObject: IPublicModelDragObject; copy: boolean; }) => any): () => void; } export interface IDragon extends Dragon { }