// Version 1.29.1 react-force-graph-2d - https://github.com/vasturiano/react-force-graph !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("react")):"function"==typeof define&&define.amd?define(["react"],n):(t="undefined"!=typeof globalThis?globalThis:t||self).ForceGraph2D=n(t.React)}(this,function(n){"use strict";function e(t,n,e){return(n=function(t){var n=function(t,n){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,n);if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(t)}(t,"string");return"symbol"==typeof n?n:String(n)}(n))in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function r(t,n){return function(t){if(Array.isArray(t))return t}(t)||function(t,n){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var r,i,o,a,u=[],s=!0,l=!1;try{if(o=(e=e.call(t)).next,0===n){if(Object(e)!==e)return;s=!1}else for(;!(s=(r=o.call(e)).done)&&(u.push(r.value),u.length!==n);s=!0);}catch(t){l=!0,i=t}finally{try{if(!s&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(l)throw i}}return u}}(t,n)||o(t,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(t){return function(t){if(Array.isArray(t))return a(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||o(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(t,n){if(t){if("string"==typeof t)return a(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?a(t,n):void 0}}function a(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);et.length)&&(n=t.length);for(var e=0,r=Array(n);e1&&void 0!==arguments[1]?arguments[1]:n.useEffect,r=n.useRef(),i=n.useRef(!1),o=n.useRef(!1),a=s(n.useState(0),2);a[0];var u=a[1];i.current&&(o.current=!0),e(function(){return i.current||(r.current=t(),i.current=!0),u(function(t){return t+1}),function(){o.current&&r.current&&r.current()}},[])}var h="http://www.w3.org/1999/xhtml",p={svg:"http://www.w3.org/2000/svg",xhtml:h,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function d(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),p.hasOwnProperty(n)?{space:p[n],local:t}:t}function y(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===h&&n.documentElement.namespaceURI===h?n.createElement(t):n.createElementNS(e,t)}}function g(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function v(t){var n=d(t);return(n.local?g:y)(n)}function _(){}function m(t){return null==t?_:function(){return this.querySelector(t)}}function b(){return[]}function x(t){return null==t?b:function(){return this.querySelectorAll(t)}}function w(t){return function(){return function(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}(t.apply(this,arguments))}}function k(t){return function(){return this.matches(t)}}function S(t){return function(n){return n.matches(t)}}var A=Array.prototype.find;function M(){return this.firstElementChild}var O=Array.prototype.filter;function z(){return Array.from(this.children)}function E(t){return new Array(t.length)}function C(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function P(t,n,e,r,i,o){for(var a,u=0,s=n.length,l=o.length;un?1:t>=n?0:NaN}function D(t){return function(){this.removeAttribute(t)}}function I(t){return function(){this.removeAttributeNS(t.space,t.local)}}function U(t,n){return function(){this.setAttribute(t,n)}}function F(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function L(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function $(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function q(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function B(t){return function(){this.style.removeProperty(t)}}function H(t,n,e){return function(){this.style.setProperty(t,n,e)}}function V(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function G(t,n){return t.style.getPropertyValue(n)||q(t).getComputedStyle(t,null).getPropertyValue(n)}function X(t){return function(){delete this[t]}}function W(t,n){return function(){this[t]=n}}function Y(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function Z(t){return t.trim().split(/^|\s+/)}function Q(t){return t.classList||new J(t)}function J(t){this._node=t,this._names=Z(t.getAttribute("class")||"")}function K(t,n){for(var e=Q(t),r=-1,i=n.length;++r=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var xt=[null];function wt(t,n){this._groups=t,this._parents=n}function kt(){return new wt([[document.documentElement]],xt)}function St(t){return"string"==typeof t?new wt([[document.querySelector(t)]],[document.documentElement]):new wt([[t]],xt)}function At(t,n){if(t=function(t){let n;for(;n=t.sourceEvent;)t=n;return t}(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(n.getScreenCTM().inverse())).x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}wt.prototype=kt.prototype={constructor:wt,select:function(t){"function"!=typeof t&&(t=m(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i=b&&(b=m+1);!(_=g[b])&&++b=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=R);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?B:"function"==typeof n?V:H)(t,n,null==e?"":e)):G(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?X:"function"==typeof n?Y:W)(t,n)):this.node()[t]},classed:function(t,n){var e=Z(t+"");if(arguments.length<2){for(var r=Q(this.node()),i=-1,o=e.length;++i=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?vt:gt,r=0;r{}};function Ot(){for(var t,n=0,e=arguments.length,r={};n=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})),a=-1,u=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a0)for(var e,r,i=new Array(e),o=0;o()=>t;function Ut(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:s,dy:l,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:s,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:c}})}function Ft(t){return!t.ctrlKey&&!t.button}function Lt(){return this.parentNode}function $t(t,n){return null==n?{x:t.x,y:t.y}:n}function qt(){return navigator.maxTouchPoints||"ontouchstart"in this}function Bt(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Ht(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Vt(){}Ut.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Gt=.7,Xt=1/Gt,Wt="\\s*([+-]?\\d+)\\s*",Yt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Zt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Qt=/^#([0-9a-f]{3,8})$/,Jt=new RegExp(`^rgb\\(${Wt},${Wt},${Wt}\\)$`),Kt=new RegExp(`^rgb\\(${Zt},${Zt},${Zt}\\)$`),tn=new RegExp(`^rgba\\(${Wt},${Wt},${Wt},${Yt}\\)$`),nn=new RegExp(`^rgba\\(${Zt},${Zt},${Zt},${Yt}\\)$`),en=new RegExp(`^hsl\\(${Yt},${Zt},${Zt}\\)$`),rn=new RegExp(`^hsla\\(${Yt},${Zt},${Zt},${Yt}\\)$`),on={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function an(){return this.rgb().formatHex()}function un(){return this.rgb().formatRgb()}function sn(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Qt.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?ln(n):3===e?new hn(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?cn(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?cn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Jt.exec(t))?new hn(n[1],n[2],n[3],1):(n=Kt.exec(t))?new hn(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=tn.exec(t))?cn(n[1],n[2],n[3],n[4]):(n=nn.exec(t))?cn(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=en.exec(t))?_n(n[1],n[2]/100,n[3]/100,1):(n=rn.exec(t))?_n(n[1],n[2]/100,n[3]/100,n[4]):on.hasOwnProperty(t)?ln(on[t]):"transparent"===t?new hn(NaN,NaN,NaN,0):null}function ln(t){return new hn(t>>16&255,t>>8&255,255&t,1)}function cn(t,n,e,r){return r<=0&&(t=n=e=NaN),new hn(t,n,e,r)}function fn(t,n,e,r){return 1===arguments.length?function(t){return t instanceof Vt||(t=sn(t)),t?new hn((t=t.rgb()).r,t.g,t.b,t.opacity):new hn}(t):new hn(t,n,e,null==r?1:r)}function hn(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function pn(){return`#${vn(this.r)}${vn(this.g)}${vn(this.b)}`}function dn(){const t=yn(this.opacity);return`${1===t?"rgb(":"rgba("}${gn(this.r)}, ${gn(this.g)}, ${gn(this.b)}${1===t?")":`, ${t})`}`}function yn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function gn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function vn(t){return((t=gn(t))<16?"0":"")+t.toString(16)}function _n(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new bn(t,n,e,r)}function mn(t){if(t instanceof bn)return new bn(t.h,t.s,t.l,t.opacity);if(t instanceof Vt||(t=sn(t)),!t)return new bn;if(t instanceof bn)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,s=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e0&&s<1?0:a,new bn(a,u,s,t.opacity)}function bn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function xn(t){return(t=(t||0)%360)<0?t+360:t}function wn(t){return Math.max(0,Math.min(1,t||0))}function kn(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Bt(Vt,sn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:an,formatHex:an,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return mn(this).formatHsl()},formatRgb:un,toString:un}),Bt(hn,fn,Ht(Vt,{brighter(t){return t=null==t?Xt:Math.pow(Xt,t),new hn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Gt:Math.pow(Gt,t),new hn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new hn(gn(this.r),gn(this.g),gn(this.b),yn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:pn,formatHex:pn,formatHex8:function(){return`#${vn(this.r)}${vn(this.g)}${vn(this.b)}${vn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:dn,toString:dn})),Bt(bn,function(t,n,e,r){return 1===arguments.length?mn(t):new bn(t,n,e,null==r?1:r)},Ht(Vt,{brighter(t){return t=null==t?Xt:Math.pow(Xt,t),new bn(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Gt:Math.pow(Gt,t),new bn(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new hn(kn(t>=240?t-240:t+120,i,r),kn(t,i,r),kn(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new bn(xn(this.h),wn(this.s),wn(this.l),yn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=yn(this.opacity);return`${1===t?"hsl(":"hsla("}${xn(this.h)}, ${100*wn(this.s)}%, ${100*wn(this.l)}%${1===t?")":`, ${t})`}`}}));var Sn=t=>()=>t;function An(t){return 1===(t=+t)?Mn:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):Sn(isNaN(n)?e:n)}}function Mn(t,n){var e=n-t;return e?function(t,n){return function(e){return t+e*n}}(t,e):Sn(isNaN(t)?n:t)}var On=function t(n){var e=An(n);function r(t,n){var r=e((t=fn(t)).r,(n=fn(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=Mn(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function zn(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var En=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Cn=new RegExp(En.source,"g");function Pn(t,n){var e,r,i,o=En.lastIndex=Cn.lastIndex=0,a=-1,u=[],s=[];for(t+="",n+="";(e=En.exec(t))&&(r=Cn.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,s.push({i:a,x:zn(e,r)})),o=Cn.lastIndex;return o180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:zn(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,s),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:zn(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,s),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:zn(t,e)},{i:u-2,x:zn(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,s),o=a=null,function(t){for(var n,e=-1,r=s.length;++e=0&&n._call.call(void 0,t),n=n._next;--Bn}()}finally{Bn=0,function(){var t,n,e=Ln,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Ln=n);$n=t,re(r)}(),Xn=0}}function ee(){var t=Yn.now(),n=t-Gn;n>1e3&&(Wn-=n,Gn=t)}function re(t){Bn||(Hn&&(Hn=clearTimeout(Hn)),t-Xn>24?(t<1/0&&(Hn=setTimeout(ne,t-Yn.now()-Wn)),Vn&&(Vn=clearInterval(Vn))):(Vn||(Gn=Yn.now(),Vn=setInterval(ee,1e3)),Bn=1,Zn(ne)))}function ie(t,n,e){var r=new Kn;return n=null==n?0:+n,r.restart(e=>{r.stop(),t(e+n)},n,e),r}Kn.prototype=te.prototype={constructor:Kn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Qn():+e)+(null==n?0:+n),this._next||$n===this||($n?$n._next=this:Ln=this,$n=this),this._call=t,this._time=e,re()},stop:function(){this._call&&(this._call=null,this._time=1/0,re())}};var oe=Ot("start","end","cancel","interrupt"),ae=[];function ue(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(t){e.state=1,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(o){var l,c,f,h;if(1!==e.state)return s();for(l in i)if((h=i[l]).name===e.name){if(3===h.state)return ie(a);4===h.state?(h.state=6,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[l]):+l0)throw new Error("too late; already scheduled");return e}function le(t,n){var e=ce(t,n);if(e.state>3)throw new Error("too late; already running");return e}function ce(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function fe(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function he(t,n){var e,r;return function(){var i=le(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a=0&&(t=t.slice(0,n)),!t||"start"===t})}(n)?se:le;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=d(t),r="transform"===e?Un:ye;return this.attrTween(t,"function"==typeof n?(e.local?xe:be)(e,r,de(this,"attr."+t,n)):null==n?(e.local?ve:ge)(e):(e.local?me:_e)(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=d(t);return this.tween(e,(r.local?we:ke)(r,n))},style:function(t,n,e){var r="transform"==(t+="")?In:ye;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=G(this,t),a=(this.style.removeProperty(t),G(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,Ee(t)):"function"==typeof n?this.styleTween(t,function(t,n,e){var r,i,o;return function(){var a=G(this,t),u=e(this),s=u+"";return null==u&&(this.style.removeProperty(t),s=u=G(this,t)),a===s?null:a===r&&s===i?o:(i=s,o=n(r=a,u))}}(t,r,de(this,"style."+t,n))).each(function(t,n){var e,r,i,o,a="style."+n,u="end."+a;return function(){var s=le(this,t),l=s.on,c=null==s.value[a]?o||(o=Ee(n)):void 0;l===e&&i===c||(r=(e=l).copy()).on(u,i=c),s.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,i,o=e+"";return function(){var a=G(this,t);return a===o?null:a===r?i:i=n(r=a,e)}}(t,r,n),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}(t,o,e)),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(de(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){return function(n){this.textContent=t.call(this,n)}}(r)),n}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=ce(this.node(),e).tween,o=0,a=i.length;o()=>t;function Ie(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Ue(t,n,e){this.k=t,this.x=n,this.y=e}Ue.prototype={constructor:Ue,scale:function(t){return 1===t?this:new Ue(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Ue(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Fe=new Ue(1,0,0);function Le(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Fe;return t.__zoom}function $e(t){t.stopImmediatePropagation()}function qe(t){t.preventDefault(),t.stopImmediatePropagation()}function Be(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function He(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function Ve(){return this.__zoom||Fe}function Ge(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Xe(){return navigator.maxTouchPoints||"ontouchstart"in this}function We(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function Ye(){var t,n,e,r=Be,i=He,o=We,a=Ge,u=Xe,s=[0,1/0],l=[[-1/0,-1/0],[1/0,1/0]],c=250,f=qn,h=Ot("start","zoom","end"),p=0,d=10;function y(t){t.property("__zoom",Ve).on("wheel.zoom",w,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",S).filter(u).on("touchstart.zoom",A).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",O).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(t,n){return(n=Math.max(s[0],Math.min(s[1],n)))===t.k?t:new Ue(n,t.x,t.y)}function v(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Ue(t.k,r,i)}function _(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function m(t,n,e,r){t.on("start.zoom",function(){b(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){b(this,arguments).event(r).end()}).tween("zoom",function(){var t=this,o=arguments,a=b(t,o).event(r),u=i.apply(t,o),s=null==e?_(u):"function"==typeof e?e.apply(t,o):e,l=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),c=t.__zoom,h="function"==typeof n?n.apply(t,o):n,p=f(c.invert(s).concat(l/c.k),h.invert(s).concat(l/h.k));return function(t){if(1===t)t=h;else{var n=p(t),e=l/n[2];t=new Ue(e,s[0]-n[0]*e,s[1]-n[1]*e)}a.zoom(null,t)}})}function b(t,n,e){return!e&&t.__zooming||new x(t,n)}function x(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,n),this.taps=0}function w(t,...n){if(r.apply(this,arguments)){var e=b(this,n).event(t),i=this.__zoom,u=Math.max(s[0],Math.min(s[1],i.k*Math.pow(2,a.apply(this,arguments)))),c=At(t);if(e.wheel)e.mouse[0][0]===c[0]&&e.mouse[0][1]===c[1]||(e.mouse[1]=i.invert(e.mouse[0]=c)),clearTimeout(e.wheel);else{if(i.k===u)return;e.mouse=[c,i.invert(c)],fe(this),e.start()}qe(t),e.wheel=setTimeout(function(){e.wheel=null,e.end()},150),e.zoom("mouse",o(v(g(i,u),e.mouse[0],e.mouse[1]),e.extent,l))}}function k(t,...n){if(!e&&r.apply(this,arguments)){var i=t.currentTarget,a=b(this,n,!0).event(t),u=St(t.view).on("mousemove.zoom",function(t){if(qe(t),!a.moved){var n=t.clientX-c,e=t.clientY-f;a.moved=n*n+e*e>p}a.event(t).zoom("mouse",o(v(a.that.__zoom,a.mouse[0]=At(t,i),a.mouse[1]),a.extent,l))},!0).on("mouseup.zoom",function(t){u.on("mousemove.zoom mouseup.zoom",null),Dt(t.view,a.moved),qe(t),a.event(t).end()},!0),s=At(t,i),c=t.clientX,f=t.clientY;Rt(t.view),$e(t),a.mouse=[s,this.__zoom.invert(s)],fe(this),a.start()}}function S(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,a=At(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(a),s=e.k*(t.shiftKey?.5:2),f=o(v(g(e,s),a,u),i.apply(this,n),l);qe(t),c>0?St(this).transition().duration(c).call(m,f,a,t):St(this).call(y.transform,f,a,t)}}function A(e,...i){if(r.apply(this,arguments)){var o,a,u,s,l=e.touches,c=l.length,f=b(this,i,e.changedTouches.length===c).event(e);for($e(e),a=0;a=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e=i)&&(e=i)}return e}function tr(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}var nr="object"==typeof global&&global&&global.Object===Object&&global,er="object"==typeof self&&self&&self.Object===Object&&self,rr=nr||er||Function("return this")(),ir=rr.Symbol,or=Object.prototype,ar=or.hasOwnProperty,ur=or.toString,sr=ir?ir.toStringTag:void 0;var lr=Object.prototype.toString;var cr=ir?ir.toStringTag:void 0;function fr(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":cr&&cr in Object(t)?function(t){var n=ar.call(t,sr),e=t[sr];try{t[sr]=void 0;var r=!0}catch(t){}var i=ur.call(t);return r&&(n?t[sr]=e:delete t[sr]),i}(t):function(t){return lr.call(t)}(t)}var hr=/\s/;var pr=/^\s+/;function dr(t){return t?t.slice(0,function(t){for(var n=t.length;n--&&hr.test(t.charAt(n)););return n}(t)+1).replace(pr,""):t}function yr(t){var n=typeof t;return null!=t&&("object"==n||"function"==n)}var gr=/^[-+]0x[0-9a-f]+$/i,vr=/^0b[01]+$/i,_r=/^0o[0-7]+$/i,mr=parseInt;function br(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return null!=t&&"object"==typeof t}(t)&&"[object Symbol]"==fr(t)}(t))return NaN;if(yr(t)){var n="function"==typeof t.valueOf?t.valueOf():t;t=yr(n)?n+"":n}if("string"!=typeof t)return 0===t?t:+t;t=dr(t);var e=vr.test(t);return e||_r.test(t)?mr(t.slice(2),e?2:8):gr.test(t)?NaN:+t}var xr=function(){return rr.Date.now()},wr=Math.max,kr=Math.min;function Sr(t,n,e){var r,i,o,a,u,s,l=0,c=!1,f=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function p(n){var e=r,o=i;return r=i=void 0,l=n,a=t.apply(o,e)}function d(t){var e=t-s;return void 0===s||e>=n||e<0||f&&t-l>=o}function y(){var t=xr();if(d(t))return g(t);u=setTimeout(y,function(t){var e=n-(t-s);return f?kr(e,o-(t-l)):e}(t))}function g(t){return u=void 0,h&&r?p(t):(r=i=void 0,a)}function v(){var t=xr(),e=d(t);if(r=arguments,i=this,s=t,e){if(void 0===u)return function(t){return l=t,u=setTimeout(y,n),c?p(t):a}(s);if(f)return clearTimeout(u),u=setTimeout(y,n),p(s)}return void 0===u&&(u=setTimeout(y,n)),a}return n=br(n)||0,yr(e)&&(c=!!e.leading,o=(f="maxWait"in e)?wr(br(e.maxWait)||0,n):o,h="trailing"in e?!!e.trailing:h),v.cancel=function(){void 0!==u&&clearTimeout(u),l=0,r=s=i=u=void 0},v.flush=function(){return void 0===u?a:g(xr())},v}var Ar=Object.freeze({Linear:Object.freeze({None:function(t){return t},In:function(t){return t},Out:function(t){return t},InOut:function(t){return t}}),Quadratic:Object.freeze({In:function(t){return t*t},Out:function(t){return t*(2-t)},InOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)}}),Cubic:Object.freeze({In:function(t){return t*t*t},Out:function(t){return--t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)}}),Quartic:Object.freeze({In:function(t){return t*t*t*t},Out:function(t){return 1- --t*t*t*t},InOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)}}),Quintic:Object.freeze({In:function(t){return t*t*t*t*t},Out:function(t){return--t*t*t*t*t+1},InOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)}}),Sinusoidal:Object.freeze({In:function(t){return 1-Math.sin((1-t)*Math.PI/2)},Out:function(t){return Math.sin(t*Math.PI/2)},InOut:function(t){return.5*(1-Math.sin(Math.PI*(.5-t)))}}),Exponential:Object.freeze({In:function(t){return 0===t?0:Math.pow(1024,t-1)},Out:function(t){return 1===t?1:1-Math.pow(2,-10*t)},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))}}),Circular:Object.freeze({In:function(t){return 1-Math.sqrt(1-t*t)},Out:function(t){return Math.sqrt(1- --t*t)},InOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)}}),Elastic:Object.freeze({In:function(t){return 0===t?0:1===t?1:-Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)},Out:function(t){return 0===t?0:1===t?1:Math.pow(2,-10*t)*Math.sin(5*(t-.1)*Math.PI)+1},InOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin(5*(t-1.1)*Math.PI):.5*Math.pow(2,-10*(t-1))*Math.sin(5*(t-1.1)*Math.PI)+1}}),Back:Object.freeze({In:function(t){var n=1.70158;return 1===t?1:t*t*((n+1)*t-n)},Out:function(t){var n=1.70158;return 0===t?0:--t*t*((n+1)*t+n)+1},InOut:function(t){var n=2.5949095;return(t*=2)<1?t*t*((n+1)*t-n)*.5:.5*((t-=2)*t*((n+1)*t+n)+2)}}),Bounce:Object.freeze({In:function(t){return 1-Ar.Bounce.Out(1-t)},Out:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},InOut:function(t){return t<.5?.5*Ar.Bounce.In(2*t):.5*Ar.Bounce.Out(2*t-1)+.5}}),generatePow:function(t){return void 0===t&&(t=4),t=(t=t1e4?1e4:t,{In:function(n){return Math.pow(n,t)},Out:function(n){return 1-Math.pow(1-n,t)},InOut:function(n){return n<.5?Math.pow(2*n,t)/2:(1-Math.pow(2-2*n,t))/2+.5}}}}),Mr=function(){return performance.now()},Or=function(){function t(){for(var t=[],n=0;n0;){this._tweensAddedDuringUpdate={};for(var r=0;r1?o(t[e],t[e-1],e-r):o(t[i],t[i+1>e?e:i+1],r-i)},Utils:{Linear:function(t,n,e){return(n-t)*e+t}}},Er=function(){function t(){}return t.nextId=function(){return t._nextId++},t._nextId=0,t}(),Cr=new Or,Pr=function(){function t(t,n){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Ar.Linear.None,this._interpolationFunction=zr.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Er.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,"object"==typeof n?(this._group=n,n.add(this)):!0===n&&(this._group=Cr,Cr.add(this))}return t.prototype.getId=function(){return this._id},t.prototype.isPlaying=function(){return this._isPlaying},t.prototype.isPaused=function(){return this._isPaused},t.prototype.getDuration=function(){return this._duration},t.prototype.to=function(t,n){if(void 0===n&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},t.prototype.duration=function(t){return void 0===t&&(t=1e3),this._duration=t<0?0:t,this},t.prototype.dynamic=function(t){return void 0===t&&(t=!1),this._isDynamic=t,this},t.prototype.start=function(t,n){if(void 0===t&&(t=Mr()),void 0===n&&(n=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed)for(var e in this._reversed=!1,this._valuesStartRepeat)this._swapEndStartRepeatValues(e),this._valuesStart[e]=this._valuesStartRepeat[e];if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var r={};for(var i in this._valuesEnd)r[i]=this._valuesEnd[i];this._valuesEnd=r}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},t.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},t.prototype._setupProperties=function(t,n,e,r,i){for(var o in e){var a=t[o],u=Array.isArray(a),s=u?"array":typeof a,l=!u&&Array.isArray(e[o]);if("undefined"!==s&&"function"!==s){if(l){if(0===(g=e[o]).length)continue;for(var c=[a],f=0,h=g.length;fs)return 1;var t=Math.trunc(a/u),n=a-t*u,e=Math.min(n/o._duration,1);return 0===e&&a===o._duration?1:e}(),c=this._easingFunction(l);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,c),this._onUpdateCallback&&this._onUpdateCallback(this._object,l),0===this._duration||a>=this._duration){if(this._repeat>0){var f=Math.min(Math.trunc((a-this._duration)/u)+1,this._repeat);for(i in isFinite(this._repeat)&&(this._repeat-=f),this._valuesStartRepeat)this._yoyo||"string"!=typeof this._valuesEnd[i]||(this._valuesStartRepeat[i]=this._valuesStartRepeat[i]+parseFloat(this._valuesEnd[i])),this._yoyo&&this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=u*f,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var h=0,p=this._chainedTweens.length;ht.length)&&(n=t.length);for(var e=0,r=Array(n);e1&&(e-=1),e<1/6?t+6*(n-t)*e:e<.5?n:e<2/3?t+(n-t)*(2/3-e)*6:t}if(t=si(t,360),n=si(n,100),e=si(e,100),0===n)r=i=o=e;else{var u=e<.5?e*(1+n):e+n-e*n,s=2*e-u;r=a(s,u,t+1/3),i=a(s,u,t),o=a(s,u,t-1/3)}return{r:255*r,g:255*i,b:255*o}}(t.h,r,o),a=!0,u="hsl"),t.hasOwnProperty("a")&&(e=t.a));return e=ui(e),{ok:a,format:t.format||u,r:Math.min(255,Math.max(n.r,0)),g:Math.min(255,Math.max(n.g,0)),b:Math.min(255,Math.max(n.b,0)),a:e}}(t);this._originalInput=t,this._r=e.r,this._g=e.g,this._b=e.b,this._a=e.a,this._roundA=Math.round(100*this._a)/100,this._format=n.format||e.format,this._gradientType=n.gradientType,this._r<1&&(this._r=Math.round(this._r)),this._g<1&&(this._g=Math.round(this._g)),this._b<1&&(this._b=Math.round(this._b)),this._ok=e.ok}function Br(t,n,e){t=si(t,255),n=si(n,255),e=si(e,255);var r,i,o=Math.max(t,n,e),a=Math.min(t,n,e),u=(o+a)/2;if(o==a)r=i=0;else{var s=o-a;switch(i=u>.5?s/(2-o-a):s/(o+a),o){case t:r=(n-e)/s+(n>1)+720)%360;--n;)r.h=(r.h+i)%360,o.push(qr(r));return o}function ii(t,n){n=n||6;for(var e=qr(t).toHsv(),r=e.h,i=e.s,o=e.v,a=[],u=1/n;n--;)a.push(qr({h:r,s:i,v:o})),o=(o+u)%1;return a}qr.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var t,n,e,r=this.toRgb();return t=r.r/255,n=r.g/255,e=r.b/255,.2126*(t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4))+.7152*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))+.0722*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))},setAlpha:function(t){return this._a=ui(t),this._roundA=Math.round(100*this._a)/100,this},toHsv:function(){var t=Hr(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=Hr(this._r,this._g,this._b),n=Math.round(360*t.h),e=Math.round(100*t.s),r=Math.round(100*t.v);return 1==this._a?"hsv("+n+", "+e+"%, "+r+"%)":"hsva("+n+", "+e+"%, "+r+"%, "+this._roundA+")"},toHsl:function(){var t=Br(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=Br(this._r,this._g,this._b),n=Math.round(360*t.h),e=Math.round(100*t.s),r=Math.round(100*t.l);return 1==this._a?"hsl("+n+", "+e+"%, "+r+"%)":"hsla("+n+", "+e+"%, "+r+"%, "+this._roundA+")"},toHex:function(t){return Vr(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return function(t,n,e,r,i){var o=[fi(Math.round(t).toString(16)),fi(Math.round(n).toString(16)),fi(Math.round(e).toString(16)),fi(pi(r))];if(i&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)&&o[3].charAt(0)==o[3].charAt(1))return o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0)+o[3].charAt(0);return o.join("")}(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:Math.round(this._r),g:Math.round(this._g),b:Math.round(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+")":"rgba("+Math.round(this._r)+", "+Math.round(this._g)+", "+Math.round(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:Math.round(100*si(this._r,255))+"%",g:Math.round(100*si(this._g,255))+"%",b:Math.round(100*si(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+Math.round(100*si(this._r,255))+"%, "+Math.round(100*si(this._g,255))+"%, "+Math.round(100*si(this._b,255))+"%)":"rgba("+Math.round(100*si(this._r,255))+"%, "+Math.round(100*si(this._g,255))+"%, "+Math.round(100*si(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(ai[Vr(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var n="#"+Gr(this._r,this._g,this._b,this._a),e=n,r=this._gradientType?"GradientType = 1, ":"";if(t){var i=qr(t);e="#"+Gr(i._r,i._g,i._b,i._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+n+",endColorstr="+e+")"},toString:function(t){var n=!!t;t=t||this._format;var e=!1,r=this._a<1&&this._a>=0;return n||!r||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(e=this.toRgbString()),"prgb"===t&&(e=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(e=this.toHexString()),"hex3"===t&&(e=this.toHexString(!0)),"hex4"===t&&(e=this.toHex8String(!0)),"hex8"===t&&(e=this.toHex8String()),"name"===t&&(e=this.toName()),"hsl"===t&&(e=this.toHslString()),"hsv"===t&&(e=this.toHsvString()),e||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return qr(this.toString())},_applyModification:function(t,n){var e=t.apply(null,[this].concat([].slice.call(n)));return this._r=e._r,this._g=e._g,this._b=e._b,this.setAlpha(e._a),this},lighten:function(){return this._applyModification(Zr,arguments)},brighten:function(){return this._applyModification(Qr,arguments)},darken:function(){return this._applyModification(Jr,arguments)},desaturate:function(){return this._applyModification(Xr,arguments)},saturate:function(){return this._applyModification(Wr,arguments)},greyscale:function(){return this._applyModification(Yr,arguments)},spin:function(){return this._applyModification(Kr,arguments)},_applyCombination:function(t,n){return t.apply(null,[this].concat([].slice.call(n)))},analogous:function(){return this._applyCombination(ri,arguments)},complement:function(){return this._applyCombination(ti,arguments)},monochromatic:function(){return this._applyCombination(ii,arguments)},splitcomplement:function(){return this._applyCombination(ei,arguments)},triad:function(){return this._applyCombination(ni,[3])},tetrad:function(){return this._applyCombination(ni,[4])}},qr.fromRatio=function(t,n){if("object"==Fr(t)){var e={};for(var r in t)t.hasOwnProperty(r)&&(e[r]="a"===r?t[r]:hi(t[r]));t=e}return qr(t,n)},qr.equals=function(t,n){return!(!t||!n)&&qr(t).toRgbString()==qr(n).toRgbString()},qr.random=function(){return qr.fromRatio({r:Math.random(),g:Math.random(),b:Math.random()})},qr.mix=function(t,n,e){e=0===e?0:e||50;var r=qr(t).toRgb(),i=qr(n).toRgb(),o=e/100;return qr({r:(i.r-r.r)*o+r.r,g:(i.g-r.g)*o+r.g,b:(i.b-r.b)*o+r.b,a:(i.a-r.a)*o+r.a})}, // =4.5;break;case"AAlarge":i=o>=3;break;case"AAAsmall":i=o>=7}return i},qr.mostReadable=function(t,n,e){var r,i,o,a,u=null,s=0;i=(e=e||{}).includeFallbackColors,o=e.level,a=e.size;for(var l=0;ls&&(s=r,u=qr(n[l]));return qr.isReadable(t,u,{level:o,size:a})||!i?u:(e.includeFallbackColors=!1,qr.mostReadable(t,["#fff","#000"],e))};var oi=qr.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},ai=qr.hexNames=function(t){var n={};for(var e in t)t.hasOwnProperty(e)&&(n[t[e]]=e);return n}(oi);function ui(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function si(t,n){(function(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)})(t)&&(t="100%");var e=function(t){return"string"==typeof t&&-1!=t.indexOf("%")}(t);return t=Math.min(n,Math.max(0,parseFloat(t))),e&&(t=parseInt(t*n,10)/100),Math.abs(t-n)<1e-6?1:t%n/parseFloat(n)}function li(t){return Math.min(1,Math.max(0,t))}function ci(t){return parseInt(t,16)}function fi(t){return 1==t.length?"0"+t:""+t}function hi(t){return t<=1&&(t=100*t+"%"),t}function pi(t){return Math.round(255*parseFloat(t)).toString(16)}function di(t){return ci(t)/255}var yi,gi,vi,_i=(gi="[\\s|\\(]+("+(yi="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+yi+")[,|\\s]+("+yi+")\\s*\\)?",vi="[\\s|\\(]+("+yi+")[,|\\s]+("+yi+")[,|\\s]+("+yi+")[,|\\s]+("+yi+")\\s*\\)?",{CSS_UNIT:new RegExp(yi),rgb:new RegExp("rgb"+gi),rgba:new RegExp("rgba"+vi),hsl:new RegExp("hsl"+gi),hsla:new RegExp("hsla"+vi),hsv:new RegExp("hsv"+gi),hsva:new RegExp("hsva"+vi),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function mi(t){return!!_i.CSS_UNIT.exec(t)}function bi(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=Array(n);e0&&void 0!==arguments[0]?arguments[0]:6;!function(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}(this,t),ki(this,qi,void 0),ki(this,Bi,void 0),Si(Bi,this,n),this.reset()},[{key:"reset",value:function(){Si(qi,this,["__reserved for background__"])}},{key:"register",value:function(t){if(wi(qi,this).length>=Math.pow(2,24-wi(Bi,this)))return null;var n,e=wi(qi,this).length,r=$i(e,wi(Bi,this)),i=(n=e+(r<<24-wi(Bi,this)),"#".concat(Math.min(n,Math.pow(2,24)).toString(16).padStart(6,"0")));return wi(qi,this).push(t),i}},{key:"lookup",value:function(t){if(!t)return null;var n="string"==typeof t?function(t){var n=qr(t).toRgb(),e=n.r,r=n.g,i=n.b;return Li(e,r,i)}(t):Li.apply(void 0,Mi(t));if(!n)return null;var e=n&Math.pow(2,24-wi(Bi,this))-1,r=n>>24-wi(Bi,this)&Math.pow(2,wi(Bi,this))-1;return $i(e,wi(Bi,this))!==r||e>=wi(qi,this).length?null:wi(qi,this)[e]}}])}(),Vi={},Gi=[],Xi=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,Wi=Array.isArray;function Yi(t,n){for(var e in n)t[e]=n[e];return t}function Zi(t){t&&t.parentNode&&t.parentNode.removeChild(t)}function Qi(t,n,e,r,i){var o={type:t,props:n,key:e,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==i?++Ci:i,__i:-1,__u:0};return null==i&&null!=Ei.vnode&&Ei.vnode(o),o}function Ji(t){return t.children}function Ki(t,n){this.props=t,this.context=n}function to(t,n){if(null==n)return t.__?to(t.__,t.__i+1):null;for(var e;nu&&ji.sort(Ri),t=ji.shift(),u=ji.length,t.__d&&(e=void 0,r=void 0,i=(r=(n=t).__v).__e,o=[],a=[],n.__P&&((e=Yi({},r)).__v=r.__v+1,Ei.vnode&&Ei.vnode(e),fo(n.__P,e,r,n.__n,n.__P.namespaceURI,32&r.__u?[i]:null,o,null==i?to(r):i,!!(32&r.__u),a),e.__v=r.__v,e.__.__k[e.__i]=e,po(o,e,a),r.__e=r.__=null,e.__e!=i&&no(e)));ro.__r=0}function io(t,n,e,r,i,o,a,u,s,l,c){var f,h,p,d,y,g,v,_=r&&r.__k||Gi,m=n.length;for(s=oo(e,n,_,s,m),f=0;f0?a=t.__k[o]=Qi(a.type,a.props,a.key,a.ref?a.ref:null,a.__v):t.__k[o]=a,s=o+h,a.__=t,a.__b=t.__b+1,u=null,-1!=(l=a.__i=uo(a,e,s,f))&&(f--,(u=e[l])&&(u.__u|=2)),null==u||null==u.__v?(-1==l&&(i>c?h--:is?h--:h++,a.__u|=4))):t.__k[o]=null;if(f)for(o=0;o(c?1:0))for(i=e-1,o=e+1;i>=0||o=0?i--:o++])&&!(2&l.__u)&&u==l.key&&s==l.type)return a;return-1}function so(t,n,e){"-"==n[0]?t.setProperty(n,null==e?"":e):t[n]=null==e?"":"number"!=typeof e||Xi.test(n)?e:e+"px"}function lo(t,n,e,r,i){var o,a;t:if("style"==n)if("string"==typeof e)t.style.cssText=e;else{if("string"==typeof r&&(t.style.cssText=r=""),r)for(n in r)e&&n in e||so(t.style,n,"");if(e)for(n in e)r&&e[n]==r[n]||so(t.style,n,e[n])}else if("o"==n[0]&&"n"==n[1])o=n!=(n=n.replace(Di,"$1")),a=n.toLowerCase(),n=a in t||"onFocusOut"==n||"onFocusIn"==n?a.slice(2):n.slice(2),t.l||(t.l={}),t.l[n+o]=e,e?r?e.u=r.u:(e.u=Ii,t.addEventListener(n,o?Fi:Ui,o)):t.removeEventListener(n,o?Fi:Ui,o);else{if("http://www.w3.org/2000/svg"==i)n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=n&&"height"!=n&&"href"!=n&&"list"!=n&&"form"!=n&&"tabIndex"!=n&&"download"!=n&&"rowSpan"!=n&&"colSpan"!=n&&"role"!=n&&"popover"!=n&&n in t)try{t[n]=null==e?"":e;break t}catch(t){}"function"==typeof e||(null==e||!1===e&&"-"!=n[4]?t.removeAttribute(n):t.setAttribute(n,"popover"==n&&1==e?"":e))}}function co(t){return function(n){if(this.l){var e=this.l[n.type+t];if(null==n.t)n.t=Ii++;else if(n.t0?t:Wi(t)?t.map(yo):Yi({},t)}function go(t,n,e,r,i,o,a,u,s){var l,c,f,h,p,d,y,g=e.props||Vi,v=n.props,_=n.type;if("svg"==_?i="http://www.w3.org/2000/svg":"math"==_?i="http://www.w3.org/1998/Math/MathML":i||(i="http://www.w3.org/1999/xhtml"),null!=o)for(l=0;l2&&(a.children=arguments.length>3?zi.call(arguments,2):e),"function"==typeof t&&null!=t.defaultProps)for(o in t.defaultProps)void 0===a[o]&&(a[o]=t.defaultProps[o]);return Qi(t,a,r,i,null)}(Ji,null,[t]),r||Vi,Vi,n.namespaceURI,r?null:n.firstChild?zi.call(n.childNodes):null,i,r?r.__e:n.firstChild,false,o),po(i,t,o)}function xo(t,n,e){var r,i,o,a,u=Yi({},t.props);for(o in t.type&&t.type.defaultProps&&(a=t.type.defaultProps),n)"key"==o?r=n[o]:"ref"==o?i=n[o]:u[o]=void 0===n[o]&&null!=a?a[o]:n[o];return arguments.length>2&&(u.children=arguments.length>3?zi.call(arguments,2):e),Qi(t.type,u,r||t.key,i||t.ref,null)}function wo(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=Array(n);e2&&void 0!==arguments[2]?arguments[2]:{}).style,r=void 0===e?{}:e,i=St(!!t&&"object"===Mo(t)&&!!t.node&&"function"==typeof t.node?t.node():t);"static"===i.style("position")&&i.style("position","relative"),n.tooltipEl=i.append("div").attr("class","float-tooltip-kap"),Object.entries(r).forEach(function(t){var e=Ao(t,2),r=e[0],i=e[1];return n.tooltipEl.style(r,i)}),n.tooltipEl.style("left","-10000px").style("display","none");var o="tooltip-".concat(Math.round(1e12*Math.random()));n.mouseInside=!1,i.on("mousemove.".concat(o),function(t){n.mouseInside=!0;var e=At(t),r=i.node(),o=r.offsetWidth,a=r.offsetHeight,u=[null===n.offsetX||void 0===n.offsetX?"-".concat(e[0]/o*100,"%"):"number"==typeof n.offsetX?"calc(-50% + ".concat(n.offsetX,"px)"):n.offsetX,null===n.offsetY||void 0===n.offsetY?a>130&&a-e[1]<100?"calc(-100% - 6px)":"21px":"number"==typeof n.offsetY?n.offsetY<0?"calc(-100% - ".concat(Math.abs(n.offsetY),"px)"):"".concat(n.offsetY,"px"):n.offsetY];n.tooltipEl.style("left",e[0]+"px").style("top",e[1]+"px").style("transform","translate(".concat(u.join(","),")")),n.content&&n.tooltipEl.style("display","inline")}),i.on("mouseover.".concat(o),function(){n.mouseInside=!0,n.content&&n.tooltipEl.style("display","inline")}),i.on("mouseout.".concat(o),function(){n.mouseInside=!1,n.tooltipEl.style("display","none")})},update:function(t){var n,e;t.tooltipEl.style("display",t.content&&t.mouseInside?"inline":"none"),t.content?t.content instanceof HTMLElement?(t.tooltipEl.text(""),t.tooltipEl.append(function(){return t.content})):"string"==typeof t.content?t.tooltipEl.html(t.content):!function(t){return Pi(xo(t))}(t.content)?(t.tooltipEl.style("display","none"),console.warn("Tooltip content is invalid, skipping.",t.content,t.content.toString())):(t.tooltipEl.text(""),n=t.content,delete(e=t.tooltipEl.node()).__k,bo(Oo(n),e)):t.tooltipEl.text("")}});function Eo(t,n,e){var r,i=1;function o(){var o,a,u=r.length,s=0,l=0,c=0;for(o=0;o=(i=(f+h)/2))?f=i:h=i,r=l,!(l=l[u=+a]))return r[u]=c,t;if(n===(o=+t._x.call(null,l.data)))return c.next=l,r?r[u]=c:t._root=c,t;do{r=r?r[u]=new Array(2):t._root=new Array(2),(a=n>=(i=(f+h)/2))?f=i:h=i}while((u=+a)===(s=+(o>=i)));return r[s]=l,r[u]=c,t}function Po(t,n,e){this.node=t,this.x0=n,this.x1=e}function jo(t){return t[0]}function To(t,n){var e=new No(null==n?jo:n,NaN,NaN);return null==t?e:e.addAll(t)}function No(t,n,e){this._x=t,this._x0=n,this._x1=e,this._root=void 0}function Ro(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var Do=To.prototype=No.prototype;function Io(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,s,l,c,f,h,p=t._root,d={data:r},y=t._x0,g=t._y0,v=t._x1,_=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((l=n>=(o=(y+v)/2))?y=o:v=o,(c=e>=(a=(g+_)/2))?g=a:_=a,i=p,!(p=p[f=c<<1|l]))return i[f]=d,t;if(u=+t._x.call(null,p.data),s=+t._y.call(null,p.data),n===u&&e===s)return d.next=p,i?i[f]=d:t._root=d,t;do{i=i?i[f]=new Array(4):t._root=new Array(4),(l=n>=(o=(y+v)/2))?y=o:v=o,(c=e>=(a=(g+_)/2))?g=a:_=a}while((f=c<<1|l)==(h=(s>=a)<<1|u>=o));return i[h]=p,i[f]=d,t}function Uo(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Fo(t){return t[0]}function Lo(t){return t[1]}function $o(t,n,e){var r=new qo(null==n?Fo:n,null==e?Lo:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function qo(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Bo(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}Do.copy=function(){var t,n,e=new No(this._x,this._x0,this._x1),r=this._root;if(!r)return e;if(!r.length)return e._root=Ro(r),e;for(t=[{source:r,target:e._root=new Array(2)}];r=t.pop();)for(var i=0;i<2;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(2)}):r.target[i]=Ro(n));return e},Do.add=function(t){const n=+this._x.call(null,t);return Co(this.cover(n),n,t)},Do.addAll=function(t){Array.isArray(t)||(t=Array.from(t));const n=t.length,e=new Float64Array(n);let r=1/0,i=-1/0;for(let o,a=0;ai&&(i=o));if(r>i)return this;this.cover(r).cover(i);for(let r=0;rt||t>=e;)switch(i=+(ts||(i=o.x1)=f))&&(o=l[l.length-1],l[l.length-1]=l[l.length-1-a],l[l.length-1-a]=o)}else{var h=Math.abs(t-+this._x.call(null,c.data));h=(a=(f+h)/2))?f=a:h=a,n=c,!(c=c[s=+u]))return this;if(!c.length)break;n[s+1&1]&&(e=n,l=s)}for(;c.data!==t;)if(r=c,!(c=c.next))return this;return(i=c.next)&&delete c.next,r?(i?r.next=i:delete r.next,this):n?(i?n[s]=i:delete n[s],(c=n[0]||n[1])&&c===(n[1]||n[0])&&!c.length&&(e?e[l]=c:this._root=c),this):(this._root=i,this)},Do.removeAll=function(t){for(var n=0,e=t.length;n=(a=(m+w)/2))?m=a:w=a,(p=e>=(u=(b+k)/2))?b=u:k=u,(d=r>=(s=(x+S)/2))?x=s:S=s,o=v,!(v=v[y=d<<2|p<<1|h]))return o[y]=_,t;if(l=+t._x.call(null,v.data),c=+t._y.call(null,v.data),f=+t._z.call(null,v.data),n===l&&e===c&&r===f)return _.next=v,o?o[y]=_:t._root=_,t;do{o=o?o[y]=new Array(8):t._root=new Array(8),(h=n>=(a=(m+w)/2))?m=a:w=a,(p=e>=(u=(b+k)/2))?b=u:k=u,(d=r>=(s=(x+S)/2))?x=s:S=s}while((y=d<<2|p<<1|h)==(g=(f>=s)<<2|(c>=u)<<1|l>=a));return o[g]=v,o[y]=_,t}function Go(t,n,e,r,i,o,a){this.node=t,this.x0=n,this.y0=e,this.z0=r,this.x1=i,this.y1=o,this.z1=a}Ho.copy=function(){var t,n,e=new qo(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Bo(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Bo(n));return e},Ho.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Io(this.cover(n,e),n,e,t)},Ho.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),s=1/0,l=1/0,c=-1/0,f=-1/0;for(e=0;ec&&(c=r),if&&(f=i));if(s>c||l>f)return this;for(this.cover(s,l).cover(c,f),e=0;et||t>=i||r>n||n>=o;)switch(u=(nh||(o=s.y0)>p||(a=s.x1)=v)<<1|t>=g)&&(s=d[d.length-1],d[d.length-1]=d[d.length-1-l],d[d.length-1-l]=s)}else{var _=t-+this._x.call(null,y.data),m=n-+this._y.call(null,y.data),b=_*_+m*m;if(b=(u=(d+g)/2))?d=u:g=u,(c=a>=(s=(y+v)/2))?y=s:v=s,n=p,!(p=p[f=c<<1|l]))return this;if(!p.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(e=n,h=f)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[f]=i:delete n[f],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},Ho.removeAll=function(t){for(var n=0,e=t.length;nMath.sqrt((t-r)**2+(n-i)**2+(e-o)**2);function Wo(t){return t[0]}function Yo(t){return t[1]}function Zo(t){return t[2]}function Qo(t,n,e,r){var i=new Jo(null==n?Wo:n,null==e?Yo:e,null==r?Zo:r,NaN,NaN,NaN,NaN,NaN,NaN);return null==t?i:i.addAll(t)}function Jo(t,n,e,r,i,o,a,u,s){this._x=t,this._y=n,this._z=e,this._x0=r,this._y0=i,this._z0=o,this._x1=a,this._y1=u,this._z1=s,this._root=void 0}function Ko(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var ta=Qo.prototype=Jo.prototype;function na(t){return function(){return t}}function ea(t){return 1e-6*(t()-.5)}function ra(t){return t.index}function ia(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}function oa(t){var n,e,r,i,o,a,u,s=ra,l=function(t){return 1/Math.min(o[t.source.index],o[t.target.index])},c=na(30),f=1;function h(r){for(var o=0,s=t.length;o1&&(v=h.y+h.vy-c.y-c.vy||ea(u)),i>2&&(_=h.z+h.vz-c.z-c.vz||ea(u)),g*=p=((p=Math.sqrt(g*g+v*v+_*_))-e[y])/p*r*n[y],v*=p,_*=p,h.vx-=g*(d=a[y]),i>1&&(h.vy-=v*d),i>2&&(h.vz-=_*d),c.vx+=g*(d=1-d),i>1&&(c.vy+=v*d),i>2&&(c.vz+=_*d)}function p(){if(r){var i,u,l=r.length,c=t.length,f=new Map(r.map((t,n)=>[s(t,n,r),t]));for(i=0,o=new Array(l);i"function"==typeof t)||Math.random,i=n.find(t=>[1,2,3].includes(t))||2,p()},h.links=function(n){return arguments.length?(t=n,p(),h):t},h.id=function(t){return arguments.length?(s=t,h):s},h.iterations=function(t){return arguments.length?(f=+t,h):f},h.strength=function(t){return arguments.length?(l="function"==typeof t?t:na(+t),d(),h):l},h.distance=function(t){return arguments.length?(c="function"==typeof t?t:na(+t),y(),h):c},h}ta.copy=function(){var t,n,e=new Jo(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),r=this._root;if(!r)return e;if(!r.length)return e._root=Ko(r),e;for(t=[{source:r,target:e._root=new Array(8)}];r=t.pop();)for(var i=0;i<8;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(8)}):r.target[i]=Ko(n));return e},ta.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t),r=+this._z.call(null,t);return Vo(this.cover(n,e,r),n,e,r,t)},ta.addAll=function(t){Array.isArray(t)||(t=Array.from(t));const n=t.length,e=new Float64Array(n),r=new Float64Array(n),i=new Float64Array(n);let o=1/0,a=1/0,u=1/0,s=-1/0,l=-1/0,c=-1/0;for(let f,h,p,d,y=0;ys&&(s=h),pl&&(l=p),dc&&(c=d));if(o>s||a>l||u>c)return this;this.cover(o,a,u).cover(s,l,c);for(let o=0;ot||t>=a||i>n||n>=u||o>e||e>=s;)switch(c=(eg||(a=f.y0)>v||(u=f.z0)>_||(s=f.x1)=k)<<2|(n>=w)<<1|t>=x)&&(f=m[m.length-1],m[m.length-1]=m[m.length-1-h],m[m.length-1-h]=f)}else{var S=t-+this._x.call(null,b.data),A=n-+this._y.call(null,b.data),M=e-+this._z.call(null,b.data),O=S*S+A*A+M*M;if(O{if(!f.length)do{const o=f.data;Xo(t,n,e,this._x(o),this._y(o),this._z(o))<=r&&i.push(o)}while(f=f.next);return h>s||p>l||d>c||y=(s=(v+b)/2))?v=s:b=s,(h=a>=(l=(_+x)/2))?_=l:x=l,(p=u>=(c=(m+w)/2))?m=c:w=c,n=g,!(g=g[d=p<<2|h<<1|f]))return this;if(!g.length)break;(n[d+1&7]||n[d+2&7]||n[d+3&7]||n[d+4&7]||n[d+5&7]||n[d+6&7]||n[d+7&7])&&(e=n,y=d)}for(;g.data!==t;)if(r=g,!(g=g.next))return this;return(i=g.next)&&delete g.next,r?(i?r.next=i:delete r.next,this):n?(i?n[d]=i:delete n[d],(g=n[0]||n[1]||n[2]||n[3]||n[4]||n[5]||n[6]||n[7])&&g===(n[7]||n[6]||n[5]||n[4]||n[3]||n[2]||n[1]||n[0])&&!g.length&&(e?e[y]=g:this._root=g),this):(this._root=i,this)},ta.removeAll=function(t){for(var n=0,e=t.length;n(t=(1664525*t+1013904223)%aa)/aa}();function p(){d(),f.call("tick",e),i1&&(null==c.fy?c.y+=c.vy*=s:(c.y=c.fy,c.vy=0)),r>2&&(null==c.fz?c.z+=c.vz*=s:(c.z=c.fz,c.vz=0));return e}function y(){for(var n,e=0,i=t.length;e1&&isNaN(n.y)||r>2&&isNaN(n.z)){var o=10*(r>2?Math.cbrt(.5+e):r>1?Math.sqrt(.5+e):e),a=e*ca,u=e*fa;1===r?n.x=o:2===r?(n.x=o*Math.cos(a),n.y=o*Math.sin(a)):(n.x=o*Math.sin(a)*Math.cos(u),n.y=o*Math.cos(a),n.z=o*Math.sin(a)*Math.sin(u))}(isNaN(n.vx)||r>1&&isNaN(n.vy)||r>2&&isNaN(n.vz))&&(n.vx=0,r>1&&(n.vy=0),r>2&&(n.vz=0))}}function g(n){return n.initialize&&n.initialize(t,h,r),n}return null==t&&(t=[]),y(),e={tick:d,restart:function(){return c.restart(p),e},stop:function(){return c.stop(),e},numDimensions:function(t){return arguments.length?(r=Math.min(3,Math.max(1,Math.round(t))),l.forEach(g),e):r},nodes:function(n){return arguments.length?(t=n,y(),l.forEach(g),e):t},alpha:function(t){return arguments.length?(i=+t,e):i},alphaMin:function(t){return arguments.length?(o=+t,e):o},alphaDecay:function(t){return arguments.length?(a=+t,e):+a},alphaTarget:function(t){return arguments.length?(u=+t,e):u},velocityDecay:function(t){return arguments.length?(s=1-t,e):1-s},randomSource:function(t){return arguments.length?(h=t,l.forEach(g),e):h},force:function(t,n){return arguments.length>1?(null==n?l.delete(t):l.set(t,g(n)),e):l.get(t)},find:function(){var n,e,i,o,a,u,s=Array.prototype.slice.call(arguments),l=s.shift()||0,c=(r>1?s.shift():null)||0,f=(r>2?s.shift():null)||0,h=s.shift()||1/0,p=0,d=t.length;for(h*=h,p=0;p1?(f.on(t,n),e):f.on(t)}}}function pa(){var t,n,e,r,i,o,a=na(-30),u=1,s=1/0,l=.81;function c(r){var o,a=t.length,u=(1===n?To(t,ua):2===n?$o(t,ua,sa):3===n?Qo(t,ua,sa,la):null).visitAfter(h);for(i=r,o=0;o1&&(t.y=a/c),n>2&&(t.z=u/c)}else{(e=t).x=e.data.x,n>1&&(e.y=e.data.y),n>2&&(e.z=e.data.z);do{l+=o[e.data.index]}while(e=e.next)}t.value=l}function p(t,a,c,f,h){if(!t.value)return!0;var p=[c,f,h][n-1],d=t.x-e.x,y=n>1?t.y-e.y:0,g=n>2?t.z-e.z:0,v=p-a,_=d*d+y*y+g*g;if(v*v/l<_)return _1&&0===y&&(_+=(y=ea(r))*y),n>2&&0===g&&(_+=(g=ea(r))*g),_1&&(e.vy+=y*t.value*i/_),n>2&&(e.vz+=g*t.value*i/_)),!0;if(!(t.length||_>=s)){(t.data!==e||t.next)&&(0===d&&(_+=(d=ea(r))*d),n>1&&0===y&&(_+=(y=ea(r))*y),n>2&&0===g&&(_+=(g=ea(r))*g),_1&&(e.vy+=y*v),n>2&&(e.vz+=g*v))}while(t=t.next)}}return c.initialize=function(e,...i){t=e,r=i.find(t=>"function"==typeof t)||Math.random,n=i.find(t=>[1,2,3].includes(t))||2,f()},c.strength=function(t){return arguments.length?(a="function"==typeof t?t:na(+t),f(),c):a},c.distanceMin=function(t){return arguments.length?(u=t*t,c):Math.sqrt(u)},c.distanceMax=function(t){return arguments.length?(s=t*t,c):Math.sqrt(s)},c.theta=function(t){return arguments.length?(l=t*t,c):Math.sqrt(l)},c}const{abs:da,cos:ya,sin:ga,acos:va,atan2:_a,sqrt:ma,pow:ba}=Math;function xa(t){return t<0?-ba(-t,1/3):ba(t,1/3)}const wa=Math.PI,ka=2*wa,Sa=wa/2,Aa=Number.MAX_SAFE_INTEGER||9007199254740991,Ma=Number.MIN_SAFE_INTEGER||-9007199254740991,Oa={x:0,y:0,z:0},za={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(t,n){const e=n(t);let r=e.x*e.x+e.y*e.y;return void 0!==e.z&&(r+=e.z*e.z),ma(r)},compute:function(t,n,e){if(0===t)return n[0].t=0,n[0];const r=n.length-1;if(1===t)return n[r].t=1,n[r];const i=1-t;let o=n;if(0===r)return n[0].t=t,n[0];if(1===r){const n={x:i*o[0].x+t*o[1].x,y:i*o[0].y+t*o[1].y,t:t};return e&&(n.z=i*o[0].z+t*o[1].z),n}if(r<4){let n,a,u,s=i*i,l=t*t,c=0;2===r?(o=[o[0],o[1],o[2],Oa],n=s,a=i*t*2,u=l):3===r&&(n=s*i,a=s*t*3,u=i*l*3,c=t*l);const f={x:n*o[0].x+a*o[1].x+u*o[2].x+c*o[3].x,y:n*o[0].y+a*o[1].y+u*o[2].y+c*o[3].y,t:t};return e&&(f.z=n*o[0].z+a*o[1].z+u*o[2].z+c*o[3].z),f}const a=JSON.parse(JSON.stringify(n));for(;a.length>1;){for(let n=0;n1;i--,o--){const t=[];for(let e,i=0;io.x.min&&(n=o.x.min),e>o.y.min&&(e=o.y.min),r0&&(a.c1=n,a.c2=r,a.s1=t,a.s2=e,o.push(a))})}),o},makeshape:function(t,n,e){const r=n.points.length,i=t.points.length,o=za.makeline(n.points[r-1],t.points[0]),a=za.makeline(t.points[i-1],n.points[0]),u={startcap:o,forward:t,back:n,endcap:a,bbox:za.findbbox([o,t,n,a]),intersections:function(t){return za.shapeintersections(u,u.bbox,t,t.bbox,e)}};return u},getminmax:function(t,n,e){if(!e)return{min:0,max:0};let r,i,o=Aa,a=Ma;-1===e.indexOf(0)&&(e=[0].concat(e)),-1===e.indexOf(1)&&e.push(1);for(let u=0,s=e.length;ua&&(a=i[n]);return{min:o,mid:(o+a)/2,max:a,size:a-o}},align:function(t,n){const e=n.p1.x,r=n.p1.y,i=-_a(n.p2.y-r,n.p2.x-e);return t.map(function(t){return{x:(t.x-e)*ya(i)-(t.y-r)*ga(i),y:(t.x-e)*ga(i)+(t.y-r)*ya(i)}})},roots:function(t,n){n=n||{p1:{x:0,y:0},p2:{x:1,y:0}};const e=t.length-1,r=za.align(t,n),i=function(t){return 0<=t&&t<=1};if(2===e){const t=r[0].y,n=r[1].y,e=r[2].y,o=t-2*n+e;if(0!==o){const r=-ma(n*n-t*e),a=-t+n;return[-(r+a)/o,-(-r+a)/o].filter(i)}return n!==e&&0===o?[(2*n-e)/(2*n-2*e)].filter(i):[]}const o=r[0].y,a=r[1].y,u=r[2].y;let s=3*a-o-3*u+r[3].y,l=3*o-6*a+3*u,c=-3*o+3*a,f=o;if(za.approximately(s,0)){if(za.approximately(l,0))return za.approximately(c,0)?[]:[-f/c].filter(i);const t=ma(c*c-4*l*f),n=2*l;return[(t-c)/n,(-c-t)/n].filter(i)}l/=s,c/=s,f/=s;const h=(3*c-l*l)/3,p=h/3,d=(2*l*l*l-9*l*c+27*f)/27,y=d/2,g=y*y+p*p*p;let v,_,m,b,x;if(g<0){const t=-h/3,n=ma(t*t*t),e=-d/(2*n),r=va(e<-1?-1:e>1?1:e),o=2*xa(n);return m=o*ya(r/3)-l/3,b=o*ya((r+ka)/3)-l/3,x=o*ya((r+2*ka)/3)-l/3,[m,b,x].filter(i)}if(0===g)return v=y<0?xa(-y):-xa(y),m=2*v-l/3,b=-v-l/3,[m,b].filter(i);{const t=ma(g);return v=xa(-y+t),_=xa(y+t),[v-_-l/3].filter(i)}},droots:function(t){if(3===t.length){const n=t[0],e=t[1],r=t[2],i=n-2*e+r;if(0!==i){const t=-ma(e*e-n*r),o=-n+e;return[-(t+o)/i,-(-t+o)/i]}return e!==r&&0===i?[(2*e-r)/(2*(e-r))]:[]}if(2===t.length){const n=t[0],e=t[1];return n!==e?[n/(n-e)]:[]}return[]},curvature:function(t,n,e,r,i){let o,a,u,s,l=0,c=0;const f=za.compute(t,n),h=za.compute(t,e),p=f.x*f.x+f.y*f.y;if(r?(o=ma(ba(f.y*h.z-h.y*f.z,2)+ba(f.z*h.x-h.z*f.x,2)+ba(f.x*h.y-h.x*f.y,2)),a=ba(p+f.z*f.z,1.5)):(o=f.x*h.y-f.y*h.x,a=ba(p,1.5)),0===o||0===a)return{k:0,r:0};if(l=o/a,c=a/o,!i){const i=za.curvature(t-.001,n,e,r,!0).k,o=za.curvature(t+.001,n,e,r,!0).k;s=(o-l+(l-i))/2,u=(da(o-l)+da(l-i))/2}return{k:l,r:c,dk:s,adk:u}},inflections:function(t){if(t.length<4)return[];const n=za.align(t,{p1:t[0],p2:t.slice(-1)[0]}),e=n[2].x*n[1].y,r=n[3].x*n[1].y,i=n[1].x*n[2].y,o=18*(-3*e+2*r+3*i-n[3].x*n[2].y),a=18*(3*e-r-3*i),u=18*(i-e);if(za.approximately(o,0)){if(!za.approximately(a,0)){let t=-u/a;if(0<=t&&t<=1)return[t]}return[]}const s=2*o;if(za.approximately(s,0))return[];const l=a*a-4*o*u;if(l<0)return[];const c=Math.sqrt(l);return[(c-a)/s,-(a+c)/s].filter(function(t){return 0<=t&&t<=1})},bboxoverlap:function(t,n){const e=["x","y"],r=e.length;for(let i,o,a,u,s=0;s=u)return!1;return!0},expandbox:function(t,n){n.x.mint.x.max&&(t.x.max=n.x.max),n.y.max>t.y.max&&(t.y.max=n.y.max),n.z&&n.z.max>t.z.max&&(t.z.max=n.z.max),t.x.mid=(t.x.min+t.x.max)/2,t.y.mid=(t.y.min+t.y.max)/2,t.z&&(t.z.mid=(t.z.min+t.z.max)/2),t.x.size=t.x.max-t.x.min,t.y.size=t.y.max-t.y.min,t.z&&(t.z.size=t.z.max-t.z.min)},pairiteration:function(t,n,e){const r=t.bbox(),i=n.bbox(),o=1e5,a=e||.5;if(r.x.size+r.y.sizek||k>S)&&(w+=ka),w>S&&(x=S,S=w,w=x)):S4){if(1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");r=!0}}else if(6!==i&&8!==i&&9!==i&&12!==i&&1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const o=this._3d=!r&&(9===i||12===i)||t&&t[0]&&void 0!==t[0].z,a=this.points=[];for(let t=0,e=o?3:2;tt+Ca(n.y),0)0}length(){return za.length(this.derivative.bind(this))}static getABC(t=2,n,e,r,i=.5){const o=za.projectionratio(i,t),a=1-o,u={x:o*n.x+a*r.x,y:o*n.y+a*r.y},s=za.abcratio(i,t);return{A:{x:e.x+(e.x-u.x)/s,y:e.y+(e.y-u.y)/s},B:e,C:u,S:n,E:r}}getABC(t,n){n=n||this.get(t);let e=this.points[0],r=this.points[this.order];return Ua.getABC(this.order,e,n,r,t)}getLUT(t){if(this.verify(),t=t||100,this._lut.length===t+1)return this._lut;this._lut=[],t++,this._lut=[];for(let n,e,r=0;r1?1:f,s=this.compute(f),s.t=f,s.d=l,s}get(t){return this.compute(t)}point(t){return this.points[t]}compute(t){return this.ratios?za.computeWithRatios(t,this.points,this.ratios,this._3d):za.compute(t,this.points,this._3d,this.ratios)}raise(){const t=this.points,n=[t[0]],e=t.length;for(let r,i,o=1;o1;){e=[];for(let o,a=0,u=n.length-1;a=0&&t<=1}),n=n.concat(t[e].sort(za.numberSort))}.bind(this)),t.values=n.sort(za.numberSort).filter(function(t,e){return n.indexOf(t)===e}),t}bbox(){const t=this.extrema(),n={};return this.dims.forEach(function(e){n[e]=za.getminmax(this,e,t[e])}.bind(this)),n}overlaps(t){const n=this.bbox(),e=t.bbox();return za.bboxoverlap(n,e)}offset(t,n){if(void 0!==n){const e=this.get(t),r=this.normal(t),i={c:e,n:r,x:e.x+r.x*n,y:e.y+r.y*n};return this._3d&&(i.z=e.z+r.z*n),i}if(this._linear){const n=this.normal(0),e=this.points.map(function(e){const r={x:e.x+t*n.x,y:e.y+t*n.y};return e.z&&n.z&&(r.z=e.z+t*n.z),r});return[new Ua(e)]}return this.reduce().map(function(n){return n._linear?n.offset(t)[0]:n.scale(t)})}simple(){if(3===this.order){const t=za.angle(this.points[0],this.points[3],this.points[1]),n=za.angle(this.points[0],this.points[3],this.points[2]);if(t>0&&n<0||t<0&&n>0)return!1}const t=this.normal(0),n=this.normal(1);let e=t.x*n.x+t.y*n.y;return this._3d&&(e+=t.z*n.z),Ca(Ra(e))(1-i/r)*n+i/r*e);return new Ua(this.points.map((n,e)=>({x:n.x+t.x*i[e],y:n.y+t.y*i[e]})))}scale(t){const n=this.order;let e=!1;if("function"==typeof t&&(e=t),e&&2===n)return this.raise().scale(e);const r=this.clockwise,i=this.points;if(this._linear)return this.translate(this.normal(0),e?e(0):t,e?e(1):t);const o=e?e(0):t,a=e?e(1):t,u=[this.offset(0,10),this.offset(1,10)],s=[],l=za.lli4(u[0],u[0].c,u[1],u[1].c);if(!l)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach(function(t){const e=s[t*n]=za.copy(i[t*n]);e.x+=(t?a:o)*u[t].n.x,e.y+=(t?a:o)*u[t].n.y}),e?([0,1].forEach(function(o){if(2!==n||!o){var a=i[o+1],u={x:a.x-l.x,y:a.y-l.y},c=e?e((o+1)/n):t;e&&!r&&(c=-c);var f=Da(u.x*u.x+u.y*u.y);u.x/=f,u.y/=f,s[o+1]={x:a.x+c*u.x,y:a.y+c*u.y}}}),new Ua(s)):([0,1].forEach(t=>{if(2===n&&t)return;const e=s[t*n],r=this.derivative(t),o={x:e.x+r.x,y:e.y+r.y};s[t+1]=za.lli4(e,o,l,i[t+1])}),new Ua(s))}outline(t,n,e,r){if(n=void 0===n?t:n,this._linear){const i=this.normal(0),o=this.points[0],a=this.points[this.points.length-1];let u,s,l;void 0===e&&(e=t,r=n),u={x:o.x+i.x*t,y:o.y+i.y*t},l={x:a.x+i.x*e,y:a.y+i.y*e},s={x:(u.x+l.x)/2,y:(u.y+l.y)/2};const c=[u,s,l];u={x:o.x-i.x*n,y:o.y-i.y*n},l={x:a.x-i.x*r,y:a.y-i.y*r},s={x:(u.x+l.x)/2,y:(u.y+l.y)/2};const f=[l,s,u],h=za.makeline(f[2],c[0]),p=za.makeline(c[2],f[0]),d=[h,new Ua(c),p,new Ua(f)];return new Ea(d)}const i=this.reduce(),o=i.length,a=[];let u,s=[],l=0,c=this.length();const f=void 0!==e&&void 0!==r;function h(t,n,e,r,i){return function(o){const a=r/e,u=(r+i)/e,s=n-t;return za.map(o,0,1,t+a*s,t+u*s)}}i.forEach(function(i){const o=i.length();f?(a.push(i.scale(h(t,e,c,l,o))),s.push(i.scale(h(-n,-r,c,l,o)))):(a.push(i.scale(t)),s.push(i.scale(-n))),l+=o}),s=s.map(function(t){return u=t.points,u[3]?t.points=[u[3],u[2],u[1],u[0]]:t.points=[u[2],u[1],u[0]],t}).reverse();const p=a[0].points[0],d=a[o-1].points[a[o-1].points.length-1],y=s[o-1].points[s[o-1].points.length-1],g=s[0].points[0],v=za.makeline(y,p),_=za.makeline(d,g),m=[v].concat(a).concat([_]).concat(s);return new Ea(m)}outlineshapes(t,n,e){n=n||t;const r=this.outline(t,n).curves,i=[];for(let t=1,n=r.length;t1,o.endcap.virtual=t{var o=this.get(t);return za.between(o.x,n,r)&&za.between(o.y,e,i)})}selfintersects(t){const n=this.reduce(),e=n.length-2,r=[];for(let i,o,a,u=0;u0&&(i=i.concat(n))}),i}arcs(t){return t=t||.5,this._iterate(t,[])}_error(t,n,e,r){const i=(r-e)/4,o=this.get(e+i),a=this.get(r-i),u=za.dist(t,n),s=za.dist(t,o),l=za.dist(t,a);return Ca(s-u)+Ca(l-u)}_iterate(t,n){let e,r=0,i=1;do{e=0,i=1;let o,a,u,s,l,c=this.get(r),f=!1,h=!1,p=i,d=1;do{if(h=f,s=u,p=(r+i)/2,o=this.get(p),a=this.get(i),u=za.getccenter(c,o,a),u.interval={start:r,end:i},f=this._error(u,c,r,i)<=t,l=h&&!f,l||(d=i),f){if(i>=1){if(u.interval.end=d=1,s=u,i>1){let t={x:u.x+u.r*Ta(u.e),y:u.y+u.r*Na(u.e)};u.e+=za.angle({x:u.x,y:u.y},t,this.get(1))}break}i+=(i-r)/2}else i=p}while(!l&&e++<100);if(e>=100)break;s=s||u,n.push(s),r=d}while(i<1);return n}}function Fa(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=Array(n);e0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],e=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=(n instanceof Array?n.length?n:[void 0]:[n]).map(function(t){return{keyAccessor:t,isProp:!(t instanceof Function)}}),o=t.reduce(function(t,n){var r=t,o=n;return i.forEach(function(t,n){var a,u=t.keyAccessor;if(t.isProp){var s=o,l=s[u],c=function(t,n){if(null==t)return{};var e,r,i=function(t,n){if(null==t)return{};var e={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(n.includes(r))continue;e[r]=t[r]}return e}(t,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r1&&void 0!==arguments[1]?arguments[1]:1;r===i.length?Object.keys(n).forEach(function(t){return n[t]=e(n[t])}):Object.values(n).forEach(function(n){return t(n,r+1)})}(o);var a=o;return r&&(a=[],function t(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];e.length===i.length?a.push({keys:e,vals:n}):Object.entries(n).forEach(function(n){var r=La(n,2),i=r[0],o=r[1];return t(o,[].concat($a(e),[i]))})}(o),n instanceof Array&&0===n.length&&1===a.length&&(a[0].keys=[])),a};function Va(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}const Ga=Symbol("implicit");var Xa=function(t){for(var n=t.length/6|0,e=new Array(n),r=0;rt.length)&&(n=t.length);for(var e=0,r=Array(n);et.cooldownTicks||new Date-t.startTickTime>t.cooldownTime||t.d3AlphaMin>0&&t.forceLayout.alpha()0){var a=Math.atan2(r.y-e.y,r.x-e.x),u=i*n,s={x:(e.x+r.x)/2+u*Math.cos(a-Math.PI/2),y:(e.y+r.y)/2+u*Math.sin(a-Math.PI/2)};t.__controlPoints=[s.x,s.y]}else{var l=70*n;t.__controlPoints=[r.x,r.y-l,r.x+l,r.y]}});var c=[],f=[],h=l;if(t.linkCanvasObject){var p=[],d=[];l.forEach(function(t){return({before:c,after:f,replace:p}[a(t)]||d).push(t)}),h=[].concat(nu(c),f,d),c=c.concat(p)}u.save(),c.forEach(function(n){return t.linkCanvasObject(n,u,t.globalScale)}),u.restore();var y=Ha(h,[e,r,i]);u.save(),Object.entries(y).forEach(function(n){var e=tu(n,2),r=e[0],o=e[1],a=r&&"undefined"!==r?r:"rgba(0,0,0,0.15)";Object.entries(o).forEach(function(n){var e=tu(n,2),r=e[0],o=e[1],l=(r||1)/t.globalScale+s;Object.entries(o).forEach(function(t){var n=tu(t,2);n[0];var e=n[1],r=i(e[0]);u.beginPath(),e.forEach(function(t){var n=t.source,e=t.target;if(n&&e&&n.hasOwnProperty("x")&&e.hasOwnProperty("x")){u.moveTo(n.x,n.y);var r=t.__controlPoints;r?u[2===r.length?"quadraticCurveTo":"bezierCurveTo"].apply(u,nu(r).concat([e.x,e.y])):u.lineTo(e.x,e.y)}}),u.strokeStyle=a,u.lineWidth=l,u.setLineDash(r||[]),u.stroke()})})}),u.restore(),u.save(),f.forEach(function(n){return t.linkCanvasObject(n,u,t.globalScale)}),u.restore()}(),!t.isShadow&&(n=Ur(t.linkDirectionalArrowLength),e=Ur(t.linkDirectionalArrowRelPos),r=Ur(t.linkVisibility),i=Ur(t.linkDirectionalArrowColor||t.linkColor),o=Ur(t.nodeVal),(a=t.ctx).save(),t.graphData.links.filter(r).forEach(function(r){var u=n(r);if(u&&!(u<0)){var s=r.source,l=r.target;if(s&&l&&s.hasOwnProperty("x")&&l.hasOwnProperty("x")){var c=Math.sqrt(Math.max(0,o(s)||1))*t.nodeRelSize,f=Math.sqrt(Math.max(0,o(l)||1))*t.nodeRelSize,h=Math.min(1,Math.max(0,e(r))),p=i(r)||"rgba(0,0,0,0.28)",d=u/1.6/2,y=r.__controlPoints&&Ya(Ua,[s.x,s.y].concat(nu(r.__controlPoints),[l.x,l.y])),g=y?function(t){return y.get(t)}:function(t){return{x:s.x+(l.x-s.x)*t||0,y:s.y+(l.y-s.y)*t||0}},v=y?y.length():Math.sqrt(Math.pow(l.x-s.x,2)+Math.pow(l.y-s.y,2)),_=c+u+(v-c-f-u)*h,m=g(_/v),b=g((_-u)/v),x=g((_-.8*u)/v),w=Math.atan2(m.y-b.y,m.x-b.x)-Math.PI/2;a.beginPath(),a.moveTo(m.x,m.y),a.lineTo(b.x+d*Math.cos(w),b.y+d*Math.sin(w)),a.lineTo(x.x,x.y),a.lineTo(b.x-d*Math.cos(w),b.y-d*Math.sin(w)),a.fillStyle=p,a.fill()}}}),a.restore()),!t.isShadow&&function(){var n=Ur(t.linkDirectionalParticles),e=Ur(t.linkDirectionalParticleSpeed),r=Ur(t.linkDirectionalParticleOffset),i=Ur(t.linkDirectionalParticleWidth),o=Ur(t.linkVisibility),a=Ur(t.linkDirectionalParticleColor||t.linkColor),u=t.ctx;u.save(),t.graphData.links.filter(o).forEach(function(o){var s=n(o);if(o.hasOwnProperty("__photons")&&o.__photons.length){var l=o.source,c=o.target;if(l&&c&&l.hasOwnProperty("x")&&c.hasOwnProperty("x")){var f=e(o),h=Math.abs(r(o)),p=o.__photons||[],d=Math.max(0,i(o)/2)/Math.sqrt(t.globalScale),y=a(o)||"rgba(0,0,0,0.28)";u.fillStyle=y;var g=o.__controlPoints?Ya(Ua,[l.x,l.y].concat(nu(o.__controlPoints),[c.x,c.y])):null,v=0,_=!1;p.forEach(function(n){var e=!!n.__singleHop;if(n.hasOwnProperty("__progressRatio")||(n.__progressRatio=e?0:(v+h)/s),!e&&v++,n.__progressRatio+=f,n.__progressRatio>=1){if(e)return void(_=!0);n.__progressRatio=n.__progressRatio%1}var r=n.__progressRatio,i=g?g.get(r):{x:l.x+(c.x-l.x)*r||0,y:l.y+(c.y-l.y)*r||0};t.linkDirectionalParticleCanvasObject?t.linkDirectionalParticleCanvasObject(i.x,i.y,o,u,t.globalScale):(u.beginPath(),u.arc(i.x,i.y,d,0,2*Math.PI,!1),u.fill())}),_&&(o.__photons=o.__photons.filter(function(t){return!t.__singleHop||t.__progressRatio<=1}))}}}),u.restore()}(),function(){var n=Ur(t.nodeVisibility),e=Ur(t.nodeVal),r=Ur(t.nodeColor),i=Ur(t.nodeCanvasObjectMode),o=t.ctx,a=t.isShadow/t.globalScale,u=t.graphData.nodes.filter(n);o.save(),u.forEach(function(n){var u=i(n);if(!t.nodeCanvasObject||"before"!==u&&"replace"!==u||(t.nodeCanvasObject(n,o,t.globalScale),"replace"!==u)){var s=Math.sqrt(Math.max(0,e(n)||1))*t.nodeRelSize+a;o.beginPath(),o.arc(n.x,n.y,s,0,2*Math.PI,!1),o.fillStyle=r(n)||"rgba(31, 120, 180, 0.92)",o.fill(),t.nodeCanvasObject&&"after"===u&&t.nodeCanvasObject(n,t.ctx,t.globalScale)}else o.restore()}),o.restore()}(),this},emitParticle:function(t,n){return n&&(!n.__photons&&(n.__photons=[]),n.__photons.push({__singleHop:!0})),this}},stateInit:function(){return{forceLayout:ha().force("link",oa()).force("charge",pa()).force("center",Eo()).force("dagRadial",null).stop(),engineRunning:!1}},init:function(t,n){n.ctx=t},update:function(t,n){t.engineRunning=!1,t.onUpdate(),null!==t.nodeAutoColorBy&&ou(t.graphData.nodes,Ur(t.nodeAutoColorBy),t.nodeColor),null!==t.linkAutoColorBy&&ou(t.graphData.links,Ur(t.linkAutoColorBy),t.linkColor),t.graphData.links.forEach(function(n){n.source=n[t.linkSource],n.target=n[t.linkTarget]}),t.forceLayout.stop().alpha(1).nodes(t.graphData.nodes);var e=t.forceLayout.force("link");e&&e.id(function(n){return n[t.nodeId]}).links(t.graphData.links);var r=t.dagMode&&function(t,n){var e=t.nodes,r=t.links,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i.nodeFilter,a=void 0===o?function(){return!0}:o,u=i.onLoopError,s=void 0===u?function(t){throw"Invalid DAG structure! Found cycle in node path: ".concat(t.join(" -> "),".")}:u,l={};e.forEach(function(t){return l[n(t)]={data:t,out:[],depth:-1,skip:!a(t)}}),r.forEach(function(t){var e=t.source,r=t.target,i=s(e),o=s(r);if(!l.hasOwnProperty(i))throw"Missing source node with id: ".concat(i);if(!l.hasOwnProperty(o))throw"Missing target node with id: ".concat(o);var a=l[i],u=l[o];function s(t){return"object"===eu(t)?n(t):t}a.out.push(u)});var c=[];return function t(e){for(var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,o=function(){var o=e[a];if(-1!==r.indexOf(o)){var u=[].concat(nu(r.slice(r.indexOf(o))),[o]).map(function(t){return n(t.data)});return c.some(function(t){return t.length===u.length&&t.every(function(t,n){return t===u[n]})})||(c.push(u),s(u)),1}i>o.depth&&(o.depth=i,t(o.out,[].concat(nu(r),[o]),i+(o.skip?0:1)))},a=0,u=e.length;a1&&(c.vy+=h*y),o>2&&(c.vz+=p*y)}}function c(){if(i){var n,e=i.length;for(a=new Array(e),u=new Array(e),n=0;n[1,2,3].includes(t))||2,c()},l.strength=function(t){return arguments.length?(s="function"==typeof t?t:na(+t),c(),l):s},l.radius=function(n){return arguments.length?(t="function"==typeof n?n:na(+n),c(),l):t},l.x=function(t){return arguments.length?(n=+t,l):n},l.y=function(t){return arguments.length?(e=+t,l):e},l.z=function(t){return arguments.length?(r=+t,l):r},l}(function(n){var e=r[n[t.nodeId]]||-1;return("radialin"===t.dagMode?i-e:e)*o}).strength(function(n){return t.dagNodeFilter(n)?1:0}):null);for(var l=0;l0&&t.forceLayout.alpha()1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:0,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,r=arguments.length,i=new Array(r>3?r-3:0),o=3;o1&&void 0!==arguments[1]?arguments[1]:function(){return!0},e=Ur(t.nodeVal),r=function(n){return Math.sqrt(Math.max(0,e(n)||1))*t.nodeRelSize},i=t.graphData.nodes.filter(n).map(function(t){return{x:t.x,y:t.y,r:r(t)}});return i.length?{x:[tr(i,function(t){return t.x-t.r}),Ke(i,function(t){return t.x+t.r})],y:[tr(i,function(t){return t.y-t.r}),Ke(i,function(t){return t.y+t.r})]}:null},pauseAnimation:function(t){return t.animationFrameRequestId&&(cancelAnimationFrame(t.animationFrameRequestId),t.animationFrameRequestId=null),this},resumeAnimation:function(t){return t.animationFrameRequestId||this._animationCycle(),this},_destructor:function(){this.pauseAnimation(),this.graphData({nodes:[],links:[]})}},pu),stateInit:function(){return{lastSetZoom:1,zoom:Ye(),forceGraph:new su,shadowGraph:(new su).cooldownTicks(0).nodeColor("__indexColor").linkColor("__indexColor").isShadow(!0),colorTracker:new Hi,tweenGroup:new Or}},init:function(t,n){var e=this;t.innerHTML="";var r=document.createElement("div");r.classList.add("force-graph-container"),r.style.position="relative",t.appendChild(r),n.canvas=document.createElement("canvas"),n.backgroundColor&&(n.canvas.style.background=n.backgroundColor),r.appendChild(n.canvas),n.shadowCanvas=document.createElement("canvas");var i=n.canvas.getContext("2d"),o=n.shadowCanvas.getContext("2d",{willReadFrequently:!0}),a={x:-1e12,y:-1e12},u=function(){var t=null,e=window.devicePixelRatio,r=a.x>0&&a.y>0?o.getImageData(a.x*e,a.y*e,1,1):null;return r&&(t=n.colorTracker.lookup(r.data)),t};St(n.canvas).call(function(){var t,n,e,r,i=Ft,o=Lt,a=$t,u=qt,s={},l=Ot("start","drag","end"),c=0,f=0;function h(t){t.on("mousedown.drag",p).filter(u).on("touchstart.drag",g).on("touchmove.drag",v,Pt).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(a,u){if(!r&&i.call(this,a,u)){var s=m(this,o.call(this,a,u),a,u,"mouse");s&&(St(a.view).on("mousemove.drag",d,jt).on("mouseup.drag",y,jt),Rt(a.view),Tt(a),e=!1,t=a.clientX,n=a.clientY,s("start",a))}}function d(r){if(Nt(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>f}s.mouse("drag",r)}function y(t){St(t.view).on("mousemove.drag mouseup.drag",null),Dt(t.view,e),Nt(t),s.mouse("end",t)}function g(t,n){if(i.call(this,t,n)){var e,r,a=t.changedTouches,u=o.call(this,t,n),s=a.length;for(e=0;e=Math.sqrt(function(t){let n=0;for(let e of t)(e=+e)&&(n+=e);return n}(["x","y"].map(function(n){return Math.pow(t[n]-r[n],2)})))||(n.forceGraph.d3AlphaTarget(.3).resetCountdown(),n.isPointerDragging=!0,e.__dragged=!0,n.onNodeDrag(e,a))}).on("end",function(t){var e=t.subject,r=e.__initialDragPos,i={x:e.x-r.x,y:e.y-r.y};void 0===r.fx&&(e.fx=void 0),void 0===r.fy&&(e.fy=void 0),delete e.__initialDragPos,n.forceGraph.d3AlphaTarget()&&n.forceGraph.d3AlphaTarget(0).resetCountdown(),n.canvas.classList.remove("grabbable"),n.isPointerDragging=!1,e.__dragged&&(delete e.__dragged,n.onNodeDragEnd(e,i))})),n.zoom(n.zoom.__baseElem=St(n.canvas)),n.zoom.__baseElem.on("dblclick.zoom",null),n.zoom.filter(function(t){return!t.button&&n.enableZoomPanInteraction&&("wheel"!==t.type||Ur(n.enableZoomInteraction)(t))&&("wheel"===t.type||Ur(n.enablePanInteraction)(t))}).on("zoom",function(t){var r=t.transform;[i,o].forEach(function(t){yu(t),t.translate(r.x,r.y),t.scale(r.k,r.k)}),n.isPointerDragging=!0,n.onZoom&&n.onZoom(Ka(Ka({},r),e.centerAt())),n.needsRedraw=!0}).on("end",function(t){n.isPointerDragging=!1,n.onZoomEnd&&n.onZoomEnd(Ka(Ka({},t.transform),e.centerAt()))}),du(n),n.forceGraph.onNeedsRedraw(function(){return n.needsRedraw=!0}).onFinishUpdate(function(){Le(n.canvas).k===n.lastSetZoom&&n.graphData.nodes.length&&(n.zoom.scaleTo(n.zoom.__baseElem,n.lastSetZoom=4/Math.cbrt(n.graphData.nodes.length)),n.needsRedraw=!0)}),n.tooltip=new zo(r),["pointermove","pointerdown"].forEach(function(t){return r.addEventListener(t,function(e){"pointerdown"===t&&(n.isPointerPressed=!0,n.pointerDownEvent=e),!n.isPointerDragging&&"pointermove"===e.type&&n.onBackgroundClick&&(e.pressure>0||n.isPointerPressed)&&("mouse"===e.pointerType||void 0===e.movementX||[e.movementX,e.movementY].some(function(t){return Math.abs(t)>1}))&&(n.isPointerDragging=!0);var i,o,u,s=(i=r.getBoundingClientRect(),o=window.pageXOffset||document.documentElement.scrollLeft,u=window.pageYOffset||document.documentElement.scrollTop,{top:i.top+u,left:i.left+o});a.x=e.pageX-s.left,a.y=e.pageY-s.top},{passive:!0})}),r.addEventListener("pointerup",function(t){if(n.isPointerPressed)if(n.isPointerPressed=!1,n.isPointerDragging)n.isPointerDragging=!1;else{var e=[t,n.pointerDownEvent];requestAnimationFrame(function(){if(0===t.button)if(n.hoverObj){var r=n["on".concat(n.hoverObj.type,"Click")];r&&r.apply(void 0,[n.hoverObj.d].concat(e))}else n.onBackgroundClick&&n.onBackgroundClick.apply(n,e);if(2===t.button)if(n.hoverObj){var i=n["on".concat(n.hoverObj.type,"RightClick")];i&&i.apply(void 0,[n.hoverObj.d].concat(e))}else n.onBackgroundRightClick&&n.onBackgroundRightClick.apply(n,e)})}},{passive:!0}),r.addEventListener("contextmenu",function(t){return!(n.onBackgroundRightClick||n.onNodeRightClick||n.onLinkRightClick)||(t.preventDefault(),!1)}),n.forceGraph(i),n.shadowGraph(o);var s=function(t,n,e){var r=!0,i=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return yr(e)&&(r="leading"in e?!!e.leading:r,i="trailing"in e?!!e.trailing:i),Sr(t,n,{leading:r,maxWait:n,trailing:i})}(function(){gu(o,n.width,n.height),n.shadowGraph.linkWidth(function(t){return Ur(n.linkWidth)(t)+n.linkHoverPrecision});var t=Le(n.canvas);n.shadowGraph.globalScale(t.k).tickFrame()},800);n.flushShadowCanvas=s.flush,(this._animationCycle=function t(){var e=!n.autoPauseRedraw||!!n.needsRedraw||n.forceGraph.isEngineRunning()||n.graphData.links.some(function(t){return t.__photons&&t.__photons.length});if(n.needsRedraw=!1,n.enablePointerInteraction){var r=n.isPointerDragging?null:u();if(r!==n.hoverObj){var o=n.hoverObj,a=o?o.type:null,l=r?r.type:null;if(a&&a!==l){var c=n["on".concat(a,"Hover")];c&&c(null,o.d)}if(l){var f=n["on".concat(l,"Hover")];f&&f(r.d,a===l?o.d:null)}n.tooltip.content(r&&Ur(n["".concat(r.type.toLowerCase(),"Label")])(r.d)||null),n.canvas.classList[(r&&n["on".concat(l,"Click")]||!r&&n.onBackgroundClick)&&Ur(n.showPointerCursor)(null==r?void 0:r.d)?"add":"remove"]("clickable"),n.hoverObj=r}e&&s()}if(e){gu(i,n.width,n.height);var h=Le(n.canvas).k;n.onRenderFramePre&&n.onRenderFramePre(i,h),n.forceGraph.globalScale(h).tickFrame(),n.onRenderFramePost&&n.onRenderFramePost(i,h)}n.tweenGroup.update(),n.animationFrameRequestId=requestAnimationFrame(t)})()},update:function(t){}});function _u(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var mu,bu,xu,wu,ku,Su,Au,Mu,Ou,zu,Eu,Cu,Pu,ju={exports:{}},Tu={exports:{}},Nu={};function Ru(){return bu||(bu=1,Tu.exports=(mu||(mu=1,function(){var t="function"==typeof Symbol&&Symbol.for,n=t?Symbol.for("react.element"):60103,e=t?Symbol.for("react.portal"):60106,r=t?Symbol.for("react.fragment"):60107,i=t?Symbol.for("react.strict_mode"):60108,o=t?Symbol.for("react.profiler"):60114,a=t?Symbol.for("react.provider"):60109,u=t?Symbol.for("react.context"):60110,s=t?Symbol.for("react.async_mode"):60111,l=t?Symbol.for("react.concurrent_mode"):60111,c=t?Symbol.for("react.forward_ref"):60112,f=t?Symbol.for("react.suspense"):60113,h=t?Symbol.for("react.suspense_list"):60120,p=t?Symbol.for("react.memo"):60115,d=t?Symbol.for("react.lazy"):60116,y=t?Symbol.for("react.block"):60121,g=t?Symbol.for("react.fundamental"):60117,v=t?Symbol.for("react.responder"):60118,_=t?Symbol.for("react.scope"):60119;function m(t){if("object"==typeof t&&null!==t){var h=t.$$typeof;switch(h){case n:var y=t.type;switch(y){case s:case l:case r:case o:case i:case f:return y;default:var g=y&&y.$$typeof;switch(g){case u:case c:case d:case p:case a:return g;default:return h}}case e:return h}}}var b=s,x=l,w=u,k=a,S=n,A=c,M=r,O=d,z=p,E=e,C=o,P=i,j=f,T=!1;function N(t){return m(t)===l}Nu.AsyncMode=b,Nu.ConcurrentMode=x,Nu.ContextConsumer=w,Nu.ContextProvider=k,Nu.Element=S,Nu.ForwardRef=A,Nu.Fragment=M,Nu.Lazy=O,Nu.Memo=z,Nu.Portal=E,Nu.Profiler=C,Nu.StrictMode=P,Nu.Suspense=j,Nu.isAsyncMode=function(t){return T||(T=!0,console.warn("The ReactIs.isAsyncMode() alias has been deprecated, and will be removed in React 17+. Update your code to use ReactIs.isConcurrentMode() instead. It has the exact same API.")),N(t)||m(t)===s},Nu.isConcurrentMode=N,Nu.isContextConsumer=function(t){return m(t)===u},Nu.isContextProvider=function(t){return m(t)===a},Nu.isElement=function(t){return"object"==typeof t&&null!==t&&t.$$typeof===n},Nu.isForwardRef=function(t){return m(t)===c},Nu.isFragment=function(t){return m(t)===r},Nu.isLazy=function(t){return m(t)===d},Nu.isMemo=function(t){return m(t)===p},Nu.isPortal=function(t){return m(t)===e},Nu.isProfiler=function(t){return m(t)===o},Nu.isStrictMode=function(t){return m(t)===i},Nu.isSuspense=function(t){return m(t)===f},Nu.isValidElementType=function(t){return"string"==typeof t||"function"==typeof t||t===r||t===l||t===o||t===i||t===f||t===h||"object"==typeof t&&null!==t&&(t.$$typeof===d||t.$$typeof===p||t.$$typeof===a||t.$$typeof===u||t.$$typeof===c||t.$$typeof===g||t.$$typeof===v||t.$$typeof===_||t.$$typeof===y)},Nu.typeOf=m}()),Nu)),Tu.exports}function Du(){if(wu)return xu;wu=1;var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,e=Object.prototype.propertyIsEnumerable;return xu=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var n={},e=0;e<10;e++)n["_"+String.fromCharCode(e)]=e;var r=Object.getOwnPropertyNames(n).map(function(t){return n[t]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(t){i[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(t){return!1}}()?Object.assign:function(r,i){for(var o,a,u=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(r),s=1;s1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),a;return d(function(t,e,r,i,o){for(var a=t[e],u=0;u0?", expected one of type ["+s.join(", ")+"]":"")+".")})},shape:function(t){return d(function(n,e,i,o,a){var u=n[e],s=_(u);if("object"!==s)return new p("Invalid "+o+" `"+a+"` of type `"+s+"` supplied to `"+i+"`, expected `object`.");for(var l in t){var c=t[l];if("function"!=typeof c)return g(i,o,a,l,m(c));var f=c(u,l,i,o,a+"."+l,r);if(f)return f}return null})},exact:function(t){return d(function(n,o,a,u,s){var l=n[o],c=_(l);if("object"!==c)return new p("Invalid "+u+" `"+s+"` of type `"+c+"` supplied to `"+a+"`, expected `object`.");var f=e({},n[o],t);for(var h in f){var d=t[h];if(i(t,h)&&"function"!=typeof d)return g(a,u,s,h,m(d));if(!d)return new p("Invalid "+u+" `"+s+"` key `"+h+"` supplied to `"+a+"`.\nBad object: "+JSON.stringify(n[o],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(t),null," "));var y=d(l,h,a,u,s+"."+h,r);if(y)return y}return null})}};function h(t,n){return t===n?0!==t||1/t==1/n:t!=t&&n!=n}function p(t,n){this.message=t,this.data=n&&"object"==typeof n?n:{},this.stack=""}function d(n){var e={},i=0;function o(o,a,u,l,f,h,d){if(l=l||c,h=h||u,d!==r){if(s){var y=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw y.name="Invariant Violation",y}if("undefined"!=typeof console){var g=l+":"+u;!e[g]&&i<3&&(t("You are manually calling a React.PropTypes validation function for the `"+h+"` prop on `"+l+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),e[g]=!0,i++)}}return null==a[u]?o?null===a[u]?new p("The "+f+" `"+h+"` is marked as required in `"+l+"`, but its value is `null`."):new p("The "+f+" `"+h+"` is marked as required in `"+l+"`, but its value is `undefined`."):null:n(a,u,l,f,h)}var a=o.bind(null,!1);return a.isRequired=o.bind(null,!0),a}function y(t){return d(function(n,e,r,i,o,a){var u=n[e];return _(u)!==t?new p("Invalid "+i+" `"+o+"` of type `"+m(u)+"` supplied to `"+r+"`, expected `"+t+"`.",{expectedType:t}):null})}function g(t,n,e,r,i){return new p((t||"React class")+": "+n+" type `"+e+"."+r+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+i+"`.")}function v(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(v);if(null===t||u(t))return!0;var n=function(t){var n=t&&(l&&t[l]||t["@@iterator"]);if("function"==typeof n)return n}(t);if(!n)return!1;var e,r=n.call(t);if(n!==t.entries){for(;!(e=r.next()).done;)if(!v(e.value))return!1}else for(;!(e=r.next()).done;){var i=e.value;if(i&&!v(i[1]))return!1}return!0;default:return!1}}function _(t){var n=typeof t;return Array.isArray(t)?"array":t instanceof RegExp?"object":function(t,n){return"symbol"===t||!!n&&("Symbol"===n["@@toStringTag"]||"function"==typeof Symbol&&n instanceof Symbol)}(n,t)?"symbol":n}function m(t){if(null==t)return""+t;var n=_(t);if("object"===n){if(t instanceof Date)return"date";if(t instanceof RegExp)return"regexp"}return n}function b(t){var n=m(t);switch(n){case"array":case"object":return"an "+n;case"boolean":case"date":case"regexp":return"a "+n;default:return n}}return p.prototype=Error.prototype,f.checkPropTypes=o,f.resetWarningCache=o.resetWarningCache,f.PropTypes=f,f},Eu}function $u(){if(Pu)return ju.exports;Pu=1;var t=Ru();return ju.exports=Lu()(t.isElement,true),ju.exports}var qu=_u($u());const Bu={width:qu.number,height:qu.number,graphData:qu.shape({nodes:qu.arrayOf(qu.object).isRequired,links:qu.arrayOf(qu.object).isRequired}),backgroundColor:qu.string,nodeRelSize:qu.number,nodeId:qu.string,nodeLabel:qu.oneOfType([qu.string,qu.func]),nodeVal:qu.oneOfType([qu.number,qu.string,qu.func]),nodeVisibility:qu.oneOfType([qu.bool,qu.string,qu.func]),nodeColor:qu.oneOfType([qu.string,qu.func]),nodeAutoColorBy:qu.oneOfType([qu.string,qu.func]),onNodeHover:qu.func,onNodeClick:qu.func,linkSource:qu.string,linkTarget:qu.string,linkLabel:qu.oneOfType([qu.string,qu.func]),linkVisibility:qu.oneOfType([qu.bool,qu.string,qu.func]),linkColor:qu.oneOfType([qu.string,qu.func]),linkAutoColorBy:qu.oneOfType([qu.string,qu.func]),linkWidth:qu.oneOfType([qu.number,qu.string,qu.func]),linkCurvature:qu.oneOfType([qu.number,qu.string,qu.func]),linkDirectionalArrowLength:qu.oneOfType([qu.number,qu.string,qu.func]),linkDirectionalArrowColor:qu.oneOfType([qu.string,qu.func]),linkDirectionalArrowRelPos:qu.oneOfType([qu.number,qu.string,qu.func]),linkDirectionalParticles:qu.oneOfType([qu.number,qu.string,qu.func]),linkDirectionalParticleSpeed:qu.oneOfType([qu.number,qu.string,qu.func]),linkDirectionalParticleOffset:qu.oneOfType([qu.number,qu.string,qu.func]),linkDirectionalParticleWidth:qu.oneOfType([qu.number,qu.string,qu.func]),linkDirectionalParticleColor:qu.oneOfType([qu.string,qu.func]),onLinkHover:qu.func,onLinkClick:qu.func,dagMode:qu.oneOf(["td","bu","lr","rl","zin","zout","radialin","radialout"]),dagLevelDistance:qu.number,dagNodeFilter:qu.func,onDagError:qu.func,d3AlphaMin:qu.number,d3AlphaDecay:qu.number,d3VelocityDecay:qu.number,warmupTicks:qu.number,cooldownTicks:qu.number,cooldownTime:qu.number,onEngineTick:qu.func,onEngineStop:qu.func,getGraphBbox:qu.func},Hu={zoomToFit:qu.func,onNodeRightClick:qu.func,onNodeDrag:qu.func,onNodeDragEnd:qu.func,onLinkRightClick:qu.func,linkHoverPrecision:qu.number,onBackgroundClick:qu.func,onBackgroundRightClick:qu.func,showPointerCursor:qu.oneOfType([qu.bool,qu.func]),enablePointerInteraction:qu.bool,enableNodeDrag:qu.bool},Vu={showNavInfo:qu.bool,nodeOpacity:qu.number,nodeResolution:qu.number,nodeThreeObject:qu.oneOfType([qu.object,qu.string,qu.func]),nodeThreeObjectExtend:qu.oneOfType([qu.bool,qu.string,qu.func]),nodePositionUpdate:qu.func,linkOpacity:qu.number,linkResolution:qu.number,linkCurveRotation:qu.oneOfType([qu.number,qu.string,qu.func]),linkMaterial:qu.oneOfType([qu.object,qu.string,qu.func]),linkThreeObject:qu.oneOfType([qu.object,qu.string,qu.func]),linkThreeObjectExtend:qu.oneOfType([qu.bool,qu.string,qu.func]),linkPositionUpdate:qu.func,linkDirectionalArrowResolution:qu.number,linkDirectionalParticleResolution:qu.number,linkDirectionalParticleThreeObject:qu.oneOfType([qu.object,qu.string,qu.func]),forceEngine:qu.oneOf(["d3","ngraph"]),ngraphPhysics:qu.object,numDimensions:qu.oneOf([1,2,3])},Gu=Object.assign({},Bu,Hu,{linkLineDash:qu.oneOfType([qu.arrayOf(qu.number),qu.string,qu.func]),nodeCanvasObjectMode:qu.oneOfType([qu.string,qu.func]),nodeCanvasObject:qu.func,nodePointerAreaPaint:qu.func,linkCanvasObjectMode:qu.oneOfType([qu.string,qu.func]),linkCanvasObject:qu.func,linkPointerAreaPaint:qu.func,linkDirectionalParticleCanvasObject:qu.func,autoPauseRedraw:qu.bool,minZoom:qu.number,maxZoom:qu.number,enableZoomInteraction:qu.oneOfType([qu.bool,qu.func]),enablePanInteraction:qu.oneOfType([qu.bool,qu.func]),onZoom:qu.func,onZoomEnd:qu.func,onRenderFramePre:qu.func,onRenderFramePost:qu.func});Object.assign({},Bu,Hu,Vu,{enableNavigationControls:qu.bool,controlType:qu.oneOf(["trackball","orbit","fly"]),rendererConfig:qu.object,extraRenderers:qu.arrayOf(qu.shape({render:qu.func.isRequired}))}),Object.assign({},Bu,Vu,{nodeDesc:qu.oneOfType([qu.string,qu.func]),linkDesc:qu.oneOfType([qu.string,qu.func])}),Object.assign({},Bu,Vu,{markerAttrs:qu.object,yOffset:qu.number,glScale:qu.number});const Xu=function(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=o.wrapperElementType,u=void 0===a?"div":a,s=o.nodeMapper,c=void 0===s?function(t){return t}:s,h=o.methodNames,p=void 0===h?[]:h,d=o.initPropNames,y=void 0===d?[]:d;return n.forwardRef(function(o,a){var s=n.useRef(),h=n.useMemo(function(){var n=Object.fromEntries(y.filter(function(t){return o.hasOwnProperty(t)}).map(function(t){return[t,o[t]]}));return t(n)},[]);f(function(){h(c(s.current))},n.useLayoutEffect),f(function(){return h._destructor instanceof Function?h._destructor:void 0});var d,g,v,_=n.useCallback(function(t){for(var n=arguments.length,e=new Array(n>1?n-1:0),r=1;r