@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
99 lines • 4.1 kB
TypeScript
import React from 'react';
import { DropdownStatusProps } from '../internal/components/dropdown-status';
import { DropdownOption } from '../internal/components/option/interfaces';
import { SomeRequired } from '../internal/types';
import { SelectListProps } from '../select/parts/plain-list';
import { TokenGroupProps } from '../token-group/interfaces';
import { MultiselectProps } from './interfaces';
type UseMultiselectOptions = SomeRequired<Pick<MultiselectProps, 'options' | 'selectedOptions' | 'filteringType' | 'filteringResultsText' | 'disabled' | 'noMatch' | 'renderHighlightedAriaLive' | 'deselectAriaLabel' | 'keepOpen' | 'onBlur' | 'onFocus' | 'onLoadItems' | 'onChange' | 'selectedAriaLabel' | 'enableSelectAll' | 'i18nStrings'> & DropdownStatusProps & {
controlId?: string;
ariaLabelId: string;
footerId: string;
filteringValue: string;
setFilteringValue?: (value: string) => void;
externalRef: React.Ref<MultiselectProps.Ref>;
}, 'options' | 'selectedOptions' | 'filteringType' | 'statusType' | 'keepOpen'> & {
embedded?: boolean;
};
export declare function useMultiselect({
options,
filteringType,
filteringResultsText,
disabled,
statusType,
empty,
loadingText,
finishedText,
errorText,
noMatch,
renderHighlightedAriaLive,
selectedOptions,
deselectAriaLabel,
keepOpen,
onBlur,
onFocus,
onLoadItems,
onChange,
controlId,
ariaLabelId,
footerId,
filteringValue,
setFilteringValue,
externalRef,
embedded,
enableSelectAll,
i18nStrings,
...restProps
}: UseMultiselectOptions): {
isOpen: boolean;
tokens: readonly TokenGroupProps.Item[];
announcement: string;
dropdownStatus: import("../internal/components/dropdown-status").DropdownStatusResult;
filteringValue: string;
filteredOptions: readonly DropdownOption[];
highlightType: import("../internal/components/options-list/utils/use-highlight-option").HighlightType;
scrollToIndex: React.RefObject<SelectListProps.SelectListRef>;
getFilterProps: () => Partial<import("../select/parts/filter").FilterProps>;
getTriggerProps: (disabled?: boolean, autoFocus?: boolean) => import("../select/utils/use-select").SelectTriggerProps;
getMenuProps: () => {
onLoadMore: () => void;
ariaLabelledby: string | undefined;
ariaDescribedby: string | undefined;
embedded: boolean | undefined;
position?: import("csstype").Property.Position | undefined;
open?: boolean | undefined;
className?: string | undefined;
id?: string | undefined;
role?: "listbox" | "list" | "menu" | undefined;
onFocus?: import("../internal/events").NonCancelableEventHandler | undefined;
onBlur?: import("../internal/events").NonCancelableEventHandler<{
relatedTarget: Node | null;
}> | undefined;
onKeyDown?: import("../internal/events").CancelableEventHandler<import("../internal/events").BaseKeyDetail> | undefined;
onMouseMove?: ((itemIndex: number) => void) | undefined;
onMouseUp?: ((itemIndex: number) => void) | undefined;
nativeAttributes?: Record<string, any> | undefined;
ariaLabel?: string | undefined;
tagOverride?: "div" | "ul" | undefined;
statusType: DropdownStatusProps.StatusType;
decreaseBlockMargin?: boolean | undefined;
stickyItemBlockSize?: number | null | undefined;
ref: React.RefObject<HTMLDivElement>;
};
getOptionProps: (option: DropdownOption, index: number) => any;
getTokenProps: () => {
onDismiss: import("../internal/events").NonCancelableEventHandler<TokenGroupProps.DismissDetail>;
};
getDropdownProps: () => {
onMouseDown: (event: React.MouseEvent) => void;
onFocus?: import("../internal/events").NonCancelableEventHandler<Pick<React.FocusEvent, "target" | "relatedTarget">> | undefined;
onBlur?: import("../internal/events").NonCancelableEventHandler<Pick<React.FocusEvent, "target" | "relatedTarget">> | undefined;
dropdownContentId?: string | undefined;
dropdownContentRole?: string | undefined;
};
getWrapperProps: () => {
onKeyDown: (event: React.KeyboardEvent) => void;
};
highlightedIndex: number;
};
export {};