1 | import * as React from "react";
|
2 | import { Props, MaybeElement } from "../../common/props";
|
3 | import { IconName } from "../icon/icon";
|
4 | export declare type TreeNodeInfo<T = {}> = ITreeNode<T>;
|
5 |
|
6 | export interface ITreeNode<T = {}> extends Props {
|
7 | |
8 |
|
9 |
|
10 | childNodes?: Array<TreeNodeInfo<T>>;
|
11 | |
12 |
|
13 |
|
14 |
|
15 | disabled?: boolean;
|
16 | |
17 |
|
18 |
|
19 |
|
20 | hasCaret?: boolean;
|
21 | |
22 |
|
23 |
|
24 | icon?: IconName | MaybeElement;
|
25 | |
26 |
|
27 |
|
28 | id: string | number;
|
29 | |
30 |
|
31 | isExpanded?: boolean;
|
32 | |
33 |
|
34 |
|
35 |
|
36 |
|
37 | isSelected?: boolean;
|
38 | |
39 |
|
40 |
|
41 | label: string | JSX.Element;
|
42 | |
43 |
|
44 |
|
45 | secondaryLabel?: string | MaybeElement;
|
46 | |
47 |
|
48 |
|
49 |
|
50 |
|
51 | nodeData?: T;
|
52 | }
|
53 | export declare type TreeNodeProps<T = {}> = ITreeNodeProps<T>;
|
54 | export interface ITreeNodeProps<T = {}> extends TreeNodeInfo<T> {
|
55 | children?: React.ReactNode;
|
56 | contentRef?: (node: TreeNode<T>, element: HTMLDivElement | null) => void;
|
57 | depth: number;
|
58 | key?: string | number;
|
59 | onClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
|
60 | onCollapse?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;
|
61 | onContextMenu?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
|
62 | onDoubleClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
|
63 | onExpand?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;
|
64 | onMouseEnter?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
|
65 | onMouseLeave?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
|
66 | path: number[];
|
67 | }
|
68 | export declare class TreeNode<T = {}> extends React.Component<ITreeNodeProps<T>> {
|
69 | static displayName: string;
|
70 | static ofType<U>(): new (props: ITreeNodeProps<U>) => TreeNode<U>;
|
71 | render(): JSX.Element;
|
72 | private maybeRenderCaret;
|
73 | private maybeRenderSecondaryLabel;
|
74 | private handleCaretClick;
|
75 | private handleClick;
|
76 | private handleContentRef;
|
77 | private handleContextMenu;
|
78 | private handleDoubleClick;
|
79 | private handleMouseEnter;
|
80 | private handleMouseLeave;
|
81 | }
|