import { ReactElement, ReactNode } from 'react'; import TreeCollection from 'bloko/common/tree/treeCollection'; import { IdCollectionPredicate, TreeFilter, AdditionalDefault } from 'bloko/common/tree/types'; import { LabelComponentType, IconComponentType } from 'bloko/blocks/treeSelector/Dummy/types'; import 'bloko/blocks/treeSelector/treeSelector.less'; export interface TreeSelectorDummyProps { /** Выбранные ID. */ selected?: string[]; /** ID моделей, которые всегда будут дополнительно предлагаться для выбора, если в поиске что-то нашлось */ constantlySuggested?: string[]; /** Запрещённые ID. */ disabled?: string[]; /** Изначально открытые ID. Применяются только при инициализации. */ initialExpanded?: string[]; /** Строка-фильтр для дерева, остаются только элементы с вхождением указанной строки. */ contentFilterQuery?: string; /** Способ фильтрации дерева при поиске */ treeFilter?: TreeFilter; /** Обработчик изменения набора выбранных ID. * В аргументах получает `{String} id`, `{Boolean} isSelected`. */ onChange?: (id: string, isSelected: boolean) => void; /** ID моделей которые предлагаются для выбора, если в поиске ничего не найдено */ suggestedNotFound?: string[]; /** Разрешает выбор только элементов без потомков. */ leavesOnly?: boolean; /** Разрешает выбор только одного элемента. */ singleChoice?: boolean; /** Показывать ли список выбранных */ showSelectedList?: boolean; /** Имя инпута. */ inputName?: string; /** Дерево элементов. */ collection: TreeCollection; /** Изначально открытые ID, которые можно динамически изменять извне. */ expanded?: string[]; /** Компонент для вывода метки у элемента дерева */ LabelComponent?: LabelComponentType; /** Компонент для вывода иконки у элемента дерева */ IconComponent?: IconComponentType; /** Обработчик изменения состояния раскрытия элементов * В аргументах получает список id раскрытых элементов `{Array} expanded` */ onExpand?: (expanded: string[]) => void; /** Обработчик изменения строки contentFilterQuery * В аргументах получает список подходящих под запрос id и сам запрос */ onChangeFilterQuery?: (ids: string[], query: string) => void; /** Свойства обертки дерева */ wrapperTreeProps?: JSX.IntrinsicElements['div']; /** Функция возвращает true для элементов, которые можно выбрать. При использовании * вместе с параметром leavesOnly применяется только к элементам без потомков. */ checkSelectable?: IdCollectionPredicate; indeterminateWithParents?: boolean; } interface TreeSelectorDummyComponent { (props: TreeSelectorDummyProps): JSX.Element | null; } declare const TreeSelectorDummy: TreeSelectorDummyComponent; export default TreeSelectorDummy; export declare const isValidTreeSelectorDummyElement: (child: ReactNode) => child is ReactElement, string | import("react").JSXElementConstructor>;