tdesign-vue
Version:
249 lines (248 loc) • 8.48 kB
TypeScript
import { InputProps } from '../input';
import { PopupProps } from '../popup';
import { TimePickerProps } from '../time-picker';
import { Dayjs } from 'dayjs';
import { RangeInputProps } from '../range-input';
import { TNode, SizeEnum } from '../common';
export interface TdDatePickerProps {
allowInput?: boolean;
cancelRangeSelectLimit?: boolean;
borderless?: boolean;
clearable?: boolean;
defaultTime?: string;
disableDate?: DisableDate;
disableTime?: (time: Date) => Partial<{
hour: Array<number>;
minute: Array<number>;
second: Array<number>;
millisecond: Array<number>;
}>;
disabled?: boolean;
enableTimePicker?: boolean;
firstDayOfWeek?: number;
format?: string;
inputProps?: InputProps;
label?: string | TNode;
mode?: 'year' | 'quarter' | 'month' | 'week' | 'date';
multiple?: boolean;
placeholder?: string;
popupProps?: PopupProps;
prefixIcon?: TNode;
presets?: PresetDate;
presetsPlacement?: 'left' | 'top' | 'right' | 'bottom';
size?: SizeEnum;
status?: 'default' | 'success' | 'warning' | 'error';
suffixIcon?: TNode;
timePickerProps?: TimePickerProps;
tips?: string | TNode;
value?: DateValue | DateMultipleValue;
defaultValue?: DateValue | DateMultipleValue;
valueType?: DatePickerValueType;
onBlur?: (context: {
value: DateValue | DateMultipleValue;
e: FocusEvent;
}) => void;
onChange?: (value: DateValue | DateMultipleValue, context: {
dayjsValue?: Dayjs;
trigger?: DatePickerTriggerSource;
}) => void;
onConfirm?: (context: {
date: Date;
e: MouseEvent;
}) => void;
onFocus?: (context: {
value: DateValue | DateMultipleValue;
e: FocusEvent;
}) => void;
onPick?: (value: DateValue) => void;
onPresetClick?: (context: {
preset: PresetDate;
e: MouseEvent;
}) => void;
}
export interface TdDateRangePickerProps {
allowInput?: boolean;
borderless?: boolean;
clearable?: boolean;
defaultTime?: string[];
disableDate?: DisableRangeDate;
disableTime?: (times: Array<Date | null>, context: {
partial: DateRangePickerPartial;
}) => Partial<{
hour: Array<number>;
minute: Array<number>;
second: Array<number>;
}>;
disabled?: boolean;
readonly?: Boolean;
enableTimePicker?: boolean;
firstDayOfWeek?: number;
format?: string;
label?: string | TNode;
mode?: 'year' | 'quarter' | 'month' | 'week' | 'date';
panelPreselection?: boolean;
placeholder?: string | Array<string>;
popupProps?: PopupProps;
prefixIcon?: TNode;
presets?: PresetRange;
presetsPlacement?: 'left' | 'top' | 'right' | 'bottom';
rangeInputProps?: RangeInputProps;
separator?: string;
size?: SizeEnum;
status?: 'default' | 'success' | 'warning' | 'error';
suffixIcon?: TNode;
timePickerProps?: TimePickerProps;
tips?: string | TNode;
value?: DateRangeValue;
defaultValue?: DateRangeValue;
valueType?: 'time-stamp' | 'Date' | 'YYYY' | 'YYYY-MM' | 'YYYY-MM-DD' | 'YYYY-MM-DD HH' | 'YYYY-MM-DD HH:mm' | 'YYYY-MM-DD HH:mm:ss' | 'YYYY-MM-DD HH:mm:ss:SSS';
onBlur?: (context: {
value: DateRangeValue;
partial: DateRangePickerPartial;
e: FocusEvent;
}) => void;
onChange?: (value: DateRangeValue, context: {
dayjsValue?: Dayjs[];
trigger?: DatePickerTriggerSource;
}) => void;
onConfirm?: (context: {
date: Date[];
e: MouseEvent;
partial: DateRangePickerPartial;
}) => void;
onFocus?: (context: {
value: DateRangeValue;
partial: DateRangePickerPartial;
e: FocusEvent;
}) => void;
onInput?: (context: {
input: string;
value: DateRangeValue;
partial: DateRangePickerPartial;
e: InputEvent;
}) => void;
onPick?: (value: DateValue, context: PickContext) => void;
onPresetClick?: (context: {
preset: PresetDate;
e: MouseEvent;
}) => void;
}
export interface TdDatePickerPanelProps extends Pick<TdDatePickerProps, 'value' | 'defaultValue' | 'disableDate' | 'disableTime' | 'enableTimePicker' | 'firstDayOfWeek' | 'format' | 'mode' | 'presets' | 'presetsPlacement' | 'timePickerProps'> {
defaultTime?: string;
onCellClick?: (context: {
date: Date;
e: MouseEvent;
}) => void;
onChange?: (value: DateValue, context: {
dayjsValue?: Dayjs;
e?: MouseEvent;
trigger?: DatePickerTriggerSource;
}) => void;
onConfirm?: (context: {
date: Date;
e: MouseEvent;
}) => void;
onMonthChange?: (context: {
month: number;
date: Date;
e?: MouseEvent;
trigger: DatePickerMonthChangeTrigger;
}) => void;
onPanelClick?: (context: {
e: MouseEvent;
}) => void;
onPresetClick?: (context: {
preset: PresetDate;
e: MouseEvent;
}) => void;
onTimeChange?: (context: {
time: string;
date: Date;
trigger: DatePickerTimeChangeTrigger;
e?: MouseEvent;
}) => void;
onYearChange?: (context: {
year: number;
date: Date;
trigger: DatePickerYearChangeTrigger;
e?: MouseEvent;
}) => void;
}
export interface TdDateRangePickerPanelProps extends Pick<TdDateRangePickerProps, 'value' | 'defaultValue' | 'disableDate' | 'enableTimePicker' | 'firstDayOfWeek' | 'format' | 'mode' | 'presets' | 'presetsPlacement' | 'panelPreselection' | 'timePickerProps'> {
defaultTime?: string[];
onCellClick?: (context: {
date: Date[];
partial: DateRangePickerPartial;
e: MouseEvent;
}) => void;
onChange?: (value: DateRangeValue, context: {
dayjsValue?: Dayjs[];
partial: DateRangePickerPartial;
e?: MouseEvent;
trigger?: DatePickerTriggerSource;
}) => void;
onConfirm?: (context: {
date: Date[];
e: MouseEvent;
}) => void;
onMonthChange?: (context: {
month: number;
date: Date[];
partial: DateRangePickerPartial;
e?: MouseEvent;
trigger: DatePickerMonthChangeTrigger;
}) => void;
onPanelClick?: (context: {
e: MouseEvent;
}) => void;
onPresetClick?: (context: {
preset: PresetDate;
e: MouseEvent;
}) => void;
onTimeChange?: (context: {
time: string;
date: Date[];
partial: DateRangePickerPartial;
trigger: DatePickerTimeChangeTrigger;
e?: MouseEvent;
}) => void;
onYearChange?: (context: {
year: number;
date: Date[];
partial: DateRangePickerPartial;
trigger: DatePickerYearChangeTrigger;
e?: MouseEvent;
}) => void;
}
export declare type DisableDate = Array<DateValue> | DisableDateObj | ((date: DateValue) => boolean);
export interface DisableDateObj {
from?: string;
to?: string;
before?: string;
after?: string;
}
export interface PresetDate {
[name: string]: DateValue | (() => DateValue);
}
export declare type DateValue = string | number | Date;
export declare type DateMultipleValue = Array<DateValue>;
export declare type DatePickerValueType = 'time-stamp' | 'Date' | 'YYYY' | 'YYYY-MM' | 'YYYY-MM-DD' | 'YYYY-MM-DD HH' | 'YYYY-MM-DD HH:mm' | 'YYYY-MM-DD HH:mm:ss' | 'YYYY-MM-DD HH:mm:ss:SSS';
export declare type ValueTypeEnum = DatePickerValueType;
export declare type DatePickerTriggerSource = 'confirm' | 'pick' | 'enter' | 'preset' | 'clear' | 'tag-remove';
export declare type DisableRangeDate = Array<DateValue> | DisableDateObj | ((context: {
date: DateRangeValue;
partial: DateRangePickerPartial;
}) => boolean);
export declare type DateRangePickerPartial = 'start' | 'end';
export interface PresetRange {
[range: string]: DateRange | (() => DateRange);
}
export declare type DateRange = [DateValue, DateValue];
export declare type DateRangeValue = Array<DateValue>;
export interface PickContext {
e: MouseEvent;
partial: DateRangePickerPartial;
}
export declare type DatePickerMonthChangeTrigger = 'month-select' | 'month-arrow-next' | 'month-arrow-previous' | 'today';
export declare type DatePickerTimeChangeTrigger = 'time-hour' | 'time-minute' | 'time-second';
export declare type DatePickerYearChangeTrigger = 'year-select' | 'year-arrow-next' | 'year-arrow-previous' | 'today';