ISOTimezoneParser.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 { timezonePatterns } from "../constants.js";
  9. import { parseTimezonePattern } from "../utils.js"; // Timezone (ISO-8601)
  10. export var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {
  11. _inherits(ISOTimezoneParser, _Parser);
  12. var _super = _createSuper(ISOTimezoneParser);
  13. function ISOTimezoneParser() {
  14. var _this;
  15. _classCallCheck(this, ISOTimezoneParser);
  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", 10);
  21. _defineProperty(_assertThisInitialized(_this), "incompatibleTokens", ['t', 'T', 'X']);
  22. return _this;
  23. }
  24. _createClass(ISOTimezoneParser, [{
  25. key: "parse",
  26. value: function parse(dateString, token) {
  27. switch (token) {
  28. case 'x':
  29. return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);
  30. case 'xx':
  31. return parseTimezonePattern(timezonePatterns.basic, dateString);
  32. case 'xxxx':
  33. return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);
  34. case 'xxxxx':
  35. return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);
  36. case 'xxx':
  37. default:
  38. return parseTimezonePattern(timezonePatterns.extended, dateString);
  39. }
  40. }
  41. }, {
  42. key: "set",
  43. value: function set(date, flags, value) {
  44. if (flags.timestampIsSet) {
  45. return date;
  46. }
  47. return new Date(date.getTime() - value);
  48. }
  49. }]);
  50. return ISOTimezoneParser;
  51. }(Parser);