@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
32 lines (31 loc) • 1.02 kB
TypeScript
import type { RowGroup, RowLeaf } from "@1771technologies/lytenyte-shared";
import type { DragEvent } from "react";
export interface TreeViewItem {
readonly id: string;
readonly path: string[];
readonly name?: string;
}
export interface TreeViewChildParams<T extends TreeViewItem> {
readonly row: RowGroup | RowLeaf<T>;
readonly leafs: () => T[];
readonly toggle: (b?: boolean) => void;
readonly selected: boolean;
readonly indeterminate: boolean;
readonly selectEnabled: boolean;
readonly select: (b?: boolean) => void;
readonly handleSelect: (params: {
readonly target: EventTarget;
readonly shiftKey: boolean;
}) => void;
readonly dragProps: {
draggable?: boolean;
onDragStart?: (ev: DragEvent) => void;
};
readonly isOver: boolean;
readonly isBefore: boolean;
}
export interface TreeViewSelectAllParams {
readonly selected: boolean;
readonly indeterminate: boolean;
readonly toggle: (b?: boolean) => void;
}