{"version":3,"sources":["jsdelivr-header.js","/npm/@yr/monotone-cubic-spline@1.0.3/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;;;;;;;GAUA,IAAI,EAAI,KA0FR,SAAS,SAAS,GAUhB,IATA,IAAI,EAAI,kBAAkB,GACtB,EAAI,EAAO,OAAS,EAEpB,EAAO,GACP,OAAI,EACJ,OAAI,EACJ,OAAI,EACJ,OAAI,EAEC,EAAI,EAAG,EAAI,EAAG,IACrB,EAAI,MAAM,EAAO,GAAI,EAAO,EAAI,IAE5B,KAAK,IAAI,GAAK,EAChB,EAAE,GAAK,EAAE,EAAI,GAAK,GAIlB,GAFA,EAAI,EAAE,GAAK,GAEH,GADR,EAAI,EAAE,EAAI,GAAK,GACC,GACR,IACN,EAAQ,EAAJ,EAAQ,KAAK,KAAK,GACtB,EAAE,GAAK,EAAI,EACX,EAAE,EAAI,GAAK,EAAI,GAKrB,IAAK,IAAI,EAAK,EAAG,GAAM,EAAG,IACxB,GAAK,EAAO,KAAK,IAAI,EAAG,EAAK,IAAI,GAAK,EAAO,KAAK,IAAI,EAAG,EAAK,IAAI,KAAO,GAAK,EAAI,EAAE,GAAM,EAAE,KAC5F,EAAK,KAAK,CAAC,GAAK,EAAG,EAAE,GAAM,GAAK,IAGlC,OAAO,CACT,CAQA,SAAS,MAAM,EAAI,GACjB,OAAQ,EAAG,GAAK,EAAG,KAAO,EAAG,GAAK,EAAG,GACvC,CAOA,SAAS,kBAAkB,GAOzB,IANA,IAAI,EAAI,GACJ,EAAK,EAAO,GACZ,EAAK,EAAO,GACZ,EAAI,EAAE,GAAK,MAAM,EAAI,GACrB,EAAI,EAEC,EAAI,EAAO,OAAS,EAAG,EAAI,EAAG,IACrC,EAAK,EACL,EAAK,EAAO,EAAI,GAChB,EAAE,GAAiC,IAA3B,GAAK,EAAI,MAAM,EAAI,KAI7B,OAFA,EAAE,GAAK,EAEA,CACT,CAzJA,OAAO,QAAU,CAMf,OAAQ,SAAgB,GACtB,IAAI,EAAO,SAAS,GAEhB,EAAI,EAAQ,GACZ,EAAK,EAAQ,GACb,EAAM,GACN,EAAI,EAAK,GACT,EAAK,EAAK,GAGd,EAAI,KAAK,EAAI,CAAC,EAAG,GAAK,EAAG,GAAI,EAAG,GAAK,EAAG,GAAI,EAAE,GAAK,EAAE,GAAI,EAAE,GAAK,EAAE,GAAI,EAAE,GAAI,EAAE,KAG9E,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,OAAQ,EAAI,EAAG,IAAK,CAC3C,IAAI,EAAK,EAAQ,GACb,EAAK,EAAK,GAEd,EAAI,KAAK,CAAC,EAAG,GAAK,EAAG,GAAI,EAAG,GAAK,EAAG,GAAI,EAAG,GAAI,EAAG,IACpD,CAEA,OAAO,CACT,EAUA,MAAO,SAAe,EAAQ,EAAO,GACnC,IAAI,EAAM,EAAO,MAAM,EAAO,GAE9B,GAAI,EAAO,CAET,GAAI,EAAI,GAAG,OAAS,EAAG,CACrB,IAAI,EAAI,EAAI,GAAG,OAEf,EAAI,GAAK,CAAiB,EAAhB,EAAI,GAAG,EAAI,GAAS,EAAI,GAAG,EAAI,GAAoB,EAAhB,EAAI,GAAG,EAAI,GAAS,EAAI,GAAG,EAAI,IAAI,OAAO,EAAI,GAC7F,CAEA,EAAI,GAAK,EAAI,GAAG,OAAO,EACzB,CAEA,OAAO,CACT,EAQA,QAAS,SAAiB,GAGxB,IAFA,IAAI,EAAI,GAEC,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACtC,IAAI,EAAQ,EAAO,GACf,EAAI,EAAM,OAET,EAEM,EAAI,GACb,GAAK,IAAM,EAAM,GAAK,KAAO,EAAM,GACnC,GAAK,KAAO,EAAM,GAAK,KAAO,EAAM,GACpC,GAAK,KAAO,EAAM,GAAK,KAAO,EAAM,KAEpC,GAAK,IAAM,EAAM,GAAK,KAAO,EAAM,GACnC,GAAK,KAAO,EAAM,GAAK,KAAO,EAAM,IAPpC,GAAK,IAAM,EAAM,EAAI,GAAK,IAAM,EAAM,EAAI,EAS9C,CAEA,OAAO,CACT","file":"/npm/@yr/monotone-cubic-spline@1.0.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@yr/monotone-cubic-spline@1.0.3/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\n/**\n * Convert a series of points to a monotone cubic spline\n * Algorithm based on https://github.com/mbostock/d3\n * https://github.com/yr/monotone-cubic-spline\n * @copyright Yr\n * @license MIT\n */\n\nvar ε = 1e-6;\n\nmodule.exports = {\n  /**\n   * Convert 'points' to bezier\n   * @param {Array} points\n   * @returns {Array}\n   */\n  points: function points(_points) {\n    var tgts = tangents(_points);\n\n    var p = _points[1];\n    var p0 = _points[0];\n    var pts = [];\n    var t = tgts[1];\n    var t0 = tgts[0];\n\n    // Add starting 'M' and 'C' points\n    pts.push(p0, [p0[0] + t0[0], p0[1] + t0[1], p[0] - t[0], p[1] - t[1], p[0], p[1]]);\n\n    // Add 'S' points\n    for (var i = 2, n = tgts.length; i < n; i++) {\n      var _p = _points[i];\n      var _t = tgts[i];\n\n      pts.push([_p[0] - _t[0], _p[1] - _t[1], _p[0], _p[1]]);\n    }\n\n    return pts;\n  },\n\n\n  /**\n   * Slice out a segment of 'points'\n   * @param {Array} points\n   * @param {Number} start\n   * @param {Number} end\n   * @returns {Array}\n   */\n  slice: function slice(points, start, end) {\n    var pts = points.slice(start, end);\n\n    if (start) {\n      // Add additional 'C' points\n      if (pts[1].length < 6) {\n        var n = pts[0].length;\n\n        pts[1] = [pts[0][n - 2] * 2 - pts[0][n - 4], pts[0][n - 1] * 2 - pts[0][n - 3]].concat(pts[1]);\n      }\n      // Remove control points for 'M'\n      pts[0] = pts[0].slice(-2);\n    }\n\n    return pts;\n  },\n\n\n  /**\n   * Convert 'points' to svg path\n   * @param {Array} points\n   * @returns {String}\n   */\n  svgPath: function svgPath(points) {\n    var p = '';\n\n    for (var i = 0; i < points.length; i++) {\n      var point = points[i];\n      var n = point.length;\n\n      if (!i) {\n        p += 'M' + point[n - 2] + ' ' + point[n - 1];\n      } else if (n > 4) {\n        p += 'C' + point[0] + ', ' + point[1];\n        p += ', ' + point[2] + ', ' + point[3];\n        p += ', ' + point[4] + ', ' + point[5];\n      } else {\n        p += 'S' + point[0] + ', ' + point[1];\n        p += ', ' + point[2] + ', ' + point[3];\n      }\n    }\n\n    return p;\n  }\n};\n\n/**\n * Generate tangents for 'points'\n * @param {Array} points\n * @returns {Array}\n */\nfunction tangents(points) {\n  var m = finiteDifferences(points);\n  var n = points.length - 1;\n\n  var tgts = [];\n  var a = void 0,\n      b = void 0,\n      d = void 0,\n      s = void 0;\n\n  for (var i = 0; i < n; i++) {\n    d = slope(points[i], points[i + 1]);\n\n    if (Math.abs(d) < ε) {\n      m[i] = m[i + 1] = 0;\n    } else {\n      a = m[i] / d;\n      b = m[i + 1] / d;\n      s = a * a + b * b;\n      if (s > 9) {\n        s = d * 3 / Math.sqrt(s);\n        m[i] = s * a;\n        m[i + 1] = s * b;\n      }\n    }\n  }\n\n  for (var _i = 0; _i <= n; _i++) {\n    s = (points[Math.min(n, _i + 1)][0] - points[Math.max(0, _i - 1)][0]) / (6 * (1 + m[_i] * m[_i]));\n    tgts.push([s || 0, m[_i] * s || 0]);\n  }\n\n  return tgts;\n}\n\n/**\n * Compute slope from point 'p0' to 'p1'\n * @param {Array} p0\n * @param {Array} p1\n * @returns {Number}\n */\nfunction slope(p0, p1) {\n  return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n}\n\n/**\n * Compute three-point differences for 'points'\n * @param {Array} points\n * @returns {Array}\n */\nfunction finiteDifferences(points) {\n  var m = [];\n  var p0 = points[0];\n  var p1 = points[1];\n  var d = m[0] = slope(p0, p1);\n  var i = 1;\n\n  for (var n = points.length - 1; i < n; i++) {\n    p0 = p1;\n    p1 = points[i + 1];\n    m[i] = (d + (d = slope(p0, p1))) * 0.5;\n  }\n  m[i] = d;\n\n  return m;\n}"]}