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