@ucloud-pccl/react-components
Version:
UCloud pccl react components
150 lines (149 loc) • 6.2 kB
TypeScript
export default NumberInput;
declare class NumberInput extends React.Component<any, any, any> {
static propTypes: {
/** 值,受控 */
value: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
/** 默认值,非受控 */
defaultValue: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
/** @ignore */
focusOnUpDown: PropTypes.Requireable<boolean>;
/** @ignore */
autoFocus: PropTypes.Requireable<boolean>;
/** 修改回调 */
onChange: PropTypes.Requireable<(...args: any[]) => any>;
/**
* 有效的修改回调,使用按钮改变值或者输入、回车后失焦时触发,可防止监听到无效的回调
* @param value - 当前的值,必为有效数字
*/
onNumberChange: PropTypes.Requireable<(...args: any[]) => any>;
/** @ignore */
onKeyDown: PropTypes.Requireable<(...args: any[]) => any>;
/** @ignore */
onKeyUp: PropTypes.Requireable<(...args: any[]) => any>;
/** @ignore */
onEnter: PropTypes.Requireable<(...args: any[]) => any>;
/** 禁用 */
disabled: PropTypes.Requireable<boolean>;
/** @ignore */
onFocus: PropTypes.Requireable<(...args: any[]) => any>;
/** @ignore */
onBlur: PropTypes.Requireable<(...args: any[]) => any>;
/** 只读 */
readOnly: PropTypes.Requireable<boolean>;
/** 最大值 */
max: PropTypes.Requireable<number>;
/** 最小值 */
min: PropTypes.Requireable<number>;
/** 按钮每次变动大小 */
step: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
/** 增加按钮点击增加的大小,会覆盖 step */
upStep: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
/** 减少按钮点击减少的大小,会覆盖 step */
downStep: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
/** 自定义'+'按钮 */
upHandler: PropTypes.Requireable<PropTypes.ReactNodeLike>;
/** 自定义'-'按钮 */
downHandler: PropTypes.Requireable<PropTypes.ReactNodeLike>;
/** 定义数值展示格式化 */
formatter: PropTypes.Requireable<(...args: any[]) => any>;
/** 定义输入内容过滤 */
parser: PropTypes.Requireable<(...args: any[]) => any>;
/** 精度,小数点位数 */
precision: PropTypes.Requireable<number>;
/** @ignore */
className: PropTypes.Requireable<string>;
/** @ignore */
style: PropTypes.Requireable<object>;
/** 样式风格 */
styleType: PropTypes.Requireable<string>;
/** 尺寸 */
size: PropTypes.Requireable<string>;
/** 自定义后缀 */
suffix: PropTypes.Requireable<PropTypes.ReactNodeLike>;
/** input框自定义样式 */
inputStyle: PropTypes.Requireable<object>;
/** 计算合法值 */
computeValidNumber: PropTypes.Requireable<(...args: any[]) => any>;
/** 是否隐藏操作按钮 */
hideHandler: PropTypes.Requireable<boolean>;
/**
* 输入提示,hover 和输入焦点时显示,可直接传入 tooltip 内容,或传入 tooltip 的 props,props 参考 tooltip 组件文档
* 注意,如果使用自定义 props 中的 visible 和 onVisibleChange 则需要自己去控制 tooltip 的显示隐藏
*/
tooltip: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
};
static defaultProps: {
focusOnUpDown: boolean;
min: number;
step: number;
onChange: typeof noop;
onNumberChange: typeof noop;
onKeyDown: typeof noop;
onEnter: typeof noop;
onFocus: typeof noop;
onBlur: typeof noop;
parser: typeof defaultParser;
styleType: string;
size: string;
computeValidNumber: (v: any) => any;
};
constructor(props: any);
state: {
inputValue: any;
value: any;
focused: any;
tooltipVisible: boolean;
};
input: React.RefObject<any>;
componentDidMount(): void;
componentWillReceiveProps(nextProps: any): void;
componentWillUpdate(): void;
start: any;
end: any;
componentDidUpdate(): void;
pressingUpOrDown: boolean | undefined;
componentWillUnmount(): void;
onKeyDown: (e: any, ...args: any[]) => void;
onKeyUp: (e: any, ...args: any[]) => void;
onChange: (e: any) => void;
inputting: boolean | undefined;
onFocus: (...args: any[]) => void;
onBlur: (e: any, ...args: any[]) => void;
onEnter: (e: any, ...args: any[]) => void;
getCurrentValidValue(value: any): any;
getRatio(e: any): number;
getValueFromEvent(e: any): any;
getValidValue(value: any, min?: any, max?: any): any;
setValue(v: any, callback: any): void;
getPrecision(value: any): any;
getMaxPrecision(currentValue: any, ratio?: number): any;
getPrecisionFactor(currentValue: any, ratio?: number): number;
focus(): void;
blur(): void;
formatWrapper(num: any): any;
toPrecisionAsStep(num: any): any;
isNotCompleteNumber(num: any): any;
toNumber(num: any): any;
toNumberWhenUserInput(num: any): any;
upStep(val: any, rat: any): any;
downStep(val: any, rat: any): any;
step(type: any, e: any, ratio: number | undefined, recursive: any): void;
autoStepTimer: NodeJS.Timeout | undefined;
stop: () => void;
down: (e: any, ratio: any, recursive: any) => void;
up: (e: any, ratio: any, recursive: any) => void;
renderHandler: () => React.JSX.Element | null;
onTooltipVisibleChange: (visible: any) => void;
renderInput: () => React.JSX.Element;
render(): React.JSX.Element;
}
declare namespace NumberInput {
export { StyleType };
export { Size };
}
import React from "react";
import PropTypes from "prop-types";
declare function noop(): void;
declare function defaultParser(input: any): any;
declare const StyleType: string[];
declare const Size: string[];