///
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;
}