@@ -17,7 +17,10 @@ import {
17
17
WeekDay ,
18
18
CalendarEvent ,
19
19
WeekViewEvent ,
20
- WeekViewEventRow
20
+ WeekViewEventRow ,
21
+ WeekView ,
22
+ ViewPeriod ,
23
+ MonthViewDay
21
24
} from 'calendar-utils' ;
22
25
import { ResizeEvent } from 'angular-resizable-element' ;
23
26
import addDays from 'date-fns/add_days' ;
@@ -33,6 +36,11 @@ export interface WeekViewEventResize {
33
36
edge : string ;
34
37
}
35
38
39
+ export interface CalendarWeekViewBeforeRenderEvent {
40
+ header : WeekDay [ ] ;
41
+ period : ViewPeriod ;
42
+ }
43
+
36
44
/**
37
45
* Shows all events on a given week. Example usage:
38
46
*
@@ -54,7 +62,7 @@ export interface WeekViewEventResize {
54
62
(dayHeaderClicked)="dayHeaderClicked.emit($event)"
55
63
(eventDropped)="eventTimesChanged.emit($event)">
56
64
</mwl-calendar-week-view-header>
57
- <div *ngFor="let eventRow of eventRows" #eventRowContainer class="cal-events-row">
65
+ <div *ngFor="let eventRow of view. eventRows" #eventRowContainer class="cal-events-row">
58
66
<div
59
67
*ngFor="let weekEvent of eventRow.row"
60
68
#event
@@ -194,7 +202,7 @@ export class CalendarWeekViewComponent implements OnChanges, OnInit, OnDestroy {
194
202
* If you add the `cssClass` property to a day in the header it will add that class to the cell element in the template
195
203
*/
196
204
@Output ( )
197
- beforeViewRender : EventEmitter < { header : WeekDay [ ] } > = new EventEmitter ( ) ;
205
+ beforeViewRender = new EventEmitter < CalendarWeekViewBeforeRenderEvent > ( ) ;
198
206
199
207
/**
200
208
* @hidden
@@ -204,7 +212,7 @@ export class CalendarWeekViewComponent implements OnChanges, OnInit, OnDestroy {
204
212
/**
205
213
* @hidden
206
214
*/
207
- eventRows : WeekViewEventRow [ ] = [ ] ;
215
+ view : WeekView ;
208
216
209
217
/**
210
218
* @hidden
@@ -401,24 +409,32 @@ export class CalendarWeekViewComponent implements OnChanges, OnInit, OnDestroy {
401
409
excluded : this . excludeDays ,
402
410
weekendDays : this . weekendDays
403
411
} ) ;
404
- this . beforeViewRender . emit ( {
405
- header : this . days
406
- } ) ;
412
+ this . emitBeforeViewRender ( ) ;
407
413
}
408
414
409
415
private refreshBody ( ) : void {
410
- this . eventRows = this . utils . getWeekView ( {
416
+ this . view = this . utils . getWeekView ( {
411
417
events : this . events ,
412
418
viewDate : this . viewDate ,
413
419
weekStartsOn : this . weekStartsOn ,
414
420
excluded : this . excludeDays ,
415
421
precision : this . precision ,
416
422
absolutePositionedEvents : true
417
- } ) . eventRows ;
423
+ } ) ;
424
+ this . emitBeforeViewRender ( ) ;
418
425
}
419
426
420
427
private refreshAll ( ) : void {
421
428
this . refreshHeader ( ) ;
422
429
this . refreshBody ( ) ;
423
430
}
431
+
432
+ private emitBeforeViewRender ( ) : void {
433
+ if ( this . days && this . view ) {
434
+ this . beforeViewRender . emit ( {
435
+ header : this . days ,
436
+ period : this . view . period
437
+ } ) ;
438
+ }
439
+ }
424
440
}
0 commit comments