/// import { ObservableValue } from '../../Core/Observable'; import { IListBoxItem } from '../../ListBox'; import { IItemProvider } from '../../Utilities/Provider'; import { IDropdownProps } from "./Dropdown.Props"; import { IDropdownCalloutProps } from "./DropdownCallout.Props"; export interface IDropdownPivot extends Pick, "actions" | "filterByText" | "filteredNoResultsText" | "filterPlaceholderText" | "items" | "noItemsText" | "showFilterBox" | "userFilteredItems"> { /** * Unique id for this pivot. */ id: string; /** * The items to show when this pivot is active. */ items: IItemProvider> | IListBoxItem[]; /** * Text to show for this pivot. Defaults to id if not specified. */ name?: string; } export interface IWithPivotsProps { /** * Props to forward to the DropdownCallout. */ calloutProps?: IDropdownWithPivotsCalloutProps; /** * The children should be a function that takes IWithPivotsChildProps. */ children: (props: IWithPivotsChildProps) => JSX.Element; /** * A callback to call when a pivot is clicked. */ onPivotClicked?: (pivot: IDropdownPivot) => void; /** * A list of pivots to show. */ pivots: IDropdownPivot[]; /** * The id of the currently selected pivot. */ selectedPivot?: string | ObservableValue; } export interface IDropdownWithPivotsCalloutProps extends Pick, "anchorElement" | "anchorOffset" | "anchorOrigin" | "anchorPoint" | "dropdownOrigin" | "ignoreMouseDown" | "excludeFocusZone" | "excludeTabStop" | "focusOnMount" | "lightDismiss" | "listBoxClassName" | "listBoxRef" | "onActivate" | "onDismiss" | "onFilterTextChanged" | "title" | "showCloseButton"> { /** * Pass to specify the text of the filter box. */ filterText?: ObservableValue; } export interface IWithPivotsChildProps extends Pick, "actions" | "filterByText" | "userFilteredItems" | "filteredNoResultsText" | "filterPlaceholderText" | "noItemsText" | "renderCallout" | "showFilterBox"> { }