{"version":3,"file":"js/286-150a6d937bdb6b93e351.js","mappings":"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","sources":["webpack://app/./node_modules/vue-loader/dist/exportHelper.js","webpack://app/./node_modules/d3-array/src/extent.js","webpack://app/./node_modules/d3-axis/src/identity.js","webpack://app/./node_modules/d3-axis/src/axis.js","webpack://app/./node_modules/d3-selection/src/selector.js","webpack://app/./node_modules/d3-selection/src/selectorAll.js","webpack://app/./node_modules/d3-selection/src/selection/selectAll.js","webpack://app/./node_modules/d3-selection/src/array.js","webpack://app/./node_modules/d3-selection/src/matcher.js","webpack://app/./node_modules/d3-selection/src/selection/selectChild.js","webpack://app/./node_modules/d3-selection/src/selection/selectChildren.js","webpack://app/./node_modules/d3-selection/src/selection/sparse.js","webpack://app/./node_modules/d3-selection/src/selection/enter.js","webpack://app/./node_modules/d3-selection/src/selection/data.js","webpack://app/./node_modules/d3-selection/src/selection/sort.js","webpack://app/./node_modules/d3-selection/src/namespaces.js","webpack://app/./node_modules/d3-selection/src/namespace.js","webpack://app/./node_modules/d3-selection/src/selection/attr.js","webpack://app/./node_modules/d3-selection/src/window.js","webpack://app/./node_modules/d3-selection/src/selection/style.js","webpack://app/./node_modules/d3-selection/src/selection/property.js","webpack://app/./node_modules/d3-selection/src/selection/classed.js","webpack://app/./node_modules/d3-selection/src/selection/text.js","webpack://app/./node_modules/d3-selection/src/selection/html.js","webpack://app/./node_modules/d3-selection/src/selection/raise.js","webpack://app/./node_modules/d3-selection/src/selection/lower.js","webpack://app/./node_modules/d3-selection/src/creator.js","webpack://app/./node_modules/d3-selection/src/selection/insert.js","webpack://app/./node_modules/d3-selection/src/selection/remove.js","webpack://app/./node_modules/d3-selection/src/selection/clone.js","webpack://app/./node_modules/d3-selection/src/selection/on.js","webpack://app/./node_modules/d3-selection/src/selection/dispatch.js","webpack://app/./node_modules/d3-selection/src/selection/index.js","webpack://app/./node_modules/d3-selection/src/selection/select.js","webpack://app/./node_modules/d3-selection/src/selection/filter.js","webpack://app/./node_modules/d3-selection/src/constant.js","webpack://app/./node_modules/d3-selection/src/selection/exit.js","webpack://app/./node_modules/d3-selection/src/selection/join.js","webpack://app/./node_modules/d3-selection/src/selection/merge.js","webpack://app/./node_modules/d3-selection/src/selection/order.js","webpack://app/./node_modules/d3-selection/src/selection/call.js","webpack://app/./node_modules/d3-selection/src/selection/nodes.js","webpack://app/./node_modules/d3-selection/src/selection/node.js","webpack://app/./node_modules/d3-selection/src/selection/size.js","webpack://app/./node_modules/d3-selection/src/selection/empty.js","webpack://app/./node_modules/d3-selection/src/selection/each.js","webpack://app/./node_modules/d3-selection/src/selection/append.js","webpack://app/./node_modules/d3-selection/src/selection/datum.js","webpack://app/./node_modules/d3-selection/src/selection/iterator.js","webpack://app/./node_modules/d3-dispatch/src/dispatch.js","webpack://app/./node_modules/d3-timer/src/timer.js","webpack://app/./node_modules/d3-timer/src/timeout.js","webpack://app/./node_modules/d3-transition/src/transition/schedule.js","webpack://app/./node_modules/d3-interpolate/src/number.js","webpack://app/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://app/./node_modules/d3-interpolate/src/transform/parse.js","webpack://app/./node_modules/d3-interpolate/src/transform/index.js","webpack://app/./node_modules/d3-transition/src/transition/tween.js","webpack://app/./node_modules/d3-color/src/define.js","webpack://app/./node_modules/d3-color/src/color.js","webpack://app/./node_modules/d3-interpolate/src/basis.js","webpack://app/./node_modules/d3-interpolate/src/constant.js","webpack://app/./node_modules/d3-interpolate/src/color.js","webpack://app/./node_modules/d3-interpolate/src/rgb.js","webpack://app/./node_modules/d3-interpolate/src/basisClosed.js","webpack://app/./node_modules/d3-interpolate/src/string.js","webpack://app/./node_modules/d3-transition/src/transition/interpolate.js","webpack://app/./node_modules/d3-transition/src/transition/attr.js","webpack://app/./node_modules/d3-transition/src/transition/attrTween.js","webpack://app/./node_modules/d3-transition/src/transition/delay.js","webpack://app/./node_modules/d3-transition/src/transition/duration.js","webpack://app/./node_modules/d3-transition/src/transition/selection.js","webpack://app/./node_modules/d3-transition/src/transition/style.js","webpack://app/./node_modules/d3-transition/src/transition/index.js","webpack://app/./node_modules/d3-transition/src/transition/select.js","webpack://app/./node_modules/d3-transition/src/transition/selectAll.js","webpack://app/./node_modules/d3-transition/src/transition/filter.js","webpack://app/./node_modules/d3-transition/src/transition/merge.js","webpack://app/./node_modules/d3-transition/src/transition/transition.js","webpack://app/./node_modules/d3-transition/src/transition/on.js","webpack://app/./node_modules/d3-transition/src/transition/styleTween.js","webpack://app/./node_modules/d3-transition/src/transition/text.js","webpack://app/./node_modules/d3-transition/src/transition/textTween.js","webpack://app/./node_modules/d3-transition/src/transition/remove.js","webpack://app/./node_modules/d3-transition/src/transition/ease.js","webpack://app/./node_modules/d3-transition/src/transition/easeVarying.js","webpack://app/./node_modules/d3-transition/src/transition/end.js","webpack://app/./node_modules/d3-transition/src/selection/transition.js","webpack://app/./node_modules/d3-ease/src/cubic.js","webpack://app/./node_modules/d3-transition/src/selection/index.js","webpack://app/./node_modules/d3-transition/src/selection/interrupt.js","webpack://app/./node_modules/d3-transition/src/interrupt.js","webpack://app/./node_modules/d3-brush/src/brush.js","webpack://app/./node_modules/d3-format/src/formatDecimal.js","webpack://app/./node_modules/d3-format/src/exponent.js","webpack://app/./node_modules/d3-format/src/formatSpecifier.js","webpack://app/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://app/./node_modules/d3-format/src/formatRounded.js","webpack://app/./node_modules/d3-format/src/formatTypes.js","webpack://app/./node_modules/d3-format/src/identity.js","webpack://app/./node_modules/d3-format/src/locale.js","webpack://app/./node_modules/d3-format/src/defaultLocale.js","webpack://app/./node_modules/d3-format/src/formatGroup.js","webpack://app/./node_modules/d3-format/src/formatNumerals.js","webpack://app/./node_modules/d3-format/src/formatTrim.js","webpack://app/./node_modules/d3-array/src/ticks.js","webpack://app/./node_modules/d3-array/src/ascending.js","webpack://app/./node_modules/d3-array/src/descending.js","webpack://app/./node_modules/d3-array/src/bisector.js","webpack://app/./node_modules/d3-array/src/bisect.js","webpack://app/./node_modules/d3-array/src/number.js","webpack://app/./node_modules/d3-interpolate/src/array.js","webpack://app/./node_modules/d3-interpolate/src/date.js","webpack://app/./node_modules/d3-interpolate/src/object.js","webpack://app/./node_modules/d3-interpolate/src/numberArray.js","webpack://app/./node_modules/d3-interpolate/src/value.js","webpack://app/./node_modules/d3-interpolate/src/round.js","webpack://app/./node_modules/d3-scale/src/number.js","webpack://app/./node_modules/d3-scale/src/continuous.js","webpack://app/./node_modules/d3-scale/src/constant.js","webpack://app/./node_modules/d3-scale/src/init.js","webpack://app/./node_modules/d3-scale/src/tickFormat.js","webpack://app/./node_modules/d3-format/src/precisionPrefix.js","webpack://app/./node_modules/d3-format/src/precisionRound.js","webpack://app/./node_modules/d3-format/src/precisionFixed.js","webpack://app/./node_modules/d3-scale/src/linear.js","webpack://app/./node_modules/internmap/src/index.js","webpack://app/./node_modules/d3-scale/src/ordinal.js","webpack://app/./node_modules/d3-time/src/duration.js","webpack://app/./node_modules/d3-time/src/interval.js","webpack://app/./node_modules/d3-time/src/millisecond.js","webpack://app/./node_modules/d3-time/src/second.js","webpack://app/./node_modules/d3-time/src/minute.js","webpack://app/./node_modules/d3-time/src/hour.js","webpack://app/./node_modules/d3-time/src/day.js","webpack://app/./node_modules/d3-time/src/week.js","webpack://app/./node_modules/d3-time/src/month.js","webpack://app/./node_modules/d3-time/src/year.js","webpack://app/./node_modules/d3-time/src/ticks.js","webpack://app/./node_modules/d3-time-format/src/locale.js","webpack://app/./node_modules/d3-time-format/src/defaultLocale.js","webpack://app/./node_modules/d3-scale/src/time.js","webpack://app/./node_modules/d3-scale/src/nice.js","webpack://app/./node_modules/d3-selection/src/select.js","webpack://app/./node_modules/d3-shape/src/constant.js","webpack://app/./node_modules/d3-shape/src/math.js","webpack://app/./node_modules/d3-path/src/path.js","webpack://app/./node_modules/d3-shape/src/path.js","webpack://app/./node_modules/d3-shape/src/arc.js","webpack://app/./node_modules/d3-shape/src/array.js","webpack://app/./node_modules/d3-shape/src/curve/linear.js","webpack://app/./node_modules/d3-shape/src/point.js","webpack://app/./node_modules/d3-shape/src/area.js","webpack://app/./node_modules/d3-shape/src/line.js","webpack://app/./node_modules/d3-shape/src/descending.js","webpack://app/./node_modules/d3-shape/src/identity.js","webpack://app/./node_modules/d3-shape/src/pie.js","webpack://app/./node_modules/d3-shape/src/offset/none.js","webpack://app/./node_modules/d3-shape/src/order/none.js","webpack://app/./node_modules/d3-shape/src/stack.js","webpack://app/./node_modules/d3-zoom/src/transform.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","export default function extent(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(x) {\n return x;\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","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","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","// 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’t 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(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 {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(update) {\n return new Array(update.length);\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 {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’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = 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’t worried about “live” 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’t; we’d 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","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 var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.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","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(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.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 propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.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","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","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","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","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","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 {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 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","export default function(x) {\n return function() {\n return x;\n };\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","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","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 = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\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 let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.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","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\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","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","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’ve set an alarm, if we haven’t 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 {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","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","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\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 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 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 {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’re 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’re 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 default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\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_formatHex8() {\n return this.rgb().formatHex8();\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(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(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() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\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 formatHex8: rgb_formatHex8,\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_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\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(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(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() {\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 clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\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() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import 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","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 {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 {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’re 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","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 {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 {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 {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 {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, 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’re 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 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","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 {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’re 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 {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","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 {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 {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 {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(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 ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, 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 zero() {\n return 0;\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export default function number(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","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","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","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","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(key);\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","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","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","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(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 = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\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 let previous;\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 = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (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 = (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 = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\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 const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.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 {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.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, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\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 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 {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","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","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","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let 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 this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`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._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let 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._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let 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 this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`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._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`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._append`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(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.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 path = withPath(area);\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 array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import 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","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n"],"names":["exports","sfc","props","target","__vccOpts","key","val","extent","values","valueof","min","max","undefined","value","index","x","right","bottom","left","epsilon","translateX","translateY","y","number","scale","d","center","offset","Math","bandwidth","round","entering","this","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","window","devicePixelRatio","k","transform","context","ticks","apply","domain","format","spacing","range","range0","range1","length","position","copy","selection","path","selectAll","data","tick","order","tickExit","exit","tickEnter","enter","append","attr","line","select","text","merge","insert","transition","isFinite","getAttribute","p","parentNode","remove","filter","each","_","arguments","Array","from","slice","tickSize","axisBottom","axisLeft","none","selector","querySelector","empty","querySelectorAll","arrayAll","isArray","matches","childMatcher","node","find","prototype","childFirst","firstElementChild","children","update","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","__data__","bindIndex","group","i","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","call","has","set","get","delete","arraylike","ascending","a","b","NaN","constructor","appendChild","child","insertBefore","next","xhtml","svg","xlink","xml","xmlns","name","prefix","indexOf","namespaces","hasOwnProperty","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","defaultView","document","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","trim","split","classList","ClassList","_node","_names","classedAdd","names","list","n","add","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","namespace","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","typename","on","__on","o","j","m","type","removeEventListener","listener","options","onAdd","event","contextListener","addEventListener","push","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","join","splice","contains","root","Selection","groups","parents","_groups","_parents","subgroups","subnode","subgroup","selectorAll","selectChild","match","childFind","selectChildren","childrenFilter","matcher","bind","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","map","sparse","onenter","onupdate","onexit","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","sort","compare","compareNode","sortgroups","sortgroup","callback","nodes","size","getAttributeNS","property","classed","html","create","creator","before","deep","t","typenames","parseTypenames","dispatch","Symbol","iterator","noop","test","Error","Dispatch","c","concat","types","T","that","args","taskHead","taskTail","timeout","interval","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","e","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","stop","TypeError","emptyOn","emptyTween","id","timing","schedules","__transition","self","tween","schedule","state","start","duration","ease","init","svgNode","degrees","PI","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","q","xa","ya","xb","yb","translate","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","interpolateTransformSvg","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","_id","factory","extend","definition","Object","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","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","r","g","opacity","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","isNaN","toString","h","Hsl","hslConvert","clamph","clampt","hsl2rgb","m2","basis","v0","v1","v2","v3","t3","channels","assign","displayable","formatHex8","formatHsl","pow","clamp","linear","gamma","nogamma","exponential","rgbGamma","end","rgbSpline","spline","colors","floor","reA","reB","source","am","bm","bs","bi","lastIndex","one","zero","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","id0","id1","on0","on1","sit","every","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","Promise","resolve","reject","cancel","interrupt","defaultTiming","active","abs","number1","number2","formatDecimalParts","toExponential","coefficient","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","fill","align","sign","symbol","width","comma","precision","exponent","toFixed","toLocaleString","replace","toPrecision","formatRounded","toUpperCase","formatPrefix","prefixes","locale","grouping","thousands","Number","substring","reverse","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","charCodeAt","padding","e10","e5","e2","tickSpec","count","step","power","log10","error","factor","i2","inc","tickIncrement","tickStep","descending","bisector","compare1","compare2","delta","lo","hi","mid","ascendingBisect","bisectRight","genericArray","nb","na","setTime","date","ArrayBuffer","isView","DataView","valueOf","object","unit","normalize","bimap","d0","d1","r0","r1","polymap","bisect","unknown","transformer","untransform","piecewise","output","input","rescale","invert","rangeRound","u","continuous","initRange","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","ceil","InternMap","entries","keyof","super","defineProperties","_intern","_key","intern_get","intern_set","intern_delete","Set","implicit","ordinal","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","timeInterval","floori","offseti","field","millisecond","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setHours","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","timeParse","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","w","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","z","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","x0","x1","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","X","utcFormat","utcParse","formatLocale","cos","sin","pi","halfPi","tau","asin","tauEpsilon","strings","Path","digits","_x0","_y0","_x1","_y1","_append","appendRound","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","dy","cw","da","rect","withPath","shape","RangeError","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","rc","ox","oy","x11","y11","x10","y10","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","x3","y3","x32","y32","intersect","ax","ay","bx","by","kc","lc","centroid","Linear","_context","defined","curve","area","defined0","x0z","y0z","areaStart","lineStart","lineEnd","point","areaEnd","arealine","lineX0","lineY0","lineY1","lineX1","sortValues","pie","sum","arcs","pa","series","s0","s1","stackValue","stackSeries","keys","stack","oz","sz","_line","_point","applyX","applyY","location","invertX","invertY","rescaleX","rescaleY"],"sourceRoot":""}