Skip to content

Commit 43b0124

Browse files
author
Matt Lewis
committed
feat(meta): add CalendarEvent meta property for storing arbritary data
Closes #218
1 parent e6e02c5 commit 43b0124

File tree

6 files changed

+51
-47
lines changed

6 files changed

+51
-47
lines changed

demos/demo-modules/additional-event-properties/component.ts

+9-9
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ import { Component, ChangeDetectionStrategy } from '@angular/core';
22
import { CalendarEvent } from 'angular-calendar';
33
import { colors } from '../demo-utils/colors';
44

5-
interface MyEvent extends CalendarEvent {
6-
id: number;
7-
}
8-
95
@Component({
106
selector: 'mwl-demo-component',
117
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -17,16 +13,20 @@ export class DemoComponent {
1713

1814
viewDate: Date = new Date();
1915

20-
events: MyEvent[] = [{
21-
id: 1,
16+
events: CalendarEvent[] = [{
2217
title: 'Event 1',
2318
color: colors.yellow,
24-
start: new Date()
19+
start: new Date(),
20+
meta: {
21+
id: 1
22+
}
2523
}, {
26-
id: 2,
2724
title: 'Event 2',
2825
color: colors.blue,
29-
start: new Date()
26+
start: new Date(),
27+
meta: {
28+
id: 2
29+
}
3030
}];
3131

3232
}

demos/demo-modules/async-events/component.ts

+6-8
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@ interface Film {
1212
release_date: string;
1313
}
1414

15-
interface FilmEvent extends CalendarEvent {
16-
film: Film;
17-
}
18-
1915
@Component({
2016
selector: 'mwl-demo-component',
2117
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -27,7 +23,7 @@ export class DemoComponent implements OnInit {
2723

2824
viewDate: Date = new Date();
2925

30-
events$: Observable<FilmEvent[]>;
26+
events$: Observable<CalendarEvent[]>;
3127

3228
activeDayIsOpen: boolean = false;
3329

@@ -64,7 +60,9 @@ export class DemoComponent implements OnInit {
6460
title: film.title,
6561
start: new Date(film.release_date),
6662
color: colors.yellow,
67-
film
63+
meta: {
64+
film
65+
}
6866
};
6967
});
7068
});
@@ -85,8 +83,8 @@ export class DemoComponent implements OnInit {
8583
}
8684
}
8785

88-
eventClicked(event: FilmEvent): void {
89-
window.open(`https://www.themoviedb.org/movie/${event.film.id}`, '_blank');
86+
eventClicked(event: CalendarEvent): void {
87+
window.open(`https://www.themoviedb.org/movie/${event.meta.film.id}`, '_blank');
9088
}
9189

9290
}

demos/demo-modules/group-month-view-events/component.ts

+24-18
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ import { Component, ChangeDetectionStrategy } from '@angular/core';
22
import { CalendarEvent, CalendarMonthViewDay } from 'angular-calendar';
33
import { colors } from '../demo-utils/colors';
44

5-
interface MyEvent extends CalendarEvent {
6-
type: string;
7-
}
8-
95
@Component({
106
selector: 'mwl-demo-component',
117
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -26,38 +22,48 @@ export class DemoComponent {
2622

2723
viewDate: Date = new Date();
2824

29-
events: MyEvent[] = [{
25+
events: CalendarEvent[] = [{
3026
title: 'Event 1',
31-
type: 'warning',
3227
color: colors.yellow,
33-
start: new Date()
28+
start: new Date(),
29+
meta: {
30+
type: 'warning'
31+
}
3432
}, {
3533
title: 'Event 2',
36-
type: 'warning',
3734
color: colors.yellow,
38-
start: new Date()
35+
start: new Date(),
36+
meta: {
37+
type: 'warning'
38+
}
3939
}, {
4040
title: 'Event 3',
41-
type: 'info',
4241
color: colors.blue,
43-
start: new Date()
42+
start: new Date(),
43+
meta: {
44+
type: 'info'
45+
}
4446
}, {
4547
title: 'Event 4',
46-
type: 'danger',
4748
color: colors.red,
48-
start: new Date()
49+
start: new Date(),
50+
meta: {
51+
type: 'danger'
52+
}
4953
}, {
5054
title: 'Event 5',
51-
type: 'danger',
5255
color: colors.red,
53-
start: new Date()
56+
start: new Date(),
57+
meta: {
58+
type: 'danger'
59+
}
5460
}];
5561

5662
groupEvents(cell: CalendarMonthViewDay): void {
5763
const groups: any = {};
58-
cell.events.forEach((event: MyEvent) => {
59-
groups[event.type] = groups[event.type] || [];
60-
groups[event.type].push(event);
64+
cell.events.forEach((event: CalendarEvent) => {
65+
groups[event.meta.type] = groups[event.meta.type] || [];
66+
groups[event.meta.type].push(event);
6167
});
6268
cell['eventGroups'] = Object.entries(groups);
6369
}

demos/demo-modules/month-view-badge-total/component.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ import { Component, ChangeDetectionStrategy } from '@angular/core';
22
import { CalendarEvent, CalendarMonthViewDay } from 'angular-calendar';
33
import { colors } from '../demo-utils/colors';
44

5-
interface MyEvent extends CalendarEvent {
6-
incrementsBadgeTotal?: boolean;
7-
}
8-
95
@Component({
106
selector: 'mwl-demo-component',
117
changeDetection: ChangeDetectionStrategy.OnPush,
@@ -15,20 +11,24 @@ export class DemoComponent {
1511

1612
viewDate: Date = new Date();
1713

18-
events: MyEvent[] = [{
14+
events: CalendarEvent[] = [{
1915
title: 'Increments badge total on the day cell',
2016
color: colors.yellow,
2117
start: new Date(),
22-
incrementsBadgeTotal: true
18+
meta: {
19+
incrementsBadgeTotal: true
20+
}
2321
}, {
2422
title: 'Does not increment the badge total on the day cell',
2523
color: colors.blue,
2624
start: new Date(),
27-
incrementsBadgeTotal: false
25+
meta: {
26+
incrementsBadgeTotal: false
27+
}
2828
}];
2929

3030
addBadgeTotal(day: CalendarMonthViewDay): void {
31-
day.badgeTotal = day.events.filter(event => event['incrementsBadgeTotal']).length;
31+
day.badgeTotal = day.events.filter(event => event.meta.incrementsBadgeTotal).length;
3232
}
3333

3434
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@
144144
"dependencies": {
145145
"angular-draggable-droppable": "^1.0.1",
146146
"angular-resizable-element": "^1.1.1",
147-
"calendar-utils": "0.0.49",
147+
"calendar-utils": "0.0.50",
148148
"date-fns": "^1.28.5",
149149
"positioning": "^1.0.4"
150150
}

yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -778,9 +778,9 @@ cachedir@^1.1.0:
778778
dependencies:
779779
os-homedir "^1.0.1"
780780

781-
782-
version "0.0.49"
783-
resolved "https://registry.yarnpkg.com/calendar-utils/-/calendar-utils-0.0.49.tgz#1bfa57a9de8ee843cb22ef205a8508987f5e266c"
781+
782+
version "0.0.50"
783+
resolved "https://registry.yarnpkg.com/calendar-utils/-/calendar-utils-0.0.50.tgz#0009cbee879fe58abe2fb5e006655700f3f3eb33"
784784

785785
786786
version "1.0.0"

0 commit comments

Comments
 (0)