UNPKG

ukelli-ui

Version:

Base on React's UI lib. Make frontend's dev simpler and faster.

57 lines (56 loc) 1.86 kB
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; }