import { ReactNode, CSSProperties } from 'react'; export interface IMindTreeProps { /** * @description 数据来源 * @default */ dataSource: IMindTreeNode; /** * @description 默认 title * @default 分支主题 */ defaultTitle?: string; /** * @description 子树展开方向 暂不可用 * @default horizontal */ /** * @description 树 className * @default */ className?: string; /** * @description 树 style * @default */ style?: CSSProperties; /** * @description 节点 className * @default */ nodeClassName?: string; /** * @description 节点 style * @default */ nodeStyle?: CSSProperties; /** * @description 选中节点 className * @default */ activeClassName?: string; /** * @description 选中节点 style * @default */ activeStyle?: CSSProperties; /** * @description 自定义展开按钮Icon * @default + */ /** * @description 自定义关闭按钮Icon * @default - */ /** * @description 连接线 className * @default */ lineClassName?: string; /** * @description 连接线 style * @default */ lineStyle?: CSSProperties; /** * @description 自定义节点渲染 * @default */ nodeRender?: (node: IMindTreeNode) => React.ReactNode | false; /** * @description 默认打开节点的 key * @default */ defaultExpandKeys?: INodeKey[]; /** * @description 打开的节点的 key * @default */ expandKeys?: INodeKey[]; /** * @description 节点展开变化回调函数 * @default */ onExpandKeysChange?: (keys: INodeKey[]) => void; /** * @description 树是否是只读 * @default true */ readonly?: boolean; /** * @description 是否可拖拽 * @default */ draggable?: boolean; /** * @description 默认选中的节点 key * @default */ defaultActiveKeys?: INodeKey[]; /** * @description 选中的节点 * @default */ activeKeys?: INodeKey[]; /** * @description 选中节点改变时的回调 * @default */ onActiveKeysChange?: (keys: INodeKey[]) => void; /** * @description 节点点击事件 * @default */ onClick?: (node: IMindTreeNode) => void; /** * @description 树节点数据发生变更回调 * @default */ onChange?: (node: IMindTreeNode) => void; /** * @description 点击增加子节点事件 * @default */ onAddChild?: (node: IMindTreeNode) => void; /** * @description 点击编辑节点事件 * @default */ onEditNode?: (node: IMindTreeNode) => void; /** * @description 增加兄弟节点事件 * @default */ onAddSibling?: (node: IMindTreeNode) => void; /** * @description 删除节点事件 * @default */ onDeleteNode?: (node: IMindTreeNode) => void; } export declare type INodeKey = string | number; interface IBaseNode { key?: INodeKey; title: string | ReactNode; remark?: string; color?: string; readonly?: boolean; showArrow?: boolean; subDesc?: string; arrowDirection?: 'toChildren' | 'toParent'; top?: Omit>[]; bottom?: Omit>[]; left?: Omit>[]; right?: Omit>[]; children?: Omit>[]; } export declare type INodeDirection = 'children' | 'left' | 'top' | 'right' | 'bottom'; export interface IMindTreeNode extends IBaseNode { [key: Exclude]: any; } export declare type IActionType = (node: IMindTreeNode) => void; export {};