UNPKG

3.1 kBTypeScriptView Raw
1/**
2 * Webpack has bug for import loop, which is not the same behavior as ES module.
3 * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty.
4 */
5import * as React from 'react';
6import { IconType, Key, DataEntity, EventDataNode, NodeInstance, DataNode, Direction, BasicDataNode } from './interface';
7import { DraggableConfig } from './Tree';
8export type NodeMouseEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = {
9 event: React.MouseEvent<T>;
10 node: EventDataNode<TreeDataType>;
11};
12export type NodeDragEventParams<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = {
13 event: React.DragEvent<T>;
14 node: EventDataNode<TreeDataType>;
15};
16export type NodeMouseEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLSpanElement> = (e: React.MouseEvent<T>, node: EventDataNode<TreeDataType>) => void;
17export type NodeDragEventHandler<TreeDataType extends BasicDataNode = DataNode, T = HTMLDivElement> = (e: React.DragEvent<T>, node: NodeInstance<TreeDataType>, outsideTree?: boolean) => void;
18export interface TreeContextProps<TreeDataType extends BasicDataNode = DataNode> {
19 prefixCls: string;
20 selectable: boolean;
21 showIcon: boolean;
22 icon: IconType;
23 switcherIcon: IconType;
24 draggable?: DraggableConfig;
25 draggingNodeKey?: React.Key;
26 checkable: boolean | React.ReactNode;
27 checkStrictly: boolean;
28 disabled: boolean;
29 keyEntities: Record<Key, DataEntity<any>>;
30 dropLevelOffset?: number;
31 dropContainerKey: Key | null;
32 dropTargetKey: Key | null;
33 dropPosition: -1 | 0 | 1 | null;
34 indent: number | null;
35 dropIndicatorRender: (props: {
36 dropPosition: -1 | 0 | 1;
37 dropLevelOffset: number;
38 indent: any;
39 prefixCls: any;
40 direction: Direction;
41 }) => React.ReactNode;
42 dragOverNodeKey: Key | null;
43 direction: Direction;
44 loadData: (treeNode: EventDataNode<TreeDataType>) => Promise<void>;
45 filterTreeNode: (treeNode: EventDataNode<TreeDataType>) => boolean;
46 titleRender?: (node: any) => React.ReactNode;
47 onNodeClick: NodeMouseEventHandler<TreeDataType>;
48 onNodeDoubleClick: NodeMouseEventHandler<TreeDataType>;
49 onNodeExpand: NodeMouseEventHandler<TreeDataType>;
50 onNodeSelect: NodeMouseEventHandler<TreeDataType>;
51 onNodeCheck: (e: React.MouseEvent<HTMLSpanElement>, treeNode: EventDataNode<TreeDataType>, checked: boolean) => void;
52 onNodeLoad: (treeNode: EventDataNode<TreeDataType>) => void;
53 onNodeMouseEnter: NodeMouseEventHandler<TreeDataType>;
54 onNodeMouseLeave: NodeMouseEventHandler<TreeDataType>;
55 onNodeContextMenu: NodeMouseEventHandler<TreeDataType>;
56 onNodeDragStart: NodeDragEventHandler<any, any>;
57 onNodeDragEnter: NodeDragEventHandler<any, any>;
58 onNodeDragOver: NodeDragEventHandler<any, any>;
59 onNodeDragLeave: NodeDragEventHandler<any, any>;
60 onNodeDragEnd: NodeDragEventHandler<any, any>;
61 onNodeDrop: NodeDragEventHandler<any, any>;
62}
63export declare const TreeContext: React.Context<TreeContextProps<any> | null>;