/** * @file Tree * @description 树形组件 */ import React from 'react'; import type { Option, Options } from '../select2/select'; interface IDropIndicator { left: number; top: number; width: number; height?: number; } export interface IDropInfo { dragNode: Option | null; node: Option; position: 'top' | 'bottom' | 'self'; indicator: IDropIndicator; } declare enum CheckboxPositionEnmu { LEFT = "left", Right = "right" } interface TreeSelectorProps { translate?: any; highlightTxt?: string; onRef?: any; showIcon?: boolean; initiallyOpen?: boolean; unfoldedLevel?: number; showRadio?: boolean; multiple?: boolean; checkboxPosition: CheckboxPositionEnmu; disabled?: boolean; searchable?: boolean; withChildren?: boolean; onlyChildren?: boolean; onlyLeaf?: boolean; labelField: string; valueField: string; iconField: string; unfoldedField: string; foldedField: string; disabledField: string; showOutline?: boolean; className?: string; itemClassName?: string; joinValues?: boolean; extractValue?: boolean; delimiter?: string; options: Options; value?: any; placeholder?: string; hideRoot?: boolean; rootLabel?: string; rootValue?: any; enableNodePath?: boolean; pathSeparator?: string; nodePath: any[]; autoCascade: boolean; cascade?: boolean; selfDisabledAffectChildren?: boolean; minLength?: number; maxLength?: number; bultinCUD?: boolean; rootCreatable?: boolean; rootCreateTip?: string; creatable?: boolean; createTip?: string; onAdd?: (idx?: number | Array, value?: any, skipForm?: boolean) => void; editable?: boolean; editTip?: string; onEdit?: (value: Option, origin?: Option, skipForm?: boolean) => void; removable?: boolean; removeTip?: string; onSearch?: (val: string | null) => void; onDelete?: (value: Option) => void; onDeferLoad?: (option: Option) => void; onExpandTree?: (nodePathArr: any[]) => void; draggable?: boolean; onMove?: (dropInfo: IDropInfo) => void; renderValue?: (option: Option, states: any) => JSX.Element; rightExtra?: (option: Option) => JSX.Element; rightExtraTrigger?: 'hover' | 'show'; /** * * @param val 选中集合 * @param cur 当前点击对象 checked,node * @returns */ onChange?: (val: any, cur?: { checked: boolean; node: Option; }) => void; /** * 保留hover的节点 */ saveHoverItem?: null | string; } interface TreeSelectorState { value: Array; inputValue: string; addingParent: Option | null; isAdding: boolean; isEditing: boolean; editingItem: Option | null; dropIndicator?: IDropIndicator; } export declare class TreeSelector extends React.Component { static contextType?: React.Context | undefined; static defaultProps: { showIcon: boolean; showOutline: boolean; initiallyOpen: boolean; unfoldedLevel: number; showRadio: boolean; multiple: boolean; disabled: boolean; withChildren: boolean; searchable: boolean; onlyChildren: boolean; labelField: string; valueField: string; iconField: string; unfoldedField: string; foldedField: string; disabledField: string; joinValues: boolean; extractValue: boolean; delimiter: string; hideRoot: boolean; rootLabel: string; rootValue: number; autoCascade: boolean; cascade: boolean; selfDisabledAffectChildren: boolean; rootCreateTip: string; createTip: string; editTip: string; removeTip: string; enableNodePath: boolean; pathSeparator: string; nodePath: any[]; rightExtraTrigger: string; onlyLeaf: boolean; checkboxPosition: CheckboxPositionEnmu; }; unfolded: WeakMap; dragNode: Option | null; dropInfo: IDropInfo | null; startPoint: { x: number; y: number; }; root: React.RefObject; constructor(props: TreeSelectorProps); componentDidMount(): void; componentDidUpdate(prevProps: TreeSelectorProps): void; /** * 展开懒加载节点的父节点 */ expandLazyLoadNodes(): void; syncUnFolded(props: TreeSelectorProps, unfoldedLevel?: number): WeakMap; toggleUnfolded(node: any): void; isUnfolded(node: any): boolean; clearSelect(): void; /** * enableNodePath为true时,将label和value转换成node path格式 */ transform2NodePath(value: any): any; handleSelect(node: any, value?: any): void; handleCheck(item: any, checked: boolean): void; handleAdd(parent?: Option | null): void; handleEdit(item: Option): void; handleRemove(item: Option): void; handleInputChange(e: React.ChangeEvent): void; handleConfirm(): void; handleCancel(): void; renderInput(prfix?: JSX.Element | null): JSX.Element; getOffsetPosition(element: HTMLElement): { left: number; top: number; }; getDropInfo(e: React.DragEvent, node: Option): IDropInfo; updateDropIndicator(e: React.DragEvent, node: Option): void; onDragStart(node: Option): (e: React.DragEvent) => void; onDragOver(node: Option): (e: React.DragEvent) => void; onDragEnd(dragNode: Option): (e: React.DragEvent) => void; renderList(list: Options, value: Option[], uncheckable: boolean): { dom: Array; childrenChecked: number; }; search(inputValue: string): void; clearSearch(): void; renderSearch(): JSX.Element; render(): JSX.Element; } declare const _default: any; export default _default;