{"version":3,"sources":["webpack:///../node_modules/d3-path/src/path.js","webpack:///../node_modules/d3-shape/src/constant.js","webpack:///../node_modules/d3-shape/src/math.js","webpack:///../node_modules/d3-shape/src/arc.js","webpack:///../node_modules/d3-shape/src/curve/linear.js","webpack:///../node_modules/d3-shape/src/point.js","webpack:///../node_modules/d3-shape/src/line.js","webpack:///../node_modules/d3-shape/src/area.js","webpack:///../node_modules/d3-shape/src/descending.js","webpack:///../node_modules/d3-shape/src/identity.js","webpack:///../node_modules/d3-shape/src/pie.js","webpack:///../node_modules/d3-shape/src/curve/radial.js","webpack:///../node_modules/d3-shape/src/lineRadial.js","webpack:///../node_modules/d3-shape/src/areaRadial.js","webpack:///../node_modules/d3-shape/src/pointRadial.js","webpack:///../node_modules/d3-shape/src/array.js","webpack:///../node_modules/d3-shape/src/link/index.js","webpack:///../node_modules/d3-shape/src/symbol/circle.js","webpack:///../node_modules/d3-shape/src/symbol/cross.js","webpack:///../node_modules/d3-shape/src/symbol/diamond.js","webpack:///../node_modules/d3-shape/src/symbol/star.js","webpack:///../node_modules/d3-shape/src/symbol/square.js","webpack:///../node_modules/d3-shape/src/symbol/triangle.js","webpack:///../node_modules/d3-shape/src/symbol/wye.js","webpack:///../node_modules/d3-shape/src/symbol.js","webpack:///../node_modules/d3-shape/src/noop.js","webpack:///../node_modules/d3-shape/src/curve/basis.js","webpack:///../node_modules/d3-shape/src/curve/basisClosed.js","webpack:///../node_modules/d3-shape/src/curve/basisOpen.js","webpack:///../node_modules/d3-shape/src/curve/bundle.js","webpack:///../node_modules/d3-shape/src/curve/cardinal.js","webpack:///../node_modules/d3-shape/src/curve/cardinalClosed.js","webpack:///../node_modules/d3-shape/src/curve/cardinalOpen.js","webpack:///../node_modules/d3-shape/src/curve/catmullRom.js","webpack:///../node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack:///../node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack:///../node_modules/d3-shape/src/curve/linearClosed.js","webpack:///../node_modules/d3-shape/src/curve/monotone.js","webpack:///../node_modules/d3-shape/src/curve/natural.js","webpack:///../node_modules/d3-shape/src/curve/step.js","webpack:///../node_modules/d3-shape/src/offset/none.js","webpack:///../node_modules/d3-shape/src/order/none.js","webpack:///../node_modules/d3-shape/src/stack.js","webpack:///../node_modules/d3-shape/src/offset/expand.js","webpack:///../node_modules/d3-shape/src/offset/diverging.js","webpack:///../node_modules/d3-shape/src/offset/silhouette.js","webpack:///../node_modules/d3-shape/src/offset/wiggle.js","webpack:///../node_modules/d3-shape/src/order/appearance.js","webpack:///../node_modules/d3-shape/src/order/ascending.js","webpack:///../node_modules/d3-shape/src/order/descending.js","webpack:///../node_modules/d3-shape/src/order/insideOut.js","webpack:///../node_modules/d3-shape/src/order/reverse.js"],"names":["pi","Math","PI","tau","tauEpsilon","Path","this","_x0","_y0","_x1","_y1","_","path","prototype","constructor","moveTo","x","y","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","r","x0","y0","x21","y21","x01","y01","l01_2","Error","abs","x20","y20","l21_2","l20_2","l21","sqrt","l01","l","tan","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","h","toString","atan2","max","min","halfPi","asin","arcInnerRadius","d","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","t","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","constant","padRadius","context","buffer","r0","apply","arguments","t0","t1","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","a","length","Linear","_context","areaStart","_line","areaEnd","NaN","lineStart","_point","lineEnd","point","p","defined","curve","output","line","data","i","n","defined0","area","j","k","x0z","Array","y0z","arealine","lineX0","lineY0","lineY1","lineX1","b","value","identity","sortValues","descending","sort","pie","v","sum","index","arcs","pa","curveRadialLinear","curveRadial","Radial","_curve","radial","lineRadial","c","angle","radius","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","slice","linkSource","source","linkTarget","target","link","argv","call","s","curveHorizontal","curveVertical","pointRadial","p2","p3","linkHorizontal","linkVertical","linkRadial","draw","size","tan30","tan30_2","kr","kx","ky","sqrt3","symbols","circle","cross","diamond","square","star","triangle","wye","type","symbol","that","Basis","BasisClosed","noop","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","beta","_basis","_beta","_x","_y","push","bundle","custom","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","m","CatmullRom","alpha","_alpha","x23","y23","pow","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","sign","slope3","h0","h1","s0","s1","slope2","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","_t0","Object","create","px","py","i0","i1","Step","_t","stepBefore","stepAfter","series","order","isNaN","o","stackValue","key","keys","offset","stack","oz","kz","sz","sij","ki","si","none","yp","yn","s2","sij0","s3","sk","peaks","map","peak","vi","vj","Infinity","sums","ascending","reverse","appearance","top","bottom","tops","bottoms","concat"],"mappings":"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","file":"38.6d7d19636b88ef3ce6bc.js","sourcesContent":["var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var 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\";\nimport constant from \"./constant\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math\";\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\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.\n if (da < pi && (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 }\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","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; // proceed\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 {path} from \"d3-path\";\nimport constant from \"./constant\";\nimport curveLinear from \"./curve/linear\";\nimport {x as pointX, y as pointY} from \"./point\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = 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","import {path} from \"d3-path\";\nimport constant from \"./constant\";\nimport curveLinear from \"./curve/linear\";\nimport line from \"./line\";\nimport {x as pointX, y as pointY} from \"./point\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\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) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\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 constant from \"./constant\";\nimport descending from \"./descending\";\nimport identity from \"./identity\";\nimport {tau} from \"./math\";\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.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 curveLinear from \"./linear\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial\";\nimport line from \"./line\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial\";\nimport area from \"./area\";\nimport {lineRadial} from \"./lineRadial\"\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","export var slice = Array.prototype.slice;\n","import {path} from \"d3-path\";\nimport {slice} from \"../array\";\nimport constant from \"../constant\";\nimport {x as pointX, y as pointY} from \"../point\";\nimport pointRadial from \"../pointRadial\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {pi, tau} from \"../math\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {pi, tau} from \"../math\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle\";\nimport cross from \"./symbol/cross\";\nimport diamond from \"./symbol/diamond\";\nimport star from \"./symbol/star\";\nimport square from \"./symbol/square\";\nimport triangle from \"./symbol/triangle\";\nimport wye from \"./symbol/wye\";\nimport constant from \"./constant\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\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); // proceed\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); // proceed\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\";\nimport {point} from \"./basis\";\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\";\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; // proceed\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\";\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; // proceed\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\";\nimport {point} from \"./cardinal\";\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\";\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; // proceed\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\";\nimport {Cardinal} from \"./cardinal\";\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; // proceed\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\";\nimport noop from \"../noop\";\nimport {point} from \"./catmullRom\";\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\";\nimport {point} from \"./catmullRom\";\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; // proceed\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\";\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; // proceed\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","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import {slice} from \"./array\";\nimport constant from \"./constant\";\nimport offsetNone from \"./offset/none\";\nimport orderNone from \"./order/none\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) >= 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = yp;\n }\n }\n }\n}\n","import none from \"./none\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import none from \"./none\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance\";\nimport {sum} from \"./ascending\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n"],"sourceRoot":""}