import { Selector } from 'cash-dom'; import { ISelectedItemData, MousePoint } from '@music163/tango-helpers'; export declare const DRAGGABLE_SELECTOR: string; interface DndQueryOptions { /** * DOM 查询上下文选择器 */ context?: string; /** * 二级上下文,适用于 iframe 中的 iframe */ secondaryContext?: string; /** * 上层容器选择器 */ container?: string; } export declare class DndQuery { /** * dnd 上下文选择器,如果是 iframe,则是 iframe 里的 window 对象 */ private readonly _context; /** * dnd 二级上下文选择器,适用于存在 iframe 多层嵌套的场景 */ private readonly _secondaryContext; /** * 拖拽沙箱的外层容器选择器,用于辅助计算相对位置 */ private readonly _container; get container(): HTMLElement & Element & Node; get context(): HTMLElement & Element & Node; /** * 是否是隔离的沙箱环境,目前仅 iframe 环境为隔离沙箱 */ get isSeparated(): boolean; /** * 沙箱内的 window 对象 */ get window(): Window & typeof globalThis; /** * 沙箱内的全局滚动偏移 */ get scrollTop(): number; constructor({ context, secondaryContext, container }: DndQueryOptions); get(selector: Selector): import("cash-dom").Cash; getElement(selector: Selector): HTMLElement & Element & Node; getElementBySlotId(slotId: string): HTMLElement & Element & Node; getElementData(element: HTMLElement): ISelectedItemData; getElementBounding(element: HTMLElement): { width: number; height: number; top: number; left: number; }; /** * 获取相对容器的位置 * @param point */ getRelativePoint(point: MousePoint): MousePoint; isChildOfElement(parentElementSlotId: string, childElementSlotId: string): boolean; getDraggableParents(selector: Selector): (HTMLElement & Element & Node)[]; /** * 获取可拖拽的子元素 * @param selector * @param locateSelector * @returns */ getDraggableDescendants(selector: Selector, descendantSelector?: string): (HTMLElement & Element & Node)[]; getDraggableParentsData(selector: Selector, hasParents: boolean): ISelectedItemData; /** * 获得最近的一个可拖拽的父结点的所有子结点 * @param selector * @param startPoint * @returns */ getDraggableElementsDataByArea(selector: Selector, startPoint: MousePoint, endPoint: MousePoint): ISelectedItemData[]; scrollTo(leftOffset: number, topOffset: number): void; reload(): void; } export declare const DomQuery: typeof DndQuery; export {};