dnd-kit-sortable-tree-eshaffer
Version:
This is a Tree component extracted from [dndkit](https://github.com/clauderic/dnd-kit) examples and abstracted a bit. Here's how it could look like (visuals are completely customizable via css though) [](https://shaddix.github.io/dnd-ki
20 lines (19 loc) • 1.42 kB
TypeScript
import type { FlattenedItem, TreeItem, TreeItems } from './types';
import { UniqueIdentifier } from '@dnd-kit/core';
export declare const iOS: boolean;
export declare function getProjection<T>(items: FlattenedItem<T>[], activeId: UniqueIdentifier | null, overId: UniqueIdentifier | null, dragOffset: number, indentationWidth: number): {
depth: number;
maxDepth: number;
minDepth: number;
parentId: string | number | null;
parent: FlattenedItem<T> | null;
isLast: boolean;
} | null;
export declare function flattenTree<T>(items: TreeItems<T>): FlattenedItem<T>[];
export declare function buildTree<T>(flattenedItems: FlattenedItem<T>[]): TreeItems<T>;
export declare function findItem<T>(items: TreeItem<T>[], itemId: UniqueIdentifier): TreeItem<T> | undefined;
export declare function findItemDeep<T>(items: TreeItems<T>, itemId: UniqueIdentifier): TreeItem<T> | undefined;
export declare function removeItem<T>(items: TreeItems<T>, id: string): TreeItem<T>[];
export declare function setProperty<TData, T extends keyof TreeItem<TData>>(items: TreeItems<TData>, id: string, property: T, setter: (value: TreeItem<TData>[T]) => TreeItem<TData>[T]): TreeItem<TData>[];
export declare function getChildCount<T>(items: TreeItems<T>, id: UniqueIdentifier): number;
export declare function removeChildrenOf<T>(items: FlattenedItem<T>[], ids: UniqueIdentifier[]): FlattenedItem<T>[];