import { IDropable, IDragable } from '../dnd'; import { OperatePositionEnum, OperateTypeEnum } from './types'; import { LinkedTreeNode, IDisposable } from 'ts-toolset'; /** 树形拖拽接口 */ export interface ITreeDnd extends IDragable, IDropable, IDisposable { readonly operatePosition?: OperatePositionEnum; readonly operateType?: OperateTypeEnum; readonly selectedTarget?: LinkedTreeNode; readonly hoverTarget?: LinkedTreeNode; readonly dragTarget?: LinkedTreeNode; readonly dropTarget?: LinkedTreeNode; onSelectNode: (node: LinkedTreeNode) => void; onOverNode: (node: LinkedTreeNode) => void; onClearSelected: () => void; onClearDrop: () => void; onClearOver: () => void; } /** 属性拖拽 */ export declare abstract class TreeDnd implements ITreeDnd { protected _operatePosition?: OperatePositionEnum; protected _operateType?: OperateTypeEnum; protected _selectedNode?: LinkedTreeNode; protected _overNode?: LinkedTreeNode; protected _contextMenuNode?: LinkedTreeNode; protected _dragNode?: LinkedTreeNode; protected _dropNode?: LinkedTreeNode; get operatePosition(): OperatePositionEnum | undefined; get operateType(): OperateTypeEnum | undefined; get selectedNode(): LinkedTreeNode | undefined; get overNode(): LinkedTreeNode | undefined; get contextMenuNode(): LinkedTreeNode | undefined; get dragNode(): LinkedTreeNode | undefined; get dropNode(): LinkedTreeNode | undefined; onOverNode(overNode: LinkedTreeNode): void; protected abstract abstractOnOverNode(overNode: LinkedTreeNode, isOver: boolean): void; onSelectNode(selectNode: LinkedTreeNode): void; protected abstract abstractOnSelectNode(selectNode: LinkedTreeNode): void; onContextMenu(node: LinkedTreeNode): void; protected abstract abstractOnContextMenu(node: LinkedTreeNode): void; canDrop(overNode: LinkedTreeNode): boolean; protected abstract abstractCanDrop(overNode: LinkedTreeNode): boolean; dragStart(dragNode: LinkedTreeNode): void; protected abstract abstractDragStart(dragNode: LinkedTreeNode): void; dragOver(overNode: LinkedTreeNode): void; protected abstract abstractDragOver(overNode: LinkedTreeNode | undefined, canDrop: boolean): void; drop(dropNode: LinkedTreeNode): void; protected abstract abstractDrop(dropNode: LinkedTreeNode): void; dragEnd(): void; protected abstract abstractDragEnd(): void; onClearOver(): void; protected abstract abstractOnClearOver(): void; onClearSelected(): void; protected abstract abstractOnClearSelected(): void; onClearDrop(): void; protected abstract abstractOnClearDrop(): void; abstract dispose(): void; }