// https://d3js.org/d3-force/ v1.2.1 Copyright 2019 Mike Bostock !function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("d3-quadtree"),require("d3-collection"),require("d3-dispatch"),require("d3-timer")):"function"==typeof define&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],t):t(n.d3=n.d3||{},n.d3,n.d3,n.d3,n.d3)}(this,function(n,t,e,r,i){"use strict";function u(n){return function(){return n}}function o(){return 1e-6*(Math.random()-.5)}function f(n){return n.x+n.vx}function a(n){return n.y+n.vy}function c(n){return n.index}function l(n,t){var e=n.get(t);if(!e)throw new Error("missing: "+t);return e}function h(n){return n.x}function v(n){return n.y}var y=10,d=Math.PI*(3-Math.sqrt(5));n.forceCenter=function(n,t){var e;function r(){var r,i,u=e.length,o=0,f=0;for(r=0;rv+c||ry+c||ul.index){var h=v-f.x-f.vx,g=y-f.y-f.vy,s=h*h+g*g;sn.r&&(n.r=n[t].r)}function v(){if(e){var t,i,u=e.length;for(r=new Array(u),t=0;t=c)){(n.data!==e||n.next)&&(0===h&&(d+=(h=o())*h),0===v&&(d+=(v=o())*v),d1?(null==e?l.remove(n):l.set(n,p(e)),t):l.get(n)},find:function(t,e,r){var i,u,o,f,a,c=0,l=n.length;for(null==r?r=1/0:r*=r,c=0;c1?(v.on(n,e),t):v.on(n)}}},n.forceX=function(n){var t,e,r,i=u(.1);function o(n){for(var i,u=0,o=t.length;u