Page MenuHomeSoftware Heritage

d3.f989183a810fb9dbb086.js.map
No OneTemporary

d3.f989183a810fb9dbb086.js.map

{
"version": 3,
"file": "js/d3.f989183a810fb9dbb086.js",
"mappings": "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",
"sources": [
"webpack://swh/./node_modules/d3-array/src/array.js",
"webpack://swh/./node_modules/d3-array/src/ascending.js",
"webpack://swh/./node_modules/d3-array/src/bin.js",
"webpack://swh/./node_modules/d3-array/src/bisect.js",
"webpack://swh/./node_modules/d3-array/src/bisector.js",
"webpack://swh/./node_modules/d3-array/src/constant.js",
"webpack://swh/./node_modules/d3-array/src/count.js",
"webpack://swh/./node_modules/d3-array/src/cross.js",
"webpack://swh/./node_modules/d3-array/src/cumsum.js",
"webpack://swh/./node_modules/d3-array/src/descending.js",
"webpack://swh/./node_modules/d3-array/src/deviation.js",
"webpack://swh/./node_modules/d3-array/src/difference.js",
"webpack://swh/./node_modules/d3-array/src/disjoint.js",
"webpack://swh/./node_modules/d3-array/src/every.js",
"webpack://swh/./node_modules/d3-array/src/extent.js",
"webpack://swh/./node_modules/d3-array/src/filter.js",
"webpack://swh/./node_modules/d3-array/src/fsum.js",
"webpack://swh/./node_modules/d3-array/src/greatest.js",
"webpack://swh/./node_modules/d3-array/src/greatestIndex.js",
"webpack://swh/./node_modules/d3-array/src/group.js",
"webpack://swh/./node_modules/d3-array/src/groupSort.js",
"webpack://swh/./node_modules/d3-array/src/identity.js",
"webpack://swh/./node_modules/d3-array/src/intersection.js",
"webpack://swh/./node_modules/d3-array/src/least.js",
"webpack://swh/./node_modules/d3-array/src/leastIndex.js",
"webpack://swh/./node_modules/d3-array/src/map.js",
"webpack://swh/./node_modules/d3-array/src/max.js",
"webpack://swh/./node_modules/d3-array/src/maxIndex.js",
"webpack://swh/./node_modules/d3-array/src/mean.js",
"webpack://swh/./node_modules/d3-array/src/median.js",
"webpack://swh/./node_modules/d3-array/src/merge.js",
"webpack://swh/./node_modules/d3-array/src/min.js",
"webpack://swh/./node_modules/d3-array/src/minIndex.js",
"webpack://swh/./node_modules/d3-array/src/mode.js",
"webpack://swh/./node_modules/d3-array/src/nice.js",
"webpack://swh/./node_modules/d3-array/src/number.js",
"webpack://swh/./node_modules/d3-array/src/pairs.js",
"webpack://swh/./node_modules/d3-array/src/permute.js",
"webpack://swh/./node_modules/d3-array/src/quantile.js",
"webpack://swh/./node_modules/d3-array/src/quickselect.js",
"webpack://swh/./node_modules/d3-array/src/range.js",
"webpack://swh/./node_modules/d3-array/src/reduce.js",
"webpack://swh/./node_modules/d3-array/src/reverse.js",
"webpack://swh/./node_modules/d3-array/src/scan.js",
"webpack://swh/./node_modules/d3-array/src/set.js",
"webpack://swh/./node_modules/d3-array/src/shuffle.js",
"webpack://swh/./node_modules/d3-array/src/some.js",
"webpack://swh/./node_modules/d3-array/src/sort.js",
"webpack://swh/./node_modules/d3-array/src/subset.js",
"webpack://swh/./node_modules/d3-array/src/sum.js",
"webpack://swh/./node_modules/d3-array/src/superset.js",
"webpack://swh/./node_modules/d3-array/src/threshold/freedmanDiaconis.js",
"webpack://swh/./node_modules/d3-array/src/threshold/scott.js",
"webpack://swh/./node_modules/d3-array/src/threshold/sturges.js",
"webpack://swh/./node_modules/d3-array/src/ticks.js",
"webpack://swh/./node_modules/d3-array/src/transpose.js",
"webpack://swh/./node_modules/d3-array/src/union.js",
"webpack://swh/./node_modules/d3-array/src/variance.js",
"webpack://swh/./node_modules/d3-array/src/zip.js",
"webpack://swh/./node_modules/d3-axis/src/axis.js",
"webpack://swh/./node_modules/d3-axis/src/identity.js",
"webpack://swh/./node_modules/d3-color/src/color.js",
"webpack://swh/./node_modules/d3-color/src/define.js",
"webpack://swh/./node_modules/d3-dispatch/src/dispatch.js",
"webpack://swh/./node_modules/d3-ease/src/cubic.js",
"webpack://swh/./node_modules/d3-format/src/defaultLocale.js",
"webpack://swh/./node_modules/d3-format/src/exponent.js",
"webpack://swh/./node_modules/d3-format/src/formatDecimal.js",
"webpack://swh/./node_modules/d3-format/src/formatGroup.js",
"webpack://swh/./node_modules/d3-format/src/formatNumerals.js",
"webpack://swh/./node_modules/d3-format/src/formatPrefixAuto.js",
"webpack://swh/./node_modules/d3-format/src/formatRounded.js",
"webpack://swh/./node_modules/d3-format/src/formatSpecifier.js",
"webpack://swh/./node_modules/d3-format/src/formatTrim.js",
"webpack://swh/./node_modules/d3-format/src/formatTypes.js",
"webpack://swh/./node_modules/d3-format/src/identity.js",
"webpack://swh/./node_modules/d3-format/src/locale.js",
"webpack://swh/./node_modules/d3-format/src/precisionFixed.js",
"webpack://swh/./node_modules/d3-format/src/precisionPrefix.js",
"webpack://swh/./node_modules/d3-format/src/precisionRound.js",
"webpack://swh/./node_modules/d3-interpolate/src/array.js",
"webpack://swh/./node_modules/d3-interpolate/src/basis.js",
"webpack://swh/./node_modules/d3-interpolate/src/basisClosed.js",
"webpack://swh/./node_modules/d3-interpolate/src/color.js",
"webpack://swh/./node_modules/d3-interpolate/src/constant.js",
"webpack://swh/./node_modules/d3-interpolate/src/date.js",
"webpack://swh/./node_modules/d3-interpolate/src/number.js",
"webpack://swh/./node_modules/d3-interpolate/src/numberArray.js",
"webpack://swh/./node_modules/d3-interpolate/src/object.js",
"webpack://swh/./node_modules/d3-interpolate/src/piecewise.js",
"webpack://swh/./node_modules/d3-interpolate/src/rgb.js",
"webpack://swh/./node_modules/d3-interpolate/src/round.js",
"webpack://swh/./node_modules/d3-interpolate/src/string.js",
"webpack://swh/./node_modules/d3-interpolate/src/transform/decompose.js",
"webpack://swh/./node_modules/d3-interpolate/src/transform/index.js",
"webpack://swh/./node_modules/d3-interpolate/src/transform/parse.js",
"webpack://swh/./node_modules/d3-interpolate/src/value.js",
"webpack://swh/./node_modules/d3-path/src/path.js",
"webpack://swh/./node_modules/d3-scale/src/band.js",
"webpack://swh/./node_modules/d3-scale/src/constant.js",
"webpack://swh/./node_modules/d3-scale/src/continuous.js",
"webpack://swh/./node_modules/d3-scale/src/diverging.js",
"webpack://swh/./node_modules/d3-scale/src/identity.js",
"webpack://swh/./node_modules/d3-scale/src/init.js",
"webpack://swh/./node_modules/d3-scale/src/linear.js",
"webpack://swh/./node_modules/d3-scale/src/log.js",
"webpack://swh/./node_modules/d3-scale/src/nice.js",
"webpack://swh/./node_modules/d3-scale/src/number.js",
"webpack://swh/./node_modules/d3-scale/src/ordinal.js",
"webpack://swh/./node_modules/d3-scale/src/pow.js",
"webpack://swh/./node_modules/d3-scale/src/quantile.js",
"webpack://swh/./node_modules/d3-scale/src/quantize.js",
"webpack://swh/./node_modules/d3-scale/src/radial.js",
"webpack://swh/./node_modules/d3-scale/src/sequential.js",
"webpack://swh/./node_modules/d3-scale/src/sequentialQuantile.js",
"webpack://swh/./node_modules/d3-scale/src/symlog.js",
"webpack://swh/./node_modules/d3-scale/src/threshold.js",
"webpack://swh/./node_modules/d3-scale/src/tickFormat.js",
"webpack://swh/./node_modules/d3-scale/src/time.js",
"webpack://swh/./node_modules/d3-scale/src/utcTime.js",
"webpack://swh/./node_modules/d3-selection/src/array.js",
"webpack://swh/./node_modules/d3-selection/src/constant.js",
"webpack://swh/./node_modules/d3-selection/src/create.js",
"webpack://swh/./node_modules/d3-selection/src/creator.js",
"webpack://swh/./node_modules/d3-selection/src/local.js",
"webpack://swh/./node_modules/d3-selection/src/matcher.js",
"webpack://swh/./node_modules/d3-selection/src/namespace.js",
"webpack://swh/./node_modules/d3-selection/src/namespaces.js",
"webpack://swh/./node_modules/d3-selection/src/pointer.js",
"webpack://swh/./node_modules/d3-selection/src/pointers.js",
"webpack://swh/./node_modules/d3-selection/src/select.js",
"webpack://swh/./node_modules/d3-selection/src/selectAll.js",
"webpack://swh/./node_modules/d3-selection/src/selection/append.js",
"webpack://swh/./node_modules/d3-selection/src/selection/attr.js",
"webpack://swh/./node_modules/d3-selection/src/selection/call.js",
"webpack://swh/./node_modules/d3-selection/src/selection/classed.js",
"webpack://swh/./node_modules/d3-selection/src/selection/clone.js",
"webpack://swh/./node_modules/d3-selection/src/selection/data.js",
"webpack://swh/./node_modules/d3-selection/src/selection/datum.js",
"webpack://swh/./node_modules/d3-selection/src/selection/dispatch.js",
"webpack://swh/./node_modules/d3-selection/src/selection/each.js",
"webpack://swh/./node_modules/d3-selection/src/selection/empty.js",
"webpack://swh/./node_modules/d3-selection/src/selection/enter.js",
"webpack://swh/./node_modules/d3-selection/src/selection/exit.js",
"webpack://swh/./node_modules/d3-selection/src/selection/filter.js",
"webpack://swh/./node_modules/d3-selection/src/selection/html.js",
"webpack://swh/./node_modules/d3-selection/src/selection/index.js",
"webpack://swh/./node_modules/d3-selection/src/selection/insert.js",
"webpack://swh/./node_modules/d3-selection/src/selection/iterator.js",
"webpack://swh/./node_modules/d3-selection/src/selection/join.js",
"webpack://swh/./node_modules/d3-selection/src/selection/lower.js",
"webpack://swh/./node_modules/d3-selection/src/selection/merge.js",
"webpack://swh/./node_modules/d3-selection/src/selection/node.js",
"webpack://swh/./node_modules/d3-selection/src/selection/nodes.js",
"webpack://swh/./node_modules/d3-selection/src/selection/on.js",
"webpack://swh/./node_modules/d3-selection/src/selection/order.js",
"webpack://swh/./node_modules/d3-selection/src/selection/property.js",
"webpack://swh/./node_modules/d3-selection/src/selection/raise.js",
"webpack://swh/./node_modules/d3-selection/src/selection/remove.js",
"webpack://swh/./node_modules/d3-selection/src/selection/select.js",
"webpack://swh/./node_modules/d3-selection/src/selection/selectAll.js",
"webpack://swh/./node_modules/d3-selection/src/selection/selectChild.js",
"webpack://swh/./node_modules/d3-selection/src/selection/selectChildren.js",
"webpack://swh/./node_modules/d3-selection/src/selection/size.js",
"webpack://swh/./node_modules/d3-selection/src/selection/sort.js",
"webpack://swh/./node_modules/d3-selection/src/selection/sparse.js",
"webpack://swh/./node_modules/d3-selection/src/selection/style.js",
"webpack://swh/./node_modules/d3-selection/src/selection/text.js",
"webpack://swh/./node_modules/d3-selection/src/selector.js",
"webpack://swh/./node_modules/d3-selection/src/selectorAll.js",
"webpack://swh/./node_modules/d3-selection/src/sourceEvent.js",
"webpack://swh/./node_modules/d3-selection/src/window.js",
"webpack://swh/./node_modules/d3-shape/src/arc.js",
"webpack://swh/./node_modules/d3-shape/src/area.js",
"webpack://swh/./node_modules/d3-shape/src/areaRadial.js",
"webpack://swh/./node_modules/d3-shape/src/array.js",
"webpack://swh/./node_modules/d3-shape/src/constant.js",
"webpack://swh/./node_modules/d3-shape/src/curve/basis.js",
"webpack://swh/./node_modules/d3-shape/src/curve/basisClosed.js",
"webpack://swh/./node_modules/d3-shape/src/curve/basisOpen.js",
"webpack://swh/./node_modules/d3-shape/src/curve/bump.js",
"webpack://swh/./node_modules/d3-shape/src/curve/bundle.js",
"webpack://swh/./node_modules/d3-shape/src/curve/cardinal.js",
"webpack://swh/./node_modules/d3-shape/src/curve/cardinalClosed.js",
"webpack://swh/./node_modules/d3-shape/src/curve/cardinalOpen.js",
"webpack://swh/./node_modules/d3-shape/src/curve/catmullRom.js",
"webpack://swh/./node_modules/d3-shape/src/curve/catmullRomClosed.js",
"webpack://swh/./node_modules/d3-shape/src/curve/catmullRomOpen.js",
"webpack://swh/./node_modules/d3-shape/src/curve/linear.js",
"webpack://swh/./node_modules/d3-shape/src/curve/linearClosed.js",
"webpack://swh/./node_modules/d3-shape/src/curve/monotone.js",
"webpack://swh/./node_modules/d3-shape/src/curve/natural.js",
"webpack://swh/./node_modules/d3-shape/src/curve/radial.js",
"webpack://swh/./node_modules/d3-shape/src/curve/step.js",
"webpack://swh/./node_modules/d3-shape/src/descending.js",
"webpack://swh/./node_modules/d3-shape/src/identity.js",
"webpack://swh/./node_modules/d3-shape/src/line.js",
"webpack://swh/./node_modules/d3-shape/src/lineRadial.js",
"webpack://swh/./node_modules/d3-shape/src/link/index.js",
"webpack://swh/./node_modules/d3-shape/src/math.js",
"webpack://swh/./node_modules/d3-shape/src/noop.js",
"webpack://swh/./node_modules/d3-shape/src/offset/diverging.js",
"webpack://swh/./node_modules/d3-shape/src/offset/expand.js",
"webpack://swh/./node_modules/d3-shape/src/offset/none.js",
"webpack://swh/./node_modules/d3-shape/src/offset/silhouette.js",
"webpack://swh/./node_modules/d3-shape/src/offset/wiggle.js",
"webpack://swh/./node_modules/d3-shape/src/order/appearance.js",
"webpack://swh/./node_modules/d3-shape/src/order/ascending.js",
"webpack://swh/./node_modules/d3-shape/src/order/descending.js",
"webpack://swh/./node_modules/d3-shape/src/order/insideOut.js",
"webpack://swh/./node_modules/d3-shape/src/order/none.js",
"webpack://swh/./node_modules/d3-shape/src/order/reverse.js",
"webpack://swh/./node_modules/d3-shape/src/pie.js",
"webpack://swh/./node_modules/d3-shape/src/point.js",
"webpack://swh/./node_modules/d3-shape/src/pointRadial.js",
"webpack://swh/./node_modules/d3-shape/src/stack.js",
"webpack://swh/./node_modules/d3-shape/src/symbol.js",
"webpack://swh/./node_modules/d3-shape/src/symbol/circle.js",
"webpack://swh/./node_modules/d3-shape/src/symbol/cross.js",
"webpack://swh/./node_modules/d3-shape/src/symbol/diamond.js",
"webpack://swh/./node_modules/d3-shape/src/symbol/square.js",
"webpack://swh/./node_modules/d3-shape/src/symbol/star.js",
"webpack://swh/./node_modules/d3-shape/src/symbol/triangle.js",
"webpack://swh/./node_modules/d3-shape/src/symbol/wye.js",
"webpack://swh/./node_modules/d3-time-format/src/defaultLocale.js",
"webpack://swh/./node_modules/d3-time-format/src/isoFormat.js",
"webpack://swh/./node_modules/d3-time-format/src/isoParse.js",
"webpack://swh/./node_modules/d3-time-format/src/locale.js",
"webpack://swh/./node_modules/d3-time/src/day.js",
"webpack://swh/./node_modules/d3-time/src/duration.js",
"webpack://swh/./node_modules/d3-time/src/hour.js",
"webpack://swh/./node_modules/d3-time/src/interval.js",
"webpack://swh/./node_modules/d3-time/src/millisecond.js",
"webpack://swh/./node_modules/d3-time/src/minute.js",
"webpack://swh/./node_modules/d3-time/src/month.js",
"webpack://swh/./node_modules/d3-time/src/second.js",
"webpack://swh/./node_modules/d3-time/src/ticks.js",
"webpack://swh/./node_modules/d3-time/src/utcDay.js",
"webpack://swh/./node_modules/d3-time/src/utcHour.js",
"webpack://swh/./node_modules/d3-time/src/utcMinute.js",
"webpack://swh/./node_modules/d3-time/src/utcMonth.js",
"webpack://swh/./node_modules/d3-time/src/utcWeek.js",
"webpack://swh/./node_modules/d3-time/src/utcYear.js",
"webpack://swh/./node_modules/d3-time/src/week.js",
"webpack://swh/./node_modules/d3-time/src/year.js",
"webpack://swh/./node_modules/d3-timer/src/timeout.js",
"webpack://swh/./node_modules/d3-timer/src/timer.js",
"webpack://swh/./node_modules/d3-transition/src/active.js",
"webpack://swh/./node_modules/d3-transition/src/interrupt.js",
"webpack://swh/./node_modules/d3-transition/src/selection/index.js",
"webpack://swh/./node_modules/d3-transition/src/selection/interrupt.js",
"webpack://swh/./node_modules/d3-transition/src/selection/transition.js",
"webpack://swh/./node_modules/d3-transition/src/transition/attr.js",
"webpack://swh/./node_modules/d3-transition/src/transition/attrTween.js",
"webpack://swh/./node_modules/d3-transition/src/transition/delay.js",
"webpack://swh/./node_modules/d3-transition/src/transition/duration.js",
"webpack://swh/./node_modules/d3-transition/src/transition/ease.js",
"webpack://swh/./node_modules/d3-transition/src/transition/easeVarying.js",
"webpack://swh/./node_modules/d3-transition/src/transition/end.js",
"webpack://swh/./node_modules/d3-transition/src/transition/filter.js",
"webpack://swh/./node_modules/d3-transition/src/transition/index.js",
"webpack://swh/./node_modules/d3-transition/src/transition/interpolate.js",
"webpack://swh/./node_modules/d3-transition/src/transition/merge.js",
"webpack://swh/./node_modules/d3-transition/src/transition/on.js",
"webpack://swh/./node_modules/d3-transition/src/transition/remove.js",
"webpack://swh/./node_modules/d3-transition/src/transition/schedule.js",
"webpack://swh/./node_modules/d3-transition/src/transition/select.js",
"webpack://swh/./node_modules/d3-transition/src/transition/selectAll.js",
"webpack://swh/./node_modules/d3-transition/src/transition/selection.js",
"webpack://swh/./node_modules/d3-transition/src/transition/style.js",
"webpack://swh/./node_modules/d3-transition/src/transition/styleTween.js",
"webpack://swh/./node_modules/d3-transition/src/transition/text.js",
"webpack://swh/./node_modules/d3-transition/src/transition/textTween.js",
"webpack://swh/./node_modules/d3-transition/src/transition/transition.js",
"webpack://swh/./node_modules/d3-transition/src/transition/tween.js",
"webpack://swh/./node_modules/internmap/src/index.js"
],
"sourcesContent": [
"var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n",
"export default function(a, b) {\n return a == null || b == null ? NaN\n : a < b ? -1\n : a > b ? 1\n : a >= b ? 0\n : NaN;\n}\n",
"import {slice} from \"./array.js\";\nimport bisect from \"./bisect.js\";\nimport constant from \"./constant.js\";\nimport extent from \"./extent.js\";\nimport identity from \"./identity.js\";\nimport nice from \"./nice.js\";\nimport ticks, {tickIncrement} from \"./ticks.js\";\nimport sturges from \"./threshold/sturges.js\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n if (!Array.isArray(data)) data = Array.from(data);\n\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds, and nice the\n // default domain accordingly.\n if (!Array.isArray(tz)) {\n const max = x1, tn = +tz;\n if (domain === extent) [x0, x1] = nice(x0, x1, tn);\n tz = ticks(x0, x1, tn);\n\n // If the last threshold is coincident with the domain\u2019s upper bound, the\n // last bin will be zero-width. If the default domain is used, and this\n // last threshold is coincident with the maximum input value, we can\n // extend the niced upper bound by one tick to ensure uniform bin widths;\n // otherwise, we simply remove the last threshold. Note that we don\u2019t\n // coerce values or the domain to numbers, and thus must be careful to\n // compare order (>=) rather than strict equality (===)!\n if (tz[tz.length - 1] >= x1) {\n if (max >= x1 && domain === extent) {\n const step = tickIncrement(x0, x1, tn);\n if (isFinite(step)) {\n if (step > 0) {\n x1 = (Math.floor(x1 / step) + 1) * step;\n } else if (step < 0) {\n x1 = (Math.ceil(x1 * -step) + 1) / -step;\n }\n }\n } else {\n tz.pop();\n }\n }\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x != null && x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\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",
"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",
"export default function(x) {\n return function() {\n return x;\n };\n}\n",
"export default function count(values, valueof) {\n let count = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count;\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 ++count;\n }\n }\n }\n return count;\n}\n",
"function length(array) {\n return array.length | 0;\n}\n\nfunction empty(length) {\n return !(length > 0);\n}\n\nfunction arrayify(values) {\n return typeof values !== \"object\" || \"length\" in values ? values : Array.from(values);\n}\n\nfunction reducer(reduce) {\n return values => reduce(...values);\n}\n\nexport default function cross(...values) {\n const reduce = typeof values[values.length - 1] === \"function\" && reducer(values.pop());\n values = values.map(arrayify);\n const lengths = values.map(length);\n const j = values.length - 1;\n const index = new Array(j + 1).fill(0);\n const product = [];\n if (j < 0 || lengths.some(empty)) return product;\n while (true) {\n product.push(index.map((j, i) => values[i][j]));\n let i = j;\n while (++index[i] === lengths[i]) {\n if (i === 0) return reduce ? product.map(reduce) : product;\n index[i--] = 0;\n }\n }\n}\n",
"export default function cumsum(values, valueof) {\n var sum = 0, index = 0;\n return Float64Array.from(values, valueof === undefined\n ? v => (sum += +v || 0)\n : v => (sum += +valueof(v, index++, values) || 0));\n}",
"export default function(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n",
"import variance from \"./variance.js\";\n\nexport default function deviation(values, valueof) {\n const v = variance(values, valueof);\n return v ? Math.sqrt(v) : v;\n}\n",
"export default function difference(values, ...others) {\n values = new Set(values);\n for (const other of others) {\n for (const value of other) {\n values.delete(value);\n }\n }\n return values;\n}\n",
"export default function disjoint(values, other) {\n const iterator = other[Symbol.iterator](), set = new Set();\n for (const v of values) {\n if (set.has(v)) return false;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) break;\n if (Object.is(v, value)) return false;\n set.add(value);\n }\n }\n return true;\n}\n",
"export default function every(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (!test(value, ++index, values)) {\n return false;\n }\n }\n return true;\n}\n",
"export default function(values, valueof) {\n let min;\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null) {\n if (min === undefined) {\n if (value >= value) min = max = value;\n } else {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n return [min, max];\n}\n",
"export default function filter(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n const array = [];\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n array.push(value);\n }\n }\n return array;\n}\n",
"// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport function fsum(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n const adder = new Adder();\n let index = -1;\n return Float64Array.from(values, valueof === undefined\n ? v => adder.add(+v || 0)\n : v => adder.add(+valueof(v, ++index, values) || 0)\n );\n}\n",
"import ascending from \"./ascending.js\";\n\nexport default function greatest(values, compare = ascending) {\n let max;\n let defined = false;\n if (compare.length === 1) {\n let maxValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, maxValue) > 0\n : ascending(value, value) === 0) {\n max = element;\n maxValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, max) > 0\n : compare(value, value) === 0) {\n max = value;\n defined = true;\n }\n }\n }\n return max;\n}\n",
"import ascending from \"./ascending.js\";\nimport maxIndex from \"./maxIndex.js\";\n\nexport default function greatestIndex(values, compare = ascending) {\n if (compare.length === 1) return maxIndex(values, compare);\n let maxValue;\n let max = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (max < 0\n ? compare(value, value) === 0\n : compare(value, maxValue) > 0) {\n maxValue = value;\n max = index;\n }\n }\n return max;\n}\n",
"import {InternMap} from \"internmap\";\nimport identity from \"./identity.js\";\n\nexport default function group(values, ...keys) {\n return nest(values, identity, identity, keys);\n}\n\nexport function groups(values, ...keys) {\n return nest(values, Array.from, identity, keys);\n}\n\nfunction flatten(groups, keys) {\n for (let i = 1, n = keys.length; i < n; ++i) {\n groups = groups.flatMap(g => g.pop().map(([key, value]) => [...g, key, value]));\n }\n return groups;\n}\n\nexport function flatGroup(values, ...keys) {\n return flatten(groups(values, ...keys), keys);\n}\n\nexport function flatRollup(values, reduce, ...keys) {\n return flatten(rollups(values, reduce, ...keys), keys);\n}\n\nexport function rollup(values, reduce, ...keys) {\n return nest(values, identity, reduce, keys);\n}\n\nexport function rollups(values, reduce, ...keys) {\n return nest(values, Array.from, reduce, keys);\n}\n\nexport function index(values, ...keys) {\n return nest(values, identity, unique, keys);\n}\n\nexport function indexes(values, ...keys) {\n return nest(values, Array.from, unique, keys);\n}\n\nfunction unique(values) {\n if (values.length !== 1) throw new Error(\"duplicate key\");\n return values[0];\n}\n\nfunction nest(values, map, reduce, keys) {\n return (function regroup(values, i) {\n if (i >= keys.length) return reduce(values);\n const groups = new InternMap();\n const keyof = keys[i++];\n let index = -1;\n for (const value of values) {\n const key = keyof(value, ++index, values);\n const group = groups.get(key);\n if (group) group.push(value);\n else groups.set(key, [value]);\n }\n for (const [key, values] of groups) {\n groups.set(key, regroup(values, i));\n }\n return map(groups);\n })(values, 0);\n}\n",
"import ascending from \"./ascending.js\";\nimport group, {rollup} from \"./group.js\";\nimport sort from \"./sort.js\";\n\nexport default function groupSort(values, reduce, key) {\n return (reduce.length === 1\n ? sort(rollup(values, reduce, key), (([ak, av], [bk, bv]) => ascending(av, bv) || ascending(ak, bk)))\n : sort(group(values, key), (([ak, av], [bk, bv]) => reduce(av, bv) || ascending(ak, bk))))\n .map(([key]) => key);\n}\n",
"export default function(x) {\n return x;\n}\n",
"import set from \"./set.js\";\n\nexport default function intersection(values, ...others) {\n values = new Set(values);\n others = others.map(set);\n out: for (const value of values) {\n for (const other of others) {\n if (!other.has(value)) {\n values.delete(value);\n continue out;\n }\n }\n }\n return values;\n}\n",
"import ascending from \"./ascending.js\";\n\nexport default function least(values, compare = ascending) {\n let min;\n let defined = false;\n if (compare.length === 1) {\n let minValue;\n for (const element of values) {\n const value = compare(element);\n if (defined\n ? ascending(value, minValue) < 0\n : ascending(value, value) === 0) {\n min = element;\n minValue = value;\n defined = true;\n }\n }\n } else {\n for (const value of values) {\n if (defined\n ? compare(value, min) < 0\n : compare(value, value) === 0) {\n min = value;\n defined = true;\n }\n }\n }\n return min;\n}\n",
"import ascending from \"./ascending.js\";\nimport minIndex from \"./minIndex.js\";\n\nexport default function leastIndex(values, compare = ascending) {\n if (compare.length === 1) return minIndex(values, compare);\n let minValue;\n let min = -1;\n let index = -1;\n for (const value of values) {\n ++index;\n if (min < 0\n ? compare(value, value) === 0\n : compare(value, minValue) < 0) {\n minValue = value;\n min = index;\n }\n }\n return min;\n}\n",
"export default function map(values, mapper) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n if (typeof mapper !== \"function\") throw new TypeError(\"mapper is not a function\");\n return Array.from(values, (value, index) => mapper(value, index, values));\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 maxIndex(values, valueof) {\n let max;\n let maxIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value, maxIndex = index;\n }\n }\n }\n return maxIndex;\n}\n",
"export default function mean(values, valueof) {\n let count = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n ++count, sum += 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 ++count, sum += value;\n }\n }\n }\n if (count) return sum / count;\n}\n",
"import quantile from \"./quantile.js\";\n\nexport default function(values, valueof) {\n return quantile(values, 0.5, valueof);\n}\n",
"function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\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 default function minIndex(values, valueof) {\n let min;\n let minIndex = -1;\n let index = -1;\n if (valueof === undefined) {\n for (const value of values) {\n ++index;\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n } else {\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value, minIndex = index;\n }\n }\n }\n return minIndex;\n}\n",
"import {InternMap} from \"internmap\";\n\nexport default function(values, valueof) {\n const counts = new InternMap();\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && value >= value) {\n counts.set(value, (counts.get(value) || 0) + 1);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && value >= value) {\n counts.set(value, (counts.get(value) || 0) + 1);\n }\n }\n }\n let modeValue;\n let modeCount = 0;\n for (const [value, count] of counts) {\n if (count > modeCount) {\n modeCount = count;\n modeValue = value;\n }\n }\n return modeValue;\n}\n",
"import {tickIncrement} from \"./ticks.js\";\n\nexport default function nice(start, stop, count) {\n let prestep;\n while (true) {\n const step = tickIncrement(start, stop, count);\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\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 }\n prestep = step;\n }\n}\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 pairs(values, pairof = pair) {\n const pairs = [];\n let previous;\n let first = false;\n for (const value of values) {\n if (first) pairs.push(pairof(previous, value));\n previous = value;\n first = true;\n }\n return pairs;\n}\n\nexport function pair(a, b) {\n return [a, b];\n}\n",
"export default function(source, keys) {\n return Array.from(keys, key => source[key]);\n}\n",
"import max from \"./max.js\";\nimport min from \"./min.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n",
"import ascending from \"./ascending.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = array.length - 1, compare = ascending) {\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n",
"export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n",
"export default function reduce(values, reducer, value) {\n if (typeof reducer !== \"function\") throw new TypeError(\"reducer is not a function\");\n const iterator = values[Symbol.iterator]();\n let done, next, index = -1;\n if (arguments.length < 3) {\n ({done, value} = iterator.next());\n if (done) return;\n ++index;\n }\n while (({done, value: next} = iterator.next()), !done) {\n value = reducer(value, next, ++index, values);\n }\n return value;\n}\n",
"export default function reverse(values) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n return Array.from(values).reverse();\n}\n",
"import leastIndex from \"./leastIndex.js\";\n\nexport default function scan(values, compare) {\n const index = leastIndex(values, compare);\n return index < 0 ? undefined : index;\n}\n",
"export default function set(values) {\n return values instanceof Set ? values : new Set(values);\n}\n",
"export default shuffler(Math.random);\n\nexport function shuffler(random) {\n return function shuffle(array, i0 = 0, i1 = array.length) {\n let m = i1 - (i0 = +i0);\n while (m) {\n const i = random() * m-- | 0, t = array[m + i0];\n array[m + i0] = array[i + i0];\n array[i + i0] = t;\n }\n return array;\n };\n}\n",
"export default function some(values, test) {\n if (typeof test !== \"function\") throw new TypeError(\"test is not a function\");\n let index = -1;\n for (const value of values) {\n if (test(value, ++index, values)) {\n return true;\n }\n }\n return false;\n}\n",
"import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f = ascending] = F;\n if (f.length === 1 || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascending(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascending(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(f);\n}\n",
"import superset from \"./superset.js\";\n\nexport default function subset(values, other) {\n return superset(other, values);\n}\n",
"export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n",
"export default function superset(values, other) {\n const iterator = values[Symbol.iterator](), set = new Set();\n for (const o of other) {\n if (set.has(o)) continue;\n let value, done;\n while (({value, done} = iterator.next())) {\n if (done) return false;\n set.add(value);\n if (Object.is(o, value)) break;\n }\n }\n return true;\n}\n",
"import count from \"../count.js\";\nimport quantile from \"../quantile.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(count(values), -1 / 3)));\n}\n",
"import count from \"../count.js\";\nimport deviation from \"../deviation.js\";\n\nexport default function(values, min, max) {\n return Math.ceil((max - min) / (3.5 * deviation(values) * Math.pow(count(values), -1 / 3)));\n}\n",
"import count from \"../count.js\";\n\nexport default function(values) {\n return Math.ceil(Math.log(count(values)) / Math.LN2) + 1;\n}\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",
"import min from \"./min.js\";\n\nexport default function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose = new Array(m); ++i < m;) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n;) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n}\n\nfunction length(d) {\n return d.length;\n}\n",
"export default function union(...others) {\n const set = new Set();\n for (const other of others) {\n for (const o of other) {\n set.add(o);\n }\n }\n return set;\n}\n",
"export default function variance(values, valueof) {\n let count = 0;\n let delta;\n let mean = 0;\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\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 delta = value - mean;\n mean += delta / ++count;\n sum += delta * (value - mean);\n }\n }\n }\n if (count > 1) return sum / (count - 1);\n}\n",
"import transpose from \"./transpose.js\";\n\nexport default function() {\n return transpose(arguments);\n}\n",
"import identity from \"./identity.js\";\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)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + y + \")\";\n}\n\nfunction number(scale) {\n return d => +scale(d);\n}\n\nfunction center(scale, offset) {\n offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;\n if (scale.round()) offset = Math.round(offset);\n return d => +scale(d) + offset;\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 offset = typeof window !== \"undefined\" && window.devicePixelRatio > 1 ? 0 : 0.5,\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] + offset,\n range1 = +range[range.length - 1] + offset,\n position = (scale.bandwidth ? center : number)(scale.copy(), offset),\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 + offset) : 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)) + offset); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient === right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H\" + offset + \"V\" + range1 + \"H\" + k * tickSizeOuter : \"M\" + offset + \",\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V\" + offset + \"H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",\" + offset + \"H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d) + offset); });\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 = Array.from(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : Array.from(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : Array.from(_), 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 axis.offset = function(_) {\n return arguments.length ? (offset = +_, axis) : offset;\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",
"export default function(x) {\n return x;\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 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",
"var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\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 if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n",
"export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\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",
"import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\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, \u00b1Infinity\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",
"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",
"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",
"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",
"// [[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",
"// 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 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\",\"\u00b5\",\"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 ? \"\u2212\" : 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 \u201cvalue\u201d part that can be\n // grouped, and fractional or exponential \u201csuffix\u201d 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 exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\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 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 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",
"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 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",
"export default x => () => x;\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",
"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 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 {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\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",
"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",
"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",
"var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n",
"import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n",
"import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\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",
"const 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\u2019re 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",
"import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n",
"export default function constants(x) {\n return function() {\n return x;\n };\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",
"import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n",
"import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\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",
"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",
"import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n",
"export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n",
"export default function number(x) {\n return +x;\n}\n",
"import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n",
"import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n",
"import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n",
"import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n",
"import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n",
"import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n",
"import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n",
"import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n",
"import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\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 {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n",
"import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n",
"// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don\u2019t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n",
"export default function(x) {\n return function() {\n return x;\n };\n}\n",
"import creator from \"./creator.js\";\nimport select from \"./select.js\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n",
"import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\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",
"var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n",
"export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n",
"import namespaces from \"./namespaces.js\";\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; // eslint-disable-line no-prototype-builtins\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 sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n",
"import pointer from \"./pointer.js\";\nimport sourceEvent from \"./sourceEvent.js\";\n\nexport default function(events, node) {\n if (events.target) { // i.e., instanceof Event, not TouchList or iterable\n events = sourceEvent(events);\n if (node === undefined) node = events.currentTarget;\n events = events.touches || [events];\n }\n return Array.from(events, event => pointer(event, node));\n}\n",
"import {Selection, root} from \"./selection/index.js\";\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 array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([array(selector)], root);\n}\n",
"import creator from \"../creator.js\";\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",
"import namespace from \"../namespace.js\";\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() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\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 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",
"import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\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\u2019t 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 = new Map,\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 = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(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 = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\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.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\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 = arraylike(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\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn\u2019t worried about \u201clive\u201d collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don\u2019t; we\u2019d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n",
"export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n",
"import defaultView from \"../window.js\";\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",
"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",
"export default function() {\n return !this.node();\n}\n",
"import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\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 sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n",
"import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\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",
"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",
"import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\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\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\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 selection: selection_selection,\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 [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n",
"import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\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",
"export default function*() {\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]) yield node;\n }\n }\n}\n",
"export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\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 {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\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 = 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 return Array.from(this);\n}\n",
"function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\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.options);\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, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\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.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\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 for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\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",
"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 raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\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",
"import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\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.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else 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 {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n",
"import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n",
"export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n",
"import {Selection} from \"./index.js\";\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 default function(update) {\n return new Array(update.length);\n}\n",
"import defaultView from \"../window.js\";\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 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 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(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\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 {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 \u2265 r0, da1 \u2265 da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector\u2019s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it\u2019s a circular sector?\n // Or perhaps it\u2019s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector\u2019s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n",
"import {path} from \"d3-path\";\nimport array from \"./array.js\";\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(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(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",
"import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n",
"export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n",
"export default function(x) {\n return function constant() {\n return x;\n };\n}\n",
"export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n",
"import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n",
"import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n",
"class Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n",
"import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n",
"export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n",
"import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n",
"import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n",
"import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n",
"import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n",
"import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n",
"function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n",
"import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n",
"function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic B\u00e9zier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n",
"function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n",
"import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n",
"function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n",
"export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n",
"export default function(d) {\n return d;\n}\n",
"import {path} from \"d3-path\";\nimport array from \"./array.js\";\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(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n",
"import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n",
"import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n",
"export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n",
"export default function() {}\n",
"export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n}\n",
"import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n",
"export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n",
"import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n",
"import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n",
"import none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n",
"import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n",
"import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n",
"import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n",
"export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n",
"import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n",
"import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n",
"export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n",
"export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n",
"import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n",
"import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function(type, size) {\n var context = null;\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n",
"import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n",
"export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n",
"var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n",
"export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n",
"import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n",
"var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n",
"var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n",
"import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n",
"import {utcFormat} from \"./defaultLocale.js\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n",
"import {isoSpecifier} from \"./isoFormat.js\";\nimport {utcParse} from \"./defaultLocale.js\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n",
"import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n",
"import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport default day;\nexport var days = day.range;\n",
"export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n",
"import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n",
"var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n",
"import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n",
"import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n",
"import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n",
"import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n",
"import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport millisecond from \"./millisecond.js\";\nimport second from \"./second.js\";\nimport minute from \"./minute.js\";\nimport hour from \"./hour.js\";\nimport day from \"./day.js\";\nimport {sunday as week} from \"./week.js\";\nimport month from \"./month.js\";\nimport year from \"./year.js\";\nimport utcMinute from \"./utcMinute.js\";\nimport utcHour from \"./utcHour.js\";\nimport utcDay from \"./utcDay.js\";\nimport {utcSunday as utcWeek} from \"./utcWeek.js\";\nimport utcMonth from \"./utcMonth.js\";\nimport utcYear from \"./utcYear.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(year, month, week, day, hour, minute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n",
"import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n",
"import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n",
"import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n",
"import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n",
"import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n",
"import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n",
"import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n",
"import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n",
"import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n",
"var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we\u2019ve set an alarm, if we haven\u2019t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n",
"import {Transition} from \"./transition/index.js\";\nimport {SCHEDULED} from \"./transition/schedule.js\";\n\nvar root = [null];\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n i;\n\n if (schedules) {\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule = schedules[i]).state > SCHEDULED && schedule.name === name) {\n return new Transition([[node]], root, name, +i);\n }\n }\n }\n\n return null;\n}\n",
"import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n",
"import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n",
"import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n",
"import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, 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 schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n",
"import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\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, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n",
"import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n",
"import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n",
"import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n",
"import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n",
"import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n",
"import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n",
"import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\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 Transition(subgroups, this._parents, this._name, this._id);\n}\n",
"import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n",
"import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n",
"import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._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 Transition(merges, this._parents, this._name, this._id);\n}\n",
"import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n",
"function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n",
"import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n",
"import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\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 schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n",
"import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\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 for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n",
"import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n",
"import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we\u2019re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n",
"function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n",
"import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n",
"function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n",
"import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, 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 var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n",
"import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we\u2019re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n",
"export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(value);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n"
],
"names": [
"array",
"Array",
"prototype",
"slice",
"map",
"a",
"b",
"NaN",
"value",
"domain",
"threshold",
"histogram",
"data",
"isArray",
"from",
"i",
"x",
"n",
"length",
"values",
"xz",
"x0",
"x1",
"tz",
"max",
"tn",
"step",
"isFinite",
"Math",
"floor",
"ceil",
"pop",
"m",
"shift",
"bin",
"bins",
"push",
"_",
"arguments",
"thresholds",
"ascendingBisect",
"bisectRight",
"right",
"bisectLeft",
"left",
"bisectCenter",
"center",
"f",
"delta",
"compare",
"lo",
"hi",
"mid",
"d",
"ascendingComparator",
"count",
"valueof",
"undefined",
"index",
"empty",
"arrayify",
"cross",
"reduce",
"reducer",
"lengths",
"j",
"fill",
"product",
"some",
"cumsum",
"sum",
"Float64Array",
"v",
"deviation",
"sqrt",
"difference",
"others",
"Set",
"other",
"delete",
"disjoint",
"iterator",
"Symbol",
"set",
"has",
"done",
"next",
"Object",
"is",
"add",
"every",
"test",
"TypeError",
"min",
"filter",
"Adder",
"constructor",
"this",
"_partials",
"_n",
"p",
"y",
"abs",
"valueOf",
"fsum",
"adder",
"fcumsum",
"greatest",
"defined",
"maxValue",
"element",
"greatestIndex",
"group",
"keys",
"nest",
"groups",
"flatten",
"flatMap",
"g",
"key",
"flatGroup",
"flatRollup",
"rollups",
"rollup",
"unique",
"indexes",
"Error",
"regroup",
"keyof",
"get",
"groupSort",
"ak",
"av",
"bk",
"bv",
"intersection",
"out",
"least",
"minValue",
"leastIndex",
"mapper",
"maxIndex",
"mean",
"merge",
"arrays",
"minIndex",
"counts",
"modeValue",
"modeCount",
"nice",
"start",
"stop",
"prestep",
"numbers",
"pairs",
"pairof",
"pair",
"previous",
"first",
"source",
"quantile",
"i0",
"value0",
"subarray",
"quantileSorted",
"quickselect",
"k",
"z",
"log",
"s",
"exp",
"sd",
"t",
"swap",
"range",
"reverse",
"scan",
"shuffler",
"random",
"i1",
"sort",
"F",
"Uint32Array",
"c",
"subset",
"superset",
"o",
"pow",
"LN2",
"e10",
"e5",
"e2",
"ticks",
"tickIncrement",
"r0",
"round",
"r1",
"power",
"LN10",
"error",
"tickStep",
"step0",
"step1",
"matrix",
"transpose",
"row",
"union",
"variance",
"epsilon",
"translateX",
"translateY",
"number",
"scale",
"offset",
"bandwidth",
"entering",
"__axis",
"axis",
"orient",
"tickArguments",
"tickValues",
"tickFormat",
"tickSizeInner",
"tickSizeOuter",
"tickPadding",
"window",
"devicePixelRatio",
"transform",
"context",
"apply",
"format",
"spacing",
"range0",
"range1",
"position",
"copy",
"selection",
"path",
"selectAll",
"tick",
"order",
"tickExit",
"exit",
"tickEnter",
"enter",
"append",
"attr",
"line",
"select",
"text",
"insert",
"transition",
"getAttribute",
"parentNode",
"remove",
"each",
"tickSize",
"axisTop",
"axisRight",
"axisBottom",
"axisLeft",
"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",
"tan",
"teal",
"thistle",
"tomato",
"turquoise",
"violet",
"wheat",
"white",
"whitesmoke",
"yellow",
"yellowgreen",
"color_formatHex",
"rgb",
"formatHex",
"color_formatRgb",
"formatRgb",
"color",
"l",
"trim",
"toLowerCase",
"exec",
"parseInt",
"rgbn",
"Rgb",
"rgba",
"hsla",
"hasOwnProperty",
"r",
"rgbConvert",
"opacity",
"rgb_formatHex",
"hex",
"rgb_formatRgb",
"isNaN",
"toString",
"h",
"Hsl",
"hslConvert",
"hsl2rgb",
"m1",
"m2",
"channels",
"assign",
"displayable",
"formatHsl",
"factory",
"extend",
"parent",
"definition",
"create",
"noop",
"dispatch",
"Dispatch",
"parseTypenames",
"typenames",
"types",
"split",
"name",
"indexOf",
"type",
"callback",
"concat",
"on",
"typename",
"T",
"call",
"that",
"args",
"cubicInOut",
"locale",
"formatPrefix",
"defaultLocale",
"thousands",
"grouping",
"currency",
"toLocaleString",
"replace",
"formatDecimalParts",
"toExponential",
"coefficient",
"width",
"substring",
"join",
"numerals",
"prefixExponent",
"exponent",
"re",
"formatSpecifier",
"specifier",
"match",
"FormatSpecifier",
"align",
"sign",
"symbol",
"zero",
"comma",
"precision",
"toFixed",
"toPrecision",
"toUpperCase",
"prefixes",
"Number",
"currencyPrefix",
"currencySuffix",
"decimal",
"String",
"percent",
"minus",
"nan",
"newFormat",
"prefix",
"suffix",
"formatType",
"maybeSuffix",
"valuePrefix",
"valueSuffix",
"valueNegative",
"charCodeAt",
"Infinity",
"padding",
"e",
"genericArray",
"nb",
"na",
"basis",
"t1",
"v0",
"v1",
"v2",
"v3",
"t2",
"t3",
"linear",
"gamma",
"nogamma",
"exponential",
"Date",
"setTime",
"isNumberArray",
"ArrayBuffer",
"isView",
"DataView",
"piecewise",
"interpolate",
"I",
"rgbSpline",
"spline",
"colors",
"rgbGamma",
"end",
"reA",
"reB",
"am",
"bm",
"bs",
"bi",
"lastIndex",
"q",
"one",
"degrees",
"PI",
"identity",
"rotate",
"skewX",
"scaleX",
"scaleY",
"atan2",
"atan",
"interpolateTransform",
"parse",
"pxComma",
"pxParen",
"degParen",
"xa",
"ya",
"xb",
"yb",
"translate",
"interpolateTransformCss",
"interpolateTransformSvg",
"svgNode",
"parseCss",
"DOMMatrix",
"WebKitCSSMatrix",
"isIdentity",
"parseSvg",
"document",
"createElementNS",
"setAttribute",
"baseVal",
"consolidate",
"pi",
"tau",
"tauEpsilon",
"Path",
"_x0",
"_y0",
"_x1",
"_y1",
"moveTo",
"closePath",
"lineTo",
"quadraticCurveTo",
"y1",
"bezierCurveTo",
"x2",
"y2",
"arcTo",
"y0",
"x21",
"y21",
"x01",
"y01",
"l01_2",
"x20",
"y20",
"l21_2",
"l20_2",
"l21",
"l01",
"acos",
"t01",
"t21",
"arc",
"a0",
"a1",
"ccw",
"dx",
"cos",
"dy",
"sin",
"cw",
"da",
"rect",
"w",
"band",
"unknown",
"ordinalRange",
"paddingInner",
"paddingOuter",
"rescale",
"rangeRound",
"pointish",
"point",
"constants",
"unit",
"normalize",
"bimap",
"d0",
"d1",
"polymap",
"target",
"clamp",
"transformer",
"untransform",
"output",
"input",
"invert",
"u",
"continuous",
"t0",
"k10",
"k21",
"interpolator",
"r2",
"diverging",
"divergingLog",
"base",
"divergingSymlog",
"constant",
"divergingPow",
"divergingSqrt",
"initRange",
"initInterpolator",
"linearish",
"maxIter",
"transformLog",
"transformExp",
"transformLogn",
"transformExpn",
"pow10",
"reflect",
"loggish",
"logs",
"pows",
"E",
"log10",
"log2",
"logp",
"powp",
"interval",
"implicit",
"ordinal",
"transformPow",
"transformSqrt",
"transformSquare",
"powish",
"invertExtent",
"quantiles",
"quantize",
"square",
"unsquare",
"radial",
"squared",
"sequential",
"sequentialLog",
"sequentialSymlog",
"sequentialPow",
"sequentialSqrt",
"sequentialQuantile",
"transformSymlog",
"log1p",
"transformSymexp",
"expm1",
"symlogish",
"symlog",
"date",
"calendar",
"tickInterval",
"year",
"month",
"week",
"day",
"hour",
"minute",
"second",
"formatMillisecond",
"formatSecond",
"formatMinute",
"formatHour",
"formatDay",
"formatWeek",
"formatMonth",
"formatYear",
"time",
"utcTime",
"UTC",
"documentElement",
"creatorInherit",
"ownerDocument",
"uri",
"namespaceURI",
"createElement",
"creatorFixed",
"fullname",
"space",
"local",
"nextId",
"Local",
"node",
"id",
"selector",
"matches",
"childMatcher",
"xhtml",
"svg",
"xlink",
"xml",
"xmlns",
"event",
"currentTarget",
"ownerSVGElement",
"createSVGPoint",
"clientX",
"clientY",
"matrixTransform",
"getScreenCTM",
"inverse",
"getBoundingClientRect",
"clientLeft",
"top",
"clientTop",
"pageX",
"pageY",
"events",
"touches",
"querySelector",
"querySelectorAll",
"appendChild",
"attrRemove",
"removeAttribute",
"attrRemoveNS",
"removeAttributeNS",
"attrConstant",
"attrConstantNS",
"setAttributeNS",
"attrFunction",
"attrFunctionNS",
"getAttributeNS",
"classArray",
"string",
"classList",
"ClassList",
"_node",
"_names",
"classedAdd",
"names",
"list",
"classedRemove",
"classedTrue",
"classedFalse",
"classedFunction",
"contains",
"splice",
"selection_cloneShallow",
"clone",
"cloneNode",
"insertBefore",
"nextSibling",
"selection_cloneDeep",
"deep",
"bindIndex",
"update",
"groupLength",
"dataLength",
"__data__",
"bindKey",
"keyValue",
"nodeByKeyValue",
"Map",
"keyValues",
"datum",
"bind",
"parents",
"_parents",
"_groups",
"arraylike",
"enterGroup",
"updateGroup",
"exitGroup",
"_next",
"_enter",
"_exit",
"property",
"dispatchEvent",
"params",
"CustomEvent",
"createEvent",
"initEvent",
"bubbles",
"cancelable",
"detail",
"dispatchConstant",
"dispatchFunction",
"EnterNode",
"_parent",
"child",
"subgroups",
"subgroup",
"htmlRemove",
"innerHTML",
"htmlConstant",
"htmlFunction",
"root",
"Selection",
"selectChild",
"selectChildren",
"nodes",
"size",
"style",
"classed",
"html",
"raise",
"lower",
"constantNull",
"before",
"onenter",
"onupdate",
"onexit",
"previousSibling",
"firstChild",
"groups0",
"groups1",
"m0",
"merges",
"group0",
"group1",
"onRemove",
"__on",
"removeEventListener",
"listener",
"options",
"onAdd",
"contextListener",
"addEventListener",
"compareDocumentPosition",
"propertyRemove",
"propertyConstant",
"propertyFunction",
"removeChild",
"subnode",
"arrayAll",
"find",
"childFirst",
"firstElementChild",
"children",
"childFind",
"childrenFilter",
"compareNode",
"ascending",
"sortgroups",
"sortgroup",
"styleRemove",
"removeProperty",
"styleConstant",
"priority",
"setProperty",
"styleFunction",
"styleValue",
"getPropertyValue",
"getComputedStyle",
"textRemove",
"textContent",
"textConstant",
"textFunction",
"none",
"sourceEvent",
"defaultView",
"arcInnerRadius",
"innerRadius",
"arcOuterRadius",
"outerRadius",
"arcStartAngle",
"startAngle",
"arcEndAngle",
"endAngle",
"arcPadAngle",
"padAngle",
"intersect",
"x3",
"y3",
"x10",
"y10",
"x32",
"y32",
"cornerTangents",
"rc",
"ox",
"oy",
"x11",
"y11",
"x00",
"y00",
"d2",
"D",
"cx0",
"cy0",
"cx1",
"cy1",
"dx0",
"dy0",
"dx1",
"dy1",
"cx",
"cy",
"cornerRadius",
"padRadius",
"buffer",
"a01",
"a11",
"a00",
"a10",
"da0",
"da1",
"ap",
"rp",
"rc0",
"rc1",
"p0",
"p1",
"oc",
"ax",
"ay",
"bx",
"by",
"kc",
"lc",
"centroid",
"curve",
"area",
"defined0",
"x0z",
"y0z",
"areaStart",
"lineStart",
"lineEnd",
"areaEnd",
"arealine",
"lineX0",
"lineY0",
"lineY1",
"lineX1",
"angle",
"radius",
"lineStartAngle",
"lineEndAngle",
"lineInnerRadius",
"lineOuterRadius",
"_curve",
"_context",
"Basis",
"_line",
"_point",
"BasisClosed",
"_x2",
"_x3",
"_x4",
"_y2",
"_y3",
"_y4",
"BasisOpen",
"Bump",
"_x",
"bumpX",
"bumpY",
"Bundle",
"beta",
"_basis",
"_beta",
"_y",
"custom",
"bundle",
"_k",
"Cardinal",
"tension",
"cardinal",
"CardinalClosed",
"_x5",
"_y5",
"CardinalOpen",
"_l01_a",
"_l01_2a",
"_l12_a",
"_l12_2a",
"_l23_a",
"_l23_2a",
"CatmullRom",
"alpha",
"_alpha",
"x23",
"y23",
"catmullRom",
"CatmullRomClosed",
"CatmullRomOpen",
"Linear",
"LinearClosed",
"slope3",
"h0",
"h1",
"s0",
"s1",
"slope2",
"MonotoneX",
"MonotoneY",
"ReflectContext",
"monotoneX",
"monotoneY",
"_t0",
"Natural",
"controlPoints",
"px",
"py",
"curveRadialLinear",
"curveRadial",
"Radial",
"Step",
"_t",
"stepBefore",
"stepAfter",
"lineRadial",
"linkSource",
"linkTarget",
"link",
"argv",
"curveHorizontal",
"curveVertical",
"p2",
"p3",
"linkHorizontal",
"linkVertical",
"linkRadial",
"halfPi",
"asin",
"series",
"yp",
"yn",
"s2",
"si",
"sij0",
"s3",
"sk",
"peaks",
"peak",
"vi",
"vj",
"sums",
"bottom",
"tops",
"bottoms",
"sortValues",
"pie",
"arcs",
"pa",
"stackValue",
"stackSeries",
"stack",
"oz",
"sz",
"symbols",
"draw",
"tan30",
"tan30_2",
"kr",
"kx",
"ky",
"sqrt3",
"timeFormat",
"timeParse",
"utcFormat",
"utcParse",
"dateTime",
"periods",
"days",
"shortDays",
"months",
"shortMonths",
"isoSpecifier",
"formatIso",
"toISOString",
"parseIso",
"localDate",
"H",
"M",
"S",
"L",
"setFullYear",
"utcDate",
"setUTCFullYear",
"newDate",
"formatLocale",
"locale_dateTime",
"locale_date",
"locale_time",
"locale_periods",
"locale_weekdays",
"locale_shortWeekdays",
"locale_months",
"locale_shortMonths",
"periodRe",
"formatRe",
"periodLookup",
"formatLookup",
"weekdayRe",
"weekdayLookup",
"shortWeekdayRe",
"shortWeekdayLookup",
"monthRe",
"monthLookup",
"shortMonthRe",
"shortMonthLookup",
"formats",
"getDay",
"getMonth",
"formatDayOfMonth",
"formatMicroseconds",
"formatYearISO",
"formatFullYearISO",
"formatHour24",
"formatHour12",
"formatDayOfYear",
"formatMilliseconds",
"formatMonthNumber",
"formatMinutes",
"getHours",
"formatUnixTimestamp",
"formatUnixTimestampSeconds",
"formatSeconds",
"formatWeekdayNumberMonday",
"formatWeekNumberSunday",
"formatWeekNumberISO",
"formatWeekdayNumberSunday",
"formatWeekNumberMonday",
"formatFullYear",
"formatZone",
"formatLiteralPercent",
"utcFormats",
"getUTCDay",
"getUTCMonth",
"formatUTCDayOfMonth",
"formatUTCMicroseconds",
"formatUTCYearISO",
"formatUTCFullYearISO",
"formatUTCHour24",
"formatUTCHour12",
"formatUTCDayOfYear",
"formatUTCMilliseconds",
"formatUTCMonthNumber",
"formatUTCMinutes",
"getUTCHours",
"formatUTCSeconds",
"formatUTCWeekdayNumberMonday",
"formatUTCWeekNumberSunday",
"formatUTCWeekNumberISO",
"formatUTCWeekdayNumberSunday",
"formatUTCWeekNumberMonday",
"formatUTCYear",
"formatUTCFullYear",
"formatUTCZone",
"parses",
"parseSpecifier",
"parseDayOfMonth",
"parseMicroseconds",
"parseYear",
"parseFullYear",
"parseHour24",
"parseDayOfYear",
"parseMilliseconds",
"parseMonthNumber",
"parseMinutes",
"parseQuarter",
"parseUnixTimestamp",
"parseUnixTimestampSeconds",
"parseSeconds",
"parseWeekdayNumberMonday",
"parseWeekNumberSunday",
"parseWeekNumberISO",
"parseWeekdayNumberSunday",
"parseWeekNumberMonday",
"parseZone",
"parseLiteralPercent",
"pad",
"pads",
"charAt",
"newParse",
"Z",
"Q",
"V",
"getUTCFullYear",
"getUTCDate",
"getFullYear",
"getDate",
"W",
"U",
"X",
"numberRe",
"percentRe",
"requoteRe",
"requote",
"getMilliseconds",
"getMinutes",
"getSeconds",
"dISO",
"getTimezoneOffset",
"getUTCMilliseconds",
"getUTCMinutes",
"getUTCSeconds",
"dow",
"UTCdISO",
"setHours",
"setDate",
"durationSecond",
"durationMinute",
"durationHour",
"durationDay",
"durationWeek",
"durationMonth",
"durationYear",
"hours",
"newInterval",
"floori",
"offseti",
"field",
"millisecond",
"milliseconds",
"minutes",
"setMonth",
"seconds",
"ticker",
"tickIntervals",
"utcTicks",
"utcTickInterval",
"timeTicks",
"timeTickInterval",
"utcDay",
"setUTCHours",
"setUTCDate",
"utcDays",
"utcHour",
"setUTCMinutes",
"utcHours",
"utcMinute",
"setUTCSeconds",
"utcMinutes",
"utcMonth",
"setUTCMonth",
"utcMonths",
"utcWeekday",
"utcSunday",
"utcMonday",
"utcTuesday",
"utcWednesday",
"utcThursday",
"utcFriday",
"utcSaturday",
"utcSundays",
"utcMondays",
"utcTuesdays",
"utcWednesdays",
"utcThursdays",
"utcFridays",
"utcSaturdays",
"utcYear",
"utcYears",
"weekday",
"sunday",
"monday",
"tuesday",
"wednesday",
"thursday",
"friday",
"saturday",
"sundays",
"mondays",
"tuesdays",
"wednesdays",
"thursdays",
"fridays",
"saturdays",
"years",
"delay",
"restart",
"elapsed",
"taskHead",
"taskTail",
"frame",
"timeout",
"clockLast",
"clockNow",
"clockSkew",
"clock",
"performance",
"now",
"setFrame",
"requestAnimationFrame",
"setTimeout",
"clearNow",
"Timer",
"_call",
"_time",
"timer",
"wake",
"timerFlush",
"sleep",
"nap",
"poke",
"clearTimeout",
"clearInterval",
"setInterval",
"schedule",
"schedules",
"__transition",
"state",
"active",
"defaultTiming",
"duration",
"ease",
"inherit",
"timing",
"_id",
"_name",
"value1",
"string00",
"interpolate0",
"string1",
"string0",
"string10",
"attrTween",
"attrInterpolate",
"attrInterpolateNS",
"attrTweenNS",
"tween",
"_value",
"delayFunction",
"delayConstant",
"durationFunction",
"durationConstant",
"easeConstant",
"easeVarying",
"on0",
"on1",
"Promise",
"resolve",
"reject",
"cancel",
"interrupt",
"Transition",
"newId",
"selection_prototype",
"styleTween",
"textTween",
"onFunction",
"sit",
"emptyOn",
"emptyTween",
"SCHEDULED",
"STARTING",
"ENDING",
"ENDED",
"self",
"init",
"styleNull",
"listener0",
"styleMaybeRemove",
"styleInterpolate",
"textInterpolate",
"id0",
"id1",
"tweenRemove",
"tween0",
"tween1",
"tweenFunction",
"tweenValue",
"InternMap",
"entries",
"super",
"defineProperties",
"_intern",
"_key",
"intern_get",
"intern_set",
"intern_delete",
"InternSet"
],
"sourceRoot": ""
}

File Metadata

Mime Type
application/json
Expires
Fri, Jul 4, 3:03 PM (4 d, 6 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3368943

Event Timeline