///
import React from 'react';
import { ThemeProps } from 'amis-core';
export type ValueType = string | number;
export interface NumberProps extends ThemeProps {
name?: string;
placeholder?: string;
max?: ValueType;
min?: ValueType;
step?: number;
showSteps?: boolean;
precision?: number;
disabled?: boolean;
/**
* 只读
*/
readOnly?: boolean;
value?: ValueType;
onChange?: (value: number) => void;
/**
* 边框模式,全边框,还是半边框,或者没边框。
*/
borderMode?: 'full' | 'half' | 'none';
/**
* 指定输入框展示值的格式
*/
formatter?: Function;
/**
* 指定从 formatter 里转换回数字的方式,和 formatter 搭配使用
*/
parser?: Function;
inputRef?: Function;
/**
* 获取焦点事件
*/
onFocus?: Function;
/**
* 失去焦点事件
*/
onBlur?: Function;
/**
* 指定输入框是基础输入框,增强输入框
*/
displayMode?: 'base' | 'enhance';
keyboard?: Boolean;
/**
* 是否是大数
*/
big?: boolean;
/**
* 清空输入内容时的值
*/
resetValue?: any;
/**
* 是否在清空内容时从数据域中删除该表单项对应的值
*/
clearValueOnEmpty?: boolean;
/**
* 数字输入框类名
*/
inputControlClassName?: string;
}
export interface NumberState {
focused: boolean;
}
export declare class NumberInput extends React.Component {
static defaultProps: Pick;
/**
* 处理value值
*
* @param value value 值
* @param min 最小值
* @param max 最大值
* @param precision 精度
* @param resetValue 重置值
* @param isBig 是否为大数模式
*/
static normalizeValue: (value: any, min: ValueType | undefined, max: ValueType | undefined, precision: number, resetValue: any, clearValueOnEmpty?: boolean, isBig?: boolean) => any;
/**
* 获取精度,合法的精度为0和正整数,不合法的精度统一转化为0
* 若设置了step,则会基于step的精度生成,最终使用更高的精度
*
* @param precision 精度
* @param step 步长
*/
static normalizePrecision: (precision: any, step?: number) => number;
/**
* 是否是 bigNumber,如果输入的内容是字符串就自动开启
*/
isBig: boolean;
constructor(props: NumberProps);
componentDidUpdate(prevProps: NumberProps): void;
handleChange(value: any): void;
handleFocus(e: React.SyntheticEvent): void;
handleBlur(e: React.SyntheticEvent): void;
handleClick(e: React.SyntheticEvent): void;
handleEnhanceModeChange(action: 'add' | 'subtract', e: React.MouseEvent): void;
renderBase(): React.JSX.Element;
render(): JSX.Element;
}
declare const _default: {
new (props: Pick, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps): {
ref: any;
childRef(ref: any): void;
getWrappedInstance(): any;
render(): React.JSX.Element;
context: unknown;
setState(state: {} | ((prevState: Readonly<{}>, props: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>;
state: Readonly<{}>;
refs: {
[key: string]: React.ReactInstance;
};
componentDidMount?(): void;
shouldComponentUpdate?(nextProps: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
componentWillUnmount?(): void;
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, prevState: Readonly<{}>): any;
componentDidUpdate?(prevProps: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, prevState: Readonly<{}>, snapshot?: any): void;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly, "big" | "name" | "value" | "disabled" | "onFocus" | "onBlur" | "onChange" | "placeholder" | "max" | "min" | "showSteps" | "precision" | "formatter" | "parser" | "inputRef" | "displayMode" | "keyboard" | "clearValueOnEmpty" | "inputControlClassName"> & {
readOnly?: boolean | undefined;
borderMode?: "none" | "full" | "half" | undefined;
resetValue?: any;
step?: number | undefined;
} & {} & import("packages/amis-core/lib/theme").ThemeOuterProps>, nextState: Readonly<{}>, nextContext: any): void;
};
displayName: string;
contextType: React.Context;
ComposedComponent: React.ComponentType;
} & import("hoist-non-react-statics").NonReactStatics & {
ComposedComponent: typeof NumberInput;
};
export default _default;