jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
173 lines (172 loc) • 4.02 kB
TypeScript
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;
}