Skip to content

Commit 0be434d

Browse files
author
Matt Lewis
committed
feat(weekView): allow the event template to be customised
Closes #171
1 parent adf31f7 commit 0be434d

File tree

2 files changed

+29
-15
lines changed

2 files changed

+29
-15
lines changed

src/components/week/calendarWeekView.component.ts

+6
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ import { CalendarEventTimesChangedEvent } from '../../interfaces/calendarEventTi
7272
<mwl-calendar-week-view-event
7373
[weekEvent]="weekEvent"
7474
[tooltipPlacement]="tooltipPlacement"
75+
[customTemplate]="eventTemplate"
7576
(eventClicked)="eventClicked.emit({event: weekEvent.event})">
7677
</mwl-calendar-week-view-event>
7778
</div>
@@ -121,6 +122,11 @@ export class CalendarWeekViewComponent implements OnChanges, OnInit, OnDestroy {
121122
*/
122123
@Input() headerTemplate: TemplateRef<any>;
123124

125+
/**
126+
* A custom template to use for week view events
127+
*/
128+
@Input() eventTemplate: TemplateRef<any>;
129+
124130
/**
125131
* Called when a header week day is clicked
126132
*/
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,29 @@
1-
import { Component, Input, Output, EventEmitter } from '@angular/core';
1+
import { Component, Input, Output, EventEmitter, TemplateRef } from '@angular/core';
22
import { WeekViewEvent } from 'calendar-utils';
33

44
@Component({
55
selector: 'mwl-calendar-week-view-event',
66
template: `
7-
<div
8-
class="cal-event"
9-
[class.cal-starts-within-week]="!weekEvent.startsBeforeWeek"
10-
[class.cal-ends-within-week]="!weekEvent.endsAfterWeek"
11-
[style.backgroundColor]="weekEvent.event.color.secondary"
12-
[ngClass]="weekEvent.event?.cssClass"
13-
[mwlCalendarTooltip]="weekEvent.event.title | calendarEventTitle:'weekTooltip':weekEvent.event"
14-
[tooltipPlacement]="tooltipPlacement">
15-
<mwl-calendar-event-title
16-
[event]="weekEvent.event"
17-
view="week"
18-
(click)="eventClicked.emit()">
19-
</mwl-calendar-event-title>
20-
</div>
7+
<ng-template #defaultTemplate>
8+
<div
9+
class="cal-event"
10+
[class.cal-starts-within-week]="!weekEvent.startsBeforeWeek"
11+
[class.cal-ends-within-week]="!weekEvent.endsAfterWeek"
12+
[style.backgroundColor]="weekEvent.event.color.secondary"
13+
[ngClass]="weekEvent.event?.cssClass"
14+
[mwlCalendarTooltip]="weekEvent.event.title | calendarEventTitle:'weekTooltip':weekEvent.event"
15+
[tooltipPlacement]="tooltipPlacement">
16+
<mwl-calendar-event-title
17+
[event]="weekEvent.event"
18+
view="week"
19+
(click)="eventClicked.emit()">
20+
</mwl-calendar-event-title>
21+
</div>
22+
</ng-template>
23+
<ng-template
24+
[ngTemplateOutlet]="customTemplate || defaultTemplate"
25+
[ngTemplateOutletContext]="{weekEvent: weekEvent, tooltipPlacement: tooltipPlacement, eventClicked: eventClicked}">
26+
</ng-template>
2127
`
2228
})
2329
export class CalendarWeekViewEventComponent {
@@ -26,6 +32,8 @@ export class CalendarWeekViewEventComponent {
2632

2733
@Input() tooltipPlacement: string;
2834

35+
@Input() customTemplate: TemplateRef<any>;
36+
2937
@Output() eventClicked: EventEmitter<any> = new EventEmitter();
3038

3139
}

0 commit comments

Comments
 (0)