UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

67 lines (66 loc) 2.78 kB
/** * Webpack has bug for import loop, which is not the same behavior as ES module. * When util.js imports the TreeNode for tree generate will cause treeContextTypes be empty. */ import React from 'react'; import { DataEntity, DataNode, Direction, EventDataNode, IconType, Key, NodeInstance } from './interface'; export declare type NodeMouseEventParams<T = HTMLSpanElement> = { event: React.MouseEvent<T>; node: EventDataNode; }; export declare type NodeDragEventParams<T = HTMLDivElement> = { event: React.MouseEvent<T>; node: EventDataNode; }; export declare type NodeMouseEventHandler<T = HTMLSpanElement> = (e: React.MouseEvent<T>, node: EventDataNode) => void; export declare type NodeDragEventHandler<T = HTMLDivElement> = (e: React.MouseEvent<T>, node: NodeInstance | null, outsideTree?: boolean) => void; export interface DraggableProps { nodeDraggable: ((node?: DataNode) => boolean) | boolean; icon: boolean | React.ReactNode; } export interface TreeContextProps { prefixCls: string; selectable?: boolean; showIcon?: boolean; icon: IconType; switcherIcon: IconType; draggable?: ((node?: DataNode) => boolean) | boolean | DraggableProps; checkable: boolean | React.ReactNode; checkStrictly?: boolean; disabled?: boolean; keyEntities: Record<Key, DataEntity>; dropLevelOffset?: number | null; dropContainerKey: Key | null; dropTargetKey: Key | null; dropPosition: -1 | 0 | 1 | null; indent: number | null; dropIndicatorRender?: (props: { dropPosition: -1 | 0 | 1 | null; dropLevelOffset: number | undefined | null; indent: number | null; prefixCls: string; direction: Direction; }) => React.ReactNode; dragOverNodeKey: Key | null; direction: Direction; loadData?: (treeNode: EventDataNode) => Promise<void>; filterTreeNode?: (treeNode: EventDataNode) => boolean; titleRender?: (node?: DataNode) => React.ReactNode; ripple?: boolean; onNodeClick: NodeMouseEventHandler; onNodeDoubleClick: NodeMouseEventHandler; onNodeExpand: NodeMouseEventHandler; onNodeSelect: NodeMouseEventHandler; onNodeCheck: (e: React.MouseEvent<HTMLSpanElement>, treeNode: EventDataNode, checked: boolean) => void; onNodeLoad: (treeNode: EventDataNode) => void; onNodeMouseEnter: NodeMouseEventHandler; onNodeMouseLeave: NodeMouseEventHandler; onNodeContextMenu: NodeMouseEventHandler; onNodeDragStart: NodeDragEventHandler; onNodeDragEnter: NodeDragEventHandler; onNodeDragOver: NodeDragEventHandler; onNodeDragLeave: NodeDragEventHandler; onNodeDragEnd: NodeDragEventHandler; onNodeDrop: NodeDragEventHandler; } export declare const TreeContext: React.Context<TreeContextProps>;