UNPKG

downshift

Version:

🏎 A set of primitives to build simple, flexible, WAI-ARIA compliant React autocomplete, combobox or select dropdown components.

321 lines (320 loc) 11.8 kB
export default Downshift; declare class Downshift extends Component<any, any, any> { static propTypes: { children: PropTypes.Requireable<(...args: any[]) => any>; defaultHighlightedIndex: PropTypes.Requireable<number>; defaultIsOpen: PropTypes.Requireable<boolean>; initialHighlightedIndex: PropTypes.Requireable<number>; initialSelectedItem: PropTypes.Requireable<any>; initialInputValue: PropTypes.Requireable<string>; initialIsOpen: PropTypes.Requireable<boolean>; getA11yStatusMessage: PropTypes.Requireable<(...args: any[]) => any>; itemToString: PropTypes.Requireable<(...args: any[]) => any>; onChange: PropTypes.Requireable<(...args: any[]) => any>; onSelect: PropTypes.Requireable<(...args: any[]) => any>; onStateChange: PropTypes.Requireable<(...args: any[]) => any>; onInputValueChange: PropTypes.Requireable<(...args: any[]) => any>; onUserAction: PropTypes.Requireable<(...args: any[]) => any>; onOuterClick: PropTypes.Requireable<(...args: any[]) => any>; selectedItemChanged: PropTypes.Requireable<(...args: any[]) => any>; stateReducer: PropTypes.Requireable<(...args: any[]) => any>; itemCount: PropTypes.Requireable<number>; id: PropTypes.Requireable<string>; environment: PropTypes.Requireable<PropTypes.InferProps<{ addEventListener: PropTypes.Validator<(...args: any[]) => any>; removeEventListener: PropTypes.Validator<(...args: any[]) => any>; document: PropTypes.Validator<NonNullable<PropTypes.InferProps<{ createElement: PropTypes.Validator<(...args: any[]) => any>; getElementById: PropTypes.Validator<(...args: any[]) => any>; activeElement: PropTypes.Validator<any>; body: PropTypes.Validator<any>; }>>>; Node: PropTypes.Validator<(...args: any[]) => any>; }>>; suppressRefError: PropTypes.Requireable<boolean>; scrollIntoView: PropTypes.Requireable<(...args: any[]) => any>; selectedItem: PropTypes.Requireable<any>; isOpen: PropTypes.Requireable<boolean>; inputValue: PropTypes.Requireable<string>; highlightedIndex: PropTypes.Requireable<number>; labelId: PropTypes.Requireable<string>; inputId: PropTypes.Requireable<string>; menuId: PropTypes.Requireable<string>; getItemId: PropTypes.Requireable<(...args: any[]) => any>; }; static defaultProps: { defaultHighlightedIndex: null; defaultIsOpen: boolean; getA11yStatusMessage: typeof getA11yStatusMessage; itemToString: (i: any) => string; onStateChange: typeof noop; onInputValueChange: typeof noop; onUserAction: typeof noop; onChange: typeof noop; onSelect: typeof noop; onOuterClick: typeof noop; selectedItemChanged: (prevItem: any, item: any) => boolean; environment: (Window & typeof globalThis) | undefined; stateReducer: (state: any, stateToSet: any) => any; suppressRefError: boolean; scrollIntoView: typeof scrollIntoView; }; static stateChangeTypes: typeof stateChangeTypes; constructor(props: any); state: Object; id: any; menuId: any; labelId: any; inputId: any; getItemId: any; items: any[]; itemCount: null; previousResultCount: number; timeoutIds: any[]; /** * @param {Function} fn the function to call after the time * @param {Number} time the time to wait */ internalSetTimeout: (fn: Function, time: number) => void; /** * Clear all running timeouts */ internalClearTimeouts(): void; /** * Gets the state based on internal state or props * If a state value is passed via props, then that * is the value given, otherwise it's retrieved from * stateToMerge * * @param {Object} stateToMerge defaults to this.state * @return {Object} the state */ getState(stateToMerge?: Object): Object; getItemCount(): number; setItemCount: (count: any) => void; unsetItemCount: () => void; getItemNodeFromIndex(index: any): any; isItemDisabled: (_item: any, index: any) => any; setHighlightedIndex: (highlightedIndex?: any, otherStateToSet?: {}) => void; scrollHighlightedItemIntoView(): void; moveHighlightedIndex(amount: any, otherStateToSet: any): void; clearSelection: (cb: any) => void; selectItem: (item: any, otherStateToSet: any, cb: any) => void; selectItemAtIndex: (itemIndex: any, otherStateToSet: any, cb: any) => void; selectHighlightedItem: (otherStateToSet: any, cb: any) => void; internalSetState: (stateToSet: any, cb: any) => void; getStateAndHelpers(): { getRootProps: ({ refKey, ref, ...rest }?: { refKey?: string | undefined; ref: any; }, { suppressRefError }?: { suppressRefError?: boolean | undefined; }) => { role: string; 'aria-expanded': any; 'aria-haspopup': string; 'aria-owns': any; 'aria-labelledby': any; }; getToggleButtonProps: ({ onClick, onPress, onKeyDown, onKeyUp, onBlur, ...rest }?: { onClick: any; onPress: any; onKeyDown: any; onKeyUp: any; onBlur: any; }) => { type: string; role: string; 'aria-label': string; 'aria-haspopup': boolean; 'data-toggle': boolean; }; getLabelProps: (props: any) => any; getMenuProps: ({ refKey, ref, ...props }?: { refKey?: string | undefined; ref: any; }, { suppressRefError }?: { suppressRefError?: boolean | undefined; }) => { role: string; 'aria-labelledby': any; id: any; }; getInputProps: ({ onKeyDown, onBlur, onChange, onInput, onChangeText, ...rest }?: { onKeyDown: any; onBlur: any; onChange: any; onInput: any; onChangeText: any; }) => { 'aria-autocomplete': string; 'aria-activedescendant': any; 'aria-controls': any; 'aria-labelledby': any; autoComplete: string; value: any; id: any; }; getItemProps: ({ onMouseMove, onMouseDown, onClick, onPress, index, item, ...rest }?: { onMouseMove: any; onMouseDown: any; onClick: any; onPress: any; index: any; item?: void | undefined; }) => { onMouseMove: Function; onMouseDown: Function; id: any; role: string; 'aria-selected': boolean; } | { onMouseDown: Function; id: any; role: string; 'aria-selected': boolean; }; reset: (otherStateToSet: {} | undefined, cb: any) => void; openMenu: (cb: any) => void; closeMenu: (cb: any) => void; toggleMenu: (otherStateToSet: {} | undefined, cb: any) => void; selectItem: (item: any, otherStateToSet: any, cb: any) => void; selectItemAtIndex: (itemIndex: any, otherStateToSet: any, cb: any) => void; selectHighlightedItem: (otherStateToSet: any, cb: any) => void; setHighlightedIndex: (highlightedIndex?: any, otherStateToSet?: {}) => void; clearSelection: (cb: any) => void; clearItems: () => void; setItemCount: (count: any) => void; unsetItemCount: () => void; setState: (stateToSet: any, cb: any) => void; itemToString: any; id: any; highlightedIndex: any; inputValue: any; isOpen: any; selectedItem: any; }; rootRef: (node: any) => any; _rootNode: any; getRootProps: ({ refKey, ref, ...rest }?: { refKey?: string | undefined; ref: any; }, { suppressRefError }?: { suppressRefError?: boolean | undefined; }) => { role: string; 'aria-expanded': any; 'aria-haspopup': string; 'aria-owns': any; 'aria-labelledby': any; }; keyDownHandlers: { ArrowDown(event: any): void; ArrowUp(event: any): void; Enter(event: any): void; Escape(event: any): void; }; buttonKeyDownHandlers: { ' '(event: any): void; ArrowDown(event: any): void; ArrowUp(event: any): void; Enter(event: any): void; Escape(event: any): void; }; inputKeyDownHandlers: { Home(event: any): void; End(event: any): void; ArrowDown(event: any): void; ArrowUp(event: any): void; Enter(event: any): void; Escape(event: any): void; }; getToggleButtonProps: ({ onClick, onPress, onKeyDown, onKeyUp, onBlur, ...rest }?: { onClick: any; onPress: any; onKeyDown: any; onKeyUp: any; onBlur: any; }) => { type: string; role: string; 'aria-label': string; 'aria-haspopup': boolean; 'data-toggle': boolean; }; buttonHandleKeyUp: (event: any) => void; buttonHandleKeyDown: (event: any) => void; buttonHandleClick: (event: any) => void; buttonHandleBlur: (event: any) => void; getLabelProps: (props: any) => any; getInputProps: ({ onKeyDown, onBlur, onChange, onInput, onChangeText, ...rest }?: { onKeyDown: any; onBlur: any; onChange: any; onInput: any; onChangeText: any; }) => { 'aria-autocomplete': string; 'aria-activedescendant': any; 'aria-controls': any; 'aria-labelledby': any; autoComplete: string; value: any; id: any; }; inputHandleKeyDown: (event: any) => void; inputHandleChange: (event: any) => void; inputHandleBlur: () => void; menuRef: (node: any) => void; _menuNode: any; getMenuProps: ({ refKey, ref, ...props }?: { refKey?: string | undefined; ref: any; }, { suppressRefError }?: { suppressRefError?: boolean | undefined; }) => { role: string; 'aria-labelledby': any; id: any; }; getItemProps: ({ onMouseMove, onMouseDown, onClick, onPress, index, item, ...rest }?: { onMouseMove: any; onMouseDown: any; onClick: any; onPress: any; index: any; item?: void | undefined; }) => { onMouseMove: Function; onMouseDown: Function; id: any; role: string; 'aria-selected': boolean; } | { onMouseDown: Function; id: any; role: string; 'aria-selected': boolean; }; avoidScrolling: boolean | undefined; clearItems: () => void; reset: (otherStateToSet: {} | undefined, cb: any) => void; toggleMenu: (otherStateToSet: {} | undefined, cb: any) => void; openMenu: (cb: any) => void; closeMenu: (cb: any) => void; updateStatus: Function; componentDidMount(): void; cleanup: (() => void) | (() => void) | undefined; isMouseDown: boolean | undefined; isTouchMove: boolean | undefined; shouldScroll(prevState: any, prevProps: any): any; componentDidUpdate(prevProps: any, prevState: any): void; componentWillUnmount(): void; render(): any; } import { Component } from "react"; import PropTypes from "prop-types"; import { getA11yStatusMessage } from "./utils"; import { noop } from "./utils-ts"; import { scrollIntoView } from "./utils-ts"; import * as stateChangeTypes from "./stateChangeTypes";