import { Component, ComponentType } from 'react'; import { Primitive } from 'tslang'; import { FormControlProps } from '../form.doc'; import { InputSize } from '../input'; export interface SearchSelectValueObject { key?: string | number; text?: string; } export interface SearchSelectChangeEvent { value: T | undefined; } export declare type SearchSelectDataSource = SearchSelectDataSourceFunction; export declare type SearchSelectDataSourceFunction = (searchText: string) => Promise; export interface SearchSelectProps extends FormControlProps { className?: string; /** * 用于展示 Value 的自定义组件, 如果没有传入该属性, 默认显示一个文本组件. * * 对于默认组件的文本信息, 如果 value 的值为 `string` | `number` | `boolean`则 * 以字符串的形式显示该值, 如果 value 的类型为 `object`, 则显示该对象的`text` * 属性, 如对象没有 `text` 属性或 value 为其他类型, 则显示空字符串. * */ optionComponent?: ComponentType>; displayComponent?: ComponentType>; /** * Placeholder when the value is `empty` */ placeholder?: string; /** * A data source to request values. */ dataSource: SearchSelectDataSource; /** * Input size */ size?: InputSize; /** * Called on selected a item. */ onChange?(event: SearchSelectChangeEvent): void; } export interface ISearchSelect extends Component> { } export interface SearchSelectOptionProps { value: T; active: boolean; } export interface ISearchSelectOption extends Component> { } export interface SearchSelectDisplayComponentProps { value: T; size?: InputSize; }