@vue-dnd-kit/core
Version:
Core functionality for Vue DnD Kit - a lightweight Vue 3 library for building performant and accessible drag and drop interfaces
34 lines (33 loc) • 1.68 kB
TypeScript
import { IDraggableEntity, IDraggingEntity, TPointerState } from '../../external/types';
import { IDnDProviderInternal } from '../types/provider';
/**
* Creates initial pointer state from event
*/
export declare function createPointerState(event: PointerEvent, offsetX?: number, offsetY?: number): TPointerState;
/**
* Calculates cursor offset as ratio (0–1) relative to element size
*/
export declare function calculateCursorOffset(event: PointerEvent, element: HTMLElement): {
x: number;
y: number;
};
/**
* Creates dragging entity with initial data
*/
export declare function createDraggingEntity(element: HTMLElement, draggableEntity?: IDraggableEntity): IDraggingEntity;
/**
* Инициализирует dragging для выбранных элементов
*/
export declare function initializeDraggingFromSelection(selectedSet: Set<HTMLElement>, draggableMap: Map<HTMLElement, IDraggableEntity>, draggingMap: Map<HTMLElement, IDraggingEntity>): void;
/**
* Initializes dragging for single element
*/
export declare function initializeDraggingFromElement(element: HTMLElement, draggableMap: Map<HTMLElement, IDraggableEntity>, draggingMap: Map<HTMLElement, IDraggingEntity>): void;
/**
* Starts dragging for the current provider state (initiatingDraggable + selectedSet)
*/
export declare function startDraggingForProvider(provider: IDnDProviderInternal): void;
/**
* Initializes dragging (chooses between selection and single element)
*/
export declare function initializeDragging(initiatingElement: HTMLElement, selectedSet: Set<HTMLElement>, draggableMap: Map<HTMLElement, IDraggableEntity>, draggingMap: Map<HTMLElement, IDraggingEntity>): void;