123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- "use strict";
- exports.LocalDayParser = void 0;
- var _index = require("../../../setDay.cjs");
- var _Parser = require("../Parser.cjs");
- var _utils = require("../utils.cjs");
- // Local day of week
- class LocalDayParser extends _Parser.Parser {
- priority = 90;
- parse(dateString, token, match, options) {
- const valueCallback = (value) => {
- // We want here floor instead of trunc, so we get -7 for value 0 instead of 0
- const wholeWeekDays = Math.floor((value - 1) / 7) * 7;
- return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;
- };
- switch (token) {
- // 3
- case "e":
- case "ee": // 03
- return (0, _utils.mapValue)(
- (0, _utils.parseNDigits)(token.length, dateString),
- valueCallback,
- );
- // 3rd
- case "eo":
- return (0, _utils.mapValue)(
- match.ordinalNumber(dateString, {
- unit: "day",
- }),
- valueCallback,
- );
- // Tue
- case "eee":
- return (
- match.day(dateString, {
- width: "abbreviated",
- context: "formatting",
- }) ||
- match.day(dateString, { width: "short", context: "formatting" }) ||
- match.day(dateString, { width: "narrow", context: "formatting" })
- );
- // T
- case "eeeee":
- return match.day(dateString, {
- width: "narrow",
- context: "formatting",
- });
- // Tu
- case "eeeeee":
- return (
- match.day(dateString, { width: "short", context: "formatting" }) ||
- match.day(dateString, { width: "narrow", context: "formatting" })
- );
- // Tuesday
- case "eeee":
- default:
- return (
- 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" })
- );
- }
- }
- validate(_date, value) {
- return value >= 0 && value <= 6;
- }
- set(date, _flags, value, options) {
- date = (0, _index.setDay)(date, value, options);
- date.setHours(0, 0, 0, 0);
- return date;
- }
- incompatibleTokens = [
- "y",
- "R",
- "u",
- "q",
- "Q",
- "M",
- "L",
- "I",
- "d",
- "D",
- "E",
- "i",
- "c",
- "t",
- "T",
- ];
- }
- exports.LocalDayParser = LocalDayParser;
|