UNPKG

chowa

Version:

UI component library based on React

115 lines (114 loc) 4.11 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import * as React from 'react'; import * as PropTypes from 'prop-types'; import SelectOption, { SelectOptionProps } from './select-option'; import SelectOptionGroup, { SelectOptionGroupProps } from './select-option-group'; export declare type Option = SelectOptionProps & { children: React.ReactNode; }; export interface OptionGroup extends SelectOptionGroupProps { options: [(Option | OptionGroup)?]; } export declare type Options = [(Option | OptionGroup)?]; export interface SelectProps { className?: string; style?: React.CSSProperties; visible?: boolean; defaultVisible?: boolean; externalWheelHide?: boolean; options?: Options; tabIndex?: number; multiple?: boolean; disabled?: boolean; showArrow?: boolean; searchable?: boolean; defaultValue?: any | any[]; value?: any | any[]; placeholder?: string; onChange?: (value: any[] | any) => void; onDeselect?: (value: any) => void; onSelect?: (value: any) => void; onSearch?: (searchValue: string) => void; onFilter?: (searchValue: string, option: Option) => boolean; noDataDescription?: React.ReactNode; noDataImg?: string; noDataImgStyle?: React.CSSProperties; clearable?: boolean; } interface SelectState { renderOptions: Options; selectedOptions: Option[]; selectorVisible: boolean; clearBtnVisible: boolean; searching: boolean; searchValue: string; activeOption: Option; } declare class Select extends React.PureComponent<SelectProps, SelectState> { static propTypes: { className: PropTypes.Requireable<string>; style: PropTypes.Requireable<object>; visible: PropTypes.Requireable<boolean>; defaultVisible: PropTypes.Requireable<boolean>; externalWheelHide: PropTypes.Requireable<boolean>; tabIndex: PropTypes.Requireable<number>; multiple: PropTypes.Requireable<boolean>; disabled: PropTypes.Requireable<boolean>; showArrow: PropTypes.Requireable<boolean>; searchable: PropTypes.Requireable<boolean>; defaultValue: PropTypes.Requireable<any>; value: PropTypes.Requireable<any>; placeholder: PropTypes.Requireable<string>; onChange: PropTypes.Requireable<(...args: any[]) => any>; onDeselect: PropTypes.Requireable<(...args: any[]) => any>; onSelect: PropTypes.Requireable<(...args: any[]) => any>; onSearch: PropTypes.Requireable<(...args: any[]) => any>; onFilter: PropTypes.Requireable<(...args: any[]) => any>; noDataDescription: PropTypes.Requireable<PropTypes.ReactNodeLike>; noDataImg: PropTypes.Requireable<string>; noDataImgStyle: PropTypes.Requireable<object>; clearable: PropTypes.Requireable<boolean>; }; static defaultProps: { visible: boolean; defaultVisible: boolean; externalWheelHide: boolean; tabIndex: number; multiple: boolean; disabled: boolean; showArrow: boolean; searchable: boolean; clearable: boolean; }; static Option: typeof SelectOption; static OptionGroup: typeof SelectOptionGroup; private inputElement; constructor(props: SelectProps & { children: React.ReactNode; }); componentDidUpdate(preProps: SelectProps & { children: React.ReactElement<any>; }, preState: SelectState): void; private onKeyboardOperation; private onTriggerMouseEnterHandler; private onTriggerMouseLeaveHandler; private onSearchChangeHandler; private onSearchFocusHandler; private onSearchBlurHandler; private clearSelected; private onVisibleChange; private onDeSelectHandler; private onSelectHandler; private onOptionMouseEnter; private onOptionMouseLeave; private renderContent; render(): JSX.Element; } export default Select;