"use strict"; exports.LocalDayParser = void 0; var _index = require("../../../setDay.js"); var _Parser = require("../Parser.js"); var _utils = require("../utils.js"); // 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;