{"version":3,"file":"7400.024c96bd5b99b8b47a63.js","mappings":"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","sources":["webpack://grafana/./node_modules/d3-dispatch/src/dispatch.js","webpack://grafana/./node_modules/d3-timer/src/timer.js","webpack://grafana/./node_modules/d3-force/src/lcg.js","webpack://grafana/./node_modules/d3-force/src/simulation.js","webpack://grafana/./node_modules/d3-force/src/constant.js","webpack://grafana/./node_modules/d3-force/src/jiggle.js","webpack://grafana/./node_modules/d3-force/src/link.js","webpack://grafana/./node_modules/d3-force/src/x.js","webpack://grafana/./node_modules/d3-quadtree/src/add.js","webpack://grafana/./node_modules/d3-quadtree/src/cover.js","webpack://grafana/./node_modules/d3-quadtree/src/data.js","webpack://grafana/./node_modules/d3-quadtree/src/extent.js","webpack://grafana/./node_modules/d3-quadtree/src/quad.js","webpack://grafana/./node_modules/d3-quadtree/src/find.js","webpack://grafana/./node_modules/d3-quadtree/src/remove.js","webpack://grafana/./node_modules/d3-quadtree/src/root.js","webpack://grafana/./node_modules/d3-quadtree/src/size.js","webpack://grafana/./node_modules/d3-quadtree/src/visit.js","webpack://grafana/./node_modules/d3-quadtree/src/visitAfter.js","webpack://grafana/./node_modules/d3-quadtree/src/x.js","webpack://grafana/./node_modules/d3-quadtree/src/y.js","webpack://grafana/./node_modules/d3-quadtree/src/quadtree.js","webpack://grafana/./node_modules/d3-force/src/collide.js","webpack://grafana/./public/app/plugins/panel/nodeGraph/layout.worker.js"],"sourcesContent":["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","// https://en.wikipedia.org/wiki/Linear_congruential_generator#Parameters_in_common_use\nconst a = 1664525;\nconst c = 1013904223;\nconst m = 4294967296; // 2^32\n\nexport default function() {\n let s = 1;\n return () => (s = (a * s + c) % m) / m;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer} from \"d3-timer\";\nimport lcg from \"./lcg.js\";\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 = new Map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\"),\n random = lcg();\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.forEach(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(0.5 + 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, random);\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.forEach(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 randomSource: function(_) {\n return arguments.length ? (random = _, forces.forEach(initializeForce), simulation) : random;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.delete(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","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(random) {\n return (random() - 0.5) * 1e-6;\n}\n","import constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\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(\"node not found: \" + 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 random,\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(random);\n y = target.y + target.vy - source.y - source.vy || jiggle(random);\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 = new Map(nodes.map((d, i) => [id(d, i, nodes), d])),\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(_nodes, _random) {\n nodes = _nodes;\n random = _random;\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","import constant from \"./constant.js\";\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","export default function(d) {\n const 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(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 || 1,\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","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","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","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 {quadtree} from \"d3-quadtree\";\nimport constant from \"./constant.js\";\nimport jiggle from \"./jiggle.js\";\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 random,\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(random), l += x * x;\n if (y === 0) y = jiggle(random), 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(_nodes, _random) {\n nodes = _nodes;\n random = _random;\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","import { forceSimulation, forceLink, forceCollide, forceX } from 'd3-force';\n\naddEventListener('message', (event) => {\n const { nodes, edges, config } = event.data;\n layout(nodes, edges, config);\n postMessage({ nodes, edges });\n});\n\n/**\n * Use d3 force layout to lay the nodes in a sensible way. This function modifies the nodes adding the x,y positions\n * and also fills in node references in edges instead of node ids.\n */\nexport function layout(nodes, edges, config) {\n // Start with some hardcoded positions so it starts laid out from left to right\n let { roots, secondLevelRoots } = initializePositions(nodes, edges);\n\n // There always seems to be one or more root nodes each with single edge and we want to have them static on the\n // left neatly in something like grid layout\n [...roots, ...secondLevelRoots].forEach((n, index) => {\n n.fx = n.x;\n });\n\n const simulation = forceSimulation(nodes)\n .force(\n 'link',\n forceLink(edges)\n .id((d) => d.id)\n .distance(config.linkDistance)\n .strength(config.linkStrength)\n )\n // to keep the left to right layout we add force that pulls all nodes to right but because roots are fixed it will\n // apply only to non root nodes\n .force('x', forceX(config.forceX).strength(config.forceXStrength))\n // Make sure nodes don't overlap\n .force('collide', forceCollide(config.forceCollide));\n\n // 300 ticks for the simulation are recommended but less would probably work too, most movement is done in first\n // few iterations and then all the forces gets smaller https://github.com/d3/d3-force#simulation_alphaDecay\n simulation.tick(config.tick);\n simulation.stop();\n\n // We do centering here instead of using centering force to keep this more stable\n centerNodes(nodes);\n}\n\n/**\n * This initializes positions of the graph by going from the root to its children and laying it out in a grid from left\n * to right. This works only so, so because service map graphs can have cycles and children levels are not ordered in a\n * way to minimize the edge lengths. Nevertheless this seems to make the graph easier to nudge with the forces later on\n * than with the d3 default initial positioning. Also we can fix the root positions later on for a bit more neat\n * organisation.\n *\n * This function directly modifies the nodes given and only returns references to root nodes so they do not have to be\n * found again later on.\n *\n * How the spacing could look like approximately:\n * 0 - 0 - 0 - 0\n * \\- 0 - 0 |\n * \\- 0 -/\n * 0 - 0 -/\n */\nfunction initializePositions(nodes, edges) {\n // To prevent going in cycles\n const alreadyPositioned = {};\n\n const nodesMap = nodes.reduce((acc, node) => {\n acc[node.id] = node;\n return acc;\n }, {});\n const edgesMap = edges.reduce((acc, edge) => {\n const sourceId = edge.source;\n acc[sourceId] = [...(acc[sourceId] || []), edge];\n return acc;\n }, {});\n\n let roots = nodes.filter((n) => n.incoming === 0);\n\n // For things like service maps we assume there is some root (client) node but if there is none then selecting\n // any node as a starting point should work the same.\n if (!roots.length) {\n roots = [nodes[0]];\n }\n\n let secondLevelRoots = roots.reduce((acc, r) => {\n acc.push(...(edgesMap[r.id] ? edgesMap[r.id].map((e) => nodesMap[e.target]) : []));\n return acc;\n }, []);\n\n const rootYSpacing = 300;\n const nodeYSpacing = 200;\n const nodeXSpacing = 200;\n\n let rootY = 0;\n for (const root of roots) {\n let graphLevel = [root];\n let x = 0;\n while (graphLevel.length > 0) {\n const nextGraphLevel = [];\n let y = rootY;\n for (const node of graphLevel) {\n if (alreadyPositioned[node.id]) {\n continue;\n }\n // Initialize positions based on the spacing in the grid\n node.x = x;\n node.y = y;\n alreadyPositioned[node.id] = true;\n\n // Move to next Y position for next node\n y += nodeYSpacing;\n if (edgesMap[node.id]) {\n nextGraphLevel.push(...edgesMap[node.id].map((edge) => nodesMap[edge.target]));\n }\n }\n\n graphLevel = nextGraphLevel;\n // Move to next X position for next level\n x += nodeXSpacing;\n // Reset Y back to baseline for this root\n y = rootY;\n }\n rootY += rootYSpacing;\n }\n return { roots, secondLevelRoots };\n}\n\n/**\n * Makes sure that the center of the graph based on its bound is in 0, 0 coordinates.\n * Modifies the nodes directly.\n */\nfunction centerNodes(nodes) {\n const bounds = graphBounds(nodes);\n for (let node of nodes) {\n node.x = node.x - bounds.center.x;\n node.y = node.y - bounds.center.y;\n }\n}\n\n/**\n * Get bounds of the graph meaning the extent of the nodes in all directions.\n */\nfunction graphBounds(nodes) {\n if (nodes.length === 0) {\n return { top: 0, right: 0, bottom: 0, left: 0, center: { x: 0, y: 0 } };\n }\n\n const bounds = nodes.reduce(\n (acc, node) => {\n if (node.x > acc.right) {\n acc.right = node.x;\n }\n if (node.x < acc.left) {\n acc.left = node.x;\n }\n if (node.y > acc.bottom) {\n acc.bottom = node.y;\n }\n if (node.y < acc.top) {\n acc.top = node.y;\n }\n return acc;\n },\n { top: Infinity, right: -Infinity, bottom: -Infinity, left: Infinity }\n );\n\n const y = bounds.top + (bounds.bottom - bounds.top) / 2;\n const x = bounds.left + (bounds.right - bounds.left) / 2;\n\n return {\n ...bounds,\n center: {\n x,\n y,\n },\n };\n}\n"],"names":["noop","dispatch","i","_","t","Dispatch","parseTypenames","typenames","types","name","typename","callback","T","n","get","set","copy","type","that","args","c","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","f","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","e","wake","nap","poke","t0","t1","t2","a","m","s","x","d","y","initialRadius","initialAngle","nodes","simulation","alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","step","event","random","lcg","tick","iterations","node","k","force","initializeNodes","radius","angle","initializeForce","dx","dy","d2","closest","index","find","nodeById","nodeId","links","id","strength","defaultStrength","strengths","distance","constant","distances","count","bias","link","source","target","l","b","jiggle","initialize","initializeStrength","initializeDistance","_nodes","_random","xz","tree","parent","leaf","x0","y0","x1","y1","xm","ym","xp","yp","right","bottom","j","addAll","data","yz","z","x2","y2","x3","y3","quads","q","retainer","previous","next","removeAll","size","child","defaultX","defaultY","quadtree","Quadtree","leaf_copy","treeProto","radii","xi","yi","ri","ri2","prepare","apply","quad","rj","r","edges","config","layout","roots","secondLevelRoots","initializePositions","centerNodes","alreadyPositioned","nodesMap","acc","edgesMap","edge","sourceId","rootYSpacing","nodeYSpacing","nodeXSpacing","rootY","root","graphLevel","nextGraphLevel","bounds","graphBounds"],"sourceRoot":""}