import { CSSProperties, InputHTMLAttributes, ReactNode } from 'react'; import { type SizeType } from '../config-provider'; export declare type InputNumberValueChangeReason = 'manual' | 'increase' | 'decrease' | 'outOfRange'; /** * @title InputNumber */ export interface InputNumberProps extends Omit, 'prefix' | 'className' | 'size' | 'onChange' | 'onKeyDown'> { style?: CSSProperties; className?: string | string[]; /** * 数字变化步长 * @defaultValue 1 */ step?: number; /** * 数字精度。设置精度小于`step`的小数位时,取`step`的小数个数。 */ precision?: number; /** * 最小值 * @defaultValue -Infinity */ min?: number; /** * 最大值 * @defaultValue Infinity */ max?: number; /** * 是否禁用 */ disabled?: boolean; /** * 静态模式 */ quickStatic?: boolean; /** * 快速编辑(默认无边框) */ quickEdit?: boolean; /** * 状态 */ status?: 'error' | 'warning'; /** * 是否只读 */ readOnly?: boolean; /** * 严格模式下,`onChange` 回调将返回字符串类型 */ strictMode?: boolean; /** * 初始值 */ defaultValue?: number | string; /** * 当前值 */ value?: undefined | number | string; /** * 默认显示文案 */ placeholder?: string; /** * `embed` - 按钮内嵌模式,`button` - 左右按钮模式 * @defaultValue embed */ mode?: 'embed' | 'button'; /** * 不同尺寸的数字输入框。分别对应 `24px`, `28px`, `32px` */ size?: SizeType; /** * 显示前缀 */ prefix?: ReactNode; /** * 显示后缀 */ suffix?: ReactNode; /** * 定义输入框展示值 */ formatter?: (value: number | string, info: { userTyping: boolean; input: string; }) => string; /** * 从 formatter 转换为数字,和 formatter 搭配使用。 * @defaultValue (input) => input.replace(/[^\w\.-]+/g, '') */ parser?: (value: string) => number | string; /** * 变化回调 */ onChange?: (value: number, reason?: InputNumberValueChangeReason) => void; /** * 输入框聚焦事件的回调 */ onFocus?: (e: any) => void; /** * 输入框失去聚焦事件的回调 */ onBlur?: (e: any) => void; /** * 键盘事件回调 */ onKeyDown?: (e: Event) => void; /** * 隐藏右侧按钮 */ hideControl?: boolean; /** * 配置图标 */ icons?: { up?: ReactNode; down?: ReactNode; plus?: ReactNode; minus?: ReactNode; }; }