import TreeCollection from 'bloko/common/tree/treeCollection'; import { IdPredicate, TreeModel, AdditionalDefault } from 'bloko/common/tree/types'; import { LabelComponentType, IconComponentType } from 'bloko/blocks/treeSelector/Dummy/types'; interface ItemsListProps { /** Имя инпута. */ inputName: string; /** Дерево элементов. */ collection: TreeCollection; /** Разрешает выбор только элементов без потомков. */ leavesOnly?: boolean; /** Разрешает выбор только одного элемента. */ singleChoice?: boolean; /** Выбранные ID. */ selected: string[]; /** Изначально открытые ID, которые можно динамически изменять извне. */ expanded: string[]; /** Запрещённые ID. */ disabled: string[]; indeterminate: string[]; /** Компонент для вывода метки у элемента дерева */ LabelComponent?: LabelComponentType; /** Компонент для вывода иконки у элемента дерева */ IconComponent?: IconComponentType; /** Обработчик изменения набора выбранных ID. * В аргументах получает `{String} id`, `{Boolean} isSelected`. */ onChange?: (id: string, isSelected: boolean) => void; /** Обработчик изменения состояния раскрытия элементов * В аргументах получает список id раскрытых элементов `{Array} expanded` */ onExpansion: (id: string) => void; items?: TreeModel[]; parentId?: string; /** Функция возвращает true для ID элементов, которые можно выбрать. При использовании * вместе с параметром leavesOnly применяется только к элементам без потомков. */ checkSelectableId: IdPredicate; } interface ItemsListComponent { (props: ItemsListProps): JSX.Element; } declare const _default: ItemsListComponent; export default _default;