stone-kit
Version:
uikit for redesign
71 lines (70 loc) • 2.06 kB
TypeScript
export type TOption = {
value: string | number;
label: string;
parent?: string;
id?: number | string;
};
export type TCategory = {
value: string | number;
label: string;
options: TOption[];
};
export type TModeSelect = 'options' | 'category' | 'double' | 'single';
type SelectSizes = 'medium' | 'small' | 'large';
type BetweenSize = 'small' | 'medium';
type ScrollVersion = 'standard' | 'compact';
export interface MultiSelectProps {
options: TOption[] | TCategory[];
category?: TCategory[];
placeholder?: string;
error?: boolean;
disabled?: boolean;
betweenSize?: BetweenSize;
size_s?: SelectSizes;
size_m?: SelectSizes;
size_l?: SelectSizes;
/**
* Доп стили для родителя-контейнера
*/
additionalClass?: string;
/**
* Доп стили для каждой опции
*/
additionalClassOption?: string;
/**
* Доп стили для кнопки-контейнера
*/
additionalClassBtn?: string;
onChange?: (selectedOptions: TOption[]) => unknown;
onBlur?: (selectedOptions: TOption[]) => unknown;
selectedValues?: TOption[];
isBtn?: boolean;
btnName?: string;
widthBtn?: string;
widthOptionList?: string;
isListRight?: boolean;
isPositionLeftCheckbox?: boolean;
isLast?: boolean;
/**
* Список опций которые будут задизейблены по умолчанию
*/
disabledOptions?: TOption[];
/**
* Список опций которые доступны для клика
*/
clickableOptions?: (string | undefined)[];
sizeIcon?: string;
mode?: TModeSelect;
onClickItem?: (option: TOption | TOption[]) => void;
onCLickSelect?: () => void;
isDisabledNotClickable?: boolean;
customPlaceholder?: string;
selectAll?: {
enabled: boolean;
label?: string;
};
scrollVersion?: ScrollVersion;
isLoading?: boolean;
selectPaddingBottom?: number;
}
export {};