4 lines
74 KiB
JavaScript
4 lines
74 KiB
JavaScript
import{d as Ue,o as Ye,O as kn,w as Nn,c as E,r as I,q as T,t as An,B as Y,a as g,E as Cn,J as ot,D as M,F as dt,P as St,G as L,h as $n,N as Qt,b as _e,g as be,H as ke,f as J,x as Mn,j as Et}from"./index-DnbYEqLr.js";import{u as Sn}from"./transport-B_E2RH1i.js";var En={value:()=>{}};function Ut(){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 Ft(n)}function Ft(t){this._=t}function Tn(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}})}Ft.prototype=Ut.prototype={constructor:Ft,on:function(t,e){var n=this._,r=Tn(t+"",n),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(t=r[s]).type)&&(i=Rn(n[i],t.name)))return i;return}if(e!=null&&typeof e!="function")throw new Error("invalid callback: "+e);for(;++s<o;)if(i=(t=r[s]).type)n[i]=Ne(n[i],t.name,e);else if(e==null)for(i in n)n[i]=Ne(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 Ft(t)},call:function(t,e){if((i=arguments.length-2)>0)for(var n=new Array(i),r=0,i,s;r<i;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(s=this._[t],r=0,i=s.length;r<i;++r)s[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,s=r.length;i<s;++i)r[i].value.apply(e,n)}};function Rn(t,e){for(var n=0,r=t.length,i;n<r;++n)if((i=t[n]).name===e)return i.value}function Ne(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=En,t=t.slice(0,r).concat(t.slice(r+1));break}return n!=null&&t.push({name:e,value:n}),t}var ee="http://www.w3.org/1999/xhtml";const Ae={svg:"http://www.w3.org/2000/svg",xhtml:ee,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Yt(t){var e=t+="",n=e.indexOf(":");return n>=0&&(e=t.slice(0,n))!=="xmlns"&&(t=t.slice(n+1)),Ae.hasOwnProperty(e)?{space:Ae[e],local:t}:t}function Dn(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===ee&&e.documentElement.namespaceURI===ee?e.createElement(t):e.createElementNS(n,t)}}function In(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function qe(t){var e=Yt(t);return(e.local?In:Dn)(e)}function Fn(){}function ue(t){return t==null?Fn:function(){return this.querySelector(t)}}function Bn(t){typeof t!="function"&&(t=ue(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,a=r[i]=new Array(o),u,l,c=0;c<o;++c)(u=s[c])&&(l=t.call(u,u.__data__,c,s))&&("__data__"in u&&(l.__data__=u.__data__),a[c]=l);return new O(r,this._parents)}function Pn(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function Hn(){return[]}function Ge(t){return t==null?Hn:function(){return this.querySelectorAll(t)}}function zn(t){return function(){return Pn(t.apply(this,arguments))}}function Ln(t){typeof t=="function"?t=zn(t):t=Ge(t);for(var e=this._groups,n=e.length,r=[],i=[],s=0;s<n;++s)for(var o=e[s],a=o.length,u,l=0;l<a;++l)(u=o[l])&&(r.push(t.call(u,u.__data__,l,o)),i.push(u));return new O(r,i)}function Je(t){return function(){return this.matches(t)}}function We(t){return function(e){return e.matches(t)}}var Xn=Array.prototype.find;function On(t){return function(){return Xn.call(this.children,t)}}function Vn(){return this.firstElementChild}function Un(t){return this.select(t==null?Vn:On(typeof t=="function"?t:We(t)))}var Yn=Array.prototype.filter;function qn(){return Array.from(this.children)}function Gn(t){return function(){return Yn.call(this.children,t)}}function Jn(t){return this.selectAll(t==null?qn:Gn(typeof t=="function"?t:We(t)))}function Wn(t){typeof t!="function"&&(t=Je(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,a=r[i]=[],u,l=0;l<o;++l)(u=s[l])&&t.call(u,u.__data__,l,s)&&a.push(u);return new O(r,this._parents)}function Ke(t){return new Array(t.length)}function Kn(){return new O(this._enter||this._groups.map(Ke),this._parents)}function Ht(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}Ht.prototype={constructor:Ht,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 Qn(t){return function(){return t}}function Zn(t,e,n,r,i,s){for(var o=0,a,u=e.length,l=s.length;o<l;++o)(a=e[o])?(a.__data__=s[o],r[o]=a):n[o]=new Ht(t,s[o]);for(;o<u;++o)(a=e[o])&&(i[o]=a)}function jn(t,e,n,r,i,s,o){var a,u,l=new Map,c=e.length,v=s.length,d=new Array(c),h;for(a=0;a<c;++a)(u=e[a])&&(d[a]=h=o.call(u,u.__data__,a,e)+"",l.has(h)?i[a]=u:l.set(h,u));for(a=0;a<v;++a)h=o.call(t,s[a],a,s)+"",(u=l.get(h))?(r[a]=u,u.__data__=s[a],l.delete(h)):n[a]=new Ht(t,s[a]);for(a=0;a<c;++a)(u=e[a])&&l.get(d[a])===u&&(i[a]=u)}function tr(t){return t.__data__}function er(t,e){if(!arguments.length)return Array.from(this,tr);var n=e?jn:Zn,r=this._parents,i=this._groups;typeof t!="function"&&(t=Qn(t));for(var s=i.length,o=new Array(s),a=new Array(s),u=new Array(s),l=0;l<s;++l){var c=r[l],v=i[l],d=v.length,h=nr(t.call(c,c&&c.__data__,l,r)),b=h.length,w=a[l]=new Array(b),y=o[l]=new Array(b),m=u[l]=new Array(d);n(c,v,w,y,m,h,e);for(var _=0,x=0,f,A;_<b;++_)if(f=w[_]){for(_>=x&&(x=_+1);!(A=y[x])&&++x<b;);f._next=A||null}}return o=new O(o,r),o._enter=a,o._exit=u,o}function nr(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function rr(){return new O(this._exit||this._groups.map(Ke),this._parents)}function ir(t,e,n){var r=this.enter(),i=this,s=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?s.remove():n(s),r&&i?r.merge(i).order():i}function sr(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,s=r.length,o=Math.min(i,s),a=new Array(i),u=0;u<o;++u)for(var l=n[u],c=r[u],v=l.length,d=a[u]=new Array(v),h,b=0;b<v;++b)(h=l[b]||c[b])&&(d[b]=h);for(;u<i;++u)a[u]=n[u];return new O(a,this._parents)}function or(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r=t[e],i=r.length-1,s=r[i],o;--i>=0;)(o=r[i])&&(s&&o.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(o,s),s=o);return this}function ar(t){t||(t=lr);function e(v,d){return v&&d?t(v.__data__,d.__data__):!v-!d}for(var n=this._groups,r=n.length,i=new Array(r),s=0;s<r;++s){for(var o=n[s],a=o.length,u=i[s]=new Array(a),l,c=0;c<a;++c)(l=o[c])&&(u[c]=l);u.sort(e)}return new O(i,this._parents).order()}function lr(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function ur(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function cr(){return Array.from(this)}function fr(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,s=r.length;i<s;++i){var o=r[i];if(o)return o}return null}function hr(){let t=0;for(const e of this)++t;return t}function dr(){return!this.node()}function pr(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i=e[n],s=0,o=i.length,a;s<o;++s)(a=i[s])&&t.call(a,a.__data__,s,i);return this}function gr(t){return function(){this.removeAttribute(t)}}function vr(t){return function(){this.removeAttributeNS(t.space,t.local)}}function xr(t,e){return function(){this.setAttribute(t,e)}}function yr(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function wr(t,e){return function(){var n=e.apply(this,arguments);n==null?this.removeAttribute(t):this.setAttribute(t,n)}}function mr(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 _r(t,e){var n=Yt(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?vr:gr:typeof e=="function"?n.local?mr:wr:n.local?yr:xr)(n,e))}function Qe(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function br(t){return function(){this.style.removeProperty(t)}}function kr(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Nr(t,e,n){return function(){var r=e.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function Ar(t,e,n){return arguments.length>1?this.each((e==null?br:typeof e=="function"?Nr:kr)(t,e,n??"")):ut(this.node(),t)}function ut(t,e){return t.style.getPropertyValue(e)||Qe(t).getComputedStyle(t,null).getPropertyValue(e)}function Cr(t){return function(){delete this[t]}}function $r(t,e){return function(){this[t]=e}}function Mr(t,e){return function(){var n=e.apply(this,arguments);n==null?delete this[t]:this[t]=n}}function Sr(t,e){return arguments.length>1?this.each((e==null?Cr:typeof e=="function"?Mr:$r)(t,e)):this.node()[t]}function Ze(t){return t.trim().split(/^|\s+/)}function ce(t){return t.classList||new je(t)}function je(t){this._node=t,this._names=Ze(t.getAttribute("class")||"")}je.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 tn(t,e){for(var n=ce(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function en(t,e){for(var n=ce(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function Er(t){return function(){tn(this,t)}}function Tr(t){return function(){en(this,t)}}function Rr(t,e){return function(){(e.apply(this,arguments)?tn:en)(this,t)}}function Dr(t,e){var n=Ze(t+"");if(arguments.length<2){for(var r=ce(this.node()),i=-1,s=n.length;++i<s;)if(!r.contains(n[i]))return!1;return!0}return this.each((typeof e=="function"?Rr:e?Er:Tr)(n,e))}function Ir(){this.textContent=""}function Fr(t){return function(){this.textContent=t}}function Br(t){return function(){var e=t.apply(this,arguments);this.textContent=e??""}}function Pr(t){return arguments.length?this.each(t==null?Ir:(typeof t=="function"?Br:Fr)(t)):this.node().textContent}function Hr(){this.innerHTML=""}function zr(t){return function(){this.innerHTML=t}}function Lr(t){return function(){var e=t.apply(this,arguments);this.innerHTML=e??""}}function Xr(t){return arguments.length?this.each(t==null?Hr:(typeof t=="function"?Lr:zr)(t)):this.node().innerHTML}function Or(){this.nextSibling&&this.parentNode.appendChild(this)}function Vr(){return this.each(Or)}function Ur(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Yr(){return this.each(Ur)}function qr(t){var e=typeof t=="function"?t:qe(t);return this.select(function(){return this.appendChild(e.apply(this,arguments))})}function Gr(){return null}function Jr(t,e){var n=typeof t=="function"?t:qe(t),r=e==null?Gr:typeof e=="function"?e:ue(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 Kr(){return this.each(Wr)}function Qr(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function Zr(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function jr(t){return this.select(t?Zr:Qr)}function ti(t){return arguments.length?this.property("__data__",t):this.node().__data__}function ei(t){return function(e){t.call(this,e,this.__data__)}}function ni(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 ri(t){return function(){var e=this.__on;if(e){for(var n=0,r=-1,i=e.length,s;n<i;++n)s=e[n],(!t.type||s.type===t.type)&&s.name===t.name?this.removeEventListener(s.type,s.listener,s.options):e[++r]=s;++r?e.length=r:delete this.__on}}}function ii(t,e,n){return function(){var r=this.__on,i,s=ei(e);if(r){for(var o=0,a=r.length;o<a;++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=s,i.options=n),i.value=e;return}}this.addEventListener(t.type,s,n),i={type:t.type,name:t.name,value:e,listener:s,options:n},r?r.push(i):this.__on=[i]}}function si(t,e,n){var r=ni(t+""),i,s=r.length,o;if(arguments.length<2){var a=this.node().__on;if(a){for(var u=0,l=a.length,c;u<l;++u)for(i=0,c=a[u];i<s;++i)if((o=r[i]).type===c.type&&o.name===c.name)return c.value}return}for(a=e?ii:ri,i=0;i<s;++i)this.each(a(r[i],e,n));return this}function nn(t,e,n){var r=Qe(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 oi(t,e){return function(){return nn(this,t,e)}}function ai(t,e){return function(){return nn(this,t,e.apply(this,arguments))}}function li(t,e){return this.each((typeof e=="function"?ai:oi)(t,e))}function*ui(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,s=r.length,o;i<s;++i)(o=r[i])&&(yield o)}var rn=[null];function O(t,e){this._groups=t,this._parents=e}function Nt(){return new O([[document.documentElement]],rn)}function ci(){return this}O.prototype=Nt.prototype={constructor:O,select:Bn,selectAll:Ln,selectChild:Un,selectChildren:Jn,filter:Wn,data:er,enter:Kn,exit:rr,join:ir,merge:sr,selection:ci,order:or,sort:ar,call:ur,nodes:cr,node:fr,size:hr,empty:dr,each:pr,attr:_r,style:Ar,property:Sr,classed:Dr,text:Pr,html:Xr,raise:Vr,lower:Yr,append:qr,insert:Jr,remove:Kr,clone:jr,datum:ti,on:si,dispatch:li,[Symbol.iterator]:ui};function yt(t){return typeof t=="string"?new O([[document.querySelector(t)]],[document.documentElement]):new O([[t]],rn)}function fi(t){let e;for(;e=t.sourceEvent;)t=e;return t}function Ce(t,e){if(t=fi(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 hi={passive:!1},wt={capture:!0,passive:!1};function Zt(t){t.stopImmediatePropagation()}function at(t){t.preventDefault(),t.stopImmediatePropagation()}function di(t){var e=t.document.documentElement,n=yt(t).on("dragstart.drag",at,wt);"onselectstart"in e?n.on("selectstart.drag",at,wt):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function pi(t,e){var n=t.document.documentElement,r=yt(t).on("dragstart.drag",null);e&&(r.on("click.drag",at,wt),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Tt=t=>()=>t;function ne(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:s,x:o,y:a,dx:u,dy:l,dispatch:c}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:o,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:c}})}ne.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};function gi(t){return!t.ctrlKey&&!t.button}function vi(){return this.parentNode}function xi(t,e){return e??{x:t.x,y:t.y}}function yi(){return navigator.maxTouchPoints||"ontouchstart"in this}function wi(){var t=gi,e=vi,n=xi,r=yi,i={},s=Ut("start","drag","end"),o=0,a,u,l,c,v=0;function d(f){f.on("mousedown.drag",h).filter(r).on("touchstart.drag",y).on("touchmove.drag",m,hi).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(f,A){if(!(c||!t.call(this,f,A))){var C=x(this,e.call(this,f,A),f,A,"mouse");C&&(yt(f.view).on("mousemove.drag",b,wt).on("mouseup.drag",w,wt),di(f.view),Zt(f),l=!1,a=f.clientX,u=f.clientY,C("start",f))}}function b(f){if(at(f),!l){var A=f.clientX-a,C=f.clientY-u;l=A*A+C*C>v}i.mouse("drag",f)}function w(f){yt(f.view).on("mousemove.drag mouseup.drag",null),pi(f.view,l),at(f),i.mouse("end",f)}function y(f,A){if(t.call(this,f,A)){var C=f.changedTouches,S=e.call(this,f,A),$=C.length,F,D;for(F=0;F<$;++F)(D=x(this,S,f,A,C[F].identifier,C[F]))&&(Zt(f),D("start",f,C[F]))}}function m(f){var A=f.changedTouches,C=A.length,S,$;for(S=0;S<C;++S)($=i[A[S].identifier])&&(at(f),$("drag",f,A[S]))}function _(f){var A=f.changedTouches,C=A.length,S,$;for(c&&clearTimeout(c),c=setTimeout(function(){c=null},500),S=0;S<C;++S)($=i[A[S].identifier])&&(Zt(f),$("end",f,A[S]))}function x(f,A,C,S,$,F){var D=s.copy(),R=Ce(F||C,A),B,P,st;if((st=n.call(f,new ne("beforestart",{sourceEvent:C,target:d,identifier:$,active:o,x:R[0],y:R[1],dx:0,dy:0,dispatch:D}),S))!=null)return B=st.x-R[0]||0,P=st.y-R[1]||0,function j(ft,Ct,Jt){var $t=R,ht;switch(ft){case"start":i[$]=j,ht=o++;break;case"end":delete i[$],--o;case"drag":R=Ce(Jt||Ct,A),ht=o;break}D.call(ft,f,new ne(ft,{sourceEvent:Ct,subject:st,target:d,identifier:$,active:ht,x:R[0]+B,y:R[1]+P,dx:R[0]-$t[0],dy:R[1]-$t[1],dispatch:D}),S)}}return d.filter=function(f){return arguments.length?(t=typeof f=="function"?f:Tt(!!f),d):t},d.container=function(f){return arguments.length?(e=typeof f=="function"?f:Tt(f),d):e},d.subject=function(f){return arguments.length?(n=typeof f=="function"?f:Tt(f),d):n},d.touchable=function(f){return arguments.length?(r=typeof f=="function"?f:Tt(!!f),d):r},d.on=function(){var f=s.on.apply(s,arguments);return f===s?d:f},d.clickDistance=function(f){return arguments.length?(v=(f=+f)*f,d):Math.sqrt(v)},d}function fe(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function sn(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function At(){}var mt=.7,zt=1/mt,lt="\\s*([+-]?\\d+)\\s*",_t="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",q="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",mi=/^#([0-9a-f]{3,8})$/,_i=new RegExp(`^rgb\\(${lt},${lt},${lt}\\)$`),bi=new RegExp(`^rgb\\(${q},${q},${q}\\)$`),ki=new RegExp(`^rgba\\(${lt},${lt},${lt},${_t}\\)$`),Ni=new RegExp(`^rgba\\(${q},${q},${q},${_t}\\)$`),Ai=new RegExp(`^hsl\\(${_t},${q},${q}\\)$`),Ci=new RegExp(`^hsla\\(${_t},${q},${q},${_t}\\)$`),$e={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};fe(At,bt,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Me,formatHex:Me,formatHex8:$i,formatHsl:Mi,formatRgb:Se,toString:Se});function Me(){return this.rgb().formatHex()}function $i(){return this.rgb().formatHex8()}function Mi(){return on(this).formatHsl()}function Se(){return this.rgb().formatRgb()}function bt(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=mi.exec(t))?(n=e[1].length,e=parseInt(e[1],16),n===6?Ee(e):n===3?new X(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):n===8?Rt(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):n===4?Rt(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=_i.exec(t))?new X(e[1],e[2],e[3],1):(e=bi.exec(t))?new X(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=ki.exec(t))?Rt(e[1],e[2],e[3],e[4]):(e=Ni.exec(t))?Rt(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=Ai.exec(t))?De(e[1],e[2]/100,e[3]/100,1):(e=Ci.exec(t))?De(e[1],e[2]/100,e[3]/100,e[4]):$e.hasOwnProperty(t)?Ee($e[t]):t==="transparent"?new X(NaN,NaN,NaN,0):null}function Ee(t){return new X(t>>16&255,t>>8&255,t&255,1)}function Rt(t,e,n,r){return r<=0&&(t=e=n=NaN),new X(t,e,n,r)}function Si(t){return t instanceof At||(t=bt(t)),t?(t=t.rgb(),new X(t.r,t.g,t.b,t.opacity)):new X}function re(t,e,n,r){return arguments.length===1?Si(t):new X(t,e,n,r??1)}function X(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}fe(X,re,sn(At,{brighter(t){return t=t==null?zt:Math.pow(zt,t),new X(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?mt:Math.pow(mt,t),new X(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new X(nt(this.r),nt(this.g),nt(this.b),Lt(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:Te,formatHex:Te,formatHex8:Ei,formatRgb:Re,toString:Re}));function Te(){return`#${et(this.r)}${et(this.g)}${et(this.b)}`}function Ei(){return`#${et(this.r)}${et(this.g)}${et(this.b)}${et((isNaN(this.opacity)?1:this.opacity)*255)}`}function Re(){const t=Lt(this.opacity);return`${t===1?"rgb(":"rgba("}${nt(this.r)}, ${nt(this.g)}, ${nt(this.b)}${t===1?")":`, ${t})`}`}function Lt(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function nt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function et(t){return t=nt(t),(t<16?"0":"")+t.toString(16)}function De(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new V(t,e,n,r)}function on(t){if(t instanceof V)return new V(t.h,t.s,t.l,t.opacity);if(t instanceof At||(t=bt(t)),!t)return new V;if(t instanceof V)return t;t=t.rgb();var e=t.r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),s=Math.max(e,n,r),o=NaN,a=s-i,u=(s+i)/2;return a?(e===s?o=(n-r)/a+(n<r)*6:n===s?o=(r-e)/a+2:o=(e-n)/a+4,a/=u<.5?s+i:2-s-i,o*=60):a=u>0&&u<1?0:o,new V(o,a,u,t.opacity)}function Ti(t,e,n,r){return arguments.length===1?on(t):new V(t,e,n,r??1)}function V(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}fe(V,Ti,sn(At,{brighter(t){return t=t==null?zt:Math.pow(zt,t),new V(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?mt:Math.pow(mt,t),new V(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 X(jt(t>=240?t-240:t+120,i,r),jt(t,i,r),jt(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new V(Ie(this.h),Dt(this.s),Dt(this.l),Lt(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=Lt(this.opacity);return`${t===1?"hsl(":"hsla("}${Ie(this.h)}, ${Dt(this.s)*100}%, ${Dt(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Ie(t){return t=(t||0)%360,t<0?t+360:t}function Dt(t){return Math.max(0,Math.min(1,t||0))}function jt(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 an=t=>()=>t;function Ri(t,e){return function(n){return t+n*e}}function Di(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 Ii(t){return(t=+t)==1?ln:function(e,n){return n-e?Di(e,n,t):an(isNaN(e)?n:e)}}function ln(t,e){var n=e-t;return n?Ri(t,n):an(isNaN(t)?e:t)}const Fe=(function t(e){var n=Ii(e);function r(i,s){var o=n((i=re(i)).r,(s=re(s)).r),a=n(i.g,s.g),u=n(i.b,s.b),l=ln(i.opacity,s.opacity);return function(c){return i.r=o(c),i.g=a(c),i.b=u(c),i.opacity=l(c),i+""}}return r.gamma=t,r})(1);function Q(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var ie=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,te=new RegExp(ie.source,"g");function Fi(t){return function(){return t}}function Bi(t){return function(e){return t(e)+""}}function Pi(t,e){var n=ie.lastIndex=te.lastIndex=0,r,i,s,o=-1,a=[],u=[];for(t=t+"",e=e+"";(r=ie.exec(t))&&(i=te.exec(e));)(s=i.index)>n&&(s=e.slice(n,s),a[o]?a[o]+=s:a[++o]=s),(r=r[0])===(i=i[0])?a[o]?a[o]+=i:a[++o]=i:(a[++o]=null,u.push({i:o,x:Q(r,i)})),n=te.lastIndex;return n<e.length&&(s=e.slice(n),a[o]?a[o]+=s:a[++o]=s),a.length<2?u[0]?Bi(u[0].x):Fi(e):(e=u.length,function(l){for(var c=0,v;c<e;++c)a[(v=u[c]).i]=v.x(l);return a.join("")})}var Be=180/Math.PI,se={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function un(t,e,n,r,i,s){var o,a,u;return(o=Math.sqrt(t*t+e*e))&&(t/=o,e/=o),(u=t*n+e*r)&&(n-=t*u,r-=e*u),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,u/=a),t*r<e*n&&(t=-t,e=-e,u=-u,o=-o),{translateX:i,translateY:s,rotate:Math.atan2(e,t)*Be,skewX:Math.atan(u)*Be,scaleX:o,scaleY:a}}var It;function Hi(t){const e=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?se:un(e.a,e.b,e.c,e.d,e.e,e.f)}function zi(t){return t==null||(It||(It=document.createElementNS("http://www.w3.org/2000/svg","g")),It.setAttribute("transform",t),!(t=It.transform.baseVal.consolidate()))?se:(t=t.matrix,un(t.a,t.b,t.c,t.d,t.e,t.f))}function cn(t,e,n,r){function i(l){return l.length?l.pop()+" ":""}function s(l,c,v,d,h,b){if(l!==v||c!==d){var w=h.push("translate(",null,e,null,n);b.push({i:w-4,x:Q(l,v)},{i:w-2,x:Q(c,d)})}else(v||d)&&h.push("translate("+v+e+d+n)}function o(l,c,v,d){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),d.push({i:v.push(i(v)+"rotate(",null,r)-2,x:Q(l,c)})):c&&v.push(i(v)+"rotate("+c+r)}function a(l,c,v,d){l!==c?d.push({i:v.push(i(v)+"skewX(",null,r)-2,x:Q(l,c)}):c&&v.push(i(v)+"skewX("+c+r)}function u(l,c,v,d,h,b){if(l!==v||c!==d){var w=h.push(i(h)+"scale(",null,",",null,")");b.push({i:w-4,x:Q(l,v)},{i:w-2,x:Q(c,d)})}else(v!==1||d!==1)&&h.push(i(h)+"scale("+v+","+d+")")}return function(l,c){var v=[],d=[];return l=t(l),c=t(c),s(l.translateX,l.translateY,c.translateX,c.translateY,v,d),o(l.rotate,c.rotate,v,d),a(l.skewX,c.skewX,v,d),u(l.scaleX,l.scaleY,c.scaleX,c.scaleY,v,d),l=c=null,function(h){for(var b=-1,w=d.length,y;++b<w;)v[(y=d[b]).i]=y.x(h);return v.join("")}}}var Li=cn(Hi,"px, ","px)","deg)"),Xi=cn(zi,", ",")",")"),ct=0,gt=0,pt=0,fn=1e3,Xt,vt,Ot=0,it=0,qt=0,kt=typeof performance=="object"&&performance.now?performance:Date,hn=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function he(){return it||(hn(Oi),it=kt.now()+qt)}function Oi(){it=0}function Vt(){this._call=this._time=this._next=null}Vt.prototype=de.prototype={constructor:Vt,restart:function(t,e,n){if(typeof t!="function")throw new TypeError("callback is not a function");n=(n==null?he():+n)+(e==null?0:+e),!this._next&&vt!==this&&(vt?vt._next=this:Xt=this,vt=this),this._call=t,this._time=n,oe()},stop:function(){this._call&&(this._call=null,this._time=1/0,oe())}};function de(t,e,n){var r=new Vt;return r.restart(t,e,n),r}function Vi(){he(),++ct;for(var t=Xt,e;t;)(e=it-t._time)>=0&&t._call.call(void 0,e),t=t._next;--ct}function Pe(){it=(Ot=kt.now())+qt,ct=gt=0;try{Vi()}finally{ct=0,Yi(),it=0}}function Ui(){var t=kt.now(),e=t-Ot;e>fn&&(qt-=e,Ot=t)}function Yi(){for(var t,e=Xt,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:Xt=n);vt=t,oe(r)}function oe(t){if(!ct){gt&&(gt=clearTimeout(gt));var e=t-it;e>24?(t<1/0&&(gt=setTimeout(Pe,t-kt.now()-qt)),pt&&(pt=clearInterval(pt))):(pt||(Ot=kt.now(),pt=setInterval(Ui,fn)),ct=1,hn(Pe))}}function He(t,e,n){var r=new Vt;return e=e==null?0:+e,r.restart(i=>{r.stop(),t(i+e)},e,n),r}var qi=Ut("start","end","cancel","interrupt"),Gi=[],dn=0,ze=1,ae=2,Bt=3,Le=4,le=5,Pt=6;function Gt(t,e,n,r,i,s){var o=t.__transition;if(!o)t.__transition={};else if(n in o)return;Ji(t,n,{name:e,index:r,group:i,on:qi,tween:Gi,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:dn})}function pe(t,e){var n=U(t,e);if(n.state>dn)throw new Error("too late; already scheduled");return n}function G(t,e){var n=U(t,e);if(n.state>Bt)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 Ji(t,e,n){var r=t.__transition,i;r[e]=n,n.timer=de(s,0,n.time);function s(l){n.state=ze,n.timer.restart(o,n.delay,n.time),n.delay<=l&&o(l-n.delay)}function o(l){var c,v,d,h;if(n.state!==ze)return u();for(c in r)if(h=r[c],h.name===n.name){if(h.state===Bt)return He(o);h.state===Le?(h.state=Pt,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete r[c]):+c<e&&(h.state=Pt,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete r[c])}if(He(function(){n.state===Bt&&(n.state=Le,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=ae,n.on.call("start",t,t.__data__,n.index,n.group),n.state===ae){for(n.state=Bt,i=new Array(d=n.tween.length),c=0,v=-1;c<d;++c)(h=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(i[++v]=h);i.length=v+1}}function a(l){for(var c=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(u),n.state=le,1),v=-1,d=i.length;++v<d;)i[v].call(t,c);n.state===le&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){n.state=Pt,n.timer.stop(),delete r[e];for(var l in r)return;delete t.__transition}}function Wi(t,e){var n=t.__transition,r,i,s=!0,o;if(n){e=e==null?null:e+"";for(o in n){if((r=n[o]).name!==e){s=!1;continue}i=r.state>ae&&r.state<le,r.state=Pt,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete n[o]}s&&delete t.__transition}}function Ki(t){return this.each(function(){Wi(this,t)})}function Qi(t,e){var n,r;return function(){var i=G(this,t),s=i.tween;if(s!==n){r=n=s;for(var o=0,a=r.length;o<a;++o)if(r[o].name===e){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function Zi(t,e,n){var r,i;if(typeof n!="function")throw new Error;return function(){var s=G(this,t),o=s.tween;if(o!==r){i=(r=o).slice();for(var a={name:e,value:n},u=0,l=i.length;u<l;++u)if(i[u].name===e){i[u]=a;break}u===l&&i.push(a)}s.tween=i}}function ji(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r=U(this.node(),n).tween,i=0,s=r.length,o;i<s;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((e==null?Qi:Zi)(n,t,e))}function ge(t,e,n){var r=t._id;return t.each(function(){var i=G(this,r);(i.value||(i.value={}))[e]=n.apply(this,arguments)}),function(i){return U(i,r).value[e]}}function pn(t,e){var n;return(typeof e=="number"?Q:e instanceof bt?Fe:(n=bt(e))?(e=n,Fe):Pi)(t,e)}function ts(t){return function(){this.removeAttribute(t)}}function es(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ns(t,e,n){var r,i=n+"",s;return function(){var o=this.getAttribute(t);return o===i?null:o===r?s:s=e(r=o,n)}}function rs(t,e,n){var r,i=n+"",s;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?s:s=e(r=o,n)}}function is(t,e,n){var r,i,s;return function(){var o,a=n(this),u;return a==null?void this.removeAttribute(t):(o=this.getAttribute(t),u=a+"",o===u?null:o===r&&u===i?s:(i=u,s=e(r=o,a)))}}function ss(t,e,n){var r,i,s;return function(){var o,a=n(this),u;return a==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),u=a+"",o===u?null:o===r&&u===i?s:(i=u,s=e(r=o,a)))}}function os(t,e){var n=Yt(t),r=n==="transform"?Xi:pn;return this.attrTween(t,typeof e=="function"?(n.local?ss:is)(n,r,ge(this,"attr."+t,e)):e==null?(n.local?es:ts)(n):(n.local?rs:ns)(n,r,e))}function as(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}function ls(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}function us(t,e){var n,r;function i(){var s=e.apply(this,arguments);return s!==r&&(n=(r=s)&&ls(t,s)),n}return i._value=e,i}function cs(t,e){var n,r;function i(){var s=e.apply(this,arguments);return s!==r&&(n=(r=s)&&as(t,s)),n}return i._value=e,i}function fs(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=Yt(t);return this.tween(n,(r.local?us:cs)(r,e))}function hs(t,e){return function(){pe(this,t).delay=+e.apply(this,arguments)}}function ds(t,e){return e=+e,function(){pe(this,t).delay=e}}function ps(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?hs:ds)(e,t)):U(this.node(),e).delay}function gs(t,e){return function(){G(this,t).duration=+e.apply(this,arguments)}}function vs(t,e){return e=+e,function(){G(this,t).duration=e}}function xs(t){var e=this._id;return arguments.length?this.each((typeof t=="function"?gs:vs)(e,t)):U(this.node(),e).duration}function ys(t,e){if(typeof e!="function")throw new Error;return function(){G(this,t).ease=e}}function ws(t){var e=this._id;return arguments.length?this.each(ys(e,t)):U(this.node(),e).ease}function ms(t,e){return function(){var n=e.apply(this,arguments);if(typeof n!="function")throw new Error;G(this,t).ease=n}}function _s(t){if(typeof t!="function")throw new Error;return this.each(ms(this._id,t))}function bs(t){typeof t!="function"&&(t=Je(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var s=e[i],o=s.length,a=r[i]=[],u,l=0;l<o;++l)(u=s[l])&&t.call(u,u.__data__,l,s)&&a.push(u);return new K(r,this._parents,this._name,this._id)}function ks(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,s=Math.min(r,i),o=new Array(r),a=0;a<s;++a)for(var u=e[a],l=n[a],c=u.length,v=o[a]=new Array(c),d,h=0;h<c;++h)(d=u[h]||l[h])&&(v[h]=d);for(;a<r;++a)o[a]=e[a];return new K(o,this._parents,this._name,this._id)}function Ns(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 As(t,e,n){var r,i,s=Ns(e)?pe:G;return function(){var o=s(this,t),a=o.on;a!==r&&(i=(r=a).copy()).on(e,n),o.on=i}}function Cs(t,e){var n=this._id;return arguments.length<2?U(this.node(),n).on.on(t):this.each(As(n,t,e))}function $s(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}function Ms(){return this.on("end.remove",$s(this._id))}function Ss(t){var e=this._name,n=this._id;typeof t!="function"&&(t=ue(t));for(var r=this._groups,i=r.length,s=new Array(i),o=0;o<i;++o)for(var a=r[o],u=a.length,l=s[o]=new Array(u),c,v,d=0;d<u;++d)(c=a[d])&&(v=t.call(c,c.__data__,d,a))&&("__data__"in c&&(v.__data__=c.__data__),l[d]=v,Gt(l[d],e,n,d,l,U(c,n)));return new K(s,this._parents,e,n)}function Es(t){var e=this._name,n=this._id;typeof t!="function"&&(t=Ge(t));for(var r=this._groups,i=r.length,s=[],o=[],a=0;a<i;++a)for(var u=r[a],l=u.length,c,v=0;v<l;++v)if(c=u[v]){for(var d=t.call(c,c.__data__,v,u),h,b=U(c,n),w=0,y=d.length;w<y;++w)(h=d[w])&&Gt(h,e,n,w,d,b);s.push(d),o.push(c)}return new K(s,o,e,n)}var Ts=Nt.prototype.constructor;function Rs(){return new Ts(this._groups,this._parents)}function Ds(t,e){var n,r,i;return function(){var s=ut(this,t),o=(this.style.removeProperty(t),ut(this,t));return s===o?null:s===n&&o===r?i:i=e(n=s,r=o)}}function gn(t){return function(){this.style.removeProperty(t)}}function Is(t,e,n){var r,i=n+"",s;return function(){var o=ut(this,t);return o===i?null:o===r?s:s=e(r=o,n)}}function Fs(t,e,n){var r,i,s;return function(){var o=ut(this,t),a=n(this),u=a+"";return a==null&&(u=a=(this.style.removeProperty(t),ut(this,t))),o===u?null:o===r&&u===i?s:(i=u,s=e(r=o,a))}}function Bs(t,e){var n,r,i,s="style."+e,o="end."+s,a;return function(){var u=G(this,t),l=u.on,c=u.value[s]==null?a||(a=gn(e)):void 0;(l!==n||i!==c)&&(r=(n=l).copy()).on(o,i=c),u.on=r}}function Ps(t,e,n){var r=(t+="")=="transform"?Li:pn;return e==null?this.styleTween(t,Ds(t,r)).on("end.style."+t,gn(t)):typeof e=="function"?this.styleTween(t,Fs(t,r,ge(this,"style."+t,e))).each(Bs(this._id,t)):this.styleTween(t,Is(t,r,e),n).on("end.style."+t,null)}function Hs(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}function zs(t,e,n){var r,i;function s(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&Hs(t,o,n)),r}return s._value=e,s}function Ls(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,zs(t,e,n??""))}function Xs(t){return function(){this.textContent=t}}function Os(t){return function(){var e=t(this);this.textContent=e??""}}function Vs(t){return this.tween("text",typeof t=="function"?Os(ge(this,"text",t)):Xs(t==null?"":t+""))}function Us(t){return function(e){this.textContent=t.call(this,e)}}function Ys(t){var e,n;function r(){var i=t.apply(this,arguments);return i!==n&&(e=(n=i)&&Us(i)),e}return r._value=t,r}function qs(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,Ys(t))}function Gs(){for(var t=this._name,e=this._id,n=vn(),r=this._groups,i=r.length,s=0;s<i;++s)for(var o=r[s],a=o.length,u,l=0;l<a;++l)if(u=o[l]){var c=U(u,e);Gt(u,t,n,l,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new K(r,this._parents,t,n)}function Js(){var t,e,n=this,r=n._id,i=n.size();return new Promise(function(s,o){var a={value:o},u={value:function(){--i===0&&s()}};n.each(function(){var l=G(this,r),c=l.on;c!==t&&(e=(t=c).copy(),e._.cancel.push(a),e._.interrupt.push(a),e._.end.push(u)),l.on=e}),i===0&&s()})}var Ws=0;function K(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function vn(){return++Ws}var W=Nt.prototype;K.prototype={constructor:K,select:Ss,selectAll:Es,selectChild:W.selectChild,selectChildren:W.selectChildren,filter:bs,merge:ks,selection:Rs,transition:Gs,call:W.call,nodes:W.nodes,node:W.node,size:W.size,empty:W.empty,each:W.each,on:Cs,attr:os,attrTween:fs,style:Ps,styleTween:Ls,text:Vs,textTween:qs,remove:Ms,tween:ji,delay:ps,duration:xs,ease:ws,easeVarying:_s,end:Js,[Symbol.iterator]:W[Symbol.iterator]};function Ks(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Qs={time:null,delay:0,duration:250,ease:Ks};function Zs(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 js(t){var e,n;t instanceof K?(e=t._id,t=t._name):(e=vn(),(n=Qs).time=he(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,s=0;s<i;++s)for(var o=r[s],a=o.length,u,l=0;l<a;++l)(u=o[l])&&Gt(u,t,e,l,o,n||Zs(u,e));return new K(r,this._parents,t,e)}Nt.prototype.interrupt=Ki;Nt.prototype.transition=js;function to(t,e){var n,r=1;t==null&&(t=0),e==null&&(e=0);function i(){var s,o=n.length,a,u=0,l=0;for(s=0;s<o;++s)a=n[s],u+=a.x,l+=a.y;for(u=(u/o-t)*r,l=(l/o-e)*r,s=0;s<o;++s)a=n[s],a.x-=u,a.y-=l}return i.initialize=function(s){n=s},i.x=function(s){return arguments.length?(t=+s,i):t},i.y=function(s){return arguments.length?(e=+s,i):e},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function eo(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return xn(this.cover(e,n),e,n,t)}function xn(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,s=t._root,o={data:r},a=t._x0,u=t._y0,l=t._x1,c=t._y1,v,d,h,b,w,y,m,_;if(!s)return t._root=o,t;for(;s.length;)if((w=e>=(v=(a+l)/2))?a=v:l=v,(y=n>=(d=(u+c)/2))?u=d:c=d,i=s,!(s=s[m=y<<1|w]))return i[m]=o,t;if(h=+t._x.call(null,s.data),b=+t._y.call(null,s.data),e===h&&n===b)return o.next=s,i?i[m]=o:t._root=o,t;do i=i?i[m]=new Array(4):t._root=new Array(4),(w=e>=(v=(a+l)/2))?a=v:l=v,(y=n>=(d=(u+c)/2))?u=d:c=d;while((m=y<<1|w)===(_=(b>=d)<<1|h>=v));return i[_]=s,i[m]=o,t}function no(t){var e,n,r=t.length,i,s,o=new Array(r),a=new Array(r),u=1/0,l=1/0,c=-1/0,v=-1/0;for(n=0;n<r;++n)isNaN(i=+this._x.call(null,e=t[n]))||isNaN(s=+this._y.call(null,e))||(o[n]=i,a[n]=s,i<u&&(u=i),i>c&&(c=i),s<l&&(l=s),s>v&&(v=s));if(u>c||l>v)return this;for(this.cover(u,l).cover(c,v),n=0;n<r;++n)xn(this,o[n],a[n],t[n]);return this}function ro(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,s=(r=Math.floor(e))+1;else{for(var o=i-n||1,a=this._root,u,l;n>t||t>=i||r>e||e>=s;)switch(l=(e<r)<<1|t<n,u=new Array(4),u[l]=a,a=u,o*=2,l){case 0:i=n+o,s=r+o;break;case 1:n=i-o,s=r+o;break;case 2:i=n+o,r=s-o;break;case 3:n=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=a)}return this._x0=n,this._y0=r,this._x1=i,this._y1=s,this}function io(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function so(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function H(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function oo(t,e,n){var r,i=this._x0,s=this._y0,o,a,u,l,c=this._x1,v=this._y1,d=[],h=this._root,b,w;for(h&&d.push(new H(h,i,s,c,v)),n==null?n=1/0:(i=t-n,s=e-n,c=t+n,v=e+n,n*=n);b=d.pop();)if(!(!(h=b.node)||(o=b.x0)>c||(a=b.y0)>v||(u=b.x1)<i||(l=b.y1)<s))if(h.length){var y=(o+u)/2,m=(a+l)/2;d.push(new H(h[3],y,m,u,l),new H(h[2],o,m,y,l),new H(h[1],y,a,u,m),new H(h[0],o,a,y,m)),(w=(e>=m)<<1|t>=y)&&(b=d[d.length-1],d[d.length-1]=d[d.length-1-w],d[d.length-1-w]=b)}else{var _=t-+this._x.call(null,h.data),x=e-+this._y.call(null,h.data),f=_*_+x*x;if(f<n){var A=Math.sqrt(n=f);i=t-A,s=e-A,c=t+A,v=e+A,r=h.data}}return r}function ao(t){if(isNaN(c=+this._x.call(null,t))||isNaN(v=+this._y.call(null,t)))return this;var e,n=this._root,r,i,s,o=this._x0,a=this._y0,u=this._x1,l=this._y1,c,v,d,h,b,w,y,m;if(!n)return this;if(n.length)for(;;){if((b=c>=(d=(o+u)/2))?o=d:u=d,(w=v>=(h=(a+l)/2))?a=h:l=h,e=n,!(n=n[y=w<<1|b]))return this;if(!n.length)break;(e[y+1&3]||e[y+2&3]||e[y+3&3])&&(r=e,m=y)}for(;n.data!==t;)if(i=n,!(n=n.next))return this;return(s=n.next)&&delete n.next,i?(s?i.next=s:delete i.next,this):e?(s?e[y]=s:delete e[y],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(r?r[m]=n:this._root=n),this):(this._root=s,this)}function lo(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function uo(){return this._root}function co(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function fo(t){var e=[],n,r=this._root,i,s,o,a,u;for(r&&e.push(new H(r,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(r=n.node,s=n.x0,o=n.y0,a=n.x1,u=n.y1)&&r.length){var l=(s+a)/2,c=(o+u)/2;(i=r[3])&&e.push(new H(i,l,c,a,u)),(i=r[2])&&e.push(new H(i,s,c,l,u)),(i=r[1])&&e.push(new H(i,l,o,a,c)),(i=r[0])&&e.push(new H(i,s,o,l,c))}return this}function ho(t){var e=[],n=[],r;for(this._root&&e.push(new H(this._root,this._x0,this._y0,this._x1,this._y1));r=e.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.y0,u=r.x1,l=r.y1,c=(o+u)/2,v=(a+l)/2;(s=i[0])&&e.push(new H(s,o,a,c,v)),(s=i[1])&&e.push(new H(s,c,a,u,v)),(s=i[2])&&e.push(new H(s,o,v,c,l)),(s=i[3])&&e.push(new H(s,c,v,u,l))}n.push(r)}for(;r=n.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function po(t){return t[0]}function go(t){return arguments.length?(this._x=t,this):this._x}function vo(t){return t[1]}function xo(t){return arguments.length?(this._y=t,this):this._y}function ve(t,e,n){var r=new xe(e??po,n??vo,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function xe(t,e,n,r,i,s){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function Xe(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var z=ve.prototype=xe.prototype;z.copy=function(){var t=new xe(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,r;if(!e)return t;if(!e.length)return t._root=Xe(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var i=0;i<4;++i)(r=e.source[i])&&(r.length?n.push({source:r,target:e.target[i]=new Array(4)}):e.target[i]=Xe(r));return t};z.add=eo;z.addAll=no;z.cover=ro;z.data=io;z.extent=so;z.find=oo;z.remove=ao;z.removeAll=lo;z.root=uo;z.size=co;z.visit=fo;z.visitAfter=ho;z.x=go;z.y=xo;function rt(t){return function(){return t}}function Z(t){return(t()-.5)*1e-6}function yo(t){return t.x+t.vx}function wo(t){return t.y+t.vy}function mo(t){var e,n,r,i=1,s=1;typeof t!="function"&&(t=rt(t==null?1:+t));function o(){for(var l,c=e.length,v,d,h,b,w,y,m=0;m<s;++m)for(v=ve(e,yo,wo).visitAfter(a),l=0;l<c;++l)d=e[l],w=n[d.index],y=w*w,h=d.x+d.vx,b=d.y+d.vy,v.visit(_);function _(x,f,A,C,S){var $=x.data,F=x.r,D=w+F;if($){if($.index>d.index){var R=h-$.x-$.vx,B=b-$.y-$.vy,P=R*R+B*B;P<D*D&&(R===0&&(R=Z(r),P+=R*R),B===0&&(B=Z(r),P+=B*B),P=(D-(P=Math.sqrt(P)))/P*i,d.vx+=(R*=P)*(D=(F*=F)/(y+F)),d.vy+=(B*=P)*D,$.vx-=R*(D=1-D),$.vy-=B*D)}return}return f>h+D||C<h-D||A>b+D||S<b-D}}function a(l){if(l.data)return l.r=n[l.data.index];for(var c=l.r=0;c<4;++c)l[c]&&l[c].r>l.r&&(l.r=l[c].r)}function u(){if(e){var l,c=e.length,v;for(n=new Array(c),l=0;l<c;++l)v=e[l],n[v.index]=+t(v,l,e)}}return o.initialize=function(l,c){e=l,r=c,u()},o.iterations=function(l){return arguments.length?(s=+l,o):s},o.strength=function(l){return arguments.length?(i=+l,o):i},o.radius=function(l){return arguments.length?(t=typeof l=="function"?l:rt(+l),u(),o):t},o}function _o(t){return t.index}function Oe(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function bo(t){var e=_o,n=v,r,i=rt(30),s,o,a,u,l,c=1;t==null&&(t=[]);function v(y){return 1/Math.min(a[y.source.index],a[y.target.index])}function d(y){for(var m=0,_=t.length;m<c;++m)for(var x=0,f,A,C,S,$,F,D;x<_;++x)f=t[x],A=f.source,C=f.target,S=C.x+C.vx-A.x-A.vx||Z(l),$=C.y+C.vy-A.y-A.vy||Z(l),F=Math.sqrt(S*S+$*$),F=(F-s[x])/F*y*r[x],S*=F,$*=F,C.vx-=S*(D=u[x]),C.vy-=$*D,A.vx+=S*(D=1-D),A.vy+=$*D}function h(){if(o){var y,m=o.length,_=t.length,x=new Map(o.map((A,C)=>[e(A,C,o),A])),f;for(y=0,a=new Array(m);y<_;++y)f=t[y],f.index=y,typeof f.source!="object"&&(f.source=Oe(x,f.source)),typeof f.target!="object"&&(f.target=Oe(x,f.target)),a[f.source.index]=(a[f.source.index]||0)+1,a[f.target.index]=(a[f.target.index]||0)+1;for(y=0,u=new Array(_);y<_;++y)f=t[y],u[y]=a[f.source.index]/(a[f.source.index]+a[f.target.index]);r=new Array(_),b(),s=new Array(_),w()}}function b(){if(o)for(var y=0,m=t.length;y<m;++y)r[y]=+n(t[y],y,t)}function w(){if(o)for(var y=0,m=t.length;y<m;++y)s[y]=+i(t[y],y,t)}return d.initialize=function(y,m){o=y,l=m,h()},d.links=function(y){return arguments.length?(t=y,h(),d):t},d.id=function(y){return arguments.length?(e=y,d):e},d.iterations=function(y){return arguments.length?(c=+y,d):c},d.strength=function(y){return arguments.length?(n=typeof y=="function"?y:rt(+y),b(),d):n},d.distance=function(y){return arguments.length?(i=typeof y=="function"?y:rt(+y),w(),d):i},d}const ko=1664525,No=1013904223,Ve=4294967296;function Ao(){let t=1;return()=>(t=(ko*t+No)%Ve)/Ve}function Co(t){return t.x}function $o(t){return t.y}var Mo=10,So=Math.PI*(3-Math.sqrt(5));function Eo(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,a=new Map,u=de(v),l=Ut("tick","end"),c=Ao();t==null&&(t=[]);function v(){d(),l.call("tick",e),n<r&&(u.stop(),l.call("end",e))}function d(w){var y,m=t.length,_;w===void 0&&(w=1);for(var x=0;x<w;++x)for(n+=(s-n)*i,a.forEach(function(f){f(n)}),y=0;y<m;++y)_=t[y],_.fx==null?_.x+=_.vx*=o:(_.x=_.fx,_.vx=0),_.fy==null?_.y+=_.vy*=o:(_.y=_.fy,_.vy=0);return e}function h(){for(var w=0,y=t.length,m;w<y;++w){if(m=t[w],m.index=w,m.fx!=null&&(m.x=m.fx),m.fy!=null&&(m.y=m.fy),isNaN(m.x)||isNaN(m.y)){var _=Mo*Math.sqrt(.5+w),x=w*So;m.x=_*Math.cos(x),m.y=_*Math.sin(x)}(isNaN(m.vx)||isNaN(m.vy))&&(m.vx=m.vy=0)}}function b(w){return w.initialize&&w.initialize(t,c),w}return h(),e={tick:d,restart:function(){return u.restart(v),e},stop:function(){return u.stop(),e},nodes:function(w){return arguments.length?(t=w,h(),a.forEach(b),e):t},alpha:function(w){return arguments.length?(n=+w,e):n},alphaMin:function(w){return arguments.length?(r=+w,e):r},alphaDecay:function(w){return arguments.length?(i=+w,e):+i},alphaTarget:function(w){return arguments.length?(s=+w,e):s},velocityDecay:function(w){return arguments.length?(o=1-w,e):1-o},randomSource:function(w){return arguments.length?(c=w,a.forEach(b),e):c},force:function(w,y){return arguments.length>1?(y==null?a.delete(w):a.set(w,b(y)),e):a.get(w)},find:function(w,y,m){var _=0,x=t.length,f,A,C,S,$;for(m==null?m=1/0:m*=m,_=0;_<x;++_)S=t[_],f=w-S.x,A=y-S.y,C=f*f+A*A,C<m&&($=S,m=C);return $},on:function(w,y){return arguments.length>1?(l.on(w,y),e):l.on(w)}}}function To(){var t,e,n,r,i=rt(-30),s,o=1,a=1/0,u=.81;function l(h){var b,w=t.length,y=ve(t,Co,$o).visitAfter(v);for(r=h,b=0;b<w;++b)e=t[b],y.visit(d)}function c(){if(t){var h,b=t.length,w;for(s=new Array(b),h=0;h<b;++h)w=t[h],s[w.index]=+i(w,h,t)}}function v(h){var b=0,w,y,m=0,_,x,f;if(h.length){for(_=x=f=0;f<4;++f)(w=h[f])&&(y=Math.abs(w.value))&&(b+=w.value,m+=y,_+=y*w.x,x+=y*w.y);h.x=_/m,h.y=x/m}else{w=h,w.x=w.data.x,w.y=w.data.y;do b+=s[w.data.index];while(w=w.next)}h.value=b}function d(h,b,w,y){if(!h.value)return!0;var m=h.x-e.x,_=h.y-e.y,x=y-b,f=m*m+_*_;if(x*x/u<f)return f<a&&(m===0&&(m=Z(n),f+=m*m),_===0&&(_=Z(n),f+=_*_),f<o&&(f=Math.sqrt(o*f)),e.vx+=m*h.value*r/f,e.vy+=_*h.value*r/f),!0;if(h.length||f>=a)return;(h.data!==e||h.next)&&(m===0&&(m=Z(n),f+=m*m),_===0&&(_=Z(n),f+=_*_),f<o&&(f=Math.sqrt(o*f)));do h.data!==e&&(x=s[h.data.index]*r/f,e.vx+=m*x,e.vy+=_*x);while(h=h.next)}return l.initialize=function(h,b){t=h,n=b,c()},l.strength=function(h){return arguments.length?(i=typeof h=="function"?h:rt(+h),c(),l):i},l.distanceMin=function(h){return arguments.length?(o=h*h,l):Math.sqrt(o)},l.distanceMax=function(h){return arguments.length?(a=h*h,l):Math.sqrt(a)},l.theta=function(h){return arguments.length?(u=h*h,l):Math.sqrt(u)},l}function xt(t,e,n){this.k=t,this.x=e,this.y=n}xt.prototype={constructor:xt,scale:function(t){return t===1?this:new xt(this.k*t,this.x,this.y)},translate:function(t,e){return t===0&e===0?this:new xt(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+")"}};xt.prototype;const Ro=Ue({__name:"NetworkMap",props:{nodes:{},links:{}},setup(t){const e=t,n=I(),r=I();let i=null,s=null;function o(l){switch(l){case"trusted":return"#4ade80";case"observer":return"#fb923c";case"untrusted":return"#ef4444";default:return"#9ca3af"}}function a(l){return l.is_self?18:Math.max(10,Math.min(16,8+l.app_count*.5))}function u(){const l=yt(r.value);l.selectAll("*").remove();const c=n.value,v=c.clientWidth,d=c.clientHeight;l.attr("viewBox",`0 0 ${v} ${d}`);const h=e.nodes.map(x=>({...x})),b=e.links.map(x=>({...x})),w=h.find(x=>x.is_self);w&&(w.fx=v/2,w.fy=d/2),i=Eo(h).force("link",bo(b).id(x=>x.did).distance(120)).force("charge",To().strength(-300)).force("center",to(v/2,d/2)).force("collision",mo().radius(x=>a(x)+5));const y=l.append("g"),m=y.append("g").selectAll("line").data(b).join("line").attr("stroke",x=>{const f=typeof x.source=="object"?x.source:h.find(C=>C.did===x.source),A=typeof x.target=="object"?x.target:h.find(C=>C.did===x.target);return f?.online&&A?.online?"#4ade8060":"#6b728050"}).attr("stroke-width",2).attr("stroke-dasharray",x=>{const f=typeof x.source=="object"?x.source:h.find(C=>C.did===x.source),A=typeof x.target=="object"?x.target:h.find(C=>C.did===x.target);return f?.online&&A?.online?"none":"6 4"}),_=y.append("g").selectAll("g").data(h).join("g").attr("cursor","pointer").call(wi().on("start",(x,f)=>{x.active||i.alphaTarget(.3).restart(),f.fx=f.x,f.fy=f.y}).on("drag",(x,f)=>{f.fx=x.x,f.fy=x.y}).on("end",(x,f)=>{x.active||i.alphaTarget(0),f.is_self||(f.fx=null,f.fy=null)}));_.append("circle").attr("r",x=>a(x)).attr("fill",x=>o(x.trust_level)).attr("fill-opacity",x=>x.online?.8:.3).attr("stroke",x=>x.is_self?"#fb923c":o(x.trust_level)).attr("stroke-width",x=>x.is_self?3:1.5).attr("stroke-opacity",x=>x.online?1:.4),_.append("text").text(x=>x.label).attr("dy",x=>a(x)+14).attr("text-anchor","middle").attr("fill","rgba(255,255,255,0.7)").attr("font-size","11px").attr("font-family","'Avenir Next', sans-serif"),_.append("title").text(x=>`${x.did}
|
|
Apps: ${x.app_count}
|
|
${x.online?"Online":"Offline"}`),i.on("tick",()=>{m.attr("x1",x=>x.source.x).attr("y1",x=>x.source.y).attr("x2",x=>x.target.x).attr("y2",x=>x.target.y),_.attr("transform",x=>`translate(${x.x},${x.y})`)})}return Ye(()=>{u(),s=new ResizeObserver(()=>u()),n.value&&s.observe(n.value)}),kn(()=>{i?.stop(),s?.disconnect()}),Nn(()=>[e.nodes,e.links],()=>u(),{deep:!0}),(l,c)=>(T(),E("div",{ref_key:"containerRef",ref:n,class:"network-map-container"},[(T(),E("svg",{ref_key:"svgRef",ref:r,class:"w-full h-full"},null,512))],512))}}),Do=An(Ro,[["__scopeId","data-v-0e9c18d1"]]),Io={class:"pb-6"},Fo={class:"mb-8"},Bo={class:"text-sm text-white/60 mt-2"},Po={key:0,class:"flex gap-1 mb-6 p-1 bg-black/20 rounded-lg w-fit"},Ho=["onClick"],zo={key:1,class:"mb-6"},Lo={class:"glass-card p-6 mb-6"},Xo={class:"grid grid-cols-1 sm:grid-cols-3 gap-4"},Oo={"data-controller-container":"",tabindex:"0",class:"flex flex-col gap-3 p-4 bg-white/5 rounded-lg min-w-0"},Vo=["disabled"],Uo={"data-controller-container":"",tabindex:"0",class:"flex flex-col gap-3 p-4 bg-white/5 rounded-lg min-w-0"},Yo={"data-controller-container":"",tabindex:"0",class:"flex flex-col gap-3 p-4 bg-white/5 rounded-lg min-w-0"},qo=["disabled"],Go={key:0,class:"glass-card p-6 mb-6"},Jo={class:"flex items-center justify-between mb-4"},Wo={class:"bg-black/30 rounded-lg p-4 font-mono text-xs text-orange-300 break-all select-all"},Ko={key:1,class:"glass-card p-6 mb-6"},Qo={class:"flex items-center justify-between mb-4"},Zo={class:"space-y-2"},jo={class:"text-sm text-white/80 font-mono truncate"},ta={key:0,class:"text-xs text-green-400"},ea={key:1,class:"text-xs text-red-400 truncate"},na={key:2,class:"glass-card p-4 mb-6 border-red-400/30"},ra={class:"text-sm text-red-400"},ia={class:"glass-card p-6 mb-6"},sa={key:0,class:"flex items-center gap-3 py-8 justify-center"},oa={key:1,class:"text-center py-12"},aa={key:2,class:"space-y-3"},la=["onClick"],ua={class:"flex items-center justify-between mb-2"},ca={class:"flex items-center gap-3 min-w-0"},fa={class:"text-sm font-medium text-white truncate"},ha=["title"],da={class:"grid grid-cols-2 sm:grid-cols-4 gap-2 text-xs text-white/50"},pa={class:"flex items-center gap-1"},ga={class:"glass-card p-6 w-full max-w-lg max-h-[80vh] overflow-y-auto"},va={class:"flex items-center justify-between mb-6"},xa={class:"space-y-4"},ya={class:"bg-white/5 rounded-lg p-3"},wa={class:"text-sm text-white/80 font-mono break-all"},ma={class:"bg-white/5 rounded-lg p-3"},_a={class:"text-sm text-white/80 font-mono break-all"},ba={class:"bg-white/5 rounded-lg p-3"},ka={class:"flex items-center gap-2 mt-1"},Na=["value"],Aa={class:"bg-white/5 rounded-lg p-3"},Ca={class:"text-sm text-white/80"},$a={key:0,class:"bg-white/5 rounded-lg p-3"},Ma={class:"grid grid-cols-2 gap-2 text-sm text-white/70"},Sa={key:1,class:"bg-white/5 rounded-lg p-3"},Ea={class:"text-xs text-white/40 mb-2"},Ta={class:"space-y-1"},Ra={class:"text-white/80"},Da={key:2,class:"bg-white/5 rounded-lg p-3"},Ia={class:"flex gap-2"},Fa=["disabled"],Ba={class:"bg-white/5 rounded-lg p-3"},Pa={class:"flex items-center justify-between mb-2"},Ha={class:"flex items-center gap-1.5"},za={class:"text-xs text-white/50"},La={class:"grid grid-cols-2 gap-2 text-sm text-white/70 mb-3"},Xa=["disabled"],Oa={key:3},Va={key:4,class:"mt-4 p-3 bg-red-400/10 rounded-lg border border-red-400/20"},Ua={class:"flex gap-3"},Ya={class:"glass-card p-6 w-full max-w-md"},qa={class:"flex items-center justify-between mb-6"},Ga={key:0,class:"mt-3 text-sm text-red-400"},Ja={key:1,class:"mt-3 text-sm text-green-400"},Wa={class:"flex gap-3 mt-4"},Ka=["disabled"],ja=Ue({__name:"Federation",setup(t){const e=Mn(),n=Sn(),r=I([]),i=I(!0),s=I(""),o=I(null),a=I(""),u=I(!1),l=I(!1),c=I(!1),v=I(""),d=I(!1),h=I(""),b=I(!1),w=I(!1),y=I([]),m=I(!1),_=I(""),x=I(!1),f=I(""),A=[{id:"list",label:"List View"},{id:"map",label:"Network Map"}],C=I(localStorage.getItem("federation-view")||(r.value.length>=3?"map":"list"));function S(k){C.value=k,localStorage.setItem("federation-view",k)}const $=I(""),F=Et(()=>{const k=[];$.value&&k.push({did:$.value,label:"This Node",trust_level:"trusted",online:!0,app_count:0,is_self:!0});for(const p of r.value)k.push({did:p.did,label:p.name||Wt(p.did),trust_level:p.trust_level,online:we(p),app_count:p.last_state?.apps?.length??0,is_self:!1});return k}),D=Et(()=>$.value?r.value.map(k=>({source:$.value,target:k.did})):[]),R=I(null),B=I(!1),P=Et(()=>{if(!R.value)return"bg-white/30";switch(R.value.sync_status){case"synced":return"bg-green-400";case"syncing":return"bg-yellow-400 animate-pulse";case"error":return"bg-red-400";default:return"bg-white/30"}}),st=Et(()=>{if(!R.value)return"Unknown";switch(R.value.sync_status){case"synced":return"Synced";case"syncing":return"Syncing...";case"error":return"Error";default:return R.value.sync_status}});async function j(){try{i.value=!0;const k=await Y.federationListNodes();r.value=k.nodes}catch(k){s.value=k instanceof Error?k.message:"Failed to load nodes"}finally{i.value=!1}}async function ft(){try{u.value=!0,s.value="";const k=await Y.federationInvite();a.value=k.code}catch(k){s.value=k instanceof Error?k.message:"Failed to generate invite"}finally{u.value=!1}}async function Ct(){try{await window.navigator.clipboard.writeText(a.value)}catch{const k=document.createElement("textarea");k.value=a.value,k.style.position="fixed",k.style.opacity="0",document.body.appendChild(k),k.select(),document.execCommand("copy"),document.body.removeChild(k)}l.value=!0,setTimeout(()=>{l.value=!1},2e3)}async function Jt(){try{d.value=!0,h.value="",b.value=!1,await Y.federationJoin(v.value.trim()),b.value=!0,v.value="",await j(),setTimeout(()=>{c.value=!1,b.value=!1},1500)}catch(k){h.value=k instanceof Error?k.message:"Failed to join"}finally{d.value=!1}}async function $t(){try{w.value=!0,s.value="";const k=await Y.federationSyncState();y.value=k.results,await j()}catch(k){s.value=k instanceof Error?k.message:"Sync failed"}finally{w.value=!1}}async function ht(k,p){try{await Y.federationSetTrust(k,p),await j(),o.value?.did===k&&(o.value=r.value.find(N=>N.did===k)??null)}catch(N){s.value=N instanceof Error?N.message:"Failed to update trust level"}}async function yn(k){try{await Y.federationRemoveNode(k),m.value=!1,o.value=null,await j()}catch(p){m.value=!1,s.value=p instanceof Error?p.message:"Failed to remove node"}}async function wn(k){try{x.value=!0,f.value="",await Y.federationDeployApp({did:k,appId:_.value.trim()}),f.value=`Successfully deployed ${_.value} to remote node`,_.value=""}catch(p){f.value=`Error: ${p instanceof Error?p.message:"Deploy failed"}`}finally{x.value=!1}}async function ye(){try{const k=await Y.call({method:"dwn.status"});R.value=k}catch{R.value=null}}async function mn(){try{B.value=!0,await Y.call({method:"dwn.sync",timeout:12e4}),await ye()}catch{}finally{B.value=!1}}function we(k){if(!k.last_seen)return!1;const p=new Date(k.last_seen).getTime(),N=Date.now()-600*1e3;return p>N}function Wt(k){return k.length<=24?k:k.slice(0,16)+"..."+k.slice(-8)}function me(k){const p=Math.floor((Date.now()-new Date(k).getTime())/1e3);return p<60?"just now":p<3600?Math.floor(p/60)+"m ago":p<86400?Math.floor(p/3600)+"h ago":Math.floor(p/86400)+"d ago"}function Mt(k){if(k==null||k===0)return"--";const p=["B","KB","MB","GB","TB"];let N=0,tt=k;for(;tt>=1024&&N<p.length-1;)tt/=1024,N++;return tt.toFixed(1)+" "+p[N]}function _n(k){const p=Math.floor(k/86400),N=Math.floor(k%86400/3600);if(p>0)return`${p}d ${N}h`;const tt=Math.floor(k%3600/60);return`${N}h ${tt}m`}function bn(k){switch(k){case"trusted":return"bg-green-400/20 text-green-400";case"observer":return"bg-blue-400/20 text-blue-400";case"untrusted":return"bg-white/10 text-white/50";default:return"bg-white/10 text-white/50"}}function Kt(k){const p=n.peers.find(N=>N.did===k);if(!p)return{icon:"?",color:"text-white/30",label:"unknown"};switch(p.preferred_transport){case"mesh":return{icon:"📡",color:"text-orange-400",label:"mesh"};case"lan":return{icon:"🌐",color:"text-green-400",label:"lan"};case"tor":return{icon:"🧅",color:"text-purple-400",label:"tor"};default:return{icon:"?",color:"text-white/30",label:"unknown"}}}return Ye(async()=>{j(),ye(),n.fetchPeers();try{const k=await Y.getNodeDid();$.value=k.did}catch{}}),(k,p)=>(T(),E("div",Io,[g("div",Fo,[g("button",{onClick:p[0]||(p[0]=N=>Cn(e).push("/dashboard/web5")),class:"flex items-center gap-2 text-white/50 hover:text-white/80 transition-colors text-sm mb-4"},[...p[16]||(p[16]=[g("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[g("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),ot(" Back to Web5 ",-1)])]),p[17]||(p[17]=g("h1",{class:"text-3xl font-bold text-white mb-2"},"Federation",-1)),p[18]||(p[18]=g("p",{class:"text-white/70"},"Manage trusted node clusters and sync state across your network",-1)),g("p",Bo,M(r.value.length)+" federated node"+M(r.value.length!==1?"s":""),1)]),r.value.length>0?(T(),E("div",Po,[(T(),E(dt,null,St(A,N=>g("button",{key:N.id,class:J(["px-4 py-2 rounded text-sm font-medium transition-colors",C.value===N.id?"bg-white/10 text-white border-b-2 border-orange-400":"text-white/50 hover:text-white/70"]),onClick:tt=>S(N.id)},M(N.label),11,Ho)),64))])):L("",!0),C.value==="map"&&r.value.length>0?(T(),E("div",zo,[$n(Do,{nodes:F.value,links:D.value},null,8,["nodes","links"])])):L("",!0),C.value==="list"?(T(),E(dt,{key:2},[g("div",Lo,[g("div",Xo,[g("div",Oo,[p[19]||(p[19]=Qt('<div class="flex items-center gap-3 min-w-0"><svg class="w-5 h-5 text-orange-400 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"></path></svg><div class="min-w-0"><p class="text-sm font-medium text-white">Invite Node</p><p class="text-xs text-white/60">Generate invite code</p></div></div>',1)),g("button",{onClick:ft,class:"w-fit px-3 py-1.5 glass-button glass-button-sm rounded text-xs font-medium text-white/90 hover:text-white transition-colors disabled:opacity-50",disabled:u.value},M(u.value?"Generating...":"Generate"),9,Vo)]),g("div",Uo,[p[20]||(p[20]=Qt('<div class="flex items-center gap-3 min-w-0"><svg class="w-5 h-5 text-blue-400 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"></path></svg><div class="min-w-0"><p class="text-sm font-medium text-white">Join</p><p class="text-xs text-white/60">Accept an invite code</p></div></div>',1)),g("button",{onClick:p[1]||(p[1]=N=>c.value=!0),class:"w-fit px-3 py-1.5 glass-button glass-button-sm rounded text-xs font-medium text-white/90 hover:text-white transition-colors"}," Join ")]),g("div",Yo,[p[21]||(p[21]=Qt('<div class="flex items-center gap-3 min-w-0"><svg class="w-5 h-5 text-green-400 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg><div class="min-w-0"><p class="text-sm font-medium text-white">Sync</p><p class="text-xs text-white/60">Refresh all node states</p></div></div>',1)),g("button",{onClick:$t,class:"w-fit px-3 py-1.5 glass-button glass-button-sm rounded text-xs font-medium text-white/90 hover:text-white transition-colors disabled:opacity-50",disabled:w.value},M(w.value?"Syncing...":"Sync Now"),9,qo)])])]),a.value?(T(),E("div",Go,[g("div",Jo,[p[22]||(p[22]=g("h2",{class:"text-lg font-semibold text-white"},"Invite Code",-1)),g("button",{onClick:p[2]||(p[2]=N=>a.value=""),class:"text-white/40 hover:text-white/70 transition-colors text-sm"},"Dismiss")]),p[23]||(p[23]=g("p",{class:"text-xs text-white/60 mb-3"},"Share this code with the node you want to federate with. It can only be used once.",-1)),g("div",Wo,M(a.value),1),g("button",{onClick:Ct,class:"mt-3 px-4 py-2 glass-button rounded text-sm text-white/90 hover:text-white transition-colors"},M(l.value?"Copied":"Copy to Clipboard"),1)])):L("",!0),y.value.length>0?(T(),E("div",Ko,[g("div",Qo,[p[24]||(p[24]=g("h2",{class:"text-lg font-semibold text-white"},"Sync Results",-1)),g("button",{onClick:p[3]||(p[3]=N=>y.value=[]),class:"text-white/40 hover:text-white/70 transition-colors text-sm"},"Dismiss")]),g("div",Zo,[(T(!0),E(dt,null,St(y.value,N=>(T(),E("div",{key:N.did,class:"flex items-center gap-3 p-3 bg-white/5 rounded-lg"},[g("div",{class:J(["w-2 h-2 rounded-full shrink-0",N.status==="ok"?"bg-green-400":"bg-red-400"])},null,2),g("span",jo,M(Wt(N.did)),1),N.status==="ok"?(T(),E("span",ta,M(N.apps)+" apps",1)):(T(),E("span",ea,M(N.error),1))]))),128))])])):L("",!0),s.value?(T(),E("div",na,[g("p",ra,M(s.value),1)])):L("",!0),g("div",ia,[p[31]||(p[31]=g("h2",{class:"text-lg font-semibold text-white mb-4"},"Federated Nodes",-1)),i.value?(T(),E("div",sa,[...p[25]||(p[25]=[g("div",{class:"w-5 h-5 border-2 border-white/20 border-t-orange-400 rounded-full animate-spin"},null,-1),g("span",{class:"text-white/60 text-sm"},"Loading nodes...",-1)])])):r.value.length===0?(T(),E("div",oa,[...p[26]||(p[26]=[g("svg",{class:"w-16 h-16 text-white/20 mx-auto mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[g("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"})],-1),g("p",{class:"text-white/50 text-sm mb-2"},"No federated nodes yet",-1),g("p",{class:"text-white/30 text-xs"},"Generate an invite code or join an existing federation",-1)])])):(T(),E("div",aa,[(T(!0),E(dt,null,St(r.value,N=>(T(),E("div",{key:N.did,class:"bg-black/20 rounded-xl border border-white/10 p-4 cursor-pointer hover:border-white/20 transition-colors",onClick:tt=>o.value=N},[g("div",ua,[g("div",ca,[g("div",{class:J(["w-2.5 h-2.5 rounded-full shrink-0",we(N)?"bg-green-400":"bg-white/30"])},null,2),g("span",fa,M(N.name||Wt(N.did)),1),g("span",{class:J(["text-xs shrink-0",Kt(N.did).color]),title:"Transport: "+Kt(N.did).label},M(Kt(N.did).icon),11,ha)]),g("span",{class:J(["text-xs px-2 py-0.5 rounded-full shrink-0",bn(N.trust_level)])},M(N.trust_level),3)]),g("div",da,[g("div",null,[p[27]||(p[27]=g("span",{class:"text-white/30"},"Apps:",-1)),ot(" "+M(N.last_state?.apps?.length??"--"),1)]),g("div",null,[p[28]||(p[28]=g("span",{class:"text-white/30"},"CPU:",-1)),ot(" "+M(N.last_state?.cpu_usage_percent!=null?N.last_state.cpu_usage_percent.toFixed(1)+"%":"--"),1)]),g("div",pa,[p[29]||(p[29]=g("span",{class:"text-white/30"},"DWN:",-1)),g("span",{class:J(["w-1.5 h-1.5 rounded-full",P.value])},null,2)]),g("div",null,[p[30]||(p[30]=g("span",{class:"text-white/30"},"Seen:",-1)),ot(" "+M(N.last_seen?me(N.last_seen):"never"),1)])])],8,la))),128))]))])],64)):L("",!0),o.value?(T(),E("div",{key:3,class:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/10 backdrop-blur-md",onClick:p[11]||(p[11]=_e(N=>{o.value=null,m.value=!1},["self"]))},[g("div",ga,[g("div",va,[p[33]||(p[33]=g("h2",{class:"text-xl font-semibold text-white"},"Node Details",-1)),g("button",{onClick:p[4]||(p[4]=N=>{o.value=null,m.value=!1}),class:"text-white/40 hover:text-white/70 transition-colors"},[...p[32]||(p[32]=[g("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[g("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),g("div",xa,[g("div",ya,[p[34]||(p[34]=g("p",{class:"text-xs text-white/40 mb-1"},"DID",-1)),g("p",wa,M(o.value.did),1)]),g("div",ma,[p[35]||(p[35]=g("p",{class:"text-xs text-white/40 mb-1"},"Onion Address",-1)),g("p",_a,M(o.value.onion),1)]),g("div",ba,[p[37]||(p[37]=g("p",{class:"text-xs text-white/40 mb-1"},"Trust Level",-1)),g("div",ka,[g("select",{value:o.value.trust_level,onChange:p[5]||(p[5]=N=>ht(o.value.did,N.target.value)),class:"bg-black/30 text-white text-sm rounded px-2 py-1 border border-white/10"},[...p[36]||(p[36]=[g("option",{value:"trusted"},"Trusted",-1),g("option",{value:"observer"},"Observer",-1),g("option",{value:"untrusted"},"Untrusted",-1)])],40,Na)])]),g("div",Aa,[p[38]||(p[38]=g("p",{class:"text-xs text-white/40 mb-1"},"Added",-1)),g("p",Ca,M(o.value.added_at),1)]),o.value.last_state?(T(),E("div",$a,[p[39]||(p[39]=g("p",{class:"text-xs text-white/40 mb-2"},"Resource Usage",-1)),g("div",Ma,[g("div",null,"CPU: "+M(o.value.last_state.cpu_usage_percent?.toFixed(1)??"--")+"%",1),g("div",null,"Uptime: "+M(o.value.last_state.uptime_secs?_n(o.value.last_state.uptime_secs):"--"),1),g("div",null,"RAM: "+M(Mt(o.value.last_state.mem_used_bytes))+" / "+M(Mt(o.value.last_state.mem_total_bytes)),1),g("div",null,"Disk: "+M(Mt(o.value.last_state.disk_used_bytes))+" / "+M(Mt(o.value.last_state.disk_total_bytes)),1)])])):L("",!0),o.value.last_state?.apps?.length?(T(),E("div",Sa,[g("p",Ea,"Apps ("+M(o.value.last_state.apps.length)+")",1),g("div",Ta,[(T(!0),E(dt,null,St(o.value.last_state.apps,N=>(T(),E("div",{key:N.id,class:"flex items-center justify-between text-sm"},[g("span",Ra,M(N.id),1),g("span",{class:J(["text-xs",N.status==="running"?"text-green-400":"text-white/40"])},M(N.status),3)]))),128))])])):L("",!0),o.value.trust_level==="trusted"?(T(),E("div",Da,[p[40]||(p[40]=g("p",{class:"text-xs text-white/40 mb-2"},"Deploy App",-1)),g("div",Ia,[be(g("input",{"onUpdate:modelValue":p[6]||(p[6]=N=>_.value=N),placeholder:"App ID (e.g. bitcoin)",class:"flex-1 bg-black/30 text-white text-sm rounded px-2 py-1.5 border border-white/10 focus:border-orange-400/50 focus:outline-none"},null,512),[[ke,_.value]]),g("button",{onClick:p[7]||(p[7]=N=>wn(o.value.did)),class:"px-3 py-1.5 glass-button rounded text-xs text-white/90 font-medium disabled:opacity-50",disabled:x.value||!_.value.trim()},M(x.value?"Deploying...":"Deploy"),9,Fa)]),f.value?(T(),E("p",{key:0,class:J(["text-xs mt-2",f.value.startsWith("Error")?"text-red-400":"text-green-400"])},M(f.value),3)):L("",!0)])):L("",!0),g("div",Ba,[g("div",Pa,[p[41]||(p[41]=g("p",{class:"text-xs text-white/40"},"DWN Sync",-1)),g("div",Ha,[g("span",{class:J(["w-1.5 h-1.5 rounded-full",P.value])},null,2),g("span",za,M(st.value),1)])]),g("div",La,[g("div",null,[p[42]||(p[42]=g("span",{class:"text-white/30"},"Messages:",-1)),ot(" "+M(R.value?.message_count??"--"),1)]),g("div",null,[p[43]||(p[43]=g("span",{class:"text-white/30"},"Last sync:",-1)),ot(" "+M(R.value?.last_sync?me(R.value.last_sync):"never"),1)])]),g("button",{onClick:mn,class:"px-3 py-1.5 glass-button rounded text-xs text-white/90 font-medium disabled:opacity-50",disabled:B.value},M(B.value?"Syncing...":"Sync Now"),9,Xa)]),m.value?(T(),E("div",Va,[p[44]||(p[44]=g("p",{class:"text-sm text-red-400 mb-3"},"Are you sure? This node will be removed from your federation.",-1)),g("div",Ua,[g("button",{onClick:p[9]||(p[9]=N=>m.value=!1),class:"flex-1 px-3 py-1.5 glass-button rounded text-sm text-white/70"},"Cancel"),g("button",{onClick:p[10]||(p[10]=N=>yn(o.value.did)),class:"flex-1 px-3 py-1.5 rounded text-sm text-red-400 border border-red-400/30 hover:bg-red-400/10 transition-colors font-medium"},"Confirm Remove")])])):(T(),E("div",Oa,[g("button",{onClick:p[8]||(p[8]=N=>m.value=!0),class:"w-full mt-4 px-4 py-2 rounded text-sm text-red-400 border border-red-400/30 hover:bg-red-400/10 transition-colors"}," Remove from Federation ")]))])])])):L("",!0),c.value?(T(),E("div",{key:4,class:"fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/10 backdrop-blur-md",onClick:p[15]||(p[15]=_e(N=>c.value=!1,["self"]))},[g("div",Ya,[g("div",qa,[p[46]||(p[46]=g("h2",{class:"text-xl font-semibold text-white"},"Join Federation",-1)),g("button",{onClick:p[12]||(p[12]=N=>c.value=!1),class:"text-white/40 hover:text-white/70 transition-colors"},[...p[45]||(p[45]=[g("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[g("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])])]),p[47]||(p[47]=g("p",{class:"text-sm text-white/60 mb-4"},"Paste the invite code from the node you want to federate with.",-1)),be(g("textarea",{"onUpdate:modelValue":p[13]||(p[13]=N=>v.value=N),placeholder:"fed1:...",rows:"3",class:"w-full bg-black/30 text-white text-sm rounded-lg p-3 border border-white/10 focus:border-orange-400/50 focus:outline-none font-mono resize-none"},null,512),[[ke,v.value]]),h.value?(T(),E("div",Ga,M(h.value),1)):L("",!0),b.value?(T(),E("div",Ja,"Successfully joined federation")):L("",!0),g("div",Wa,[g("button",{onClick:p[14]||(p[14]=N=>c.value=!1),class:"flex-1 px-4 py-2 glass-button rounded text-sm text-white/70"},"Cancel"),g("button",{onClick:Jt,class:"flex-1 px-4 py-2 glass-button rounded text-sm text-white font-medium disabled:opacity-50",disabled:d.value||!v.value.trim()},M(d.value?"Joining...":"Join"),9,Ka)])])])):L("",!0)]))}});export{ja as default};
|