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; clearable?: boolean; defaultTime?: string; disableDate?: DisableDate; disabled?: boolean; enableTimePicker?: boolean; firstDayOfWeek?: number; format?: string; inputProps?: InputProps; mode?: 'year' | 'quarter' | 'month' | 'week' | 'date'; 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; defaultValue?: DateValue; valueType?: DatePickerValueType; onBlur?: (context: { value: DateValue; e: FocusEvent; }) => void; onChange?: (value: DateValue, context: { dayjsValue?: Dayjs; trigger?: DatePickerTriggerSource; }) => void; onConfirm?: (context: { date: Date; e: MouseEvent; }) => void; onFocus?: (context: { value: DateValue; e: FocusEvent; }) => void; onPick?: (value: DateValue) => void; onPresetClick?: (context: { preset: PresetDate; e: MouseEvent; }) => void; } export interface TdDateRangePickerProps { allowInput?: boolean; clearable?: boolean; defaultTime?: string[]; disableDate?: DisableRangeDate; disabled?: boolean; enableTimePicker?: boolean; firstDayOfWeek?: number; format?: string; mode?: 'year' | 'quarter' | 'month' | 'week' | 'date'; panelPreselection?: boolean; placeholder?: string | Array; 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 { 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 { 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 | 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 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'; export declare type DisableRangeDate = Array | 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; 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';