12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- "use strict";
- exports.DateParser = void 0;
- var _constants = require("../constants.cjs");
- var _Parser = require("../Parser.cjs");
- var _utils = require("../utils.cjs");
- const DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
- const DAYS_IN_MONTH_LEAP_YEAR = [
- 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31,
- ];
- // Day of the month
- class DateParser extends _Parser.Parser {
- priority = 90;
- subPriority = 1;
- parse(dateString, token, match) {
- switch (token) {
- case "d":
- return (0, _utils.parseNumericPattern)(
- _constants.numericPatterns.date,
- dateString,
- );
- case "do":
- return match.ordinalNumber(dateString, { unit: "date" });
- default:
- return (0, _utils.parseNDigits)(token.length, dateString);
- }
- }
- validate(date, value) {
- const year = date.getFullYear();
- const isLeapYear = (0, _utils.isLeapYearIndex)(year);
- const month = date.getMonth();
- if (isLeapYear) {
- return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];
- } else {
- return value >= 1 && value <= DAYS_IN_MONTH[month];
- }
- }
- set(date, _flags, value) {
- date.setDate(value);
- date.setHours(0, 0, 0, 0);
- return date;
- }
- incompatibleTokens = [
- "Y",
- "R",
- "q",
- "Q",
- "w",
- "I",
- "D",
- "i",
- "e",
- "c",
- "t",
- "T",
- ];
- }
- exports.DateParser = DateParser;
|