UNPKG

jamis

Version:

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

173 lines (172 loc) 4.02 kB
import type { CalendarViewMode, DateExpression, FormBaseControlSchema, FormControlProps, SchemaClassName, SchemaExpression, ShortcutValue, TimeConstraints } from '../types'; export interface InputDateBaseControlSchema extends FormBaseControlSchema { /** * 指定为日期选择控件 */ type: 'input-date' | 'input-datetime' | 'input-time' | 'input-month' | 'input-quarter' | 'input-year'; /** * 是否显示清除按钮 */ clearable?: boolean; /** * 日期存储格式 */ format?: string; /** * 日期展示格式 */ inputFormat?: string; /** * 设定是否存储 utc 时间。 */ utc?: boolean; /** * 是否为内联模式? */ embed?: boolean; /** * 边框模式,全边框,还是半边框,或者没边框。 */ borderMode?: 'full' | 'half' | 'none'; /** 是否禁用年度和月份变更, 默认是false */ disableMonthSwitch?: boolean; } /** * Date日期选择控件 * */ export interface DateControlSchema extends InputDateBaseControlSchema { /** * 指定为日期选择控件 */ type: 'input-date'; /** * 日期存储格式 * @default X */ format?: string; /** * 日期展示格式 * @default YYYY-MM-DD */ inputFormat?: string; /** * 点选日期后是否关闭弹窗 */ closeOnSelect?: boolean; /** * 限制最小日期 */ minDate?: SchemaExpression; /** * 限制最大日期 */ maxDate?: SchemaExpression; /** * 快捷时间 */ shortcuts?: string | Array<ShortcutValue | { label: string; value: ShortcutValue | DateExpression; }>; /** * 快捷键区域样式类 */ shortcutsClassName?: SchemaClassName; /** * 选择快捷键的参考时间, 支持关联表达式 */ shortcutsRefDate?: SchemaExpression; /** * 快捷键显示位置, picker代表在面板中, input表示在输入框后, 默认是picker */ shortcutsPosition?: 'picker' | 'input'; /** * 元素`.cxd-DatePicker-input`的样式类 */ pickerInputClassName?: SchemaClassName; } /** * Datetime日期时间选择控件 * */ export interface DateTimeControlSchema extends InputDateBaseControlSchema { /** * 指定为日期时间选择控件 */ type: 'input-datetime'; /** * 时间的格式。 * * @default HH:mm */ timeFormat?: string; /** * 限制最小日期 */ minDate?: string; /** * 限制最大日期 */ maxDate?: string; /** * 时间输入范围限制 */ timeConstraints?: TimeConstraints; } /** * Time 时间选择控件 * */ export interface TimeControlSchema extends InputDateBaseControlSchema { /** * 指定为日期时间选择控件 */ type: 'input-time'; /** * 时间的格式。 * * @default HH:mm */ timeFormat?: string; /** * 时间输入范围限制 */ timeConstraints?: TimeConstraints; } /** * Month 月份选择控件 * */ export interface MonthControlSchema extends InputDateBaseControlSchema { /** * 指定为月份时间选择控件 */ type: 'input-month'; } /** * 季度选择控件 */ export interface QuarterControlSchema extends InputDateBaseControlSchema { /** * 指定为月份时间选择控件 */ type: 'input-quarter'; } /** * 年份选择控件 */ export interface YearControlSchema extends InputDateBaseControlSchema { /** * 指定为月份时间选择控件 */ type: 'input-year'; } export interface DateProps extends FormControlProps, Omit<DateControlSchema, 'type' | 'label' | 'className' | 'descriptionClassName' | 'inputClassName'> { viewMode: CalendarViewMode; timeFormat?: string; valueFormat?: string; timeConstraints?: TimeConstraints; disabled: boolean; iconClassName?: string; }