@navikt/ds-react
Version:
React components from the Norwegian Labour and Welfare Administration.
47 lines • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMonthOptions = getMonthOptions;
exports.getYearOptions = getYearOptions;
const date_fns_1 = require("date-fns");
/** Return the months to show in the dropdown. */
function getMonthOptions({ displayMonth, navStart, navEnd, locale, }) {
const months = (0, date_fns_1.eachMonthOfInterval)({
start: (0, date_fns_1.startOfYear)(displayMonth),
end: (0, date_fns_1.endOfYear)(displayMonth),
});
const options = months.map((month) => {
const label = (0, date_fns_1.format)(month, "LLLL", {
locale,
}).replace(".", "");
const value = (0, date_fns_1.getMonth)(month);
const disabled = (navStart && month < (0, date_fns_1.startOfMonth)(navStart)) ||
(navEnd && month > (0, date_fns_1.startOfMonth)(navEnd)) ||
false;
return { value, label, disabled };
});
return options;
}
/** Return the years to show in the dropdown. */
function getYearOptions({ navStart, navEnd, locale, }) {
if (!navStart)
return undefined;
if (!navEnd)
return undefined;
const firstNavYear = (0, date_fns_1.startOfYear)(navStart);
const lastNavYear = (0, date_fns_1.endOfYear)(navEnd);
const years = [];
let year = firstNavYear;
while ((0, date_fns_1.isBefore)(year, lastNavYear) || (0, date_fns_1.isSameYear)(year, lastNavYear)) {
years.push(year);
year = (0, date_fns_1.addYears)(year, 1);
}
return years.map((_year) => {
const label = (0, date_fns_1.format)(_year, "yyyy", { locale });
return {
value: (0, date_fns_1.getYear)(_year),
label,
disabled: false,
};
});
}
//# sourceMappingURL=dropdown-options.js.map