Skip to content

Commit 40a1d31

Browse files
committed
Merge branch 'master' into 0.29.0
2 parents ed7e728 + 2ad0c77 commit 40a1d31

File tree

7 files changed

+43
-29
lines changed

7 files changed

+43
-29
lines changed

projects/angular-calendar/tsconfig.lib.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"angularCompilerOptions": {
1717
"skipTemplateCodegen": true,
1818
"strictMetadataEmit": true,
19-
"fullTemplateTypeCheck": true,
19+
"strictTemplates": true,
2020
"strictInjectionParameters": true,
2121
"trace": true
2222
},

projects/demos/app/demo-modules/day-view-scheduler/day-view-scheduler.component.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<div class="cal-day-headers" role="row">
33
<div
44
class="cal-header"
5-
*ngFor="let user of users; trackBy: trackById"
5+
*ngFor="let user of users; trackBy: trackByUserId"
66
tabindex="0"
77
role="columnheader"
88
>

projects/demos/app/demo-modules/day-view-scheduler/day-view-scheduler.component.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import {
2323
WeekViewTimeEvent,
2424
EventColor,
2525
CalendarEvent,
26+
WeekViewAllDayEventRow,
27+
WeekViewAllDayEvent,
2628
} from 'calendar-utils';
2729
import { DragEndEvent, DragMoveEvent } from 'angular-draggable-droppable';
2830

@@ -102,6 +104,8 @@ export class DayViewSchedulerComponent extends CalendarWeekViewComponent
102104
super(cdr, utils, locale, dateAdapter, element);
103105
}
104106

107+
trackByUserId = (index: number, row: User) => row.id;
108+
105109
ngOnChanges(changes: SimpleChanges): void {
106110
super.ngOnChanges(changes);
107111

@@ -145,7 +149,7 @@ export class DayViewSchedulerComponent extends CalendarWeekViewComponent
145149
}
146150

147151
dragEnded(
148-
weekEvent: WeekViewTimeEvent,
152+
weekEvent: WeekViewAllDayEvent | WeekViewTimeEvent,
149153
dragEndEvent: DragEndEvent,
150154
dayWidth: number,
151155
useY = false
@@ -195,7 +199,10 @@ export class DayViewSchedulerComponent extends CalendarWeekViewComponent
195199
});
196200
}
197201

198-
private getDraggedUserColumn(dayEvent: WeekViewTimeEvent, xPixels: number) {
202+
private getDraggedUserColumn(
203+
dayEvent: WeekViewTimeEvent | WeekViewAllDayEvent,
204+
xPixels: number
205+
) {
199206
const columnsMoved = Math.round(xPixels / this.dayColumnWidth);
200207
const currentColumnIndex = this.view.users.findIndex(
201208
(user) => user === dayEvent.event.meta.user

projects/demos/app/demo-modules/demo-utils/calendar-header.component.ts

+11-9
Original file line numberDiff line numberDiff line change
@@ -42,22 +42,22 @@ import { CalendarView } from 'angular-calendar';
4242
<div class="btn-group">
4343
<div
4444
class="btn btn-primary"
45-
(click)="viewChange.emit('month')"
46-
[class.active]="view === 'month'"
45+
(click)="viewChange.emit(CalendarView.Month)"
46+
[class.active]="view === CalendarView.Month"
4747
>
4848
Month
4949
</div>
5050
<div
5151
class="btn btn-primary"
52-
(click)="viewChange.emit('week')"
53-
[class.active]="view === 'week'"
52+
(click)="viewChange.emit(CalendarView.Week)"
53+
[class.active]="view === CalendarView.Week"
5454
>
5555
Week
5656
</div>
5757
<div
5858
class="btn btn-primary"
59-
(click)="viewChange.emit('day')"
60-
[class.active]="view === 'day'"
59+
(click)="viewChange.emit(CalendarView.Day)"
60+
[class.active]="view === CalendarView.Day"
6161
>
6262
Day
6363
</div>
@@ -68,13 +68,15 @@ import { CalendarView } from 'angular-calendar';
6868
`,
6969
})
7070
export class CalendarHeaderComponent {
71-
@Input() view: CalendarView | 'month' | 'week' | 'day';
71+
@Input() view: CalendarView;
7272

7373
@Input() viewDate: Date;
7474

7575
@Input() locale: string = 'en';
7676

77-
@Output() viewChange: EventEmitter<string> = new EventEmitter();
77+
@Output() viewChange = new EventEmitter<CalendarView>();
7878

79-
@Output() viewDateChange: EventEmitter<Date> = new EventEmitter();
79+
@Output() viewDateChange = new EventEmitter<Date>();
80+
81+
CalendarView = CalendarView;
8082
}

projects/demos/app/demo-modules/selectable-period/component.ts

+16-13
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ import {
77
CalendarEvent,
88
CalendarMonthViewDay,
99
CalendarView,
10+
CalendarWeekViewBeforeRenderEvent,
1011
} from 'angular-calendar';
11-
import { WeekViewHour } from 'calendar-utils';
12+
import { WeekViewHour, WeekViewHourColumn } from 'calendar-utils';
1213

1314
@Component({
1415
selector: 'mwl-demo-component',
@@ -34,7 +35,7 @@ export class DemoComponent {
3435

3536
selectedDayViewDate: Date;
3637

37-
dayView: WeekViewHour[];
38+
hourColumns: WeekViewHourColumn[];
3839

3940
events: CalendarEvent[] = [];
4041

@@ -73,21 +74,23 @@ export class DemoComponent {
7374
this.addSelectedDayViewClass();
7475
}
7576

76-
beforeDayViewRender(dayView: WeekViewHour[]) {
77-
this.dayView = dayView;
77+
beforeWeekOrDayViewRender(event: CalendarWeekViewBeforeRenderEvent) {
78+
this.hourColumns = event.hourColumns;
7879
this.addSelectedDayViewClass();
7980
}
8081

8182
private addSelectedDayViewClass() {
82-
this.dayView.forEach((hourSegment) => {
83-
hourSegment.segments.forEach((segment) => {
84-
delete segment.cssClass;
85-
if (
86-
this.selectedDayViewDate &&
87-
segment.date.getTime() === this.selectedDayViewDate.getTime()
88-
) {
89-
segment.cssClass = 'cal-day-selected';
90-
}
83+
this.hourColumns.forEach((column) => {
84+
column.hours.forEach((hourSegment) => {
85+
hourSegment.segments.forEach((segment) => {
86+
delete segment.cssClass;
87+
if (
88+
this.selectedDayViewDate &&
89+
segment.date.getTime() === this.selectedDayViewDate.getTime()
90+
) {
91+
segment.cssClass = 'cal-day-selected';
92+
}
93+
});
9194
});
9295
});
9396
}

projects/demos/app/demo-modules/selectable-period/template.html

+4-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
</mwl-demo-utils-calendar-header>
33

44
<div class="alert alert-info">
5-
Click on a month view day or a day view hour to select it
5+
Click on a month view day or a time on the week or day view to select it
66
</div>
77

88
<div [ngSwitch]="view">
@@ -18,13 +18,15 @@
1818
*ngSwitchCase="'week'"
1919
[viewDate]="viewDate"
2020
[events]="events"
21+
(beforeViewRender)="beforeWeekOrDayViewRender($event)"
22+
(hourSegmentClicked)="hourSegmentClicked($event.date)"
2123
>
2224
</mwl-calendar-week-view>
2325
<mwl-calendar-day-view
2426
*ngSwitchCase="'day'"
2527
[viewDate]="viewDate"
2628
[events]="events"
27-
(beforeViewRender)="beforeDayViewRender($event.body.hourGrid)"
29+
(beforeViewRender)="beforeWeekOrDayViewRender($event)"
2830
(hourSegmentClicked)="hourSegmentClicked($event.date)"
2931
>
3032
</mwl-calendar-day-view>

projects/demos/tsconfig.app.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"trace": true,
99
"strictInjectionParameters": true,
1010
"preserveWhitespaces": true,
11-
"fullTemplateTypeCheck": true
11+
"strictTemplates": true
1212
},
1313
"files": [
1414
"main.ts",

0 commit comments

Comments
 (0)