export type SelectSource = 'option' | 'selection' | 'input' | 'clear'; export type Key = string | number; export type RawValueType = string | number; export interface LabelValueType { key?: Key; value?: RawValueType; label?: any; /** Only works on `treeCheckStrictly` */ halfChecked?: boolean; } export type DefaultValueType = RawValueType | RawValueType[] | LabelValueType | LabelValueType[]; export interface DataNode { value?: RawValueType; title?: any; label?: any; key?: Key; disabled?: boolean; disableCheckbox?: boolean; checkable?: boolean; selectable?: boolean; children?: DataNode[]; /** Customize data info */ [prop: string]: any; } export interface InternalDataEntity { key: Key; value: RawValueType; title?: any; checkable: boolean; disableCheckbox: boolean; disabled: boolean; selectable: boolean; children?: InternalDataEntity[]; /** Origin DataNode */ node: DataNode; dataRef: DataNode; slots?: Record; // 兼容 V2 } export interface LegacyDataNode extends DataNode { props: any; } export interface TreeDataNode extends DataNode { key: Key; children?: TreeDataNode[]; } export interface FlattenDataNode { data: InternalDataEntity; key: Key; value: RawValueType; level: number; parent?: FlattenDataNode; } export interface SimpleModeConfig { id?: Key; pId?: Key; rootPId?: Key; } /** @deprecated This is only used for legacy compatible. Not works on new code. */ export interface LegacyCheckedNode { pos: string; node: any; children?: LegacyCheckedNode[]; } export interface ChangeEventExtra { /** @deprecated Please save prev value by control logic instead */ preValue: LabelValueType[]; triggerValue: RawValueType; /** @deprecated Use `onSelect` or `onDeselect` instead. */ selected?: boolean; /** @deprecated Use `onSelect` or `onDeselect` instead. */ checked?: boolean; // Not sure if exist user still use this. We have to keep but not recommend user to use /** @deprecated This prop not work as react node anymore. */ triggerNode: any; /** @deprecated This prop not work as react node anymore. */ allCheckedNodes: LegacyCheckedNode[]; } export interface FieldNames { value?: string; label?: string; children?: string; }