Skip to content

Commit ef5a37f

Browse files
author
Matt Lewis
committed
feat(monthView): allow open day events template to be customised
1 parent 4603e6b commit ef5a37f

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

src/components/month/calendarMonthView.component.ts

+6
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ import { CalendarEventTimesChangedEvent } from '../../interfaces/calendarEventTi
7575
<mwl-calendar-open-day-events
7676
[isOpen]="openRowIndex === rowIndex"
7777
[events]="openDay?.events"
78+
[customTemplate]="openDayEventsTemplate"
7879
(eventClicked)="eventClicked.emit({event: $event.event})">
7980
</mwl-calendar-open-day-events>
8081
</div>
@@ -140,6 +141,11 @@ export class CalendarMonthViewComponent implements OnChanges, OnInit, OnDestroy
140141
*/
141142
@Input() cellTemplate: TemplateRef<any>;
142143

144+
/**
145+
* A custom template to use to replace the day cell
146+
*/
147+
@Input() openDayEventsTemplate: TemplateRef<any>;
148+
143149
/**
144150
* Called when the day cell is clicked
145151
*/

src/components/month/calendarOpenDayEvents.component.ts

+14-2
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@ import {
66
transition,
77
animate,
88
Output,
9-
EventEmitter
9+
EventEmitter,
10+
TemplateRef
1011
} from '@angular/core';
1112
import { CalendarEvent } from 'calendar-utils';
1213

1314
@Component({
1415
selector: 'mwl-calendar-open-day-events',
1516
template: `
16-
<div class="cal-open-day-events" [@collapse] *ngIf="isOpen">
17+
<template #defaultTemplate>
1718
<div
1819
*ngFor="let event of events"
1920
[ngClass]="event?.cssClass"
@@ -31,6 +32,15 @@ import { CalendarEvent } from 'calendar-utils';
3132
</mwl-calendar-event-title>
3233
<mwl-calendar-event-actions [event]="event"></mwl-calendar-event-actions>
3334
</div>
35+
</template>
36+
<div class="cal-open-day-events" [@collapse] *ngIf="isOpen">
37+
<template
38+
[ngTemplateOutlet]="customTemplate || defaultTemplate"
39+
[ngOutletContext]="{
40+
events: events,
41+
eventClicked: eventClicked
42+
}">
43+
</template>
3444
</div>
3545
`,
3646
animations: [
@@ -52,6 +62,8 @@ export class CalendarOpenDayEventsComponent {
5262

5363
@Input() events: CalendarEvent[];
5464

65+
@Input() customTemplate: TemplateRef<any>;
66+
5567
@Output() eventClicked: EventEmitter<{event: CalendarEvent}> = new EventEmitter<{event: CalendarEvent}>();
5668

5769
}

0 commit comments

Comments
 (0)