Skip to content

Commit 39b659e

Browse files
committed
feat(getWeekView): add way of setting minimum event height
References mattlewis92/angular-calendar#1192
1 parent a8729a0 commit 39b659e

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

src/calendar-utils.ts

+12
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,7 @@ export interface GetWeekViewArgs {
444444
segmentHeight: number;
445445
viewStart?: Date;
446446
viewEnd?: Date;
447+
minimumEventHeight?: number
447448
}
448449

449450
export function getDifferenceInDaysWithExclusions(
@@ -568,6 +569,7 @@ interface GetWeekViewHourGridArgs extends GetDayViewHourGridArgs {
568569
segmentHeight: number;
569570
viewStart: Date;
570571
viewEnd: Date;
572+
minimumEventHeight: number
571573
}
572574

573575
function getWeekViewHourGrid(
@@ -584,6 +586,7 @@ function getWeekViewHourGrid(
584586
segmentHeight,
585587
viewStart,
586588
viewEnd,
589+
minimumEventHeight
587590
}: GetWeekViewHourGridArgs
588591
): WeekViewHourColumn[] {
589592
const dayViewHourGrid = getDayViewHourGrid(dateAdapter, {
@@ -611,6 +614,7 @@ function getWeekViewHourGrid(
611614
dayEnd,
612615
segmentHeight,
613616
eventWidth: 1,
617+
minimumEventHeight
614618
});
615619

616620
const hours = dayViewHourGrid.map((hour) => {
@@ -703,6 +707,7 @@ export function getWeekView(
703707
dayEnd,
704708
weekendDays,
705709
segmentHeight,
710+
minimumEventHeight,
706711
viewStart = dateAdapter.startOfWeek(viewDate, { weekStartsOn }),
707712
viewEnd = dateAdapter.endOfWeek(viewDate, { weekStartsOn }),
708713
}: GetWeekViewArgs
@@ -755,6 +760,7 @@ export function getWeekView(
755760
segmentHeight,
756761
viewStart,
757762
viewEnd,
763+
minimumEventHeight
758764
}),
759765
};
760766
}
@@ -892,6 +898,7 @@ export interface GetDayViewArgs {
892898
};
893899
eventWidth: number;
894900
segmentHeight: number;
901+
minimumEventHeight: number
895902
}
896903

897904
function getOverLappingWeekViewEvents(
@@ -926,6 +933,7 @@ function getDayView(
926933
dayEnd,
927934
eventWidth,
928935
segmentHeight,
936+
minimumEventHeight
929937
}: GetDayViewArgs
930938
): DayView {
931939
const {
@@ -984,6 +992,10 @@ function getDayView(
984992
height *= hourHeightModifier;
985993
}
986994

995+
if (minimumEventHeight && height < minimumEventHeight) {
996+
height = minimumEventHeight;
997+
}
998+
987999
const bottom: number = top + height;
9881000

9891001
const overlappingPreviousEvents = getOverLappingWeekViewEvents(

test/calendar-utils-utc.spec.ts

+26
Original file line numberDiff line numberDiff line change
@@ -2910,6 +2910,32 @@ adapters.forEach(({ name, adapter: dateAdapter }) => {
29102910
});
29112911
expect(result.hourColumns[0].events[0].event).toEqual(events[0]);
29122912
});
2913+
2914+
it('should set a minimum event height', () => {
2915+
const result = getWeekView(dateAdapter, {
2916+
events: [{
2917+
start: moment().startOf('week').toDate(),
2918+
end: moment().startOf('week').add(5, 'minutes').toDate(),
2919+
title: '',
2920+
allDay: false,
2921+
},],
2922+
viewDate: new Date(),
2923+
weekStartsOn: DAYS_OF_WEEK.SUNDAY,
2924+
precision: 'days',
2925+
hourSegments: 2,
2926+
dayStart: {
2927+
hour: 0,
2928+
minute: 0,
2929+
},
2930+
dayEnd: {
2931+
hour: 23,
2932+
minute: 59,
2933+
},
2934+
segmentHeight: 30,
2935+
minimumEventHeight: 30
2936+
});
2937+
expect(result.hourColumns[0].events[0].height).toEqual(30);
2938+
});
29132939
});
29142940

29152941
describe('getMonthView', () => {

0 commit comments

Comments
 (0)