import React, { MouseEvent, KeyboardEvent } from 'react'; import PropTypes from 'prop-types'; import { ContextValue } from '../configProvider/context'; import { TreeAdapter } from '@douyinfe/semi-foundation/lib/es/tree/foundation'; import BaseComponent from '../_base/baseComponent'; import Input from '../input/index'; import TreeNode from './treeNode'; import '@douyinfe/semi-foundation/lib/es/tree/tree.css'; import { TreeProps, TreeState, TreeNodeProps, TreeNodeData, FlattenNode, KeyEntity, OptionProps, ScrollData } from './interface'; export * from './interface'; export type { AutoSizerProps } from './autoSizer'; declare class Tree extends BaseComponent { static contextType: React.Context; static propTypes: { autoMergeValue: PropTypes.Requireable; blockNode: PropTypes.Requireable; className: PropTypes.Requireable; showClear: PropTypes.Requireable; defaultExpandAll: PropTypes.Requireable; defaultExpandedKeys: PropTypes.Requireable; defaultValue: PropTypes.Requireable>; directory: PropTypes.Requireable; disabled: PropTypes.Requireable; emptyContent: PropTypes.Requireable; expandAll: PropTypes.Requireable; expandedKeys: PropTypes.Requireable; filterTreeNode: PropTypes.Requireable any)>>; icon: PropTypes.Requireable; onChangeWithObject: PropTypes.Requireable; motion: PropTypes.Requireable; multiple: PropTypes.Requireable; onChange: PropTypes.Requireable<(...args: any[]) => any>; onExpand: PropTypes.Requireable<(...args: any[]) => any>; onSearch: PropTypes.Requireable<(...args: any[]) => any>; onSelect: PropTypes.Requireable<(...args: any[]) => any>; onContextMenu: PropTypes.Requireable<(...args: any[]) => any>; onDoubleClick: PropTypes.Requireable<(...args: any[]) => any>; searchClassName: PropTypes.Requireable; searchPlaceholder: PropTypes.Requireable; searchStyle: PropTypes.Requireable; selectedKey: PropTypes.Requireable; showFilteredOnly: PropTypes.Requireable; showLine: PropTypes.Requireable; style: PropTypes.Requireable; treeData: PropTypes.Requireable; value: PropTypes.Requireable>; label: PropTypes.Requireable; isLeaf: PropTypes.Requireable; children: PropTypes.Requireable; }>[]>; keyMaps: PropTypes.Requireable; treeDataSimpleJson: PropTypes.Requireable; treeNodeFilterProp: PropTypes.Requireable; value: PropTypes.Requireable>; virtualize: PropTypes.Requireable; autoExpandParent: PropTypes.Requireable; expandAction: PropTypes.Requireable; searchRender: PropTypes.Requireable any)>>; renderLabel: PropTypes.Requireable<(...args: any[]) => any>; renderFullLabel: PropTypes.Requireable<(...args: any[]) => any>; leafOnly: PropTypes.Requireable; loadedKeys: PropTypes.Requireable; loadData: PropTypes.Requireable<(...args: any[]) => any>; onLoad: PropTypes.Requireable<(...args: any[]) => any>; disableStrictly: PropTypes.Requireable; draggable: PropTypes.Requireable; autoExpandWhenDragEnter: PropTypes.Requireable; hideDraggingNode: PropTypes.Requireable; renderDraggingNode: PropTypes.Requireable<(...args: any[]) => any>; onDragEnd: PropTypes.Requireable<(...args: any[]) => any>; onDragEnter: PropTypes.Requireable<(...args: any[]) => any>; onDragLeave: PropTypes.Requireable<(...args: any[]) => any>; onDragOver: PropTypes.Requireable<(...args: any[]) => any>; onDragStart: PropTypes.Requireable<(...args: any[]) => any>; onDrop: PropTypes.Requireable<(...args: any[]) => any>; labelEllipsis: PropTypes.Requireable; checkRelation: PropTypes.Requireable; 'aria-label': PropTypes.Requireable; preventScroll: PropTypes.Requireable; }; static defaultProps: { showClear: boolean; disabled: boolean; blockNode: boolean; multiple: boolean; filterTreeNode: boolean; autoExpandParent: boolean; treeNodeFilterProp: string; defaultExpandAll: boolean; expandAll: boolean; onChangeWithObject: boolean; motion: boolean; leafOnly: boolean; showFilteredOnly: boolean; showLine: boolean; expandAction: boolean; disableStrictly: boolean; draggable: boolean; autoExpandWhenDragEnter: boolean; checkRelation: string; autoMergeValue: boolean; }; static TreeNode: typeof TreeNode; inputRef: React.RefObject; optionsRef: React.RefObject; dragNode: any; onNodeClick: any; onMotionEnd: any; context: ContextValue; virtualizedListRef: React.RefObject; constructor(props: TreeProps); /** * Process of getDerivedStateFromProps was inspired by rc-tree * https://github.com/react-component/tree */ static getDerivedStateFromProps(props: TreeProps, prevState: TreeState): Partial; get adapter(): TreeAdapter; search: (value: string) => void; scrollTo: (scrollData: ScrollData) => void; renderInput(): React.JSX.Element; renderEmpty: () => React.JSX.Element; onNodeSelect: (e: MouseEvent | KeyboardEvent, treeNode: TreeNodeProps) => void; onNodeLoad: (data: TreeNodeData) => Promise; onNodeCheck: (e: MouseEvent | KeyboardEvent, treeNode: TreeNodeProps) => void; onNodeExpand: (e: MouseEvent | KeyboardEvent, treeNode: TreeNodeProps) => void; onNodeRightClick: (e: MouseEvent, treeNode: TreeNodeProps) => void; onNodeDoubleClick: (e: MouseEvent, treeNode: TreeNodeProps) => void; onNodeDragStart: (e: React.DragEvent, treeNode: TreeNodeProps) => void; onNodeDragEnter: (e: React.DragEvent, treeNode: TreeNodeProps) => void; onNodeDragOver: (e: React.DragEvent, treeNode: TreeNodeProps) => void; onNodeDragLeave: (e: React.DragEvent, treeNode: TreeNodeProps) => void; onNodeDragEnd: (e: React.DragEvent, treeNode: TreeNodeProps) => void; onNodeDrop: (e: React.DragEvent, treeNode: TreeNodeProps) => void; getTreeNodeRequiredProps: () => { expandedKeys: Set; selectedKeys: string[]; checkedKeys: Set; halfCheckedKeys: Set; filteredKeys: Set; keyEntities: import("./interface").KeyEntities; }; getTreeNodeKey: (treeNode: TreeNodeData) => any; renderTreeNode: (treeNode: FlattenNode, ind?: number, style?: React.CSSProperties) => React.JSX.Element; itemKey: (index: number, data: KeyEntity) => any; option: ({ index, style, data }: OptionProps) => React.JSX.Element; renderNodeList(): React.JSX.Element; render(): React.JSX.Element; } export default Tree;