Files
klz-cables.com/.pnpm-store/v10/files/97/3e19d5c1e8a3b264091e733e3164a5246970a8fba7101460a8855564743570bd26c40727da8f7a45df7086a9e9c06cd1d3e569bc783ef1a6dc05b2031ea7ee
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

117 lines
2.5 KiB
Plaintext

import { setISODay } from "../../../setISODay.mjs";
import { Parser } from "../Parser.mjs";
import { mapValue, parseNDigits } from "../utils.mjs";
// ISO day of week
export class ISODayParser extends Parser {
priority = 90;
parse(dateString, token, match) {
const valueCallback = (value) => {
if (value === 0) {
return 7;
}
return value;
};
switch (token) {
// 2
case "i":
case "ii": // 02
return parseNDigits(token.length, dateString);
// 2nd
case "io":
return match.ordinalNumber(dateString, { unit: "day" });
// Tue
case "iii":
return mapValue(
match.day(dateString, {
width: "abbreviated",
context: "formatting",
}) ||
match.day(dateString, {
width: "short",
context: "formatting",
}) ||
match.day(dateString, {
width: "narrow",
context: "formatting",
}),
valueCallback,
);
// T
case "iiiii":
return mapValue(
match.day(dateString, {
width: "narrow",
context: "formatting",
}),
valueCallback,
);
// Tu
case "iiiiii":
return mapValue(
match.day(dateString, {
width: "short",
context: "formatting",
}) ||
match.day(dateString, {
width: "narrow",
context: "formatting",
}),
valueCallback,
);
// Tuesday
case "iiii":
default:
return mapValue(
match.day(dateString, {
width: "wide",
context: "formatting",
}) ||
match.day(dateString, {
width: "abbreviated",
context: "formatting",
}) ||
match.day(dateString, {
width: "short",
context: "formatting",
}) ||
match.day(dateString, {
width: "narrow",
context: "formatting",
}),
valueCallback,
);
}
}
validate(_date, value) {
return value >= 1 && value <= 7;
}
set(date, _flags, value) {
date = setISODay(date, value);
date.setHours(0, 0, 0, 0);
return date;
}
incompatibleTokens = [
"y",
"Y",
"u",
"q",
"Q",
"M",
"L",
"w",
"d",
"D",
"E",
"e",
"c",
"t",
"T",
];
}