/// import { IListBoxItem, IListBoxSharedProps } from '../../ListBox'; import { ISelectionRange } from '../../Utilities/Selection'; import { IDropdownCalloutProps } from "./DropdownCallout.Props"; import { IDropdownExpandableProps } from "./DropdownExpandable.Props"; export interface IDropdownProps extends IListBoxSharedProps, Pick, "actions" | "calloutContentClassName" | "filteredNoResultsText" | "filterPlaceholderText" | "noItemsText" | "showFilterBox" | "userFilteredItems">, Pick, "ariaLabel" | "className" | "onCollapse" | "onExpand" | "placeholder"> { /** * Set to false to not do any text filtering when the user types in the filter box. Do this if you want * to control filtering through filteredItems. * @default: true */ filterByText?: boolean; /** * Optional method to perform a custom filter of items based on filter text. * If not provided, it will filter items based on item.text. */ filterItem?: (filterText: string, item: IListBoxItem, items: IListBoxItem[]) => boolean; /** * This is called when updates are made to the listBox items to update the unselectbale items in the selection. */ getUnselectableRanges?: (items: IListBoxItem[]) => ISelectionRange[]; /** * Function which returns the callout for this dropdpown. */ renderCallout?: (props: IDropdownCalloutProps) => JSX.Element; /** * Function which returns the Expandable for this dropdown. */ renderExpandable?: (props: IDropdownExpandableProps) => JSX.Element; /** * Supply for a custom width for the callout. By default, the callout's width will be the same as the * expandable. To change the expandable width, set a className. */ width?: number; }