UNPKG

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