/// import { Height, Width } from "../utils"; export type SelectedItemKey = string | number | Array; export interface SelectItem { text: string; value: TValue; key: string | number; title?: string | JSX.Element; disabled?: boolean; children?: Array>; className?: string; } export interface SelectPropsBase { id?: string; selectedValue: TSelection; items: TValue[]; itemFormatter: (value: TValue) => SelectItem; selectedItemFormatter?: (values: TSelection) => string | JSX.Element; isLoading?: boolean; allowNull?: boolean; disabled?: boolean; placeholder?: string; width?: Width; height?: Height; className?: string; headerInfo?: string | JSX.Element; selectElementCaption: ({}: {}) => string; loadListCaption?: string; isFixedDropdown?: boolean; } export interface SelectProps extends SelectPropsBase { onChange: (newSelectedValue: TValue | null) => void; } export interface AsyncSelectProps extends SelectPropsBase { searchText: string; isLoading: boolean; hasMoreData: boolean; disabled?: boolean; overrideHeaderInfo?: boolean; placeholder?: string; onSearchChange: (newSearchTerm: string) => void; onClearFilter: () => void; onLoadNextPortion: () => void; onSelectionChange: (newSelectedValues: TSelection) => void; resetFilterCaption?: string; closeCaption?: string; captionSearchLoader: string; captionNothingFound: string; }