rsuite
Version:
A suite of react components
120 lines (119 loc) • 4.3 kB
TypeScript
import React from 'react';
import { OverlayTriggerInstance } from './PickerToggleTrigger';
import { TypeAttributes, ItemDataType } from '../@types/common';
import { ListInstance } from './VirtualizedList';
interface NodeKeys {
valueKey: string;
childrenKey: string;
}
export declare function createConcatChildrenFunction<T = any>(node: any, nodeValue?: any, nodeKeys?: NodeKeys): (data: T[], children: T[]) => T[];
export declare function shouldDisplay(label: React.ReactNode, searchKeyword: string): boolean;
interface PickerClassNameProps {
name?: string;
classPrefix: string;
className?: string;
placement?: TypeAttributes.Placement;
appearance?: 'default' | 'subtle';
cleanable?: boolean;
block?: boolean;
disabled?: boolean;
countable?: boolean;
readOnly?: boolean;
plaintext?: boolean;
hasValue?: boolean;
classes?: any;
}
/**
* The className of the assembled Toggle is on the Picker.
*/
export declare function usePickerClassName(props: PickerClassNameProps): [string, string[]];
interface EventsProps {
down?: React.KeyboardEventHandler;
up?: React.KeyboardEventHandler;
enter?: React.KeyboardEventHandler;
del?: React.KeyboardEventHandler;
esc?: React.KeyboardEventHandler;
right?: React.KeyboardEventHandler;
left?: React.KeyboardEventHandler;
}
/**
* Handling keyboard events...
* @param event Keyboard event object
* @param events Event callback functions
*/
export declare function onMenuKeyDown(event: React.KeyboardEvent, events: EventsProps): void;
interface FocusItemValueProps {
target: HTMLElement | null | (() => HTMLElement | null);
data?: any[];
valueKey?: string;
focusableQueryKey?: string;
defaultLayer?: number;
rtl?: boolean;
callback?: (value: any, event: React.KeyboardEvent) => void;
}
/**
* A hook that manages the focus state of the option.
* @param defaultFocusItemValue
* @param props
*/
export declare const useFocusItemValue: <T>(defaultFocusItemValue: T | null | undefined, props: FocusItemValueProps) => {
focusItemValue: T | null | undefined;
setFocusItemValue: React.Dispatch<React.SetStateAction<T | null | undefined>>;
layer: number;
setLayer: React.Dispatch<React.SetStateAction<number>>;
keys: any[];
setKeys: React.Dispatch<React.SetStateAction<any[]>>;
onKeyDown: (event: any) => void;
};
interface ToggleKeyDownEventProps {
toggle?: boolean;
triggerRef: React.RefObject<any>;
targetRef: React.RefObject<any>;
overlayRef?: React.RefObject<any>;
searchInputRef?: React.RefObject<any>;
active?: boolean;
onExit?: (event: any) => void;
onKeyDown?: (event: any) => void;
onOpen?: () => void;
onClose?: () => void;
onMenuKeyDown?: (event: any) => void;
onMenuPressEnter?: (event: any) => void;
onMenuPressBackspace?: (event: any) => void;
[key: string]: any;
}
/**
* A hook to control the toggle keyboard operation
* @param props
*/
export declare const useToggleKeyDownEvent: (props: ToggleKeyDownEventProps) => (event: React.KeyboardEvent) => void;
interface SearchProps {
labelKey: string;
data: ItemDataType[];
searchBy?: (keyword: any, label: any, item: any) => boolean;
callback?: (keyword: string, data: ItemDataType[], event: React.SyntheticEvent) => void;
}
/**
* A hook that handles search filter options
* @param props
*/
export declare function useSearch(props: SearchProps): {
searchKeyword: string;
filteredData: import("../CheckTreePicker/utils").TreeNodeType[];
updateFilteredData: (nextData: ItemDataType[]) => void;
setSearchKeyword: React.Dispatch<React.SetStateAction<string>>;
checkShouldDisplay: (item: ItemDataType, keyword?: string) => boolean;
handleSearch: (searchKeyword: string, event: React.SyntheticEvent) => void;
};
interface PickerDependentParameters {
triggerRef?: React.RefObject<OverlayTriggerInstance>;
rootRef?: React.RefObject<HTMLElement>;
overlayRef?: React.RefObject<HTMLElement>;
targetRef?: React.RefObject<HTMLElement>;
listRef?: React.RefObject<ListInstance>;
inline?: boolean;
}
/**
* A hook of the exposed method of Picker
*/
export declare function usePublicMethods(ref: any, parmas: PickerDependentParameters): void;
export {};