CoolFace
Apppublic

admin08077/Githubgemini

sourceHugging Faceotherupdated 10mo agoView on Hugging Face
0likes
d3-shape-CX8xTzfR.js.map1 linesDownload Raw Back to assets
1{"version":3,"file":"d3-shape-CX8xTzfR.js","sources":["../../node_modules/d3-shape/src/constant.js","../../node_modules/d3-shape/src/math.js","../../node_modules/d3-shape/src/path.js","../../node_modules/d3-shape/src/arc.js","../../node_modules/d3-shape/src/array.js","../../node_modules/d3-shape/src/curve/linear.js","../../node_modules/d3-shape/src/point.js","../../node_modules/d3-shape/src/line.js","../../node_modules/d3-shape/src/descending.js","../../node_modules/d3-shape/src/identity.js","../../node_modules/d3-shape/src/pie.js","../../node_modules/d3-shape/src/curve/bump.js","../../node_modules/d3-shape/src/noop.js","../../node_modules/d3-shape/src/curve/basis.js","../../node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/d3-shape/src/curve/bundle.js","../../node_modules/d3-shape/src/curve/cardinal.js","../../node_modules/d3-shape/src/curve/cardinalClosed.js","../../node_modules/d3-shape/src/curve/cardinalOpen.js","../../node_modules/d3-shape/src/curve/catmullRom.js","../../node_modules/d3-shape/src/curve/catmullRomClosed.js","../../node_modules/d3-shape/src/curve/catmullRomOpen.js","../../node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/d3-shape/src/curve/monotone.js","../../node_modules/d3-shape/src/curve/natural.js","../../node_modules/d3-shape/src/curve/step.js"],"sourcesContent":["export default function(x) {\n  return function constant() {\n    return x;\n  };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n  return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n  return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n  let digits = 3;\n\n  shape.digits = function(_) {\n    if (!arguments.length) return digits;\n    if (_ == null) {\n      digits = null;\n    } else {\n      const d = Math.floor(_);\n      if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n      digits = d;\n    }\n    return shape;\n  };\n\n  return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n  return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n  return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n  return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n  return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n  return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n  var x10 = x1 - x0, y10 = y1 - y0,\n      x32 = x3 - x2, y32 = y3 - y2,\n      t = y32 * x10 - x32 * y10;\n  if (t * t < epsilon) return;\n  t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n  return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n  var x01 = x0 - x1,\n      y01 = y0 - y1,\n      lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n      ox = lo * y01,\n      oy = -lo * x01,\n      x11 = x0 + ox,\n      y11 = y0 + oy,\n      x10 = x1 + ox,\n      y10 = y1 + oy,\n      x00 = (x11 + x10) / 2,\n      y00 = (y11 + y10) / 2,\n      dx = x10 - x11,\n      dy = y10 - y11,\n      d2 = dx * dx + dy * dy,\n      r = r1 - rc,\n      D = x11 * y10 - x10 * y11,\n      d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n      cx0 = (D * dy - dx * d) / d2,\n      cy0 = (-D * dx - dy * d) / d2,\n      cx1 = (D * dy + dx * d) / d2,\n      cy1 = (-D * dx + dy * d) / d2,\n      dx0 = cx0 - x00,\n      dy0 = cy0 - y00,\n      dx1 = cx1 - x00,\n      dy1 = cy1 - y00;\n\n  // Pick the closer of the two intersection points.\n  // TODO Is there a faster way to determine which intersection to use?\n  if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n  return {\n    cx: cx0,\n    cy: cy0,\n    x01: -ox,\n    y01: -oy,\n    x11: cx0 * (r1 / r - 1),\n    y11: cy0 * (r1 / r - 1)\n  };\n}\n\nexport default function() {\n  var innerRadius = arcInnerRadius,\n      outerRadius = arcOuterRadius,\n      cornerRadius = constant(0),\n      padRadius = null,\n      startAngle = arcStartAngle,\n      endAngle = arcEndAngle,\n      padAngle = arcPadAngle,\n      context = null,\n      path = withPath(arc);\n\n  function arc() {\n    var buffer,\n        r,\n        r0 = +innerRadius.apply(this, arguments),\n        r1 = +outerRadius.apply(this, arguments),\n        a0 = startAngle.apply(this, arguments) - halfPi,\n        a1 = endAngle.apply(this, arguments) - halfPi,\n        da = abs(a1 - a0),\n        cw = a1 > a0;\n\n    if (!context) context = buffer = path();\n\n    // Ensure that the outer radius is always larger than the inner radius.\n    if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n    // Is it a point?\n    if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n    // Or is it a circle or annulus?\n    else if (da > tau - epsilon) {\n      context.moveTo(r1 * cos(a0), r1 * sin(a0));\n      context.arc(0, 0, r1, a0, a1, !cw);\n      if (r0 > epsilon) {\n        context.moveTo(r0 * cos(a1), r0 * sin(a1));\n        context.arc(0, 0, r0, a1, a0, cw);\n      }\n    }\n\n    // Or is it a circular or annular sector?\n    else {\n      var a01 = a0,\n          a11 = a1,\n          a00 = a0,\n          a10 = a1,\n          da0 = da,\n          da1 = da,\n          ap = padAngle.apply(this, arguments) / 2,\n          rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n          rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n          rc0 = rc,\n          rc1 = rc,\n          t0,\n          t1;\n\n      // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n      if (rp > epsilon) {\n        var p0 = asin(rp / r0 * sin(ap)),\n            p1 = asin(rp / r1 * sin(ap));\n        if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n        else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n        if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n        else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n      }\n\n      var x01 = r1 * cos(a01),\n          y01 = r1 * sin(a01),\n          x10 = r0 * cos(a10),\n          y10 = r0 * sin(a10);\n\n      // Apply rounded corners?\n      if (rc > epsilon) {\n        var x11 = r1 * cos(a11),\n            y11 = r1 * sin(a11),\n            x00 = r0 * cos(a00),\n            y00 = r0 * sin(a00),\n            oc;\n\n        // Restrict the corner radius according to the sector angle. If this\n        // intersection fails, it’s probably because the arc is too small, so\n        // disable the corner radius entirely.\n        if (da < pi) {\n          if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n            var ax = x01 - oc[0],\n                ay = y01 - oc[1],\n                bx = x11 - oc[0],\n                by = y11 - oc[1],\n                kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n                lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n            rc0 = min(rc, (r0 - lc) / (kc - 1));\n            rc1 = min(rc, (r1 - lc) / (kc + 1));\n          } else {\n            rc0 = rc1 = 0;\n          }\n        }\n      }\n\n      // Is the sector collapsed to a line?\n      if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n      // Does the sector’s outer ring have rounded corners?\n      else if (rc1 > epsilon) {\n        t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n        t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n        context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n        // Have the corners merged?\n        if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n        // Otherwise, draw the two corners and the ring.\n        else {\n          context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n          context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n          context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n        }\n      }\n\n      // Or is the outer ring just a circular arc?\n      else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n      // Is there no inner ring, and it’s a circular sector?\n      // Or perhaps it’s an annular sector collapsed due to padding?\n      if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n      // Does the sector’s inner ring (or point) have rounded corners?\n      else if (rc0 > epsilon) {\n        t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n        t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n        context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n        // Have the corners merged?\n        if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n        // Otherwise, draw the two corners and the ring.\n        else {\n          context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n          context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n          context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n        }\n      }\n\n      // Or is the inner ring just a circular arc?\n      else context.arc(0, 0, r0, a10, a00, cw);\n    }\n\n    context.closePath();\n\n    if (buffer) return context = null, buffer + \"\" || null;\n  }\n\n  arc.centroid = function() {\n    var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n        a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n    return [cos(a) * r, sin(a) * r];\n  };\n\n  arc.innerRadius = function(_) {\n    return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n  };\n\n  arc.outerRadius = function(_) {\n    return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n  };\n\n  arc.cornerRadius = function(_) {\n    return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n  };\n\n  arc.padRadius = function(_) {\n    return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n  };\n\n  arc.startAngle = function(_) {\n    return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n  };\n\n  arc.endAngle = function(_) {\n    return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n  };\n\n  arc.padAngle = function(_) {\n    return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n  };\n\n  arc.context = function(_) {\n    return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n  };\n\n  return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n  return typeof x === \"object\" && \"length\" in x\n    ? x // Array, TypedArray, NodeList, array-like\n    : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n  this._context = context;\n}\n\nLinear.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // falls through\n      default: this._context.lineTo(x, y); break;\n    }\n  }\n};\n\nexport default function(context) {\n  return new Linear(context);\n}\n","export function x(p) {\n  return p[0];\n}\n\nexport function y(p) {\n  return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n  var defined = constant(true),\n      context = null,\n      curve = curveLinear,\n      output = null,\n      path = withPath(line);\n\n  x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n  y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n  function line(data) {\n    var i,\n        n = (data = array(data)).length,\n        d,\n        defined0 = false,\n        buffer;\n\n    if (context == null) output = curve(buffer = path());\n\n    for (i = 0; i <= n; ++i) {\n      if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n        if (defined0 = !defined0) output.lineStart();\n        else output.lineEnd();\n      }\n      if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n    }\n\n    if (buffer) return output = null, buffer + \"\" || null;\n  }\n\n  line.x = function(_) {\n    return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n  };\n\n  line.y = function(_) {\n    return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n  };\n\n  line.defined = function(_) {\n    return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n  };\n\n  line.curve = function(_) {\n    return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n  };\n\n  line.context = function(_) {\n    return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n  };\n\n  return line;\n}\n","export default function(a, b) {\n  return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n  return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n  var value = identity,\n      sortValues = descending,\n      sort = null,\n      startAngle = constant(0),\n      endAngle = constant(tau),\n      padAngle = constant(0);\n\n  function pie(data) {\n    var i,\n        n = (data = array(data)).length,\n        j,\n        k,\n        sum = 0,\n        index = new Array(n),\n        arcs = new Array(n),\n        a0 = +startAngle.apply(this, arguments),\n        da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n        a1,\n        p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n        pa = p * (da < 0 ? -1 : 1),\n        v;\n\n    for (i = 0; i < n; ++i) {\n      if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n        sum += v;\n      }\n    }\n\n    // Optionally sort the arcs by previously-computed values or by data.\n    if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n    else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n    // Compute the arcs! They are stored in the original data's order.\n    for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n      j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n        data: data[j],\n        index: i,\n        value: v,\n        startAngle: a0,\n        endAngle: a1,\n        padAngle: p\n      };\n    }\n\n    return arcs;\n  }\n\n  pie.value = function(_) {\n    return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n  };\n\n  pie.sortValues = function(_) {\n    return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n  };\n\n  pie.sort = function(_) {\n    return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n  };\n\n  pie.startAngle = function(_) {\n    return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n  };\n\n  pie.endAngle = function(_) {\n    return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n  };\n\n  pie.padAngle = function(_) {\n    return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n  };\n\n  return pie;\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n  constructor(context, x) {\n    this._context = context;\n    this._x = x;\n  }\n  areaStart() {\n    this._line = 0;\n  }\n  areaEnd() {\n    this._line = NaN;\n  }\n  lineStart() {\n    this._point = 0;\n  }\n  lineEnd() {\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  }\n  point(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: {\n        this._point = 1;\n        if (this._line) this._context.lineTo(x, y);\n        else this._context.moveTo(x, y);\n        break;\n      }\n      case 1: this._point = 2; // falls through\n      default: {\n        if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n        else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n        break;\n      }\n    }\n    this._x0 = x, this._y0 = y;\n  }\n}\n\nclass BumpRadial {\n  constructor(context) {\n    this._context = context;\n  }\n  lineStart() {\n    this._point = 0;\n  }\n  lineEnd() {}\n  point(x, y) {\n    x = +x, y = +y;\n    if (this._point === 0) {\n      this._point = 1;\n    } else {\n      const p0 = pointRadial(this._x0, this._y0);\n      const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n      const p2 = pointRadial(x, this._y0);\n      const p3 = pointRadial(x, y);\n      this._context.moveTo(...p0);\n      this._context.bezierCurveTo(...p1, ...p2, ...p3);\n    }\n    this._x0 = x, this._y0 = y;\n  }\n}\n\nexport function bumpX(context) {\n  return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n  return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n  return new BumpRadial(context);\n}\n","export default function() {}\n","export function point(that, x, y) {\n  that._context.bezierCurveTo(\n    (2 * that._x0 + that._x1) / 3,\n    (2 * that._y0 + that._y1) / 3,\n    (that._x0 + 2 * that._x1) / 3,\n    (that._y0 + 2 * that._y1) / 3,\n    (that._x0 + 4 * that._x1 + x) / 6,\n    (that._y0 + 4 * that._y1 + y) / 6\n  );\n}\n\nexport function Basis(context) {\n  this._context = context;\n}\n\nBasis.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 3: point(this, this._x1, this._y1); // falls through\n      case 2: this._context.lineTo(this._x1, this._y1); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n  this._context = context;\n}\n\nBasisClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x2, this._y2);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n        this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x2, this._y2);\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n      case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n      case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n  this._context = context;\n}\n\nBasisOpen.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n      case 3: this._point = 4; // falls through\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n  }\n};\n\nexport default function(context) {\n  return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n  this._basis = new Basis(context);\n  this._beta = beta;\n}\n\nBundle.prototype = {\n  lineStart: function() {\n    this._x = [];\n    this._y = [];\n    this._basis.lineStart();\n  },\n  lineEnd: function() {\n    var x = this._x,\n        y = this._y,\n        j = x.length - 1;\n\n    if (j > 0) {\n      var x0 = x[0],\n          y0 = y[0],\n          dx = x[j] - x0,\n          dy = y[j] - y0,\n          i = -1,\n          t;\n\n      while (++i <= j) {\n        t = i / j;\n        this._basis.point(\n          this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n          this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n        );\n      }\n    }\n\n    this._x = this._y = null;\n    this._basis.lineEnd();\n  },\n  point: function(x, y) {\n    this._x.push(+x);\n    this._y.push(+y);\n  }\n};\n\nexport default (function custom(beta) {\n\n  function bundle(context) {\n    return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n  }\n\n  bundle.beta = function(beta) {\n    return custom(+beta);\n  };\n\n  return bundle;\n})(0.85);\n","export function point(that, x, y) {\n  that._context.bezierCurveTo(\n    that._x1 + that._k * (that._x2 - that._x0),\n    that._y1 + that._k * (that._y2 - that._y0),\n    that._x2 + that._k * (that._x1 - x),\n    that._y2 + that._k * (that._y1 - y),\n    that._x2,\n    that._y2\n  );\n}\n\nexport function Cardinal(context, tension) {\n  this._context = context;\n  this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x2, this._y2); break;\n      case 3: point(this, this._x1, this._y1); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n      case 2: this._point = 3; // falls through\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\nexport default (function custom(tension) {\n\n  function cardinal(context) {\n    return new Cardinal(context, tension);\n  }\n\n  cardinal.tension = function(tension) {\n    return custom(+tension);\n  };\n\n  return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n  this._context = context;\n  this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.lineTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        this.point(this._x5, this._y5);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\nexport default (function custom(tension) {\n\n  function cardinal(context) {\n    return new CardinalClosed(context, tension);\n  }\n\n  cardinal.tension = function(tension) {\n    return custom(+tension);\n  };\n\n  return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n  this._context = context;\n  this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n      case 3: this._point = 4; // falls through\n      default: point(this, x, y); break;\n    }\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\nexport default (function custom(tension) {\n\n  function cardinal(context) {\n    return new CardinalOpen(context, tension);\n  }\n\n  cardinal.tension = function(tension) {\n    return custom(+tension);\n  };\n\n  return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n  var x1 = that._x1,\n      y1 = that._y1,\n      x2 = that._x2,\n      y2 = that._y2;\n\n  if (that._l01_a > epsilon) {\n    var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n        n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n    x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n    y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n  }\n\n  if (that._l23_a > epsilon) {\n    var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n        m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n    x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n    y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n  }\n\n  that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n  this._context = context;\n  this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._l01_a = this._l12_a = this._l23_a =\n    this._l01_2a = this._l12_2a = this._l23_2a =\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x2, this._y2); break;\n      case 3: this.point(this._x2, this._y2); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n\n    if (this._point) {\n      var x23 = this._x2 - x,\n          y23 = this._y2 - y;\n      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n    }\n\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; // falls through\n      default: point(this, x, y); break;\n    }\n\n    this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\nexport default (function custom(alpha) {\n\n  function catmullRom(context) {\n    return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n  }\n\n  catmullRom.alpha = function(alpha) {\n    return custom(+alpha);\n  };\n\n  return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n  this._context = context;\n  this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n    this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n    this._l01_a = this._l12_a = this._l23_a =\n    this._l01_2a = this._l12_2a = this._l23_2a =\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 1: {\n        this._context.moveTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 2: {\n        this._context.lineTo(this._x3, this._y3);\n        this._context.closePath();\n        break;\n      }\n      case 3: {\n        this.point(this._x3, this._y3);\n        this.point(this._x4, this._y4);\n        this.point(this._x5, this._y5);\n        break;\n      }\n    }\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n\n    if (this._point) {\n      var x23 = this._x2 - x,\n          y23 = this._y2 - y;\n      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n    }\n\n    switch (this._point) {\n      case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n      case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n      case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n      default: point(this, x, y); break;\n    }\n\n    this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\nexport default (function custom(alpha) {\n\n  function catmullRom(context) {\n    return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n  }\n\n  catmullRom.alpha = function(alpha) {\n    return custom(+alpha);\n  };\n\n  return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n  this._context = context;\n  this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 = this._x2 =\n    this._y0 = this._y1 = this._y2 = NaN;\n    this._l01_a = this._l12_a = this._l23_a =\n    this._l01_2a = this._l12_2a = this._l23_2a =\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n\n    if (this._point) {\n      var x23 = this._x2 - x,\n          y23 = this._y2 - y;\n      this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n    }\n\n    switch (this._point) {\n      case 0: this._point = 1; break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n      case 3: this._point = 4; // falls through\n      default: point(this, x, y); break;\n    }\n\n    this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n    this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n    this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n    this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n  }\n};\n\nexport default (function custom(alpha) {\n\n  function catmullRom(context) {\n    return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n  }\n\n  catmullRom.alpha = function(alpha) {\n    return custom(+alpha);\n  };\n\n  return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n  this._context = context;\n}\n\nLinearClosed.prototype = {\n  areaStart: noop,\n  areaEnd: noop,\n  lineStart: function() {\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (this._point) this._context.closePath();\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    if (this._point) this._context.lineTo(x, y);\n    else this._point = 1, this._context.moveTo(x, y);\n  }\n};\n\nexport default function(context) {\n  return new LinearClosed(context);\n}\n","function sign(x) {\n  return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n  var h0 = that._x1 - that._x0,\n      h1 = x2 - that._x1,\n      s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n      s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n      p = (s0 * h1 + s1 * h0) / (h0 + h1);\n  return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n  var h = that._x1 - that._x0;\n  return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n  var x0 = that._x0,\n      y0 = that._y0,\n      x1 = that._x1,\n      y1 = that._y1,\n      dx = (x1 - x0) / 3;\n  that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n  this._context = context;\n}\n\nMonotoneX.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x0 = this._x1 =\n    this._y0 = this._y1 =\n    this._t0 = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    switch (this._point) {\n      case 2: this._context.lineTo(this._x1, this._y1); break;\n      case 3: point(this, this._t0, slope2(this, this._t0)); break;\n    }\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    var t1 = NaN;\n\n    x = +x, y = +y;\n    if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; break;\n      case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n      default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n    }\n\n    this._x0 = this._x1, this._x1 = x;\n    this._y0 = this._y1, this._y1 = y;\n    this._t0 = t1;\n  }\n}\n\nfunction MonotoneY(context) {\n  this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n  MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n  this._context = context;\n}\n\nReflectContext.prototype = {\n  moveTo: function(x, y) { this._context.moveTo(y, x); },\n  closePath: function() { this._context.closePath(); },\n  lineTo: function(x, y) { this._context.lineTo(y, x); },\n  bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n  return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n  return new MonotoneY(context);\n}\n","function Natural(context) {\n  this._context = context;\n}\n\nNatural.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = [];\n    this._y = [];\n  },\n  lineEnd: function() {\n    var x = this._x,\n        y = this._y,\n        n = x.length;\n\n    if (n) {\n      this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n      if (n === 2) {\n        this._context.lineTo(x[1], y[1]);\n      } else {\n        var px = controlPoints(x),\n            py = controlPoints(y);\n        for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n          this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n        }\n      }\n    }\n\n    if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n    this._line = 1 - this._line;\n    this._x = this._y = null;\n  },\n  point: function(x, y) {\n    this._x.push(+x);\n    this._y.push(+y);\n  }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n  var i,\n      n = x.length - 1,\n      m,\n      a = new Array(n),\n      b = new Array(n),\n      r = new Array(n);\n  a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n  for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n  a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n  for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n  a[n - 1] = r[n - 1] / b[n - 1];\n  for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n  b[n - 1] = (x[n] + a[n - 1]) / 2;\n  for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n  return [a, b];\n}\n\nexport default function(context) {\n  return new Natural(context);\n}\n","function Step(context, t) {\n  this._context = context;\n  this._t = t;\n}\n\nStep.prototype = {\n  areaStart: function() {\n    this._line = 0;\n  },\n  areaEnd: function() {\n    this._line = NaN;\n  },\n  lineStart: function() {\n    this._x = this._y = NaN;\n    this._point = 0;\n  },\n  lineEnd: function() {\n    if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n    if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n    if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n  },\n  point: function(x, y) {\n    x = +x, y = +y;\n    switch (this._point) {\n      case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n      case 1: this._point = 2; // falls through\n      default: {\n        if (this._t <= 0) {\n          this._context.lineTo(this._x, y);\n          this._context.lineTo(x, y);\n        } else {\n          var x1 = this._x * (1 - this._t) + x * this._t;\n          this._context.lineTo(x1, this._y);\n          this._context.lineTo(x1, y);\n        }\n        break;\n      }\n    }\n    this._x = x, this._y = y;\n  }\n};\n\nexport default function(context) {\n  return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n  return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n  return new Step(context, 1);\n}\n"],"names":["constant","x","abs","atan2","cos","max","min","sin","sqrt","epsilon","pi","halfPi","tau","acos","asin","withPath","shape","digits","_","d","Path","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","intersect","x0","y0","x1","y1","x2","y2","x3","y3","x10","y10","x32","y32","t","cornerTangents","r1","rc","cw","x01","y01","lo","ox","oy","x11","y11","x00","y00","dx","dy","d2","r","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","arc","innerRadius","outerRadius","cornerRadius","padRadius","startAngle","endAngle","padAngle","context","path","buffer","r0","a0","a1","da","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","t0","t1","p0","p1","oc","ax","ay","bx","by","kc","lc","a","array","Linear","y","curveLinear","p","line","defined","curve","output","pointX","pointY","data","i","n","defined0","descending","b","identity","pie","value","sortValues","sort","j","k","sum","index","arcs","pa","v","Bump","bumpX","bumpY","noop","point","that","Basis","curveBasis","BasisClosed","curveBasisClosed","BasisOpen","curveBasisOpen","Bundle","beta","curveBundle","custom","bundle","Cardinal","tension","curveCardinal","cardinal","CardinalClosed","curveCardinalClosed","CardinalOpen","curveCardinalOpen","m","CatmullRom","alpha","x23","y23","curveCatmullRom","catmullRom","CatmullRomClosed","curveCatmullRomClosed","CatmullRomOpen","curveCatmullRomOpen","LinearClosed","curveLinearClosed","sign","slope3","h0","h1","s0","s1","slope2","h","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","i0","i1","curveNatural","Step","curveStep","stepBefore","stepAfter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}