{"version":3,"file":"js/9679-1b7f458b8f8dbbe7f621.js","mappings":"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","sources":["webpack://app/./node_modules/d3-array/src/bisect.js","webpack://app/./node_modules/d3-array/src/ticks.js","webpack://app/./node_modules/d3-dispatch/src/dispatch.js","webpack://app/./node_modules/d3-selection/src/touch.js","webpack://app/./node_modules/d3-drag/src/noevent.js","webpack://app/./node_modules/d3-drag/src/constant.js","webpack://app/./node_modules/d3-drag/src/event.js","webpack://app/./node_modules/d3-drag/src/drag.js","webpack://app/./node_modules/d3-drag/src/nodrag.js","webpack://app/./node_modules/d3-fetch/src/json.js","webpack://app/./node_modules/d3-force/src/center.js","webpack://app/./node_modules/d3-force/src/constant.js","webpack://app/./node_modules/d3-force/src/jiggle.js","webpack://app/./node_modules/d3-quadtree/src/add.js","webpack://app/./node_modules/d3-quadtree/src/quad.js","webpack://app/./node_modules/d3-quadtree/src/x.js","webpack://app/./node_modules/d3-quadtree/src/y.js","webpack://app/./node_modules/d3-quadtree/src/quadtree.js","webpack://app/./node_modules/d3-force/src/collide.js","webpack://app/./node_modules/d3-quadtree/src/cover.js","webpack://app/./node_modules/d3-quadtree/src/data.js","webpack://app/./node_modules/d3-quadtree/src/extent.js","webpack://app/./node_modules/d3-quadtree/src/find.js","webpack://app/./node_modules/d3-quadtree/src/remove.js","webpack://app/./node_modules/d3-quadtree/src/root.js","webpack://app/./node_modules/d3-quadtree/src/size.js","webpack://app/./node_modules/d3-quadtree/src/visit.js","webpack://app/./node_modules/d3-quadtree/src/visitAfter.js","webpack://app/./node_modules/d3-force/src/link.js","webpack://app/./node_modules/d3-timer/src/timer.js","webpack://app/./node_modules/d3-force/src/simulation.js","webpack://app/./node_modules/d3-force/src/manyBody.js","webpack://app/./node_modules/d3-force/src/x.js","webpack://app/./node_modules/d3-force/src/y.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/count.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/index.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/each.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/sum.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/sort.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/path.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/ancestors.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/descendants.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/leaves.js","webpack://app/./node_modules/d3-hierarchy/src/hierarchy/links.js","webpack://app/./node_modules/d3-selection/src/selectAll.js","webpack://app/./node_modules/d3-selection/src/selection/on.js"],"sourcesContent":["import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","var noop = {value: function() {}};\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","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import {event} from \"d3-selection\";\n\nexport function nopropagation() {\n event.stopImmediatePropagation();\n}\n\nexport default function() {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function DragEvent(target, type, subject, id, active, x, y, dx, dy, dispatch) {\n this.target = target;\n this.type = type;\n this.subject = subject;\n this.identifier = id;\n this.active = active;\n this.x = x;\n this.y = y;\n this.dx = dx;\n this.dy = dy;\n this._ = dispatch;\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {event, customEvent, select, mouse, touch} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned() {\n if (touchending || !filter.apply(this, arguments)) return;\n var gesture = beforestart(\"mouse\", container.apply(this, arguments), mouse, this, arguments);\n if (!gesture) return;\n select(event.view).on(\"mousemove.drag\", mousemoved, true).on(\"mouseup.drag\", mouseupped, true);\n nodrag(event.view);\n nopropagation();\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\");\n }\n\n function mousemoved() {\n noevent();\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\");\n }\n\n function mouseupped() {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent();\n gestures.mouse(\"end\");\n }\n\n function touchstarted() {\n if (!filter.apply(this, arguments)) return;\n var touches = event.changedTouches,\n c = container.apply(this, arguments),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(touches[i].identifier, c, touch, this, arguments)) {\n nopropagation();\n gesture(\"start\");\n }\n }\n }\n\n function touchmoved() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent();\n gesture(\"drag\");\n }\n }\n }\n\n function touchended() {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation();\n gesture(\"end\");\n }\n }\n }\n\n function beforestart(id, container, point, that, args) {\n var p = point(container, id), s, dx, dy,\n sublisteners = listeners.copy();\n\n if (!customEvent(new DragEvent(drag, \"beforestart\", s, id, active, p[0], p[1], 0, 0, sublisteners), function() {\n if ((event.subject = s = subject.apply(that, args)) == null) return false;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return true;\n })) return;\n\n return function gesture(type) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[id] = gesture, n = active++; break;\n case \"end\": delete gestures[id], --active; // nobreak\n case \"drag\": p = point(container, id), n = active; break;\n }\n customEvent(new DragEvent(drag, type, s, id, n, p[0] + dx, p[1] + dy, p[0] - p0[0], p[1] - p0[1], sublisteners), sublisteners.apply, sublisteners, [type, that, args]);\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","import {select} from \"d3-selection\";\nimport noevent from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, true);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, true);\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, true);\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","function responseJson(response) {\n if (!response.ok) throw new Error(response.status + \" \" + response.statusText);\n if (response.status === 204 || response.status === 205) return;\n return response.json();\n}\n\nexport default function(input, init) {\n return fetch(input, init).then(responseJson);\n}\n","export default function(x, y) {\n var nodes;\n\n if (x == null) x = 0;\n if (y == null) y = 0;\n\n function force() {\n var i,\n n = nodes.length,\n node,\n sx = 0,\n sy = 0;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n\n for (sx = sx / n - x, sy = sy / n - y, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = +_, force) : x;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = +_, force) : y;\n };\n\n return force;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function() {\n return (Math.random() - 0.5) * 1e-6;\n}\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\n\nfunction x(d) {\n return d.x + d.vx;\n}\n\nfunction y(d) {\n return d.y + d.vy;\n}\n\nexport default function(radius) {\n var nodes,\n radii,\n strength = 1,\n iterations = 1;\n\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n\n function force() {\n var i, n = nodes.length,\n tree,\n node,\n xi,\n yi,\n ri,\n ri2;\n\n for (var k = 0; k < iterations; ++k) {\n tree = quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x = xi - data.x - data.vx,\n y = yi - data.y - data.vy,\n l = x * x + y * y;\n if (l < r * r) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y *= l) * r;\n data.vx -= x * (r = 1 - r);\n data.vy -= y * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n\n return force;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {map} from \"d3-collection\";\n\nfunction index(d) {\n return d.index;\n}\n\nfunction find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n}\n\nexport default function(links) {\n var id = index,\n strength = defaultStrength,\n strengths,\n distance = constant(30),\n distances,\n nodes,\n count,\n bias,\n iterations = 1;\n\n if (links == null) links = [];\n\n function defaultStrength(link) {\n return 1 / Math.min(count[link.source.index], count[link.target.index]);\n }\n\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link, source, target, x, y, l, b; i < n; ++i) {\n link = links[i], source = link.source, target = link.target;\n x = target.x + target.vx - source.x - source.vx || jiggle();\n y = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x * x + y * y);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x *= l, y *= l;\n target.vx -= x * (b = bias[i]);\n target.vy -= y * b;\n source.vx += x * (b = 1 - b);\n source.vy += y * b;\n }\n }\n }\n\n function initialize() {\n if (!nodes) return;\n\n var i,\n n = nodes.length,\n m = links.length,\n nodeById = map(nodes, id),\n link;\n\n for (i = 0, count = new Array(n); i < m; ++i) {\n link = links[i], link.index = i;\n if (typeof link.source !== \"object\") link.source = find(nodeById, link.source);\n if (typeof link.target !== \"object\") link.target = find(nodeById, link.target);\n count[link.source.index] = (count[link.source.index] || 0) + 1;\n count[link.target.index] = (count[link.target.index] || 0) + 1;\n }\n\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link = links[i], bias[i] = count[link.source.index] / (count[link.source.index] + count[link.target.index]);\n }\n\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n\n function initializeStrength() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n\n function initializeDistance() {\n if (!nodes) return;\n\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n\n return force;\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’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(null, 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 {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","import constant from \"./constant\";\nimport jiggle from \"./jiggle\";\nimport {quadtree} from \"d3-quadtree\";\nimport {x, y} from \"./simulation\";\n\nexport default function() {\n var nodes,\n node,\n alpha,\n strength = constant(-30),\n strengths,\n distanceMin2 = 1,\n distanceMax2 = Infinity,\n theta2 = 0.81;\n\n function force(_) {\n var i, n = nodes.length, tree = quadtree(nodes, x, y).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], strengths[node.index] = +strength(node, i, nodes);\n }\n\n function accumulate(quad) {\n var strength = 0, q, c, weight = 0, x, y, i;\n\n // For internal nodes, accumulate forces from child quadrants.\n if (quad.length) {\n for (x = y = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength += q.value, weight += c, x += c * q.x, y += c * q.y;\n }\n }\n quad.x = x / weight;\n quad.y = y / weight;\n }\n\n // For leaf nodes, accumulate forces from coincident quadrants.\n else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do strength += strengths[q.data.index];\n while (q = q.next);\n }\n\n quad.value = strength;\n }\n\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n\n var x = quad.x - node.x,\n y = quad.y - node.y,\n w = x2 - x1,\n l = x * x + y * y;\n\n // Apply the Barnes-Hut approximation if possible.\n // Limit forces for very close nodes; randomize direction if coincident.\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x * quad.value * alpha / l;\n node.vy += y * quad.value * alpha / l;\n }\n return true;\n }\n\n // Otherwise, process points directly.\n else if (quad.length || l >= distanceMax2) return;\n\n // Limit forces for very close nodes; randomize direction if coincident.\n if (quad.data !== node || quad.next) {\n if (x === 0) x = jiggle(), l += x * x;\n if (y === 0) y = jiggle(), l += y * y;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n\n do if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x * w;\n node.vy += y * w;\n } while (quad = quad.next);\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(x) {\n var strength = constant(0.1),\n nodes,\n strengths,\n xz;\n\n if (typeof x !== \"function\") x = constant(x == null ? 0 : +x);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x;\n };\n\n return force;\n}\n","import constant from \"./constant\";\n\nexport default function(y) {\n var strength = constant(0.1),\n nodes,\n strengths,\n yz;\n\n if (typeof y !== \"function\") y = constant(y == null ? 0 : +y);\n\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n\n force.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y;\n };\n\n return force;\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_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\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[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 defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\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 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};\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\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 var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\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","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n"],"names":["ascendingBisect","right","left","Math","sqrt","noop","value","dispatch","t","i","n","arguments","length","_","test","Error","Dispatch","this","get","type","name","c","set","callback","slice","concat","push","prototype","constructor","on","typename","types","T","trim","split","map","indexOf","hasOwnProperty","copy","call","that","args","Array","apply","node","touches","identifier","sourceEvent","changedTouches","touch","point","nopropagation","x","DragEvent","target","subject","id","active","y","dx","dy","defaultFilter","defaultContainer","parentNode","defaultSubject","d","defaultTouchable","navigator","maxTouchPoints","mousedownx","mousedowny","mousemoving","touchending","filter","container","touchable","gestures","listeners","clickDistance2","drag","selection","mousedowned","touchstarted","touchmoved","touchended","style","view","root","gesture","beforestart","mouse","mousemoved","mouseupped","document","documentElement","noevent","__noselect","MozUserSelect","noclick","setTimeout","clearTimeout","s","p","sublisteners","p0","constant","clickDistance","responseJson","response","ok","status","statusText","json","input","init","fetch","then","nodes","force","sx","sy","initialize","random","tree","isNaN","parent","xm","ym","xp","yp","bottom","j","_root","leaf","data","x0","_x0","y0","_y0","x1","_x1","y1","_y1","_x","_y","next","defaultX","defaultY","quadtree","Quadtree","NaN","addAll","undefined","leaf_copy","treeProto","vx","vy","radius","radii","strength","iterations","xi","yi","ri","ri2","k","visitAfter","prepare","index","visit","quad","rj","r","l","jiggle","child","source","pop","add","cover","xz","yz","Infinity","floor","z","extent","find","x2","y2","q","x3","y3","quads","d2","remove","retainer","previous","removeAll","size","nodeById","nodeId","links","strengths","distances","count","bias","link","min","distance","alpha","b","m","initializeStrength","initializeDistance","taskHead","taskTail","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","window","requestAnimationFrame","bind","f","clearNow","Timer","_call","_time","_next","timer","delay","time","restart","wake","e","timerFlush","t0","t2","t1","sleep","nap","poke","clearInterval","setInterval","TypeError","stop","initialRadius","initialAngle","PI","simulation","alphaMin","alphaDecay","pow","alphaTarget","velocityDecay","forces","stepper","step","event","tick","each","fx","fy","initializeNodes","angle","cos","sin","initializeForce","closest","distanceMin2","distanceMax2","theta2","accumulate","weight","abs","w","distanceMin","distanceMax","theta","sum","children","hierarchy","childs","Node","valued","defaultChildren","depth","eachBefore","computeHeight","copyData","height","eachAfter","current","reverse","sort","compare","path","end","start","ancestor","a","aNodes","ancestors","bNodes","leastCommonAncestor","splice","descendants","leaves","selector","querySelectorAll","filterEvents","mouseenter","mouseleave","filterContextListener","listener","group","contextListener","related","relatedTarget","compareDocumentPosition","event1","event0","__data__","onRemove","__on","o","removeEventListener","capture","onAdd","wrap","addEventListener","typenames","parseTypenames","customEvent"],"sourceRoot":""}