@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
TypeScript
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;