@@ -27,7 +27,7 @@ import { CalendarDragHelper } from '../common/calendar-drag-helper.provider';
27
27
import { CalendarResizeHelper } from '../common/calendar-resize-helper.provider' ;
28
28
import { CalendarEventTimesChangedEvent } from '../common/calendar-event-times-changed-event.interface' ;
29
29
import { CalendarUtils } from '../common/calendar-utils.provider' ;
30
- import { validateEvents } from '../common/util' ;
30
+ import { validateEvents , trackByEventId } from '../common/util' ;
31
31
32
32
export interface CalendarDayViewBeforeRenderEvent {
33
33
body : {
@@ -65,7 +65,7 @@ export interface DayViewEventResize {
65
65
template : `
66
66
<div class="cal-day-view" #dayViewContainer>
67
67
<mwl-calendar-all-day-event
68
- *ngFor="let event of view.allDayEvents"
68
+ *ngFor="let event of view.allDayEvents; trackBy:trackByEventId "
69
69
[event]="event"
70
70
[customTemplate]="allDayEventTemplate"
71
71
[eventTitleTemplate]="eventTitleTemplate"
@@ -75,7 +75,7 @@ export interface DayViewEventResize {
75
75
<div class="cal-events">
76
76
<div
77
77
#event
78
- *ngFor="let dayEvent of view?.events"
78
+ *ngFor="let dayEvent of view?.events; trackBy:trackByDayEvent "
79
79
class="cal-event-container"
80
80
[class.cal-draggable]="dayEvent.event.draggable"
81
81
[class.cal-starts-within-day]="!dayEvent.startsBeforeDay"
@@ -109,9 +109,9 @@ export interface DayViewEventResize {
109
109
</mwl-calendar-day-view-event>
110
110
</div>
111
111
</div>
112
- <div class="cal-hour" *ngFor="let hour of hours" [style.minWidth.px]="view?.width + 70">
112
+ <div class="cal-hour" *ngFor="let hour of hours; trackBy:trackByHour " [style.minWidth.px]="view?.width + 70">
113
113
<mwl-calendar-day-view-hour-segment
114
- *ngFor="let segment of hour.segments"
114
+ *ngFor="let segment of hour.segments; trackBy:trackByHourSegment "
115
115
[style.height.px]="hourSegmentHeight"
116
116
[segment]="segment"
117
117
[segmentHeight]="hourSegmentHeight"
@@ -290,6 +290,29 @@ export class CalendarDayViewComponent implements OnChanges, OnInit, OnDestroy {
290
290
*/
291
291
validateResize : ( args : any ) => boolean ;
292
292
293
+ /**
294
+ * @hidden
295
+ */
296
+ trackByEventId = trackByEventId ;
297
+
298
+ /**
299
+ * @hidden
300
+ */
301
+ trackByDayEvent = ( index : number , dayEvent : DayViewEvent ) =>
302
+ dayEvent . event . id ? dayEvent . event . id : dayEvent . event ;
303
+
304
+ /**
305
+ * @hidden
306
+ */
307
+ trackByHour = ( index : number , hour : DayViewHour ) =>
308
+ hour . segments [ 0 ] . date . toISOString ( ) ;
309
+
310
+ /**
311
+ * @hidden
312
+ */
313
+ trackByHourSegment = ( index : number , segment : DayViewHourSegment ) =>
314
+ segment . date . toISOString ( ) ;
315
+
293
316
/**
294
317
* @hidden
295
318
*/
0 commit comments