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