{"version":3,"file":"date-Dqmv8Nr4.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","normalizeDate","tryParseDateFilter","trim"],"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]}