jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
135 lines (134 loc) • 2.96 kB
TypeScript
import type { Option, PickClassStyleType, ReactPropsBase, SchemaExpression } from 'jamis-core';
import type { FormBaseControlSchema, FormControlProps } from '../types';
export type InputNumberRendererEvent = 'blur' | 'focus' | 'change';
export type InputNumberRendererAction = 'clear';
/**
* 数字输入框
*
*/
export interface NumberControlSchema extends FormBaseControlSchema {
type: 'input-number';
/**
* 最大值
*/
max?: number;
maxExpr?: SchemaExpression;
/**
* 最小值
*/
min?: number;
minExpr?: SchemaExpression;
/**
* 步长
*/
step?: number;
/**
* 精度
*/
precision?: number;
/**
* 默认当然是
*/
showSteps?: boolean;
/**
* 边框模式,全边框,还是半边框,或者没边框。
*/
borderMode?: 'full' | 'half' | 'none';
/**
* 前缀
*/
prefix?: string;
/**
* 后缀
*/
suffix?: string;
/**
* 单位列表
*/
unitOptions?: string | Array<Option> | string[] | PlainObject;
/**
* 是否千分分隔
*/
kilobitSeparator?: boolean;
/**
* 只读
*/
readOnly?: boolean;
/**
* 是否启用键盘行为
*/
keyboard?: boolean;
}
export interface NumberControlProps extends FormControlProps {
placeholder?: string;
max?: number | string;
min?: number | string;
step?: number;
precision?: number;
/**
* 边框模式,全边框,还是半边框,或者没边框。
*/
borderMode?: 'full' | 'half' | 'none';
/**
* 前缀
*/
prefix?: string;
/**
* 后缀
*/
suffix?: string;
/**
* 是否千分分隔
*/
kilobitSeparator?: boolean;
/**
* 只读
*/
readOnly?: boolean;
/**
* 启用键盘行为,即通过上下方向键控制是否生效
*/
keyboard?: boolean;
}
export interface NumberProps extends ReactPropsBase, PickClassStyleType {
placeholder?: string;
max?: number;
min?: number;
step?: number;
/** 是否显示加减按钮, 默认是显示 */
showSteps?: boolean;
precision?: number;
disabled?: boolean;
/**
* 只读
*/
readOnly?: boolean;
value?: number;
/**
* 边框模式,全边框或者没边框。
*/
borderMode?: 'full' | 'half' | 'none';
/**
* 指定输入框展示值的格式
*/
formatter?: Function;
/**
* 指定从 formatter 里转换回数字的方式,和 formatter 搭配使用
*/
parser?: Function;
inputRef?: Function;
keyboard?: Boolean;
/** 是否有校验错误 */
hasError?: boolean;
/**
* 获取焦点事件
*/
onFocus?: Function;
/**
* 失去焦点事件
*/
onBlur?: Function;
onChange?: (value: number) => void;
}
export * from './InputText.types';
export * from './Textarea.types';