{"version":3,"file":"4504.f290e287.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/d3-array/src/extent.js","webpack://@finviz/website/../node_modules/d3-array/src/nice.js","webpack://@finviz/website/../node_modules/d3-axis/src/identity.js","webpack://@finviz/website/../node_modules/d3-axis/src/axis.js","webpack://@finviz/website/../node_modules/d3-selection/src/selector.js","webpack://@finviz/website/../node_modules/d3-selection/src/selectorAll.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectAll.js","webpack://@finviz/website/../node_modules/d3-selection/src/array.js","webpack://@finviz/website/../node_modules/d3-selection/src/matcher.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectChild.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/selectChildren.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/sparse.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/enter.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/data.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/sort.js","webpack://@finviz/website/../node_modules/d3-selection/src/namespaces.js","webpack://@finviz/website/../node_modules/d3-selection/src/namespace.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/attr.js","webpack://@finviz/website/../node_modules/d3-selection/src/window.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/style.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/property.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/classed.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/text.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/html.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/raise.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/lower.js","webpack://@finviz/website/../node_modules/d3-selection/src/creator.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/insert.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/remove.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/clone.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/on.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/dispatch.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/index.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/select.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/filter.js","webpack://@finviz/website/../node_modules/d3-selection/src/constant.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/exit.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/join.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/merge.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/order.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/call.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/nodes.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/node.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/size.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/empty.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/each.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/append.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/datum.js","webpack://@finviz/website/../node_modules/d3-selection/src/selection/iterator.js","webpack://@finviz/website/../node_modules/d3-dispatch/src/dispatch.js","webpack://@finviz/website/../node_modules/d3-timer/src/timer.js","webpack://@finviz/website/../node_modules/d3-timer/src/timeout.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/schedule.js","webpack://@finviz/website/../node_modules/d3-transition/src/interrupt.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/parse.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/decompose.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/transform/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/tween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/interpolate.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/attr.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/attrTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/delay.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/duration.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/selection.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/style.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/select.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/selectAll.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/filter.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/merge.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/transition.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/on.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/styleTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/text.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/textTween.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/remove.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/ease.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/easeVarying.js","webpack://@finviz/website/../node_modules/d3-transition/src/transition/end.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/transition.js","webpack://@finviz/website/../node_modules/d3-ease/src/cubic.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/index.js","webpack://@finviz/website/../node_modules/d3-transition/src/selection/interrupt.js","webpack://@finviz/website/../node_modules/d3-brush/src/brush.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/round.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/dice.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/slice.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/find.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/hierarchy/iterator.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/squarify.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/accessors.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/constant.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/index.js","webpack://@finviz/website/../node_modules/d3-hierarchy/src/treemap/resquarify.js","webpack://@finviz/website/../node_modules/d3-selection/src/select.js","webpack://@finviz/website/../node_modules/d3-path/src/path.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/constant.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/math.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/arc.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/array.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/curve/linear.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/point.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/line.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/descending.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/identity.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/pie.js","webpack://@finviz/website/../node_modules/d3/node_modules/d3-shape/src/curve/basis.js","webpack://@finviz/website/../node_modules/d3-drag/src/noevent.js","webpack://@finviz/website/../node_modules/d3-interpolate/src/zoom.js","webpack://@finviz/website/../node_modules/d3-selection/src/pointer.js","webpack://@finviz/website/../node_modules/d3-selection/src/sourceEvent.js","webpack://@finviz/website/../node_modules/d3-zoom/src/constant.js","webpack://@finviz/website/../node_modules/d3-zoom/src/event.js","webpack://@finviz/website/../node_modules/d3-zoom/src/transform.js","webpack://@finviz/website/../node_modules/d3-zoom/src/noevent.js","webpack://@finviz/website/../node_modules/d3-zoom/src/zoom.js","webpack://@finviz/website/../node_modules/d3-drag/src/nodrag.js"],"sourcesContent":["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","import {tickIncrement} from \"./ticks.js\";\n\nexport default function nice(start, stop, count) {\n let prestep;\n while (true) {\n const step = tickIncrement(start, stop, count);\n if (step === prestep || step === 0 || !isFinite(step)) {\n return [start, stop];\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n }\n prestep = step;\n }\n}\n","export default function(x) {\n return x;\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","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 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","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {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","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 {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","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\nimport {phi, squarifyRatio} from \"./squarify.js\";\n\nexport default (function custom(ratio) {\n\n function resquarify(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && (rows.ratio === ratio)) {\n var rows,\n row,\n nodes,\n i,\n j = -1,\n n,\n m = rows.length,\n value = parent.value;\n\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += (y1 - y0) * row.value / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += (x1 - x0) * row.value / value : x1, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n\n resquarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return resquarify;\n})(phi);\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","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","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 {path} from \"d3-path\";\nimport array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","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 function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\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","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n"],"names":["extent","values","valueof","min","max","undefined","value","index","nice","start","stop","count","prestep","step","isFinite","Math","floor","ceil","x","right","bottom","left","epsilon","translateX","translateY","y","number","scale","d","center","offset","bandwidth","round","entering","this","__axis","axis","orient","tickArguments","tickValues","tickFormat","tickSizeInner","tickSizeOuter","tickPadding","window","devicePixelRatio","k","transform","context","ticks","apply","domain","format","identity","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","getAttribute","p","parentNode","remove","filter","each","_","arguments","Array","from","slice","tickSize","axisRight","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","key","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","pokeDelay","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","TypeError","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","id","timing","schedules","__transition","self","tween","schedule","state","duration","ease","init","active","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","color","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","l","id0","id1","on0","on1","sit","every","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","end","Promise","resolve","reject","cancel","interrupt","defaultTiming","abs","number1","number2","sum","hierarchy","mapChildren","objectChildren","childs","Node","depth","eachBefore","computeHeight","copyData","height","x0","y0","x1","y1","eachAfter","ancestor","aNodes","ancestors","bNodes","leastCommonAncestor","descendants","leaves","links","source","target","current","reverse","phi","squarifyRatio","ratio","row","nodeValue","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","rows","dice","custom","squarify","required","constantZero","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","treemap","positionNode","padding","paddingOuter","resquarify","_squarify","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","x2","y2","arcTo","r","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","tan","acos","t01","t21","arc","a0","a1","ccw","cos","sin","cw","da","rect","w","h","toString","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x10","y10","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","buffer","r0","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","output","defined0","lineStart","lineEnd","point","sortValues","descending","pie","arcs","pa","Basis","areaStart","_line","areaEnd","_point","nonpassivecapture","capture","passive","preventDefault","stopImmediatePropagation","cosh","exp","zoomRho","rho","rho2","rho4","zoom","S","ux0","uy0","w0","ux1","uy1","w1","log","d1","b0","b1","coshr0","u","sinh","SQRT2","_1","_2","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","clientLeft","top","clientTop","pageX","pageY","ZoomEvent","Object","defineProperties","enumerable","configurable","Transform","applyX","applyY","invert","location","invertX","invertY","rescaleX","rescaleY","__zoom","ctrlKey","button","SVGElement","hasAttribute","viewBox","width","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","navigator","maxTouchPoints","defaultConstrain","translateExtent","touchstarting","touchfirst","touchending","constrain","wheelDelta","touchable","scaleExtent","listeners","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","gesture","g","clean","__zooming","Gesture","taps","pow","wheel","mouse","view","moved","noclick","MozUserSelect","__noselect","changedTouches","k1","shiftKey","started","touches","identifier","touch0","touch1","l0","l1","dp","dl","hypot","collection","scaleBy","scaleTo","translateBy","translateTo","emit","clickDistance"],"sourceRoot":""}