Skip to content

Commit 44347e2

Browse files
committed
feat(day-view): expose events in beforeViewRender output
Closes #573
1 parent 40b02cb commit 44347e2

File tree

2 files changed

+50
-10
lines changed

2 files changed

+50
-10
lines changed

src/modules/day/calendar-day-view.component.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ import { DateAdapter } from '../../date-adapters/date-adapter';
3131
export interface CalendarDayViewBeforeRenderEvent {
3232
body: {
3333
hourGrid: DayViewHour[];
34+
events: DayViewEvent[];
35+
allDayEvents: CalendarEvent[];
3436
};
3537
period: ViewPeriod;
3638
}
@@ -512,7 +514,9 @@ export class CalendarDayViewComponent implements OnChanges, OnInit, OnDestroy {
512514
if (this.hours && this.view) {
513515
this.beforeViewRender.emit({
514516
body: {
515-
hourGrid: this.hours
517+
hourGrid: this.hours,
518+
events: this.view.events,
519+
allDayEvents: this.view.allDayEvents
516520
},
517521
period: this.view.period
518522
});

test/calendar-day-view.component.spec.ts

+45-9
Original file line numberDiff line numberDiff line change
@@ -1087,15 +1087,51 @@ describe('CalendarDayViewComponent component', () => {
10871087
fixture.componentInstance.ngOnInit();
10881088
fixture.componentInstance.viewDate = new Date('2016-06-27');
10891089
fixture.componentInstance.ngOnChanges({ viewDate: {} });
1090-
expect(
1091-
beforeViewRenderCalled.getCall(0).args[0].period.start instanceof Date
1092-
).to.equal(true);
1093-
expect(
1094-
beforeViewRenderCalled.getCall(0).args[0].period.end instanceof Date
1095-
).to.equal(true);
1096-
expect(
1097-
Array.isArray(beforeViewRenderCalled.getCall(0).args[0].period.events)
1098-
).to.equal(true);
1090+
const { period } = beforeViewRenderCalled.getCall(0).args[0];
1091+
expect(period.start instanceof Date).to.equal(true);
1092+
expect(period.end instanceof Date).to.equal(true);
1093+
expect(Array.isArray(period.events)).to.equal(true);
10991094
fixture.destroy();
11001095
});
1096+
1097+
it('should expose the events on the beforeViewRender output', () => {
1098+
const fixture: ComponentFixture<
1099+
CalendarDayViewComponent
1100+
> = TestBed.createComponent(CalendarDayViewComponent);
1101+
const beforeViewRenderCalled = sinon.spy();
1102+
fixture.componentInstance.beforeViewRender
1103+
.pipe(take(1))
1104+
.subscribe(beforeViewRenderCalled);
1105+
fixture.componentInstance.ngOnInit();
1106+
fixture.componentInstance.events = [
1107+
{
1108+
start: new Date('2016-05-30'),
1109+
end: new Date('2016-06-02'),
1110+
title: 'foo'
1111+
},
1112+
{
1113+
start: new Date('2016-05-30'),
1114+
end: new Date('2016-06-02'),
1115+
title: 'bar',
1116+
allDay: true
1117+
}
1118+
];
1119+
fixture.componentInstance.viewDate = new Date('2016-06-01');
1120+
fixture.componentInstance.ngOnChanges({ viewDate: {} });
1121+
const { events, allDayEvents } = beforeViewRenderCalled.getCall(
1122+
0
1123+
).args[0].body;
1124+
expect(events).to.deep.equal([
1125+
{
1126+
event: fixture.componentInstance.events[0],
1127+
endsAfterDay: true,
1128+
startsBeforeDay: true,
1129+
height: 1439,
1130+
top: 0,
1131+
left: 0,
1132+
width: 150
1133+
}
1134+
]);
1135+
expect(allDayEvents).to.deep.equal([fixture.componentInstance.events[1]]);
1136+
});
11011137
});

0 commit comments

Comments
 (0)