ukelli-ui
Version:
Base on React's UI lib. Make frontend's dev simpler and faster.
57 lines (56 loc) • 1.86 kB
TypeScript
import React from 'react';
import FormControlBasic from '../form-control/form-control-basic';
export interface SelectorValueItem {
value: any;
text: any;
}
export declare type SelectorValuesDescription = {
/** value 为显示的 title */
[value: string]: any;
} | SelectorValueItem[];
export interface SelectorBasicProps {
/** Selector 的基本要素 */
values?: SelectorValuesDescription;
/** 默认值 */
defaultValue?: any;
/** 与 React 受控组件行为一致,详情请参考 react 受控控件 https://reactjs.org/docs/forms.html */
value?: any;
/** className */
className?: string;
/** 是否输出 number 类型 */
isNum?: boolean;
/** 是否可以多选 */
isMultiple?: boolean;
/** style */
style?: React.CSSProperties;
/** onChange callback */
onChange?: (...args: any[]) => void;
}
export interface SelectorBasicState {
selectedValue: any;
}
export default class SelectorBasic<P extends SelectorBasicProps, S = SelectorBasicState, SS = {}> extends FormControlBasic<P, S & SelectorBasicState, SS> {
values: any;
valuesObj: any;
onChangeValue: any;
state: any;
constructor(props: any);
shouldComponentUpdate(nextProps: any, prevState: any): boolean;
changeValue: (value?: any, idx?: any) => void;
wrapValues(values?: P["values"]): {
valArr: any;
valObj: any;
};
wrapObjValToArr(values: any): {};
wrapArrayValToObj: (values: any) => {};
/**
* 选择器统一的更改 value 接口,会自动根据自身是否受控组件来更改
* @param {*} nextValue 下一个 value
* @param {...any} other
*/
changeEvent: (nextValue: any, ...other: any[]) => void;
emitChange: (...args: any[]) => void;
selectAll(): void;
clearAll(): void;
checkIsSelectedAll(): boolean;
}