{"version":3,"file":"parse-format.mjs","sources":["../src/parse-format/tokens.js","../src/parse-format/parse.js","../src/parse-format/padding.js","../src/parse-format/format.js"],"sourcesContent":["export default /(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?|DD?|d|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g\n","import formattingTokens from './tokens'\n\nconst match1 = /\\d/ // 0 - 9\nconst match2 = /\\d\\d/ // 00 - 99\nconst match3 = /\\d{3}/ // 000 - 999\nconst match4 = /\\d{4}/ // 0000 - 9999\nconst match1to2 = /\\d\\d?/ // 0 - 99\nconst matchUpperAMPM = /[AP]M/\nconst matchLowerAMPM = /[ap]m/\nconst matchSigned = /[+-]?\\d+/ // -inf - inf\nconst matchOffset = /(?:[+-]\\d\\d:?\\d\\d|Z)/ // +00:00 -00:00 +0000 -0000 or Z\nconst matchAbbreviation = /[A-Z]{3,4}/ // CET\n\nconst parseTokenExpressions = {}\nconst parseTokenFunctions = {}\nconst parsers = {}\n\nfunction correctDayPeriod (time) {\n  const { afternoon } = time\n  if (afternoon !== undefined) {\n    const { hours } = time\n    if (afternoon) {\n      if (hours < 12) {\n        time.hours += 12\n      }\n    } else {\n      if (hours === 12) {\n        time.hours = 0\n      }\n    }\n    delete time.afternoon\n  }\n}\n\nfunction makeParser (format) {\n  const array = format.match(formattingTokens)\n  if (!array) {\n    throw new Error(`Invalid format: \"${format}\".`)\n  }\n  const { length } = array\n  for (let i = 0; i < length; ++i) {\n    const token = array[i]\n    const regex = parseTokenExpressions[token]\n    const parser = parseTokenFunctions[token]\n    if (parser) {\n      array[i] = { regex, parser }\n    } else {\n      array[i] = token.replace(/^\\[|\\]$/g, '')\n    }\n  }\n  return function (input) {\n    const time = {}\n    for (let i = 0, start = 0; i < length; ++i) {\n      const token = array[i]\n      if (typeof token === 'string') {\n        if (input.indexOf(token, start) !== start) {\n          const part = input.substr(start, token.length)\n          throw new Error(`Expected \"${token}\" at character ${start}, found \"${part}\".`)\n        }\n        start += token.length\n      } else {\n        const { regex, parser } = token\n        const part = input.substr(start)\n        const match = regex.exec(part)\n        if (!match || match.index !== 0) {\n          throw new Error(`Matching \"${regex}\" at character ${start} failed with \"${part}\".`)\n        }\n        const value = match[0]\n        parser.call(time, value)\n        start += value.length\n      }\n    }\n    correctDayPeriod(time)\n    return time\n  }\n}\n\nfunction addExpressionToken (token, regex) {\n  parseTokenExpressions[token] = regex\n}\n\nfunction addParseToken (tokens, property) {\n  if (typeof tokens === 'string') {\n    tokens = [ tokens ]\n  }\n  const callback = typeof property === 'string' ? function (input) {\n    this[property] = +input\n  } : property\n  for (const token of tokens) {\n    parseTokenFunctions[token] = callback\n  }\n}\n\nfunction offsetFromString (string) {\n  if (string === 'Z') {\n    return 0\n  }\n\n  const parts = string.match(/([+-]|\\d\\d)/g)\n  const minutes = +(parts[1] * 60) + +parts[2]\n  return minutes === 0 ? 0 : parts[0] === '+' ? -minutes : minutes\n}\n\naddExpressionToken('A', matchUpperAMPM)\naddParseToken(['A'], function (input) {\n  this.afternoon = input === 'PM'\n})\n\naddExpressionToken('a', matchLowerAMPM)\naddParseToken(['a'], function (input) {\n  this.afternoon = input === 'pm'\n})\n\naddExpressionToken('S', match1)\naddExpressionToken('SS', match2)\naddExpressionToken('SSS', match3)\nfor (let token = 'S', factor = 100; factor >= 1; token += 'S', factor /= 10) {\n  addParseToken(token, function (input) {\n    this.milliseconds = +input * factor\n  })\n}\n\naddExpressionToken('s', match1to2)\naddExpressionToken('ss', match2)\naddParseToken(['s', 'ss'], 'seconds')\n\naddExpressionToken('m', match1to2)\naddExpressionToken('mm', match2)\naddParseToken(['m', 'mm'], 'minutes')\n\naddExpressionToken('H', match1to2)\naddExpressionToken('h', match1to2)\naddExpressionToken('HH', match2)\naddExpressionToken('hh', match2)\naddParseToken(['H', 'HH', 'h', 'hh'], 'hours')\n\naddExpressionToken('d', match1)\naddParseToken('d', 'dayOfWeek')\n\naddExpressionToken('D', match1to2)\naddExpressionToken('DD', match2)\naddParseToken(['D', 'DD'], 'day')\n\naddExpressionToken('M', match1to2)\naddExpressionToken('MM', match2)\naddParseToken(['M', 'MM'], 'month')\n\naddExpressionToken('Y', matchSigned)\naddExpressionToken('YY', match2)\naddExpressionToken('YYYY', match4)\naddParseToken(['Y', 'YYYY'], 'year')\naddParseToken('YY', function (input) {\n  input = +input\n  this.year = input + (input > 68 ? 1900 : 2000)\n})\n\naddExpressionToken('z', matchAbbreviation)\naddParseToken('z', function (input) {\n  const zone = this.zone || (this.zone = {})\n  zone.abbreviation = input\n})\n\naddExpressionToken('Z', matchOffset)\naddExpressionToken('ZZ', matchOffset)\naddParseToken(['Z', 'ZZ'], function (input) {\n  const zone = this.zone || (this.zone = {})\n  zone.offset = offsetFromString(input)\n})\n\nfunction parseZonedTime (input, format) {\n  let parser = parsers[format]\n  if (!parser) {\n    parser = parsers[format] = makeParser(format)\n  }\n  return parser(input)\n}\n\nexport { parseZonedTime }\n","function padToTwo (number) {\n  return number > 9 ? number : '0' + number\n}\n\nfunction padToThree (number) {\n  return number > 99 ? number : number > 9 ? '0' + number : '00' + number\n}\n\nfunction padToFour (number) {\n  return number > 999 ? number : number > 99 ? '0' + number : number > 9 ? '00' + number : '000' + number\n}\n\nconst padToN = [ undefined, undefined, padToTwo, padToThree, padToFour ]\n\nfunction padWithZeros (number, length) {\n  return padToN[length](number)\n}\n\nexport { padWithZeros }\n","import formattingTokens from './tokens'\nimport { padWithZeros } from './padding'\n\nconst formatTokenFunctions = {}\nconst formatters = {}\n\nfunction makeFormatter (format) {\n  const array = format.match(formattingTokens)\n  const { length } = array\n  for (let i = 0; i < length; ++i) {\n    const token = array[i]\n    const formatter = formatTokenFunctions[token]\n    if (formatter) {\n      array[i] = formatter\n    } else {\n      array[i] = token.replace(/^\\[|\\]$/g, '')\n    }\n  }\n  return function (time) {\n    let output = ''\n    for (const token of array) {\n      output += typeof token === 'function' ? token.call(time) : token\n    }\n    return output\n  }\n}\n\nconst addFormatToken = function (token, padded, property) {\n  const callback = typeof property === 'string' ? function () {\n    return this[property]\n  } : property\n  if (token) {\n    formatTokenFunctions[token] = callback\n  }\n  if (padded) {\n    formatTokenFunctions[padded[0]] = function () {\n      return padWithZeros(callback.call(this), padded[1])\n    }\n  }\n}\n\naddFormatToken('A', 0, function () { return this.hours < 12 ? 'AM' : 'PM' })\naddFormatToken('a', 0, function () { return this.hours < 12 ? 'am' : 'pm' })\naddFormatToken('S', 0, function () { return Math.floor(this.milliseconds / 100) })\naddFormatToken(0, ['SS', 2], function () { return Math.floor(this.milliseconds / 10) })\naddFormatToken(0, ['SSS', 3], 'milliseconds')\naddFormatToken('s', ['ss', 2], 'seconds')\naddFormatToken('m', ['mm', 2], 'minutes')\naddFormatToken('h', ['hh', 2], function () { return (this.hours % 12) || 12 })\naddFormatToken('H', ['HH', 2], 'hours')\naddFormatToken('d', 0, 'dayOfWeek')\naddFormatToken('D', ['DD', 2], 'day')\naddFormatToken('M', ['MM', 2], 'month')\naddFormatToken(0, ['YY', 2], function () { return this.year % 100 })\naddFormatToken('Y', ['YYYY', 4], 'year')\naddFormatToken('z', 0, function () { return this.zone.abbreviation })\n\nfunction addTimeZoneFormatToken (token, separator) {\n  addFormatToken(token, 0, function () {\n    let offset = -this.zone.offset\n    const sign = offset < 0 ? '-' : '+'\n    offset = Math.abs(offset)\n    return sign + padWithZeros(Math.floor(offset / 60), 2) + separator + padWithZeros(offset % 60, 2)\n  })\n}\n\naddTimeZoneFormatToken('Z', ':')\naddTimeZoneFormatToken('ZZ', '')\n\nfunction formatZonedTime (time, format) {\n  let formatter = formatters[format]\n  if (!formatter) {\n    formatter = formatters[format] = makeFormatter(format)\n  }\n  return formatter(time)\n}\n\nexport { formatZonedTime }\n"],"names":["match1","match2","match3","match4","match1to2","matchUpperAMPM","matchLowerAMPM","matchSigned","matchOffset","matchAbbreviation","parseTokenExpressions","parseTokenFunctions","parsers","correctDayPeriod","time","afternoon","undefined","hours","makeParser","format","array","match","formattingTokens","Error","length","i","token","regex","parser","replace","input","start","indexOf","part","substr","exec","index","value","call","addExpressionToken","addParseToken","tokens","property","callback","offsetFromString","string","parts","minutes","factor","milliseconds","year","zone","abbreviation","offset","parseZonedTime","padToTwo","number","padToThree","padToFour","padToN","padWithZeros","formatTokenFunctions","formatters","makeFormatter","formatter","output","addFormatToken","padded","Math","floor","addTimeZoneFormatToken","separator","sign","abs","formatZonedTime"],"mappings":"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"}