{"version":3,"file":"js/17895-0e34b32d47caff717b46.js","mappings":"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","sources":["webpack://StravaModern/./node_modules/d3-array/src/ascending.js","webpack://StravaModern/./node_modules/d3-array/src/bisector.js","webpack://StravaModern/./node_modules/d3-array/src/bisect.js","webpack://StravaModern/./node_modules/d3-array/src/number.js","webpack://StravaModern/./node_modules/d3-array/src/max.js","webpack://StravaModern/./node_modules/d3-array/src/min.js","webpack://StravaModern/./node_modules/d3-axis/src/array.js","webpack://StravaModern/./node_modules/d3-axis/src/identity.js","webpack://StravaModern/./node_modules/d3-axis/src/axis.js","webpack://StravaModern/./node_modules/d3-path/src/path.js","webpack://StravaModern/./node_modules/d3-array/src/ticks.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-color/src/define.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-color/src/color.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/basis.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/constant.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/color.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/rgb.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/basisClosed.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/array.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/date.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/number.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/object.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/string.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/numberArray.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/value.js","webpack://StravaModern/./node_modules/d3-scale/node_modules/d3-interpolate/src/round.js","webpack://StravaModern/./node_modules/d3-scale/src/number.js","webpack://StravaModern/./node_modules/d3-scale/src/continuous.js","webpack://StravaModern/./node_modules/d3-scale/src/constant.js","webpack://StravaModern/./node_modules/d3-scale/src/init.js","webpack://StravaModern/./node_modules/d3-format/src/formatSpecifier.js","webpack://StravaModern/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://StravaModern/./node_modules/d3-format/src/formatDecimal.js","webpack://StravaModern/./node_modules/d3-format/src/exponent.js","webpack://StravaModern/./node_modules/d3-format/src/formatRounded.js","webpack://StravaModern/./node_modules/d3-format/src/formatTypes.js","webpack://StravaModern/./node_modules/d3-format/src/identity.js","webpack://StravaModern/./node_modules/d3-format/src/locale.js","webpack://StravaModern/./node_modules/d3-format/src/defaultLocale.js","webpack://StravaModern/./node_modules/d3-format/src/formatGroup.js","webpack://StravaModern/./node_modules/d3-format/src/formatNumerals.js","webpack://StravaModern/./node_modules/d3-format/src/formatTrim.js","webpack://StravaModern/./node_modules/d3-scale/src/tickFormat.js","webpack://StravaModern/./node_modules/d3-format/src/precisionPrefix.js","webpack://StravaModern/./node_modules/d3-format/src/precisionRound.js","webpack://StravaModern/./node_modules/d3-format/src/precisionFixed.js","webpack://StravaModern/./node_modules/d3-scale/src/linear.js","webpack://StravaModern/./node_modules/d3-selection/src/selector.js","webpack://StravaModern/./node_modules/d3-selection/src/selectorAll.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/sparse.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/enter.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/data.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/sort.js","webpack://StravaModern/./node_modules/d3-selection/src/namespaces.js","webpack://StravaModern/./node_modules/d3-selection/src/namespace.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/attr.js","webpack://StravaModern/./node_modules/d3-selection/src/window.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/style.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/property.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/classed.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/text.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/html.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/raise.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/lower.js","webpack://StravaModern/./node_modules/d3-selection/src/creator.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/insert.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/remove.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/clone.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/on.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/dispatch.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/index.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/select.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/selectAll.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/filter.js","webpack://StravaModern/./node_modules/d3-selection/src/matcher.js","webpack://StravaModern/./node_modules/d3-selection/src/constant.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/exit.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/join.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/merge.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/order.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/call.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/nodes.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/node.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/size.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/empty.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/each.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/append.js","webpack://StravaModern/./node_modules/d3-selection/src/selection/datum.js","webpack://StravaModern/./node_modules/d3-selection/src/select.js","webpack://StravaModern/./node_modules/d3-shape/src/area.js","webpack://StravaModern/./node_modules/d3-shape/src/constant.js","webpack://StravaModern/./node_modules/d3-shape/src/curve/linear.js","webpack://StravaModern/./node_modules/d3-shape/src/line.js","webpack://StravaModern/./node_modules/d3-shape/src/point.js","webpack://StravaModern/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://StravaModern/./node_modules/prop-types/index.js","webpack://StravaModern/./node_modules/prop-types/lib/ReactPropTypesSecret.js"],"sourcesContent":["export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(f) {\n let delta = f;\n let compare = f;\n\n if (f.length === 1) {\n delta = (d, x) => f(d) - x;\n compare = ascendingComparator(f);\n }\n\n function left(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n\n function right(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n const mid = (lo + hi) >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n\n function center(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction ascendingComparator(f) {\n return (d, x) => ascending(f(d), x);\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return x;\n}\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","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, ccw = !!ccw;\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","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n let r0 = Math.round(start / step), r1 = Math.round(stop / step);\n if (r0 * step < start) ++r0;\n if (r1 * step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) * step;\n } else {\n step = -step;\n let r0 = Math.round(start * step), r1 = Math.round(stop * step);\n if (r0 / step < start) ++r0;\n if (r1 / step > stop) --r1;\n ticks = new Array(n = r1 - r0 + 1);\n while (++i < n) ticks[i] = (r0 + i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\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(x) {\n return function constant() {\n return x;\n };\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","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\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","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n"],"names":["a","b","NaN","f","delta","compare","left","x","lo","hi","length","mid","d","ascending","ascendingComparator","center","i","right","ascendingBisect","bisector","bisectRight","bisectLeft","max","values","valueof","undefined","value","index","min","slice","Array","prototype","epsilon","translateX","translateY","y","number","scale","offset","Math","bandwidth","round","entering","this","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","k","transform","context","ticks","apply","domain","format","identity","spacing","range","range0","range1","position","copy","selection","path","selectAll","data","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","text","merge","insert","transition","isFinite","getAttribute","p","parentNode","remove","filter","each","_","arguments","call","tickSize","axisBottom","axisLeft","pi","PI","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","constructor","moveTo","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","e10","e5","e2","tickIncrement","start","stop","count","step","power","floor","log","LN10","error","pow","factory","extend","parent","definition","Object","create","key","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color","m","trim","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","hasOwnProperty","n","g","rgbConvert","o","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","s","Hsl","hslConvert","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","channels","assign","displayable","formatHsl","linear","t","gamma","nogamma","exponential","rgbGamma","end","rgbSpline","spline","colors","genericArray","nb","na","c","Date","setTime","reA","reB","source","am","bm","bs","bi","lastIndex","q","push","one","zero","join","string","date","ArrayBuffer","isView","DataView","isArray","valueOf","object","unit","normalize","bimap","interpolate","d0","d1","r0","r1","polymap","j","reverse","bisect","target","clamp","unknown","transformer","untransform","piecewise","output","input","rescale","map","invert","from","rangeRound","u","continuous","initRange","prefixExponent","re","formatSpecifier","specifier","match","FormatSpecifier","fill","align","sign","symbol","width","comma","precision","type","formatDecimalParts","toExponential","indexOf","coefficient","exponent","toFixed","toLocaleString","replace","toPrecision","formatRounded","toUpperCase","formatPrefix","prefixes","locale","grouping","thousands","group","Number","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","prefix","test","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i1","i0","formatTrim","charCodeAt","Infinity","padding","e","step0","step1","tickStep","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","ceil","none","selector","querySelector","empty","update","EnterNode","datum","ownerDocument","namespaceURI","_next","_parent","__data__","appendChild","child","insertBefore","next","querySelectorAll","bindIndex","node","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","xhtml","svg","xlink","xml","xmlns","name","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","document","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","split","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","splice","contains","filterEvents","mouseenter","mouseleave","filterContextListener","listener","contextListener","event","related","relatedTarget","compareDocumentPosition","event1","event0","parseTypenames","typenames","onRemove","typename","on","__on","removeEventListener","capture","onAdd","wrap","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","root","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","matches","matcher","size","bind","enterGroup","updateGroup","previous","_enter","_exit","sparse","onenter","onupdate","onexit","groups0","groups1","m0","merges","group0","group1","sort","compareNode","sortgroups","sortgroup","callback","nodes","getAttributeNS","property","classed","html","creator","before","deep","dispatch","defined","curve","area","buffer","defined0","x0z","y0z","areaStart","lineStart","lineEnd","point","areaEnd","arealine","lineX0","lineY0","lineY1","lineX1","Linear","_context","_line","_point","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","module","exports","shim","props","propName","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","array","bool","func","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes"],"sourceRoot":""}