choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
244 lines (243 loc) • 10.1 kB
TypeScript
import { ReactNode } from 'react';
import PropTypes from 'prop-types';
import { TextField, TextFieldProps } from '../text-field/TextField';
import { ValidationMessages } from '../validator/Validator';
import { FieldType } from '../data-set/enum';
import { ValidatorProps } from '../validator/rules';
import defaultFormatNumber from '../formatter/formatNumber';
import { Lang } from '../locale-context/enum';
export declare type FormatNumberFunc = (value: string, lang: string, options: Intl.NumberFormatOptions) => string;
export declare type FormatNumberFuncOptions = {
lang?: string | undefined;
options: Intl.NumberFormatOptions;
};
export interface NumberFieldProps<V = number> extends TextFieldProps<V> {
/**
* 最小值
*/
min?: number | null;
/**
* 最大值
*/
max?: number | null;
/**
* 步距
*/
step?: number;
/**
* 非严格步距
*/
nonStrictStep?: boolean;
/**
* 格式器
*/
formatter?: FormatNumberFunc;
/**
* 格式器参数
*/
formatterOptions?: FormatNumberFuncOptions;
/**
*是否长按按钮按步距增加
*/
longPressPlus?: boolean;
/**
* 小数点精度
*/
precision?: number;
/**
* 千分位分组显示
*/
numberGrouping?: boolean;
}
export declare class NumberField<T extends NumberFieldProps> extends TextField<T & NumberFieldProps> {
static displayName: string;
static propTypes: {
id: PropTypes.Requireable<string>;
size: PropTypes.Requireable<import("../core/enum").Size>;
suffixCls: PropTypes.Requireable<string>;
prefixCls: PropTypes.Requireable<string>;
title: PropTypes.Requireable<PropTypes.ReactNodeLike>;
disabled: PropTypes.Requireable<boolean>;
hidden: PropTypes.Requireable<boolean>;
autoFocus: PropTypes.Requireable<boolean>;
accessKey: PropTypes.Requireable<string | boolean>;
dir: PropTypes.Requireable<string>;
contentEditable: PropTypes.Requireable<string | boolean>;
draggable: PropTypes.Requireable<string | boolean>;
style: PropTypes.Requireable<object>;
className: PropTypes.Requireable<string>;
tabIndex: PropTypes.Requireable<number>;
lang: PropTypes.Requireable<string>;
spellCheck: PropTypes.Requireable<boolean>;
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
onClick: PropTypes.Requireable<(...args: any[]) => any>;
onDoubleClick: PropTypes.Requireable<(...args: any[]) => any>;
onMouseUp: PropTypes.Requireable<(...args: any[]) => any>;
onMouseDown: PropTypes.Requireable<(...args: any[]) => any>;
onMouseMove: PropTypes.Requireable<(...args: any[]) => any>;
onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
onMouseOut: PropTypes.Requireable<(...args: any[]) => any>;
onContextMenu: PropTypes.Requireable<(...args: any[]) => any>;
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
onKeyPress: PropTypes.Requireable<(...args: any[]) => any>;
dataSet: PropTypes.Requireable<object>;
_inTable: PropTypes.Requireable<boolean>;
type: PropTypes.Requireable<string>;
name: PropTypes.Requireable<string>;
value: PropTypes.Requireable<any>;
defaultValue: PropTypes.Requireable<any>;
required: PropTypes.Requireable<boolean>;
readOnly: PropTypes.Requireable<boolean>;
form: PropTypes.Requireable<string>;
dataIndex: PropTypes.Requireable<number>;
multiple: PropTypes.Requireable<boolean>;
range: PropTypes.Requireable<boolean | (string | null | undefined)[]>;
rowSpan: PropTypes.Requireable<number>;
newLine: PropTypes.Requireable<boolean>;
colSpan: PropTypes.Requireable<number>;
validator: PropTypes.Requireable<(...args: any[]) => any>;
onInvalid: PropTypes.Requireable<(...args: any[]) => any>;
help: PropTypes.Requireable<string>;
showHelp: PropTypes.Requireable<import("../field/enum").ShowHelp>;
renderer: PropTypes.Requireable<(...args: any[]) => any>;
validationRenderer: PropTypes.Requireable<(...args: any[]) => any>;
maxTagPlaceholder: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
maxTagCount: PropTypes.Requireable<number>;
maxTagTextLength: PropTypes.Requireable<number>;
pristine: PropTypes.Requireable<boolean>;
trim: PropTypes.Requireable<import("../data-set/enum").FieldTrim>;
onBeforeChange: PropTypes.Requireable<(...args: any[]) => any>;
onChange: PropTypes.Requireable<(...args: any[]) => any>;
onInput: PropTypes.Requireable<(...args: any[]) => any>;
onEnterDown: PropTypes.Requireable<(...args: any[]) => any>;
fieldClassName: PropTypes.Requireable<string>;
highlight: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
highlightRenderer: PropTypes.Requireable<(...args: any[]) => any>;
useColon: PropTypes.Requireable<boolean>;
showValidation: PropTypes.Requireable<string>;
placeholder: PropTypes.Requireable<string | (string | null | undefined)[]>;
minLength: PropTypes.Requireable<number>;
maxLength: PropTypes.Requireable<number>;
pattern: PropTypes.Requireable<string | object>;
autoComplete: PropTypes.Requireable<string>;
prefix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
clearButton: PropTypes.Requireable<boolean>;
addonBefore: PropTypes.Requireable<PropTypes.ReactNodeLike>;
addonBeforeStyle: PropTypes.Requireable<object>;
addonAfter: PropTypes.Requireable<PropTypes.ReactNodeLike>;
addonAfterStyle: PropTypes.Requireable<object>;
restrict: PropTypes.Requireable<string | object>;
isFlat: PropTypes.Requireable<boolean>;
valueChangeAction: PropTypes.Requireable<import("../text-field/enum").ValueChangeAction>;
wait: PropTypes.Requireable<number>;
waitType: PropTypes.Requireable<import("../core/enum").WaitType>;
groupClassName: PropTypes.Requireable<string>;
showLengthInfo: PropTypes.Requireable<boolean>;
border: PropTypes.Requireable<boolean>;
/**
* 最小值
*/
min: PropTypes.Requireable<number>;
/**
* 最大值
*/
max: PropTypes.Requireable<number>;
/**
* 步距
*/
step: PropTypes.Requireable<number>;
/**
* 非严格步距
*/
nonStrictStep: PropTypes.Requireable<boolean>;
/**
* 格式器
*/
formatter: PropTypes.Requireable<(...args: any[]) => any>;
/**
* 格式器参数
*/
longPressPlus: PropTypes.Requireable<boolean>;
/**
* 是否开启长按步距增加
*/
formatterOptions: PropTypes.Requireable<object>;
};
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;
showHelp: string;
trim: import("../data-set/enum").FieldTrim;
};
static format: typeof defaultFormatNumber;
plusElement?: HTMLDivElement | null;
minusElement?: HTMLDivElement | null;
get lang(): Lang;
get defaultValidationMessages(): ValidationMessages;
get allowDecimal(): boolean;
get nonStrictStep(): boolean;
get allowNegative(): boolean;
get min(): number | undefined | null;
get max(): number | undefined | null;
get value(): any | undefined;
set value(value: any | undefined);
savePlusRef(ref: any): void;
saveMinusRef(ref: any): void;
isLowerRange(value1: number, value2: number): boolean;
getFieldType(): FieldType;
getLimit(type: string): number | undefined | null;
getValidatorProps(): ValidatorProps;
getInnerSpanButton(): ReactNode;
getWrapperClassNames(...args: any[]): string;
handleEnterDown(e: any): void;
handleKeyDown(e: any): void;
handleKeyDownUp(e: any): void;
handleKeyDownDown(e: any): void;
handlePlus(_e: any, isKeeping: any): void;
handleMinus(_e: any, isKeeping: any): void;
handleOncePlus(): void;
handleOnceMinus(): void;
getOmitPropsKeys(): string[];
getObservableProps(props: any, context: any): any;
step(isPlus: boolean, isKeeping?: boolean): void;
prepareSetValue(value: any): void;
restrictInput(value: string): string;
getFormatOptions(value?: number): FormatNumberFuncOptions;
getFormatter(): any;
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;
showHelp: string;
trim: import("../data-set/enum").FieldTrim;
};
static format: typeof defaultFormatNumber;
}