UNPKG

jamis

Version:

一种支持通过JSON配置方式生成页面的组件库

135 lines (134 loc) 2.96 kB
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';