import { ReactNode, RefObject } from 'react';
import TreeCollection from 'bloko/common/tree/treeCollection';
import { ModelData, TreeModel, AdditionalDefault } from 'bloko/common/tree/types';
import { UseRenderInputHook } from 'bloko/blocks/compositeSelection/hooks/useRenderInput';
export interface TagModel extends ModelData {
collapsed?: boolean;
items?: TagModel[];
}
export interface CompositeSelectionTagListProps {
value?: string[];
crossedOutValue?: string[];
collection?: TreeCollection;
nested?: boolean;
stretched?: boolean;
removable?: boolean;
removeItems: (items: string[]) => void;
renderNestedTag?: (props: {
id: string;
item: TreeModel;
}) => ReactNode;
renderNestedTagHeader?: (props: {
id: string;
text: string;
}) => ReactNode;
crossedOutValueNameTransformation?: (text: string) => string;
renderAfterTags?: () => ReactNode;
renderAfterTagsRef?: RefObject;
}
interface ChildrenProps {
renderTagList: (props?: Partial>) => ReactNode;
renderExcludedTagList: (props?: Partial>) => ReactNode;
renderInput: ReturnType;
showTreeSelectorPopup: () => void;
selectedTree: TreeModel[];
}
export interface Children {
(props: ChildrenProps): ReactNode;
}
interface FooterExtraProps {
hideTreeSelectorPopup: () => void;
submitTreeSelectorPopup: (selected: string[]) => void;
}
export interface FooterExtra {
(props: FooterExtraProps): ReactNode;
}
export {};