import type { LocaleProps, Option, Options, SchemaClassName, SchemaRenderFn, ThemeProps } from 'jamis-core'; import type { SchemaObject, SchemaTpl } from '../../types'; export * from './Select.types'; export * from './UserSelect.types'; export * from './UserTabSelect.types'; export interface RenderMenuParams { index?: number; checked?: boolean; multiple?: boolean; checkAll?: boolean; title?: string; inputValue?: string; searchable?: boolean; [key: string]: any; } export interface RenderMenuProps extends RenderMenuParams { render: SchemaRenderFn; data: Record; menuTpl: SchemaTpl | SchemaObject; } export interface ItemRenderStates { index: number; multiple?: boolean; /** 搜索时匹配到的高亮的文本 */ highlightTxt?: string; checked: boolean; onChange: () => void; disabled?: boolean; className?: SchemaClassName; } export interface BaseSelectionProps extends ThemeProps, LocaleProps { className?: SchemaClassName; clearable?: boolean; disabled?: boolean; inline?: boolean; itemClassName?: SchemaClassName; valueField?: string; labelField?: string; itemRender: (option: Option, states: ItemRenderStates) => JSX.Element; labelClassName?: SchemaClassName; multiple?: boolean; onChange?: (value: Array | any) => void | boolean | Promise; onClick?: (e: React.MouseEvent) => void; onDeferLoad?: (option: Option) => void; onLeftDeferLoad?: (option: Option, leftOptions: Option) => void; option2value?: (option: Option) => any; options: Options; placeholder?: string; placeholderRender?: (props: any) => JSX.Element | null; value?: any | Array; }