UNPKG

@1771technologies/lytenyte-pro

Version:

Blazingly fast headless React data grid with 100s of features.

35 lines (34 loc) 1.32 kB
import type { Column, DropEventParams, Grid } from "../+types.js"; import type { GridBoxItem } from "./+types.js"; export interface OnDropParams<T> { readonly target: Column<T>; readonly src: Column<T>; readonly isBefore: boolean; } export interface OnRootDropParams<T> { readonly column: Column<T>; } export interface OnActionParams<T> { readonly column: Column<T>; readonly el: HTMLElement; } export interface UseColumnBoxItemArgs<T> { readonly grid: Grid<T>; readonly orientation?: "horizontal" | "vertical"; readonly draggable?: boolean; readonly itemFilter?: (c: Column<T>) => boolean; readonly placeholder?: (el: HTMLElement) => HTMLElement; readonly onRootDrop?: (p: OnRootDropParams<T>) => void; readonly onDrop?: (p: OnDropParams<T>) => void; readonly onAction?: (c: OnActionParams<T>) => void; readonly onDelete?: (c: OnActionParams<T>) => void; } export declare function useColumnBoxItems<T>({ grid, onRootDrop, onDrop, onDelete, onAction, orientation, draggable, itemFilter, placeholder, }: UseColumnBoxItemArgs<T>): { rootProps: { accepted: string[]; orientation: "horizontal" | "vertical" | undefined; onRootDrop: (p: DropEventParams) => void; grid: Grid<T>; }; items: GridBoxItem<Column<T>>[]; };