/// 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; }