@skydesign/tf 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- "use strict";function En(t){return JSON.stringify(JSON.stringify(t)).slice(1,-1)}function pt(t){try{return JSON.parse(t)}catch{const e=JSON.parse(`"${t}"`);return JSON.parse(e)}}var Nn={value:()=>{}};function ie(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new At(n)}function At(t){this._=t}function $n(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}At.prototype=ie.prototype={constructor:At,on:function(t,e){var n=this._,r=$n(t+"",n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(t=r[a]).type)&&(i=Sn(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++a<o;)if(i=(t=r[a]).type)n[i]=de(n[i],t.name,e);else if(e==null)for(i in n)n[i]=de(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new At(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],r=0,i=a.length;r<i;++r)a[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(e,n)}};function Sn(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function de(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Nn,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var Xt="http://www.w3.org/1999/xhtml";const ge={svg:"http://www.w3.org/2000/svg",xhtml:Xt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ot(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),ge.hasOwnProperty(e)?{space:ge[e],local:t}:t}function kn(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Xt&&e.documentElement.namespaceURI===Xt?e.createElement(t):e.createElementNS(n,t)}}function An(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ye(t){var e=Ot(t);return(e.local?An:kn)(e)}function Tn(){}function oe(t){return t==null?Tn:function(){return this.querySelector(t)}}function In(t){typeof t!="function"&&(t=oe(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a=e[i],o=a.length,c=r[i]=new Array(o),s,l,u=0;u<o;++u)(s=a[u])&&(l=t.call(s,s.__data__,u,a))&&("__data__"in s&&(l.__data__=s.__data__),c[u]=l);return new W(r,this._parents)}function Cn(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Mn(){return[]}function ze(t){return t==null?Mn:function(){return this.querySelectorAll(t)}}function Dn(t){return function(){return Cn(t.apply(this,arguments))}}function Pn(t){typeof t=="function"?t=Dn(t):t=ze(t);for(var e=this._groups,n=e.length,r=[],i=[],a=0;a<n;++a)for(var o=e[a],c=o.length,s,l=0;l<c;++l)(s=o[l])&&(r.push(t.call(s,s.__data__,l,o)),i.push(s));return new W(r,i)}function Le(t){return function(){return this.matches(t)}}function Re(t){return function(e){return e.matches(t)}}var Yn=Array.prototype.find;function zn(t){return function(){return Yn.call(this.children,t)}}function Ln(){return this.firstElementChild}function Rn(t){return this.select(t==null?Ln:zn(typeof t=="function"?t:Re(t)))}var On=Array.prototype.filter;function Hn(){return Array.from(this.children)}function Bn(t){return function(){return On.call(this.children,t)}}function Fn(t){return this.selectAll(t==null?Hn:Bn(typeof t=="function"?t:Re(t)))}function Wn(t){typeof t!="function"&&(t=Le(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a=e[i],o=a.length,c=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&c.push(s);return new W(r,this._parents)}function Oe(t){return new Array(t.length)}function Gn(){return new W(this._enter||this._groups.map(Oe),this._parents)}function Dt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}Dt.prototype={constructor:Dt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Vn(t){return function(){return t}}function Xn(t,e,n,r,i,a){for(var o=0,c,s=e.length,l=a.length;o<l;++o)(c=e[o])?(c.__data__=a[o],r[o]=c):n[o]=new Dt(t,a[o]);for(;o<s;++o)(c=e[o])&&(i[o]=c)}function qn(t,e,n,r,i,a,o){var c,s,l=new Map,u=e.length,f=a.length,h=new Array(u),g;for(c=0;c<u;++c)(s=e[c])&&(h[c]=g=o.call(s,s.__data__,c,e)+"",l.has(g)?i[c]=s:l.set(g,s));for(c=0;c<f;++c)g=o.call(t,a[c],c,a)+"",(s=l.get(g))?(r[c]=s,s.__data__=a[c],l.delete(g)):n[c]=new Dt(t,a[c]);for(c=0;c<u;++c)(s=e[c])&&l.get(h[c])===s&&(i[c]=s)}function Un(t){return t.__data__}function Zn(t,e){if(!arguments.length)return Array.from(this,Un);var n=e?qn:Xn,r=this._parents,i=this._groups;typeof t!="function"&&(t=Vn(t));for(var a=i.length,o=new Array(a),c=new Array(a),s=new Array(a),l=0;l<a;++l){var u=r[l],f=i[l],h=f.length,g=Kn(t.call(u,u&&u.__data__,l,r)),m=g.length,x=c[l]=new Array(m),y=o[l]=new Array(m),p=s[l]=new Array(h);n(u,f,x,y,p,g,e);for(var w=0,E=0,k,$;w<m;++w)if(k=x[w]){for(w>=E&&(E=w+1);!($=y[E])&&++E<m;);k._next=$||null}}return o=new W(o,r),o._enter=c,o._exit=s,o}function Kn(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Qn(){return new W(this._exit||this._groups.map(Oe),this._parents)}function Jn(t,e,n){var r=this.enter(),i=this,a=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function jn(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,a=r.length,o=Math.min(i,a),c=new Array(i),s=0;s<o;++s)for(var l=n[s],u=r[s],f=l.length,h=c[s]=new Array(f),g,m=0;m<f;++m)(g=l[m]||u[m])&&(h[m]=g);for(;s<i;++s)c[s]=n[s];return new W(c,this._parents)}function tr(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function er(t){t||(t=nr);function e(f,h){return f&&h?t(f.__data__,h.__data__):!f-!h}for(var n=this._groups,r=n.length,i=new Array(r),a=0;a<r;++a){for(var o=n[a],c=o.length,s=i[a]=new Array(c),l,u=0;u<c;++u)(l=o[u])&&(s[u]=l);s.sort(e)}return new W(i,this._parents).order()}function nr(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function rr(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function ir(){return Array.from(this)}function or(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function ar(){let t=0;for(const e of this)++t;return t}function sr(){return!this.node()}function cr(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],a=0,o=i.length,c;a<o;++a)(c=i[a])&&t.call(c,c.__data__,a,i);return this}function lr(t){return function(){this.removeAttribute(t)}}function ur(t){return function(){this.removeAttributeNS(t.space,t.local)}}function fr(t,e){return function(){this.setAttribute(t,e)}}function hr(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function dr(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function gr(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function pr(t,e){var n=Ot(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?ur:lr:typeof e=="function"?n.local?gr:dr:n.local?hr:fr)(n,e))}function He(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function mr(t){return function(){this.style.removeProperty(t)}}function yr(t,e,n){return function(){this.style.setProperty(t,e,n)}}function xr(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function _r(t,e,n){return arguments.length>1?this.each((e==null?mr:typeof e=="function"?xr:yr)(t,e,n??"")):lt(this.node(),t)}function lt(t,e){return t.style.getPropertyValue(e)||He(t).getComputedStyle(t,null).getPropertyValue(e)}function wr(t){return function(){delete this[t]}}function vr(t,e){return function(){this[t]=e}}function br(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Er(t,e){return arguments.length>1?this.each((e==null?wr:typeof e=="function"?br:vr)(t,e)):this.node()[t]}function Be(t){return t.trim().split(/^|\s+/)}function ae(t){return t.classList||new Fe(t)}function Fe(t){this._node=t,this._names=Be(t.getAttribute("class")||"")}Fe.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function We(t,e){for(var n=ae(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function Ge(t,e){for(var n=ae(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Nr(t){return function(){We(this,t)}}function $r(t){return function(){Ge(this,t)}}function Sr(t,e){return function(){(e.apply(this,arguments)?We:Ge)(this,t)}}function kr(t,e){var n=Be(t+"");if(arguments.length<2){for(var r=ae(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?Sr:e?Nr:$r)(n,e))}function Ar(){this.textContent=""}function Tr(t){return function(){this.textContent=t}}function Ir(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Cr(t){return arguments.length?this.each(t==null?Ar:(typeof t=="function"?Ir:Tr)(t)):this.node().textContent}function Mr(){this.innerHTML=""}function Dr(t){return function(){this.innerHTML=t}}function Pr(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Yr(t){return arguments.length?this.each(t==null?Mr:(typeof t=="function"?Pr:Dr)(t)):this.node().innerHTML}function zr(){this.nextSibling&&this.parentNode.appendChild(this)}function Lr(){return this.each(zr)}function Rr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Or(){return this.each(Rr)}function Hr(t){var e=typeof t=="function"?t:Ye(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Br(){return null}function Fr(t,e){var n=typeof t=="function"?t:Ye(t),r=e==null?Br:typeof e=="function"?e:oe(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Wr(){var t=this.parentNode;t&&t.removeChild(this)}function Gr(){return this.each(Wr)}function Vr(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Xr(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function qr(t){return this.select(t?Xr:Vr)}function Ur(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Zr(t){return function(e){t.call(this,e,this.__data__)}}function Kr(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function Qr(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,a;n<i;++n)a=e[n],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):e[++r]=a;++r?e.length=r:delete this.__on}}}function Jr(t,e,n){return function(){var r=this.__on,i,a=Zr(e);if(r){for(var o=0,c=r.length;o<c;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=e;return}}this.addEventListener(t.type,a,n),i={type:t.type,name:t.name,value:e,listener:a,options:n},r?r.push(i):this.__on=[i]}}function jr(t,e,n){var r=Kr(t+""),i,a=r.length,o;if(arguments.length<2){var c=this.node().__on;if(c){for(var s=0,l=c.length,u;s<l;++s)for(i=0,u=c[s];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(c=e?Jr:Qr,i=0;i<a;++i)this.each(c(r[i],e,n));return this}function Ve(t,e,n){var r=He(t),i=r.CustomEvent;typeof i=="function"?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function ti(t,e){return function(){return Ve(this,t,e)}}function ei(t,e){return function(){return Ve(this,t,e.apply(this,arguments))}}function ni(t,e){return this.each((typeof e=="function"?ei:ti)(t,e))}function*ri(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Xe=[null];function W(t,e){this._groups=t,this._parents=e}function vt(){return new W([[document.documentElement]],Xe)}function ii(){return this}W.prototype=vt.prototype={constructor:W,select:In,selectAll:Pn,selectChild:Rn,selectChildren:Fn,filter:Wn,data:Zn,enter:Gn,exit:Qn,join:Jn,merge:jn,selection:ii,order:tr,sort:er,call:rr,nodes:ir,node:or,size:ar,empty:sr,each:cr,attr:pr,style:_r,property:Er,classed:kr,text:Cr,html:Yr,raise:Lr,lower:Or,append:Hr,insert:Fr,remove:Gr,clone:qr,datum:Ur,on:jr,dispatch:ni,[Symbol.iterator]:ri};function P(t){return typeof t=="string"?new W([[document.querySelector(t)]],[document.documentElement]):new W([[t]],Xe)}function oi(t){let e;for(;e=t.sourceEvent;)t=e;return t}function rt(t,e){if(t=oi(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}const qt={capture:!0,passive:!1};function Ut(t){t.preventDefault(),t.stopImmediatePropagation()}function ai(t){var e=t.document.documentElement,n=P(t).on("dragstart.drag",Ut,qt);"onselectstart"in e?n.on("selectstart.drag",Ut,qt):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function si(t,e){var n=t.document.documentElement,r=P(t).on("dragstart.drag",null);e&&(r.on("click.drag",Ut,qt),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function se(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function qe(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function bt(){}var mt=.7,Pt=1/mt,ct="\\s*([+-]?\\d+)\\s*",yt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",U="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ci=/^#([0-9a-f]{3,8})$/,li=new RegExp(`^rgb\\(${ct},${ct},${ct}\\)$`),ui=new RegExp(`^rgb\\(${U},${U},${U}\\)$`),fi=new RegExp(`^rgba\\(${ct},${ct},${ct},${yt}\\)$`),hi=new RegExp(`^rgba\\(${U},${U},${U},${yt}\\)$`),di=new RegExp(`^hsl\\(${yt},${U},${U}\\)$`),gi=new RegExp(`^hsla\\(${yt},${U},${U},${yt}\\)$`),pe={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};se(bt,xt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:me,formatHex:me,formatHex8:pi,formatHsl:mi,formatRgb:ye,toString:ye});function me(){return this.rgb().formatHex()}function pi(){return this.rgb().formatHex8()}function mi(){return Ue(this).formatHsl()}function ye(){return this.rgb().formatRgb()}function xt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=ci.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?xe(e):n===3?new F(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Nt(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Nt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=li.exec(t))?new F(e[1],e[2],e[3],1):(e=ui.exec(t))?new F(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=fi.exec(t))?Nt(e[1],e[2],e[3],e[4]):(e=hi.exec(t))?Nt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=di.exec(t))?ve(e[1],e[2]/100,e[3]/100,1):(e=gi.exec(t))?ve(e[1],e[2]/100,e[3]/100,e[4]):pe.hasOwnProperty(t)?xe(pe[t]):t==="transparent"?new F(NaN,NaN,NaN,0):null}function xe(t){return new F(t>>16&255,t>>8&255,t&255,1)}function Nt(t,e,n,r){return r<=0&&(t=e=n=NaN),new F(t,e,n,r)}function yi(t){return t instanceof bt||(t=xt(t)),t?(t=t.rgb(),new F(t.r,t.g,t.b,t.opacity)):new F}function Zt(t,e,n,r){return arguments.length===1?yi(t):new F(t,e,n,r??1)}function F(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}se(F,Zt,qe(bt,{brighter(t){return t=t==null?Pt:Math.pow(Pt,t),new F(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?mt:Math.pow(mt,t),new F(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new F(at(this.r),at(this.g),at(this.b),Yt(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:_e,formatHex:_e,formatHex8:xi,formatRgb:we,toString:we}));function _e(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}`}function xi(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}${ot((isNaN(this.opacity)?1:this.opacity)*255)}`}function we(){const t=Yt(this.opacity);return`${t===1?"rgb(":"rgba("}${at(this.r)}, ${at(this.g)}, ${at(this.b)}${t===1?")":`, ${t})`}`}function Yt(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function at(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ot(t){return t=at(t),(t<16?"0":"")+t.toString(16)}function ve(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new X(t,e,n,r)}function Ue(t){if(t instanceof X)return new X(t.h,t.s,t.l,t.opacity);if(t instanceof bt||(t=xt(t)),!t)return new X;if(t instanceof X)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,c=a-i,s=(a+i)/2;return c?(e===a?o=(n-r)/c+(n<r)*6:n===a?o=(r-e)/c+2:o=(e-n)/c+4,c/=s<.5?a+i:2-a-i,o*=60):c=s>0&&s<1?0:o,new X(o,c,s,t.opacity)}function _i(t,e,n,r){return arguments.length===1?Ue(t):new X(t,e,n,r??1)}function X(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}se(X,_i,qe(bt,{brighter(t){return t=t==null?Pt:Math.pow(Pt,t),new X(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?mt:Math.pow(mt,t),new X(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new F(Wt(t>=240?t-240:t+120,i,r),Wt(t,i,r),Wt(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new X(be(this.h),$t(this.s),$t(this.l),Yt(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=Yt(this.opacity);return`${t===1?"hsl(":"hsla("}${be(this.h)}, ${$t(this.s)*100}%, ${$t(this.l)*100}%${t===1?")":`, ${t})`}`}}));function be(t){return t=(t||0)%360,t<0?t+360:t}function $t(t){return Math.max(0,Math.min(1,t||0))}function Wt(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Ze=t=>()=>t;function wi(t,e){return function(n){return t+n*e}}function vi(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function bi(t){return(t=+t)==1?Ke:function(e,n){return n-e?vi(e,n,t):Ze(isNaN(e)?n:e)}}function Ke(t,e){var n=e-t;return n?wi(t,n):Ze(isNaN(t)?e:t)}const Ee=(function t(e){var n=bi(e);function r(i,a){var o=n((i=Zt(i)).r,(a=Zt(a)).r),c=n(i.g,a.g),s=n(i.b,a.b),l=Ke(i.opacity,a.opacity);return function(u){return i.r=o(u),i.g=c(u),i.b=s(u),i.opacity=l(u),i+""}}return r.gamma=t,r})(1);function et(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var Kt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Gt=new RegExp(Kt.source,"g");function Ei(t){return function(){return t}}function Ni(t){return function(e){return t(e)+""}}function $i(t,e){var n=Kt.lastIndex=Gt.lastIndex=0,r,i,a,o=-1,c=[],s=[];for(t=t+"",e=e+"";(r=Kt.exec(t))&&(i=Gt.exec(e));)(a=i.index)>n&&(a=e.slice(n,a),c[o]?c[o]+=a:c[++o]=a),(r=r[0])===(i=i[0])?c[o]?c[o]+=i:c[++o]=i:(c[++o]=null,s.push({i:o,x:et(r,i)})),n=Gt.lastIndex;return n<e.length&&(a=e.slice(n),c[o]?c[o]+=a:c[++o]=a),c.length<2?s[0]?Ni(s[0].x):Ei(e):(e=s.length,function(l){for(var u=0,f;u<e;++u)c[(f=s[u]).i]=f.x(l);return c.join("")})}var Ne=180/Math.PI,Qt={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Qe(t,e,n,r,i,a){var o,c,s;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(s=t*n+e*r)&&(n-=t*s,r-=e*s),(c=Math.sqrt(n*n+r*r))&&(n/=c,r/=c,s/=c),t*r<e*n&&(t=-t,e=-e,s=-s,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*Ne,skewX:Math.atan(s)*Ne,scaleX:o,scaleY:c}}var St;function Si(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Qt:Qe(e.a,e.b,e.c,e.d,e.e,e.f)}function ki(t){return t==null||(St||(St=document.createElementNS("http://www.w3.org/2000/svg","g")),St.setAttribute("transform",t),!(t=St.transform.baseVal.consolidate()))?Qt:(t=t.matrix,Qe(t.a,t.b,t.c,t.d,t.e,t.f))}function Je(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,u,f,h,g,m){if(l!==f||u!==h){var x=g.push("translate(",null,e,null,n);m.push({i:x-4,x:et(l,f)},{i:x-2,x:et(u,h)})}else(f||h)&&g.push("translate("+f+e+h+n)}function o(l,u,f,h){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:et(l,u)})):u&&f.push(i(f)+"rotate("+u+r)}function c(l,u,f,h){l!==u?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:et(l,u)}):u&&f.push(i(f)+"skewX("+u+r)}function s(l,u,f,h,g,m){if(l!==f||u!==h){var x=g.push(i(g)+"scale(",null,",",null,")");m.push({i:x-4,x:et(l,f)},{i:x-2,x:et(u,h)})}else(f!==1||h!==1)&&g.push(i(g)+"scale("+f+","+h+")")}return function(l,u){var f=[],h=[];return l=t(l),u=t(u),a(l.translateX,l.translateY,u.translateX,u.translateY,f,h),o(l.rotate,u.rotate,f,h),c(l.skewX,u.skewX,f,h),s(l.scaleX,l.scaleY,u.scaleX,u.scaleY,f,h),l=u=null,function(g){for(var m=-1,x=h.length,y;++m<x;)f[(y=h[m]).i]=y.x(g);return f.join("")}}}var Ai=Je(Si,"px, ","px)","deg)"),Ti=Je(ki,", ",")",")"),Ii=1e-12;function $e(t){return((t=Math.exp(t))+1/t)/2}function Ci(t){return((t=Math.exp(t))-1/t)/2}function Mi(t){return((t=Math.exp(2*t))-1)/(t+1)}const Di=(function t(e,n,r){function i(a,o){var c=a[0],s=a[1],l=a[2],u=o[0],f=o[1],h=o[2],g=u-c,m=f-s,x=g*g+m*m,y,p;if(x<Ii)p=Math.log(h/l)/e,y=function(S){return[c+S*g,s+S*m,l*Math.exp(e*S*p)]};else{var w=Math.sqrt(x),E=(h*h-l*l+r*x)/(2*l*n*w),k=(h*h-l*l-r*x)/(2*h*n*w),$=Math.log(Math.sqrt(E*E+1)-E),v=Math.log(Math.sqrt(k*k+1)-k);p=(v-$)/e,y=function(S){var M=S*p,D=$e($),C=l/(n*w)*(D*Mi(e*M+$)-Ci($));return[c+C*g,s+C*m,l*D/$e(e*M+$)]}}return y.duration=p*1e3*e/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),c=o*o,s=c*c;return t(o,c,s)},i})(Math.SQRT2,2,4);var ut=0,dt=0,ft=0,je=1e3,zt,gt,Lt=0,st=0,Ht=0,_t=typeof performance=="object"&&performance.now?performance:Date,tn=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ce(){return st||(tn(Pi),st=_t.now()+Ht)}function Pi(){st=0}function Rt(){this._call=this._time=this._next=null}Rt.prototype=en.prototype={constructor:Rt,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?ce():+n)+(e==null?0:+e),!this._next&&gt!==this&&(gt?gt._next=this:zt=this,gt=this),this._call=t,this._time=n,Jt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Jt())}};function en(t,e,n){var r=new Rt;return r.restart(t,e,n),r}function Yi(){ce(),++ut;for(var t=zt,e;t;)(e=st-t._time)>=0&&t._call.call(void 0,e),t=t._next;--ut}function Se(){st=(Lt=_t.now())+Ht,ut=dt=0;try{Yi()}finally{ut=0,Li(),st=0}}function zi(){var t=_t.now(),e=t-Lt;e>je&&(Ht-=e,Lt=t)}function Li(){for(var t,e=zt,n,r=1/0;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:zt=n);gt=t,Jt(r)}function Jt(t){if(!ut){dt&&(dt=clearTimeout(dt));var e=t-st;e>24?(t<1/0&&(dt=setTimeout(Se,t-_t.now()-Ht)),ft&&(ft=clearInterval(ft))):(ft||(Lt=_t.now(),ft=setInterval(zi,je)),ut=1,tn(Se))}}function ke(t,e,n){var r=new Rt;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}var Ri=ie("start","end","cancel","interrupt"),Oi=[],nn=0,Ae=1,jt=2,Tt=3,Te=4,te=5,It=6;function Bt(t,e,n,r,i,a){var o=t.__transition;if(!o)t.__transition={};else if(n in o)return;Hi(t,n,{name:e,index:r,group:i,on:Ri,tween:Oi,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:nn})}function le(t,e){var n=q(t,e);if(n.state>nn)throw new Error("too late; already scheduled");return n}function Z(t,e){var n=q(t,e);if(n.state>Tt)throw new Error("too late; already running");return n}function q(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Hi(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=en(a,0,n.time);function a(l){n.state=Ae,n.timer.restart(o,n.delay,n.time),n.delay<=l&&o(l-n.delay)}function o(l){var u,f,h,g;if(n.state!==Ae)return s();for(u in r)if(g=r[u],g.name===n.name){if(g.state===Tt)return ke(o);g.state===Te?(g.state=It,g.timer.stop(),g.on.call("interrupt",t,t.__data__,g.index,g.group),delete r[u]):+u<e&&(g.state=It,g.timer.stop(),g.on.call("cancel",t,t.__data__,g.index,g.group),delete r[u])}if(ke(function(){n.state===Tt&&(n.state=Te,n.timer.restart(c,n.delay,n.time),c(l))}),n.state=jt,n.on.call("start",t,t.__data__,n.index,n.group),n.state===jt){for(n.state=Tt,i=new Array(h=n.tween.length),u=0,f=-1;u<h;++u)(g=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(i[++f]=g);i.length=f+1}}function c(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(s),n.state=te,1),f=-1,h=i.length;++f<h;)i[f].call(t,u);n.state===te&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){n.state=It,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function Ct(t,e){var n=t.__transition,r,i,a=!0,o;if(n){e=e==null?null:e+"";for(o in n){if((r=n[o]).name!==e){a=!1;continue}i=r.state>jt&&r.state<te,r.state=It,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[o]}a&&delete t.__transition}}function Bi(t){return this.each(function(){Ct(this,t)})}function Fi(t,e){var n,r;return function(){var i=Z(this,t),a=i.tween;if(a!==n){r=n=a;for(var o=0,c=r.length;o<c;++o)if(r[o].name===e){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Wi(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var a=Z(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var c={name:e,value:n},s=0,l=i.length;s<l;++s)if(i[s].name===e){i[s]=c;break}s===l&&i.push(c)}a.tween=i}}function Gi(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=q(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((e==null?Fi:Wi)(n,t,e))}function ue(t,e,n){var r=t._id;return t.each(function(){var i=Z(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return q(i,r).value[e]}}function rn(t,e){var n;return(typeof e=="number"?et:e instanceof xt?Ee:(n=xt(e))?(e=n,Ee):$i)(t,e)}function Vi(t){return function(){this.removeAttribute(t)}}function Xi(t){return function(){this.removeAttributeNS(t.space,t.local)}}function qi(t,e,n){var r,i=n+"",a;return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=e(r=o,n)}}function Ui(t,e,n){var r,i=n+"",a;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=e(r=o,n)}}function Zi(t,e,n){var r,i,a;return function(){var o,c=n(this),s;return c==null?void this.removeAttribute(t):(o=this.getAttribute(t),s=c+"",o===s?null:o===r&&s===i?a:(i=s,a=e(r=o,c)))}}function Ki(t,e,n){var r,i,a;return function(){var o,c=n(this),s;return c==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),s=c+"",o===s?null:o===r&&s===i?a:(i=s,a=e(r=o,c)))}}function Qi(t,e){var n=Ot(t),r=n==="transform"?Ti:rn;return this.attrTween(t,typeof e=="function"?(n.local?Ki:Zi)(n,r,ue(this,"attr."+t,e)):e==null?(n.local?Xi:Vi)(n):(n.local?Ui:qi)(n,r,e))}function Ji(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function ji(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function to(t,e){var n,r;function i(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&ji(t,a)),n}return i._value=e,i}function eo(t,e){var n,r;function i(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&Ji(t,a)),n}return i._value=e,i}function no(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=Ot(t);return this.tween(n,(r.local?to:eo)(r,e))}function ro(t,e){return function(){le(this,t).delay=+e.apply(this,arguments)}}function io(t,e){return e=+e,function(){le(this,t).delay=e}}function oo(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?ro:io)(e,t)):q(this.node(),e).delay}function ao(t,e){return function(){Z(this,t).duration=+e.apply(this,arguments)}}function so(t,e){return e=+e,function(){Z(this,t).duration=e}}function co(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?ao:so)(e,t)):q(this.node(),e).duration}function lo(t,e){if(typeof e!="function")throw new Error;return function(){Z(this,t).ease=e}}function uo(t){var e=this._id;return arguments.length?this.each(lo(e,t)):q(this.node(),e).ease}function fo(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;Z(this,t).ease=n}}function ho(t){if(typeof t!="function")throw new Error;return this.each(fo(this._id,t))}function go(t){typeof t!="function"&&(t=Le(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a=e[i],o=a.length,c=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&c.push(s);return new tt(r,this._parents,this._name,this._id)}function po(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,a=Math.min(r,i),o=new Array(r),c=0;c<a;++c)for(var s=e[c],l=n[c],u=s.length,f=o[c]=new Array(u),h,g=0;g<u;++g)(h=s[g]||l[g])&&(f[g]=h);for(;c<r;++c)o[c]=e[c];return new tt(o,this._parents,this._name,this._id)}function mo(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function yo(t,e,n){var r,i,a=mo(e)?le:Z;return function(){var o=a(this,t),c=o.on;c!==r&&(i=(r=c).copy()).on(e,n),o.on=i}}function xo(t,e){var n=this._id;return arguments.length<2?q(this.node(),n).on.on(t):this.each(yo(n,t,e))}function _o(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function wo(){return this.on("end.remove",_o(this._id))}function vo(t){var e=this._name,n=this._id;typeof t!="function"&&(t=oe(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var c=r[o],s=c.length,l=a[o]=new Array(s),u,f,h=0;h<s;++h)(u=c[h])&&(f=t.call(u,u.__data__,h,c))&&("__data__"in u&&(f.__data__=u.__data__),l[h]=f,Bt(l[h],e,n,h,l,q(u,n)));return new tt(a,this._parents,e,n)}function bo(t){var e=this._name,n=this._id;typeof t!="function"&&(t=ze(t));for(var r=this._groups,i=r.length,a=[],o=[],c=0;c<i;++c)for(var s=r[c],l=s.length,u,f=0;f<l;++f)if(u=s[f]){for(var h=t.call(u,u.__data__,f,s),g,m=q(u,n),x=0,y=h.length;x<y;++x)(g=h[x])&&Bt(g,e,n,x,h,m);a.push(h),o.push(u)}return new tt(a,o,e,n)}var Eo=vt.prototype.constructor;function No(){return new Eo(this._groups,this._parents)}function $o(t,e){var n,r,i;return function(){var a=lt(this,t),o=(this.style.removeProperty(t),lt(this,t));return a===o?null:a===n&&o===r?i:i=e(n=a,r=o)}}function on(t){return function(){this.style.removeProperty(t)}}function So(t,e,n){var r,i=n+"",a;return function(){var o=lt(this,t);return o===i?null:o===r?a:a=e(r=o,n)}}function ko(t,e,n){var r,i,a;return function(){var o=lt(this,t),c=n(this),s=c+"";return c==null&&(s=c=(this.style.removeProperty(t),lt(this,t))),o===s?null:o===r&&s===i?a:(i=s,a=e(r=o,c))}}function Ao(t,e){var n,r,i,a="style."+e,o="end."+a,c;return function(){var s=Z(this,t),l=s.on,u=s.value[a]==null?c||(c=on(e)):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),s.on=r}}function To(t,e,n){var r=(t+="")=="transform"?Ai:rn;return e==null?this.styleTween(t,$o(t,r)).on("end.style."+t,on(t)):typeof e=="function"?this.styleTween(t,ko(t,r,ue(this,"style."+t,e))).each(Ao(this._id,t)):this.styleTween(t,So(t,r,e),n).on("end.style."+t,null)}function Io(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Co(t,e,n){var r,i;function a(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&Io(t,o,n)),r}return a._value=e,a}function Mo(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,Co(t,e,n??""))}function Do(t){return function(){this.textContent=t}}function Po(t){return function(){var e=t(this);this.textContent=e??""}}function Yo(t){return this.tween("text",typeof t=="function"?Po(ue(this,"text",t)):Do(t==null?"":t+""))}function zo(t){return function(e){this.textContent=t.call(this,e)}}function Lo(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&zo(i)),e}return r._value=t,r}function Ro(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,Lo(t))}function Oo(){for(var t=this._name,e=this._id,n=an(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],c=o.length,s,l=0;l<c;++l)if(s=o[l]){var u=q(s,e);Bt(s,t,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new tt(r,this._parents,t,n)}function Ho(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var c={value:o},s={value:function(){--i===0&&a()}};n.each(function(){var l=Z(this,r),u=l.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(c),e._.interrupt.push(c),e._.end.push(s)),l.on=e}),i===0&&a()})}var Bo=0;function tt(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function an(){return++Bo}var J=vt.prototype;tt.prototype={constructor:tt,select:vo,selectAll:bo,selectChild:J.selectChild,selectChildren:J.selectChildren,filter:go,merge:po,selection:No,transition:Oo,call:J.call,nodes:J.nodes,node:J.node,size:J.size,empty:J.empty,each:J.each,on:xo,attr:Qi,attrTween:no,style:To,styleTween:Mo,text:Yo,textTween:Ro,remove:wo,tween:Gi,delay:oo,duration:co,ease:uo,easeVarying:ho,end:Ho,[Symbol.iterator]:J[Symbol.iterator]};function Fo(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Wo={time:null,delay:0,duration:250,ease:Fo};function Go(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function Vo(t){var e,n;t instanceof tt?(e=t._id,t=t._name):(e=an(),(n=Wo).time=ce(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],c=o.length,s,l=0;l<c;++l)(s=o[l])&&Bt(s,t,e,l,o,n||Go(s,e));return new tt(r,this._parents,t,e)}vt.prototype.interrupt=Bi;vt.prototype.transition=Vo;const kt=t=>()=>t;function Xo(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function j(t,e,n){this.k=t,this.x=e,this.y=n}j.prototype={constructor:j,scale:function(t){return t===1?this:new j(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new j(this.k,this.x+this.k*t,this.y+this.k*e)},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 Et=new j(1,0,0);sn.prototype=j.prototype;function sn(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Et;return t.__zoom}function Vt(t){t.stopImmediatePropagation()}function ht(t){t.preventDefault(),t.stopImmediatePropagation()}function qo(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Uo(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.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 Ie(){return this.__zoom||Et}function Zo(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Ko(){return navigator.maxTouchPoints||"ontouchstart"in this}function Qo(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],a=t.invertY(e[0][1])-n[0][1],o=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function cn(){var t=qo,e=Uo,n=Qo,r=Zo,i=Ko,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],c=250,s=Di,l=ie("start","zoom","end"),u,f,h,g=500,m=150,x=0,y=10;function p(d){d.property("__zoom",Ie).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",D).on("dblclick.zoom",C).filter(i).on("touchstart.zoom",R).on("touchmove.zoom",H).on("touchend.zoom touchcancel.zoom",G).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}p.transform=function(d,N,_,b){var A=d.selection?d.selection():d;A.property("__zoom",Ie),d!==A?$(d,N,_,b):A.interrupt().each(function(){v(this,arguments).event(b).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},p.scaleBy=function(d,N,_,b){p.scaleTo(d,function(){var A=this.__zoom.k,T=typeof N=="function"?N.apply(this,arguments):N;return A*T},_,b)},p.scaleTo=function(d,N,_,b){p.transform(d,function(){var A=e.apply(this,arguments),T=this.__zoom,I=_==null?k(A):typeof _=="function"?_.apply(this,arguments):_,Y=T.invert(I),z=typeof N=="function"?N.apply(this,arguments):N;return n(E(w(T,z),I,Y),A,o)},_,b)},p.translateBy=function(d,N,_,b){p.transform(d,function(){return n(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof _=="function"?_.apply(this,arguments):_),e.apply(this,arguments),o)},null,b)},p.translateTo=function(d,N,_,b,A){p.transform(d,function(){var T=e.apply(this,arguments),I=this.__zoom,Y=b==null?k(T):typeof b=="function"?b.apply(this,arguments):b;return n(Et.translate(Y[0],Y[1]).scale(I.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof _=="function"?-_.apply(this,arguments):-_),T,o)},b,A)};function w(d,N){return N=Math.max(a[0],Math.min(a[1],N)),N===d.k?d:new j(N,d.x,d.y)}function E(d,N,_){var b=N[0]-_[0]*d.k,A=N[1]-_[1]*d.k;return b===d.x&&A===d.y?d:new j(d.k,b,A)}function k(d){return[(+d[0][0]+ +d[1][0])/2,(+d[0][1]+ +d[1][1])/2]}function $(d,N,_,b){d.on("start.zoom",function(){v(this,arguments).event(b).start()}).on("interrupt.zoom end.zoom",function(){v(this,arguments).event(b).end()}).tween("zoom",function(){var A=this,T=arguments,I=v(A,T).event(b),Y=e.apply(A,T),z=_==null?k(Y):typeof _=="function"?_.apply(A,T):_,L=Math.max(Y[1][0]-Y[0][0],Y[1][1]-Y[0][1]),O=A.__zoom,B=typeof N=="function"?N.apply(A,T):N,K=s(O.invert(z).concat(L/O.k),B.invert(z).concat(L/B.k));return function(V){if(V===1)V=B;else{var Q=K(V),Ft=L/Q[2];V=new j(Ft,z[0]-Q[0]*Ft,z[1]-Q[1]*Ft)}I.zoom(null,V)}})}function v(d,N,_){return!_&&d.__zooming||new S(d,N)}function S(d,N){this.that=d,this.args=N,this.active=0,this.sourceEvent=null,this.extent=e.apply(d,N),this.taps=0}S.prototype={event:function(d){return d&&(this.sourceEvent=d),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(d,N){return this.mouse&&d!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&d!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&d!=="touch"&&(this.touch1[1]=N.invert(this.touch1[0])),this.that.__zoom=N,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(d){var N=P(this.that).datum();l.call(d,this.that,new Xo(d,{sourceEvent:this.sourceEvent,target:p,transform:this.that.__zoom,dispatch:l}),N)}};function M(d,...N){if(!t.apply(this,arguments))return;var _=v(this,N).event(d),b=this.__zoom,A=Math.max(a[0],Math.min(a[1],b.k*Math.pow(2,r.apply(this,arguments)))),T=rt(d);if(_.wheel)(_.mouse[0][0]!==T[0]||_.mouse[0][1]!==T[1])&&(_.mouse[1]=b.invert(_.mouse[0]=T)),clearTimeout(_.wheel);else{if(b.k===A)return;_.mouse=[T,b.invert(T)],Ct(this),_.start()}ht(d),_.wheel=setTimeout(I,m),_.zoom("mouse",n(E(w(b,A),_.mouse[0],_.mouse[1]),_.extent,o));function I(){_.wheel=null,_.end()}}function D(d,...N){if(h||!t.apply(this,arguments))return;var _=d.currentTarget,b=v(this,N,!0).event(d),A=P(d.view).on("mousemove.zoom",z,!0).on("mouseup.zoom",L,!0),T=rt(d,_),I=d.clientX,Y=d.clientY;ai(d.view),Vt(d),b.mouse=[T,this.__zoom.invert(T)],Ct(this),b.start();function z(O){if(ht(O),!b.moved){var B=O.clientX-I,K=O.clientY-Y;b.moved=B*B+K*K>x}b.event(O).zoom("mouse",n(E(b.that.__zoom,b.mouse[0]=rt(O,_),b.mouse[1]),b.extent,o))}function L(O){A.on("mousemove.zoom mouseup.zoom",null),si(O.view,b.moved),ht(O),b.event(O).end()}}function C(d,...N){if(t.apply(this,arguments)){var _=this.__zoom,b=rt(d.changedTouches?d.changedTouches[0]:d,this),A=_.invert(b),T=_.k*(d.shiftKey?.5:2),I=n(E(w(_,T),b,A),e.apply(this,N),o);ht(d),c>0?P(this).transition().duration(c).call($,I,b,d):P(this).call(p.transform,I,b,d)}}function R(d,...N){if(t.apply(this,arguments)){var _=d.touches,b=_.length,A=v(this,N,d.changedTouches.length===b).event(d),T,I,Y,z;for(Vt(d),I=0;I<b;++I)Y=_[I],z=rt(Y,this),z=[z,this.__zoom.invert(z),Y.identifier],A.touch0?!A.touch1&&A.touch0[2]!==z[2]&&(A.touch1=z,A.taps=0):(A.touch0=z,T=!0,A.taps=1+!!u);u&&(u=clearTimeout(u)),T&&(A.taps<2&&(f=z[0],u=setTimeout(function(){u=null},g)),Ct(this),A.start())}}function H(d,...N){if(this.__zooming){var _=v(this,N).event(d),b=d.changedTouches,A=b.length,T,I,Y,z;for(ht(d),T=0;T<A;++T)I=b[T],Y=rt(I,this),_.touch0&&_.touch0[2]===I.identifier?_.touch0[0]=Y:_.touch1&&_.touch1[2]===I.identifier&&(_.touch1[0]=Y);if(I=_.that.__zoom,_.touch1){var L=_.touch0[0],O=_.touch0[1],B=_.touch1[0],K=_.touch1[1],V=(V=B[0]-L[0])*V+(V=B[1]-L[1])*V,Q=(Q=K[0]-O[0])*Q+(Q=K[1]-O[1])*Q;I=w(I,Math.sqrt(V/Q)),Y=[(L[0]+B[0])/2,(L[1]+B[1])/2],z=[(O[0]+K[0])/2,(O[1]+K[1])/2]}else if(_.touch0)Y=_.touch0[0],z=_.touch0[1];else return;_.zoom("touch",n(E(I,Y,z),_.extent,o))}}function G(d,...N){if(this.__zooming){var _=v(this,N).event(d),b=d.changedTouches,A=b.length,T,I;for(Vt(d),h&&clearTimeout(h),h=setTimeout(function(){h=null},g),T=0;T<A;++T)I=b[T],_.touch0&&_.touch0[2]===I.identifier?delete _.touch0:_.touch1&&_.touch1[2]===I.identifier&&delete _.touch1;if(_.touch1&&!_.touch0&&(_.touch0=_.touch1,delete _.touch1),_.touch0)_.touch0[1]=this.__zoom.invert(_.touch0[0]);else if(_.end(),_.taps===2&&(I=rt(I,this),Math.hypot(f[0]-I[0],f[1]-I[1])<y)){var Y=P(this).on("dblclick.zoom");Y&&Y.apply(this,arguments)}}}return p.wheelDelta=function(d){return arguments.length?(r=typeof d=="function"?d:kt(+d),p):r},p.filter=function(d){return arguments.length?(t=typeof d=="function"?d:kt(!!d),p):t},p.touchable=function(d){return arguments.length?(i=typeof d=="function"?d:kt(!!d),p):i},p.extent=function(d){return arguments.length?(e=typeof d=="function"?d:kt([[+d[0][0],+d[0][1]],[+d[1][0],+d[1][1]]]),p):e},p.scaleExtent=function(d){return arguments.length?(a[0]=+d[0],a[1]=+d[1],p):[a[0],a[1]]},p.translateExtent=function(d){return arguments.length?(o[0][0]=+d[0][0],o[1][0]=+d[1][0],o[0][1]=+d[0][1],o[1][1]=+d[1][1],p):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},p.constrain=function(d){return arguments.length?(n=d,p):n},p.duration=function(d){return arguments.length?(c=+d,p):c},p.interpolate=function(d){return arguments.length?(s=d,p):s},p.on=function(){var d=l.on.apply(l,arguments);return d===l?p:d},p.clickDistance=function(d){return arguments.length?(x=(d=+d)*d,p):Math.sqrt(x)},p.tapDistance=function(d){return arguments.length?(y=+d,p):y},p}const nt=72,ln=240,un=74,Jo=40/74,wt=16,fn=6,hn="tf-chain-icon",dn=50,jo=80,ta=20,ea=20,ee=.9,na=16,ra=32,ia=3,gn=800,pn=[0,0,1e3,800],fe=40;class mn{constructor(e,n,r,i,a){this.type=e,this._gvid=n,this.name=r,this._draw_=i,this._ldraw_=a}}class yn extends mn{constructor({_gvid:e,name:n,_draw_:r,_ldraw_:i,bb:a,pos:o,width:c,height:s,label:l}){super("node",e,n,r,i),this.virtualNode=!1,this.bb=a,this.pos=o,this.width=c,this.height=s,this.label=l}getPosition(){if(!this.pos)return null;const[e,n]=this.pos.split(",").map(Number);return[e,n]}getWidthPoints(){return parseFloat(this.width||"1")*nt}getHeightPoints(){return parseFloat(this.height||"0.5")*nt}getBounds(){const e=this.getPosition();if(!e)return null;const[n,r]=e,i=this.getWidthPoints(),a=this.getHeightPoints();return{x:n-i/2,y:r-a/2,width:i,height:a}}leftIn(){const e=this.getBounds();return e?{x:e.x,y:Math.trunc(e.y+e.height/4)}:null}leftOut(){const e=this.getBounds();return e?{x:e.x,y:Math.trunc(e.y+e.height/4*3)}:null}rightOut(){const e=this.getBounds();return e?{x:e.x+e.width,y:Math.trunc(e.y+e.height/4)}:null}rightIn(){const e=this.getBounds();return e?{x:e.x+e.width,y:Math.trunc(e.y+e.height/4*3)}:null}}class oa extends mn{constructor({_gvid:e,name:n,_draw_:r,_ldraw_:i,_hdraw_:a,_tdraw_:o,head:c,tail:s,label:l}){if(super("edge",e,n,r,i),this.isBaseEdge=!1,this.depth=0,this.baseOffset=0,this.midY=0,this._hdraw_=a,this._tdraw_=o,this.head=c,this.tail=s,this.label=l,l)try{this.edgeContent=pt(l),this.edgeIndex=this.edgeContent.index,this.edgeColor=this.edgeContent.color}catch(u){/^\s*</.test(l)||console.warn(`Failed to decode edge label for ${n}:`,u)}}setNodes(e,n){this.sourceNode=e,this.targetNode=n}getDirection(){if(!this.sourceNode||!this.targetNode)return null;const e=this.sourceNode.getPosition(),n=this.targetNode.getPosition();return!e||!n?null:this.sourceNode._gvid===this.targetNode._gvid?"self":e[0]<n[0]?"right":"left"}getStartPoint(){if(!this.sourceNode)return null;const e=this.getDirection();if(!e)return null;switch(e){case"right":return this.sourceNode.rightOut();case"left":return this.sourceNode.leftOut();case"self":return this.sourceNode.leftOut()}}getEndPoint(){if(!this.targetNode)return null;const e=this.getDirection();if(!e)return null;switch(e){case"right":return this.targetNode.leftIn();case"left":return this.targetNode.rightIn();case"self":return this.targetNode.rightIn()}}getLabelText(){var e;if((e=this.edgeContent)!=null&&e.elems&&this.edgeContent.elems.length>0)return this.edgeContent.elems.map(n=>n.text).join(" ");if(this.label)return this.label.replace(/<[^>]*>/g," ").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim()||null;if(this._ldraw_){const n=[];if(this._ldraw_.forEach(r=>{r.op==="T"&&r.text&&n.push(r.text)}),n.length>0)return n.join(" ")}return null}getColor(){const e="#9AA4B2";if(this.edgeColor)return this.edgeColor;if(this._draw_){for(const n of this._draw_)if(n.op==="c"&&n.color)return n.color}if(this._hdraw_){for(const n of this._hdraw_)if(n.op==="c"&&n.color)return n.color}return e}}class xn{constructor(e,n=0){this.index=e,this.aboveY=n,this.belowY=n}allocateAbove(e){return this.aboveY-=e,this.aboveY}allocateBelow(e){const n=this.belowY;return this.belowY+=e,n}getRange(){return{above:this.aboveY,below:this.belowY}}}class aa extends xn{constructor(e,n=0){super(e,n),this.nodes=[]}addNode(e,n=!0){if(this.nodes.push(e),!n)return;const r=e.getPosition();if(r){const i=e.height?parseFloat(e.height)*nt:fe,a=r[1]-i/2,o=r[1]+i/2;this.aboveY=Math.min(this.aboveY,a),this.belowY=Math.max(this.belowY,o)}}}class sa extends xn{constructor(e,n,r=0){super(Math.min(e,n),r),this.edges=[],this.baseEdgeIndex=-1,this.sourceColIndex=e,this.targetColIndex=n}addEdge(e){this.edges.push(e)}setBaseEdge(e,n){this.baseEdge=e,this.baseEdgeIndex=n??this.edges.indexOf(e)}getKey(){const e=Math.min(this.sourceColIndex,this.targetColIndex),n=Math.max(this.sourceColIndex,this.targetColIndex);return`${e}-${n}`}}const ca=.6,la=/mono|fira|consolas|courier|menlo|roboto mono|ui-monospace/i,Ce={i:.27,l:.27,j:.27,I:.29,".":.28,",":.28,":":.28,";":.28,"'":.2,"|":.26,"!":.3,f:.32,t:.34,r:.38,"(":.34,")":.34,"[":.34,"]":.34," ":.28},Me={m:.85,w:.74,M:.83,W:.86,"@":.92};function ua(t){if(t in Ce)return Ce[t];if(t in Me)return Me[t];const e=t.charCodeAt(0);return e>=48&&e<=57?.57:e>=65&&e<=90?.66:e>=97&&e<=122?.53:e>=33&&e<=126?.5:e>11904?1:.55}function fa(t){return!!t&&la.test(t)}function ha(t,e,n){if(!t)return 0;if(fa(e))return t.length*n*ca;let r=0;for(const i of t)r+=ua(i);return r*n}function ne(t,e,n){const r=t.attr("font-family")||void 0,i=parseFloat(t.attr("font-size")||"12")||12,a=l=>ha(l,r,i);if(t.text(n),a(n)<=e)return;const o="...";let c=0,s=n.length;for(;c<s;){const l=Math.floor((c+s+1)/2);a(n.slice(0,l)+o)<=e?c=l:s=l-1}c>0?t.text(n.slice(0,c)+o):t.text(o)}function da(t){if(!t)return[];const e=[],n=/<TD[^>]*>(.*?)<\/TD>/gi;let r;for(;(r=n.exec(t))!==null;){let i=r[1];i=i.replace(/<[^>]+>/g,"").trim(),i&&e.push(i)}if(e.length===0){const i=t.replace(/<[^>]+>/g,"").trim();i&&e.push(i)}return e}function ga(t){var a;if(!t||!/<TABLE/i.test(t))return null;const e=/<B>([\s\S]*?)<\/B>/i.exec(t),n=e?e[1].replace(/<[^>]+>/g,"").trim():"",r=t.replace(/<[^>]+>/g," "),i=((a=/0x[0-9a-fA-F]{8,}/.exec(r))==null?void 0:a[0])??"";return!n&&!i?null:{tags:[],label:n,text:i}}function _n(t,e){const n=/^\[(\d+)\]$/.exec(t);return n?`[${n[1]}/${e}]`:t}function pa(t,e){return!t||t.length===0?t:t.map((n,r)=>r===0?{...n,text:_n(n.text,e)}:n)}function wn(t,e,n){var l;const r=pa((l=t.edgeContent)==null?void 0:l.elems,n);let i="";r&&r.length>0&&(i=r.map(u=>u.text).join(" ")),i||(i=da(t.label??"").map((f,h)=>h===0?_n(f,n):f).map(f=>f.length>20?f.slice(0,20)+"...":f).join(" "));const a=i.length>60?i.slice(0,60)+"...":i,o=e.labelFontSize,c=o*.6,s=e.labelPadding;return{displayElems:r,finalText:a,boxWidth:a.length*c+s*2,boxHeight:o+s*2}}const he={horizontalExtension:50,minEdgeDistance:50,minVerticalSegment:20,loopRadius:40,edgeSpacing:80,cornerRadius:4,arrowWidth:10,arrowHeight:6,labelHeight:15,labelFontSize:12,labelPadding:6,labelCornerRadius:4,nodeSpacing:50,nearlyHorizontalThreshold:5,nearlyAlignedThreshold:30};function vn(t){return{...he,...t}}function ma(t){if(t.length<2)return t;const e=[t[0]];for(let n=1;n<t.length;n++){const r=e[e.length-1];(Math.abs(t[n].x-r.x)>.1||Math.abs(t[n].y-r.y)>.1)&&e.push(t[n])}return e}function De(t,e,n){const{start:r,pathEnd:i,isNearlyHorizontal:a,startExtensionX:o,endExtensionX:c}=n,s=n.minVerticalSegment,l=Math.abs(r.y-e),u=Math.abs(e-i.y);let f=[],h=e;switch(t){case"straight":if(a){const m=(r.y+i.y)/2;Math.abs(e-m)<s?(f=[r,i],h=m):(f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e)}else return null;break;case"2seg":l<u?Math.abs(e-r.y)<s?(f=[r,{x:i.x,y:r.y},i],h=r.y):(f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e):Math.abs(e-i.y)<s?(f=[r,{x:o,y:r.y},{x:o,y:i.y},i],h=i.y):(f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e);break;case"3seg":{const m=e;f=[r,{x:o,y:r.y},{x:o,y:m},{x:c,y:m},{x:c,y:i.y},i],h=m;break}case"4seg":f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},i],h=e;break;case"5seg":if(l<s)f=[r,{x:o,y:r.y},{x:c,y:e},{x:c,y:i.y},i],h=e;else if(u<s)f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},i],h=e;else return null;break;case"6seg":f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e;break}const g=ma(f);return g.length>0?{points:g,actualMidY:h}:null}function Mt(t,e,n,r=he){const i=t.getStartPoint(),a=t.getEndPoint(),o=t.getDirection();if(!i||!a||!o||o==="self")return;const c={x:i.x,y:e-i.y},s={x:a.x,y:e-a.y};let l={x:s.x,y:s.y};o==="right"?l={x:s.x-r.arrowWidth,y:s.y}:o==="left"&&(l={x:s.x+r.arrowWidth,y:s.y});const u=r.minEdgeDistance,f=t.baseDirection===void 0;let g=(c.y+l.y)/2;if(!f&&n&&n.midY!==void 0){if(t.baseDirection==="above"){const w=n.midY-u;g>w&&(g=w)}else if(t.baseDirection==="below"){const w=n.midY+u;g<w&&(g=w)}}const m=r.horizontalExtension-r.arrowWidth,x={start:c,pathEnd:l,isNearlyHorizontal:Math.abs(c.y-l.y)<5,startExtensionX:o==="right"?c.x+r.horizontalExtension:c.x-r.horizontalExtension,endExtensionX:o==="right"?l.x-m:l.x+m,minVerticalSegment:r.minVerticalSegment};let y;f?y=x.isNearlyHorizontal?["straight","3seg"]:["3seg"]:y=x.isNearlyHorizontal?["straight","3seg","4seg","5seg","6seg"]:["3seg","4seg","5seg","6seg"];for(const w of y){const E=De(w,g,x);if(E)return{midY:E.actualMidY,points:E.points}}const p=De("6seg",g,x);return p?{midY:p.actualMidY,points:p.points}:void 0}function Pe(t,e){if(t.length<2)return"";if(e===0||t.length===2)return`M${t[0].x},${t[0].y} ${t.slice(1).map(i=>`L${i.x},${i.y}`).join(" ")}`;const n=[];n.push(`M${t[0].x},${t[0].y}`);for(let i=1;i<t.length-1;i++){const a=t[i-1],o=t[i],c=t[i+1],s=Math.sqrt((o.x-a.x)**2+(o.y-a.y)**2),l=Math.sqrt((c.x-o.x)**2+(c.y-o.y)**2),u=Math.min(s,l)/2,f=Math.min(e,u);if(f>0){const h=f/s,g=f/l,m={x:o.x-(o.x-a.x)*h,y:o.y-(o.y-a.y)*h},x={x:o.x+(c.x-o.x)*g,y:o.y+(c.y-o.y)*g};n.push(`L${m.x},${m.y}`),n.push(`Q${o.x},${o.y} ${x.x},${x.y}`)}else n.push(`L${o.x},${o.y}`)}const r=t[t.length-1];return n.push(`L${r.x},${r.y}`),n.join(" ")}function re(t,e,n,r,i){const a=i.topLeft||0,o=i.topRight||0,c=i.bottomRight||0,s=i.bottomLeft||0;return`
1
+ "use strict";function En(t){return JSON.stringify(JSON.stringify(t)).slice(1,-1)}function pt(t){try{return JSON.parse(t)}catch{const e=JSON.parse(`"${t}"`);return JSON.parse(e)}}var Nn={value:()=>{}};function ie(){for(var t=0,e=arguments.length,n={},r;t<e;++t){if(!(r=arguments[t]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new At(n)}function At(t){this._=t}function $n(t,e){return t.trim().split(/^|\s+/).map(function(n){var r="",i=n.indexOf(".");if(i>=0&&(r=n.slice(i+1),n=n.slice(0,i)),n&&!e.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}At.prototype=ie.prototype={constructor:At,on:function(t,e){var n=this._,r=$n(t+"",n),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(t=r[a]).type)&&(i=Sn(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++a<o;)if(i=(t=r[a]).type)n[i]=de(n[i],t.name,e);else if(e==null)for(i in n)n[i]=de(n[i],t.name,null);return this},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new At(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,a;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],r=0,i=a.length;r<i;++r)a[r].value.apply(e,n)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(e,n)}};function Sn(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function de(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=Nn,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var Xt="http://www.w3.org/1999/xhtml";const ge={svg:"http://www.w3.org/2000/svg",xhtml:Xt,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ot(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),ge.hasOwnProperty(e)?{space:ge[e],local:t}:t}function kn(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===Xt&&e.documentElement.namespaceURI===Xt?e.createElement(t):e.createElementNS(n,t)}}function An(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Ye(t){var e=Ot(t);return(e.local?An:kn)(e)}function Tn(){}function oe(t){return t==null?Tn:function(){return this.querySelector(t)}}function In(t){typeof t!="function"&&(t=oe(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a=e[i],o=a.length,c=r[i]=new Array(o),s,l,u=0;u<o;++u)(s=a[u])&&(l=t.call(s,s.__data__,u,a))&&("__data__"in s&&(l.__data__=s.__data__),c[u]=l);return new G(r,this._parents)}function Cn(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Mn(){return[]}function ze(t){return t==null?Mn:function(){return this.querySelectorAll(t)}}function Dn(t){return function(){return Cn(t.apply(this,arguments))}}function Pn(t){typeof t=="function"?t=Dn(t):t=ze(t);for(var e=this._groups,n=e.length,r=[],i=[],a=0;a<n;++a)for(var o=e[a],c=o.length,s,l=0;l<c;++l)(s=o[l])&&(r.push(t.call(s,s.__data__,l,o)),i.push(s));return new G(r,i)}function Le(t){return function(){return this.matches(t)}}function Re(t){return function(e){return e.matches(t)}}var Yn=Array.prototype.find;function zn(t){return function(){return Yn.call(this.children,t)}}function Ln(){return this.firstElementChild}function Rn(t){return this.select(t==null?Ln:zn(typeof t=="function"?t:Re(t)))}var On=Array.prototype.filter;function Bn(){return Array.from(this.children)}function Hn(t){return function(){return On.call(this.children,t)}}function Fn(t){return this.selectAll(t==null?Bn:Hn(typeof t=="function"?t:Re(t)))}function Wn(t){typeof t!="function"&&(t=Le(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a=e[i],o=a.length,c=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&c.push(s);return new G(r,this._parents)}function Oe(t){return new Array(t.length)}function Gn(){return new G(this._enter||this._groups.map(Oe),this._parents)}function Dt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}Dt.prototype={constructor:Dt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Vn(t){return function(){return t}}function Xn(t,e,n,r,i,a){for(var o=0,c,s=e.length,l=a.length;o<l;++o)(c=e[o])?(c.__data__=a[o],r[o]=c):n[o]=new Dt(t,a[o]);for(;o<s;++o)(c=e[o])&&(i[o]=c)}function qn(t,e,n,r,i,a,o){var c,s,l=new Map,u=e.length,f=a.length,h=new Array(u),g;for(c=0;c<u;++c)(s=e[c])&&(h[c]=g=o.call(s,s.__data__,c,e)+"",l.has(g)?i[c]=s:l.set(g,s));for(c=0;c<f;++c)g=o.call(t,a[c],c,a)+"",(s=l.get(g))?(r[c]=s,s.__data__=a[c],l.delete(g)):n[c]=new Dt(t,a[c]);for(c=0;c<u;++c)(s=e[c])&&l.get(h[c])===s&&(i[c]=s)}function Un(t){return t.__data__}function Zn(t,e){if(!arguments.length)return Array.from(this,Un);var n=e?qn:Xn,r=this._parents,i=this._groups;typeof t!="function"&&(t=Vn(t));for(var a=i.length,o=new Array(a),c=new Array(a),s=new Array(a),l=0;l<a;++l){var u=r[l],f=i[l],h=f.length,g=Kn(t.call(u,u&&u.__data__,l,r)),m=g.length,x=c[l]=new Array(m),y=o[l]=new Array(m),p=s[l]=new Array(h);n(u,f,x,y,p,g,e);for(var w=0,E=0,k,$;w<m;++w)if(k=x[w]){for(w>=E&&(E=w+1);!($=y[E])&&++E<m;);k._next=$||null}}return o=new G(o,r),o._enter=c,o._exit=s,o}function Kn(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Qn(){return new G(this._exit||this._groups.map(Oe),this._parents)}function Jn(t,e,n){var r=this.enter(),i=this,a=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),e!=null&&(i=e(i),i&&(i=i.selection())),n==null?a.remove():n(a),r&&i?r.merge(i).order():i}function jn(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,a=r.length,o=Math.min(i,a),c=new Array(i),s=0;s<o;++s)for(var l=n[s],u=r[s],f=l.length,h=c[s]=new Array(f),g,m=0;m<f;++m)(g=l[m]||u[m])&&(h[m]=g);for(;s<i;++s)c[s]=n[s];return new G(c,this._parents)}function tr(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function er(t){t||(t=nr);function e(f,h){return f&&h?t(f.__data__,h.__data__):!f-!h}for(var n=this._groups,r=n.length,i=new Array(r),a=0;a<r;++a){for(var o=n[a],c=o.length,s=i[a]=new Array(c),l,u=0;u<c;++u)(l=o[u])&&(s[u]=l);s.sort(e)}return new G(i,this._parents).order()}function nr(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function rr(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function ir(){return Array.from(this)}function or(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function ar(){let t=0;for(const e of this)++t;return t}function sr(){return!this.node()}function cr(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],a=0,o=i.length,c;a<o;++a)(c=i[a])&&t.call(c,c.__data__,a,i);return this}function lr(t){return function(){this.removeAttribute(t)}}function ur(t){return function(){this.removeAttributeNS(t.space,t.local)}}function fr(t,e){return function(){this.setAttribute(t,e)}}function hr(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function dr(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function gr(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function pr(t,e){var n=Ot(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((e==null?n.local?ur:lr:typeof e=="function"?n.local?gr:dr:n.local?hr:fr)(n,e))}function Be(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function mr(t){return function(){this.style.removeProperty(t)}}function yr(t,e,n){return function(){this.style.setProperty(t,e,n)}}function xr(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function _r(t,e,n){return arguments.length>1?this.each((e==null?mr:typeof e=="function"?xr:yr)(t,e,n??"")):lt(this.node(),t)}function lt(t,e){return t.style.getPropertyValue(e)||Be(t).getComputedStyle(t,null).getPropertyValue(e)}function wr(t){return function(){delete this[t]}}function vr(t,e){return function(){this[t]=e}}function br(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Er(t,e){return arguments.length>1?this.each((e==null?wr:typeof e=="function"?br:vr)(t,e)):this.node()[t]}function He(t){return t.trim().split(/^|\s+/)}function ae(t){return t.classList||new Fe(t)}function Fe(t){this._node=t,this._names=He(t.getAttribute("class")||"")}Fe.prototype={add:function(t){var e=this._names.indexOf(t);e<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function We(t,e){for(var n=ae(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function Ge(t,e){for(var n=ae(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Nr(t){return function(){We(this,t)}}function $r(t){return function(){Ge(this,t)}}function Sr(t,e){return function(){(e.apply(this,arguments)?We:Ge)(this,t)}}function kr(t,e){var n=He(t+"");if(arguments.length<2){for(var r=ae(this.node()),i=-1,a=n.length;++i<a;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?Sr:e?Nr:$r)(n,e))}function Ar(){this.textContent=""}function Tr(t){return function(){this.textContent=t}}function Ir(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Cr(t){return arguments.length?this.each(t==null?Ar:(typeof t=="function"?Ir:Tr)(t)):this.node().textContent}function Mr(){this.innerHTML=""}function Dr(t){return function(){this.innerHTML=t}}function Pr(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Yr(t){return arguments.length?this.each(t==null?Mr:(typeof t=="function"?Pr:Dr)(t)):this.node().innerHTML}function zr(){this.nextSibling&&this.parentNode.appendChild(this)}function Lr(){return this.each(zr)}function Rr(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Or(){return this.each(Rr)}function Br(t){var e=typeof t=="function"?t:Ye(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Hr(){return null}function Fr(t,e){var n=typeof t=="function"?t:Ye(t),r=e==null?Hr:typeof e=="function"?e:oe(e);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Wr(){var t=this.parentNode;t&&t.removeChild(this)}function Gr(){return this.each(Wr)}function Vr(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Xr(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function qr(t){return this.select(t?Xr:Vr)}function Ur(t){return arguments.length?this.property("__data__",t):this.node().__data__}function Zr(t){return function(e){t.call(this,e,this.__data__)}}function Kr(t){return t.trim().split(/^|\s+/).map(function(e){var n="",r=e.indexOf(".");return r>=0&&(n=e.slice(r+1),e=e.slice(0,r)),{type:e,name:n}})}function Qr(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,a;n<i;++n)a=e[n],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):e[++r]=a;++r?e.length=r:delete this.__on}}}function Jr(t,e,n){return function(){var r=this.__on,i,a=Zr(e);if(r){for(var o=0,c=r.length;o<c;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=n),i.value=e;return}}this.addEventListener(t.type,a,n),i={type:t.type,name:t.name,value:e,listener:a,options:n},r?r.push(i):this.__on=[i]}}function jr(t,e,n){var r=Kr(t+""),i,a=r.length,o;if(arguments.length<2){var c=this.node().__on;if(c){for(var s=0,l=c.length,u;s<l;++s)for(i=0,u=c[s];i<a;++i)if((o=r[i]).type===u.type&&o.name===u.name)return u.value}return}for(c=e?Jr:Qr,i=0;i<a;++i)this.each(c(r[i],e,n));return this}function Ve(t,e,n){var r=Be(t),i=r.CustomEvent;typeof i=="function"?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function ti(t,e){return function(){return Ve(this,t,e)}}function ei(t,e){return function(){return Ve(this,t,e.apply(this,arguments))}}function ni(t,e){return this.each((typeof e=="function"?ei:ti)(t,e))}function*ri(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var Xe=[null];function G(t,e){this._groups=t,this._parents=e}function vt(){return new G([[document.documentElement]],Xe)}function ii(){return this}G.prototype=vt.prototype={constructor:G,select:In,selectAll:Pn,selectChild:Rn,selectChildren:Fn,filter:Wn,data:Zn,enter:Gn,exit:Qn,join:Jn,merge:jn,selection:ii,order:tr,sort:er,call:rr,nodes:ir,node:or,size:ar,empty:sr,each:cr,attr:pr,style:_r,property:Er,classed:kr,text:Cr,html:Yr,raise:Lr,lower:Or,append:Br,insert:Fr,remove:Gr,clone:qr,datum:Ur,on:jr,dispatch:ni,[Symbol.iterator]:ri};function Y(t){return typeof t=="string"?new G([[document.querySelector(t)]],[document.documentElement]):new G([[t]],Xe)}function oi(t){let e;for(;e=t.sourceEvent;)t=e;return t}function rt(t,e){if(t=oi(t),e===void 0&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}const qt={capture:!0,passive:!1};function Ut(t){t.preventDefault(),t.stopImmediatePropagation()}function ai(t){var e=t.document.documentElement,n=Y(t).on("dragstart.drag",Ut,qt);"onselectstart"in e?n.on("selectstart.drag",Ut,qt):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function si(t,e){var n=t.document.documentElement,r=Y(t).on("dragstart.drag",null);e&&(r.on("click.drag",Ut,qt),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}function se(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function qe(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function bt(){}var mt=.7,Pt=1/mt,ct="\\s*([+-]?\\d+)\\s*",yt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Z="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ci=/^#([0-9a-f]{3,8})$/,li=new RegExp(`^rgb\\(${ct},${ct},${ct}\\)$`),ui=new RegExp(`^rgb\\(${Z},${Z},${Z}\\)$`),fi=new RegExp(`^rgba\\(${ct},${ct},${ct},${yt}\\)$`),hi=new RegExp(`^rgba\\(${Z},${Z},${Z},${yt}\\)$`),di=new RegExp(`^hsl\\(${yt},${Z},${Z}\\)$`),gi=new RegExp(`^hsla\\(${yt},${Z},${Z},${yt}\\)$`),pe={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};se(bt,xt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:me,formatHex:me,formatHex8:pi,formatHsl:mi,formatRgb:ye,toString:ye});function me(){return this.rgb().formatHex()}function pi(){return this.rgb().formatHex8()}function mi(){return Ue(this).formatHsl()}function ye(){return this.rgb().formatRgb()}function xt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=ci.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?xe(e):n===3?new F(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Nt(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Nt(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=li.exec(t))?new F(e[1],e[2],e[3],1):(e=ui.exec(t))?new F(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=fi.exec(t))?Nt(e[1],e[2],e[3],e[4]):(e=hi.exec(t))?Nt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=di.exec(t))?ve(e[1],e[2]/100,e[3]/100,1):(e=gi.exec(t))?ve(e[1],e[2]/100,e[3]/100,e[4]):pe.hasOwnProperty(t)?xe(pe[t]):t==="transparent"?new F(NaN,NaN,NaN,0):null}function xe(t){return new F(t>>16&255,t>>8&255,t&255,1)}function Nt(t,e,n,r){return r<=0&&(t=e=n=NaN),new F(t,e,n,r)}function yi(t){return t instanceof bt||(t=xt(t)),t?(t=t.rgb(),new F(t.r,t.g,t.b,t.opacity)):new F}function Zt(t,e,n,r){return arguments.length===1?yi(t):new F(t,e,n,r??1)}function F(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}se(F,Zt,qe(bt,{brighter(t){return t=t==null?Pt:Math.pow(Pt,t),new F(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?mt:Math.pow(mt,t),new F(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new F(at(this.r),at(this.g),at(this.b),Yt(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:_e,formatHex:_e,formatHex8:xi,formatRgb:we,toString:we}));function _e(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}`}function xi(){return`#${ot(this.r)}${ot(this.g)}${ot(this.b)}${ot((isNaN(this.opacity)?1:this.opacity)*255)}`}function we(){const t=Yt(this.opacity);return`${t===1?"rgb(":"rgba("}${at(this.r)}, ${at(this.g)}, ${at(this.b)}${t===1?")":`, ${t})`}`}function Yt(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function at(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function ot(t){return t=at(t),(t<16?"0":"")+t.toString(16)}function ve(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new q(t,e,n,r)}function Ue(t){if(t instanceof q)return new q(t.h,t.s,t.l,t.opacity);if(t instanceof bt||(t=xt(t)),!t)return new q;if(t instanceof q)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),a=Math.max(e,n,r),o=NaN,c=a-i,s=(a+i)/2;return c?(e===a?o=(n-r)/c+(n<r)*6:n===a?o=(r-e)/c+2:o=(e-n)/c+4,c/=s<.5?a+i:2-a-i,o*=60):c=s>0&&s<1?0:o,new q(o,c,s,t.opacity)}function _i(t,e,n,r){return arguments.length===1?Ue(t):new q(t,e,n,r??1)}function q(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}se(q,_i,qe(bt,{brighter(t){return t=t==null?Pt:Math.pow(Pt,t),new q(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?mt:Math.pow(mt,t),new q(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new F(Wt(t>=240?t-240:t+120,i,r),Wt(t,i,r),Wt(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new q(be(this.h),$t(this.s),$t(this.l),Yt(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=Yt(this.opacity);return`${t===1?"hsl(":"hsla("}${be(this.h)}, ${$t(this.s)*100}%, ${$t(this.l)*100}%${t===1?")":`, ${t})`}`}}));function be(t){return t=(t||0)%360,t<0?t+360:t}function $t(t){return Math.max(0,Math.min(1,t||0))}function Wt(t,e,n){return(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)*255}const Ze=t=>()=>t;function wi(t,e){return function(n){return t+n*e}}function vi(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}function bi(t){return(t=+t)==1?Ke:function(e,n){return n-e?vi(e,n,t):Ze(isNaN(e)?n:e)}}function Ke(t,e){var n=e-t;return n?wi(t,n):Ze(isNaN(t)?e:t)}const Ee=(function t(e){var n=bi(e);function r(i,a){var o=n((i=Zt(i)).r,(a=Zt(a)).r),c=n(i.g,a.g),s=n(i.b,a.b),l=Ke(i.opacity,a.opacity);return function(u){return i.r=o(u),i.g=c(u),i.b=s(u),i.opacity=l(u),i+""}}return r.gamma=t,r})(1);function et(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var Kt=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Gt=new RegExp(Kt.source,"g");function Ei(t){return function(){return t}}function Ni(t){return function(e){return t(e)+""}}function $i(t,e){var n=Kt.lastIndex=Gt.lastIndex=0,r,i,a,o=-1,c=[],s=[];for(t=t+"",e=e+"";(r=Kt.exec(t))&&(i=Gt.exec(e));)(a=i.index)>n&&(a=e.slice(n,a),c[o]?c[o]+=a:c[++o]=a),(r=r[0])===(i=i[0])?c[o]?c[o]+=i:c[++o]=i:(c[++o]=null,s.push({i:o,x:et(r,i)})),n=Gt.lastIndex;return n<e.length&&(a=e.slice(n),c[o]?c[o]+=a:c[++o]=a),c.length<2?s[0]?Ni(s[0].x):Ei(e):(e=s.length,function(l){for(var u=0,f;u<e;++u)c[(f=s[u]).i]=f.x(l);return c.join("")})}var Ne=180/Math.PI,Qt={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Qe(t,e,n,r,i,a){var o,c,s;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(s=t*n+e*r)&&(n-=t*s,r-=e*s),(c=Math.sqrt(n*n+r*r))&&(n/=c,r/=c,s/=c),t*r<e*n&&(t=-t,e=-e,s=-s,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(e,t)*Ne,skewX:Math.atan(s)*Ne,scaleX:o,scaleY:c}}var St;function Si(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Qt:Qe(e.a,e.b,e.c,e.d,e.e,e.f)}function ki(t){return t==null||(St||(St=document.createElementNS("http://www.w3.org/2000/svg","g")),St.setAttribute("transform",t),!(t=St.transform.baseVal.consolidate()))?Qt:(t=t.matrix,Qe(t.a,t.b,t.c,t.d,t.e,t.f))}function Je(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function a(l,u,f,h,g,m){if(l!==f||u!==h){var x=g.push("translate(",null,e,null,n);m.push({i:x-4,x:et(l,f)},{i:x-2,x:et(u,h)})}else(f||h)&&g.push("translate("+f+e+h+n)}function o(l,u,f,h){l!==u?(l-u>180?u+=360:u-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:et(l,u)})):u&&f.push(i(f)+"rotate("+u+r)}function c(l,u,f,h){l!==u?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:et(l,u)}):u&&f.push(i(f)+"skewX("+u+r)}function s(l,u,f,h,g,m){if(l!==f||u!==h){var x=g.push(i(g)+"scale(",null,",",null,")");m.push({i:x-4,x:et(l,f)},{i:x-2,x:et(u,h)})}else(f!==1||h!==1)&&g.push(i(g)+"scale("+f+","+h+")")}return function(l,u){var f=[],h=[];return l=t(l),u=t(u),a(l.translateX,l.translateY,u.translateX,u.translateY,f,h),o(l.rotate,u.rotate,f,h),c(l.skewX,u.skewX,f,h),s(l.scaleX,l.scaleY,u.scaleX,u.scaleY,f,h),l=u=null,function(g){for(var m=-1,x=h.length,y;++m<x;)f[(y=h[m]).i]=y.x(g);return f.join("")}}}var Ai=Je(Si,"px, ","px)","deg)"),Ti=Je(ki,", ",")",")"),Ii=1e-12;function $e(t){return((t=Math.exp(t))+1/t)/2}function Ci(t){return((t=Math.exp(t))-1/t)/2}function Mi(t){return((t=Math.exp(2*t))-1)/(t+1)}const Di=(function t(e,n,r){function i(a,o){var c=a[0],s=a[1],l=a[2],u=o[0],f=o[1],h=o[2],g=u-c,m=f-s,x=g*g+m*m,y,p;if(x<Ii)p=Math.log(h/l)/e,y=function(S){return[c+S*g,s+S*m,l*Math.exp(e*S*p)]};else{var w=Math.sqrt(x),E=(h*h-l*l+r*x)/(2*l*n*w),k=(h*h-l*l-r*x)/(2*h*n*w),$=Math.log(Math.sqrt(E*E+1)-E),v=Math.log(Math.sqrt(k*k+1)-k);p=(v-$)/e,y=function(S){var D=S*p,P=$e($),C=l/(n*w)*(P*Mi(e*D+$)-Ci($));return[c+C*g,s+C*m,l*P/$e(e*D+$)]}}return y.duration=p*1e3*e/Math.SQRT2,y}return i.rho=function(a){var o=Math.max(.001,+a),c=o*o,s=c*c;return t(o,c,s)},i})(Math.SQRT2,2,4);var ut=0,dt=0,ft=0,je=1e3,zt,gt,Lt=0,st=0,Bt=0,_t=typeof performance=="object"&&performance.now?performance:Date,tn=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ce(){return st||(tn(Pi),st=_t.now()+Bt)}function Pi(){st=0}function Rt(){this._call=this._time=this._next=null}Rt.prototype=en.prototype={constructor:Rt,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?ce():+n)+(e==null?0:+e),!this._next&&gt!==this&&(gt?gt._next=this:zt=this,gt=this),this._call=t,this._time=n,Jt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Jt())}};function en(t,e,n){var r=new Rt;return r.restart(t,e,n),r}function Yi(){ce(),++ut;for(var t=zt,e;t;)(e=st-t._time)>=0&&t._call.call(void 0,e),t=t._next;--ut}function Se(){st=(Lt=_t.now())+Bt,ut=dt=0;try{Yi()}finally{ut=0,Li(),st=0}}function zi(){var t=_t.now(),e=t-Lt;e>je&&(Bt-=e,Lt=t)}function Li(){for(var t,e=zt,n,r=1/0;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:zt=n);gt=t,Jt(r)}function Jt(t){if(!ut){dt&&(dt=clearTimeout(dt));var e=t-st;e>24?(t<1/0&&(dt=setTimeout(Se,t-_t.now()-Bt)),ft&&(ft=clearInterval(ft))):(ft||(Lt=_t.now(),ft=setInterval(zi,je)),ut=1,tn(Se))}}function ke(t,e,n){var r=new Rt;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}var Ri=ie("start","end","cancel","interrupt"),Oi=[],nn=0,Ae=1,jt=2,Tt=3,Te=4,te=5,It=6;function Ht(t,e,n,r,i,a){var o=t.__transition;if(!o)t.__transition={};else if(n in o)return;Bi(t,n,{name:e,index:r,group:i,on:Ri,tween:Oi,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:nn})}function le(t,e){var n=U(t,e);if(n.state>nn)throw new Error("too late; already scheduled");return n}function K(t,e){var n=U(t,e);if(n.state>Tt)throw new Error("too late; already running");return n}function U(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Bi(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=en(a,0,n.time);function a(l){n.state=Ae,n.timer.restart(o,n.delay,n.time),n.delay<=l&&o(l-n.delay)}function o(l){var u,f,h,g;if(n.state!==Ae)return s();for(u in r)if(g=r[u],g.name===n.name){if(g.state===Tt)return ke(o);g.state===Te?(g.state=It,g.timer.stop(),g.on.call("interrupt",t,t.__data__,g.index,g.group),delete r[u]):+u<e&&(g.state=It,g.timer.stop(),g.on.call("cancel",t,t.__data__,g.index,g.group),delete r[u])}if(ke(function(){n.state===Tt&&(n.state=Te,n.timer.restart(c,n.delay,n.time),c(l))}),n.state=jt,n.on.call("start",t,t.__data__,n.index,n.group),n.state===jt){for(n.state=Tt,i=new Array(h=n.tween.length),u=0,f=-1;u<h;++u)(g=n.tween[u].value.call(t,t.__data__,n.index,n.group))&&(i[++f]=g);i.length=f+1}}function c(l){for(var u=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(s),n.state=te,1),f=-1,h=i.length;++f<h;)i[f].call(t,u);n.state===te&&(n.on.call("end",t,t.__data__,n.index,n.group),s())}function s(){n.state=It,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function Ct(t,e){var n=t.__transition,r,i,a=!0,o;if(n){e=e==null?null:e+"";for(o in n){if((r=n[o]).name!==e){a=!1;continue}i=r.state>jt&&r.state<te,r.state=It,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[o]}a&&delete t.__transition}}function Hi(t){return this.each(function(){Ct(this,t)})}function Fi(t,e){var n,r;return function(){var i=K(this,t),a=i.tween;if(a!==n){r=n=a;for(var o=0,c=r.length;o<c;++o)if(r[o].name===e){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Wi(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var a=K(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var c={name:e,value:n},s=0,l=i.length;s<l;++s)if(i[s].name===e){i[s]=c;break}s===l&&i.push(c)}a.tween=i}}function Gi(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=U(this.node(),n).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((e==null?Fi:Wi)(n,t,e))}function ue(t,e,n){var r=t._id;return t.each(function(){var i=K(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return U(i,r).value[e]}}function rn(t,e){var n;return(typeof e=="number"?et:e instanceof xt?Ee:(n=xt(e))?(e=n,Ee):$i)(t,e)}function Vi(t){return function(){this.removeAttribute(t)}}function Xi(t){return function(){this.removeAttributeNS(t.space,t.local)}}function qi(t,e,n){var r,i=n+"",a;return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=e(r=o,n)}}function Ui(t,e,n){var r,i=n+"",a;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=e(r=o,n)}}function Zi(t,e,n){var r,i,a;return function(){var o,c=n(this),s;return c==null?void this.removeAttribute(t):(o=this.getAttribute(t),s=c+"",o===s?null:o===r&&s===i?a:(i=s,a=e(r=o,c)))}}function Ki(t,e,n){var r,i,a;return function(){var o,c=n(this),s;return c==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),s=c+"",o===s?null:o===r&&s===i?a:(i=s,a=e(r=o,c)))}}function Qi(t,e){var n=Ot(t),r=n==="transform"?Ti:rn;return this.attrTween(t,typeof e=="function"?(n.local?Ki:Zi)(n,r,ue(this,"attr."+t,e)):e==null?(n.local?Xi:Vi)(n):(n.local?Ui:qi)(n,r,e))}function Ji(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function ji(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function to(t,e){var n,r;function i(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&ji(t,a)),n}return i._value=e,i}function eo(t,e){var n,r;function i(){var a=e.apply(this,arguments);return a!==r&&(n=(r=a)&&Ji(t,a)),n}return i._value=e,i}function no(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;var r=Ot(t);return this.tween(n,(r.local?to:eo)(r,e))}function ro(t,e){return function(){le(this,t).delay=+e.apply(this,arguments)}}function io(t,e){return e=+e,function(){le(this,t).delay=e}}function oo(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?ro:io)(e,t)):U(this.node(),e).delay}function ao(t,e){return function(){K(this,t).duration=+e.apply(this,arguments)}}function so(t,e){return e=+e,function(){K(this,t).duration=e}}function co(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?ao:so)(e,t)):U(this.node(),e).duration}function lo(t,e){if(typeof e!="function")throw new Error;return function(){K(this,t).ease=e}}function uo(t){var e=this._id;return arguments.length?this.each(lo(e,t)):U(this.node(),e).ease}function fo(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;K(this,t).ease=n}}function ho(t){if(typeof t!="function")throw new Error;return this.each(fo(this._id,t))}function go(t){typeof t!="function"&&(t=Le(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a=e[i],o=a.length,c=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&c.push(s);return new tt(r,this._parents,this._name,this._id)}function po(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,a=Math.min(r,i),o=new Array(r),c=0;c<a;++c)for(var s=e[c],l=n[c],u=s.length,f=o[c]=new Array(u),h,g=0;g<u;++g)(h=s[g]||l[g])&&(f[g]=h);for(;c<r;++c)o[c]=e[c];return new tt(o,this._parents,this._name,this._id)}function mo(t){return(t+"").trim().split(/^|\s+/).every(function(e){var n=e.indexOf(".");return n>=0&&(e=e.slice(0,n)),!e||e==="start"})}function yo(t,e,n){var r,i,a=mo(e)?le:K;return function(){var o=a(this,t),c=o.on;c!==r&&(i=(r=c).copy()).on(e,n),o.on=i}}function xo(t,e){var n=this._id;return arguments.length<2?U(this.node(),n).on.on(t):this.each(yo(n,t,e))}function _o(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function wo(){return this.on("end.remove",_o(this._id))}function vo(t){var e=this._name,n=this._id;typeof t!="function"&&(t=oe(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var c=r[o],s=c.length,l=a[o]=new Array(s),u,f,h=0;h<s;++h)(u=c[h])&&(f=t.call(u,u.__data__,h,c))&&("__data__"in u&&(f.__data__=u.__data__),l[h]=f,Ht(l[h],e,n,h,l,U(u,n)));return new tt(a,this._parents,e,n)}function bo(t){var e=this._name,n=this._id;typeof t!="function"&&(t=ze(t));for(var r=this._groups,i=r.length,a=[],o=[],c=0;c<i;++c)for(var s=r[c],l=s.length,u,f=0;f<l;++f)if(u=s[f]){for(var h=t.call(u,u.__data__,f,s),g,m=U(u,n),x=0,y=h.length;x<y;++x)(g=h[x])&&Ht(g,e,n,x,h,m);a.push(h),o.push(u)}return new tt(a,o,e,n)}var Eo=vt.prototype.constructor;function No(){return new Eo(this._groups,this._parents)}function $o(t,e){var n,r,i;return function(){var a=lt(this,t),o=(this.style.removeProperty(t),lt(this,t));return a===o?null:a===n&&o===r?i:i=e(n=a,r=o)}}function on(t){return function(){this.style.removeProperty(t)}}function So(t,e,n){var r,i=n+"",a;return function(){var o=lt(this,t);return o===i?null:o===r?a:a=e(r=o,n)}}function ko(t,e,n){var r,i,a;return function(){var o=lt(this,t),c=n(this),s=c+"";return c==null&&(s=c=(this.style.removeProperty(t),lt(this,t))),o===s?null:o===r&&s===i?a:(i=s,a=e(r=o,c))}}function Ao(t,e){var n,r,i,a="style."+e,o="end."+a,c;return function(){var s=K(this,t),l=s.on,u=s.value[a]==null?c||(c=on(e)):void 0;(l!==n||i!==u)&&(r=(n=l).copy()).on(o,i=u),s.on=r}}function To(t,e,n){var r=(t+="")=="transform"?Ai:rn;return e==null?this.styleTween(t,$o(t,r)).on("end.style."+t,on(t)):typeof e=="function"?this.styleTween(t,ko(t,r,ue(this,"style."+t,e))).each(Ao(this._id,t)):this.styleTween(t,So(t,r,e),n).on("end.style."+t,null)}function Io(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function Co(t,e,n){var r,i;function a(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&Io(t,o,n)),r}return a._value=e,a}function Mo(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(e==null)return this.tween(r,null);if(typeof e!="function")throw new Error;return this.tween(r,Co(t,e,n??""))}function Do(t){return function(){this.textContent=t}}function Po(t){return function(){var e=t(this);this.textContent=e??""}}function Yo(t){return this.tween("text",typeof t=="function"?Po(ue(this,"text",t)):Do(t==null?"":t+""))}function zo(t){return function(e){this.textContent=t.call(this,e)}}function Lo(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&zo(i)),e}return r._value=t,r}function Ro(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(t==null)return this.tween(e,null);if(typeof t!="function")throw new Error;return this.tween(e,Lo(t))}function Oo(){for(var t=this._name,e=this._id,n=an(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],c=o.length,s,l=0;l<c;++l)if(s=o[l]){var u=U(s,e);Ht(s,t,n,l,o,{time:u.time+u.delay+u.duration,delay:0,duration:u.duration,ease:u.ease})}return new tt(r,this._parents,t,n)}function Bo(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(a,o){var c={value:o},s={value:function(){--i===0&&a()}};n.each(function(){var l=K(this,r),u=l.on;u!==t&&(e=(t=u).copy(),e._.cancel.push(c),e._.interrupt.push(c),e._.end.push(s)),l.on=e}),i===0&&a()})}var Ho=0;function tt(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function an(){return++Ho}var J=vt.prototype;tt.prototype={constructor:tt,select:vo,selectAll:bo,selectChild:J.selectChild,selectChildren:J.selectChildren,filter:go,merge:po,selection:No,transition:Oo,call:J.call,nodes:J.nodes,node:J.node,size:J.size,empty:J.empty,each:J.each,on:xo,attr:Qi,attrTween:no,style:To,styleTween:Mo,text:Yo,textTween:Ro,remove:wo,tween:Gi,delay:oo,duration:co,ease:uo,easeVarying:ho,end:Bo,[Symbol.iterator]:J[Symbol.iterator]};function Fo(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Wo={time:null,delay:0,duration:250,ease:Fo};function Go(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}function Vo(t){var e,n;t instanceof tt?(e=t._id,t=t._name):(e=an(),(n=Wo).time=ce(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],c=o.length,s,l=0;l<c;++l)(s=o[l])&&Ht(s,t,e,l,o,n||Go(s,e));return new tt(r,this._parents,t,e)}vt.prototype.interrupt=Hi;vt.prototype.transition=Vo;const kt=t=>()=>t;function Xo(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function j(t,e,n){this.k=t,this.x=e,this.y=n}j.prototype={constructor:j,scale:function(t){return t===1?this:new j(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new j(this.k,this.x+this.k*t,this.y+this.k*e)},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 Et=new j(1,0,0);sn.prototype=j.prototype;function sn(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Et;return t.__zoom}function Vt(t){t.stopImmediatePropagation()}function ht(t){t.preventDefault(),t.stopImmediatePropagation()}function qo(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Uo(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.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 Ie(){return this.__zoom||Et}function Zo(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Ko(){return navigator.maxTouchPoints||"ontouchstart"in this}function Qo(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],a=t.invertY(e[0][1])-n[0][1],o=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function cn(){var t=qo,e=Uo,n=Qo,r=Zo,i=Ko,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],c=250,s=Di,l=ie("start","zoom","end"),u,f,h,g=500,m=150,x=0,y=10;function p(d){d.property("__zoom",Ie).on("wheel.zoom",D,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",C).filter(i).on("touchstart.zoom",R).on("touchmove.zoom",O).on("touchend.zoom touchcancel.zoom",V).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}p.transform=function(d,N,_,b){var A=d.selection?d.selection():d;A.property("__zoom",Ie),d!==A?$(d,N,_,b):A.interrupt().each(function(){v(this,arguments).event(b).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},p.scaleBy=function(d,N,_,b){p.scaleTo(d,function(){var A=this.__zoom.k,T=typeof N=="function"?N.apply(this,arguments):N;return A*T},_,b)},p.scaleTo=function(d,N,_,b){p.transform(d,function(){var A=e.apply(this,arguments),T=this.__zoom,I=_==null?k(A):typeof _=="function"?_.apply(this,arguments):_,z=T.invert(I),L=typeof N=="function"?N.apply(this,arguments):N;return n(E(w(T,L),I,z),A,o)},_,b)},p.translateBy=function(d,N,_,b){p.transform(d,function(){return n(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof _=="function"?_.apply(this,arguments):_),e.apply(this,arguments),o)},null,b)},p.translateTo=function(d,N,_,b,A){p.transform(d,function(){var T=e.apply(this,arguments),I=this.__zoom,z=b==null?k(T):typeof b=="function"?b.apply(this,arguments):b;return n(Et.translate(z[0],z[1]).scale(I.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof _=="function"?-_.apply(this,arguments):-_),T,o)},b,A)};function w(d,N){return N=Math.max(a[0],Math.min(a[1],N)),N===d.k?d:new j(N,d.x,d.y)}function E(d,N,_){var b=N[0]-_[0]*d.k,A=N[1]-_[1]*d.k;return b===d.x&&A===d.y?d:new j(d.k,b,A)}function k(d){return[(+d[0][0]+ +d[1][0])/2,(+d[0][1]+ +d[1][1])/2]}function $(d,N,_,b){d.on("start.zoom",function(){v(this,arguments).event(b).start()}).on("interrupt.zoom end.zoom",function(){v(this,arguments).event(b).end()}).tween("zoom",function(){var A=this,T=arguments,I=v(A,T).event(b),z=e.apply(A,T),L=_==null?k(z):typeof _=="function"?_.apply(A,T):_,W=Math.max(z[1][0]-z[0][0],z[1][1]-z[0][1]),M=A.__zoom,B=typeof N=="function"?N.apply(A,T):N,H=s(M.invert(L).concat(W/M.k),B.invert(L).concat(W/B.k));return function(X){if(X===1)X=B;else{var Q=H(X),Ft=W/Q[2];X=new j(Ft,L[0]-Q[0]*Ft,L[1]-Q[1]*Ft)}I.zoom(null,X)}})}function v(d,N,_){return!_&&d.__zooming||new S(d,N)}function S(d,N){this.that=d,this.args=N,this.active=0,this.sourceEvent=null,this.extent=e.apply(d,N),this.taps=0}S.prototype={event:function(d){return d&&(this.sourceEvent=d),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(d,N){return this.mouse&&d!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&d!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&d!=="touch"&&(this.touch1[1]=N.invert(this.touch1[0])),this.that.__zoom=N,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(d){var N=Y(this.that).datum();l.call(d,this.that,new Xo(d,{sourceEvent:this.sourceEvent,target:p,transform:this.that.__zoom,dispatch:l}),N)}};function D(d,...N){if(!t.apply(this,arguments))return;var _=v(this,N).event(d),b=this.__zoom,A=Math.max(a[0],Math.min(a[1],b.k*Math.pow(2,r.apply(this,arguments)))),T=rt(d);if(_.wheel)(_.mouse[0][0]!==T[0]||_.mouse[0][1]!==T[1])&&(_.mouse[1]=b.invert(_.mouse[0]=T)),clearTimeout(_.wheel);else{if(b.k===A)return;_.mouse=[T,b.invert(T)],Ct(this),_.start()}ht(d),_.wheel=setTimeout(I,m),_.zoom("mouse",n(E(w(b,A),_.mouse[0],_.mouse[1]),_.extent,o));function I(){_.wheel=null,_.end()}}function P(d,...N){if(h||!t.apply(this,arguments))return;var _=d.currentTarget,b=v(this,N,!0).event(d),A=Y(d.view).on("mousemove.zoom",L,!0).on("mouseup.zoom",W,!0),T=rt(d,_),I=d.clientX,z=d.clientY;ai(d.view),Vt(d),b.mouse=[T,this.__zoom.invert(T)],Ct(this),b.start();function L(M){if(ht(M),!b.moved){var B=M.clientX-I,H=M.clientY-z;b.moved=B*B+H*H>x}b.event(M).zoom("mouse",n(E(b.that.__zoom,b.mouse[0]=rt(M,_),b.mouse[1]),b.extent,o))}function W(M){A.on("mousemove.zoom mouseup.zoom",null),si(M.view,b.moved),ht(M),b.event(M).end()}}function C(d,...N){if(t.apply(this,arguments)){var _=this.__zoom,b=rt(d.changedTouches?d.changedTouches[0]:d,this),A=_.invert(b),T=_.k*(d.shiftKey?.5:2),I=n(E(w(_,T),b,A),e.apply(this,N),o);ht(d),c>0?Y(this).transition().duration(c).call($,I,b,d):Y(this).call(p.transform,I,b,d)}}function R(d,...N){if(t.apply(this,arguments)){var _=d.touches,b=_.length,A=v(this,N,d.changedTouches.length===b).event(d),T,I,z,L;for(Vt(d),I=0;I<b;++I)z=_[I],L=rt(z,this),L=[L,this.__zoom.invert(L),z.identifier],A.touch0?!A.touch1&&A.touch0[2]!==L[2]&&(A.touch1=L,A.taps=0):(A.touch0=L,T=!0,A.taps=1+!!u);u&&(u=clearTimeout(u)),T&&(A.taps<2&&(f=L[0],u=setTimeout(function(){u=null},g)),Ct(this),A.start())}}function O(d,...N){if(this.__zooming){var _=v(this,N).event(d),b=d.changedTouches,A=b.length,T,I,z,L;for(ht(d),T=0;T<A;++T)I=b[T],z=rt(I,this),_.touch0&&_.touch0[2]===I.identifier?_.touch0[0]=z:_.touch1&&_.touch1[2]===I.identifier&&(_.touch1[0]=z);if(I=_.that.__zoom,_.touch1){var W=_.touch0[0],M=_.touch0[1],B=_.touch1[0],H=_.touch1[1],X=(X=B[0]-W[0])*X+(X=B[1]-W[1])*X,Q=(Q=H[0]-M[0])*Q+(Q=H[1]-M[1])*Q;I=w(I,Math.sqrt(X/Q)),z=[(W[0]+B[0])/2,(W[1]+B[1])/2],L=[(M[0]+H[0])/2,(M[1]+H[1])/2]}else if(_.touch0)z=_.touch0[0],L=_.touch0[1];else return;_.zoom("touch",n(E(I,z,L),_.extent,o))}}function V(d,...N){if(this.__zooming){var _=v(this,N).event(d),b=d.changedTouches,A=b.length,T,I;for(Vt(d),h&&clearTimeout(h),h=setTimeout(function(){h=null},g),T=0;T<A;++T)I=b[T],_.touch0&&_.touch0[2]===I.identifier?delete _.touch0:_.touch1&&_.touch1[2]===I.identifier&&delete _.touch1;if(_.touch1&&!_.touch0&&(_.touch0=_.touch1,delete _.touch1),_.touch0)_.touch0[1]=this.__zoom.invert(_.touch0[0]);else if(_.end(),_.taps===2&&(I=rt(I,this),Math.hypot(f[0]-I[0],f[1]-I[1])<y)){var z=Y(this).on("dblclick.zoom");z&&z.apply(this,arguments)}}}return p.wheelDelta=function(d){return arguments.length?(r=typeof d=="function"?d:kt(+d),p):r},p.filter=function(d){return arguments.length?(t=typeof d=="function"?d:kt(!!d),p):t},p.touchable=function(d){return arguments.length?(i=typeof d=="function"?d:kt(!!d),p):i},p.extent=function(d){return arguments.length?(e=typeof d=="function"?d:kt([[+d[0][0],+d[0][1]],[+d[1][0],+d[1][1]]]),p):e},p.scaleExtent=function(d){return arguments.length?(a[0]=+d[0],a[1]=+d[1],p):[a[0],a[1]]},p.translateExtent=function(d){return arguments.length?(o[0][0]=+d[0][0],o[1][0]=+d[1][0],o[0][1]=+d[0][1],o[1][1]=+d[1][1],p):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},p.constrain=function(d){return arguments.length?(n=d,p):n},p.duration=function(d){return arguments.length?(c=+d,p):c},p.interpolate=function(d){return arguments.length?(s=d,p):s},p.on=function(){var d=l.on.apply(l,arguments);return d===l?p:d},p.clickDistance=function(d){return arguments.length?(x=(d=+d)*d,p):Math.sqrt(x)},p.tapDistance=function(d){return arguments.length?(y=+d,p):y},p}const nt=72,ln=240,un=74,Jo=40/74,wt=16,fn=6,hn="tf-chain-icon",dn=50,jo=80,ta=20,ea=20,ee=.9,na=16,ra=32,ia=3,gn=800,pn=[0,0,1e3,800],fe=40;class mn{constructor(e,n,r,i,a){this.type=e,this._gvid=n,this.name=r,this._draw_=i,this._ldraw_=a}}class yn extends mn{constructor({_gvid:e,name:n,_draw_:r,_ldraw_:i,bb:a,pos:o,width:c,height:s,label:l}){super("node",e,n,r,i),this.virtualNode=!1,this.bb=a,this.pos=o,this.width=c,this.height=s,this.label=l}getPosition(){if(!this.pos)return null;const[e,n]=this.pos.split(",").map(Number);return[e,n]}getWidthPoints(){return parseFloat(this.width||"1")*nt}getHeightPoints(){return parseFloat(this.height||"0.5")*nt}getBounds(){const e=this.getPosition();if(!e)return null;const[n,r]=e,i=this.getWidthPoints(),a=this.getHeightPoints();return{x:n-i/2,y:r-a/2,width:i,height:a}}leftIn(){const e=this.getBounds();return e?{x:e.x,y:Math.trunc(e.y+e.height/4)}:null}leftOut(){const e=this.getBounds();return e?{x:e.x,y:Math.trunc(e.y+e.height/4*3)}:null}rightOut(){const e=this.getBounds();return e?{x:e.x+e.width,y:Math.trunc(e.y+e.height/4)}:null}rightIn(){const e=this.getBounds();return e?{x:e.x+e.width,y:Math.trunc(e.y+e.height/4*3)}:null}}class oa extends mn{constructor({_gvid:e,name:n,_draw_:r,_ldraw_:i,_hdraw_:a,_tdraw_:o,head:c,tail:s,label:l}){if(super("edge",e,n,r,i),this.isBaseEdge=!1,this.depth=0,this.baseOffset=0,this.midY=0,this._hdraw_=a,this._tdraw_=o,this.head=c,this.tail=s,this.label=l,l)try{this.edgeContent=pt(l),this.edgeIndex=this.edgeContent.index,this.edgeColor=this.edgeContent.color}catch(u){/^\s*</.test(l)||console.warn(`Failed to decode edge label for ${n}:`,u)}}setNodes(e,n){this.sourceNode=e,this.targetNode=n}getDirection(){if(!this.sourceNode||!this.targetNode)return null;const e=this.sourceNode.getPosition(),n=this.targetNode.getPosition();return!e||!n?null:this.sourceNode._gvid===this.targetNode._gvid?"self":e[0]<n[0]?"right":"left"}getStartPoint(){if(!this.sourceNode)return null;const e=this.getDirection();if(!e)return null;switch(e){case"right":return this.sourceNode.rightOut();case"left":return this.sourceNode.leftOut();case"self":return this.sourceNode.leftOut()}}getEndPoint(){if(!this.targetNode)return null;const e=this.getDirection();if(!e)return null;switch(e){case"right":return this.targetNode.leftIn();case"left":return this.targetNode.rightIn();case"self":return this.targetNode.rightIn()}}getLabelText(){var e;if((e=this.edgeContent)!=null&&e.elems&&this.edgeContent.elems.length>0)return this.edgeContent.elems.map(n=>n.text).join(" ");if(this.label)return this.label.replace(/<[^>]*>/g," ").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&").replace(/&nbsp;/g," ").replace(/\s+/g," ").trim()||null;if(this._ldraw_){const n=[];if(this._ldraw_.forEach(r=>{r.op==="T"&&r.text&&n.push(r.text)}),n.length>0)return n.join(" ")}return null}getColor(){const e="#9AA4B2";if(this.edgeColor)return this.edgeColor;if(this._draw_){for(const n of this._draw_)if(n.op==="c"&&n.color)return n.color}if(this._hdraw_){for(const n of this._hdraw_)if(n.op==="c"&&n.color)return n.color}return e}}class xn{constructor(e,n=0){this.index=e,this.aboveY=n,this.belowY=n}allocateAbove(e){return this.aboveY-=e,this.aboveY}allocateBelow(e){const n=this.belowY;return this.belowY+=e,n}getRange(){return{above:this.aboveY,below:this.belowY}}}class aa extends xn{constructor(e,n=0){super(e,n),this.nodes=[]}addNode(e,n=!0){if(this.nodes.push(e),!n)return;const r=e.getPosition();if(r){const i=e.height?parseFloat(e.height)*nt:fe,a=r[1]-i/2,o=r[1]+i/2;this.aboveY=Math.min(this.aboveY,a),this.belowY=Math.max(this.belowY,o)}}}class sa extends xn{constructor(e,n,r=0){super(Math.min(e,n),r),this.edges=[],this.baseEdgeIndex=-1,this.sourceColIndex=e,this.targetColIndex=n}addEdge(e){this.edges.push(e)}setBaseEdge(e,n){this.baseEdge=e,this.baseEdgeIndex=n??this.edges.indexOf(e)}getKey(){const e=Math.min(this.sourceColIndex,this.targetColIndex),n=Math.max(this.sourceColIndex,this.targetColIndex);return`${e}-${n}`}}const ca=.6,la=/mono|fira|consolas|courier|menlo|roboto mono|ui-monospace/i,Ce={i:.27,l:.27,j:.27,I:.29,".":.28,",":.28,":":.28,";":.28,"'":.2,"|":.26,"!":.3,f:.32,t:.34,r:.38,"(":.34,")":.34,"[":.34,"]":.34," ":.28},Me={m:.85,w:.74,M:.83,W:.86,"@":.92};function ua(t){if(t in Ce)return Ce[t];if(t in Me)return Me[t];const e=t.charCodeAt(0);return e>=48&&e<=57?.57:e>=65&&e<=90?.66:e>=97&&e<=122?.53:e>=33&&e<=126?.5:e>11904?1:.55}function fa(t){return!!t&&la.test(t)}function ha(t,e,n){if(!t)return 0;if(fa(e))return t.length*n*ca;let r=0;for(const i of t)r+=ua(i);return r*n}function ne(t,e,n){const r=t.attr("font-family")||void 0,i=parseFloat(t.attr("font-size")||"12")||12,a=l=>ha(l,r,i);if(t.text(n),a(n)<=e)return;const o="...";let c=0,s=n.length;for(;c<s;){const l=Math.floor((c+s+1)/2);a(n.slice(0,l)+o)<=e?c=l:s=l-1}c>0?t.text(n.slice(0,c)+o):t.text(o)}function da(t){if(!t)return[];const e=[],n=/<TD[^>]*>(.*?)<\/TD>/gi;let r;for(;(r=n.exec(t))!==null;){let i=r[1];i=i.replace(/<[^>]+>/g,"").trim(),i&&e.push(i)}if(e.length===0){const i=t.replace(/<[^>]+>/g,"").trim();i&&e.push(i)}return e}function ga(t){var a;if(!t||!/<TABLE/i.test(t))return null;const e=/<B>([\s\S]*?)<\/B>/i.exec(t),n=e?e[1].replace(/<[^>]+>/g,"").trim():"",r=t.replace(/<[^>]+>/g," "),i=((a=/0x[0-9a-fA-F]{8,}/.exec(r))==null?void 0:a[0])??"";return!n&&!i?null:{tags:[],label:n,text:i}}function _n(t,e){const n=/^\[(\d+)\]$/.exec(t);return n?`[${n[1]}/${e}]`:t}function pa(t,e){return!t||t.length===0?t:t.map((n,r)=>r===0?{...n,text:_n(n.text,e)}:n)}function wn(t,e,n){var l;const r=pa((l=t.edgeContent)==null?void 0:l.elems,n);let i="";r&&r.length>0&&(i=r.map(u=>u.text).join(" ")),i||(i=da(t.label??"").map((f,h)=>h===0?_n(f,n):f).map(f=>f.length>20?f.slice(0,20)+"...":f).join(" "));const a=i.length>60?i.slice(0,60)+"...":i,o=e.labelFontSize,c=o*.6,s=e.labelPadding;return{displayElems:r,finalText:a,boxWidth:a.length*c+s*2,boxHeight:o+s*2}}const he={horizontalExtension:50,minEdgeDistance:50,minVerticalSegment:20,loopRadius:40,edgeSpacing:80,cornerRadius:4,arrowWidth:10,arrowHeight:6,labelHeight:15,labelFontSize:12,labelPadding:6,labelCornerRadius:4,nodeSpacing:50,nearlyHorizontalThreshold:5,nearlyAlignedThreshold:30};function vn(t){return{...he,...t}}function ma(t){if(t.length<2)return t;const e=[t[0]];for(let n=1;n<t.length;n++){const r=e[e.length-1];(Math.abs(t[n].x-r.x)>.1||Math.abs(t[n].y-r.y)>.1)&&e.push(t[n])}return e}function De(t,e,n){const{start:r,pathEnd:i,isNearlyHorizontal:a,startExtensionX:o,endExtensionX:c}=n,s=n.minVerticalSegment,l=Math.abs(r.y-e),u=Math.abs(e-i.y);let f=[],h=e;switch(t){case"straight":if(a){const m=(r.y+i.y)/2;Math.abs(e-m)<s?(f=[r,i],h=m):(f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e)}else return null;break;case"2seg":l<u?Math.abs(e-r.y)<s?(f=[r,{x:i.x,y:r.y},i],h=r.y):(f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e):Math.abs(e-i.y)<s?(f=[r,{x:o,y:r.y},{x:o,y:i.y},i],h=i.y):(f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e);break;case"3seg":{const m=e;f=[r,{x:o,y:r.y},{x:o,y:m},{x:c,y:m},{x:c,y:i.y},i],h=m;break}case"4seg":f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},i],h=e;break;case"5seg":if(l<s)f=[r,{x:o,y:r.y},{x:c,y:e},{x:c,y:i.y},i],h=e;else if(u<s)f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},i],h=e;else return null;break;case"6seg":f=[r,{x:o,y:r.y},{x:o,y:e},{x:c,y:e},{x:c,y:i.y},i],h=e;break}const g=ma(f);return g.length>0?{points:g,actualMidY:h}:null}function Mt(t,e,n,r=he){const i=t.getStartPoint(),a=t.getEndPoint(),o=t.getDirection();if(!i||!a||!o||o==="self")return;const c={x:i.x,y:e-i.y},s={x:a.x,y:e-a.y};let l={x:s.x,y:s.y};o==="right"?l={x:s.x-r.arrowWidth,y:s.y}:o==="left"&&(l={x:s.x+r.arrowWidth,y:s.y});const u=r.minEdgeDistance,f=t.baseDirection===void 0;let g=(c.y+l.y)/2;if(!f&&n&&n.midY!==void 0){if(t.baseDirection==="above"){const w=n.midY-u;g>w&&(g=w)}else if(t.baseDirection==="below"){const w=n.midY+u;g<w&&(g=w)}}const m=r.horizontalExtension-r.arrowWidth,x={start:c,pathEnd:l,isNearlyHorizontal:Math.abs(c.y-l.y)<5,startExtensionX:o==="right"?c.x+r.horizontalExtension:c.x-r.horizontalExtension,endExtensionX:o==="right"?l.x-m:l.x+m,minVerticalSegment:r.minVerticalSegment};let y;f?y=x.isNearlyHorizontal?["straight","3seg"]:["3seg"]:y=x.isNearlyHorizontal?["straight","3seg","4seg","5seg","6seg"]:["3seg","4seg","5seg","6seg"];for(const w of y){const E=De(w,g,x);if(E)return{midY:E.actualMidY,points:E.points}}const p=De("6seg",g,x);return p?{midY:p.actualMidY,points:p.points}:void 0}function Pe(t,e){if(t.length<2)return"";if(e===0||t.length===2)return`M${t[0].x},${t[0].y} ${t.slice(1).map(i=>`L${i.x},${i.y}`).join(" ")}`;const n=[];n.push(`M${t[0].x},${t[0].y}`);for(let i=1;i<t.length-1;i++){const a=t[i-1],o=t[i],c=t[i+1],s=Math.sqrt((o.x-a.x)**2+(o.y-a.y)**2),l=Math.sqrt((c.x-o.x)**2+(c.y-o.y)**2),u=Math.min(s,l)/2,f=Math.min(e,u);if(f>0){const h=f/s,g=f/l,m={x:o.x-(o.x-a.x)*h,y:o.y-(o.y-a.y)*h},x={x:o.x+(c.x-o.x)*g,y:o.y+(c.y-o.y)*g};n.push(`L${m.x},${m.y}`),n.push(`Q${o.x},${o.y} ${x.x},${x.y}`)}else n.push(`L${o.x},${o.y}`)}const r=t[t.length-1];return n.push(`L${r.x},${r.y}`),n.join(" ")}function re(t,e,n,r,i){const a=i.topLeft||0,o=i.topRight||0,c=i.bottomRight||0,s=i.bottomLeft||0;return`
2
2
  M ${t+a} ${e}
3
3
  L ${t+n-o} ${e}
4
4
  ${o?`Q ${t+n} ${e} ${t+n} ${e+o}`:""}
@@ -9,7 +9,7 @@
9
9
  L ${t} ${e+a}
10
10
  ${a?`Q ${t} ${e} ${t+a} ${e}`:""}
11
11
  Z
12
- `.trim().replace(/\s+/g," ")}function ya(t,e,n,r,i,a,o){const c=a.loopRadius,s=a.horizontalExtension,l=a.cornerRadius,u=()=>{const g=n.x-c,m=n.y-c,x=r.x+c,y=r.y-c;return`M${n.x},${n.y} C${g},${m} ${x},${y} ${r.x},${r.y}`};if(!o){if(e==="self")return u();const g=r.x-n.x,m=.4,x=n.x+g*m,y=n.y,p=r.x-g*m,w=r.y;return`M${n.x},${n.y} C${x},${y} ${p},${w} ${r.x},${r.y}`}const f=s-a.arrowWidth;if(e==="self"){if(t.virtualNode){const g=t.virtualNode.getPosition();if(g){const m=i-g[1];t.midY=m;const x=[n,{x:n.x-s,y:n.y},{x:n.x-s,y:m},{x:r.x+f,y:m},{x:r.x+f,y:r.y},r];return Pe(x,l)}return u()}return u()}let h;if(t.orthogonalPathPoints&&t.orthogonalPathPoints.length>0)h=t.orthogonalPathPoints;else{const g=Math.abs(n.y-t.midY),m=Math.abs(t.midY-r.y),x=20,y=g>=x,p=m>=x,w=e==="right"?n.x+s:n.x-s,E=e==="right"?r.x-f:r.x+f;if(h=[],!y&&!p){const k=(n.y+r.y)/2;h.push(n,{x:w,y:k},{x:E,y:k},r)}else y?p?h.push(n,{x:w,y:n.y},{x:w,y:t.midY},{x:E,y:t.midY},{x:E,y:r.y},r):h.push(n,{x:w,y:n.y},{x:w,y:t.midY},{x:E,y:t.midY},r):h.push(n,{x:w,y:t.midY},{x:E,y:t.midY},{x:E,y:r.y},r)}return Pe(h,l)}function xa(t,e,n,r,i){_a(t,r,i),wa(t,e,n,r,i)}function _a(t,e,n){const r=n.loopRadius,i=n.edgeSpacing,a=n.labelHeight;t.forEach(o=>{const c=o.edges;if(c.length===0)return;const s=o.baseEdge,l=o.baseEdgeIndex;if(!s||l<0)return;const u=s.getStartPoint(),f=s.getEndPoint();if(!u||!f)return;const h=e-u.y,g=e-f.y;s.midY=(h+g)/2;const m=Mt(s,e,void 0,n);m&&(s.midY=m.midY,s.orthogonalPathPoints=m.points),o.aboveY=s.midY,o.belowY=s.midY;for(let x=l-1;x>=0;x--){const y=c[x];if(y.depth!==0)continue;if(y.getDirection()==="self"){const $=y.getStartPoint();$&&(y.midY=e-$.y-r);continue}const w=y.label?i+a:i;y.midY=o.aboveY-w,o.aboveY=y.midY,y.baseDirection="above",y.baseOffset=-(l-x);const E=x<c.length-1?c[x+1]:void 0,k=Mt(y,e,E,n);k&&(y.midY=k.midY,y.orthogonalPathPoints=k.points,o.aboveY=y.midY)}for(let x=l+1;x<c.length;x++){const y=c[x];if(y.depth!==0)continue;if(y.getDirection()==="self"){const $=y.getStartPoint();$&&(y.midY=e-$.y-r);continue}const w=y.label?i+a:i;y.midY=o.belowY+w,o.belowY=y.midY,y.baseDirection="below",y.baseOffset=x-l;const E=x>0?c[x-1]:void 0,k=Mt(y,e,E,n);k&&(y.midY=k.midY,y.orthogonalPathPoints=k.points,o.belowY=y.midY)}})}function wa(t,e,n,r,i){const a=i.loopRadius,o=i.edgeSpacing,c=i.labelHeight,s=[];t.forEach(f=>{const h=f.edges;h.length===0||f.baseEdge||!h.every(m=>m.depth>0)||h.forEach(m=>{if(m.getDirection()!=="self")s.push(m);else{const x=m.getStartPoint();x&&(m.midY=r-x.y-a)}})}),s.sort((f,h)=>f.depth-h.depth);let l=1/0,u=-1/0;t.forEach(f=>{f.aboveY!==0&&(l=Math.min(l,f.aboveY)),f.belowY!==0&&(u=Math.max(u,f.belowY))}),e.forEach(f=>{f.aboveY!==0&&(l=Math.min(l,f.aboveY)),f.belowY!==0&&(u=Math.max(u,f.belowY))}),s.forEach(f=>{if(!f.sourceNode||!f.targetNode)return;const h=n.get(f.sourceNode._gvid),g=n.get(f.targetNode._gvid);if(h===void 0||g===void 0)return;const m=Math.min(h,g),x=Math.max(h,g),y=[];for(let C=m;C<=x;C++){const R=e.get(C);R&&y.push(...R.nodes)}const p=y.map(C=>{const R=C.getPosition();if(!R)return null;const H=r-R[1],G=C.height?parseFloat(C.height)*nt:fe;return{y:H,height:G,bottomY:H+G/2}}).filter(C=>C!==null).sort((C,R)=>C.y-R.y);let w;if(p.length===0)w=(l+u)/2;else if(p.length%2===1)w=p[Math.floor(p.length/2)].bottomY;else{const C=p.length/2;w=(p[C-1].bottomY+p[C].bottomY)/2}const E=f.getStartPoint(),k=f.getEndPoint(),v=(E&&k?r-(E.y+k.y)/2:w)<w?"above":"below";f.baseDirection=v;const S=f.label?o+c:o;let M;v==="above"?(f.midY=l-S,M=l,l=f.midY):(f.midY=u+S,M=u,u=f.midY);const D=Mt(f,r,{midY:M},i);D&&(f.midY=D.midY,f.orthogonalPathPoints=D.points,v==="above"?l=Math.min(l,D.midY):u=Math.max(u,D.midY))})}function va(t){if(!t.sourceNode)return null;const e=t.sourceNode.getPosition();if(!e)return null;const n=dn/nt,r=new yn({_gvid:-1e3-t._gvid,name:`virtual_edge_${t._gvid}`,label:t.label,pos:`${e[0]},${e[1]}`,width:"0.5",height:n.toString()});return r.virtualNode=!0,r.edge=t,t.virtualNode=r,r}function ba(t,e,n){const r=e.nodes,i=r.findIndex(a=>a._gvid===n._gvid);if(i===-1){r.push(t);return}r.splice(i,0,t)}function Ea(t,e){const n=ta,r=[],i=new Map;t.forEach(l=>{const u=l.getPosition();if(!u)return;const f=u[0];let h=r.findIndex(g=>Math.abs(f-g)<=n);h===-1&&(h=r.length,r.push(f)),i.set(l._gvid,h)});const a=r.map((l,u)=>({x:l,i:u})).sort((l,u)=>l.x-u.x).map((l,u)=>({oldIndex:l.i,newIndex:u})),o=new Map;a.forEach(({oldIndex:l,newIndex:u})=>{o.set(l,u)});for(const[l,u]of i)i.set(l,o.get(u)??u);const c=new Map;t.forEach(l=>{const u=i.get(l._gvid);u!==void 0&&(c.has(u)||c.set(u,new aa(u,0)),c.get(u).addNode(l,!1))}),e.forEach(l=>{if(!l.sourceNode||!l.targetNode||l.sourceNode._gvid!==l.targetNode._gvid)return;const u=i.get(l.sourceNode._gvid);if(u===void 0)return;const f=c.get(u);if(!f)return;const h=va(l);h&&ba(h,f,l.sourceNode)});const s=new Map;return e.forEach(l=>{if(!l.sourceNode||!l.targetNode)return;const u=i.get(l.sourceNode._gvid),f=i.get(l.targetNode._gvid);if(u===void 0||f===void 0)return;l.depth=Math.abs(f-u)-1,l.depth<0&&(l.depth=0);const h=Math.min(u,f),g=Math.max(u,f),m=`${h}-${g}`;s.has(m)||s.set(m,new sa(u,f,0)),s.get(m).addEdge(l)}),s.forEach(l=>{l.edges.sort((u,f)=>{const h=u.getStartPoint(),g=u.getEndPoint(),m=h&&g?(h.y+g.y)/2:0,x=f.getStartPoint(),y=f.getEndPoint();return(x&&y?(x.y+y.y)/2:0)-m})}),{nodeColumnMap:i,nodeColumns:c,edgeColumns:s}}function Na(t,e){t.forEach(n=>{if(n.nodes.length===0)return;let r=!0;n.nodes.forEach(i=>{const a=i.getPosition();if(!a)return;const o=i.height?parseFloat(i.height)*nt:fe,c=e-a[1],s=c-o/2,l=c+o/2;r?(n.aboveY=s,n.belowY=l,r=!1):(n.aboveY=Math.min(n.aboveY,s),n.belowY=Math.max(n.belowY,l))})})}function $a(t,e){t.length!==0&&e.forEach(n=>{const r=n.edges;if(r.length===0)return;const i=r.filter(f=>f.depth===0);if(i.length===0)return;const a=Math.floor(i.length/2),o=i[a];o.isBaseEdge=!0,o.baseDirection=void 0;const c=r.indexOf(o);n.setBaseEdge(o,c);const s=o.getStartPoint(),l=o.getEndPoint(),u=s&&l?(s.y+l.y)/2:0;i.forEach(f=>{if(f===o)return;const h=f.getStartPoint(),g=f.getEndPoint();(h&&g?(h.y+g.y)/2:0)>u?f.baseDirection="above":f.baseDirection="below"})})}function Sa(t,e,n){const i=(t.objects||[]).map(s=>new yn({_gvid:s._gvid,name:s.name,_draw_:s._draw_,_ldraw_:s._ldraw_,bb:s.bb,pos:s.pos,width:e!==null?String(e/nt):s.width,height:n!==null?String(n/nt):s.height,label:s.label})),a=new Map;i.forEach(s=>{a.set(s._gvid,s)});const c=(t.edges||[]).map(s=>{const l=new oa({_gvid:s._gvid,name:s.name,_draw_:s._draw_,_ldraw_:s._ldraw_,_hdraw_:s._hdraw_,_tdraw_:s._tdraw_,head:s.head,tail:s.tail,label:s.label}),u=s.tail!==void 0?a.get(s.tail):void 0,f=s.head!==void 0?a.get(s.head):void 0;return u&&f&&l.setNodes(u,f),l});return{nodes:i,edges:c}}function ka(t,e,n,r){let i=0;t.forEach(o=>{i=Math.max(i,o.getWidthPoints())});let a=0;return e.forEach(o=>{if(o.depth!==0||!o.label||o.getDirection()==="self")return;const{boxWidth:c}=wn(o,n,r);a=Math.max(a,c)}),i+2*n.horizontalExtension+a+2*ea}function Aa(t,e,n){const r=Array.from(t.keys()).sort((l,u)=>l-u),i=r.length,a=jo,o=n,s=(i>1?(i-1)*o:0)+2*a;return r.forEach((l,u)=>{const f=t.get(l);if(!f)return;const h=f.nodes;if(h.length===0)return;const g=i>1?a+u*o:s/2;h.sort((v,S)=>{const M=v.getPosition(),D=S.getPosition();return!M||!D?0:D[1]-M[1]});const m=dn,x=h.filter(v=>!v.virtualNode),y=x.length;if(y===0){let v=(e+h.reduce((S,M)=>S+M.getHeightPoints(),0))/2;h.forEach(S=>{const M=S.getHeightPoints();v-=M/2,S.pos=`${g},${v}`,v-=M/2});return}let p,w;if(y%2===1){const v=Math.floor(y/2),S=x[v];w=h.indexOf(S),p=e/2}else{const v=y/2-1,S=x[v];w=h.indexOf(S),p=e/2}const E=h[w],k=E.getHeightPoints();E.pos=`${g},${p}`;let $=p+k/2;for(let v=w-1;v>=0;v--){const S=h[v],M=h[v+1],D=S.getHeightPoints(),C=S.virtualNode||M.virtualNode?0:m;$+=C+D/2,S.pos=`${g},${$}`,$+=D/2}$=p-k/2;for(let v=w+1;v<h.length;v++){const S=h[v],M=h[v-1],D=S.getHeightPoints(),C=S.virtualNode||M.virtualNode?0:m;$-=C+D/2,S.pos=`${g},${$}`,$-=D/2}}),s}function bn(t,e,n){t.append("use").attr("href",`#${hn}`).attr("x",e).attr("y",n-wt/2)}function Ta(t,e,n){t.style("cursor","pointer").on("mouseenter",function(){if(e.attr("opacity",1),n.select(".edge.selected").size()>0)return;const i=P(this).attr("data-node-id"),a=new Set([i]);n.selectAll(".edge").each(function(){const o=P(this).attr("data-source-node-id"),c=P(this).attr("data-target-node-id");o===i||c===i?o===i?a.add(c):a.add(o):P(this).classed("dimmed",!0)}),n.selectAll(".node").each(function(){const o=P(this).attr("data-node-id");a.has(o)||P(this).classed("dimmed",!0)})}).on("mouseleave",function(){e.attr("opacity",0),n.selectAll(".edge.dimmed").classed("dimmed",!1),n.selectAll(".node.dimmed").classed("dimmed",!1)})}function Ia(t){const{nodeGroup:e,g:n,x:r,y:i,w:a,h:o,height:c,badges:s,labelText:l,addressText:u,nodeTextColor:f,nodeBackground:h,hasCustomBackground:g,hasChainIcon:m}=t,x=o*Jo,y=o-x,p=c-i-o/2,w=4,E="var(--border-primary, #D3D1D4)";e.append("path").attr("d",re(r-a/2,p,a,x,{topLeft:w,topRight:w})).attr("fill",g?h:"var(--bg-quaternary, #F2F2F3)").attr("stroke",E).attr("stroke-width",1),g&&e.append("line").attr("x1",r-a/2).attr("y1",p+x).attr("x2",r+a/2).attr("y2",p+x).attr("stroke",f).attr("stroke-width",1),e.append("path").attr("d",re(r-a/2,p+x,a,y,{bottomLeft:w,bottomRight:w})).attr("fill",g?h:"var(--bg-primary, #fff)").attr("stroke",E).attr("stroke-width",1);const k=e.append("rect").attr("x",r-a/2-4).attr("y",p-4).attr("width",a+8).attr("height",o+8).attr("rx",5).attr("ry",5).attr("fill","none").attr("stroke","var(--gray-700, #43444C)").attr("stroke-width",2).attr("opacity",0).style("pointer-events","none");Ta(e,k,n);let $=r-a/2+8;const v=p+x/2,S=7.2,M=6,D=18,C=4;if(s.forEach(R=>{const G=R.length*S+M*2;e.append("rect").attr("x",$).attr("y",v-D/2).attr("width",G).attr("height",D).attr("rx",5).attr("ry",5).attr("fill","var(--bg-warning-primary, #FFF8E1)").attr("stroke","var(--border-warning-light, #FFD66D)").attr("stroke-width",1),e.append("text").attr("x",$+M).attr("y",v).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-inter), Inter, Helvetica, Arial").attr("font-size","12px").attr("font-weight","500").attr("fill","var(--text-warning-primary, #CD7004)").text(R),$+=G+C}),l){const R=r+a/2-8-$,H=e.append("text").attr("x",$).attr("y",v).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-inter), Inter, Helvetica, Arial").attr("font-size","16px").attr("font-weight","500").attr("fill",f);ne(H,R,l)}if(u){const R=p+x+y/2,H=m?wt+fn:0;m&&bn(e,r-a/2+8,R);const G=a-16-H,d=e.append("text").attr("x",r-a/2+8+H).attr("y",R).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-fira-code), Fira Code, monospace").attr("font-size","12px").attr("font-weight","400").attr("fill",f);ne(d,G,u)}}function Ca(t){const{nodeGroup:e,x:n,y:r,w:i,h:a,height:o,isVirtual:c,showVirtualStyle:s,nodeContent:l,labelText:u,addressText:f,nodeTextColor:h,nodeBackground:g,hasCustomBackground:m,hasChainIcon:x}=t,y=4,p=s?"#EF4444":"var(--border-primary, #D3D1D4)",w=e.append("path").attr("d",re(n-i/2,o-r-a/2,i,a,{topLeft:y,topRight:y,bottomLeft:y,bottomRight:y})).attr("fill",m?g:"var(--bg-primary, #fff)").attr("stroke",p).attr("stroke-width",s?2:1);if(!c){const E=e.append("rect").attr("x",n-i/2-4).attr("y",o-r-a/2-4).attr("width",i+8).attr("height",a+8).attr("rx",5).attr("ry",5).attr("fill","none").attr("stroke","#000000").attr("stroke-width",2).attr("opacity",0).style("pointer-events","none");w.style("cursor","pointer").on("mouseenter",function(){E.attr("opacity",1)}).on("mouseleave",function(){E.attr("opacity",0)})}if(l)if(c){const E=u||f;e.append("text").attr("x",n).attr("y",o-r).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family","Inter, Helvetica, Arial").attr("font-size","10px").attr("fill","#991B1B").text(E.length>20?E.slice(0,20)+"...":E)}else{const E=f||u,k=o-r,$=x?wt+fn:0;x&&bn(e,n-i/2+8,k);const v=i-16-$,S=e.append("text").attr("x",n-i/2+8+$).attr("y",k).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-fira-code), Fira Code, monospace").attr("font-size","12px").attr("font-weight","400").attr("fill",h);ne(S,v,E)}}function Ma(t,e,n,r,i){const a=t.getPosition();if(!a)return;const[o,c]=a,s=t.getWidthPoints(),l=t.getHeightPoints(),u=t.virtualNode;if(u&&!r)return;const f=e.append("g").attr("class",u?"node virtual-node":"node").attr("id",t.name).attr("data-node-id",t.name);let h=null;try{t.label&&(h=pt(t.label))}catch(v){h=ga(t.label),h||console.warn(`Failed to decode node label for ${t.name}:`,v)}h!=null&&h.key&&f.attr("data-key",h.key);const g=r&&u,m=(h==null?void 0:h.tags)||[],x=(h==null?void 0:h.label)||"",y=(h==null?void 0:h.text)||"",p=(h==null?void 0:h.color)||"var(--text-primary, #1A171B)",w=(h==null?void 0:h.background)||"white",E=w!=="white",k=m.length>0||x.length>0,$={nodeGroup:f,g:e,x:o,y:c,w:s,h:l,height:n,isVirtual:u,showVirtualStyle:g,nodeContent:h,badges:m,labelText:x,addressText:y,nodeTextColor:p,nodeBackground:w,hasCustomBackground:E,hasChainIcon:i};k&&!u?Ia($):Ca($),!t.label&&t._ldraw_&&t._ldraw_.length>0&&!u&&t._ldraw_.forEach(v=>{v.op==="T"&&v.text&&f.append("text").attr("x",o-s/2+8).attr("y",n-c).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family",v.face||"Inter, Helvetica, Arial").attr("font-size",`${v.size||11}px`).attr("fill",v.color||"#334155").text(v.text)})}function Da(t,e,n,r,i){e.forEach(a=>{a.nodes.forEach(o=>{Ma(o,t,n,r,i)})})}const Pa=`
12
+ `.trim().replace(/\s+/g," ")}function ya(t,e,n,r,i,a,o){const c=a.loopRadius,s=a.horizontalExtension,l=a.cornerRadius,u=()=>{const g=n.x-c,m=n.y-c,x=r.x+c,y=r.y-c;return`M${n.x},${n.y} C${g},${m} ${x},${y} ${r.x},${r.y}`};if(!o){if(e==="self")return u();const g=r.x-n.x,m=.4,x=n.x+g*m,y=n.y,p=r.x-g*m,w=r.y;return`M${n.x},${n.y} C${x},${y} ${p},${w} ${r.x},${r.y}`}const f=s-a.arrowWidth;if(e==="self"){if(t.virtualNode){const g=t.virtualNode.getPosition();if(g){const m=i-g[1];t.midY=m;const x=[n,{x:n.x-s,y:n.y},{x:n.x-s,y:m},{x:r.x+f,y:m},{x:r.x+f,y:r.y},r];return Pe(x,l)}return u()}return u()}let h;if(t.orthogonalPathPoints&&t.orthogonalPathPoints.length>0)h=t.orthogonalPathPoints;else{const g=Math.abs(n.y-t.midY),m=Math.abs(t.midY-r.y),x=20,y=g>=x,p=m>=x,w=e==="right"?n.x+s:n.x-s,E=e==="right"?r.x-f:r.x+f;if(h=[],!y&&!p){const k=(n.y+r.y)/2;h.push(n,{x:w,y:k},{x:E,y:k},r)}else y?p?h.push(n,{x:w,y:n.y},{x:w,y:t.midY},{x:E,y:t.midY},{x:E,y:r.y},r):h.push(n,{x:w,y:n.y},{x:w,y:t.midY},{x:E,y:t.midY},r):h.push(n,{x:w,y:t.midY},{x:E,y:t.midY},{x:E,y:r.y},r)}return Pe(h,l)}function xa(t,e,n,r,i){_a(t,r,i),wa(t,e,n,r,i)}function _a(t,e,n){const r=n.loopRadius,i=n.edgeSpacing,a=n.labelHeight;t.forEach(o=>{const c=o.edges;if(c.length===0)return;const s=o.baseEdge,l=o.baseEdgeIndex;if(!s||l<0)return;const u=s.getStartPoint(),f=s.getEndPoint();if(!u||!f)return;const h=e-u.y,g=e-f.y;s.midY=(h+g)/2;const m=Mt(s,e,void 0,n);m&&(s.midY=m.midY,s.orthogonalPathPoints=m.points),o.aboveY=s.midY,o.belowY=s.midY;for(let x=l-1;x>=0;x--){const y=c[x];if(y.depth!==0)continue;if(y.getDirection()==="self"){const $=y.getStartPoint();$&&(y.midY=e-$.y-r);continue}const w=y.label?i+a:i;y.midY=o.aboveY-w,o.aboveY=y.midY,y.baseDirection="above",y.baseOffset=-(l-x);const E=x<c.length-1?c[x+1]:void 0,k=Mt(y,e,E,n);k&&(y.midY=k.midY,y.orthogonalPathPoints=k.points,o.aboveY=y.midY)}for(let x=l+1;x<c.length;x++){const y=c[x];if(y.depth!==0)continue;if(y.getDirection()==="self"){const $=y.getStartPoint();$&&(y.midY=e-$.y-r);continue}const w=y.label?i+a:i;y.midY=o.belowY+w,o.belowY=y.midY,y.baseDirection="below",y.baseOffset=x-l;const E=x>0?c[x-1]:void 0,k=Mt(y,e,E,n);k&&(y.midY=k.midY,y.orthogonalPathPoints=k.points,o.belowY=y.midY)}})}function wa(t,e,n,r,i){const a=i.loopRadius,o=i.edgeSpacing,c=i.labelHeight,s=[];t.forEach(f=>{const h=f.edges;h.length===0||f.baseEdge||!h.every(m=>m.depth>0)||h.forEach(m=>{if(m.getDirection()!=="self")s.push(m);else{const x=m.getStartPoint();x&&(m.midY=r-x.y-a)}})}),s.sort((f,h)=>f.depth-h.depth);let l=1/0,u=-1/0;t.forEach(f=>{f.aboveY!==0&&(l=Math.min(l,f.aboveY)),f.belowY!==0&&(u=Math.max(u,f.belowY))}),e.forEach(f=>{f.aboveY!==0&&(l=Math.min(l,f.aboveY)),f.belowY!==0&&(u=Math.max(u,f.belowY))}),s.forEach(f=>{if(!f.sourceNode||!f.targetNode)return;const h=n.get(f.sourceNode._gvid),g=n.get(f.targetNode._gvid);if(h===void 0||g===void 0)return;const m=Math.min(h,g),x=Math.max(h,g),y=[];for(let C=m;C<=x;C++){const R=e.get(C);R&&y.push(...R.nodes)}const p=y.map(C=>{const R=C.getPosition();if(!R)return null;const O=r-R[1],V=C.height?parseFloat(C.height)*nt:fe;return{y:O,height:V,bottomY:O+V/2}}).filter(C=>C!==null).sort((C,R)=>C.y-R.y);let w;if(p.length===0)w=(l+u)/2;else if(p.length%2===1)w=p[Math.floor(p.length/2)].bottomY;else{const C=p.length/2;w=(p[C-1].bottomY+p[C].bottomY)/2}const E=f.getStartPoint(),k=f.getEndPoint(),v=(E&&k?r-(E.y+k.y)/2:w)<w?"above":"below";f.baseDirection=v;const S=f.label?o+c:o;let D;v==="above"?(f.midY=l-S,D=l,l=f.midY):(f.midY=u+S,D=u,u=f.midY);const P=Mt(f,r,{midY:D},i);P&&(f.midY=P.midY,f.orthogonalPathPoints=P.points,v==="above"?l=Math.min(l,P.midY):u=Math.max(u,P.midY))})}function va(t){if(!t.sourceNode)return null;const e=t.sourceNode.getPosition();if(!e)return null;const n=dn/nt,r=new yn({_gvid:-1e3-t._gvid,name:`virtual_edge_${t._gvid}`,label:t.label,pos:`${e[0]},${e[1]}`,width:"0.5",height:n.toString()});return r.virtualNode=!0,r.edge=t,t.virtualNode=r,r}function ba(t,e,n){const r=e.nodes,i=r.findIndex(a=>a._gvid===n._gvid);if(i===-1){r.push(t);return}r.splice(i,0,t)}function Ea(t,e){const n=ta,r=[],i=new Map;t.forEach(l=>{const u=l.getPosition();if(!u)return;const f=u[0];let h=r.findIndex(g=>Math.abs(f-g)<=n);h===-1&&(h=r.length,r.push(f)),i.set(l._gvid,h)});const a=r.map((l,u)=>({x:l,i:u})).sort((l,u)=>l.x-u.x).map((l,u)=>({oldIndex:l.i,newIndex:u})),o=new Map;a.forEach(({oldIndex:l,newIndex:u})=>{o.set(l,u)});for(const[l,u]of i)i.set(l,o.get(u)??u);const c=new Map;t.forEach(l=>{const u=i.get(l._gvid);u!==void 0&&(c.has(u)||c.set(u,new aa(u,0)),c.get(u).addNode(l,!1))}),e.forEach(l=>{if(!l.sourceNode||!l.targetNode||l.sourceNode._gvid!==l.targetNode._gvid)return;const u=i.get(l.sourceNode._gvid);if(u===void 0)return;const f=c.get(u);if(!f)return;const h=va(l);h&&ba(h,f,l.sourceNode)});const s=new Map;return e.forEach(l=>{if(!l.sourceNode||!l.targetNode)return;const u=i.get(l.sourceNode._gvid),f=i.get(l.targetNode._gvid);if(u===void 0||f===void 0)return;l.depth=Math.abs(f-u)-1,l.depth<0&&(l.depth=0);const h=Math.min(u,f),g=Math.max(u,f),m=`${h}-${g}`;s.has(m)||s.set(m,new sa(u,f,0)),s.get(m).addEdge(l)}),s.forEach(l=>{l.edges.sort((u,f)=>{const h=u.getStartPoint(),g=u.getEndPoint(),m=h&&g?(h.y+g.y)/2:0,x=f.getStartPoint(),y=f.getEndPoint();return(x&&y?(x.y+y.y)/2:0)-m})}),{nodeColumnMap:i,nodeColumns:c,edgeColumns:s}}function Na(t,e){t.forEach(n=>{if(n.nodes.length===0)return;let r=!0;n.nodes.forEach(i=>{const a=i.getPosition();if(!a)return;const o=i.height?parseFloat(i.height)*nt:fe,c=e-a[1],s=c-o/2,l=c+o/2;r?(n.aboveY=s,n.belowY=l,r=!1):(n.aboveY=Math.min(n.aboveY,s),n.belowY=Math.max(n.belowY,l))})})}function $a(t,e){t.length!==0&&e.forEach(n=>{const r=n.edges;if(r.length===0)return;const i=r.filter(f=>f.depth===0);if(i.length===0)return;const a=Math.floor(i.length/2),o=i[a];o.isBaseEdge=!0,o.baseDirection=void 0;const c=r.indexOf(o);n.setBaseEdge(o,c);const s=o.getStartPoint(),l=o.getEndPoint(),u=s&&l?(s.y+l.y)/2:0;i.forEach(f=>{if(f===o)return;const h=f.getStartPoint(),g=f.getEndPoint();(h&&g?(h.y+g.y)/2:0)>u?f.baseDirection="above":f.baseDirection="below"})})}function Sa(t,e,n){const i=(t.objects||[]).map(s=>new yn({_gvid:s._gvid,name:s.name,_draw_:s._draw_,_ldraw_:s._ldraw_,bb:s.bb,pos:s.pos,width:e!==null?String(e/nt):s.width,height:n!==null?String(n/nt):s.height,label:s.label})),a=new Map;i.forEach(s=>{a.set(s._gvid,s)});const c=(t.edges||[]).map(s=>{const l=new oa({_gvid:s._gvid,name:s.name,_draw_:s._draw_,_ldraw_:s._ldraw_,_hdraw_:s._hdraw_,_tdraw_:s._tdraw_,head:s.head,tail:s.tail,label:s.label}),u=s.tail!==void 0?a.get(s.tail):void 0,f=s.head!==void 0?a.get(s.head):void 0;return u&&f&&l.setNodes(u,f),l});return{nodes:i,edges:c}}function ka(t,e,n,r){let i=0;t.forEach(o=>{i=Math.max(i,o.getWidthPoints())});let a=0;return e.forEach(o=>{if(o.depth!==0||!o.label||o.getDirection()==="self")return;const{boxWidth:c}=wn(o,n,r);a=Math.max(a,c)}),i+2*n.horizontalExtension+a+2*ea}function Aa(t,e,n){const r=Array.from(t.keys()).sort((l,u)=>l-u),i=r.length,a=jo,o=n,s=(i>1?(i-1)*o:0)+2*a;return r.forEach((l,u)=>{const f=t.get(l);if(!f)return;const h=f.nodes;if(h.length===0)return;const g=i>1?a+u*o:s/2;h.sort((v,S)=>{const D=v.getPosition(),P=S.getPosition();return!D||!P?0:P[1]-D[1]});const m=dn,x=h.filter(v=>!v.virtualNode),y=x.length;if(y===0){let v=(e+h.reduce((S,D)=>S+D.getHeightPoints(),0))/2;h.forEach(S=>{const D=S.getHeightPoints();v-=D/2,S.pos=`${g},${v}`,v-=D/2});return}let p,w;if(y%2===1){const v=Math.floor(y/2),S=x[v];w=h.indexOf(S),p=e/2}else{const v=y/2-1,S=x[v];w=h.indexOf(S),p=e/2}const E=h[w],k=E.getHeightPoints();E.pos=`${g},${p}`;let $=p+k/2;for(let v=w-1;v>=0;v--){const S=h[v],D=h[v+1],P=S.getHeightPoints(),C=S.virtualNode||D.virtualNode?0:m;$+=C+P/2,S.pos=`${g},${$}`,$+=P/2}$=p-k/2;for(let v=w+1;v<h.length;v++){const S=h[v],D=h[v-1],P=S.getHeightPoints(),C=S.virtualNode||D.virtualNode?0:m;$-=C+P/2,S.pos=`${g},${$}`,$-=P/2}}),s}function bn(t,e,n){t.append("use").attr("href",`#${hn}`).attr("x",e).attr("y",n-wt/2)}function Ta(t,e,n){t.style("cursor","pointer").on("mouseenter",function(){if(e.attr("opacity",1),n.select(".edge.selected").size()>0)return;const i=Y(this).attr("data-node-id"),a=new Set([i]);n.selectAll(".edge").each(function(){const o=Y(this).attr("data-source-node-id"),c=Y(this).attr("data-target-node-id");o===i||c===i?o===i?a.add(c):a.add(o):Y(this).classed("dimmed",!0)}),n.selectAll(".node").each(function(){const o=Y(this).attr("data-node-id");a.has(o)||Y(this).classed("dimmed",!0)})}).on("mouseleave",function(){e.attr("opacity",0),n.selectAll(".edge.dimmed").classed("dimmed",!1),n.selectAll(".node.dimmed").classed("dimmed",!1)})}function Ia(t){const{nodeGroup:e,g:n,x:r,y:i,w:a,h:o,height:c,badges:s,labelText:l,addressText:u,nodeTextColor:f,nodeBackground:h,hasCustomBackground:g,hasChainIcon:m}=t,x=o*Jo,y=o-x,p=c-i-o/2,w=4,E="var(--border-primary, #D3D1D4)";e.append("path").attr("d",re(r-a/2,p,a,x,{topLeft:w,topRight:w})).attr("fill",g?h:"var(--bg-quaternary, #F2F2F3)").attr("stroke",E).attr("stroke-width",1),g&&e.append("line").attr("x1",r-a/2).attr("y1",p+x).attr("x2",r+a/2).attr("y2",p+x).attr("stroke",f).attr("stroke-width",1),e.append("path").attr("d",re(r-a/2,p+x,a,y,{bottomLeft:w,bottomRight:w})).attr("fill",g?h:"var(--bg-primary, #fff)").attr("stroke",E).attr("stroke-width",1);const k=e.append("rect").attr("x",r-a/2-4).attr("y",p-4).attr("width",a+8).attr("height",o+8).attr("rx",5).attr("ry",5).attr("fill","none").attr("stroke","var(--gray-700, #43444C)").attr("stroke-width",2).attr("opacity",0).style("pointer-events","none");Ta(e,k,n);let $=r-a/2+8;const v=p+x/2,S=7.2,D=6,P=18,C=4;if(s.forEach(R=>{const V=R.length*S+D*2;e.append("rect").attr("x",$).attr("y",v-P/2).attr("width",V).attr("height",P).attr("rx",5).attr("ry",5).attr("fill","var(--bg-warning-primary, #FFF8E1)").attr("stroke","var(--border-warning-light, #FFD66D)").attr("stroke-width",1),e.append("text").attr("x",$+D).attr("y",v).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-inter), Inter, Helvetica, Arial").attr("font-size","12px").attr("font-weight","500").attr("fill","var(--text-warning-primary, #CD7004)").text(R),$+=V+C}),l){const R=r+a/2-8-$,O=e.append("text").attr("x",$).attr("y",v).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-inter), Inter, Helvetica, Arial").attr("font-size","16px").attr("font-weight","500").attr("fill",f);ne(O,R,l)}if(u){const R=p+x+y/2,O=m?wt+fn:0;m&&bn(e,r-a/2+8,R);const V=a-16-O,d=e.append("text").attr("x",r-a/2+8+O).attr("y",R).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-fira-code), Fira Code, monospace").attr("font-size","12px").attr("font-weight","400").attr("fill",f);ne(d,V,u)}}function Ca(t){const{nodeGroup:e,x:n,y:r,w:i,h:a,height:o,isVirtual:c,showVirtualStyle:s,nodeContent:l,labelText:u,addressText:f,nodeTextColor:h,nodeBackground:g,hasCustomBackground:m,hasChainIcon:x}=t,y=4,p=s?"#EF4444":"var(--border-primary, #D3D1D4)",w=e.append("path").attr("d",re(n-i/2,o-r-a/2,i,a,{topLeft:y,topRight:y,bottomLeft:y,bottomRight:y})).attr("fill",m?g:"var(--bg-primary, #fff)").attr("stroke",p).attr("stroke-width",s?2:1);if(!c){const E=e.append("rect").attr("x",n-i/2-4).attr("y",o-r-a/2-4).attr("width",i+8).attr("height",a+8).attr("rx",5).attr("ry",5).attr("fill","none").attr("stroke","#000000").attr("stroke-width",2).attr("opacity",0).style("pointer-events","none");w.style("cursor","pointer").on("mouseenter",function(){E.attr("opacity",1)}).on("mouseleave",function(){E.attr("opacity",0)})}if(l)if(c){const E=u||f;e.append("text").attr("x",n).attr("y",o-r).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family","Inter, Helvetica, Arial").attr("font-size","10px").attr("fill","#991B1B").text(E.length>20?E.slice(0,20)+"...":E)}else{const E=f||u,k=o-r,$=x?wt+fn:0;x&&bn(e,n-i/2+8,k);const v=i-16-$,S=e.append("text").attr("x",n-i/2+8+$).attr("y",k).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","var(--font-fira-code), Fira Code, monospace").attr("font-size","12px").attr("font-weight","400").attr("fill",h);ne(S,v,E)}}function Ma(t,e,n,r,i){const a=t.getPosition();if(!a)return;const[o,c]=a,s=t.getWidthPoints(),l=t.getHeightPoints(),u=t.virtualNode;if(u&&!r)return;const f=e.append("g").attr("class",u?"node virtual-node":"node").attr("id",t.name).attr("data-node-id",t.name);let h=null;try{t.label&&(h=pt(t.label))}catch(v){h=ga(t.label),h||console.warn(`Failed to decode node label for ${t.name}:`,v)}h!=null&&h.key&&f.attr("data-key",h.key);const g=r&&u,m=(h==null?void 0:h.tags)||[],x=(h==null?void 0:h.label)||"",y=(h==null?void 0:h.text)||"",p=(h==null?void 0:h.color)||"var(--text-primary, #1A171B)",w=(h==null?void 0:h.background)||"white",E=w!=="white",k=m.length>0||x.length>0,$={nodeGroup:f,g:e,x:o,y:c,w:s,h:l,height:n,isVirtual:u,showVirtualStyle:g,nodeContent:h,badges:m,labelText:x,addressText:y,nodeTextColor:p,nodeBackground:w,hasCustomBackground:E,hasChainIcon:i};k&&!u?Ia($):Ca($),!t.label&&t._ldraw_&&t._ldraw_.length>0&&!u&&t._ldraw_.forEach(v=>{v.op==="T"&&v.text&&f.append("text").attr("x",o-s/2+8).attr("y",n-c).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family",v.face||"Inter, Helvetica, Arial").attr("font-size",`${v.size||11}px`).attr("fill",v.color||"#334155").text(v.text)})}function Da(t,e,n,r,i){e.forEach(a=>{a.nodes.forEach(o=>{Ma(o,t,n,r,i)})})}const Pa=`
13
13
  <style>
14
14
  @keyframes selected-pulse {
15
15
  0%, 100% {
@@ -103,4 +103,4 @@
103
103
  cursor: pointer;
104
104
  }
105
105
  </style>
106
- `;function it(t,e,n){let r="#000000",i="#000000",a="#000000";e.forEach(o=>{switch(o.op){case"c":o.color&&(r=o.color);break;case"C":o.color&&(i=o.color);break;case"F":o.color&&(a=o.color);break;case"T":o.pt&&o.text&&t.append("text").attr("x",o.pt[0]).attr("y",n-o.pt[1]).attr("text-anchor",o.align==="l"?"start":o.align==="r"?"end":"middle").attr("font-family",o.face||"Inter, Helvetica, Arial").attr("font-size",`${o.size||12}px`).attr("fill",o.color||a).text(o.text);break;case"p":if(o.points){const c=o.points.map(([s,l])=>[s,n-l]);t.append("polygon").attr("points",c.map(s=>s.join(",")).join(" ")).attr("fill",i).attr("stroke",r)}break;case"P":if(o.points){const c=o.points.map(([s,l])=>[s,n-l]);t.append("polygon").attr("points",c.map(s=>s.join(",")).join(" ")).attr("fill","none").attr("stroke",r)}break;case"e":if(o.rect){const[c,s,l,u]=o.rect;t.append("ellipse").attr("cx",c).attr("cy",n-s).attr("rx",l).attr("ry",u).attr("fill",i).attr("stroke",r)}break;case"E":if(o.rect){const[c,s,l,u]=o.rect;t.append("ellipse").attr("cx",c).attr("cy",n-s).attr("rx",l).attr("ry",u).attr("fill","none").attr("stroke",r)}break;case"b":if(o.points){const c=o.points.map(([l,u])=>[l,n-u]),s=`M${c[0][0]},${c[0][1]} C${c.slice(1).map(l=>`${l[0]},${l[1]}`).join(" ")}`;t.append("path").attr("d",s).attr("fill","none").attr("stroke",r).attr("stroke-width",1)}break;case"B":if(o.points){const c=o.points.map(([l,u])=>[l,n-u]),s=`M${c[0][0]},${c[0][1]} C${c.slice(1).map(l=>`${l[0]},${l[1]}`).join(" ")}`;t.append("path").attr("d",s).attr("fill",i).attr("stroke",r).attr("stroke-width",1)}break;case"L":if(o.points){const s=`M${o.points.map(([l,u])=>[l,n-u]).map(l=>`${l[0]},${l[1]}`).join(" L")}`;t.append("path").attr("d",s).attr("fill","none").attr("stroke",r).attr("stroke-width",1)}break}})}function za(t,e,n=14){var y;t.innerHTML="";const r=((y=e.bb)==null?void 0:y.split(",").map(Number))||pn,[,,i,a]=r,o=P(t).append("svg").attr("width","100%").attr("height","100%").attr("viewBox",`0 0 ${i} ${a}`);o.append("defs").html(Ya);const c=o.append("g").attr("id","graph0");(e.objects||[]).forEach(p=>{const w=c.append("g").attr("class","node").attr("id",p.name);p._draw_&&it(w,p._draw_,a),p._ldraw_&&it(w,p._ldraw_,a)});const l=e.edges||[];l.forEach(p=>{const w=c.append("g").attr("class","edge").attr("id",`edge_${p._gvid}`);p._draw_&&it(w,p._draw_,a),p._hdraw_&&it(w,p._hdraw_,a),p._tdraw_&&it(w,p._tdraw_,a),p._ldraw_&&it(w,p._ldraw_,a)});const u=cn().scaleExtent([.1,10]).on("zoom",p=>{c.attr("transform",p.transform.toString())});o.call(u);const f=t.clientWidth||gn,h=n*(f/i),g=l.filter(p=>{if(!p.label)return!1;try{const w=pt(p.label);return(w==null?void 0:w.index)!==void 0}catch{return!1}}).map(p=>{var E;const w=pt(p.label);return{id:p._gvid,index:w.index,sourceNodeId:String(p.tail??""),targetNodeId:String(p.head??""),label:((E=w.elems)==null?void 0:E.map(k=>k.text).join(" "))||null}}).sort((p,w)=>p.index-w.index),m=o.node(),x=c.node();if(!m||!x)throw new Error("Failed to construct SVG elements");return{zoomBehavior:u,svgElement:m,gElement:x,baseFontSize:h,viewBoxWidth:i,edges:g}}const La="data-label-center-x",Ra="data-label-center-y";function Oa(t,e,n){const i=(t.clientWidth||gn)/e,a=ra/(n*i);return Math.max(ia,a)}function Ha(t,e,n,r){if(e.initialTransform)return e.initialTransform;if(e.headless){const l=ee;return{x:n/2-n/2*l,y:r/2-r/2*l,k:l}}const i=t.node(),a=i?i.getBBox():{x:0,y:0,width:n,height:r},o=ee*n/a.width,c=a.x+a.width/2,s=a.y+a.height/2;return{x:n/2-c*o,y:r/2-s*o,k:o}}function Ba(t,e){return ee*t/e}function Fa(t,e,n){const r=e/n;return na/(t*r)}function Wa(t,e,n,r){return cn().scaleExtent([.1,Oa(e,n,r)]).on("zoom",i=>{const a=i.transform;!isNaN(a.x)&&!isNaN(a.y)&&!isNaN(a.k)&&t.attr("transform",a.toString())})}function Ga(t,e){t.on("mouseenter",function(){P(this).raise();const n=P(this).select(".arrow-group");if(!n.empty()){const s=n.attr("data-base-transform")||"";n.attr("transform",s+" scale(1.3)")}const r=e.select(".edge.selected").size()>0,i=P(this).classed("selected"),a=P(this).attr("data-source-node-id"),o=P(this).attr("data-target-node-id"),c=P(this).attr("id");r&&!i?(P(this).classed("hover-highlight",!0),e.selectAll(".node").each(function(){const s=P(this).attr("data-node-id");(s===a||s===o)&&P(this).classed("hover-highlight",!0)})):(e.selectAll(".edge").each(function(){P(this).attr("id")!==c&&P(this).classed("dimmed",!0)}),e.selectAll(".node").each(function(){const s=P(this).attr("data-node-id");s!==a&&s!==o&&P(this).classed("dimmed",!0)}))}).on("mouseleave",function(){const n=P(this).select(".arrow-group");if(!n.empty()){const r=n.attr("data-base-transform")||"";n.attr("transform",r)}e.selectAll(".edge.hover-highlight").classed("hover-highlight",!1),e.selectAll(".node.hover-highlight").classed("hover-highlight",!1),e.selectAll(".edge.dimmed").classed("dimmed",!1),e.selectAll(".node.dimmed").classed("dimmed",!1)})}function Va(t,e,n,r,i,a,o){if(e&&e.length>0){const c=o*.62,s=1,l=0,u=2,f=e.map(m=>{const x=m.text.length*c,y=m.background&&m.background!=="transparent",p=x+s*2;return{textWidth:x,hasBackground:y,totalWidth:p}}),h=f.reduce((m,x,y)=>m+x.totalWidth+(y>0?l:0),0);let g=n-h/2;e.forEach((m,x)=>{const y=f[x];x>0&&(g+=l),y.hasBackground&&t.append("rect").attr("class","label-elem-bg").attr("x",g).attr("y",r-o/2-u).attr("width",y.totalWidth).attr("height",o+u*2).attr("rx",2).attr("ry",2).attr("fill",m.background).style("pointer-events","none"),t.append("text").attr("class","label-text-elem").attr("x",g+s).attr("y",r).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","Inter, Helvetica, Arial").attr("font-size",o+"px").attr("font-weight","500").attr("fill",m.color&&m.color.length>0?m.color:i).style("pointer-events","none").text(m.text),g+=y.totalWidth})}else t.append("text").attr("class","label-text").attr("x",n).attr("y",r).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family","Inter, Helvetica, Arial").attr("font-size",o+"px").attr("font-weight","500").attr("fill",i).style("pointer-events","none").text(a)}function Xa(t){const{edge:e,edgeGroup:n,labelMidpoint:r,edgeColor:i,isSelected:a,ctx:o}=t,{config:c,onEdgeSelect:s,onEdgeLabelClick:l,debug:u}=o,{displayElems:f,finalText:h,boxWidth:g,boxHeight:m}=wn(e,c,o.edgeCount),x=e.edgeIndex!==void 0,y=g,p=m,w=r.y,E=r.x,k=n.append("g").attr("class","label-area");k.append("rect").attr("class","label-bg").attr("x",E-y/2).attr("y",w-p/2).attr("width",y).attr("height",p).attr("rx",5).attr("ry",5).attr("fill","var(--bg-primary, #fff)").attr("stroke","var(--border-tertiary, #F2F2F3)").attr("stroke-width",1.5);const $=E;x&&s&&n.style("cursor","pointer").on("click",function(v){v.stopPropagation(),!a&&s(e.edgeIndex)}),x&&l&&k.on("click",function(v){v.stopPropagation(),l(e.edgeIndex)}),Va(k,f,$,w,i,h,c.labelFontSize),u&&n.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",4).attr("fill","blue").attr("opacity",.8).style("pointer-events","none").attr("class","debug-label-center")}function qa(t,e,n){e._ldraw_.forEach(r=>{if(r.op==="T"&&r.text){const i=r.size||10,a=i*.6,o=r.text.length*a,c=i,s=6,l=o+s*2,u=c+s*2,f=4,h=n.y;t.append("rect").attr("x",n.x-l/2).attr("y",h-u/2).attr("width",l).attr("height",u).attr("rx",f).attr("ry",f).attr("fill","white").attr("stroke","#d0d0d0").attr("stroke-width",.5),t.append("text").attr("x",n.x).attr("y",h).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family",r.face||"Inter, Helvetica, Arial").attr("font-size",`${i}px`).attr("fill",r.color||"#666").text(r.text)}})}function Ua(t,e,n){e._draw_&&e._draw_.forEach(r=>{if(r.op==="b"&&r.points){const i=r.points.map(([o,c])=>[o,n-c]),a=`M${i[0][0]},${i[0][1]} C${i.slice(1).map(o=>`${o[0]},${o[1]}`).join(" ")}`;t.append("path").attr("d",a).attr("fill","none").attr("stroke",r.color||"#9AA4B2").attr("stroke-width",2)}}),e._hdraw_&&e._hdraw_.forEach(r=>{if(r.op==="P"&&r.points){const i=r.points.map(([a,o])=>[a,n-o]);t.append("polygon").attr("points",i.map(a=>a.join(",")).join(" ")).attr("fill",r.color||"#9AA4B2")}}),e._ldraw_&&it(t,e._ldraw_,n)}function Za(t,e){var C,R;const{g:n,height:r,config:i,useOrthogonalRendering:a,selectedEdgeId:o,debug:c}=e,s=o!=null&&t.edgeIndex===o,l=t.getColor(),u=n.append("g").attr("class",s?"edge selected":"edge").attr("id",`edge_${t._gvid}`).attr("data-edge-id",t.edgeIndex!==void 0?String(t.edgeIndex):"").attr("data-is-base",t.isBaseEdge?"true":"false").attr("data-color",l).attr("data-source-node-id",((C=t.sourceNode)==null?void 0:C.name)||"").attr("data-target-node-id",((R=t.targetNode)==null?void 0:R.name)||"").attr("style",`--edge-color: ${l}`),f=t.getStartPoint(),h=t.getEndPoint(),g=t.getDirection(),m=i.arrowWidth;if(!(f&&h&&g)){Ua(u,t,r);return}const x={x:f.x,y:r-f.y},y={x:h.x,y:r-h.y},p={x:y.x,y:y.y};let w={x:y.x,y:y.y};g==="right"?w={x:y.x-m,y:y.y}:g==="left"?w={x:y.x+m,y:y.y}:g==="self"&&(w={x:y.x+m,y:y.y});const E=ya(t,g,x,w,r,i,a),k=c&&t.isBaseEdge?"#000000":t.getColor(),$=c&&t.isBaseEdge?4:1.5;u.append("path").attr("d",E).attr("fill","none").attr("stroke","transparent").attr("stroke-width",10).attr("class","edge-hit-area").style("cursor","pointer"),u.append("path").attr("d",E).attr("fill","none").attr("stroke",k).attr("stroke-width",$).attr("class","edge-path").style("pointer-events","none"),Ga(u,n);const v=12;let S="";g==="right"?S=`translate(${p.x-v/2}, ${p.y})`:g==="left"?S=`translate(${p.x+v/2}, ${p.y}) rotate(180)`:g==="self"&&(S=`translate(${p.x+v/2}, ${p.y}) rotate(180)`),u.append("g").attr("class","arrow-group").attr("transform",S).attr("data-base-transform",S).append("use").attr("class","edge-arrow").attr("href","#arrow-right").attr("width",v).attr("height",v).attr("x",-v/2).attr("y",-v/2).attr("fill",k).attr("stroke",k).style("stroke-width",0);const D={x:(x.x+y.x)/2,y:t.midY};if(u.attr(La,D.x).attr(Ra,D.y),t.label?Xa({edge:t,edgeGroup:u,labelMidpoint:D,edgeColor:k,isSelected:s,ctx:e}):t._ldraw_&&qa(u,t,D),c){let H;t.depth===0?H=`d:0 dir:${t.baseDirection||"base"} off:${t.baseOffset} id:${t._gvid}`:H=`d:${t.depth} dir:${t.baseDirection||"?"} midY:${Math.round(t.midY)} id:${t._gvid}`,u.append("text").attr("x",D.x).attr("y",D.y+15).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family","monospace").attr("font-size","9px").attr("fill","#999").text(H)}}function Ka(t){const e=t.node();if(!e)return;const n=e.getBBox(),r=n.x+n.width/2,i=n.y+n.height/2;t.append("rect").attr("x",n.x).attr("y",n.y).attr("width",n.width).attr("height",n.height).attr("fill","none").attr("stroke","yellow").attr("stroke-width",3).attr("opacity",.8).style("pointer-events","none").attr("class","debug-root-border"),t.append("circle").attr("cx",r).attr("cy",i).attr("r",10).attr("fill","yellow").attr("stroke","orange").attr("stroke-width",2).attr("opacity",.9).style("pointer-events","none").attr("class","debug-geometric-center")}function Qa(t,e,n){const r=Math.max(e,n)*.003;t.append("circle").attr("cx",e/2).attr("cy",n/2).attr("r",r).attr("fill","red").attr("opacity",.9).style("pointer-events","none").attr("class","debug-center-marker")}function Ja(t={}){return{nodeMapping:{},maxDepth:null,includeLesserDepths:!0,config:vn(),useOrthogonalRendering:!0,svgFontSize:14,debug:!1,selectedEdgeId:null,onEdgeSelect:void 0,onEdgeLabelClick:void 0,nodeWidth:ln,nodeHeight:un,nodeColumnSpacing:null,enableWheelZoom:!0,headless:!1,initialTransform:void 0,chainIcon:void 0,...t}}function ja(t){return t.replace(/<svg\b([^>]*)>/i,(e,n)=>{const r=n.replace(/\s+(width|height|id)="[^"]*"/gi,"");return`<svg id="${hn}" width="${wt}" height="${wt}"${r}>`})}function ts(t,e,n){var z;const{maxDepth:r,includeLesserDepths:i,config:a,useOrthogonalRendering:o,svgFontSize:c,debug:s,selectedEdgeId:l,onEdgeSelect:u,onEdgeLabelClick:f,nodeWidth:h,nodeHeight:g,nodeColumnSpacing:m,enableWheelZoom:x,headless:y,chainIcon:p}=n;t.innerHTML="";const w=((z=e.bb)==null?void 0:z.split(",").map(Number))||pn,[,,E,k]=w;let $=E;const v=k,S=P(t).append("svg").attr("width","100%").attr("height","100%").attr("viewBox",`0 0 ${$} ${v}`);S.append("defs").html(Pa+(p?ja(p):""));const M=S.append("g").attr("id","graph0"),{nodes:D,edges:C}=Sa(e,h,g),{nodeColumnMap:R,nodeColumns:H,edgeColumns:G}=Ea(D,C),d=C.length,N=m??ka(D,C,a,d);$=Aa(H,v,N),S.attr("viewBox",`0 0 ${$} ${v}`),Da(M,H,v,s,p!==void 0),o&&(Na(H,v),$a(C,G),xa(G,H,R,v,a));const _=Wa(M,t,$,c);y||S.call(_),!y&&!x&&(S.on("wheel.zoom",null),S.on("dblclick.zoom",null)),C.forEach(L=>{if(r!==null){if(i){if(L.depth>r)return}else if(L.depth!==r)return}Za(L,{g:M,height:v,config:a,useOrthogonalRendering:o,zoomBehavior:_,svgSelection:S,container:t,svgWidth:$,svgHeight:v,selectedEdgeId:l,onEdgeSelect:u,onEdgeLabelClick:f,debug:s,edgeCount:d})}),s&&Ka(M);const b=Ha(M,n,$,v),A=`translate(${b.x},${b.y}) scale(${b.k})`;y?M.attr("transform",A):S.call(_.transform,Et.translate(b.x,b.y).scale(b.k)),s&&Qa(S,$,v);const T=C.filter(L=>L.edgeIndex!==void 0).map(L=>{var O,B;return{id:L._gvid,index:L.edgeIndex,sourceNodeId:((O=L.sourceNode)==null?void 0:O.name)||"",targetNodeId:((B=L.targetNode)==null?void 0:B.name)||"",label:L.getLabelText()}}).sort((L,O)=>L.index-O.index),I=S.node(),Y=M.node();if(!I||!Y)throw new Error("Failed to construct SVG elements");return{zoomBehavior:_,svgElement:I,gElement:Y,baseFontSize:c,viewBoxWidth:$,edges:T,initialTransform:b}}exports.DEFAULT_LAYOUT_CONFIG=he;exports.DEFAULT_NODE_HEIGHT=un;exports.DEFAULT_NODE_WIDTH=ln;exports.computeDetailScale=Fa;exports.computeOverviewScale=Ba;exports.createLayoutConfig=vn;exports.createRenderOptions=Ja;exports.decodeDotString=pt;exports.encodeDotString=En;exports.identity=Et;exports.renderCustomGraph=ts;exports.renderNativeGraph=za;exports.select=P;exports.transform=sn;
106
+ `;function it(t,e,n){let r="#000000",i="#000000",a="#000000";e.forEach(o=>{switch(o.op){case"c":o.color&&(r=o.color);break;case"C":o.color&&(i=o.color);break;case"F":o.color&&(a=o.color);break;case"T":o.pt&&o.text&&t.append("text").attr("x",o.pt[0]).attr("y",n-o.pt[1]).attr("text-anchor",o.align==="l"?"start":o.align==="r"?"end":"middle").attr("font-family",o.face||"Inter, Helvetica, Arial").attr("font-size",`${o.size||12}px`).attr("fill",o.color||a).text(o.text);break;case"p":if(o.points){const c=o.points.map(([s,l])=>[s,n-l]);t.append("polygon").attr("points",c.map(s=>s.join(",")).join(" ")).attr("fill",i).attr("stroke",r)}break;case"P":if(o.points){const c=o.points.map(([s,l])=>[s,n-l]);t.append("polygon").attr("points",c.map(s=>s.join(",")).join(" ")).attr("fill","none").attr("stroke",r)}break;case"e":if(o.rect){const[c,s,l,u]=o.rect;t.append("ellipse").attr("cx",c).attr("cy",n-s).attr("rx",l).attr("ry",u).attr("fill",i).attr("stroke",r)}break;case"E":if(o.rect){const[c,s,l,u]=o.rect;t.append("ellipse").attr("cx",c).attr("cy",n-s).attr("rx",l).attr("ry",u).attr("fill","none").attr("stroke",r)}break;case"b":if(o.points){const c=o.points.map(([l,u])=>[l,n-u]),s=`M${c[0][0]},${c[0][1]} C${c.slice(1).map(l=>`${l[0]},${l[1]}`).join(" ")}`;t.append("path").attr("d",s).attr("fill","none").attr("stroke",r).attr("stroke-width",1)}break;case"B":if(o.points){const c=o.points.map(([l,u])=>[l,n-u]),s=`M${c[0][0]},${c[0][1]} C${c.slice(1).map(l=>`${l[0]},${l[1]}`).join(" ")}`;t.append("path").attr("d",s).attr("fill",i).attr("stroke",r).attr("stroke-width",1)}break;case"L":if(o.points){const s=`M${o.points.map(([l,u])=>[l,n-u]).map(l=>`${l[0]},${l[1]}`).join(" L")}`;t.append("path").attr("d",s).attr("fill","none").attr("stroke",r).attr("stroke-width",1)}break}})}function za(t,e,n=14){var y;t.innerHTML="";const r=((y=e.bb)==null?void 0:y.split(",").map(Number))||pn,[,,i,a]=r,o=Y(t).append("svg").attr("width","100%").attr("height","100%").attr("viewBox",`0 0 ${i} ${a}`);o.append("defs").html(Ya);const c=o.append("g").attr("id","graph0");(e.objects||[]).forEach(p=>{const w=c.append("g").attr("class","node").attr("id",p.name);p._draw_&&it(w,p._draw_,a),p._ldraw_&&it(w,p._ldraw_,a)});const l=e.edges||[];l.forEach(p=>{const w=c.append("g").attr("class","edge").attr("id",`edge_${p._gvid}`);p._draw_&&it(w,p._draw_,a),p._hdraw_&&it(w,p._hdraw_,a),p._tdraw_&&it(w,p._tdraw_,a),p._ldraw_&&it(w,p._ldraw_,a)});const u=cn().scaleExtent([.1,10]).on("zoom",p=>{c.attr("transform",p.transform.toString())});o.call(u);const f=t.clientWidth||gn,h=n*(f/i),g=l.filter(p=>{if(!p.label)return!1;try{const w=pt(p.label);return(w==null?void 0:w.index)!==void 0}catch{return!1}}).map(p=>{var E;const w=pt(p.label);return{id:p._gvid,index:w.index,sourceNodeId:String(p.tail??""),targetNodeId:String(p.head??""),label:((E=w.elems)==null?void 0:E.map(k=>k.text).join(" "))||null}}).sort((p,w)=>p.index-w.index),m=o.node(),x=c.node();if(!m||!x)throw new Error("Failed to construct SVG elements");return{zoomBehavior:u,svgElement:m,gElement:x,baseFontSize:h,viewBoxWidth:i,edges:g}}const La="data-label-center-x",Ra="data-label-center-y";function Oa(t,e,n){const i=(t.clientWidth||gn)/e,a=ra/(n*i);return Math.max(ia,a)}function Ba(t,e,n,r){if(e.initialTransform)return e.initialTransform;if(e.headless){const l=ee;return{x:n/2-n/2*l,y:r/2-r/2*l,k:l}}const i=t.node(),a=i?i.getBBox():{x:0,y:0,width:n,height:r},o=ee*n/a.width,c=a.x+a.width/2,s=a.y+a.height/2;return{x:n/2-c*o,y:r/2-s*o,k:o}}function Ha(t,e){return ee*t/e}function Fa(t,e,n){const r=e/n;return na/(t*r)}function Wa(t,e,n,r){return cn().scaleExtent([.1,Oa(e,n,r)]).on("zoom",i=>{const a=i.transform;!isNaN(a.x)&&!isNaN(a.y)&&!isNaN(a.k)&&t.attr("transform",a.toString())})}function Ga(t,e){t.on("mouseenter",function(){Y(this).raise();const n=Y(this).select(".arrow-group");if(!n.empty()){const s=n.attr("data-base-transform")||"";n.attr("transform",s+" scale(1.3)")}const r=e.select(".edge.selected").size()>0,i=Y(this).classed("selected"),a=Y(this).attr("data-source-node-id"),o=Y(this).attr("data-target-node-id"),c=Y(this).attr("id");r&&!i?(Y(this).classed("hover-highlight",!0),e.selectAll(".node").each(function(){const s=Y(this).attr("data-node-id");(s===a||s===o)&&Y(this).classed("hover-highlight",!0)})):(e.selectAll(".edge").each(function(){Y(this).attr("id")!==c&&Y(this).classed("dimmed",!0)}),e.selectAll(".node").each(function(){const s=Y(this).attr("data-node-id");s!==a&&s!==o&&Y(this).classed("dimmed",!0)}))}).on("mouseleave",function(){const n=Y(this).select(".arrow-group");if(!n.empty()){const r=n.attr("data-base-transform")||"";n.attr("transform",r)}e.selectAll(".edge.hover-highlight").classed("hover-highlight",!1),e.selectAll(".node.hover-highlight").classed("hover-highlight",!1),e.selectAll(".edge.dimmed").classed("dimmed",!1),e.selectAll(".node.dimmed").classed("dimmed",!1)})}function Va(t,e,n,r,i,a,o){if(e&&e.length>0){const c=o*.62,s=1,l=0,u=2,f=e.map(m=>{const x=m.text.length*c,y=m.background&&m.background!=="transparent",p=x+s*2;return{textWidth:x,hasBackground:y,totalWidth:p}}),h=f.reduce((m,x,y)=>m+x.totalWidth+(y>0?l:0),0);let g=n-h/2;e.forEach((m,x)=>{const y=f[x];x>0&&(g+=l),y.hasBackground&&t.append("rect").attr("class","label-elem-bg").attr("x",g).attr("y",r-o/2-u).attr("width",y.totalWidth).attr("height",o+u*2).attr("rx",2).attr("ry",2).attr("fill",m.background).style("pointer-events","none"),t.append("text").attr("class","label-text-elem").attr("x",g+s).attr("y",r).attr("text-anchor","start").attr("dominant-baseline","middle").attr("font-family","Inter, Helvetica, Arial").attr("font-size",o+"px").attr("font-weight","500").attr("fill",m.color&&m.color.length>0?m.color:i).style("pointer-events","none").text(m.text),g+=y.totalWidth})}else t.append("text").attr("class","label-text").attr("x",n).attr("y",r).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family","Inter, Helvetica, Arial").attr("font-size",o+"px").attr("font-weight","500").attr("fill",i).style("pointer-events","none").text(a)}function Xa(t){const{edge:e,edgeGroup:n,labelMidpoint:r,edgeColor:i,isSelected:a,ctx:o}=t,{config:c,onEdgeSelect:s,onEdgeLabelClick:l,debug:u}=o,{displayElems:f,finalText:h,boxWidth:g,boxHeight:m}=wn(e,c,o.edgeCount),x=e.edgeIndex!==void 0,y=g,p=m,w=r.y,E=r.x,k=n.append("g").attr("class","label-area");k.append("rect").attr("class","label-bg").attr("x",E-y/2).attr("y",w-p/2).attr("width",y).attr("height",p).attr("rx",5).attr("ry",5).attr("fill","var(--bg-primary, #fff)").attr("stroke","var(--border-tertiary, #F2F2F3)").attr("stroke-width",1.5);const $=E;x&&s&&n.style("cursor","pointer").on("click",function(v){v.stopPropagation(),!a&&s(e.edgeIndex)}),x&&l&&k.on("click",function(v){v.stopPropagation(),l(e.edgeIndex)}),Va(k,f,$,w,i,h,c.labelFontSize),u&&n.append("circle").attr("cx",r.x).attr("cy",r.y).attr("r",4).attr("fill","blue").attr("opacity",.8).style("pointer-events","none").attr("class","debug-label-center")}function qa(t,e,n){e._ldraw_.forEach(r=>{if(r.op==="T"&&r.text){const i=r.size||10,a=i*.6,o=r.text.length*a,c=i,s=6,l=o+s*2,u=c+s*2,f=4,h=n.y;t.append("rect").attr("x",n.x-l/2).attr("y",h-u/2).attr("width",l).attr("height",u).attr("rx",f).attr("ry",f).attr("fill","white").attr("stroke","#d0d0d0").attr("stroke-width",.5),t.append("text").attr("x",n.x).attr("y",h).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family",r.face||"Inter, Helvetica, Arial").attr("font-size",`${i}px`).attr("fill",r.color||"#666").text(r.text)}})}function Ua(t,e,n){e._draw_&&e._draw_.forEach(r=>{if(r.op==="b"&&r.points){const i=r.points.map(([o,c])=>[o,n-c]),a=`M${i[0][0]},${i[0][1]} C${i.slice(1).map(o=>`${o[0]},${o[1]}`).join(" ")}`;t.append("path").attr("d",a).attr("fill","none").attr("stroke",r.color||"#9AA4B2").attr("stroke-width",2)}}),e._hdraw_&&e._hdraw_.forEach(r=>{if(r.op==="P"&&r.points){const i=r.points.map(([a,o])=>[a,n-o]);t.append("polygon").attr("points",i.map(a=>a.join(",")).join(" ")).attr("fill",r.color||"#9AA4B2")}}),e._ldraw_&&it(t,e._ldraw_,n)}function Za(t,e){var C,R;const{g:n,height:r,config:i,useOrthogonalRendering:a,selectedEdgeId:o,debug:c}=e,s=o!=null&&t.edgeIndex===o,l=t.getColor(),u=n.append("g").attr("class",s?"edge selected":"edge").attr("id",`edge_${t._gvid}`).attr("data-edge-id",t.edgeIndex!==void 0?String(t.edgeIndex):"").attr("data-is-base",t.isBaseEdge?"true":"false").attr("data-color",l).attr("data-source-node-id",((C=t.sourceNode)==null?void 0:C.name)||"").attr("data-target-node-id",((R=t.targetNode)==null?void 0:R.name)||"").attr("style",`--edge-color: ${l}`),f=t.getStartPoint(),h=t.getEndPoint(),g=t.getDirection(),m=i.arrowWidth;if(!(f&&h&&g)){Ua(u,t,r);return}const x={x:f.x,y:r-f.y},y={x:h.x,y:r-h.y},p={x:y.x,y:y.y};let w={x:y.x,y:y.y};g==="right"?w={x:y.x-m,y:y.y}:g==="left"?w={x:y.x+m,y:y.y}:g==="self"&&(w={x:y.x+m,y:y.y});const E=ya(t,g,x,w,r,i,a),k=c&&t.isBaseEdge?"#000000":t.getColor(),$=c&&t.isBaseEdge?4:1.5;u.append("path").attr("d",E).attr("fill","none").attr("stroke","transparent").attr("stroke-width",10).attr("class","edge-hit-area").style("cursor","pointer"),u.append("path").attr("d",E).attr("fill","none").attr("stroke",k).attr("stroke-width",$).attr("class","edge-path").style("pointer-events","none"),Ga(u,n);const v=12;let S="";g==="right"?S=`translate(${p.x-v/2}, ${p.y})`:g==="left"?S=`translate(${p.x+v/2}, ${p.y}) rotate(180)`:g==="self"&&(S=`translate(${p.x+v/2}, ${p.y}) rotate(180)`),u.append("g").attr("class","arrow-group").attr("transform",S).attr("data-base-transform",S).append("use").attr("class","edge-arrow").attr("href","#arrow-right").attr("width",v).attr("height",v).attr("x",-v/2).attr("y",-v/2).attr("fill",k).attr("stroke",k).style("stroke-width",0);const P={x:(x.x+y.x)/2,y:t.midY};if(u.attr(La,P.x).attr(Ra,P.y),t.label?Xa({edge:t,edgeGroup:u,labelMidpoint:P,edgeColor:k,isSelected:s,ctx:e}):t._ldraw_&&qa(u,t,P),c){let O;t.depth===0?O=`d:0 dir:${t.baseDirection||"base"} off:${t.baseOffset} id:${t._gvid}`:O=`d:${t.depth} dir:${t.baseDirection||"?"} midY:${Math.round(t.midY)} id:${t._gvid}`,u.append("text").attr("x",P.x).attr("y",P.y+15).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("font-family","monospace").attr("font-size","9px").attr("fill","#999").text(O)}}function Ka(t){const e=t.node();if(!e)return;const n=e.getBBox(),r=n.x+n.width/2,i=n.y+n.height/2;t.append("rect").attr("x",n.x).attr("y",n.y).attr("width",n.width).attr("height",n.height).attr("fill","none").attr("stroke","yellow").attr("stroke-width",3).attr("opacity",.8).style("pointer-events","none").attr("class","debug-root-border"),t.append("circle").attr("cx",r).attr("cy",i).attr("r",10).attr("fill","yellow").attr("stroke","orange").attr("stroke-width",2).attr("opacity",.9).style("pointer-events","none").attr("class","debug-geometric-center")}function Qa(t,e,n){const r=Math.max(e,n)*.003;t.append("circle").attr("cx",e/2).attr("cy",n/2).attr("r",r).attr("fill","red").attr("opacity",.9).style("pointer-events","none").attr("class","debug-center-marker")}function Ja(t={}){return{nodeMapping:{},maxDepth:null,includeLesserDepths:!0,config:vn(),useOrthogonalRendering:!0,svgFontSize:14,debug:!1,selectedEdgeId:null,onEdgeSelect:void 0,onEdgeLabelClick:void 0,nodeWidth:ln,nodeHeight:un,nodeColumnSpacing:null,enableWheelZoom:!0,headless:!1,initialTransform:void 0,chainIcon:void 0,...t}}function ja(t){return t.replace(/<svg\b([^>]*)>/i,(e,n)=>{const r=n.replace(/\s+(width|height|id)="[^"]*"/gi,"");return`<svg id="${hn}" width="${wt}" height="${wt}"${r}>`})}function ts(t,e,n){var W;const{maxDepth:r,includeLesserDepths:i,config:a,useOrthogonalRendering:o,svgFontSize:c,debug:s,selectedEdgeId:l,onEdgeSelect:u,onEdgeLabelClick:f,nodeWidth:h,nodeHeight:g,nodeColumnSpacing:m,enableWheelZoom:x,headless:y,chainIcon:p}=n;t.innerHTML="";const w=((W=e.bb)==null?void 0:W.split(",").map(Number))||pn,[,,E,k]=w;let $=E;const v=k,S=Y(t).append("svg").attr("width","100%").attr("height","100%").attr("viewBox",`0 0 ${$} ${v}`);S.append("defs").html(Pa+(p?ja(p):""));const D=S.append("g").attr("id","graph0"),{nodes:P,edges:C}=Sa(e,h,g),{nodeColumnMap:R,nodeColumns:O,edgeColumns:V}=Ea(P,C),d=C.length,N=m??ka(P,C,a,d);$=Aa(O,v,N),S.attr("viewBox",`0 0 ${$} ${v}`),Da(D,O,v,s,p!==void 0),o&&(Na(O,v),$a(C,V),xa(V,O,R,v,a));const _=Wa(D,t,$,c);y||S.call(_),!y&&!x&&(S.on("wheel.zoom",null),S.on("dblclick.zoom",null)),C.forEach(M=>{if(r!==null){if(i){if(M.depth>r)return}else if(M.depth!==r)return}Za(M,{g:D,height:v,config:a,useOrthogonalRendering:o,zoomBehavior:_,svgSelection:S,container:t,svgWidth:$,svgHeight:v,selectedEdgeId:l,onEdgeSelect:u,onEdgeLabelClick:f,debug:s,edgeCount:d})}),s&&Ka(D);const b=Ba(D,n,$,v),A=`translate(${b.x},${b.y}) scale(${b.k})`;y?D.attr("transform",A):S.call(_.transform,Et.translate(b.x,b.y).scale(b.k)),s&&Qa(S,$,v);const T=[];O.forEach(M=>{M.nodes.forEach(B=>{if(B.virtualNode)return;const H=B.getBounds();H&&T.push({x:H.x,y:v-H.y-H.height,width:H.width,height:H.height})})});const I=C.filter(M=>M.edgeIndex!==void 0).map(M=>{var B,H;return{id:M._gvid,index:M.edgeIndex,sourceNodeId:((B=M.sourceNode)==null?void 0:B.name)||"",targetNodeId:((H=M.targetNode)==null?void 0:H.name)||"",label:M.getLabelText()}}).sort((M,B)=>M.index-B.index),z=S.node(),L=D.node();if(!z||!L)throw new Error("Failed to construct SVG elements");return{zoomBehavior:_,svgElement:z,gElement:L,baseFontSize:c,viewBoxWidth:$,viewBoxHeight:v,edges:I,initialTransform:b,nodeBounds:T}}exports.DEFAULT_LAYOUT_CONFIG=he;exports.DEFAULT_NODE_HEIGHT=un;exports.DEFAULT_NODE_WIDTH=ln;exports.computeDetailScale=Fa;exports.computeOverviewScale=Ha;exports.createLayoutConfig=vn;exports.createRenderOptions=Ja;exports.decodeDotString=pt;exports.encodeDotString=En;exports.identity=Et;exports.renderCustomGraph=ts;exports.renderNativeGraph=za;exports.select=Y;exports.transform=sn;
package/dist/server.d.ts CHANGED
@@ -106,6 +106,14 @@ declare interface LayoutConfig {
106
106
  */
107
107
  export declare function layoutDot(dot: string): Promise<GraphvizJson>;
108
108
 
109
+ /** Axis-aligned box in SVG coordinates (y grows downward). */
110
+ declare interface NodeBounds {
111
+ x: number;
112
+ y: number;
113
+ width: number;
114
+ height: number;
115
+ }
116
+
109
117
  declare interface NodeMapping {
110
118
  sourceNodeId: string;
111
119
  targetNodeId: string;
@@ -140,6 +148,16 @@ export declare interface RenderToStringResult {
140
148
  initialTransform: InitialTransform;
141
149
  viewBoxWidth: number;
142
150
  edges: EdgeInfo[];
151
+ /**
152
+ * Minimap scene data — spread into `<MinimapStatic {...minimap} />` for the
153
+ * SSR first paint; the hydrated `GraphvizRenderer` (`showMinimap`) takes
154
+ * over with the interactive minimap.
155
+ */
156
+ minimap: {
157
+ nodes: NodeBounds[];
158
+ viewBoxWidth: number;
159
+ viewBoxHeight: number;
160
+ };
143
161
  }
144
162
 
145
163
  export { }