/** * 可拖拽树形组件 * 基于@dnd-kit库实现,支持拖拽排序、展开折叠、删除等功能 */ import { UniqueIdentifier } from '@dnd-kit/core'; import React from 'react'; import type { FlattenedItem, TreeItem, TreeItems } from './types'; import type { Props as TreeItemProps } from './components/TreeItem/TreeItem'; interface Props { /** 是否支持折叠功能 */ collapsible?: boolean; /** 初始树形数据,默认使用 initialItems */ value?: TreeItems; /** 缩进宽度,控制子节点的缩进距离 */ indentationWidth?: number; /** 是否显示拖拽指示器 */ indicator?: boolean; /** 是否支持删除节点功能 */ removable?: boolean; /** 自定义渲染树节点 */ renderItem?: (item: TreeItemProps, ref: React.RefObject) => React.ReactNode; /** 树形数据变化回调 */ onChange?: (items: TreeItems) => void; /** 删除节点前 */ onRemoveBefore?: (item: TreeItem) => Promise; /** 设计模式 */ __designMode?: string; /** 最大层级 */ maxLevel?: number; /** 自定义拖拽判断函数,返回false时阻止拖拽 */ canDrop?: (dragItem: FlattenedItem, dropTarget: FlattenedItem, parentId: UniqueIdentifier | null, parentNode: any) => boolean; } export declare function SortableTree({ collapsible, value, indicator, indentationWidth, removable, renderItem, onChange, onRemoveBefore, __designMode, maxLevel, canDrop, }: Props): React.JSX.Element; declare const Demo: (props: Props) => React.JSX.Element; export default Demo;