import { Field, FieldConfig, FieldError, FieldProps } from '../common'; import InterfaceHelper, { InterfaceConfig } from '../../../util/interface'; import { RecordParamConfig, DataParamConfig, StepParamConfig, SourceParamConfig } from '../../../interface'; declare type OptionsConfigDefaultValue = RecordParamConfig | DataParamConfig | StepParamConfig | SourceParamConfig; export interface TreeSelectFieldConfig extends FieldConfig { type: 'tree_select'; mode?: 'tree' | 'table' | 'treeSelect'; multiple?: true | TreeSelectMultipleArrayConfig | TreeSelectMultipleSplitConfig; titleColumn?: string; treeData?: ManualOptionsConfig | InterfaceOptionsConfig | DataOptionsConfig; } interface TreeSelectMultipleArrayConfig { type: 'array'; } interface TreeSelectMultipleSplitConfig { type: 'split'; split?: string; valueType?: 'string' | 'number' | 'boolean' | undefined; } export interface DataOptionsConfig { from: 'data'; sourceConfig?: OptionsConfigDefaultValue; format?: InterfaceOptionsListConfig; } export interface ManualOptionsConfig { from: 'manual'; defaultIndex?: string | number; data?: TreeSelectFieldOption[]; } export interface TreeSelectFieldOption { key: string | number; value: string | number; title: string; children?: Array; } export interface InterfaceOptionsConfig { from: 'interface'; interface?: InterfaceConfig; format?: InterfaceOptionsListConfig; } export interface InterfaceOptionsKVConfig { type: 'kv'; } export interface InterfaceOptionsListConfig { type: 'list'; keyField?: string; titleField?: string; childrenField?: string; } interface TreeSelectFieldState { interfaceOptionsData: TreeSelectFieldOption[]; } declare type TreeSelectValueType = string | Array | undefined; export interface ITreeSelectField { multiple?: boolean; value: TreeSelectValueType; treeData: Array; titleColumn?: string; onChange: (value: TreeSelectValueType) => Promise; } export default class TreeSelectField extends Field { interfaceHelper: InterfaceHelper; interfaceOptionsConfig: string; state: TreeSelectFieldState; constructor(props: FieldProps); optionsData: (sourceConfig: OptionsConfigDefaultValue) => any; formatTree: (treeList: TreeSelectFieldOption[], value: string, title: string, children: string) => TreeSelectFieldOption[]; options: (config: ManualOptionsConfig | InterfaceOptionsConfig | DataOptionsConfig | undefined, datas: { record?: object | undefined; data: object[]; step: { [field: string]: any; }; }) => TreeSelectFieldOption[]; validate: (_value: TreeSelectValueType) => Promise; renderComponent: (props: ITreeSelectField) => JSX.Element; renderTreeComponent: (props: ITreeSelectField) => JSX.Element; renderTableComponent: (props: ITreeSelectField) => JSX.Element; render: () => JSX.Element; } export {};