chowa
Version:
UI component library based on React
120 lines (119 loc) • 4.22 kB
TypeScript
/**
* @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 { OptionTitles } from './cascader-card';
export interface Option {
label: string;
value: React.ReactText;
disabled?: boolean;
children: Option[];
[key: string]: any;
}
export declare type Options = Option[];
export interface CascaderProps {
className?: string;
style?: React.CSSProperties;
visible?: boolean;
defaultVisible?: boolean;
externalWheelHide?: boolean;
tabIndex?: number;
options: Options;
optionTitles?: OptionTitles;
onChange?: (values: React.ReactText[]) => void;
changeOnSelect?: boolean;
defaultValue?: React.ReactText[];
value?: React.ReactText[];
noDataDescription?: React.ReactNode;
noDataImg?: string;
noDataImgStyle?: React.CSSProperties;
mode?: 'list' | 'card';
placeholder?: string;
showArrow?: boolean;
disabled?: boolean;
searchable?: boolean;
formatter?: (options: Options) => React.ReactNode;
separator?: React.ReactNode;
onSearch?: (value: string) => void;
onFilter?: (searchValue: string, option: Option) => boolean;
clearable?: boolean;
}
export interface CascaderState {
renderOptions: Options;
searchValue: string;
searching: boolean;
selectorVisible: boolean;
selectedOptions: Options;
showClear: boolean;
optionsTier: number;
activeOption: Option;
activeFilterOptions: Options;
}
declare class Cascader extends React.PureComponent<CascaderProps, CascaderState> {
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>;
options: PropTypes.Validator<any[]>;
optionTitles: PropTypes.Requireable<any[]>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
changeOnSelect: PropTypes.Requireable<boolean>;
defaultValue: PropTypes.Requireable<any[]>;
value: PropTypes.Requireable<any[]>;
noDataDescription: PropTypes.Requireable<PropTypes.ReactNodeLike>;
noDataImg: PropTypes.Requireable<string>;
noDataImgStyle: PropTypes.Requireable<object>;
mode: PropTypes.Requireable<string>;
placeholder: PropTypes.Requireable<string>;
showArrow: PropTypes.Requireable<boolean>;
disabled: PropTypes.Requireable<boolean>;
searchable: PropTypes.Requireable<boolean>;
formatter: PropTypes.Requireable<(...args: any[]) => any>;
separator: PropTypes.Requireable<PropTypes.ReactNodeLike>;
onSearch: PropTypes.Requireable<(...args: any[]) => any>;
onFilter: PropTypes.Requireable<(...args: any[]) => any>;
clearable: PropTypes.Requireable<boolean>;
};
static defaultProps: {
visible: boolean;
defaultVisible: boolean;
externalWheelHide: boolean;
tabIndex: number;
mode: string;
changeOnSelect: boolean;
searchable: boolean;
showArrow: boolean;
disabled: boolean;
separator: string;
clearable: boolean;
};
private inputElement;
constructor(props: CascaderProps);
componentDidUpdate(preProps: CascaderProps, preState: CascaderState): void;
private clearSelectedValues;
private onOptionMouseEnter;
private onOptionMouseLeave;
private onFilterOptionMouseEnter;
private onFilterOptionMouseLeave;
private onTriggerMouseEnterHandler;
private onTriggerMouseLeaveHandler;
private onKeyboardOperation;
private onSearchChangeHandler;
private onSearchFocusHandler;
private onSearchBlurHandler;
private onVisibleChange;
private onSelectHandler;
private onFilterSelectHandler;
private renderDrop;
render(): JSX.Element;
}
export default Cascader;