import * as React from 'react'; import DirectoryTree from './DirectoryTree'; export interface FishdTreeNodeAttribute { eventKey: string; prefixCls: string; className: string; expanded: boolean; selected: boolean; checked: boolean; halfChecked: boolean; children: React.ReactNode; title: React.ReactNode; pos: string; dragOver: boolean; dragOverGapTop: boolean; dragOverGapBottom: boolean; isLeaf: boolean; selectable: boolean; disabled: boolean; disableCheckbox: boolean; } export interface FishdTreeNodeProps { className?: string; disabled?: boolean; disableCheckbox?: boolean; title?: string | React.ReactNode; key?: string; eventKey?: string; isLeaf?: boolean; checked?: boolean; expanded?: boolean; loading?: boolean; selected?: boolean; selectable?: boolean; icon?: ((treeNode: FishdTreeNodeAttribute) => React.ReactNode) | React.ReactNode; children?: React.ReactNode; [customProp: string]: any; } export interface FishdTreeNode extends React.Component { } export interface FishdTreeNodeBaseEvent { node: FishdTreeNode; nativeEvent: MouseEvent; } export interface FishdTreeNodeCheckedEvent extends FishdTreeNodeBaseEvent { event: 'check'; checked?: boolean; checkedNodes?: FishdTreeNode[]; } export interface FishdTreeNodeSelectedEvent extends FishdTreeNodeBaseEvent { event: 'select'; selected?: boolean; selectedNodes?: FishdTreeNode[]; } export interface FishdTreeNodeExpandedEvent extends FishdTreeNodeBaseEvent { expanded?: boolean; } export interface FishdTreeNodeMouseEvent { node: FishdTreeNode; event: React.MouseEventHandler; } export interface FishdTreeNodeDropEvent { node: FishdTreeNode; dragNode: FishdTreeNode; dragNodesKeys: string[]; event: React.MouseEventHandler; } export interface TreeData { key: string; title: React.ReactNode; children?: TreeData[]; disabled?: boolean; selectable?: boolean; disableCheckbox?: boolean; isLeaf?: boolean; } export interface TreeProps { showLine?: boolean; className?: string; /** 是否支持多选 */ multiple?: boolean; /** 是否自动展开父节点 */ autoExpandParent?: boolean; /** checkable状态下节点选择完全受控(父子节点选中状态不再关联)*/ checkStrictly?: boolean; /** 是否支持选中 */ checkable?: boolean; /** 是否禁用树 */ disabled?: boolean; /** 默认展开所有树节点 */ defaultExpandAll?: boolean; /** 默认展开对应树节点 */ defaultExpandParent?: boolean; /** 默认展开指定的树节点 */ defaultExpandedKeys?: string[]; /** (受控)是否展开所有的树节点 */ expandAll?: boolean; /** (受控)展开指定的树节点 */ expandedKeys?: string[]; /** (受控)选中复选框的树节点 */ checkedKeys?: string[] | { checked: string[]; halfChecked: string[]; }; /** 默认选中所有子节点,子节点全部选中时,不会选中父节点 */ checkType?: 'countDown'; /** 默认选中复选框的树节点 */ defaultCheckedKeys?: string[]; /** (受控)设置选中的树节点 */ selectedKeys?: string[]; treeData?: Array; /** 默认选中的树节点 */ defaultSelectedKeys?: string[]; selectable?: boolean; /** 展开/收起节点时触发 */ onExpand?: (expandedKeys: string[], info: FishdTreeNodeExpandedEvent) => void | PromiseLike; /** 点击复选框触发 */ onCheck?: (checkedKeys: string[] | { checked: string[]; halfChecked: string[]; }, e: FishdTreeNodeCheckedEvent) => void; /** 点击树节点触发 */ onSelect?: (selectedKeys: string[], e: FishdTreeNodeSelectedEvent) => void; /** 单击树节点触发 */ onClick?: (e: React.MouseEvent, node: FishdTreeNode) => void; /** 双击树节点触发 */ onDoubleClick?: (e: React.MouseEvent, node: FishdTreeNode) => void; /** filter some FishdTreeNodes as you need. it should return true */ filterFishdTreeNode?: (node: FishdTreeNode) => boolean; /** 异步加载数据 */ loadData?: (node: FishdTreeNode) => PromiseLike; loadedKeys?: string[]; onLoaded?: (loadedKeys: string[], info: { event: 'load'; node: FishdTreeNode; }) => void; /** 响应右键点击 */ onRightClick?: (options: FishdTreeNodeMouseEvent) => void; /** 设置节点可拖拽(IE>8)*/ draggable?: boolean; /** 开始拖拽时调用 */ onDragStart?: (options: FishdTreeNodeMouseEvent) => void; /** dragenter 触发时调用 */ onDragEnter?: (options: FishdTreeNodeMouseEvent) => void; /** dragover 触发时调用 */ onDragOver?: (options: FishdTreeNodeMouseEvent) => void; /** dragleave 触发时调用 */ onDragLeave?: (options: FishdTreeNodeMouseEvent) => void; /** drop 触发时调用 */ onDrop?: (options: FishdTreeNodeDropEvent) => void; style?: React.CSSProperties; showIcon?: boolean; icon?: (nodeProps: FishdTreeNodeAttribute) => React.ReactNode | React.ReactNode; prefixCls?: string; filterTreeNode?: (node: FishdTreeNode) => boolean; children?: React.ReactNode | React.ReactNode[]; required?: boolean; } declare const TreeRef: React.ForwardRefExoticComponent>; declare type TreeRefInterface = typeof TreeRef; interface TreeInterface extends TreeRefInterface { DirectoryTree: typeof DirectoryTree; TreeNode: React.ComponentClass; __FISHD_TREE: boolean; } declare const Tree: TreeInterface; export default Tree;