import { DSLNode } from '@lingxiteam/dsl/lib/core/PropType'; import LocalDragUtils from './LocalDragUtils'; declare class FreeLayoutDragUtils { localDragInst: LocalDragUtils; currentMovePosition?: { left: number; top: number; right: number; position: 'left' | 'right'; dragTarget: HTMLElement; hoverTarget: HTMLElement; }; constructor({ localDragInst }: { localDragInst: LocalDragUtils; }); isFreeLayout(target: HTMLElement | null): DSLNode | null; /** * 是否为自由布局第一级子元素 * @param target 拖拽对象 * @returns */ isFistFreeLayoutChild(target: HTMLElement | null | string): DSLNode | null; /** * 是否在自由容器内部 * @param target 目标元素 * @returns */ isInnerFreeLayout(_target?: HTMLElement | null | string): DSLNode | null; /** * 是否hover到自由布局元素内部 * @param target hover元素 * @returns */ isHoverFreeLayout(hoverTarget: HTMLElement | null): DSLNode | null; /** * 清空非自有布局子容器位置属性 * @param nodeId 节点id */ removeFreeLayoutPosition(nodeId: string): void; /** * 根据子元素获取自由布局dom * @param target 自由布局子元素 * @returns */ getFreeLayoutByChild(target: HTMLElement): HTMLElement | null; /** * 根据控件id获取dom列表 * @param nodeId 控件id * @param excludes 排除的dom * @returns */ getFreeLayoutChildList(nodeId: string, excludes?: HTMLElement[]): HTMLElement[]; /** * 当前放置的对象是否自由布局容器 * @returns boolean */ currentDropIsFreeLayout(): false | DSLNode | null; /** * 获取元素位置 * @param target 元素 */ getTargetPosition(hoverTarget: HTMLElement, isInner?: boolean): { x: number; y: number; left: number; right: number; top: number; }; /** * 开启计算 * @param dragTarget 拖拽对象 * @param hoverTarget 放置对象 */ startComputed(dragTarget: HTMLElement, hoverTarget: HTMLElement): void; /** * 结束移动 */ movingEnd(): void; } export default FreeLayoutDragUtils;