import { EditorDNDManager } from './index'; import { EditorNodeType } from '../store/node'; import { DNDModeInterface } from './interface'; import { AutoScroll } from './autoScroll'; export declare class DefaultDNDMode implements DNDModeInterface { readonly dnd: EditorDNDManager; readonly region: EditorNodeType; readonly dndContainer: HTMLElement; readonly relativeContainer: HTMLElement; dropOn?: string; dropPosition?: 'top' | 'bottom' | 'left' | 'right' | 'center' | 'middle'; autoScroll?: AutoScroll; constructor(dnd: EditorDNDManager, region: EditorNodeType); layoutInfo: LayoutInfo | null; /** * 记录上次交换时的鼠标位置。 */ exchangeX: number; exchangeY: number; /** * 首次拖入,把 ghost 插入进来。让用户有个直观感受。 * @param e * @param ghost */ enter(e: DragEvent, ghost: HTMLElement): void; /** * 拖出去了,就移除 ghost * @param e * @param ghost */ leave(e: DragEvent, ghost: HTMLElement): void; over(e: DragEvent, ghost: HTMLElement): void; /** * 返回个相对位置,如果没有数据会插入到结尾。 */ getDropBeforeId(): string | undefined; /** * 获取当时拖动到了哪个节点上面。 */ getTarget(e: DragEvent): HTMLElement | null; getChildren(region: HTMLElement): Array; detectDropPosition(event: DragEvent, dropTarget: HTMLElement): 'top' | 'bottom' | 'left' | 'right'; reductionPosition(position: 'top' | 'bottom' | 'left' | 'right', isHorizontal?: boolean): "left" | "right" | "bottom" | "top"; updateIndicator(ghost: HTMLElement, target: HTMLElement, dropPosition: 'top' | 'bottom' | 'left' | 'right' | 'center' | 'middle'): void; /** * 销毁 */ dispose(): void; } interface LayoutInfo { type: 'flex' | 'grid' | 'block'; isHorizontal?: boolean; isWrapped?: boolean; hasColumns?: boolean; } export {};