UNPKG

@kalender/core

Version:
62 lines 1.83 kB
import { Time, WeekDay } from "../date-tools"; export declare enum RepeatTypes { Interval = "Interval", DayOfWeek = "DayOfWeek", DayOfMonth = "DayOfMonth", DayOfYear = "DayOfYear", MonthDay = "MonthDay", NthWeekDayOfIntervalMonth = "NthWeekDayOfIntervalMonth", NthWeekDayOfSpecifiedMonth = "NthWeekDayOfSpecifiedMonth" } export declare type CalendarRepeat<T = any> = (T extends RepeatTypes.Interval ? { interval?: number; } : T extends RepeatTypes.DayOfWeek ? { days?: WeekDay[]; interval?: number; weeks?: number; } : T extends RepeatTypes.DayOfMonth ? { days: number[]; months?: number[]; } : T extends RepeatTypes.DayOfYear ? { days: number[]; interval?: number; timesOfYear?: number; } : T extends RepeatTypes.MonthDay ? { month: number; day: number; interval?: number; timesOfYear?: number; } : T extends RepeatTypes.NthWeekDayOfIntervalMonth ? { interval?: number; rank?: number; weekDay: WeekDay; } : T extends RepeatTypes.NthWeekDayOfSpecifiedMonth ? { month: number; rank?: number; weekDay: WeekDay; interval?: number; } : {}) & { type: T; start: Date; end?: Date; times?: number; }; export interface CalendarEvent<T extends RepeatTypes = any> { id: Symbol; title: string; description?: string; start: Time; end: Time; repeat: CalendarRepeat<T>; customData?: any; } export declare type CalendarRepeatFn<T extends RepeatTypes> = (date: Date, option: Omit<CalendarRepeat<T>, 'type'>) => boolean; export interface CalendarDate { year: number; month: number; day: number; weekDay: number; date: Date; events: Omit<CalendarEvent, 'id' | 'repeat'>[]; } //# sourceMappingURL=definition.d.ts.map