UNPKG

@ipohjs/calendar

Version:
58 lines 1.96 kB
interface BaseCalendar { disabledDatesSet: Set<number>; disabledDaysSet: Set<number>; key: string; } export interface CalendarDay extends CalendarWeekday { disabled: boolean; fullDate: Date | null; key: string; } export interface CalendarGrid extends BaseCalendar { datesGrid: DatesGridRow[]; toJSON(): SerializableCalendarGrid; } export interface CalendarInit<CM extends CalendarMode> extends CalendarInitBase { calendarMode?: CM; date: Date; dayFormat: Intl.DateTimeFormat; disabledDates?: Date[]; disabledDays?: number[]; fullDateFormat: Intl.DateTimeFormat; locale: string; max?: Date; min?: Date; weekNumberType?: WeekNumberType; } export interface CalendarInitBase { firstDayOfWeek?: number; showWeekNumber?: boolean; weekNumberTemplate?: string; } export interface CalendarList extends BaseCalendar { datesList: CalendarDay[]; toJSON(): SerializableCalendarList; } export type CalendarMode = 'grid' | 'list'; export type CalendarResult<CM extends CalendarMode> = CM extends 'list' ? CalendarList : CalendarGrid; export interface CalendarWeekday { label: string; value: string; } export interface DatesGridColumn extends CalendarDay { } export interface DatesGridRow { columns: DatesGridColumn[]; key: string; } export type DateTimeFormatter = Intl.DateTimeFormat['format']; type OmitKey<T extends object, K extends keyof T> = Omit<T, K>; type SerializableBaseCalendar<T extends BaseCalendar> = { disabledDates: number[]; disabledDays: number[]; } & OmitKey<T, 'disabledDatesSet' | 'disabledDaysSet'>; export type SerializableCalendarGrid = SerializableBaseCalendar<OmitKey<CalendarGrid, 'toJSON'>>; export type SerializableCalendarList = SerializableBaseCalendar<OmitKey<CalendarList, 'toJSON'>>; export type WeekNumberType = 'first-4-day-week' | 'first-day-of-year' | 'first-full-week'; export {}; //# sourceMappingURL=types.d.ts.map