DayOfYearParser.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
  2. import _createClass from "@babel/runtime/helpers/esm/createClass";
  3. import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
  4. import _inherits from "@babel/runtime/helpers/esm/inherits";
  5. import _createSuper from "@babel/runtime/helpers/esm/createSuper";
  6. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  7. import { Parser } from "../Parser.js";
  8. import { numericPatterns } from "../constants.js";
  9. import { parseNumericPattern, parseNDigits, isLeapYearIndex } from "../utils.js";
  10. export var DayOfYearParser = /*#__PURE__*/function (_Parser) {
  11. _inherits(DayOfYearParser, _Parser);
  12. var _super = _createSuper(DayOfYearParser);
  13. function DayOfYearParser() {
  14. var _this;
  15. _classCallCheck(this, DayOfYearParser);
  16. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  17. args[_key] = arguments[_key];
  18. }
  19. _this = _super.call.apply(_super, [this].concat(args));
  20. _defineProperty(_assertThisInitialized(_this), "priority", 90);
  21. _defineProperty(_assertThisInitialized(_this), "subpriority", 1);
  22. _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);
  23. return _this;
  24. }
  25. _createClass(DayOfYearParser, [{
  26. key: "parse",
  27. value: function parse(dateString, token, match) {
  28. switch (token) {
  29. case 'D':
  30. case 'DD':
  31. return parseNumericPattern(numericPatterns.dayOfYear, dateString);
  32. case 'Do':
  33. return match.ordinalNumber(dateString, {
  34. unit: 'date'
  35. });
  36. default:
  37. return parseNDigits(token.length, dateString);
  38. }
  39. }
  40. }, {
  41. key: "validate",
  42. value: function validate(date, value) {
  43. var year = date.getUTCFullYear();
  44. var isLeapYear = isLeapYearIndex(year);
  45. if (isLeapYear) {
  46. return value >= 1 && value <= 366;
  47. } else {
  48. return value >= 1 && value <= 365;
  49. }
  50. }
  51. }, {
  52. key: "set",
  53. value: function set(date, _flags, value) {
  54. date.setUTCMonth(0, value);
  55. date.setUTCHours(0, 0, 0, 0);
  56. return date;
  57. }
  58. }]);
  59. return DayOfYearParser;
  60. }(Parser);