1 | import { EventEmitter, ChangeDetectorRef, OnChanges, OnInit, OnDestroy, TemplateRef } from '@angular/core';
|
2 | import { Subject, Subscription } from 'rxjs';
|
3 | import { WeekDay, CalendarEvent, WeekViewAllDayEvent, WeekView, WeekViewHourColumn, WeekViewTimeEvent, WeekViewHourSegment, WeekViewHour, WeekViewAllDayEventRow } from 'calendar-utils';
|
4 | import { ResizeEvent } from 'angular-resizable-element';
|
5 | import { CalendarEventTimesChangedEvent } from '../common/calendar-event-times-changed-event.interface';
|
6 | import { CalendarUtils } from '../common/calendar-utils.provider';
|
7 | import { DateAdapter } from '../../date-adapters/date-adapter';
|
8 | import { DragEndEvent, DropEvent, DragMoveEvent, ValidateDrag } from 'angular-draggable-droppable';
|
9 | import { PlacementArray } from 'positioning';
|
10 | export interface WeekViewAllDayEventResize {
|
11 | originalOffset: number;
|
12 | originalSpan: number;
|
13 | edge: string;
|
14 | }
|
15 | export interface CalendarWeekViewBeforeRenderEvent extends WeekView {
|
16 | header: WeekDay[];
|
17 | }
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 | export declare class CalendarWeekViewComponent implements OnChanges, OnInit, OnDestroy {
|
29 | protected cdr: ChangeDetectorRef;
|
30 | protected utils: CalendarUtils;
|
31 | protected dateAdapter: DateAdapter;
|
32 | |
33 |
|
34 |
|
35 | viewDate: Date;
|
36 | |
37 |
|
38 |
|
39 |
|
40 | events: CalendarEvent[];
|
41 | |
42 |
|
43 |
|
44 | excludeDays: number[];
|
45 | |
46 |
|
47 |
|
48 | refresh: Subject<any>;
|
49 | |
50 |
|
51 |
|
52 | locale: string;
|
53 | |
54 |
|
55 |
|
56 | tooltipPlacement: PlacementArray;
|
57 | |
58 |
|
59 |
|
60 | tooltipTemplate: TemplateRef<any>;
|
61 | |
62 |
|
63 |
|
64 | tooltipAppendToBody: boolean;
|
65 | |
66 |
|
67 |
|
68 |
|
69 | tooltipDelay: number | null;
|
70 | |
71 |
|
72 |
|
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 |
|
79 |
|
80 |
|
81 |
|
82 |
|
83 |
|
84 | weekStartsOn: number;
|
85 | |
86 |
|
87 |
|
88 | headerTemplate: TemplateRef<any>;
|
89 | |
90 |
|
91 |
|
92 | eventTemplate: TemplateRef<any>;
|
93 | |
94 |
|
95 |
|
96 | eventTitleTemplate: TemplateRef<any>;
|
97 | |
98 |
|
99 |
|
100 | eventActionsTemplate: TemplateRef<any>;
|
101 | |
102 |
|
103 |
|
104 |
|
105 | precision: 'days' | 'minutes';
|
106 | |
107 |
|
108 |
|
109 | weekendDays: number[];
|
110 | |
111 |
|
112 |
|
113 | snapDraggedEvents: boolean;
|
114 | |
115 |
|
116 |
|
117 | hourSegments: number;
|
118 | |
119 |
|
120 |
|
121 | hourSegmentHeight: number;
|
122 | |
123 |
|
124 |
|
125 | dayStartHour: number;
|
126 | |
127 |
|
128 |
|
129 | dayStartMinute: number;
|
130 | |
131 |
|
132 |
|
133 | dayEndHour: number;
|
134 | |
135 |
|
136 |
|
137 | dayEndMinute: number;
|
138 | |
139 |
|
140 |
|
141 | hourSegmentTemplate: TemplateRef<any>;
|
142 | |
143 |
|
144 |
|
145 | eventSnapSize: number;
|
146 | |
147 |
|
148 |
|
149 | allDayEventsLabelTemplate: TemplateRef<any>;
|
150 | |
151 |
|
152 |
|
153 |
|
154 | daysInWeek: number;
|
155 | |
156 |
|
157 |
|
158 | currentTimeMarkerTemplate: TemplateRef<any>;
|
159 | |
160 |
|
161 |
|
162 | dayHeaderClicked: EventEmitter<{
|
163 | day: WeekDay;
|
164 | sourceEvent: MouseEvent;
|
165 | }>;
|
166 | |
167 |
|
168 |
|
169 | eventClicked: EventEmitter<{
|
170 | event: CalendarEvent<any>;
|
171 | sourceEvent: any;
|
172 | }>;
|
173 | |
174 |
|
175 |
|
176 | eventTimesChanged: EventEmitter<CalendarEventTimesChangedEvent<any>>;
|
177 | |
178 |
|
179 |
|
180 |
|
181 | beforeViewRender: EventEmitter<CalendarWeekViewBeforeRenderEvent>;
|
182 | |
183 |
|
184 |
|
185 | hourSegmentClicked: EventEmitter<{
|
186 | date: Date;
|
187 | sourceEvent: MouseEvent;
|
188 | }>;
|
189 | |
190 |
|
191 |
|
192 | days: WeekDay[];
|
193 | |
194 |
|
195 |
|
196 | view: WeekView;
|
197 | |
198 |
|
199 |
|
200 | refreshSubscription: Subscription;
|
201 | |
202 |
|
203 |
|
204 | allDayEventResizes: Map<WeekViewAllDayEvent, WeekViewAllDayEventResize>;
|
205 | |
206 |
|
207 |
|
208 | timeEventResizes: Map<CalendarEvent, ResizeEvent>;
|
209 | |
210 |
|
211 |
|
212 | eventDragEnterByType: {
|
213 | allDay: number;
|
214 | time: number;
|
215 | };
|
216 | |
217 |
|
218 |
|
219 | dragActive: boolean;
|
220 | |
221 |
|
222 |
|
223 | dragAlreadyMoved: boolean;
|
224 | |
225 |
|
226 |
|
227 | validateDrag: ValidateDrag;
|
228 | |
229 |
|
230 |
|
231 | validateResize: (args: any) => boolean;
|
232 | |
233 |
|
234 |
|
235 | dayColumnWidth: number;
|
236 | |
237 |
|
238 |
|
239 | calendarId: symbol;
|
240 | |
241 |
|
242 |
|
243 | lastDraggedEvent: CalendarEvent;
|
244 | |
245 |
|
246 |
|
247 | trackByWeekDayHeaderDate: (index: number, day: WeekDay) => string;
|
248 | |
249 |
|
250 |
|
251 | trackByHourSegment: (index: number, segment: WeekViewHourSegment) => string;
|
252 | |
253 |
|
254 |
|
255 | trackByHour: (index: number, hour: WeekViewHour) => string;
|
256 | |
257 |
|
258 |
|
259 | trackByWeekAllDayEvent: (index: number, weekEvent: WeekViewAllDayEvent) => string | number | CalendarEvent<any>;
|
260 | |
261 |
|
262 |
|
263 | trackByWeekTimeEvent: (index: number, weekEvent: WeekViewTimeEvent) => string | number | CalendarEvent<any>;
|
264 | |
265 |
|
266 |
|
267 | private lastDragEnterDate;
|
268 | |
269 |
|
270 |
|
271 | constructor(cdr: ChangeDetectorRef, utils: CalendarUtils, locale: string, dateAdapter: DateAdapter);
|
272 | /**
|
273 | * @hidden
|
274 | */
|
275 | trackByHourColumn: (index: number, column: WeekViewHourColumn) => string | WeekViewHourColumn;
|
276 | /**
|
277 | * @hidden
|
278 | */
|
279 | trackById: (index: number, row: WeekViewAllDayEventRow) => string;
|
280 | /**
|
281 | * @hidden
|
282 | */
|
283 | ngOnInit(): void;
|
284 | /**
|
285 | * @hidden
|
286 | */
|
287 | ngOnChanges(changes: any): void;
|
288 | /**
|
289 | * @hidden
|
290 | */
|
291 | ngOnDestroy(): void;
|
292 | /**
|
293 | * @hidden
|
294 | */
|
295 | timeEventResizeStarted(eventsContainer: HTMLElement, timeEvent: WeekViewTimeEvent, resizeEvent: ResizeEvent): void;
|
296 | /**
|
297 | * @hidden
|
298 | */
|
299 | timeEventResizing(timeEvent: WeekViewTimeEvent, resizeEvent: ResizeEvent): void;
|
300 | /**
|
301 | * @hidden
|
302 | */
|
303 | timeEventResizeEnded(timeEvent: WeekViewTimeEvent): void;
|
304 | /**
|
305 | * @hidden
|
306 | */
|
307 | allDayEventResizeStarted(allDayEventsContainer: HTMLElement, allDayEvent: WeekViewAllDayEvent, resizeEvent: ResizeEvent): void;
|
308 | /**
|
309 | * @hidden
|
310 | */
|
311 | allDayEventResizing(allDayEvent: WeekViewAllDayEvent, resizeEvent: ResizeEvent, dayWidth: number): void;
|
312 | /**
|
313 | * @hidden
|
314 | */
|
315 | allDayEventResizeEnded(allDayEvent: WeekViewAllDayEvent): void;
|
316 | /**
|
317 | * @hidden
|
318 | */
|
319 | getDayColumnWidth(eventRowContainer: HTMLElement): number;
|
320 | /**
|
321 | * @hidden
|
322 | */
|
323 | dateDragEnter(date: Date): void;
|
324 | /**
|
325 | * @hidden
|
326 | */
|
327 | eventDropped(dropEvent: DropEvent<{
|
328 | event?: CalendarEvent;
|
329 | calendarId?: symbol;
|
330 | }>, date: Date, allDay: boolean): void;
|
331 | /**
|
332 | * @hidden
|
333 | */
|
334 | dragEnter(type: 'allDay' | 'time'): void;
|
335 | /**
|
336 | * @hidden
|
337 | */
|
338 | dragLeave(type: 'allDay' | 'time'): void;
|
339 | /**
|
340 | * @hidden
|
341 | */
|
342 | dragStarted(eventsContainer: HTMLElement, event: HTMLElement, dayEvent?: WeekViewTimeEvent): void;
|
343 | /**
|
344 | * @hidden
|
345 | */
|
346 | dragMove(dayEvent: WeekViewTimeEvent, dragEvent: DragMoveEvent): void;
|
347 | /**
|
348 | * @hidden
|
349 | */
|
350 | allDayEventDragMove(): void;
|
351 | /**
|
352 | * @hidden
|
353 | */
|
354 | dragEnded(weekEvent: WeekViewAllDayEvent | WeekViewTimeEvent, dragEndEvent: DragEndEvent, dayWidth: number, useY?: boolean): void;
|
355 | protected refreshHeader(): void;
|
356 | protected refreshBody(): void;
|
357 | protected refreshAll(): void;
|
358 | protected emitBeforeViewRender(): void;
|
359 | protected getWeekView(events: CalendarEvent[]): WeekView;
|
360 | protected getDragMovedEventTimes(weekEvent: WeekViewAllDayEvent | WeekViewTimeEvent, dragEndEvent: DragEndEvent | DragMoveEvent, dayWidth: number, useY: boolean): {
|
361 | start: Date;
|
362 | end: Date;
|
363 | };
|
364 | protected restoreOriginalEvents(tempEvents: CalendarEvent[], adjustedEvents: Map<CalendarEvent, CalendarEvent>, snapDraggedEvents?: boolean): void;
|
365 | protected getTimeEventResizedDates(calendarEvent: CalendarEvent, resizeEvent: ResizeEvent): {
|
366 | start: Date;
|
367 | end: Date;
|
368 | };
|
369 | protected resizeStarted(eventsContainer: HTMLElement, minWidth?: number): void;
|
370 | }
|