{"version":3,"sources":["jsdelivr-header.js","/npm/xtz@1.3.2/xtz.js"],"names":[],"mappings":"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","file":"/npm/xtz@1.3.2/xtz.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/xtz@1.3.2/xtz.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function (exports) {\n  \"use strict\";\n\n  function toTimeZone(date, timeZone) {\n    // ISO string or existing date object\n    date = new Date(date);\n    var options = {\n      timeZone: timeZone,\n      year: \"numeric\",\n      month: \"numeric\",\n      day: \"numeric\",\n      hour12: false,\n      hour: \"numeric\",\n      minute: \"numeric\",\n      second: \"numeric\",\n      fractionalSecondDigits: 3,\n    };\n\n    var tzOptions = Object.assign({ timeZoneName: \"long\" }, options);\n\n    // Every country uses the same year and months, right?\n    var formater = new Intl.DateTimeFormat(\"default\", tzOptions);\n    var parts = formater.formatToParts(date);\n\n    // millisecond is explicitly 0 for iOS' lack of fractionalSecond support\n    var whole = { millisecond: 0 };\n    parts.forEach(function (part) {\n      var val = part.value;\n      switch (part.type) {\n        case \"literal\":\n          // ignore separators and whitespace characters\n          return;\n        case \"timeZoneName\":\n          // keep as is - it's a string\n          break;\n        case \"month\":\n          // months are 0-indexed for new Date()\n          val = parseInt(val, 10) - 1;\n          break;\n        case \"hour\":\n          // because sometimes 24 is used instead of 0, make 24 0\n          val = parseInt(val, 10) % 24;\n          break;\n        case \"fractionalSecond\":\n          // fractionalSecond is a dumb name - should be millisecond\n          whole.millisecond = parseInt(val, 10);\n          return;\n        default:\n          val = parseInt(val, 10);\n      }\n      // ex: whole.month = 0;\n      whole[part.type] = val;\n    });\n\n    whole.timeZone = timeZone;\n    whole.offset = getOffset(date, whole);\n    whole.toISOString = _toOffsetISOString;\n    return whole;\n  }\n\n  function toTimeZoneISOString(date, timeZone) {\n    var whole = toTimeZone(date, timeZone);\n    return formatAsOffsetISOString(whole);\n  }\n\n  function _toOffsetISOString() {\n    /* jshint validthis: true */\n    return formatAsOffsetISOString(this);\n  }\n\n  function getOffset(utcDate, tzD2) {\n    var tzDate = new Date(formatAsOffsetISOString(tzD2));\n    var diff = Math.round((tzDate.valueOf() - utcDate.valueOf()) / (60 * 1000));\n    return diff;\n  }\n\n  function p2(x) {\n    return String(x).padStart(2, \"0\");\n  }\n\n  function p3(x) {\n    return String(x).padStart(3, \"0\");\n  }\n\n  function formatOffset(minutes) {\n    if (!minutes) {\n      return \"Z\";\n    }\n\n    var h = Math.floor(Math.abs(minutes) / 60);\n    var m = Math.abs(minutes) % 60;\n    var offset = \"\";\n    if (minutes > 0) {\n      offset = \"+\";\n    } else if (minutes < 0) {\n      offset = \"-\";\n    }\n\n    // +0500, -0730\n    return (\n      offset + h.toString().padStart(2, \"0\") + m.toString().padStart(2, \"0\")\n    );\n  }\n\n  function toOffsetISOString(date, timeZone) {\n    if (\"object\" === typeof date && \"offset\" in date && \"year\" in date) {\n      return formatAsOffsetISOString(date);\n    }\n\n    var whole = fromTimeZone(date, timeZone);\n    return formatAsOffsetISOString(whole);\n  }\n\n  function formatAsOffsetISOString(d) {\n    var offset = formatOffset(d.offset);\n    return (\n      `${d.year}-${p2(d.month + 1)}-${p2(d.day)}` +\n      `T${p2(d.hour)}:${p2(d.minute)}:${p2(d.second)}.${p3(\n        d.millisecond\n      )}${offset}`\n    );\n  }\n\n  function fromTimeZone(dt, tz) {\n    if (\"string\" === typeof dt) {\n      // Either of these formats should work:\n      // 2021-03-14 01:15:59\n      // 2021-03-14T01:15:59Z\n      dt = dt\n        .replace(\"T\", \" \")\n        .replace(\"Z\", \"\")\n        .replace(\" \", \"T\")\n        .replace(/$/, \"Z\");\n    }\n    var utcDate = new Date(dt);\n    var tzD2 = toTimeZone(utcDate, tz);\n    var offset = tzD2.offset;\n    tzD2.offset = 0;\n\n    var deltaDate = new Date(utcDate);\n    deltaDate.setUTCMinutes(deltaDate.getUTCMinutes() - offset);\n    var tzD3 = toTimeZone(deltaDate, tz);\n\n    if (\n      tzD3.hour === utcDate.getUTCHours() &&\n      tzD3.minute === utcDate.getUTCMinutes()\n    ) {\n      return tzD3;\n    }\n\n    var diff = tzD3.offset - offset;\n    var h = Math.floor(Math.abs(diff) / 60);\n    var m = Math.abs(diff) % 60;\n    var sign = Math.abs(diff) / diff;\n    tzD3.hour -= h * sign;\n    tzD3.minute -= m * sign;\n\n    return tzD3;\n  }\n\n  function toLocalISOString(dateOrStr) {\n    var d;\n    if (dateOrStr) {\n      d = new Date(dateOrStr);\n    } else {\n      d = new Date();\n    }\n\n    var YYYY = d.getFullYear();\n    var MM = p2(d.getMonth() + 1);\n    var DD = p2(d.getDate());\n    var hh = p2(d.getHours());\n    var mm = p2(d.getMinutes());\n    var ss = p2(d.getSeconds());\n    var sss = d.getMilliseconds().toString().padStart(3, \"0\");\n\n    var offset = formatOffset(-d.getTimezoneOffset());\n\n    return `${YYYY}-${MM}-${DD}T${hh}:${mm}:${ss}.${sss}${offset}`;\n  }\n\n  function getTimeZone() {\n    return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n  }\n\n  exports.XTZ = {\n    // bespoke date =>\n    // 2021-11-07T3:15:59-0500\n    // (todo?)\n    // xtzToISOString: formatAsOffsetISOString,\n    // (deprecated)\n    toOffsetISOString: toOffsetISOString,\n\n    // -240 => -0400\n    formatOffset: formatOffset,\n\n    // \"America/New_York\"\n    timeZone: getTimeZone,\n    // \"2021-11-07T03:15:59-0500\"\n    toLocalISOString: toLocalISOString,\n\n    // [ \"2021-11-07T08:15:59Z\", \"America/New_York\" ]\n    // => \"2021-11-07T03:15:59-0500\" // 2021-11-07 03:15:59\n    toTimeZone: toTimeZone,\n    toTimeZoneISOString: toTimeZoneISOString,\n\n    // [ \"2021-11-07 03:15:59\", \"America/New_York\" ]\n    // => \"2021-11-07T03:15:59-0500\" // 2021-11-07T08:15:59Z\n    toUTC: fromTimeZone,\n    fromTimeZone: fromTimeZone,\n    // deprecated\n    toUTCISOString: toOffsetISOString,\n  };\n\n  if (\"undefined\" != typeof module && module.exports) {\n    module.exports = exports.XTZ;\n  }\n})((\"undefined\" === typeof module && window) || exports);\n"]}