ivt
Version:
Ivt Components Library
1 lines • 203 kB
Source Map (JSON)
{"version":3,"file":"date-bAe2UaSj.mjs","sources":["../../node_modules/date-fns/getDefaultOptions.js","../../node_modules/date-fns/getISODay.js","../../node_modules/date-fns/transpose.js","../../node_modules/date-fns/parse/_lib/Setter.js","../../node_modules/date-fns/parse/_lib/Parser.js","../../node_modules/date-fns/parse/_lib/parsers/EraParser.js","../../node_modules/date-fns/parse/_lib/constants.js","../../node_modules/date-fns/parse/_lib/utils.js","../../node_modules/date-fns/parse/_lib/parsers/YearParser.js","../../node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../../node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../../node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../../node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../../node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../../node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../../node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../../node_modules/date-fns/setWeek.js","../../node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../../node_modules/date-fns/setISOWeek.js","../../node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../../node_modules/date-fns/parse/_lib/parsers/DateParser.js","../../node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../../node_modules/date-fns/setDay.js","../../node_modules/date-fns/parse/_lib/parsers/DayParser.js","../../node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../../node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../../node_modules/date-fns/setISODay.js","../../node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../../node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../../node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../../node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../../node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../../node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../../node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../../node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../../node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../../node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../../node_modules/date-fns/parse/_lib/parsers.js","../../node_modules/date-fns/parse.js","../../node_modules/date-fns/parseISO.js","../../node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../node_modules/date-fns/locale/pt-BR/_lib/match.js","../../node_modules/date-fns/locale/pt-BR.js","../../src/utils/date.ts"],"sourcesContent":["import { getDefaultOptions as getInternalDefaultOptions } from \"./_lib/defaultOptions.js\";\n\n/**\n * @name getDefaultOptions\n * @category Common Helpers\n * @summary Get default options.\n * @pure false\n *\n * @description\n * Returns an object that contains defaults for\n * `options.locale`, `options.weekStartsOn` and `options.firstWeekContainsDate`\n * arguments for all functions.\n *\n * You can change these with [setDefaultOptions](https://date-fns.org/docs/setDefaultOptions).\n *\n * @returns The default options\n *\n * @example\n * const result = getDefaultOptions()\n * //=> {}\n *\n * @example\n * setDefaultOptions({ weekStarsOn: 1, firstWeekContainsDate: 4 })\n * const result = getDefaultOptions()\n * //=> { weekStarsOn: 1, firstWeekContainsDate: 4 }\n */\nexport function getDefaultOptions() {\n return Object.assign({}, getInternalDefaultOptions());\n}\n\n// Fallback for modularized imports:\nexport default getDefaultOptions;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getISODay} function options.\n */\n\n/**\n * @name getISODay\n * @category Weekday Helpers\n * @summary Get the day of the ISO week of the given date.\n *\n * @description\n * Get the day of the ISO week of the given date,\n * which is 7 for Sunday, 1 for Monday etc.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @param date - The given date\n * @param options - An object with options\n *\n * @returns The day of ISO week\n *\n * @example\n * // Which day of the ISO week is 26 February 2012?\n * const result = getISODay(new Date(2012, 1, 26))\n * //=> 7\n */\nexport function getISODay(date, options) {\n const day = toDate(date, options?.in).getDay();\n return day === 0 ? 7 : day;\n}\n\n// Fallback for modularized imports:\nexport default getISODay;\n","import { constructFrom } from \"./constructFrom.js\";\n\n/**\n * @name transpose\n * @category Generic Helpers\n * @summary Transpose the date to the given constructor.\n *\n * @description\n * The function transposes the date to the given constructor. It helps you\n * to transpose the date in the system time zone to say `UTCDate` or any other\n * date extension.\n *\n * @typeParam InputDate - The input `Date` type derived from the passed argument.\n * @typeParam ResultDate - The result `Date` type derived from the passed constructor.\n *\n * @param date - The date to use values from\n * @param constructor - The date constructor to use\n *\n * @returns Date transposed to the given constructor\n *\n * @example\n * // Create July 10, 2022 00:00 in locale time zone\n * const date = new Date(2022, 6, 10)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0800 (Singapore Standard Time)'\n *\n * @example\n * // Transpose the date to July 10, 2022 00:00 in UTC\n * transpose(date, UTCDate)\n * //=> 'Sun Jul 10 2022 00:00:00 GMT+0000 (Coordinated Universal Time)'\n */\nexport function transpose(date, constructor) {\n const date_ = isConstructor(constructor)\n ? new constructor(0)\n : constructFrom(constructor, 0);\n date_.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());\n date_.setHours(\n date.getHours(),\n date.getMinutes(),\n date.getSeconds(),\n date.getMilliseconds(),\n );\n return date_;\n}\n\nfunction isConstructor(constructor) {\n return (\n typeof constructor === \"function\" &&\n constructor.prototype?.constructor === constructor\n );\n}\n\n// Fallback for modularized imports:\nexport default transpose;\n","import { constructFrom } from \"../../constructFrom.js\";\nimport { transpose } from \"../../transpose.js\";\n\nconst TIMEZONE_UNIT_PRIORITY = 10;\n\nexport class Setter {\n subPriority = 0;\n\n validate(_utcDate, _options) {\n return true;\n }\n}\n\nexport class ValueSetter extends Setter {\n constructor(\n value,\n\n validateValue,\n\n setValue,\n\n priority,\n subPriority,\n ) {\n super();\n this.value = value;\n this.validateValue = validateValue;\n this.setValue = setValue;\n this.priority = priority;\n if (subPriority) {\n this.subPriority = subPriority;\n }\n }\n\n validate(date, options) {\n return this.validateValue(date, this.value, options);\n }\n\n set(date, flags, options) {\n return this.setValue(date, flags, this.value, options);\n }\n}\n\nexport class DateTimezoneSetter extends Setter {\n priority = TIMEZONE_UNIT_PRIORITY;\n subPriority = -1;\n\n constructor(context, reference) {\n super();\n this.context = context || ((date) => constructFrom(reference, date));\n }\n\n set(date, flags) {\n if (flags.timestampIsSet) return date;\n return constructFrom(date, transpose(date, this.context));\n }\n}\n","import { ValueSetter } from \"./Setter.js\";\n\nexport class Parser {\n run(dateString, token, match, options) {\n const result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n\n return {\n setter: new ValueSetter(\n result.value,\n this.validate,\n this.set,\n this.priority,\n this.subPriority,\n ),\n rest: result.rest,\n };\n }\n\n validate(_utcDate, _value, _options) {\n return true;\n }\n}\n","import { Parser } from \"../Parser.js\";\n\nexport class EraParser extends Parser {\n priority = 140;\n\n parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case \"G\":\n case \"GG\":\n case \"GGG\":\n return (\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n\n // A, B\n case \"GGGGG\":\n return match.era(dateString, { width: \"narrow\" });\n // Anno Domini, Before Christ\n case \"GGGG\":\n default:\n return (\n match.era(dateString, { width: \"wide\" }) ||\n match.era(dateString, { width: \"abbreviated\" }) ||\n match.era(dateString, { width: \"narrow\" })\n );\n }\n }\n\n set(date, flags, value) {\n flags.era = value;\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"R\", \"u\", \"t\", \"T\"];\n}\n","export const numericPatterns = {\n month: /^(1[0-2]|0?\\d)/, // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/, // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/, // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/, // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/, // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/, // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/, // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/, // 0 to 12\n minute: /^[0-5]?\\d/, // 0 to 59\n second: /^[0-5]?\\d/, // 0 to 59\n\n singleDigit: /^\\d/, // 0 to 9\n twoDigits: /^\\d{1,2}/, // 0 to 99\n threeDigits: /^\\d{1,3}/, // 0 to 999\n fourDigits: /^\\d{1,4}/, // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/, // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/, // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/, // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/, // 0 to 9999, -0 to -9999\n};\n\nexport const timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/,\n};\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n millisecondsInSecond,\n} from \"../../constants.js\";\n\nimport { numericPatterns } from \"./constants.js\";\n\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest,\n };\n}\n\nexport function parseNumericPattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseTimezonePattern(pattern, dateString) {\n const matchResult = dateString.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === \"Z\") {\n return {\n value: 0,\n rest: dateString.slice(1),\n };\n }\n\n const sign = matchResult[1] === \"+\" ? 1 : -1;\n const hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n const minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n const seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n\n return {\n value:\n sign *\n (hours * millisecondsInHour +\n minutes * millisecondsInMinute +\n seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length),\n };\n}\n\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\n\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp(\"^-?\\\\d{1,\" + n + \"}\"), dateString);\n }\n}\n\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case \"morning\":\n return 4;\n case \"evening\":\n return 17;\n case \"pm\":\n case \"noon\":\n case \"afternoon\":\n return 12;\n case \"am\":\n case \"midnight\":\n case \"night\":\n default:\n return 0;\n }\n}\n\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n const isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n const absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n\n let result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n const rangeEnd = absCurrentYear + 50;\n const rangeEndCentury = Math.trunc(rangeEnd / 100) * 100;\n const isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport class YearParser extends Parser {\n priority = 130;\n incompatibleTokens = [\"Y\", \"R\", \"u\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"yy\",\n });\n\n switch (token) {\n case \"y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value) {\n const currentYear = date.getFullYear();\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(normalizedTwoDigitYear, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { getWeekYear } from \"../../../getWeekYear.js\";\n\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n\n// Local week-numbering year\nexport class LocalWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token, match) {\n const valueCallback = (year) => ({\n year,\n isTwoDigitYear: token === \"YY\",\n });\n\n switch (token) {\n case \"Y\":\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case \"Yo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"year\",\n }),\n valueCallback,\n );\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n\n validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n\n set(date, flags, value, options) {\n const currentYear = getWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n const normalizedTwoDigitYear = normalizeTwoDigitYear(\n value.year,\n currentYear,\n );\n date.setFullYear(\n normalizedTwoDigitYear,\n 0,\n options.firstWeekContainsDate,\n );\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n const year =\n !(\"era\" in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setFullYear(year, 0, options.firstWeekContainsDate);\n date.setHours(0, 0, 0, 0);\n return startOfWeek(date, options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\n// ISO week-numbering year\nexport class ISOWeekYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"R\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n const firstWeekOfYear = constructFrom(date, 0);\n firstWeekOfYear.setFullYear(value, 0, 4);\n firstWeekOfYear.setHours(0, 0, 0, 0);\n return startOfISOWeek(firstWeekOfYear);\n }\n\n incompatibleTokens = [\n \"G\",\n \"y\",\n \"Y\",\n \"u\",\n \"Q\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigitsSigned } from \"../utils.js\";\n\nexport class ExtendedYearParser extends Parser {\n priority = 130;\n\n parse(dateString, token) {\n if (token === \"u\") {\n return parseNDigitsSigned(4, dateString);\n }\n\n return parseNDigitsSigned(token.length, dateString);\n }\n\n set(date, _flags, value) {\n date.setFullYear(value, 0, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"G\", \"y\", \"Y\", \"R\", \"w\", \"I\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class QuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"Q\":\n case \"QQ\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"Qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"QQQ\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"QQQQQ\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"QQQQ\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { parseNDigits } from \"../utils.js\";\n\nexport class StandAloneQuarterParser extends Parser {\n priority = 120;\n\n parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case \"q\":\n case \"qq\": // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case \"qo\":\n return match.ordinalNumber(dateString, { unit: \"quarter\" });\n // Q1, Q2, Q3, Q4\n case \"qqq\":\n return (\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case \"qqqqq\":\n return match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // 1st quarter, 2nd quarter, ...\n case \"qqqq\":\n default:\n return (\n match.quarter(dateString, {\n width: \"wide\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.quarter(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n\n set(date, _flags, value) {\n date.setMonth((value - 1) * 3, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MonthParser extends Parser {\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"L\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"M\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"MM\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Mo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"MMM\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // J, F, ..., D\n case \"MMMMM\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // January, February, ..., December\n case \"MMMM\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class StandAloneMonthParser extends Parser {\n priority = 110;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => value - 1;\n\n switch (token) {\n // 1, 2, ..., 12\n case \"L\":\n return mapValue(\n parseNumericPattern(numericPatterns.month, dateString),\n valueCallback,\n );\n // 01, 02, ..., 12\n case \"LL\":\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case \"Lo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"month\",\n }),\n valueCallback,\n );\n // Jan, Feb, ..., Dec\n case \"LLL\":\n return (\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // J, F, ..., D\n case \"LLLLL\":\n return match.month(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // January, February, ..., December\n case \"LLLL\":\n default:\n return (\n match.month(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.month(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.month(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n date.setMonth(value, 1);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getWeek } from \"./getWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setWeek} function options.\n */\n\n/**\n * @name setWeek\n * @category Week Helpers\n * @summary Set the local week to the given date.\n *\n * @description\n * Set the local week to the given date, saving the weekday number.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param week - The week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the local week set\n *\n * @example\n * // Set the 1st week to 2 January 2005 with default options:\n * const result = setWeek(new Date(2005, 0, 2), 1)\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // Set the 1st week to 2 January 2005,\n * // if Monday is the first day of the week,\n * // and the first week of the year always contains 4 January:\n * const result = setWeek(new Date(2005, 0, 2), 1, {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Sun Jan 4 2004 00:00:00\n */\nexport function setWeek(date, week, options) {\n const date_ = toDate(date, options?.in);\n const diff = getWeek(date_, options) - week;\n date_.setDate(date_.getDate() - diff * 7);\n return toDate(date_, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default setWeek;\n","import { setWeek } from \"../../../setWeek.js\";\nimport { startOfWeek } from \"../../../startOfWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// Local week of year\nexport class LocalWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"w\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"wo\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value, options) {\n return startOfWeek(setWeek(date, value, options), options);\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"i\",\n \"t\",\n \"T\",\n ];\n}\n","import { getISOWeek } from \"./getISOWeek.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISOWeek} function options.\n */\n\n/**\n * @name setISOWeek\n * @category ISO Week Helpers\n * @summary Set the ISO week to the given date.\n *\n * @description\n * Set the ISO week to the given date, saving the weekday number.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The `Date` type of the context function.\n *\n * @param date - The date to be changed\n * @param week - The ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the ISO week set\n *\n * @example\n * // Set the 53rd ISO week to 7 August 2004:\n * const result = setISOWeek(new Date(2004, 7, 7), 53)\n * //=> Sat Jan 01 2005 00:00:00\n */\nexport function setISOWeek(date, week, options) {\n const _date = toDate(date, options?.in);\n const diff = getISOWeek(_date, options) - week;\n _date.setDate(_date.getDate() - diff * 7);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setISOWeek;\n","import { setISOWeek } from \"../../../setISOWeek.js\";\nimport { startOfISOWeek } from \"../../../startOfISOWeek.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\n// ISO week of year\nexport class ISOWeekParser extends Parser {\n priority = 100;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"I\":\n return parseNumericPattern(numericPatterns.week, dateString);\n case \"Io\":\n return match.ordinalNumber(dateString, { unit: \"week\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n\n set(date, _flags, value) {\n return startOfISOWeek(setISOWeek(date, value));\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [\n 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,\n];\n\n// Day of the month\nexport class DateParser extends Parser {\n priority = 90;\n subPriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"d\":\n return parseNumericPattern(numericPatterns.date, dateString);\n case \"do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n const month = date.getMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n\n set(date, _flags, value) {\n date.setDate(value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"w\",\n \"I\",\n \"D\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport {\n isLeapYearIndex,\n parseNDigits,\n parseNumericPattern,\n} from \"../utils.js\";\n\nexport class DayOfYearParser extends Parser {\n priority = 90;\n\n subpriority = 1;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"D\":\n case \"DD\":\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case \"Do\":\n return match.ordinalNumber(dateString, { unit: \"date\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(date, value) {\n const year = date.getFullYear();\n const isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n\n set(date, _flags, value) {\n date.setMonth(0, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"Y\",\n \"R\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"I\",\n \"d\",\n \"E\",\n \"i\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { addDays } from \"./addDays.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setDay} function options.\n */\n\n/**\n * @name setDay\n * @category Weekday Helpers\n * @summary Set the day of the week to the given date.\n *\n * @description\n * Set the day of the week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the week of the new date\n * @param options - An object with options.\n *\n * @returns The new date with the day of the week set\n *\n * @example\n * // Set week day to Sunday, with the default weekStartsOn of Sunday:\n * const result = setDay(new Date(2014, 8, 1), 0)\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // Set week day to Sunday, with a weekStartsOn of Monday:\n * const result = setDay(new Date(2014, 8, 1), 0, { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setDay(date, day, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const date_ = toDate(date, options?.in);\n const currentDay = date_.getDay();\n\n const remainder = day % 7;\n const dayIndex = (remainder + 7) % 7;\n\n const delta = 7 - weekStartsOn;\n const diff =\n day < 0 || day > 6\n ? day - ((currentDay + delta) % 7)\n : ((dayIndex + delta) % 7) - ((currentDay + delta) % 7);\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setDay;\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\n// Day of week\nexport class DayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n switch (token) {\n // Tue\n case \"E\":\n case \"EE\":\n case \"EEE\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"EEEEE\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"EEEEEE\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"EEEE\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"D\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Local day of week\nexport class LocalDayParser extends Parser {\n priority = 90;\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"e\":\n case \"ee\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"eo\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"eee\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // T\n case \"eeeee\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n // Tu\n case \"eeeeee\":\n return (\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n\n // Tuesday\n case \"eeee\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"formatting\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"formatting\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"formatting\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { setDay } from \"../../../setDay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// Stand-alone local day of week\nexport class StandAloneLocalDayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match, options) {\n const valueCallback = (value) => {\n // We want here floor instead of trunc, so we get -7 for value 0 instead of 0\n const wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return ((value + options.weekStartsOn + 6) % 7) + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case \"c\":\n case \"cc\": // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case \"co\":\n return mapValue(\n match.ordinalNumber(dateString, {\n unit: \"day\",\n }),\n valueCallback,\n );\n // Tue\n case \"ccc\":\n return (\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // T\n case \"ccccc\":\n return match.day(dateString, {\n width: \"narrow\",\n context: \"standalone\",\n });\n // Tu\n case \"cccccc\":\n return (\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n\n // Tuesday\n case \"cccc\":\n default:\n return (\n match.day(dateString, { width: \"wide\", context: \"standalone\" }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"standalone\",\n }) ||\n match.day(dateString, { width: \"short\", context: \"standalone\" }) ||\n match.day(dateString, { width: \"narrow\", context: \"standalone\" })\n );\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n\n set(date, _flags, value, options) {\n date = setDay(date, value, options);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"R\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"I\",\n \"d\",\n \"D\",\n \"E\",\n \"i\",\n \"e\",\n \"t\",\n \"T\",\n ];\n}\n","import { addDays } from \"./addDays.js\";\nimport { getISODay } from \"./getISODay.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setISODay} function options.\n */\n\n/**\n * @name setISODay\n * @category Weekday Helpers\n * @summary Set the day of the ISO week to the given date.\n *\n * @description\n * Set the day of the ISO week to the given date.\n * ISO week starts with Monday.\n * 7 is the index of Sunday, 1 is the index of Monday, etc.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The date to be changed\n * @param day - The day of the ISO week of the new date\n * @param options - An object with options\n *\n * @returns The new date with the day of the ISO week set\n *\n * @example\n * // Set Sunday to 1 September 2014:\n * const result = setISODay(new Date(2014, 8, 1), 7)\n * //=> Sun Sep 07 2014 00:00:00\n */\nexport function setISODay(date, day, options) {\n const date_ = toDate(date, options?.in);\n const currentDay = getISODay(date_, options);\n const diff = day - currentDay;\n return addDays(date_, diff, options);\n}\n\n// Fallback for modularized imports:\nexport default setISODay;\n","import { setISODay } from \"../../../setISODay.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\n// ISO day of week\nexport class ISODayParser extends Parser {\n priority = 90;\n\n parse(dateString, token, match) {\n const valueCallback = (value) => {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n\n switch (token) {\n // 2\n case \"i\":\n case \"ii\": // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case \"io\":\n return match.ordinalNumber(dateString, { unit: \"day\" });\n // Tue\n case \"iii\":\n return mapValue(\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // T\n case \"iiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tu\n case \"iiiiii\":\n return mapValue(\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n // Tuesday\n case \"iiii\":\n default:\n return mapValue(\n match.day(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"short\",\n context: \"formatting\",\n }) ||\n match.day(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n }),\n valueCallback,\n );\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n\n set(date, _flags, value) {\n date = setISODay(date, value);\n date.setHours(0, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\n \"y\",\n \"Y\",\n \"u\",\n \"q\",\n \"Q\",\n \"M\",\n \"L\",\n \"w\",\n \"d\",\n \"D\",\n \"E\",\n \"e\",\n \"c\",\n \"t\",\n \"T\",\n ];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"a\":\n case \"aa\":\n case \"aaa\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"aaaaa\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"aaaa\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"b\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\nexport class AMPMMidnightParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"b\":\n case \"bb\":\n case \"bbb\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"bbbbb\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"bbbb\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"B\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { dayPeriodEnumToHours } from \"../utils.js\";\n\n// in the morning, in the afternoon, in the evening, at night\nexport class DayPeriodParser extends Parser {\n priority = 80;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"B\":\n case \"BB\":\n case \"BBB\":\n return (\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n\n case \"BBBBB\":\n return match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n });\n case \"BBBB\":\n default:\n return (\n match.dayPeriod(dateString, {\n width: \"wide\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"abbreviated\",\n context: \"formatting\",\n }) ||\n match.dayPeriod(dateString, {\n width: \"narrow\",\n context: \"formatting\",\n })\n );\n }\n }\n\n set(date, _flags, value) {\n date.setHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1to12Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"h\":\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case \"ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setHours(0, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"H\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0to23Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"H\":\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case \"Ho\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n\n set(date, _flags, value) {\n date.setHours(value, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"K\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour0To11Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"K\":\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case \"Ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n\n set(date, _flags, value) {\n const isPM = date.getHours() >= 12;\n if (isPM && value < 12) {\n date.setHours(value + 12, 0, 0, 0);\n } else {\n date.setHours(value, 0, 0, 0);\n }\n return date;\n }\n\n incompatibleTokens = [\"h\", \"H\", \"k\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class Hour1To24Parser extends Parser {\n priority = 70;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"k\":\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case \"ko\":\n return match.ordinalNumber(dateString, { unit: \"hour\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n\n set(date, _flags, value) {\n const hours = value <= 24 ? value % 24 : value;\n date.setHours(hours, 0, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"a\", \"b\", \"h\", \"H\", \"K\", \"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class MinuteParser extends Parser {\n priority = 60;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"m\":\n return parseNumericPattern(numericPatterns.minute, dateString);\n case \"mo\":\n return match.ordinalNumber(dateString, { unit: \"minute\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setMinutes(value, 0, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { numericPatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseNDigits, parseNumericPattern } from \"../utils.js\";\n\nexport class SecondParser extends Parser {\n priority = 50;\n\n parse(dateString, token, match) {\n switch (token) {\n case \"s\":\n return parseNumericPattern(numericPatterns.second, dateString);\n case \"so\":\n return match.ordinalNumber(dateString, { unit: \"second\" });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n\n validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n\n set(date, _flags, value) {\n date.setSeconds(value, 0);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { Parser } from \"../Parser.js\";\n\nimport { mapValue, parseNDigits } from \"../utils.js\";\n\nexport class FractionOfSecondParser extends Parser {\n priority = 30;\n\n parse(dateString, token) {\n const valueCallback = (value) =>\n Math.trunc(value * Math.pow(10, -token.length + 3));\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n\n set(date, _flags, value) {\n date.setMilliseconds(value);\n return date;\n }\n\n incompatibleTokens = [\"t\", \"T\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601. +00:00 is `'Z'`)\nexport class ISOTimezoneWithZParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"X\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"XX\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"XXXX\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"XXXXX\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"XXX\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"x\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"../../../_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseTimezonePattern } from \"../utils.js\";\n\n// Timezone (ISO-8601)\nexport class ISOTimezoneParser extends Parser {\n priority = 10;\n\n parse(dateString, token) {\n switch (token) {\n case \"x\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalMinutes,\n dateString,\n );\n case \"xx\":\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case \"xxxx\":\n return parseTimezonePattern(\n timezonePatterns.basicOptionalSeconds,\n dateString,\n );\n case \"xxxxx\":\n return parseTimezonePattern(\n timezonePatterns.extendedOptionalSeconds,\n dateString,\n );\n case \"xxx\":\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n\n set(date, flags, value) {\n if (flags.timestampIsSet) return date;\n return constructFrom(\n date,\n date.getTime() - getTimezoneOffsetInMilliseconds(date) - value,\n );\n }\n\n incompatibleTokens = [\"t\", \"T\", \"X\"];\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampSecondsParser extends Parser {\n priority = 40;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value * 1000), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { constructFrom } from \"../../../constructFrom.js\";\nimport { Parser } from \"../Parser.js\";\n\nimport { parseAnyDigitsSigned } from \"../utils.js\";\n\nexport class TimestampMillisecondsParser extends Parser {\n priority = 20;\n\n parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n\n set(date, _flags, value) {\n return [constructFrom(date, value), { timestampIsSet: true }];\n }\n\n incompatibleTokens = \"*\";\n}\n","import { EraParser } from \"./parsers/EraParser.js\";\nimport { YearParser } from \"./parsers/YearParser.js\";\nimport { LocalWeekYearParser } from \"./parsers/LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./parsers/ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./parsers/ExtendedYearParser.js\";\nimport { QuarterParser } from \"./parsers/QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./parsers/StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./parsers/MonthParser.js\";\nimport { StandAloneMonthParser } from \"./parsers/StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./parsers/LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./parsers/ISOWeekParser.js\";\nimport { DateParser } from \"./parsers/DateParser.js\";\nimport { DayOfYearParser } from \"./parsers/DayOfYearParser.js\";\nimport { DayParser } from \"./parsers/DayParser.js\";\nimport { LocalDayParser } from \"./parsers/LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./parsers/StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./parsers/ISODayParser.js\";\nimport { AMPMParser } from \"./parsers/AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./parsers/AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./parsers/DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./parsers/Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./parsers/Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./parsers/Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./parsers/Hour1To24Parser.js\";\nimport { MinuteParser } from \"./parsers/MinuteParser.js\";\nimport { SecondParser } from \"./parsers/SecondParser.js\";\nimport { FractionOfSecondParser } from \"./parsers/FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./parsers/ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./parsers/ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./parsers/TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./parsers/TimestampMillisecondsParser.js\";\n\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport const parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser(),\n};\n","import { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { longFormatters } from \"./_lib/format/longFormatters.js\";\nimport {\n isProtectedDayOfYearToken,\n isProtectedWeekYearToken,\n warnOrThrowProtectedError,\n} from \"./_lib/protectedTokens.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getDefaultOptions } from \"./getDefaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\nimport { DateTimezoneSetter } from \"./parse/_lib/Setter.js\";\nimport { parsers } from \"./parse/_lib/parsers.js\";\n\n// Rexports of internal for libraries to use.\n// See: https://github.com/date-fns/date-fns/issues/3638#issuecomment-1877082874\nexport { longFormatters, parsers };\n\n/**\n * The {@link parse} function options.\n */\n\n// This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nconst formattingTokensRegExp =\n /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nconst longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\n\nconst escapedStringRegExp = /^'([^]*?)'?$/;\nconst doubleQuoteRegExp = /''/g;\n\nconst notWhitespaceRegExp = /\\S/;\nconst unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangeably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear](https://date-fns.org/docs/setISOWeekYear)\n * and [setWeekYear](https://date-fns.org/docs/setWeekYear)).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param dateStr - The string to parse\n * @param formatStr - The string of tokens\n * @param referenceDate - defines values missing from the parsed dateString\n * @param options - An object with options.\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @returns The parsed date\n *\n * @throws `options.locale` must contain `match` property\n * @throws use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport function parse(dateStr, formatStr, referenceDate, options) {\n const invalidDate = () => constructFrom(options?.in || referenceDate, NaN);\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n if (!formatStr)\n return dateStr ? invalidDate() : toDate(referenceDate, options?.in);\n\n const subFnOptions = {\n firstWeekContainsDate,\n weekStartsOn,\n locale,\n };\n\n // If timezone isn't specified, it will try to use the context or\n // the reference date and fallback to the system time zone.\n const setters = [new DateTimezoneSetter(options?.in, referenceDate)];\n\n const tokens = formatStr\n .match(longFormattingTokensRegExp)\n .map((substring) => {\n const firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n const longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n })\n .join(\"\")\n .match(formattingTokensRegExp);\n\n const usedTokens = [];\n\n for (let token of tokens) {\n if (\n !options?.useAdditionalWeekYearTokens &&\n isProtectedWeekYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n if (\n !options?.useAdditionalDayOfYearTokens &&\n isProtectedDayOfYearToken(token)\n ) {\n warnOrThrowProtectedError(token, formatStr, dateStr);\n }\n\n const firstCharacter = token[0];\n const parser = parsers[firstCharacter];\n if (parser) {\n const { incompatibleTokens } = parser;\n if (Array.isArray(incompatibleTokens)) {\n const incompatibleToken = usedTokens.find(\n (usedToken) =>\n incompatibleTokens.includes(usedToken.token) ||\n usedToken.token === firstCharacter,\n );\n if (incompatibleToken) {\n throw new RangeError(\n `The format string mustn't contain \\`${incompatibleToken.fullToken}\\` and \\`${token}\\` at the same time`,\n );\n }\n } else if (parser.incompatibleTokens === \"*\" && usedTokens.length > 0) {\n throw new RangeError(\n `The format string mustn't contain \\`${token}\\` and any other token at the same time`,\n );\n }\n\n usedTokens.push({ token: firstCharacter, fullToken: token });\n\n const parseResult = parser.run(\n dateStr,\n token,\n locale.match,\n subFnOptions,\n );\n\n if (!parseResult) {\n return invalidDate();\n }\n\n setters.push(parseResult.setter);\n\n dateStr = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError(\n \"Format string contains an unescaped latin alphabet character `\" +\n firstCharacter +\n \"`\",\n );\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateStr.indexOf(token) === 0) {\n dateStr = dateStr.slice(token.length);\n } else {\n return invalidDate();\n }\n }\n }\n\n // Check if the remaining input contains something other than whitespace\n if (dateStr.length > 0 && notWhitespaceRegExp.test(dateStr)) {\n return invalidDate();\n }\n\n const uniquePrioritySetters = setters\n .map((setter) => setter.priority)\n .sort((a, b) => b - a)\n .filter((priority, index, array) => array.indexOf(priority) === index)\n .map((priority) =>\n setters\n .filter((setter) => setter.priority === priority)\n .sort((a, b) => b.subPriority - a.subPriority),\n )\n .map((setterArray) => setterArray[0]);\n\n let date = toDate(referenceDate, options?.in);\n\n if (isNaN(+date)) return invalidDate();\n\n const flags = {};\n for (const setter of uniquePrioritySetters) {\n if (!setter.validate(date, subFnOptions)) {\n return invalidDate();\n }\n\n const result = setter.set(date, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n date = result[0];\n Object.assign(flags, result[1]);\n // Result is date\n } else {\n date = result;\n }\n }\n\n return date;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}\n\n// Fallback for modularized imports:\nexport default parse;\n","import {\n millisecondsInHour,\n millisecondsInMinute,\n} from \"./constants.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n const invalidDate = () => constructFrom(options?.in, NaN);\n\n const additionalDigits = options?.additionalDigits ?? 2;\n const dateStrings = splitDateString(argument);\n\n let date;\n if (dateStrings.date) {\n const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(+date)) return invalidDate();\n\n const timestamp = +date;\n let time = 0;\n let offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n if (isNaN(time)) return invalidDate();\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n if (isNaN(offset)) return invalidDate();\n } else {\n const tmpDate = new Date(timestamp + time);\n const result = toDate(0, options?.in);\n result.setFullYear(\n tmpDate.getUTCFullYear(),\n tmpDate.getUTCMonth(),\n tmpDate.getUTCDate(),\n );\n result.setHours(\n tmpDate.getUTCHours(),\n tmpDate.getUTCMinutes(),\n tmpDate.getUTCSeconds(),\n tmpDate.getUTCMilliseconds(),\n );\n return result;\n }\n\n return toDate(timestamp + time + offset, options?.in);\n}\n\nconst patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n const dateStrings = {};\n const array = dateString.split(patterns.dateTimeDelimiter);\n let timeString;\n\n // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(\n dateStrings.date.length,\n dateString.length,\n );\n }\n }\n\n if (timeString) {\n const token = patterns.timezone.exec(timeString);\n if (token) {\n dateStrings.time = timeString.replace(token[1], \"\");\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n const regex = new RegExp(\n \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n (4 + additionalDigits) +\n \"})|(\\\\d{2}|[+-]\\\\d{\" +\n (2 + additionalDigits) +\n \"})$)\",\n );\n\n const captures = dateString.match(regex);\n // Invalid ISO-formatted year\n if (!captures) return { year: NaN, restDateString: \"\" };\n\n const year = captures[1] ? parseInt(captures[1]) : null;\n const century = captures[2] ? parseInt(captures[2]) : null;\n\n // either year or century is null, not both\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length),\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n\n const captures = dateString.match(dateRegex);\n // Invalid ISO-formatted string\n if (!captures) return new Date(NaN);\n\n const isWeekDate = !!captures[4];\n const dayOfYear = parseDateUnit(captures[1]);\n const month = parseDateUnit(captures[2]) - 1;\n const day = parseDateUnit(captures[3]);\n const week = parseDateUnit(captures[4]);\n const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n const date = new Date(0);\n if (\n !validateDate(year, month, day) ||\n !validateDayOfYearDate(year, dayOfYear)\n ) {\n return new Date(NaN);\n }\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n const captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n const hours = parseTimeUnit(captures[1]);\n const minutes = parseTimeUnit(captures[2]);\n const seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return (\n hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n );\n}\n\nfunction parseTimeUnit(value) {\n return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === \"Z\") return 0;\n\n const captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n\n const sign = captures[1] === \"+\" ? -1 : 1;\n const hours = parseInt(captures[2]);\n const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n const date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n const fourthOfJanuaryDay = date.getUTCDay() || 7;\n const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n return (\n month >= 0 &&\n month <= 11 &&\n date >= 1 &&\n date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return (\n seconds >= 0 &&\n seconds < 60 &&\n minutes >= 0 &&\n minutes < 60 &&\n hours >= 0 &&\n hours < 25\n );\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","import { format, isValid, parse, parseISO } from \"date-fns\";\nimport { ptBR } from \"date-fns/locale\";\n\nexport function tryParseDate(value?: string | Date): Date | undefined {\n\tif (!value) return undefined;\n\tif (value instanceof Date) return isValid(value) ? value : undefined;\n\n\t// 1) tenta ISO\n\tconst iso = parseISO(value);\n\tif (isValid(iso)) return iso;\n\n\t// 2) tenta dd/MM/yyyy\n\tconst dmy = parse(value, \"dd/MM/yyyy\", new Date());\n\tif (isValid(dmy)) return dmy;\n\n\t// 3) tenta d/M/yyyy (por segurança, cobre 4/9/2025 sem zero à esquerda)\n\tconst dmyLoose = parse(value, \"d/M/yyyy\", new Date());\n\tif (isValid(dmyLoose)) return dmyLoose;\n\n\treturn undefined;\n}\n\nexport const formatDateToBrazilian = (date: Date | string, dateFormat = \"dd/MM/yyyy\"): string => {\n\ttry {\n\t\tlet parsedDate: Date;\n\n\t\tif (date instanceof Date) {\n\t\t\tparsedDate = date;\n\t\t} else if (typeof date === \"string\") {\n\t\t\tif (date.match(/^\\d{2}\\/\\d{2}\\/\\d{4}$/)) {\n\t\t\t\treturn date;\n\t\t\t}\n\n\t\t\tparsedDate = parseDateIgnoringTimezone(date);\n\t\t} else {\n\t\t\treturn String(date);\n\t\t}\n\n\t\tif (!isValid(parsedDate)) {\n\t\t\treturn String(date);\n\t\t}\n\n\t\treturn format(parsedDate, dateFormat, { locale: ptBR });\n\t} catch (error) {\n\t\tconsole.error(\"Erro ao formatar data:\", date, error);\n\t\treturn String(date);\n\t}\n};\n\nexport function formatDateForApi(dateInput: Date | string | null | undefined): string | null {\n\tif (!dateInput) {\n\t\treturn null;\n\t}\n\n\tlet parsedDate: Date;\n\n\tif (dateInput instanceof Date) {\n\t\tparsedDate = dateInput;\n\t} else if (typeof dateInput === \"string\") {\n\t\tconst parsedFromDDMMYYYY = parse(dateInput, \"dd/MM/yyyy\", new Date());\n\n\t\tif (isValid(parsedFromDDMMYYYY)) {\n\t\t\tparsedDate = parsedFromDDMMYYYY;\n\t\t} else {\n\t\t\tconst parsedFromISO = parseISO(dateInput);\n\t\t\tif (isValid(parsedFromISO)) {\n\t\t\t\tparsedDate = parsedFromISO;\n\t\t\t} else {\n\t\t\t\tconsole.error(\"String de data inválida fornecida:\", dateInput);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tconsole.error(\"Tipo de data inesperado fornecido:\", dateInput);\n\t\treturn null;\n\t}\n\n\tif (!isValid(parsedDate)) {\n\t\tconsole.error(\"Objeto Date inválido após parsing:\", parsedDate);\n\t\treturn null;\n\t}\n\n\treturn format(parsedDate, \"yyyy-MM-dd\");\n}\n\nexport function parseDateIgnoringTimezone(dateString: string): Date {\n\tconst parts = dateString.split(\"T\")[0].split(\"-\");\n\tif (parts.length === 3) {\n\t\tconst year = Number.parseInt(parts[0], 10);\n\t\tconst month = Number.parseInt(parts[1], 10) - 1;\n\t\tconst day = Number.parseInt(parts[2], 10);\n\t\treturn new Date(year, month, day);\n\t}\n\treturn parseISO(dateString);\n}\n\nexport function parseFieldDate(value: string | Date): Date {\n\tif (value instanceof Date) return value;\n\n\tif (typeof value === \"string\") {\n\t\tconst parsedFromDDMMYYYY = parse(value, \"dd/MM/yyyy\", new Date());\n\t\tif (isValid(parsedFromDDMMYYYY)) return parsedFromDDMMYYYY;\n\n\t\tconst parsedFromISO = parseISO(value);\n\t\tif (isValid(parsedFromISO)) return parsedFromISO;\n\t}\n\n\treturn new Date(value);\n}\n\nexport function getYesterday(): Date {\n\tconst d = new Date();\n\td.setDate(d.getDate() - 1);\n\treturn d;\n}\n\n/**\n * Normaliza uma Date para meia-noite local (removendo hora).\n */\nexport function normalizeDate(d: Date) {\n\treturn new Date(d.getFullYear(), d.getMonth(), d.getDate());\n}\n\n/**\n * Tenta parsear várias possibilidades que você pode receber:\n * - \"16/02/2015\"\n * - \"6/2/2015\"\n * - \"02/2015\" (interpreta como 1º do mês)\n * - \"2015-02-16\"\n * - ISO string\n */\nexport function tryParseDateFilter(input?: string | Date | null): Date | null {\n\tif (!input) return null;\n\tif (input instanceof Date) {\n\t\treturn isValid(input) ? normalizeDate(input) : null;\n\t}\n\n\tconst s = String(input).trim();\n\tif (!s) return null;\n\n\tlet d = parse(s, \"dd/MM/yyyy\", new Date());\n\tif (isValid(d)) return normalizeDate(d);\n\n\td = parse(s, \"d/M/yyyy\", new Date());\n\tif (isValid(d)) return normalizeDate(d);\n\n\td = parse(s, \"MM/yyyy\", new Date());\n\tif (isValid(d)) return normalizeDate(d);\n\n\td = parse(s, \"yyyy-MM-dd\", new Date());\n\tif (isValid(d)) return normalizeDate(d);\n\n\td = new Date(s);\n\tif (!Number.isNaN(d.getTime())) return normalizeDate(d);\n\n\treturn null;\n}\n"],"names":["getDefaultOptions","Object","assign","getInternalDefaultOptions","getISODay","date","options","day","toDate","in","getDay","transpose","constructor","date_","isConstructor","constructFrom","setFullYear","getFullYear","getMonth","getDate","setHours","getHours","getMinutes","getSeconds","getMilliseconds","prototype","TIMEZONE_UNIT_PRIORITY","Setter","validate","_utcDate","_options","subPriority","ValueSetter","validateValue","value","set","flags","setValue","priority","DateTimezoneSetter","timestampIsSet","context","reference","Parser","run","dateString","token","match","result","parse","setter","rest","_value","EraParser","era","width","incompatibleTokens","numericPatterns","month","dayOfYear","week","hour23h","hour24h","hour11h","hour12h","minute","second","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","mapValue","parseFnResult","mapFn","parseNumericPattern","pattern","matchResult","parseInt","slice","length","parseTimezonePattern","sign","hours","minutes","seconds","millisecondsInHour","millisecondsInMinute","millisecondsInSecond","parseAnyDigitsSigned","parseNDigits","n","RegExp","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","Math","trunc","isPreviousCentury","isLeapYearIndex","year","YearParser","valueCallback","isTwoDigitYear","ordinalNumber","unit","_date","normalizedTwoDigitYear","LocalWeekYearParser","getWeekYear","firstWeekContainsDate","startOfWeek","ISOWeekYearParser","_flags","firstWeekOfYear","startOfISOWeek","ExtendedYearParser","QuarterParser","quarter","setMonth","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","diff","getWeek","setDate","LocalWeekParser","setISOWeek","getISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","subpriority","setDay","defaultOptions","weekStartsOn","locale","currentDay","remainder","dayIndex","delta","addDays","DayParser","LocalDayParser","wholeWeekDays","floor","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setMinutes","SecondParser","setSeconds","FractionOfSecondParser","pow","setMilliseconds","ISOTimezoneWithZParser","getTime","getTimezoneOffsetInMilliseconds","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","G","y","Y","R","u","Q","q","M","L","w","I","d","D","E","e","c","i","a","b","B","h","H","K","k","m","s","S","X","x","t","T","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","dateStr","formatStr","referenceDate","invalidDate","NaN","defaultLocale","subFnOptions","setters","tokens","map","substring","firstCharacter","longFormatters","longFormatter","formatLong","join","usedTokens","isProtectedWeekYearToken","warnOrThrowProtectedError","isProtectedDayOfYearToken","parser","Array","isArray","incompatibleToken","find","usedToken","includes","RangeError","fullToken","push","parseResult","cleanEscapedString","indexOf","test","uniquePrioritySetters","sort","filter","index","array","setterArray","isNaN","input","replace","parseISO","argument","additionalDigits","dateStrings","splitDateString","parseYearResult","parseYear","parseDate","restDateString","timestamp","time","offset","parseTime","timezone","parseTimezone","tmpDate","Date","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","split","timeString","substr","exec","regex","captures","century","isWeekDate","parseDateUnit","dayOfWeek","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","setUTCFullYear","max","parseTimeUnit","validateTime","parseFloat","timezoneString","validateTimezone","isoWeekYear","fourthOfJanuaryDay","getUTCDay","setUTCDate","daysInMonths","_year","_hours","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","count","tokenValue","String","addSuffix","comparison","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","buildFormatLongFn","formats","defaultWidth","dateTime","formatRelativeLocale","lastWeek","weekday","last","yesterday","today","tomorrow","nextWeek","formatRelative","_baseDate","format","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","dirtyNumber","number","Number","localize","buildLocalizeFn","values","argumentCallback","formattingValues","defaultFormattingWidth","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","buildMatchPatternFn","matchPattern","parsePattern","buildMatchFn","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","ptBR","code","tryParseDate","undefined","isValid","iso","dmy","dmyLoose","formatDateToBrazilian","dateFormat","parsedDate","parseDateIgnoringTimezone","error","console","parts","parseFieldDate","parsedFromDDMMYYYY","parsedFromISO"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]}