///
import type { BasicDataNode, DataNode, Key, OcTreeProps } from './Internal/OcTree.types';
export declare type SwitcherIcon = React.ReactNode | ((props: {
expanded: boolean;
}) => React.ReactNode);
export interface OcTreeNodeAttribute {
eventKey: string;
classNames: string;
expanded: boolean;
selected: boolean;
checked: boolean;
halfChecked: boolean;
children: React.ReactNode;
title: React.ReactNode;
pos: string;
dragOver: boolean;
dragOverGapTop: boolean;
dragOverGapBottom: boolean;
isLeaf: boolean;
selectable: boolean;
disabled: boolean;
disableCheckbox: boolean;
}
export interface OcTreeNodeProps {
classNames?: string;
checkable?: boolean;
disabled?: boolean;
disableCheckbox?: boolean;
title?: string | React.ReactNode;
key?: Key;
eventKey?: string;
isLeaf?: boolean;
checked?: boolean;
expanded?: boolean;
loading?: boolean;
selected?: boolean;
selectable?: boolean;
icon?: ((treeNode: OcTreeNodeAttribute) => React.ReactNode) | React.ReactNode;
children?: React.ReactNode;
[customProp: string]: any;
}
export interface OcTreeNode extends React.Component {
}
export interface OcTreeNodeBaseEvent {
node: OcTreeNode;
nativeEvent: MouseEvent;
}
export interface OcTreeNodeCheckedEvent extends OcTreeNodeBaseEvent {
event: 'check';
checked?: boolean;
checkedNodes?: OcTreeNode[];
}
export interface OcTreeNodeSelectedEvent extends OcTreeNodeBaseEvent {
event: 'select';
selected?: boolean;
selectedNodes?: DataNode[];
}
export interface OcTreeNodeExpandedEvent extends OcTreeNodeBaseEvent {
expanded?: boolean;
}
export interface OcTreeNodeMouseEvent {
node: OcTreeNode;
event: React.DragEvent;
}
export interface OcTreeNodeDragEnterEvent extends OcTreeNodeMouseEvent {
expandedKeys: Key[];
}
export interface OcTreeNodeDropEvent {
node: OcTreeNode;
dragNode: OcTreeNode;
dragNodesKeys: Key[];
dropPosition: number;
dropToGap?: boolean;
event: React.MouseEvent;
}
export declare type TreeNodeNormal = DataNode;
export declare type DraggableFn = (node: OcTreeNode) => boolean;
export interface DraggableConfig {
icon?: React.ReactNode | false;
nodeDraggable?: DraggableFn;
}
export interface TreeProps extends Omit, 'showLine' | 'direction' | 'draggable'> {
showLine?: boolean | {
showLeafIcon: boolean;
};
classNames?: string;
multiple?: boolean;
autoExpandParent?: boolean;
checkStrictly?: boolean;
checkable?: boolean;
disabled?: boolean;
defaultExpandAll?: boolean;
defaultExpandParent?: boolean;
defaultExpandedKeys?: Key[];
expandedKeys?: Key[];
checkedKeys?: Key[] | {
checked: Key[];
halfChecked: Key[];
};
defaultCheckedKeys?: Key[];
selectedKeys?: Key[];
defaultSelectedKeys?: Key[];
selectable?: boolean;
filterOcTreeNode?: (node: OcTreeNode) => boolean;
loadedKeys?: Key[];
draggable?: DraggableFn | boolean | DraggableConfig;
style?: React.CSSProperties;
showIcon?: boolean;
icon?: ((nodeProps: OcTreeNodeAttribute) => React.ReactNode) | React.ReactNode;
switcherIcon?: SwitcherIcon;
children?: React.ReactNode;
blockNode?: boolean;
virtual?: boolean;
}