You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					1521 lines
				
				43 KiB
			
		
		
			
		
	
	
					1521 lines
				
				43 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, "__esModule", {
							 | 
						||
| 
								 | 
							
								  value: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								exports.default = void 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _index = _interopRequireDefault(require("../../../_lib/getUTCWeekYear/index.js"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _index2 = _interopRequireDefault(require("../../../_lib/setUTCDay/index.js"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _index3 = _interopRequireDefault(require("../../../_lib/setUTCISODay/index.js"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _index4 = _interopRequireDefault(require("../../../_lib/setUTCISOWeek/index.js"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _index5 = _interopRequireDefault(require("../../../_lib/setUTCWeek/index.js"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _index6 = _interopRequireDefault(require("../../../_lib/startOfUTCISOWeek/index.js"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var _index7 = _interopRequireDefault(require("../../../_lib/startOfUTCWeek/index.js"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var MILLISECONDS_IN_HOUR = 3600000;
							 | 
						||
| 
								 | 
							
								var MILLISECONDS_IN_MINUTE = 60000;
							 | 
						||
| 
								 | 
							
								var MILLISECONDS_IN_SECOND = 1000;
							 | 
						||
| 
								 | 
							
								var numericPatterns = {
							 | 
						||
| 
								 | 
							
								  month: /^(1[0-2]|0?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 12
							 | 
						||
| 
								 | 
							
								  date: /^(3[0-1]|[0-2]?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 31
							 | 
						||
| 
								 | 
							
								  dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 366
							 | 
						||
| 
								 | 
							
								  week: /^(5[0-3]|[0-4]?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 53
							 | 
						||
| 
								 | 
							
								  hour23h: /^(2[0-3]|[0-1]?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 23
							 | 
						||
| 
								 | 
							
								  hour24h: /^(2[0-4]|[0-1]?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 24
							 | 
						||
| 
								 | 
							
								  hour11h: /^(1[0-1]|0?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 11
							 | 
						||
| 
								 | 
							
								  hour12h: /^(1[0-2]|0?\d)/,
							 | 
						||
| 
								 | 
							
								  // 0 to 12
							 | 
						||
| 
								 | 
							
								  minute: /^[0-5]?\d/,
							 | 
						||
| 
								 | 
							
								  // 0 to 59
							 | 
						||
| 
								 | 
							
								  second: /^[0-5]?\d/,
							 | 
						||
| 
								 | 
							
								  // 0 to 59
							 | 
						||
| 
								 | 
							
								  singleDigit: /^\d/,
							 | 
						||
| 
								 | 
							
								  // 0 to 9
							 | 
						||
| 
								 | 
							
								  twoDigits: /^\d{1,2}/,
							 | 
						||
| 
								 | 
							
								  // 0 to 99
							 | 
						||
| 
								 | 
							
								  threeDigits: /^\d{1,3}/,
							 | 
						||
| 
								 | 
							
								  // 0 to 999
							 | 
						||
| 
								 | 
							
								  fourDigits: /^\d{1,4}/,
							 | 
						||
| 
								 | 
							
								  // 0 to 9999
							 | 
						||
| 
								 | 
							
								  anyDigitsSigned: /^-?\d+/,
							 | 
						||
| 
								 | 
							
								  singleDigitSigned: /^-?\d/,
							 | 
						||
| 
								 | 
							
								  // 0 to 9, -0 to -9
							 | 
						||
| 
								 | 
							
								  twoDigitsSigned: /^-?\d{1,2}/,
							 | 
						||
| 
								 | 
							
								  // 0 to 99, -0 to -99
							 | 
						||
| 
								 | 
							
								  threeDigitsSigned: /^-?\d{1,3}/,
							 | 
						||
| 
								 | 
							
								  // 0 to 999, -0 to -999
							 | 
						||
| 
								 | 
							
								  fourDigitsSigned: /^-?\d{1,4}/ // 0 to 9999, -0 to -9999
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var timezonePatterns = {
							 | 
						||
| 
								 | 
							
								  basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/,
							 | 
						||
| 
								 | 
							
								  basic: /^([+-])(\d{2})(\d{2})|Z/,
							 | 
						||
| 
								 | 
							
								  basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,
							 | 
						||
| 
								 | 
							
								  extended: /^([+-])(\d{2}):(\d{2})|Z/,
							 | 
						||
| 
								 | 
							
								  extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parseNumericPattern(pattern, string, valueCallback) {
							 | 
						||
| 
								 | 
							
								  var matchResult = string.match(pattern);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!matchResult) {
							 | 
						||
| 
								 | 
							
								    return null;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var value = parseInt(matchResult[0], 10);
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    value: valueCallback ? valueCallback(value) : value,
							 | 
						||
| 
								 | 
							
								    rest: string.slice(matchResult[0].length)
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parseTimezonePattern(pattern, string) {
							 | 
						||
| 
								 | 
							
								  var matchResult = string.match(pattern);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (!matchResult) {
							 | 
						||
| 
								 | 
							
								    return null;
							 | 
						||
| 
								 | 
							
								  } // Input is 'Z'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (matchResult[0] === 'Z') {
							 | 
						||
| 
								 | 
							
								    return {
							 | 
						||
| 
								 | 
							
								      value: 0,
							 | 
						||
| 
								 | 
							
								      rest: string.slice(1)
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var sign = matchResult[1] === '+' ? 1 : -1;
							 | 
						||
| 
								 | 
							
								  var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;
							 | 
						||
| 
								 | 
							
								  var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;
							 | 
						||
| 
								 | 
							
								  var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),
							 | 
						||
| 
								 | 
							
								    rest: string.slice(matchResult[0].length)
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parseAnyDigitsSigned(string, valueCallback) {
							 | 
						||
| 
								 | 
							
								  return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parseNDigits(n, string, valueCallback) {
							 | 
						||
| 
								 | 
							
								  switch (n) {
							 | 
						||
| 
								 | 
							
								    case 1:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 2:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 3:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 4:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    default:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(new RegExp('^\\d{1,' + n + '}'), string, valueCallback);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function parseNDigitsSigned(n, string, valueCallback) {
							 | 
						||
| 
								 | 
							
								  switch (n) {
							 | 
						||
| 
								 | 
							
								    case 1:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 2:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 3:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 4:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    default:
							 | 
						||
| 
								 | 
							
								      return parseNumericPattern(new RegExp('^-?\\d{1,' + n + '}'), string, valueCallback);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function dayPeriodEnumToHours(enumValue) {
							 | 
						||
| 
								 | 
							
								  switch (enumValue) {
							 | 
						||
| 
								 | 
							
								    case 'morning':
							 | 
						||
| 
								 | 
							
								      return 4;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 'evening':
							 | 
						||
| 
								 | 
							
								      return 17;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 'pm':
							 | 
						||
| 
								 | 
							
								    case 'noon':
							 | 
						||
| 
								 | 
							
								    case 'afternoon':
							 | 
						||
| 
								 | 
							
								      return 12;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    case 'am':
							 | 
						||
| 
								 | 
							
								    case 'midnight':
							 | 
						||
| 
								 | 
							
								    case 'night':
							 | 
						||
| 
								 | 
							
								    default:
							 | 
						||
| 
								 | 
							
								      return 0;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function normalizeTwoDigitYear(twoDigitYear, currentYear) {
							 | 
						||
| 
								 | 
							
								  var isCommonEra = currentYear > 0; // Absolute number of the current year:
							 | 
						||
| 
								 | 
							
								  // 1 -> 1 AC
							 | 
						||
| 
								 | 
							
								  // 0 -> 1 BC
							 | 
						||
| 
								 | 
							
								  // -1 -> 2 BC
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;
							 | 
						||
| 
								 | 
							
								  var result;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  if (absCurrentYear <= 50) {
							 | 
						||
| 
								 | 
							
								    result = twoDigitYear || 100;
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    var rangeEnd = absCurrentYear + 50;
							 | 
						||
| 
								 | 
							
								    var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;
							 | 
						||
| 
								 | 
							
								    var isPreviousCentury = twoDigitYear >= rangeEnd % 100;
							 | 
						||
| 
								 | 
							
								    result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return isCommonEra ? result : 1 - result;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
							 | 
						||
| 
								 | 
							
								var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function isLeapYearIndex(year) {
							 | 
						||
| 
								 | 
							
								  return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 * |     | Unit                           |     | Unit                           |
							 | 
						||
| 
								 | 
							
								 * |-----|--------------------------------|-----|--------------------------------|
							 | 
						||
| 
								 | 
							
								 * |  a  | AM, PM                         |  A* | Milliseconds in day            |
							 | 
						||
| 
								 | 
							
								 * |  b  | AM, PM, noon, midnight         |  B  | Flexible day period            |
							 | 
						||
| 
								 | 
							
								 * |  c  | Stand-alone local day of week  |  C* | Localized hour w/ day period   |
							 | 
						||
| 
								 | 
							
								 * |  d  | Day of month                   |  D  | Day of year                    |
							 | 
						||
| 
								 | 
							
								 * |  e  | Local day of week              |  E  | Day of week                    |
							 | 
						||
| 
								 | 
							
								 * |  f  |                                |  F* | Day of week in month           |
							 | 
						||
| 
								 | 
							
								 * |  g* | Modified Julian day            |  G  | Era                            |
							 | 
						||
| 
								 | 
							
								 * |  h  | Hour [1-12]                    |  H  | Hour [0-23]                    |
							 | 
						||
| 
								 | 
							
								 * |  i! | ISO day of week                |  I! | ISO week of year               |
							 | 
						||
| 
								 | 
							
								 * |  j* | Localized hour w/ day period   |  J* | Localized hour w/o day period  |
							 | 
						||
| 
								 | 
							
								 * |  k  | Hour [1-24]                    |  K  | Hour [0-11]                    |
							 | 
						||
| 
								 | 
							
								 * |  l* | (deprecated)                   |  L  | Stand-alone month              |
							 | 
						||
| 
								 | 
							
								 * |  m  | Minute                         |  M  | Month                          |
							 | 
						||
| 
								 | 
							
								 * |  n  |                                |  N  |                                |
							 | 
						||
| 
								 | 
							
								 * |  o! | Ordinal number modifier        |  O* | Timezone (GMT)                 |
							 | 
						||
| 
								 | 
							
								 * |  p  |                                |  P  |                                |
							 | 
						||
| 
								 | 
							
								 * |  q  | Stand-alone quarter            |  Q  | Quarter                        |
							 | 
						||
| 
								 | 
							
								 * |  r* | Related Gregorian year         |  R! | ISO week-numbering year        |
							 | 
						||
| 
								 | 
							
								 * |  s  | Second                         |  S  | Fraction of second             |
							 | 
						||
| 
								 | 
							
								 * |  t! | Seconds timestamp              |  T! | Milliseconds timestamp         |
							 | 
						||
| 
								 | 
							
								 * |  u  | Extended year                  |  U* | Cyclic year                    |
							 | 
						||
| 
								 | 
							
								 * |  v* | Timezone (generic non-locat.)  |  V* | Timezone (location)            |
							 | 
						||
| 
								 | 
							
								 * |  w  | Local week of year             |  W* | Week of month                  |
							 | 
						||
| 
								 | 
							
								 * |  x  | Timezone (ISO-8601 w/o Z)      |  X  | Timezone (ISO-8601)            |
							 | 
						||
| 
								 | 
							
								 * |  y  | Year (abs)                     |  Y  | Local week-numbering year      |
							 | 
						||
| 
								 | 
							
								 * |  z* | Timezone (specific non-locat.) |  Z* | Timezone (aliases)             |
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Letters marked by * are not implemented but reserved by Unicode standard.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Letters marked by ! are non-standard, but implemented by date-fns:
							 | 
						||
| 
								 | 
							
								 * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)
							 | 
						||
| 
								 | 
							
								 * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,
							 | 
						||
| 
								 | 
							
								 *   i.e. 7 for Sunday, 1 for Monday, etc.
							 | 
						||
| 
								 | 
							
								 * - `I` is ISO week of year, as opposed to `w` which is local week of year.
							 | 
						||
| 
								 | 
							
								 * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.
							 | 
						||
| 
								 | 
							
								 *   `R` is supposed to be used in conjunction with `I` and `i`
							 | 
						||
| 
								 | 
							
								 *   for universal ISO week-numbering date, whereas
							 | 
						||
| 
								 | 
							
								 *   `Y` is supposed to be used in conjunction with `w` and `e`
							 | 
						||
| 
								 | 
							
								 *   for week-numbering date specific to the locale.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var parsers = {
							 | 
						||
| 
								 | 
							
								  // Era
							 | 
						||
| 
								 | 
							
								  G: {
							 | 
						||
| 
								 | 
							
								    priority: 140,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // AD, BC
							 | 
						||
| 
								 | 
							
								        case 'G':
							 | 
						||
| 
								 | 
							
								        case 'GG':
							 | 
						||
| 
								 | 
							
								        case 'GGG':
							 | 
						||
| 
								 | 
							
								          return match.era(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated'
							 | 
						||
| 
								 | 
							
								          }) || match.era(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // A, B
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'GGGGG':
							 | 
						||
| 
								 | 
							
								          return match.era(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Anno Domini, Before Christ
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'GGGG':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.era(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide'
							 | 
						||
| 
								 | 
							
								          }) || match.era(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated'
							 | 
						||
| 
								 | 
							
								          }) || match.era(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      flags.era = value;
							 | 
						||
| 
								 | 
							
								      date.setUTCFullYear(value, 0, 1);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['R', 'u', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Year
							 | 
						||
| 
								 | 
							
								  y: {
							 | 
						||
| 
								 | 
							
								    // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns
							 | 
						||
| 
								 | 
							
								    // | Year     |     y | yy |   yyy |  yyyy | yyyyy |
							 | 
						||
| 
								 | 
							
								    // |----------|-------|----|-------|-------|-------|
							 | 
						||
| 
								 | 
							
								    // | AD 1     |     1 | 01 |   001 |  0001 | 00001 |
							 | 
						||
| 
								 | 
							
								    // | AD 12    |    12 | 12 |   012 |  0012 | 00012 |
							 | 
						||
| 
								 | 
							
								    // | AD 123   |   123 | 23 |   123 |  0123 | 00123 |
							 | 
						||
| 
								 | 
							
								    // | AD 1234  |  1234 | 34 |  1234 |  1234 | 01234 |
							 | 
						||
| 
								 | 
							
								    // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |
							 | 
						||
| 
								 | 
							
								    priority: 130,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (year) {
							 | 
						||
| 
								 | 
							
								        return {
							 | 
						||
| 
								 | 
							
								          year: year,
							 | 
						||
| 
								 | 
							
								          isTwoDigitYear: token === 'yy'
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'y':
							 | 
						||
| 
								 | 
							
								          return parseNDigits(4, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'yo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'year',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string, valueCallback);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value.isTwoDigitYear || value.year > 0;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      var currentYear = date.getUTCFullYear();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (value.isTwoDigitYear) {
							 | 
						||
| 
								 | 
							
								        var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);
							 | 
						||
| 
								 | 
							
								        date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);
							 | 
						||
| 
								 | 
							
								        date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								        return date;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;
							 | 
						||
| 
								 | 
							
								      date.setUTCFullYear(year, 0, 1);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Local week-numbering year
							 | 
						||
| 
								 | 
							
								  Y: {
							 | 
						||
| 
								 | 
							
								    priority: 130,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (year) {
							 | 
						||
| 
								 | 
							
								        return {
							 | 
						||
| 
								 | 
							
								          year: year,
							 | 
						||
| 
								 | 
							
								          isTwoDigitYear: token === 'YY'
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'Y':
							 | 
						||
| 
								 | 
							
								          return parseNDigits(4, string, valueCallback);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Yo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'year',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string, valueCallback);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value.isTwoDigitYear || value.year > 0;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, flags, value, options) {
							 | 
						||
| 
								 | 
							
								      var currentYear = (0, _index.default)(date, options);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (value.isTwoDigitYear) {
							 | 
						||
| 
								 | 
							
								        var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);
							 | 
						||
| 
								 | 
							
								        date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);
							 | 
						||
| 
								 | 
							
								        date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								        return (0, _index7.default)(date, options);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;
							 | 
						||
| 
								 | 
							
								      date.setUTCFullYear(year, 0, options.firstWeekContainsDate);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return (0, _index7.default)(date, options);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // ISO week-numbering year
							 | 
						||
| 
								 | 
							
								  R: {
							 | 
						||
| 
								 | 
							
								    priority: 130,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, _match, _options) {
							 | 
						||
| 
								 | 
							
								      if (token === 'R') {
							 | 
						||
| 
								 | 
							
								        return parseNDigitsSigned(4, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return parseNDigitsSigned(token.length, string);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (_date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      var firstWeekOfYear = new Date(0);
							 | 
						||
| 
								 | 
							
								      firstWeekOfYear.setUTCFullYear(value, 0, 4);
							 | 
						||
| 
								 | 
							
								      firstWeekOfYear.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return (0, _index6.default)(firstWeekOfYear);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Extended year
							 | 
						||
| 
								 | 
							
								  u: {
							 | 
						||
| 
								 | 
							
								    priority: 130,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, _match, _options) {
							 | 
						||
| 
								 | 
							
								      if (token === 'u') {
							 | 
						||
| 
								 | 
							
								        return parseNDigitsSigned(4, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return parseNDigitsSigned(token.length, string);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCFullYear(value, 0, 1);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Quarter
							 | 
						||
| 
								 | 
							
								  Q: {
							 | 
						||
| 
								 | 
							
								    priority: 120,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // 1, 2, 3, 4
							 | 
						||
| 
								 | 
							
								        case 'Q':
							 | 
						||
| 
								 | 
							
								        case 'QQ':
							 | 
						||
| 
								 | 
							
								          // 01, 02, 03, 04
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								        // 1st, 2nd, 3rd, 4th
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Qo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'quarter'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Q1, Q2, Q3, Q4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'QQQ':
							 | 
						||
| 
								 | 
							
								          return match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // 1, 2, 3, 4 (narrow quarter; could be not numerical)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'QQQQQ':
							 | 
						||
| 
								 | 
							
								          return match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // 1st quarter, 2nd quarter, ...
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'QQQQ':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 1 && value <= 4;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCMonth((value - 1) * 3, 1);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Stand-alone quarter
							 | 
						||
| 
								 | 
							
								  q: {
							 | 
						||
| 
								 | 
							
								    priority: 120,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // 1, 2, 3, 4
							 | 
						||
| 
								 | 
							
								        case 'q':
							 | 
						||
| 
								 | 
							
								        case 'qq':
							 | 
						||
| 
								 | 
							
								          // 01, 02, 03, 04
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								        // 1st, 2nd, 3rd, 4th
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'qo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'quarter'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Q1, Q2, Q3, Q4
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'qqq':
							 | 
						||
| 
								 | 
							
								          return match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // 1, 2, 3, 4 (narrow quarter; could be not numerical)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'qqqqq':
							 | 
						||
| 
								 | 
							
								          return match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // 1st quarter, 2nd quarter, ...
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'qqqq':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.quarter(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 1 && value <= 4;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCMonth((value - 1) * 3, 1);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Month
							 | 
						||
| 
								 | 
							
								  M: {
							 | 
						||
| 
								 | 
							
								    priority: 110,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (value) {
							 | 
						||
| 
								 | 
							
								        return value - 1;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // 1, 2, ..., 12
							 | 
						||
| 
								 | 
							
								        case 'M':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.month, string, valueCallback);
							 | 
						||
| 
								 | 
							
								        // 01, 02, ..., 12
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'MM':
							 | 
						||
| 
								 | 
							
								          return parseNDigits(2, string, valueCallback);
							 | 
						||
| 
								 | 
							
								        // 1st, 2nd, ..., 12th
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Mo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'month',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Jan, Feb, ..., Dec
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'MMM':
							 | 
						||
| 
								 | 
							
								          return match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // J, F, ..., D
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'MMMMM':
							 | 
						||
| 
								 | 
							
								          return match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // January, February, ..., December
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'MMMM':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 11;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCMonth(value, 1);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Stand-alone month
							 | 
						||
| 
								 | 
							
								  L: {
							 | 
						||
| 
								 | 
							
								    priority: 110,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (value) {
							 | 
						||
| 
								 | 
							
								        return value - 1;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // 1, 2, ..., 12
							 | 
						||
| 
								 | 
							
								        case 'L':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.month, string, valueCallback);
							 | 
						||
| 
								 | 
							
								        // 01, 02, ..., 12
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'LL':
							 | 
						||
| 
								 | 
							
								          return parseNDigits(2, string, valueCallback);
							 | 
						||
| 
								 | 
							
								        // 1st, 2nd, ..., 12th
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Lo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'month',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Jan, Feb, ..., Dec
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'LLL':
							 | 
						||
| 
								 | 
							
								          return match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // J, F, ..., D
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'LLLLL':
							 | 
						||
| 
								 | 
							
								          return match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // January, February, ..., December
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'LLLL':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.month(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 11;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCMonth(value, 1);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Local week of year
							 | 
						||
| 
								 | 
							
								  w: {
							 | 
						||
| 
								 | 
							
								    priority: 100,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'w':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.week, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'wo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'week'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 1 && value <= 53;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, options) {
							 | 
						||
| 
								 | 
							
								      return (0, _index7.default)((0, _index5.default)(date, value, options), options);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // ISO week of year
							 | 
						||
| 
								 | 
							
								  I: {
							 | 
						||
| 
								 | 
							
								    priority: 100,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'I':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.week, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Io':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'week'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 1 && value <= 53;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, options) {
							 | 
						||
| 
								 | 
							
								      return (0, _index6.default)((0, _index4.default)(date, value, options), options);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Day of the month
							 | 
						||
| 
								 | 
							
								  d: {
							 | 
						||
| 
								 | 
							
								    priority: 90,
							 | 
						||
| 
								 | 
							
								    subPriority: 1,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'd':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.date, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'do':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'date'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (date, value, _options) {
							 | 
						||
| 
								 | 
							
								      var year = date.getUTCFullYear();
							 | 
						||
| 
								 | 
							
								      var isLeapYear = isLeapYearIndex(year);
							 | 
						||
| 
								 | 
							
								      var month = date.getUTCMonth();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (isLeapYear) {
							 | 
						||
| 
								 | 
							
								        return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        return value >= 1 && value <= DAYS_IN_MONTH[month];
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCDate(value);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Day of year
							 | 
						||
| 
								 | 
							
								  D: {
							 | 
						||
| 
								 | 
							
								    priority: 90,
							 | 
						||
| 
								 | 
							
								    subPriority: 1,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'D':
							 | 
						||
| 
								 | 
							
								        case 'DD':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.dayOfYear, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Do':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'date'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (date, value, _options) {
							 | 
						||
| 
								 | 
							
								      var year = date.getUTCFullYear();
							 | 
						||
| 
								 | 
							
								      var isLeapYear = isLeapYearIndex(year);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (isLeapYear) {
							 | 
						||
| 
								 | 
							
								        return value >= 1 && value <= 366;
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        return value >= 1 && value <= 365;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCMonth(0, value);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Day of week
							 | 
						||
| 
								 | 
							
								  E: {
							 | 
						||
| 
								 | 
							
								    priority: 90,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // Tue
							 | 
						||
| 
								 | 
							
								        case 'E':
							 | 
						||
| 
								 | 
							
								        case 'EE':
							 | 
						||
| 
								 | 
							
								        case 'EEE':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // T
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'EEEEE':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tu
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'EEEEEE':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tuesday
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'EEEE':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 6;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, options) {
							 | 
						||
| 
								 | 
							
								      date = (0, _index2.default)(date, value, options);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Local day of week
							 | 
						||
| 
								 | 
							
								  e: {
							 | 
						||
| 
								 | 
							
								    priority: 90,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (value) {
							 | 
						||
| 
								 | 
							
								        var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
							 | 
						||
| 
								 | 
							
								        return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // 3
							 | 
						||
| 
								 | 
							
								        case 'e':
							 | 
						||
| 
								 | 
							
								        case 'ee':
							 | 
						||
| 
								 | 
							
								          // 03
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string, valueCallback);
							 | 
						||
| 
								 | 
							
								        // 3rd
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'eo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'day',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tue
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'eee':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // T
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'eeeee':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tu
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'eeeeee':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tuesday
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'eeee':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 6;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, options) {
							 | 
						||
| 
								 | 
							
								      date = (0, _index2.default)(date, value, options);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Stand-alone local day of week
							 | 
						||
| 
								 | 
							
								  c: {
							 | 
						||
| 
								 | 
							
								    priority: 90,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (value) {
							 | 
						||
| 
								 | 
							
								        var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
							 | 
						||
| 
								 | 
							
								        return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // 3
							 | 
						||
| 
								 | 
							
								        case 'c':
							 | 
						||
| 
								 | 
							
								        case 'cc':
							 | 
						||
| 
								 | 
							
								          // 03
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string, valueCallback);
							 | 
						||
| 
								 | 
							
								        // 3rd
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'co':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'day',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tue
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'ccc':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // T
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'ccccc':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tu
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'cccccc':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tuesday
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'cccc':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'standalone'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 6;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, options) {
							 | 
						||
| 
								 | 
							
								      date = (0, _index2.default)(date, value, options);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // ISO day of week
							 | 
						||
| 
								 | 
							
								  i: {
							 | 
						||
| 
								 | 
							
								    priority: 90,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (value) {
							 | 
						||
| 
								 | 
							
								        if (value === 0) {
							 | 
						||
| 
								 | 
							
								          return 7;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return value;
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        // 2
							 | 
						||
| 
								 | 
							
								        case 'i':
							 | 
						||
| 
								 | 
							
								        case 'ii':
							 | 
						||
| 
								 | 
							
								          // 02
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								        // 2nd
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'io':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'day'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tue
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'iii':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // T
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'iiiii':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tu
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'iiiiii':
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								        // Tuesday
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'iiii':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'short',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          }) || match.day(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting',
							 | 
						||
| 
								 | 
							
								            valueCallback: valueCallback
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 1 && value <= 7;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, options) {
							 | 
						||
| 
								 | 
							
								      date = (0, _index3.default)(date, value, options);
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // AM or PM
							 | 
						||
| 
								 | 
							
								  a: {
							 | 
						||
| 
								 | 
							
								    priority: 80,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'a':
							 | 
						||
| 
								 | 
							
								        case 'aa':
							 | 
						||
| 
								 | 
							
								        case 'aaa':
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'aaaaa':
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'aaaa':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // AM, PM, midnight
							 | 
						||
| 
								 | 
							
								  b: {
							 | 
						||
| 
								 | 
							
								    priority: 80,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'b':
							 | 
						||
| 
								 | 
							
								        case 'bb':
							 | 
						||
| 
								 | 
							
								        case 'bbb':
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'bbbbb':
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'bbbb':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // in the morning, in the afternoon, in the evening, at night
							 | 
						||
| 
								 | 
							
								  B: {
							 | 
						||
| 
								 | 
							
								    priority: 80,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'B':
							 | 
						||
| 
								 | 
							
								        case 'BB':
							 | 
						||
| 
								 | 
							
								        case 'BBB':
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'BBBBB':
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'BBBB':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'wide',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'abbreviated',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          }) || match.dayPeriod(string, {
							 | 
						||
| 
								 | 
							
								            width: 'narrow',
							 | 
						||
| 
								 | 
							
								            context: 'formatting'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['a', 'b', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Hour [1-12]
							 | 
						||
| 
								 | 
							
								  h: {
							 | 
						||
| 
								 | 
							
								    priority: 70,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'h':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.hour12h, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'ho':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'hour'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 1 && value <= 12;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      var isPM = date.getUTCHours() >= 12;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (isPM && value < 12) {
							 | 
						||
| 
								 | 
							
								        date.setUTCHours(value + 12, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      } else if (!isPM && value === 12) {
							 | 
						||
| 
								 | 
							
								        date.setUTCHours(0, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        date.setUTCHours(value, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['H', 'K', 'k', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Hour [0-23]
							 | 
						||
| 
								 | 
							
								  H: {
							 | 
						||
| 
								 | 
							
								    priority: 70,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'H':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.hour23h, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Ho':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'hour'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 23;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(value, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Hour [0-11]
							 | 
						||
| 
								 | 
							
								  K: {
							 | 
						||
| 
								 | 
							
								    priority: 70,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'K':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.hour11h, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'Ko':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'hour'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 11;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      var isPM = date.getUTCHours() >= 12;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      if (isPM && value < 12) {
							 | 
						||
| 
								 | 
							
								        date.setUTCHours(value + 12, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        date.setUTCHours(value, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Hour [1-24]
							 | 
						||
| 
								 | 
							
								  k: {
							 | 
						||
| 
								 | 
							
								    priority: 70,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'k':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.hour24h, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'ko':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'hour'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 1 && value <= 24;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      var hours = value <= 24 ? value % 24 : value;
							 | 
						||
| 
								 | 
							
								      date.setUTCHours(hours, 0, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Minute
							 | 
						||
| 
								 | 
							
								  m: {
							 | 
						||
| 
								 | 
							
								    priority: 60,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'm':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.minute, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'mo':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'minute'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 59;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCMinutes(value, 0, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['t', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Second
							 | 
						||
| 
								 | 
							
								  s: {
							 | 
						||
| 
								 | 
							
								    priority: 50,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 's':
							 | 
						||
| 
								 | 
							
								          return parseNumericPattern(numericPatterns.second, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'so':
							 | 
						||
| 
								 | 
							
								          return match.ordinalNumber(string, {
							 | 
						||
| 
								 | 
							
								            unit: 'second'
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseNDigits(token.length, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    validate: function (_date, value, _options) {
							 | 
						||
| 
								 | 
							
								      return value >= 0 && value <= 59;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCSeconds(value, 0);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['t', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Fraction of second
							 | 
						||
| 
								 | 
							
								  S: {
							 | 
						||
| 
								 | 
							
								    priority: 30,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, _match, _options) {
							 | 
						||
| 
								 | 
							
								      var valueCallback = function (value) {
							 | 
						||
| 
								 | 
							
								        return Math.floor(value * Math.pow(10, -token.length + 3));
							 | 
						||
| 
								 | 
							
								      };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return parseNDigits(token.length, string, valueCallback);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      date.setUTCMilliseconds(value);
							 | 
						||
| 
								 | 
							
								      return date;
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['t', 'T']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Timezone (ISO-8601. +00:00 is `'Z'`)
							 | 
						||
| 
								 | 
							
								  X: {
							 | 
						||
| 
								 | 
							
								    priority: 10,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, _match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'X':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'XX':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.basic, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'XXXX':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'XXXXX':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'XXX':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.extended, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      if (flags.timestampIsSet) {
							 | 
						||
| 
								 | 
							
								        return date;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return new Date(date.getTime() - value);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['t', 'T', 'x']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Timezone (ISO-8601)
							 | 
						||
| 
								 | 
							
								  x: {
							 | 
						||
| 
								 | 
							
								    priority: 10,
							 | 
						||
| 
								 | 
							
								    parse: function (string, token, _match, _options) {
							 | 
						||
| 
								 | 
							
								      switch (token) {
							 | 
						||
| 
								 | 
							
								        case 'x':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'xx':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.basic, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'xxxx':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'xxxxx':
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        case 'xxx':
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								          return parseTimezonePattern(timezonePatterns.extended, string);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (date, flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      if (flags.timestampIsSet) {
							 | 
						||
| 
								 | 
							
								        return date;
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      return new Date(date.getTime() - value);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: ['t', 'T', 'X']
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Seconds timestamp
							 | 
						||
| 
								 | 
							
								  t: {
							 | 
						||
| 
								 | 
							
								    priority: 40,
							 | 
						||
| 
								 | 
							
								    parse: function (string, _token, _match, _options) {
							 | 
						||
| 
								 | 
							
								      return parseAnyDigitsSigned(string);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (_date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      return [new Date(value * 1000), {
							 | 
						||
| 
								 | 
							
								        timestampIsSet: true
							 | 
						||
| 
								 | 
							
								      }];
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: '*'
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  // Milliseconds timestamp
							 | 
						||
| 
								 | 
							
								  T: {
							 | 
						||
| 
								 | 
							
								    priority: 20,
							 | 
						||
| 
								 | 
							
								    parse: function (string, _token, _match, _options) {
							 | 
						||
| 
								 | 
							
								      return parseAnyDigitsSigned(string);
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    set: function (_date, _flags, value, _options) {
							 | 
						||
| 
								 | 
							
								      return [new Date(value), {
							 | 
						||
| 
								 | 
							
								        timestampIsSet: true
							 | 
						||
| 
								 | 
							
								      }];
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    incompatibleTokens: '*'
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								var _default = parsers;
							 | 
						||
| 
								 | 
							
								exports.default = _default;
							 | 
						||
| 
								 | 
							
								module.exports = exports.default;
							 |