StandAloneQuarterParser.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.StandAloneQuarterParser = 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 _Parser2 = require("../Parser.js");
  14. var _utils = require("../utils.js");
  15. var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {
  16. (0, _inherits2.default)(StandAloneQuarterParser, _Parser);
  17. var _super = (0, _createSuper2.default)(StandAloneQuarterParser);
  18. function StandAloneQuarterParser() {
  19. var _this;
  20. (0, _classCallCheck2.default)(this, StandAloneQuarterParser);
  21. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  22. args[_key] = arguments[_key];
  23. }
  24. _this = _super.call.apply(_super, [this].concat(args));
  25. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "priority", 120);
  26. (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "incompatibleTokens", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);
  27. return _this;
  28. }
  29. (0, _createClass2.default)(StandAloneQuarterParser, [{
  30. key: "parse",
  31. value: function parse(dateString, token, match) {
  32. switch (token) {
  33. // 1, 2, 3, 4
  34. case 'q':
  35. case 'qq':
  36. // 01, 02, 03, 04
  37. return (0, _utils.parseNDigits)(token.length, dateString);
  38. // 1st, 2nd, 3rd, 4th
  39. case 'qo':
  40. return match.ordinalNumber(dateString, {
  41. unit: 'quarter'
  42. });
  43. // Q1, Q2, Q3, Q4
  44. case 'qqq':
  45. return match.quarter(dateString, {
  46. width: 'abbreviated',
  47. context: 'standalone'
  48. }) || match.quarter(dateString, {
  49. width: 'narrow',
  50. context: 'standalone'
  51. });
  52. // 1, 2, 3, 4 (narrow quarter; could be not numerical)
  53. case 'qqqqq':
  54. return match.quarter(dateString, {
  55. width: 'narrow',
  56. context: 'standalone'
  57. });
  58. // 1st quarter, 2nd quarter, ...
  59. case 'qqqq':
  60. default:
  61. return match.quarter(dateString, {
  62. width: 'wide',
  63. context: 'standalone'
  64. }) || match.quarter(dateString, {
  65. width: 'abbreviated',
  66. context: 'standalone'
  67. }) || match.quarter(dateString, {
  68. width: 'narrow',
  69. context: 'standalone'
  70. });
  71. }
  72. }
  73. }, {
  74. key: "validate",
  75. value: function validate(_date, value) {
  76. return value >= 1 && value <= 4;
  77. }
  78. }, {
  79. key: "set",
  80. value: function set(date, _flags, value) {
  81. date.setUTCMonth((value - 1) * 3, 1);
  82. date.setUTCHours(0, 0, 0, 0);
  83. return date;
  84. }
  85. }]);
  86. return StandAloneQuarterParser;
  87. }(_Parser2.Parser);
  88. exports.StandAloneQuarterParser = StandAloneQuarterParser;