tdesign-mobile-vue
Version:
tdesign-mobile-vue
44 lines (43 loc) • 1.42 kB
TypeScript
import { ButtonProps } from '../button';
import { TNode } from '../common';
export interface TdCalendarProps {
allowSameDay?: boolean;
confirmBtn?: string | ButtonProps | TNode | null;
firstDayOfWeek?: number;
format?: CalendarFormatType;
maxDate?: number | Date;
minDate?: number | Date;
readonly?: boolean;
switchMode?: 'none' | 'month' | 'year-month';
title?: string | TNode;
type?: 'single' | 'multiple' | 'range';
usePopup?: boolean;
value?: CalendarValue;
defaultValue?: CalendarValue;
modelValue?: CalendarValue;
visible?: boolean;
onChange?: (value: CalendarValue) => void;
onClose?: (trigger: CalendarTrigger) => void;
onConfirm?: (value: CalendarValue) => void;
onPanelChange?: (context: {
year: number;
month: number;
}) => void;
onScroll?: (context: {
e: Event;
}) => void;
onSelect?: (value: Date) => void;
}
export type CalendarFormatType = (day: TDate) => TDate;
export type TDateType = 'selected' | 'disabled' | 'start' | 'start-end' | 'centre' | 'end' | '';
export interface TDate {
date: Date;
day: number;
type: TDateType;
className?: string;
prefix?: string;
suffix?: string;
}
export type CalendarValue = TCalendarValue | TCalendarValue[];
export type TCalendarValue = number | Date;
export type CalendarTrigger = 'close-btn' | 'confirm-btn' | 'overlay';