UNPKG

@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

36 lines (35 loc) 1.78 kB
import { IHelpers, IPlacementHelpers, ISuggestCopyResult, ISuggestRemoveResult, ISuggestSortResult, ISuggestSwapResult } from '../../external/types/operations'; import { TPlacementOrientation, IPlacement } from '../../external/types/placement'; /** Minimal event shape used by internal suggest* (avoids circular import). */ export interface IDropEventContext { draggedItems: Array<{ index: number; item: unknown; items: unknown[]; data?: unknown; }>; dropZone?: { items: unknown[]; placement: IPlacement | undefined; data?: unknown; }; hoveredDraggable?: { element: HTMLElement; placement: IPlacement; index: number; item: unknown; items: unknown[]; data?: unknown; }; } export declare function insertAt<T>(items: T[], index: number, toInsert: T[]): T[]; export declare function removeAt<T>(items: T[], index: number, count?: number): T[]; /** Remove multiple indexes (order-safe: removes high → low). Returns new array. */ export declare function removeIndexes<T>(items: T[], indexes: number[]): T[]; export declare function swapAt<T>(items: T[], i: number, j: number): T[]; export declare const placementHelpers: IPlacementHelpers; export declare function _suggestSort(event: IDropEventContext, orientation?: TPlacementOrientation): ISuggestSortResult | null; export declare function _suggestSwap(event: IDropEventContext): ISuggestSwapResult | null; export declare function _suggestCopy(event: IDropEventContext, orientation?: TPlacementOrientation): ISuggestCopyResult | null; export declare function _suggestRemove(event: IDropEventContext): ISuggestRemoveResult | null; export declare function createHelpers(ctx: IDropEventContext): IHelpers;