chowa
Version:
UI component library based on React
113 lines (112 loc) • 4.26 kB
TypeScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import * as PropTypes from 'prop-types';
import TreeNode, { TreeNodeProps } from './tree-node';
export interface Node extends TreeNodeProps {
children?: Node[];
}
export declare type Nodes = Node[];
export interface TreeProps {
className?: string;
style?: React.CSSProperties;
selectable?: boolean;
checkable?: boolean;
multiple?: boolean;
disabled?: boolean;
blockNode?: boolean;
withLine?: boolean;
draggable?: boolean;
checkStrictly?: boolean;
searchable?: boolean;
onSearch?: (searchValue: string) => void;
searchPlaceholder?: string;
defaultExpandAll?: boolean;
expandIndexs?: React.ReactText[];
selectedIndexs?: React.ReactText[];
checkedIndexs?: React.ReactText[];
onSelect?: (node: Node, indexs: React.ReactText[]) => void;
onDeSelect?: (node: Node, indexs: React.ReactText[]) => void;
onCheck?: (node: Node, e: React.ChangeEvent<HTMLInputElement>, checkedIndexs: React.ReactText[]) => void;
onExpand?: (node: Node, visible: boolean) => void;
loadData?: (node: Node) => Promise<Nodes>;
formatter?: (node: Node) => React.ReactNode;
onDragEnd?: (nodes: Nodes, dragNode: Node) => void;
nodes?: Nodes;
onContextMenu?: (node: Node, e: React.MouseEvent) => void;
}
export interface TreeState {
renderNodes: Nodes;
searchValue: string;
selfSelectedIndexs: React.ReactText[];
selfCheckedIndexs: React.ReactText[];
indeterminateIndexs: React.ReactText[];
selfExpandIndexs: React.ReactText[];
fetchingIndexs: React.ReactText[];
}
declare class Tree extends React.PureComponent<TreeProps, TreeState> {
static propTypes: {
className: PropTypes.Requireable<string>;
style: PropTypes.Requireable<object>;
selectable: PropTypes.Requireable<boolean>;
checkable: PropTypes.Requireable<boolean>;
multiple: PropTypes.Requireable<boolean>;
disabled: PropTypes.Requireable<boolean>;
blockNode: PropTypes.Requireable<boolean>;
withLine: PropTypes.Requireable<boolean>;
draggable: PropTypes.Requireable<boolean>;
checkStrictly: PropTypes.Requireable<boolean>;
searchable: PropTypes.Requireable<boolean>;
onSearch: PropTypes.Requireable<(...args: any[]) => any>;
searchPlaceholder: PropTypes.Requireable<string>;
defaultExpandAll: PropTypes.Requireable<boolean>;
expandIndexs: PropTypes.Requireable<any[]>;
selectedIndexs: PropTypes.Requireable<any[]>;
checkedIndexs: PropTypes.Requireable<any[]>;
onSelect: PropTypes.Requireable<(...args: any[]) => any>;
onDeSelect: PropTypes.Requireable<(...args: any[]) => any>;
onCheck: PropTypes.Requireable<(...args: any[]) => any>;
onExpand: PropTypes.Requireable<(...args: any[]) => any>;
loadData: PropTypes.Requireable<(...args: any[]) => any>;
formatter: PropTypes.Requireable<(...args: any[]) => any>;
onDragEnd: PropTypes.Requireable<(...args: any[]) => any>;
nodes: PropTypes.Requireable<any[]>;
onContextMenu: PropTypes.Requireable<(...args: any[]) => any>;
};
static defaultProps: {
selectable: boolean;
searchPlaceholder: string;
checkable: boolean;
multiple: boolean;
disabled: boolean;
blockNode: boolean;
withLine: boolean;
draggable: boolean;
checkStrictly: boolean;
searchable: boolean;
defaultExpandAll: boolean;
};
static Node: typeof TreeNode;
constructor(props: TreeProps & {
children: React.ReactNode;
});
componentDidUpdate(preProps: TreeProps & {
children: React.ReactNode;
}): void;
private compileRenderParams;
private onSelectHandler;
private onCheckHandler;
private onLoadDataHandler;
private onExpandHandler;
private onSearchHandler;
private onDragSorter;
renderTree(): JSX.Element;
render(): JSX.Element;
}
export default Tree;