UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

139 lines (138 loc) 4.63 kB
import { ReactNode } from 'react'; import { FormatNumberFuncOptions } from 'choerodon-ui/dataset/data-set/Field'; import { TextField, TextFieldProps } from '../text-field/TextField'; import { ValidationMessages } from '../validator/Validator'; import { FieldType } from '../data-set/enum'; import defaultFormatNumber from '../formatter/formatNumber'; import defaultFormatBigNumber from '../formatter/formatBigNumber'; import { Lang } from '../locale-context/enum'; export declare type FormatNumberFunc = (value: string, lang: string, options: Intl.NumberFormatOptions) => string; export { FormatNumberFuncOptions }; export interface NumberFieldProps<V = number> extends TextFieldProps<V> { /** * 最小值 */ min?: number | string | null; /** * 最大值 */ max?: number | string | null; /** * 步距 */ step?: number | string; /** * 非严格步距 */ nonStrictStep?: boolean; /** * 格式器 */ formatter?: FormatNumberFunc; /** * 格式器参数 */ formatterOptions?: FormatNumberFuncOptions; /** *是否长按按钮按步距增加 */ longPressPlus?: boolean; /** * 小数点精度 */ precision?: number; /** * 千分位分组显示 */ numberGrouping?: boolean; /** * 是否启用UP DOWN键盘事件 */ keyboard?: boolean; /** * 字符值模式,支持大数字 */ stringMode?: boolean; } export declare class NumberField<T extends NumberFieldProps> extends TextField<T & NumberFieldProps> { static displayName: string; static defaultProps: { suffixCls: string; longPressPlus: boolean; max: number; min: number; clearButton: boolean; multiple: boolean; border: boolean; valueChangeAction: import("../text-field/enum").ValueChangeAction; waitType: import("../core/enum").WaitType; readOnly: boolean; disabled: boolean; noValidate: boolean; trim: import("../data-set/enum").FieldTrim; }; static format: typeof defaultFormatNumber; static bigNumberFormat: typeof defaultFormatBigNumber; plusElement?: HTMLDivElement | null; minusElement?: HTMLDivElement | null; get lang(): Lang; get defaultValidationMessages(): ValidationMessages; get allowDecimal(): boolean; get nonStrictStep(): boolean; get allowNegative(): boolean; get min(): number | string | undefined | null; get max(): number | string | undefined | null; get value(): any | undefined; set value(value: any | undefined); get keyboard(): boolean; get stringMode(): boolean; savePlusRef(ref: any): void; saveMinusRef(ref: any): void; isLowerRange(value1: number | string, value2: number | string): boolean; getFieldType(): FieldType; getLimit(type: string): number | string | undefined | null; getValidatorProp(key: string): any; getInnerSpanButton(): ReactNode; getWrapperClassNames(...args: any[]): string; handleEnterDown(e: any): void; handleKeyDown(e: any): void; handleKeyDownUp(value: any): void; handleKeyDownDown(value: any): void; handlePlus(value: any): void; handleMinus(value: any): void; handleOncePlus(): void; handleOnceMinus(): void; getOmitPropsKeys(): string[]; getOtherProps(): any; getObservableProps(props: any, context: any): any; stepGenerator(isPlus: boolean): IterableIterator<number | string>; getCurrentInputValue(): any; step(isPlus: boolean): void; afterStep(newValue: any): void; prepareSetValue(value: any): void; restrictInput(value: string): string; getFormatOptions(value?: number): FormatNumberFuncOptions; getFormatter(): any; getBigNumberFormatValue(value: ReactNode, numberField: boolean): ReactNode; processText(value: ReactNode): ReactNode; renderLengthInfo(): ReactNode; } export default class ObserverNumberField extends NumberField<NumberFieldProps> { static defaultProps: { suffixCls: string; longPressPlus: boolean; max: number; min: number; clearButton: boolean; multiple: boolean; border: boolean; valueChangeAction: import("../text-field/enum").ValueChangeAction; waitType: import("../core/enum").WaitType; readOnly: boolean; disabled: boolean; noValidate: boolean; trim: import("../data-set/enum").FieldTrim; }; static format: typeof defaultFormatNumber; static bigNumberFormat: typeof defaultFormatBigNumber; }