{"ast":null,"code":"import { numericPatterns } from \"../constants.mjs\";\nimport { Parser } from \"../Parser.mjs\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.mjs\";\nexport class DayOfYearParser extends Parser {\n  priority = 90;\n  subpriority = 1;\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, {\n          unit: \"date\"\n        });\n      default:\n        return parseNDigits(token.length, dateString);\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  set(date, _flags, value) {\n    date.setMonth(0, value);\n    date.setHours(0, 0, 0, 0);\n    return date;\n  }\n  incompatibleTokens = [\"Y\", \"R\", \"q\", \"Q\", \"M\", \"L\", \"w\", \"I\", \"d\", \"E\", \"i\", \"e\", \"c\", \"t\", \"T\"];\n}","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}