///
import { ExpandableButton, IExpandableButtonProps } from '../../Button';
import { RenderCalloutFunction } from '../../Expandable';
import { ExpandableTextField, IExpandableTextFieldProps } from '../../ExpandableTextField';
import { IListSelection } from '../../List';
import { IListBoxItem } from '../../ListBox';
export interface IDropdownExpandableProps {
/**
* Adds aria-label to the Expandable element.
*/
ariaLabel?: string;
/**
* ClassName to pass to the Expandable.
*/
className?: string;
/**
* Ref to pass to the expandable's container element.
*/
containerRef?: React.RefObject;
/**
* A ref to forward to the expandable.
*/
expandableRef: React.RefObject;
/**
* The set of items passed to the Dropdown.
*/
items: IListBoxItem[];
/**
* Optional callback to call when the dropdown is collapsed.
*/
onCollapse?: () => void;
/**
* Optional callback to call when the dropdown is expanded.
*/
onExpand?: () => void;
/**
* Text to show within the DropdownButton when there is no selected value.
*/
placeholder?: string;
/**
* A function which renders the dropdown's callout.
*/
renderCallout: RenderCalloutFunction;
/**
* Renderer for selected items.
*/
renderSelectedItems: (selection: IListSelection, items: IListBoxItem[]) => JSX.Element | string;
/**
* The selection object used by the Dropdown.
*/
selection: IListSelection;
}
export interface IDropdownExpandableButtonProps extends IDropdownExpandableProps, IExpandableButtonProps {
}
export interface IDropdownExpandableTextFieldProps extends IDropdownExpandableProps, IExpandableTextFieldProps {
/**
* Set to true to allow typing in the text field.
*/
editable?: boolean;
}