@alpernative/tree
Version:
[`@alpernative/tree`](https://www.npmjs.com/package/@alpernative/tree) is a high-performance, customizable tree component for React. It provides a wide range of features, including virtualization, drag-and-drop, and nested drag-and-drop support.
30 lines (29 loc) • 692 B
TypeScript
export type ItemId = string | number;
export interface TreeData<TData = Any> {
rootId: ItemId;
items: Record<ItemId, TreeItem<TData>>;
}
export type Any = any;
export type TreeItemData = Any;
export type TreeItem<TData = Any> = {
id: ItemId;
children: ItemId[];
hasChildren?: boolean;
isExpanded?: boolean;
isChildrenLoading?: boolean;
data?: TData;
};
export type FlattenedTree = FlattenedItem[];
export type Path = number[];
export type FlattenedItem = {
item: TreeItem;
path: Path;
};
export type TreeSourcePosition = {
parentId: ItemId;
index: number;
};
export type TreeDestinationPosition = {
parentId: ItemId;
index?: number;
};