///
import * as React from "react";
export interface NodeProps extends React.HTMLAttributes {
/**
* 样式类名的品牌前缀
*/
prefix?: string;
/**
* 自定义类名
*/
className?: string;
/**
* 自定义内联样式
*/
style?: React.CSSProperties;
/**
* 树节点
*/
children?: React.ReactNode;
/**
* 节点文本内容
*/
label?: React.ReactNode;
/**
* 单独设置是否支持选中,覆盖Tree的selectable
*/
selectable?: boolean;
/**
* 单独设置是否支持编辑,覆盖Tree的editable
*/
editable?: boolean;
/**
* 单独设置是否支持拖拽,覆盖Tree的draggable
*/
draggable?: boolean;
/**
* 是否禁止节点响应
*/
disabled?: boolean;
/**
* 是否禁止勾选节点复选框
*/
disableCheckbox?: boolean;
/**
* 是否是叶子节点,设置loadData时生效
*/
isLeaf?: boolean;
}
export class Node extends React.Component {}
interface HTMLAttributesWeak extends React.HTMLAttributes {
onSelect?: any;
}
export interface TreeProps extends HTMLAttributesWeak {
/**
* 样式类名的品牌前缀
*/
prefix?: string;
/**
* 自定义类名
*/
className?: string;
/**
* 自定义内联样式
*/
style?: React.CSSProperties;
/**
* 树节点
*/
children?: React.ReactNode;
/**
* 是否显示树的线
*/
showLine?: boolean;
/**
* 是否支持选中节点
*/
selectable?: boolean;
/**
* (用于受控)当前选中节点key的数组
*/
selectedKeys?: Array;
/**
* (用于非受控)默认选中节点key的数组
*/
defaultSelectedKeys?: Array;
/**
* 选中或取消选中节点时触发的回调函数
*/
onSelect?: (selectedKeys: Array, extra: {}) => void;
/**
* 是否支持多选
*/
multiple?: boolean;
/**
* 是否支持勾选节点的复选框
*/
checkable?: boolean;
/**
* (用于受控)当前勾选复选框节点key的数组或`{checked: Array, halfChecked: Array}`的对象
*/
checkedKeys?: Array | {};
/**
* (用于非受控)默认勾选复选框节点key的数组
*/
defaultCheckedKeys?: Array;
/**
* 勾选节点复选框是否完全受控(父子节点选中状态不再关联)
*/
checkStrictly?: boolean;
/**
* 是否启用勾选节点复选框的缓存来提高性能,如果dataSource需要被动态更新,请将其设置为false
*/
enableCheckedCache?: boolean;
/**
* 勾选或取消勾选复选框时触发的回调函数
*/
onCheck?: (checkedKeys: Array, extra: {}) => void;
/**
* (用于受控)当前展开的节点key的数组
*/
expandedKeys?: Array;
/**
* (用于非受控)默认展开的节点key的数组
*/
defaultExpandedKeys?: Array;
/**
* 是否默认展开所有节点
*/
defaultExpandAll?: boolean;
/**
* 是否自动展开父节点
*/
autoExpandParent?: boolean;
/**
* 展开或收起节点时触发的回调函数
*/
onExpand?: (expandedKeys: Array, extra: {}) => void;
/**
* 是否支持编辑节点内容
*/
editable?: boolean;
/**
* 编辑节点内容完成时触发的回调函数
*/
onEditFinish?: (key: string, label: string) => void;
/**
* 是否支持拖拽节点
*/
draggable?: boolean;
/**
* 开始拖拽节点时触发的回调函数
*/
onDragStart?: (info: {}) => void;
/**
* 拖拽节点进入目标节点时触发的回调函数
*/
onDragEnter?: (info: {}) => void;
/**
* 拖拽节点在目标节点上移动的时候触发的回调函数
*/
onDragOver?: (info: {}) => void;
/**
* 拖拽节点离开目标节点时触发的回调函数
*/
onDragLeave?: (info: {}) => void;
/**
* 拖拽节点放入目标节点内或前后触发的回调函数
*/
onDrop?: (info: {}) => void;
/**
* 节点是否可被作为拖拽的目标节点
*/
canDrop?: (info: {}) => boolean;
/**
* 异步加载数据的函数
*/
loadData?: (node: React.ReactElement) => void;
/**
* 按需筛选高亮节点
*/
filterTreeNode?: (node: React.ReactElement) => boolean;
/**
* 右键点击节点时触发的回调函数
*/
onRightClick?: (event: {}, node: React.ReactElement) => void;
/**
* 设置节点是否占满剩余空间,一般用于统一在各节点右侧添加元素(借助flex实现,暂时只支持ie10+)
*/
isLabelBlock?: boolean;
/**
* 是否开启展开收起动画
*/
animation?: boolean;
}
export default class Tree extends React.Component {
static Node: typeof Node;
}