UNPKG

5.79 kBTypeScriptView Raw
1import { DateAdapter } from './date-adapters/date-adapter/index';
2export declare enum DAYS_OF_WEEK {
3 SUNDAY = 0,
4 MONDAY = 1,
5 TUESDAY = 2,
6 WEDNESDAY = 3,
7 THURSDAY = 4,
8 FRIDAY = 5,
9 SATURDAY = 6
10}
11export declare const SECONDS_IN_DAY: number;
12export interface WeekDay {
13 date: Date;
14 day: number;
15 isPast: boolean;
16 isToday: boolean;
17 isFuture: boolean;
18 isWeekend: boolean;
19 cssClass?: string;
20}
21export interface EventColor {
22 primary: string;
23 secondary: string;
24}
25export interface EventAction {
26 id?: string | number;
27 label: string;
28 cssClass?: string;
29 a11yLabel?: string;
30 onClick({ event, sourceEvent, }: {
31 event: CalendarEvent;
32 sourceEvent: MouseEvent | KeyboardEvent;
33 }): any;
34}
35export interface CalendarEvent<MetaType = any> {
36 id?: string | number;
37 start: Date;
38 end?: Date;
39 title: string;
40 color?: EventColor;
41 actions?: EventAction[];
42 allDay?: boolean;
43 cssClass?: string;
44 resizable?: {
45 beforeStart?: boolean;
46 afterEnd?: boolean;
47 };
48 draggable?: boolean;
49 meta?: MetaType;
50}
51export interface WeekViewAllDayEvent {
52 event: CalendarEvent;
53 offset: number;
54 span: number;
55 startsBeforeWeek: boolean;
56 endsAfterWeek: boolean;
57}
58export interface WeekViewAllDayEventRow {
59 id?: string;
60 row: WeekViewAllDayEvent[];
61}
62export interface WeekView {
63 period: ViewPeriod;
64 allDayEventRows: WeekViewAllDayEventRow[];
65 hourColumns: WeekViewHourColumn[];
66}
67export interface MonthViewDay<MetaType = any> extends WeekDay {
68 inMonth: boolean;
69 events: CalendarEvent[];
70 backgroundColor?: string;
71 badgeTotal: number;
72 meta?: MetaType;
73}
74export interface MonthView {
75 rowOffsets: number[];
76 days: MonthViewDay[];
77 totalDaysVisibleInWeek: number;
78 period: ViewPeriod;
79}
80export interface WeekViewTimeEvent {
81 event: CalendarEvent;
82 height: number;
83 width: number;
84 top: number;
85 left: number;
86 startsBeforeDay: boolean;
87 endsAfterDay: boolean;
88}
89export interface WeekViewHourSegment {
90 isStart: boolean;
91 date: Date;
92 displayDate: Date;
93 cssClass?: string;
94}
95export interface WeekViewHour {
96 segments: WeekViewHourSegment[];
97}
98export interface WeekViewHourColumn {
99 date: Date;
100 hours: WeekViewHour[];
101 events: WeekViewTimeEvent[];
102}
103export interface ViewPeriod {
104 start: Date;
105 end: Date;
106 events: CalendarEvent[];
107}
108export interface GetEventsInPeriodArgs {
109 events: CalendarEvent[];
110 periodStart: Date;
111 periodEnd: Date;
112}
113export declare function getEventsInPeriod(dateAdapter: DateAdapter, { events, periodStart, periodEnd }: GetEventsInPeriodArgs): CalendarEvent[];
114export interface GetWeekViewHeaderArgs {
115 viewDate: Date;
116 weekStartsOn: number;
117 excluded?: number[];
118 weekendDays?: number[];
119 viewStart?: Date;
120 viewEnd?: Date;
121}
122export declare function getWeekViewHeader(dateAdapter: DateAdapter, { viewDate, weekStartsOn, excluded, weekendDays, viewStart, viewEnd, }: GetWeekViewHeaderArgs): WeekDay[];
123export interface GetWeekViewArgs {
124 events?: CalendarEvent[];
125 viewDate: Date;
126 weekStartsOn: number;
127 excluded?: number[];
128 precision?: 'minutes' | 'days';
129 absolutePositionedEvents?: boolean;
130 hourSegments?: number;
131 hourDuration?: number;
132 dayStart: Time;
133 dayEnd: Time;
134 weekendDays?: number[];
135 segmentHeight: number;
136 viewStart?: Date;
137 viewEnd?: Date;
138 minimumEventHeight?: number;
139}
140export declare function getDifferenceInDaysWithExclusions(dateAdapter: DateAdapter, { date1, date2, excluded }: {
141 date1: Date;
142 date2: Date;
143 excluded: number[];
144}): number;
145interface GetAllDayEventArgs {
146 precision?: 'days' | 'minutes';
147 events?: CalendarEvent[];
148 absolutePositionedEvents?: boolean;
149 viewStart: Date;
150 viewEnd: Date;
151 excluded?: number[];
152}
153export declare function getAllDayWeekEvents(dateAdapter: DateAdapter, { events, excluded, precision, absolutePositionedEvents, viewStart, viewEnd, }: GetAllDayEventArgs): WeekViewAllDayEventRow[];
154export declare function getWeekView(dateAdapter: DateAdapter, { events, viewDate, weekStartsOn, excluded, precision, absolutePositionedEvents, hourSegments, hourDuration, dayStart, dayEnd, weekendDays, segmentHeight, minimumEventHeight, viewStart, viewEnd, }: GetWeekViewArgs): WeekView;
155export interface GetMonthViewArgs {
156 events?: CalendarEvent[];
157 viewDate: Date;
158 weekStartsOn: number;
159 excluded?: number[];
160 viewStart?: Date;
161 viewEnd?: Date;
162 weekendDays?: number[];
163}
164export declare function getMonthView(dateAdapter: DateAdapter, { events, viewDate, weekStartsOn, excluded, viewStart, viewEnd, weekendDays, }: GetMonthViewArgs): MonthView;
165export interface GetDayViewArgs {
166 events?: CalendarEvent[];
167 viewDate: Date;
168 hourSegments: number;
169 dayStart: {
170 hour: number;
171 minute: number;
172 };
173 dayEnd: {
174 hour: number;
175 minute: number;
176 };
177 eventWidth: number;
178 segmentHeight: number;
179 hourDuration: number;
180 minimumEventHeight: number;
181}
182interface Time {
183 hour: number;
184 minute: number;
185}
186export declare enum EventValidationErrorMessage {
187 NotArray = "Events must be an array",
188 StartPropertyMissing = "Event is missing the `start` property",
189 StartPropertyNotDate = "Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it.",
190 EndPropertyNotDate = "Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it.",
191 EndsBeforeStart = "Event `start` property occurs after the `end`"
192}
193export declare function validateEvents(events: CalendarEvent[], log: (...args: any[]) => void): boolean;
194export {};