MonthParser.js 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.MonthParser = void 0;
  7. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
  8. var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
  9. var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
  10. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  11. var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
  12. var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
  13. var _utils = require("../utils.js");
  14. var _Parser2 = require("../Parser.js");
  15. var _constants = require("../constants.js");
  16. var MonthParser = /*#__PURE__*/function (_Parser) {
  17. (0, _inherits2.default)(MonthParser, _Parser);
  18. var _super = (0, _createSuper2.default)(MonthParser);
  19. function MonthParser() {
  20. var _this;
  21. (0, _classCallCheck2.default)(this, MonthParser);
  22. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  23. args[_key] = arguments[_key];
  24. }
  25. _this = _super.call.apply(_super, [this].concat(args));
  26. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "incompatibleTokens", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);
  27. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "priority", 110);
  28. return _this;
  29. }
  30. (0, _createClass2.default)(MonthParser, [{
  31. key: "parse",
  32. value: function parse(dateString, token, match) {
  33. var valueCallback = function valueCallback(value) {
  34. return value - 1;
  35. };
  36. switch (token) {
  37. // 1, 2, ..., 12
  38. case 'M':
  39. return (0, _utils.mapValue)((0, _utils.parseNumericPattern)(_constants.numericPatterns.month, dateString), valueCallback);
  40. // 01, 02, ..., 12
  41. case 'MM':
  42. return (0, _utils.mapValue)((0, _utils.parseNDigits)(2, dateString), valueCallback);
  43. // 1st, 2nd, ..., 12th
  44. case 'Mo':
  45. return (0, _utils.mapValue)(match.ordinalNumber(dateString, {
  46. unit: 'month'
  47. }), valueCallback);
  48. // Jan, Feb, ..., Dec
  49. case 'MMM':
  50. return match.month(dateString, {
  51. width: 'abbreviated',
  52. context: 'formatting'
  53. }) || match.month(dateString, {
  54. width: 'narrow',
  55. context: 'formatting'
  56. });
  57. // J, F, ..., D
  58. case 'MMMMM':
  59. return match.month(dateString, {
  60. width: 'narrow',
  61. context: 'formatting'
  62. });
  63. // January, February, ..., December
  64. case 'MMMM':
  65. default:
  66. return match.month(dateString, {
  67. width: 'wide',
  68. context: 'formatting'
  69. }) || match.month(dateString, {
  70. width: 'abbreviated',
  71. context: 'formatting'
  72. }) || match.month(dateString, {
  73. width: 'narrow',
  74. context: 'formatting'
  75. });
  76. }
  77. }
  78. }, {
  79. key: "validate",
  80. value: function validate(_date, value) {
  81. return value >= 0 && value <= 11;
  82. }
  83. }, {
  84. key: "set",
  85. value: function set(date, _flags, value) {
  86. date.setUTCMonth(value, 1);
  87. date.setUTCHours(0, 0, 0, 0);
  88. return date;
  89. }
  90. }]);
  91. return MonthParser;
  92. }(_Parser2.Parser);
  93. exports.MonthParser = MonthParser;