UNPKG

@navikt/ds-react

Version:

React components from the Norwegian Labour and Welfare Administration.

61 lines 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isMatch = isMatch; exports.isDateInRange = isDateInRange; const date_fns_1 = require("date-fns"); const Date_typeutils_1 = require("../Date.typeutils"); function isDateType(value) { return (0, date_fns_1.isDate)(value); } function isArrayOfDates(value) { return Array.isArray(value) && value.every(date_fns_1.isDate); } function isMatch(day, matchers) { return matchers.some((matcher) => { if (isDateType(matcher)) { return (0, date_fns_1.isSameMonth)(day, matcher); } if (isArrayOfDates(matcher)) { return matcher.some((matcherDay) => { return (0, date_fns_1.isSameMonth)(matcherDay, day); }); } if ((0, Date_typeutils_1.isDateRange)(matcher)) { return isDateInRange(day, matcher); } if ((0, Date_typeutils_1.isDateAfterType)(matcher)) { return ((0, date_fns_1.isSameMonth)(day, matcher.after) || (0, date_fns_1.differenceInCalendarDays)(day, matcher.after) > 0); } if ((0, Date_typeutils_1.isDateBeforeType)(matcher)) { return ((0, date_fns_1.isSameMonth)(day, matcher.before) || (0, date_fns_1.differenceInCalendarDays)(matcher.before, day) > 0); } if (typeof matcher === "function") { return matcher(day); } return false; }); } function isDateInRange(date, range) { let { from, to } = range; if (!from) { return false; } if (!to && (0, date_fns_1.isSameDay)(from, date)) { return true; } if (!to) { return false; } const isToBeforeFrom = (0, date_fns_1.differenceInCalendarDays)(to, from) < 0; if (to && isToBeforeFrom) { [from, to] = [to, from]; } if ((0, date_fns_1.isSameMonth)(from, date) || (0, date_fns_1.isSameMonth)(to, date)) { return true; } return ((0, date_fns_1.differenceInCalendarDays)(date, from) >= 0 && (0, date_fns_1.differenceInCalendarDays)(to, date) >= 0); } //# sourceMappingURL=is-match.js.map