import React, { Component } from 'react'; import { Position, Shape } from '../../display/Badge/enums'; import { TOption, PopUpProps, Ref } from './types'; /** * Компонент попапа для {@link InputSelect} * @reactProps {array} options - массив данных * @reactProps {string} valueFieldId - значение ключа value в данных * @reactProps {string} labelFieldId - значение ключа label в данны * @reactProps {string} iconFieldId - поле для иконки * @reactProps {string} imageFieldId - поле для картинки * @reactProps {string} groupFieldId - поле для группировки * @reactProps {object} badge - данные для баджа * @reactProps {string} enabledFieldId - поле для активности * @reactProps {array} disabledValues - неактивные данные * @reactProps {string} format - формат * @reactProps {boolean} hasCheckboxes - флаг наличия чекбоксов * @reactProps {array} selected - выбранные элементы * @reactProps {function} onSelect - callback при выборе элемента * @reactProps {function} onRemoveItem - callback при удаление элемента * @reactProps {boolean} needAddFilter * @reactProps {node} children - элемент потомок компонента PopupList * @reactProps {function} handleMouseEnter - обработчик для события onMouseEnter * @reactProps {function} handleMouseLeave - обработчик для события onMouseLeave */ export interface BadgeType { colorFieldId: string; fieldId: string; imageFieldId: string; imagePosition: Position; imageShape: Shape; position: Position; shape: Shape; } interface Props { className?: string; activeValueId?: string | number | null; autocomplete?: boolean; badge?: BadgeType; children?: React.ReactNode; count?: number; descriptionFieldId?: string; enabledFieldId?: string; disabledValues?: Array; fetchData(arg: object, concat?: boolean, cacheReset?: boolean): void; filterValue?: Record; format?: string; groupFieldId: string; hasCheckboxes: boolean; iconFieldId: string; imageFieldId: string; isExpanded?: boolean; labelFieldId: string; loading?: boolean; needAddFilter?: boolean; onRemoveItem?(item: TOption): void; onSelect(item: TOption): void; options?: TOption[]; page?: number; popUpItemRef?: PopUpProps['popUpItemRef']; renderIfEmpty?: boolean; scheduleUpdate?(): void; selected?: any[]; setActiveValueId?(id: string | null): void; setMenuElement?(): void; size?: number; statusFieldId?: string; style?: object; valueFieldId: string; multiSelect?: boolean; searchMinLengthHint?: string | null | JSX.Element; popUpRef?: Ref; } interface State { menuElement: HTMLDivElement | null; } export declare class PopupList extends Component { state: State; onScroll: (e: Event) => void; componentDidUpdate(prevProps: Props, prevState: State): void; componentWillUnmount(): void; setMenuElement: (menuElement: State['menuElement']) => void; render(): JSX.Element; } export {};