UNPKG

@zenweb/form

Version:

Zenweb Form module

71 lines (70 loc) 2.29 kB
import dayjs from 'dayjs'; import { OpUnitType } from 'dayjs'; import { Field } from '../field.js'; type StringKeys = 'string' | '!string' | '?string' | '~string'; export type DatetimeKeys = 'date' | '~date' | '!date' | '?date' | StringKeys; /** * 日期类型 - 默认返回全部日期+时间,可以使用 startOf 控制输出 */ export declare class Datetime<T extends DatetimeKeys> extends Field<T> { protected _of?: OpUnitType; /** * 设置保留的精度 */ of(unitOfTime: OpUnitType): this; extra(): { of: dayjs.OpUnitType | undefined; }; protected _clean(data: any): dayjs.Dayjs | undefined; clean(data: any): Date | undefined; } /** * 日期类型 - 只保留 年月日 */ export declare class _Date<T extends DatetimeKeys> extends Datetime<T> { _of: OpUnitType; option: { type: string; }; } export declare class DateRange<T extends DatetimeKeys> extends Field<`${T}[]`> { protected _of?: OpUnitType; private _start?; private _end?; protected _format: string; /** * 设置输出格式,在使用 `string` 类型有效 * - 默认: `YYYY-MM-DD` */ format(fmt: string): this; /** * 设置保留精度 * - 默认: `day` */ of(unitOfTime: OpUnitType): this; /** * 设置开始日期,如果不设置则不限制 */ start(date: Date): this; /** * 设置结束日期,如果不设置则不限制 */ end(date: Date): this; extra(): { of: dayjs.OpUnitType | undefined; start: Date | undefined; end: Date | undefined; }; protected _clean(data: any): dayjs.Dayjs | undefined; clean(data: any): (string | undefined)[] | (Date | undefined)[] | undefined; } export declare class Time<T extends StringKeys> extends Field<T> { protected _format: string; format(fmt: string): this; clean(data: any): string | undefined; } export declare const datetime: <T extends DatetimeKeys>(valueType: T) => Datetime<T>; export declare const date: <T extends DatetimeKeys>(valueType: T) => _Date<T>; export declare const dateRange: <T extends DatetimeKeys>(valueType: `${T}[]`) => DateRange<T>; export declare const time: <T extends StringKeys>(valueType: T) => Time<T>; export {};