UNPKG

editable-antd-tree

Version:

This is an editable tree react component based on antd.

65 lines (61 loc) 2.41 kB
import { DataNode, TreeProps } from 'antd/lib/tree'; import React from 'react'; declare type EditableTreeTitleProps = { treeData: EditableAntdTreeNode[]; updateTreeData: React.Dispatch<React.SetStateAction<EditableAntdTreeNode[]>>; expandKey: Function; node: EditableAntdTreeNode; deleteNode?: { caption?: string; disable?: boolean | ((node: EditableAntdTreeNode) => boolean | undefined); event?: (node: EditableAntdTreeNode) => void; }; updateNode?: { caption?: string; disable?: boolean | ((node: EditableAntdTreeNode) => boolean | undefined); event?: (node: EditableAntdTreeNode) => void; }; createLeaf?: { caption?: string; disable?: boolean | ((node: EditableAntdTreeNode) => boolean | undefined); event?: (node: EditableAntdTreeNode) => void; }; createParent?: { caption?: string; disable?: boolean | ((node: EditableAntdTreeNode) => boolean | undefined); event?: (node: EditableAntdTreeNode) => void; }; }; declare type TEditableTreeTitle = Omit<EditableTreeTitleProps, "treeData" | "node" | "expandKey">; declare const sizes: { xs: string; sm: string; md: string; lg: string; xl: string; }; declare type EditableAntdTreeNode = Omit<DataNode, "title" | "children" | "key"> & { key: string; title?: string | null; parent?: string; children?: EditableAntdTreeNode[]; }; declare type EditableAntdTreeProps = { treeData: EditableAntdTreeNode[]; onTreeChange: (tree: EditableAntdTreeNode[]) => void; switcherIcon?: React.ReactNode; size?: keyof typeof sizes; createRootLeaf?: { caption?: string; disable?: boolean; action?: (node: EditableAntdTreeNode) => void; }; createRootParent?: { caption?: string; disable?: boolean; action?: (node: EditableAntdTreeNode) => void; }; loadData?: (treeData: EditableAntdTreeNode) => Promise<EditableAntdTreeNode[] | void>; } & Omit<TreeProps, "switcherIcon" | "treeData" | "loadData"> & TEditableTreeTitle; declare const EditableAntdTree: ({ treeData, size, switcherIcon, onTreeChange, deleteNode, updateNode, createLeaf, createParent, createRootLeaf, createRootParent, loadData, ...props }: EditableAntdTreeProps) => JSX.Element; export { EditableAntdTree, EditableAntdTreeNode, EditableAntdTreeProps };