Files
ipwa/src/app/util.ts
T
slasherss 06316e1715 Squashed 'frontend/' content from commit 63375d1
git-subtree-dir: frontend
git-subtree-split: 63375d198b2160a3a5fc4427efe888f6c37bd92f
2026-04-27 22:43:56 +02:00

30 lines
901 B
TypeScript

import { DateFilterFn } from "@angular/material/datepicker"
import { DateTime } from "luxon"
export const weekendFilter: DateFilterFn<DateTime | null> = (
date: DateTime | null
): boolean => {
const day = date?.weekday
return day !== 6 && day !== 7
}
export function filterLook(filter: DateFilterFn<DateTime | null>, ab: "ahead" | "behind" = "ahead", date: DateTime = DateTime.now(), maxSearchDays = 365): DateTime | null {
let currentDate = date
switch (ab) {
case "ahead":
for (let i = 0; i < maxSearchDays; i++) {
if (filter(currentDate)) return currentDate
currentDate = currentDate.plus({day: 1})
}
return null;
case "behind":
for (let i = 0; i < maxSearchDays; i++) {
if (filter(currentDate)) return currentDate
currentDate = currentDate.minus({day: 1})
}
return null;
default:
return null;
}
}