@spexcode/spec-dashboard 0.6.7 → 0.7.0-next.0
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.
- package/dist/assets/App-CDnq7CoJ.js +2 -0
- package/dist/assets/EmptyView-9otc0raU.js +1 -0
- package/dist/assets/EvalsPage-CvJFW7Xx.js +2 -0
- package/dist/assets/FileView-CiopSqO_.js +2 -0
- package/dist/assets/GraphStats-CxHsXNy-.js +1 -0
- package/dist/assets/GraphView-CpSd8In8.js +26 -0
- package/dist/assets/IssuesPage-B0Lgqyjr.js +1 -0
- package/dist/assets/MobileApp-BWgx12mU.js +2 -0
- package/dist/assets/Modal-DbaOKtG9.js +1 -0
- package/dist/assets/NodeView-CVaIUdMO.js +3 -0
- package/dist/assets/ProjectsPage-B8i6SOxZ.js +1 -0
- package/dist/assets/ProseActions-CFA-z4t3.js +8 -0
- package/dist/assets/Settings-DCI7WK4U.js +1 -0
- package/dist/assets/SpecView-Cz828zhT.js +1 -0
- package/dist/assets/Thread-BD6H7vPk.js +9 -0
- package/dist/assets/WorkspaceSurface-CTZ5UUgv.js +2 -0
- package/dist/assets/index-BuOQYAQK.css +1 -0
- package/dist/assets/index-C6l-jpX4.js +40 -0
- package/dist/assets/index-DqfNBCzh.js +13 -0
- package/dist/assets/tabs-B7_g8HG7.js +334 -0
- package/dist/assets/tabs-Brk4lg7l.css +32 -0
- package/dist/index.html +3 -3
- package/dist-public/assets/App-5COraOZF.js +2 -0
- package/dist-public/assets/EmptyView-Dil8vYWz.js +1 -0
- package/dist-public/assets/EvalsPage-DnIhSuCK.js +2 -0
- package/dist-public/assets/FileView-BubZCad5.js +2 -0
- package/dist-public/assets/GraphStats-CxHsXNy-.js +1 -0
- package/dist-public/assets/GraphView-gPGwYpUk.js +26 -0
- package/dist-public/assets/IssuesPage-gbqBOftY.js +1 -0
- package/dist-public/assets/MobileApp-CAqNJ_Bh.js +2 -0
- package/dist-public/assets/Modal-B_Q59vv6.js +1 -0
- package/dist-public/assets/NodeView-B3WRY-q0.js +3 -0
- package/dist-public/assets/ProjectsPage-Z0t0yxxh.js +1 -0
- package/dist-public/assets/ProseActions-DPypFjCH.js +8 -0
- package/dist-public/assets/Settings-d9DTofmL.js +1 -0
- package/dist-public/assets/SpecView-CNGt9F1G.js +1 -0
- package/dist-public/assets/Thread-DIfN4RS4.js +9 -0
- package/dist-public/assets/WorkspaceSurface-BEDKMlRs.js +2 -0
- package/dist-public/assets/index-BJDLZCaX.js +13 -0
- package/dist-public/assets/index-BuOQYAQK.css +1 -0
- package/dist-public/assets/index-r6NCWBwM.js +40 -0
- package/dist-public/assets/tabs-BSpGhf1t.js +334 -0
- package/dist-public/assets/tabs-PFmT6UqQ.css +32 -0
- package/dist-public/index.html +3 -3
- package/package.json +10 -3
- package/dist/assets/App-CyvuxJYw.js +0 -2
- package/dist/assets/Dashboard-DUitEyrD.js +0 -27
- package/dist/assets/EvalsPage-PLgW05y7.js +0 -2
- package/dist/assets/IssuesPage-BcFWiFjF.js +0 -1
- package/dist/assets/MobileApp-Dky_U9DL.js +0 -2
- package/dist/assets/Modal-8cCCnDgy.js +0 -1
- package/dist/assets/PageScroll-GBlw382O.js +0 -1
- package/dist/assets/ProjectsPage-CdKKLnBH.js +0 -1
- package/dist/assets/SessionInterface-6GBZ9nXN.css +0 -32
- package/dist/assets/SessionInterface-Dp-rUO1H.js +0 -40
- package/dist/assets/SessionWindow-D2zgUVTT.js +0 -1
- package/dist/assets/Settings-7cKD-jHj.js +0 -1
- package/dist/assets/Thread-BkaL_dog.js +0 -13
- package/dist/assets/TimelineChat-Cp579UoJ.css +0 -1
- package/dist/assets/TimelineChat-DOKwQ3Sd.js +0 -276
- package/dist/assets/bindings-BC9vqpYU.js +0 -1
- package/dist/assets/data-CHkRTrsm.js +0 -1
- package/dist/assets/index-Ba-oHmxn.css +0 -1
- package/dist/assets/index-Di9gWPc6.js +0 -41
- package/dist/assets/sessionSurface-H34ExWBA.js +0 -1
- package/dist-public/assets/App-DebAWelc.js +0 -2
- package/dist-public/assets/Dashboard-DhuzsOUh.js +0 -27
- package/dist-public/assets/EvalsPage-CHc1tT-0.js +0 -2
- package/dist-public/assets/IssuesPage-BqojZnnr.js +0 -1
- package/dist-public/assets/MobileApp-DevENU8x.js +0 -2
- package/dist-public/assets/Modal-DAUYhrDn.js +0 -1
- package/dist-public/assets/PageScroll-Bxaqks4c.js +0 -1
- package/dist-public/assets/ProjectsPage-GHR6vTck.js +0 -1
- package/dist-public/assets/SessionInterface-6GBZ9nXN.css +0 -32
- package/dist-public/assets/SessionInterface-C0Fy_tWd.js +0 -40
- package/dist-public/assets/SessionWindow-CkdNpele.js +0 -1
- package/dist-public/assets/Settings-1XN_EQnW.js +0 -1
- package/dist-public/assets/Thread-BHCpsJIa.js +0 -13
- package/dist-public/assets/TimelineChat-N9RZ6v95.js +0 -276
- package/dist-public/assets/TimelineChat-dIRGbAJA.css +0 -1
- package/dist-public/assets/bindings-BC9vqpYU.js +0 -1
- package/dist-public/assets/data-BmO9k_xP.js +0 -1
- package/dist-public/assets/index-Ba-oHmxn.css +0 -1
- package/dist-public/assets/index-oM1cUuGR.js +0 -41
- package/dist-public/assets/sessionSurface-BNwc7E-I.js +0 -1
- /package/dist/assets/{Dashboard-BnuhLJ6X.css → GraphView-BnuhLJ6X.css} +0 -0
- /package/dist-public/assets/{Dashboard-BnuhLJ6X.css → GraphView-BnuhLJ6X.css} +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./tabs-BSpGhf1t.js","./index-r6NCWBwM.js","./index-BuOQYAQK.css","./App-5COraOZF.js","./Modal-B_Q59vv6.js","./tabs-PFmT6UqQ.css","./EvalsPage-DnIhSuCK.js","./Thread-DIfN4RS4.js","./IssuesPage-gbqBOftY.js","./NodeView-B3WRY-q0.js","./ProseActions-DPypFjCH.js","./Settings-d9DTofmL.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as E,Y as Ra,Z as za,j as b,u as $n,Q as fr,$ as La,o as Ha,I as Jn,a as ja,T as Va,a0 as Ba,a1 as Fa,a2 as Oa,a3 as Xa,a4 as Ya,a5 as li,a6 as ui,_ as Pn,a7 as Wa,a8 as qa}from"./index-r6NCWBwM.js";import{S as Zr,al as Ga,U as Ka,am as Za,a9 as Ua,C as Qa,a as er,b as It,c as Ur,an as Ja,d as ec,g as tc,Y as Qr,a1 as nc,_ as pe,ao as rc,ap as oc,I as ic,aq as fi,X as sc}from"./tabs-BSpGhf1t.js";import{b as di,e as ac,c as cc,u as lc,a as Jr,d as uc}from"./App-5COraOZF.js";import{p as fc,N as dc}from"./NodeView-B3WRY-q0.js";import{c as hc,G as gc}from"./GraphStats-CxHsXNy-.js";import{r as pc}from"./Modal-B_Q59vv6.js";import"./Thread-DIfN4RS4.js";import"./ProseActions-DPypFjCH.js";function ye(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=ye(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var mc={value:()=>{}};function Tn(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new mn(n)}function mn(e){this._=e}function yc(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}mn.prototype=Tn.prototype={constructor:mn,on:function(e,t){var n=this._,r=yc(e+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(e=r[i]).type)&&(o=xc(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(o=(e=r[i]).type)n[o]=eo(n[o],e.name,t);else if(t==null)for(o in n)n[o]=eo(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new mn(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};function xc(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function eo(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=mc,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var dr="http://www.w3.org/1999/xhtml";const to={svg:"http://www.w3.org/2000/svg",xhtml:dr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Dn(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),to.hasOwnProperty(t)?{space:to[t],local:e}:e}function wc(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===dr&&t.documentElement.namespaceURI===dr?t.createElement(e):t.createElementNS(n,e)}}function vc(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function hi(e){var t=Dn(e);return(t.local?vc:wc)(t)}function bc(){}function Mr(e){return e==null?bc:function(){return this.querySelector(e)}}function _c(e){typeof e!="function"&&(e=Mr(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=new Array(s),c,l,f=0;f<s;++f)(c=i[f])&&(l=e.call(c,c.__data__,f,i))&&("__data__"in c&&(l.__data__=c.__data__),a[f]=l);return new Me(r,this._parents)}function Ec(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Sc(){return[]}function gi(e){return e==null?Sc:function(){return this.querySelectorAll(e)}}function Nc(e){return function(){return Ec(e.apply(this,arguments))}}function Mc(e){typeof e=="function"?e=Nc(e):e=gi(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var s=t[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&(r.push(e.call(c,c.__data__,l,s)),o.push(c));return new Me(r,o)}function pi(e){return function(){return this.matches(e)}}function mi(e){return function(t){return t.matches(e)}}var Cc=Array.prototype.find;function kc(e){return function(){return Cc.call(this.children,e)}}function Ac(){return this.firstElementChild}function Ic(e){return this.select(e==null?Ac:kc(typeof e=="function"?e:mi(e)))}var $c=Array.prototype.filter;function Pc(){return Array.from(this.children)}function Tc(e){return function(){return $c.call(this.children,e)}}function Dc(e){return this.selectAll(e==null?Pc:Tc(typeof e=="function"?e:mi(e)))}function Rc(e){typeof e!="function"&&(e=pi(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new Me(r,this._parents)}function yi(e){return new Array(e.length)}function zc(){return new Me(this._enter||this._groups.map(yi),this._parents)}function bn(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}bn.prototype={constructor:bn,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Lc(e){return function(){return e}}function Hc(e,t,n,r,o,i){for(var s=0,a,c=t.length,l=i.length;s<l;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new bn(e,i[s]);for(;s<c;++s)(a=t[s])&&(o[s]=a)}function jc(e,t,n,r,o,i,s){var a,c,l=new Map,f=t.length,d=i.length,u=new Array(f),h;for(a=0;a<f;++a)(c=t[a])&&(u[a]=h=s.call(c,c.__data__,a,t)+"",l.has(h)?o[a]=c:l.set(h,c));for(a=0;a<d;++a)h=s.call(e,i[a],a,i)+"",(c=l.get(h))?(r[a]=c,c.__data__=i[a],l.delete(h)):n[a]=new bn(e,i[a]);for(a=0;a<f;++a)(c=t[a])&&l.get(u[a])===c&&(o[a]=c)}function Vc(e){return e.__data__}function Bc(e,t){if(!arguments.length)return Array.from(this,Vc);var n=t?jc:Hc,r=this._parents,o=this._groups;typeof e!="function"&&(e=Lc(e));for(var i=o.length,s=new Array(i),a=new Array(i),c=new Array(i),l=0;l<i;++l){var f=r[l],d=o[l],u=d.length,h=Fc(e.call(f,f&&f.__data__,l,r)),g=h.length,w=a[l]=new Array(g),x=s[l]=new Array(g),m=c[l]=new Array(u);n(f,d,w,x,m,h,t);for(var _=0,p=0,v,C;_<g;++_)if(v=w[_]){for(_>=p&&(p=_+1);!(C=x[p])&&++p<g;);v._next=C||null}}return s=new Me(s,r),s._enter=a,s._exit=c,s}function Fc(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Oc(){return new Me(this._exit||this._groups.map(yi),this._parents)}function Xc(e,t,n){var r=this.enter(),o=this,i=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function Yc(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,s=Math.min(o,i),a=new Array(o),c=0;c<s;++c)for(var l=n[c],f=r[c],d=l.length,u=a[c]=new Array(d),h,g=0;g<d;++g)(h=l[g]||f[g])&&(u[g]=h);for(;c<o;++c)a[c]=n[c];return new Me(a,this._parents)}function Wc(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function qc(e){e||(e=Gc);function t(d,u){return d&&u?e(d.__data__,u.__data__):!d-!u}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],a=s.length,c=o[i]=new Array(a),l,f=0;f<a;++f)(l=s[f])&&(c[f]=l);c.sort(t)}return new Me(o,this._parents).order()}function Gc(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Kc(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Zc(){return Array.from(this)}function Uc(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function Qc(){let e=0;for(const t of this)++e;return e}function Jc(){return!this.node()}function el(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],i=0,s=o.length,a;i<s;++i)(a=o[i])&&e.call(a,a.__data__,i,o);return this}function tl(e){return function(){this.removeAttribute(e)}}function nl(e){return function(){this.removeAttributeNS(e.space,e.local)}}function rl(e,t){return function(){this.setAttribute(e,t)}}function ol(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function il(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function sl(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function al(e,t){var n=Dn(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?nl:tl:typeof t=="function"?n.local?sl:il:n.local?ol:rl)(n,t))}function xi(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function cl(e){return function(){this.style.removeProperty(e)}}function ll(e,t,n){return function(){this.style.setProperty(e,t,n)}}function ul(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function fl(e,t,n){return arguments.length>1?this.each((t==null?cl:typeof t=="function"?ul:ll)(e,t,n??"")):xt(this.node(),e)}function xt(e,t){return e.style.getPropertyValue(t)||xi(e).getComputedStyle(e,null).getPropertyValue(t)}function dl(e){return function(){delete this[e]}}function hl(e,t){return function(){this[e]=t}}function gl(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function pl(e,t){return arguments.length>1?this.each((t==null?dl:typeof t=="function"?gl:hl)(e,t)):this.node()[e]}function wi(e){return e.trim().split(/^|\s+/)}function Cr(e){return e.classList||new vi(e)}function vi(e){this._node=e,this._names=wi(e.getAttribute("class")||"")}vi.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function bi(e,t){for(var n=Cr(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function _i(e,t){for(var n=Cr(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function ml(e){return function(){bi(this,e)}}function yl(e){return function(){_i(this,e)}}function xl(e,t){return function(){(t.apply(this,arguments)?bi:_i)(this,e)}}function wl(e,t){var n=wi(e+"");if(arguments.length<2){for(var r=Cr(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?xl:t?ml:yl)(n,t))}function vl(){this.textContent=""}function bl(e){return function(){this.textContent=e}}function _l(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function El(e){return arguments.length?this.each(e==null?vl:(typeof e=="function"?_l:bl)(e)):this.node().textContent}function Sl(){this.innerHTML=""}function Nl(e){return function(){this.innerHTML=e}}function Ml(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Cl(e){return arguments.length?this.each(e==null?Sl:(typeof e=="function"?Ml:Nl)(e)):this.node().innerHTML}function kl(){this.nextSibling&&this.parentNode.appendChild(this)}function Al(){return this.each(kl)}function Il(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function $l(){return this.each(Il)}function Pl(e){var t=typeof e=="function"?e:hi(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Tl(){return null}function Dl(e,t){var n=typeof e=="function"?e:hi(e),r=t==null?Tl:typeof t=="function"?t:Mr(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Rl(){var e=this.parentNode;e&&e.removeChild(this)}function zl(){return this.each(Rl)}function Ll(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Hl(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function jl(e){return this.select(e?Hl:Ll)}function Vl(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Bl(e){return function(t){e.call(this,t,this.__data__)}}function Fl(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function Ol(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,i;n<o;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function Xl(e,t,n){return function(){var r=this.__on,o,i=Bl(t);if(r){for(var s=0,a=r.length;s<a;++s)if((o=r[s]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=t;return}}this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function Yl(e,t,n){var r=Fl(e+""),o,i=r.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,l=a.length,f;c<l;++c)for(o=0,f=a[c];o<i;++o)if((s=r[o]).type===f.type&&s.name===f.name)return f.value}return}for(a=t?Xl:Ol,o=0;o<i;++o)this.each(a(r[o],t,n));return this}function Ei(e,t,n){var r=xi(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function Wl(e,t){return function(){return Ei(this,e,t)}}function ql(e,t){return function(){return Ei(this,e,t.apply(this,arguments))}}function Gl(e,t){return this.each((typeof t=="function"?ql:Wl)(e,t))}function*Kl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var Si=[null];function Me(e,t){this._groups=e,this._parents=t}function Gt(){return new Me([[document.documentElement]],Si)}function Zl(){return this}Me.prototype=Gt.prototype={constructor:Me,select:_c,selectAll:Mc,selectChild:Ic,selectChildren:Dc,filter:Rc,data:Bc,enter:zc,exit:Oc,join:Xc,merge:Yc,selection:Zl,order:Wc,sort:qc,call:Kc,nodes:Zc,node:Uc,size:Qc,empty:Jc,each:el,attr:al,style:fl,property:pl,classed:wl,text:El,html:Cl,raise:Al,lower:$l,append:Pl,insert:Dl,remove:zl,clone:jl,datum:Vl,on:Yl,dispatch:Gl,[Symbol.iterator]:Kl};function Ne(e){return typeof e=="string"?new Me([[document.querySelector(e)]],[document.documentElement]):new Me([[e]],Si)}function Ul(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Ie(e,t){if(e=Ul(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const Ql={passive:!1},Ht={capture:!0,passive:!1};function tr(e){e.stopImmediatePropagation()}function mt(e){e.preventDefault(),e.stopImmediatePropagation()}function Ni(e){var t=e.document.documentElement,n=Ne(e).on("dragstart.drag",mt,Ht);"onselectstart"in t?n.on("selectstart.drag",mt,Ht):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Mi(e,t){var n=e.document.documentElement,r=Ne(e).on("dragstart.drag",null);t&&(r.on("click.drag",mt,Ht),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 an=e=>()=>e;function hr(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:s,y:a,dx:c,dy:l,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:f}})}hr.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Jl(e){return!e.ctrlKey&&!e.button}function eu(){return this.parentNode}function tu(e,t){return t??{x:e.x,y:e.y}}function nu(){return navigator.maxTouchPoints||"ontouchstart"in this}function Ci(){var e=Jl,t=eu,n=tu,r=nu,o={},i=Tn("start","drag","end"),s=0,a,c,l,f,d=0;function u(v){v.on("mousedown.drag",h).filter(r).on("touchstart.drag",x).on("touchmove.drag",m,Ql).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(v,C){if(!(f||!e.call(this,v,C))){var S=p(this,t.call(this,v,C),v,C,"mouse");S&&(Ne(v.view).on("mousemove.drag",g,Ht).on("mouseup.drag",w,Ht),Ni(v.view),tr(v),l=!1,a=v.clientX,c=v.clientY,S("start",v))}}function g(v){if(mt(v),!l){var C=v.clientX-a,S=v.clientY-c;l=C*C+S*S>d}o.mouse("drag",v)}function w(v){Ne(v.view).on("mousemove.drag mouseup.drag",null),Mi(v.view,l),mt(v),o.mouse("end",v)}function x(v,C){if(e.call(this,v,C)){var S=v.changedTouches,I=t.call(this,v,C),P=S.length,$,O;for($=0;$<P;++$)(O=p(this,I,v,C,S[$].identifier,S[$]))&&(tr(v),O("start",v,S[$]))}}function m(v){var C=v.changedTouches,S=C.length,I,P;for(I=0;I<S;++I)(P=o[C[I].identifier])&&(mt(v),P("drag",v,C[I]))}function _(v){var C=v.changedTouches,S=C.length,I,P;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),I=0;I<S;++I)(P=o[C[I].identifier])&&(tr(v),P("end",v,C[I]))}function p(v,C,S,I,P,$){var O=i.copy(),D=Ie($||S,C),F,L,y;if((y=n.call(v,new hr("beforestart",{sourceEvent:S,target:u,identifier:P,active:s,x:D[0],y:D[1],dx:0,dy:0,dispatch:O}),I))!=null)return F=y.x-D[0]||0,L=y.y-D[1]||0,function N(M,A,T){var k=D,H;switch(M){case"start":o[P]=N,H=s++;break;case"end":delete o[P],--s;case"drag":D=Ie(T||A,C),H=s;break}O.call(M,v,new hr(M,{sourceEvent:A,subject:y,target:u,identifier:P,active:H,x:D[0]+F,y:D[1]+L,dx:D[0]-k[0],dy:D[1]-k[1],dispatch:O}),I)}}return u.filter=function(v){return arguments.length?(e=typeof v=="function"?v:an(!!v),u):e},u.container=function(v){return arguments.length?(t=typeof v=="function"?v:an(v),u):t},u.subject=function(v){return arguments.length?(n=typeof v=="function"?v:an(v),u):n},u.touchable=function(v){return arguments.length?(r=typeof v=="function"?v:an(!!v),u):r},u.on=function(){var v=i.on.apply(i,arguments);return v===i?u:v},u.clickDistance=function(v){return arguments.length?(d=(v=+v)*v,u):Math.sqrt(d)},u}function kr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ki(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Kt(){}var jt=.7,_n=1/jt,yt="\\s*([+-]?\\d+)\\s*",Vt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Fe="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ru=/^#([0-9a-f]{3,8})$/,ou=new RegExp(`^rgb\\(${yt},${yt},${yt}\\)$`),iu=new RegExp(`^rgb\\(${Fe},${Fe},${Fe}\\)$`),su=new RegExp(`^rgba\\(${yt},${yt},${yt},${Vt}\\)$`),au=new RegExp(`^rgba\\(${Fe},${Fe},${Fe},${Vt}\\)$`),cu=new RegExp(`^hsl\\(${Vt},${Fe},${Fe}\\)$`),lu=new RegExp(`^hsla\\(${Vt},${Fe},${Fe},${Vt}\\)$`),no={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};kr(Kt,it,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:ro,formatHex:ro,formatHex8:uu,formatHsl:fu,formatRgb:oo,toString:oo});function ro(){return this.rgb().formatHex()}function uu(){return this.rgb().formatHex8()}function fu(){return Ai(this).formatHsl()}function oo(){return this.rgb().formatRgb()}function it(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=ru.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?io(t):n===3?new we(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?cn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?cn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=ou.exec(e))?new we(t[1],t[2],t[3],1):(t=iu.exec(e))?new we(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=su.exec(e))?cn(t[1],t[2],t[3],t[4]):(t=au.exec(e))?cn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=cu.exec(e))?co(t[1],t[2]/100,t[3]/100,1):(t=lu.exec(e))?co(t[1],t[2]/100,t[3]/100,t[4]):no.hasOwnProperty(e)?io(no[e]):e==="transparent"?new we(NaN,NaN,NaN,0):null}function io(e){return new we(e>>16&255,e>>8&255,e&255,1)}function cn(e,t,n,r){return r<=0&&(e=t=n=NaN),new we(e,t,n,r)}function du(e){return e instanceof Kt||(e=it(e)),e?(e=e.rgb(),new we(e.r,e.g,e.b,e.opacity)):new we}function gr(e,t,n,r){return arguments.length===1?du(e):new we(e,t,n,r??1)}function we(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}kr(we,gr,ki(Kt,{brighter(e){return e=e==null?_n:Math.pow(_n,e),new we(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?jt:Math.pow(jt,e),new we(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new we(rt(this.r),rt(this.g),rt(this.b),En(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:so,formatHex:so,formatHex8:hu,formatRgb:ao,toString:ao}));function so(){return`#${nt(this.r)}${nt(this.g)}${nt(this.b)}`}function hu(){return`#${nt(this.r)}${nt(this.g)}${nt(this.b)}${nt((isNaN(this.opacity)?1:this.opacity)*255)}`}function ao(){const e=En(this.opacity);return`${e===1?"rgb(":"rgba("}${rt(this.r)}, ${rt(this.g)}, ${rt(this.b)}${e===1?")":`, ${e})`}`}function En(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function rt(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function nt(e){return e=rt(e),(e<16?"0":"")+e.toString(16)}function co(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new $e(e,t,n,r)}function Ai(e){if(e instanceof $e)return new $e(e.h,e.s,e.l,e.opacity);if(e instanceof Kt||(e=it(e)),!e)return new $e;if(e instanceof $e)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),s=NaN,a=i-o,c=(i+o)/2;return a?(t===i?s=(n-r)/a+(n<r)*6:n===i?s=(r-t)/a+2:s=(t-n)/a+4,a/=c<.5?i+o:2-i-o,s*=60):a=c>0&&c<1?0:s,new $e(s,a,c,e.opacity)}function gu(e,t,n,r){return arguments.length===1?Ai(e):new $e(e,t,n,r??1)}function $e(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}kr($e,gu,ki(Kt,{brighter(e){return e=e==null?_n:Math.pow(_n,e),new $e(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?jt:Math.pow(jt,e),new $e(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new we(nr(e>=240?e-240:e+120,o,r),nr(e,o,r),nr(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new $e(lo(this.h),ln(this.s),ln(this.l),En(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 e=En(this.opacity);return`${e===1?"hsl(":"hsla("}${lo(this.h)}, ${ln(this.s)*100}%, ${ln(this.l)*100}%${e===1?")":`, ${e})`}`}}));function lo(e){return e=(e||0)%360,e<0?e+360:e}function ln(e){return Math.max(0,Math.min(1,e||0))}function nr(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const Ar=e=>()=>e;function pu(e,t){return function(n){return e+n*t}}function mu(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function yu(e){return(e=+e)==1?Ii:function(t,n){return n-t?mu(t,n,e):Ar(isNaN(t)?n:t)}}function Ii(e,t){var n=t-e;return n?pu(e,n):Ar(isNaN(e)?t:e)}const Sn=function e(t){var n=yu(t);function r(o,i){var s=n((o=gr(o)).r,(i=gr(i)).r),a=n(o.g,i.g),c=n(o.b,i.b),l=Ii(o.opacity,i.opacity);return function(f){return o.r=s(f),o.g=a(f),o.b=c(f),o.opacity=l(f),o+""}}return r.gamma=e,r}(1);function xu(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=e[o]*(1-i)+t[o]*i;return r}}function wu(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function vu(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),i=new Array(n),s;for(s=0;s<r;++s)o[s]=zt(e[s],t[s]);for(;s<n;++s)i[s]=t[s];return function(a){for(s=0;s<r;++s)i[s]=o[s](a);return i}}function bu(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Be(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function _u(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=zt(e[o],t[o]):r[o]=t[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var pr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,rr=new RegExp(pr.source,"g");function Eu(e){return function(){return e}}function Su(e){return function(t){return e(t)+""}}function $i(e,t){var n=pr.lastIndex=rr.lastIndex=0,r,o,i,s=-1,a=[],c=[];for(e=e+"",t=t+"";(r=pr.exec(e))&&(o=rr.exec(t));)(i=o.index)>n&&(i=t.slice(n,i),a[s]?a[s]+=i:a[++s]=i),(r=r[0])===(o=o[0])?a[s]?a[s]+=o:a[++s]=o:(a[++s]=null,c.push({i:s,x:Be(r,o)})),n=rr.lastIndex;return n<t.length&&(i=t.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?c[0]?Su(c[0].x):Eu(t):(t=c.length,function(l){for(var f=0,d;f<t;++f)a[(d=c[f]).i]=d.x(l);return a.join("")})}function zt(e,t){var n=typeof t,r;return t==null||n==="boolean"?Ar(t):(n==="number"?Be:n==="string"?(r=it(t))?(t=r,Sn):$i:t instanceof it?Sn:t instanceof Date?bu:wu(t)?xu:Array.isArray(t)?vu:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?_u:Be)(e,t)}var uo=180/Math.PI,mr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Pi(e,t,n,r,o,i){var s,a,c;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(c=e*n+t*r)&&(n-=e*c,r-=t*c),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,c/=a),e*r<t*n&&(e=-e,t=-t,c=-c,s=-s),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*uo,skewX:Math.atan(c)*uo,scaleX:s,scaleY:a}}var un;function Nu(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?mr:Pi(t.a,t.b,t.c,t.d,t.e,t.f)}function Mu(e){return e==null||(un||(un=document.createElementNS("http://www.w3.org/2000/svg","g")),un.setAttribute("transform",e),!(e=un.transform.baseVal.consolidate()))?mr:(e=e.matrix,Pi(e.a,e.b,e.c,e.d,e.e,e.f))}function Ti(e,t,n,r){function o(l){return l.length?l.pop()+" ":""}function i(l,f,d,u,h,g){if(l!==d||f!==u){var w=h.push("translate(",null,t,null,n);g.push({i:w-4,x:Be(l,d)},{i:w-2,x:Be(f,u)})}else(d||u)&&h.push("translate("+d+t+u+n)}function s(l,f,d,u){l!==f?(l-f>180?f+=360:f-l>180&&(l+=360),u.push({i:d.push(o(d)+"rotate(",null,r)-2,x:Be(l,f)})):f&&d.push(o(d)+"rotate("+f+r)}function a(l,f,d,u){l!==f?u.push({i:d.push(o(d)+"skewX(",null,r)-2,x:Be(l,f)}):f&&d.push(o(d)+"skewX("+f+r)}function c(l,f,d,u,h,g){if(l!==d||f!==u){var w=h.push(o(h)+"scale(",null,",",null,")");g.push({i:w-4,x:Be(l,d)},{i:w-2,x:Be(f,u)})}else(d!==1||u!==1)&&h.push(o(h)+"scale("+d+","+u+")")}return function(l,f){var d=[],u=[];return l=e(l),f=e(f),i(l.translateX,l.translateY,f.translateX,f.translateY,d,u),s(l.rotate,f.rotate,d,u),a(l.skewX,f.skewX,d,u),c(l.scaleX,l.scaleY,f.scaleX,f.scaleY,d,u),l=f=null,function(h){for(var g=-1,w=u.length,x;++g<w;)d[(x=u[g]).i]=x.x(h);return d.join("")}}}var Cu=Ti(Nu,"px, ","px)","deg)"),ku=Ti(Mu,", ",")",")"),Au=1e-12;function fo(e){return((e=Math.exp(e))+1/e)/2}function Iu(e){return((e=Math.exp(e))-1/e)/2}function $u(e){return((e=Math.exp(2*e))-1)/(e+1)}const yn=function e(t,n,r){function o(i,s){var a=i[0],c=i[1],l=i[2],f=s[0],d=s[1],u=s[2],h=f-a,g=d-c,w=h*h+g*g,x,m;if(w<Au)m=Math.log(u/l)/t,x=function(I){return[a+I*h,c+I*g,l*Math.exp(t*I*m)]};else{var _=Math.sqrt(w),p=(u*u-l*l+r*w)/(2*l*n*_),v=(u*u-l*l-r*w)/(2*u*n*_),C=Math.log(Math.sqrt(p*p+1)-p),S=Math.log(Math.sqrt(v*v+1)-v);m=(S-C)/t,x=function(I){var P=I*m,$=fo(C),O=l/(n*_)*($*$u(t*P+C)-Iu(C));return[a+O*h,c+O*g,l*$/fo(t*P+C)]}}return x.duration=m*1e3*t/Math.SQRT2,x}return o.rho=function(i){var s=Math.max(.001,+i),a=s*s,c=a*a;return e(s,a,c)},o}(Math.SQRT2,2,4);var wt=0,Tt=0,$t=0,Di=1e3,Nn,Dt,Mn=0,st=0,Rn=0,Bt=typeof performance=="object"&&performance.now?performance:Date,Ri=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Ir(){return st||(Ri(Pu),st=Bt.now()+Rn)}function Pu(){st=0}function Cn(){this._call=this._time=this._next=null}Cn.prototype=zi.prototype={constructor:Cn,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Ir():+n)+(t==null?0:+t),!this._next&&Dt!==this&&(Dt?Dt._next=this:Nn=this,Dt=this),this._call=e,this._time=n,yr()},stop:function(){this._call&&(this._call=null,this._time=1/0,yr())}};function zi(e,t,n){var r=new Cn;return r.restart(e,t,n),r}function Tu(){Ir(),++wt;for(var e=Nn,t;e;)(t=st-e._time)>=0&&e._call.call(void 0,t),e=e._next;--wt}function ho(){st=(Mn=Bt.now())+Rn,wt=Tt=0;try{Tu()}finally{wt=0,Ru(),st=0}}function Du(){var e=Bt.now(),t=e-Mn;t>Di&&(Rn-=t,Mn=e)}function Ru(){for(var e,t=Nn,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Nn=n);Dt=e,yr(r)}function yr(e){if(!wt){Tt&&(Tt=clearTimeout(Tt));var t=e-st;t>24?(e<1/0&&(Tt=setTimeout(ho,e-Bt.now()-Rn)),$t&&($t=clearInterval($t))):($t||(Mn=Bt.now(),$t=setInterval(Du,Di)),wt=1,Ri(ho))}}function go(e,t,n){var r=new Cn;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var zu=Tn("start","end","cancel","interrupt"),Lu=[],Li=0,po=1,xr=2,xn=3,mo=4,wr=5,wn=6;function zn(e,t,n,r,o,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;Hu(e,n,{name:t,index:r,group:o,on:zu,tween:Lu,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Li})}function $r(e,t){var n=Re(e,t);if(n.state>Li)throw new Error("too late; already scheduled");return n}function Oe(e,t){var n=Re(e,t);if(n.state>xn)throw new Error("too late; already running");return n}function Re(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Hu(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=zi(i,0,n.time);function i(l){n.state=po,n.timer.restart(s,n.delay,n.time),n.delay<=l&&s(l-n.delay)}function s(l){var f,d,u,h;if(n.state!==po)return c();for(f in r)if(h=r[f],h.name===n.name){if(h.state===xn)return go(s);h.state===mo?(h.state=wn,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete r[f]):+f<t&&(h.state=wn,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete r[f])}if(go(function(){n.state===xn&&(n.state=mo,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=xr,n.on.call("start",e,e.__data__,n.index,n.group),n.state===xr){for(n.state=xn,o=new Array(u=n.tween.length),f=0,d=-1;f<u;++f)(h=n.tween[f].value.call(e,e.__data__,n.index,n.group))&&(o[++d]=h);o.length=d+1}}function a(l){for(var f=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=wr,1),d=-1,u=o.length;++d<u;)o[d].call(e,f);n.state===wr&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=wn,n.timer.stop(),delete r[t];for(var l in r)return;delete e.__transition}}function vn(e,t){var n=e.__transition,r,o,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((r=n[s]).name!==t){i=!1;continue}o=r.state>xr&&r.state<wr,r.state=wn,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[s]}i&&delete e.__transition}}function ju(e){return this.each(function(){vn(this,e)})}function Vu(e,t){var n,r;return function(){var o=Oe(this,e),i=o.tween;if(i!==n){r=n=i;for(var s=0,a=r.length;s<a;++s)if(r[s].name===t){r=r.slice(),r.splice(s,1);break}}o.tween=r}}function Bu(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=Oe(this,e),s=i.tween;if(s!==r){o=(r=s).slice();for(var a={name:t,value:n},c=0,l=o.length;c<l;++c)if(o[c].name===t){o[c]=a;break}c===l&&o.push(a)}i.tween=o}}function Fu(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Re(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===e)return s.value;return null}return this.each((t==null?Vu:Bu)(n,e,t))}function Pr(e,t,n){var r=e._id;return e.each(function(){var o=Oe(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Re(o,r).value[t]}}function Hi(e,t){var n;return(typeof t=="number"?Be:t instanceof it?Sn:(n=it(t))?(t=n,Sn):$i)(e,t)}function Ou(e){return function(){this.removeAttribute(e)}}function Xu(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Yu(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttribute(e);return s===o?null:s===r?i:i=t(r=s,n)}}function Wu(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===o?null:s===r?i:i=t(r=s,n)}}function qu(e,t,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a)))}}function Gu(e,t,n){var r,o,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),c=a+"",s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a)))}}function Ku(e,t){var n=Dn(e),r=n==="transform"?ku:Hi;return this.attrTween(e,typeof t=="function"?(n.local?Gu:qu)(n,r,Pr(this,"attr."+e,t)):t==null?(n.local?Xu:Ou)(n):(n.local?Wu:Yu)(n,r,t))}function Zu(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Uu(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Qu(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Uu(e,i)),n}return o._value=t,o}function Ju(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Zu(e,i)),n}return o._value=t,o}function ef(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=Dn(e);return this.tween(n,(r.local?Qu:Ju)(r,t))}function tf(e,t){return function(){$r(this,e).delay=+t.apply(this,arguments)}}function nf(e,t){return t=+t,function(){$r(this,e).delay=t}}function rf(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?tf:nf)(t,e)):Re(this.node(),t).delay}function of(e,t){return function(){Oe(this,e).duration=+t.apply(this,arguments)}}function sf(e,t){return t=+t,function(){Oe(this,e).duration=t}}function af(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?of:sf)(t,e)):Re(this.node(),t).duration}function cf(e,t){if(typeof t!="function")throw new Error;return function(){Oe(this,e).ease=t}}function lf(e){var t=this._id;return arguments.length?this.each(cf(t,e)):Re(this.node(),t).ease}function uf(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Oe(this,e).ease=n}}function ff(e){if(typeof e!="function")throw new Error;return this.each(uf(this._id,e))}function df(e){typeof e!="function"&&(e=pi(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,a=r[o]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new We(r,this._parents,this._name,this._id)}function hf(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),s=new Array(r),a=0;a<i;++a)for(var c=t[a],l=n[a],f=c.length,d=s[a]=new Array(f),u,h=0;h<f;++h)(u=c[h]||l[h])&&(d[h]=u);for(;a<r;++a)s[a]=t[a];return new We(s,this._parents,this._name,this._id)}function gf(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function pf(e,t,n){var r,o,i=gf(t)?$r:Oe;return function(){var s=i(this,e),a=s.on;a!==r&&(o=(r=a).copy()).on(t,n),s.on=o}}function mf(e,t){var n=this._id;return arguments.length<2?Re(this.node(),n).on.on(e):this.each(pf(n,e,t))}function yf(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function xf(){return this.on("end.remove",yf(this._id))}function wf(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Mr(e));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var a=r[s],c=a.length,l=i[s]=new Array(c),f,d,u=0;u<c;++u)(f=a[u])&&(d=e.call(f,f.__data__,u,a))&&("__data__"in f&&(d.__data__=f.__data__),l[u]=d,zn(l[u],t,n,u,l,Re(f,n)));return new We(i,this._parents,t,n)}function vf(e){var t=this._name,n=this._id;typeof e!="function"&&(e=gi(e));for(var r=this._groups,o=r.length,i=[],s=[],a=0;a<o;++a)for(var c=r[a],l=c.length,f,d=0;d<l;++d)if(f=c[d]){for(var u=e.call(f,f.__data__,d,c),h,g=Re(f,n),w=0,x=u.length;w<x;++w)(h=u[w])&&zn(h,t,n,w,u,g);i.push(u),s.push(f)}return new We(i,s,t,n)}var bf=Gt.prototype.constructor;function _f(){return new bf(this._groups,this._parents)}function Ef(e,t){var n,r,o;return function(){var i=xt(this,e),s=(this.style.removeProperty(e),xt(this,e));return i===s?null:i===n&&s===r?o:o=t(n=i,r=s)}}function ji(e){return function(){this.style.removeProperty(e)}}function Sf(e,t,n){var r,o=n+"",i;return function(){var s=xt(this,e);return s===o?null:s===r?i:i=t(r=s,n)}}function Nf(e,t,n){var r,o,i;return function(){var s=xt(this,e),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(e),xt(this,e))),s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a))}}function Mf(e,t){var n,r,o,i="style."+t,s="end."+i,a;return function(){var c=Oe(this,e),l=c.on,f=c.value[i]==null?a||(a=ji(t)):void 0;(l!==n||o!==f)&&(r=(n=l).copy()).on(s,o=f),c.on=r}}function Cf(e,t,n){var r=(e+="")=="transform"?Cu:Hi;return t==null?this.styleTween(e,Ef(e,r)).on("end.style."+e,ji(e)):typeof t=="function"?this.styleTween(e,Nf(e,r,Pr(this,"style."+e,t))).each(Mf(this._id,e)):this.styleTween(e,Sf(e,r,t),n).on("end.style."+e,null)}function kf(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Af(e,t,n){var r,o;function i(){var s=t.apply(this,arguments);return s!==o&&(r=(o=s)&&kf(e,s,n)),r}return i._value=t,i}function If(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Af(e,t,n??""))}function $f(e){return function(){this.textContent=e}}function Pf(e){return function(){var t=e(this);this.textContent=t??""}}function Tf(e){return this.tween("text",typeof e=="function"?Pf(Pr(this,"text",e)):$f(e==null?"":e+""))}function Df(e){return function(t){this.textContent=e.call(this,t)}}function Rf(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&Df(o)),t}return r._value=e,r}function zf(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,Rf(e))}function Lf(){for(var e=this._name,t=this._id,n=Vi(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,l=0;l<a;++l)if(c=s[l]){var f=Re(c,t);zn(c,e,n,l,s,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new We(r,this._parents,e,n)}function Hf(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var a={value:s},c={value:function(){--o===0&&i()}};n.each(function(){var l=Oe(this,r),f=l.on;f!==e&&(t=(e=f).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(c)),l.on=t}),o===0&&i()})}var jf=0;function We(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Vi(){return++jf}var Xe=Gt.prototype;We.prototype={constructor:We,select:wf,selectAll:vf,selectChild:Xe.selectChild,selectChildren:Xe.selectChildren,filter:df,merge:hf,selection:_f,transition:Lf,call:Xe.call,nodes:Xe.nodes,node:Xe.node,size:Xe.size,empty:Xe.empty,each:Xe.each,on:mf,attr:Ku,attrTween:ef,style:Cf,styleTween:If,text:Tf,textTween:zf,remove:xf,tween:Fu,delay:rf,duration:af,ease:lf,easeVarying:ff,end:Hf,[Symbol.iterator]:Xe[Symbol.iterator]};function Vf(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Bf={time:null,delay:0,duration:250,ease:Vf};function Ff(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function Of(e){var t,n;e instanceof We?(t=e._id,e=e._name):(t=Vi(),(n=Bf).time=Ir(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&zn(c,e,t,l,s,n||Ff(c,t));return new We(r,this._parents,e,t)}Gt.prototype.interrupt=ju;Gt.prototype.transition=Of;const fn=e=>()=>e;function Xf(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Ye(e,t,n){this.k=e,this.x=t,this.y=n}Ye.prototype={constructor:Ye,scale:function(e){return e===1?this:new Ye(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ye(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ln=new Ye(1,0,0);Bi.prototype=Ye.prototype;function Bi(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ln;return e.__zoom}function or(e){e.stopImmediatePropagation()}function Pt(e){e.preventDefault(),e.stopImmediatePropagation()}function Yf(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Wf(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function yo(){return this.__zoom||Ln}function qf(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Gf(){return navigator.maxTouchPoints||"ontouchstart"in this}function Kf(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function Fi(){var e=Yf,t=Wf,n=Kf,r=qf,o=Gf,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,c=yn,l=Tn("start","zoom","end"),f,d,u,h=500,g=150,w=0,x=10;function m(y){y.property("__zoom",yo).on("wheel.zoom",P,{passive:!1}).on("mousedown.zoom",$).on("dblclick.zoom",O).filter(o).on("touchstart.zoom",D).on("touchmove.zoom",F).on("touchend.zoom touchcancel.zoom",L).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(y,N,M,A){var T=y.selection?y.selection():y;T.property("__zoom",yo),y!==T?C(y,N,M,A):T.interrupt().each(function(){S(this,arguments).event(A).start().zoom(null,typeof N=="function"?N.apply(this,arguments):N).end()})},m.scaleBy=function(y,N,M,A){m.scaleTo(y,function(){var T=this.__zoom.k,k=typeof N=="function"?N.apply(this,arguments):N;return T*k},M,A)},m.scaleTo=function(y,N,M,A){m.transform(y,function(){var T=t.apply(this,arguments),k=this.__zoom,H=M==null?v(T):typeof M=="function"?M.apply(this,arguments):M,V=k.invert(H),B=typeof N=="function"?N.apply(this,arguments):N;return n(p(_(k,B),H,V),T,s)},M,A)},m.translateBy=function(y,N,M,A){m.transform(y,function(){return n(this.__zoom.translate(typeof N=="function"?N.apply(this,arguments):N,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),s)},null,A)},m.translateTo=function(y,N,M,A,T){m.transform(y,function(){var k=t.apply(this,arguments),H=this.__zoom,V=A==null?v(k):typeof A=="function"?A.apply(this,arguments):A;return n(Ln.translate(V[0],V[1]).scale(H.k).translate(typeof N=="function"?-N.apply(this,arguments):-N,typeof M=="function"?-M.apply(this,arguments):-M),k,s)},A,T)};function _(y,N){return N=Math.max(i[0],Math.min(i[1],N)),N===y.k?y:new Ye(N,y.x,y.y)}function p(y,N,M){var A=N[0]-M[0]*y.k,T=N[1]-M[1]*y.k;return A===y.x&&T===y.y?y:new Ye(y.k,A,T)}function v(y){return[(+y[0][0]+ +y[1][0])/2,(+y[0][1]+ +y[1][1])/2]}function C(y,N,M,A){y.on("start.zoom",function(){S(this,arguments).event(A).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(A).end()}).tween("zoom",function(){var T=this,k=arguments,H=S(T,k).event(A),V=t.apply(T,k),B=M==null?v(V):typeof M=="function"?M.apply(T,k):M,G=Math.max(V[1][0]-V[0][0],V[1][1]-V[0][1]),K=T.__zoom,te=typeof N=="function"?N.apply(T,k):N,oe=c(K.invert(B).concat(G/K.k),te.invert(B).concat(G/te.k));return function(Q){if(Q===1)Q=te;else{var j=oe(Q),X=G/j[2];Q=new Ye(X,B[0]-j[0]*X,B[1]-j[1]*X)}H.zoom(null,Q)}})}function S(y,N,M){return!M&&y.__zooming||new I(y,N)}function I(y,N){this.that=y,this.args=N,this.active=0,this.sourceEvent=null,this.extent=t.apply(y,N),this.taps=0}I.prototype={event:function(y){return y&&(this.sourceEvent=y),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(y,N){return this.mouse&&y!=="mouse"&&(this.mouse[1]=N.invert(this.mouse[0])),this.touch0&&y!=="touch"&&(this.touch0[1]=N.invert(this.touch0[0])),this.touch1&&y!=="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(y){var N=Ne(this.that).datum();l.call(y,this.that,new Xf(y,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:l}),N)}};function P(y,...N){if(!e.apply(this,arguments))return;var M=S(this,N).event(y),A=this.__zoom,T=Math.max(i[0],Math.min(i[1],A.k*Math.pow(2,r.apply(this,arguments)))),k=Ie(y);if(M.wheel)(M.mouse[0][0]!==k[0]||M.mouse[0][1]!==k[1])&&(M.mouse[1]=A.invert(M.mouse[0]=k)),clearTimeout(M.wheel);else{if(A.k===T)return;M.mouse=[k,A.invert(k)],vn(this),M.start()}Pt(y),M.wheel=setTimeout(H,g),M.zoom("mouse",n(p(_(A,T),M.mouse[0],M.mouse[1]),M.extent,s));function H(){M.wheel=null,M.end()}}function $(y,...N){if(u||!e.apply(this,arguments))return;var M=y.currentTarget,A=S(this,N,!0).event(y),T=Ne(y.view).on("mousemove.zoom",B,!0).on("mouseup.zoom",G,!0),k=Ie(y,M),H=y.clientX,V=y.clientY;Ni(y.view),or(y),A.mouse=[k,this.__zoom.invert(k)],vn(this),A.start();function B(K){if(Pt(K),!A.moved){var te=K.clientX-H,oe=K.clientY-V;A.moved=te*te+oe*oe>w}A.event(K).zoom("mouse",n(p(A.that.__zoom,A.mouse[0]=Ie(K,M),A.mouse[1]),A.extent,s))}function G(K){T.on("mousemove.zoom mouseup.zoom",null),Mi(K.view,A.moved),Pt(K),A.event(K).end()}}function O(y,...N){if(e.apply(this,arguments)){var M=this.__zoom,A=Ie(y.changedTouches?y.changedTouches[0]:y,this),T=M.invert(A),k=M.k*(y.shiftKey?.5:2),H=n(p(_(M,k),A,T),t.apply(this,N),s);Pt(y),a>0?Ne(this).transition().duration(a).call(C,H,A,y):Ne(this).call(m.transform,H,A,y)}}function D(y,...N){if(e.apply(this,arguments)){var M=y.touches,A=M.length,T=S(this,N,y.changedTouches.length===A).event(y),k,H,V,B;for(or(y),H=0;H<A;++H)V=M[H],B=Ie(V,this),B=[B,this.__zoom.invert(B),V.identifier],T.touch0?!T.touch1&&T.touch0[2]!==B[2]&&(T.touch1=B,T.taps=0):(T.touch0=B,k=!0,T.taps=1+!!f);f&&(f=clearTimeout(f)),k&&(T.taps<2&&(d=B[0],f=setTimeout(function(){f=null},h)),vn(this),T.start())}}function F(y,...N){if(this.__zooming){var M=S(this,N).event(y),A=y.changedTouches,T=A.length,k,H,V,B;for(Pt(y),k=0;k<T;++k)H=A[k],V=Ie(H,this),M.touch0&&M.touch0[2]===H.identifier?M.touch0[0]=V:M.touch1&&M.touch1[2]===H.identifier&&(M.touch1[0]=V);if(H=M.that.__zoom,M.touch1){var G=M.touch0[0],K=M.touch0[1],te=M.touch1[0],oe=M.touch1[1],Q=(Q=te[0]-G[0])*Q+(Q=te[1]-G[1])*Q,j=(j=oe[0]-K[0])*j+(j=oe[1]-K[1])*j;H=_(H,Math.sqrt(Q/j)),V=[(G[0]+te[0])/2,(G[1]+te[1])/2],B=[(K[0]+oe[0])/2,(K[1]+oe[1])/2]}else if(M.touch0)V=M.touch0[0],B=M.touch0[1];else return;M.zoom("touch",n(p(H,V,B),M.extent,s))}}function L(y,...N){if(this.__zooming){var M=S(this,N).event(y),A=y.changedTouches,T=A.length,k,H;for(or(y),u&&clearTimeout(u),u=setTimeout(function(){u=null},h),k=0;k<T;++k)H=A[k],M.touch0&&M.touch0[2]===H.identifier?delete M.touch0:M.touch1&&M.touch1[2]===H.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(H=Ie(H,this),Math.hypot(d[0]-H[0],d[1]-H[1])<x)){var V=Ne(this).on("dblclick.zoom");V&&V.apply(this,arguments)}}}return m.wheelDelta=function(y){return arguments.length?(r=typeof y=="function"?y:fn(+y),m):r},m.filter=function(y){return arguments.length?(e=typeof y=="function"?y:fn(!!y),m):e},m.touchable=function(y){return arguments.length?(o=typeof y=="function"?y:fn(!!y),m):o},m.extent=function(y){return arguments.length?(t=typeof y=="function"?y:fn([[+y[0][0],+y[0][1]],[+y[1][0],+y[1][1]]]),m):t},m.scaleExtent=function(y){return arguments.length?(i[0]=+y[0],i[1]=+y[1],m):[i[0],i[1]]},m.translateExtent=function(y){return arguments.length?(s[0][0]=+y[0][0],s[1][0]=+y[1][0],s[0][1]=+y[0][1],s[1][1]=+y[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(y){return arguments.length?(n=y,m):n},m.duration=function(y){return arguments.length?(a=+y,m):a},m.interpolate=function(y){return arguments.length?(c=y,m):c},m.on=function(){var y=l.on.apply(l,arguments);return y===l?m:y},m.clickDistance=function(y){return arguments.length?(w=(y=+y)*y,m):Math.sqrt(w)},m.tapDistance=function(y){return arguments.length?(x=+y,m):x},m}const De={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Ft=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Oi=["Enter"," ","Escape"],Xi={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var vt;(function(e){e.Strict="strict",e.Loose="loose"})(vt||(vt={}));var ot;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ot||(ot={}));var Ot;(function(e){e.Partial="partial",e.Full="full"})(Ot||(Ot={}));const Yi={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Qe;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Qe||(Qe={}));var Xt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Xt||(Xt={}));var ee;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ee||(ee={}));const xo={[ee.Left]:ee.Right,[ee.Right]:ee.Left,[ee.Top]:ee.Bottom,[ee.Bottom]:ee.Top};function Wi(e){return e===null?null:e?"valid":"invalid"}const qi=e=>!!e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e,Zf=e=>!!e&&typeof e=="object"&&"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Tr=e=>!!e&&typeof e=="object"&&"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Zt=(e,t=[0,0])=>{const{width:n,height:r}=ze(e),o=e.origin??t,i=n*o[0],s=r*o[1];return{x:e.position.x-i,y:e.position.y-s}},Uf=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};let n=!1;const r=e.reduce((o,i)=>{const s=typeof i=="string";let a=!t.nodeLookup&&!s?i:void 0;return t.nodeLookup&&(a=s?t.nodeLookup.get(i):Tr(i)?i:t.nodeLookup.get(i.id)),a?(n=!0,Hn(o,kn(a,t.nodeOrigin))):o},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return n?jn(r):{x:0,y:0,width:0,height:0}},Ut=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(o=>{(t.filter===void 0||t.filter(o))&&(n=Hn(n,kn(o)),r=!0)}),r?jn(n):{x:0,y:0,width:0,height:0}},Dr=(e,t,[n,r,o]=[0,0,1],i=!1,s=!1)=>{const a=(t.x-n)/o,c=(t.y-r)/o,l=t.width/o,f=t.height/o,d=[];for(const u of e.values()){const{measured:h,selectable:g=!0,hidden:w=!1}=u;if(s&&!g||w)continue;const x=h.width??u.width??u.initialWidth??0,m=h.height??u.height??u.initialHeight??0,{x:_,y:p}=u.internals.positionAbsolute,v=Ui(a,c,l,f,_,p,x,m),C=x*m,S=i&&v>0;(!u.internals.handleBounds||S||v>=C||u.dragging)&&d.push(u)}return d},Qf=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function Jf(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(o=>o.id)):null;return e.forEach(o=>{let i;if(t!=null&&t.includeHiddenNodes){const{width:s,height:a}=ze(o);i=s>0&&a>0}else i=!!(o.measured.width&&o.measured.height&&!o.hidden);i&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function ed({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:i},s){if(e.size===0)return!0;const a=Jf(e,s),c=Ut(a),l=zr(c,t,n,(s==null?void 0:s.minZoom)??o,(s==null?void 0:s.maxZoom)??i,(s==null?void 0:s.padding)??.1);return await r.setViewport(l,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),!0}function Gi({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){const s=n.get(e),a=s.parentId?n.get(s.parentId):void 0,{x:c,y:l}=a?a.internals.positionAbsolute:{x:0,y:0},f=s.origin??r;let d=s.extent||o;if(s.extent==="parent"&&!s.expandParent)if(!a)i==null||i("005",De.error005());else{const{width:h,height:g}=ze(a);h&&g&&(d=[[c,l],[c+h,l+g]])}else a&&ct(s.extent)&&(d=[[s.extent[0][0]+c,s.extent[0][1]+l],[s.extent[1][0]+c,s.extent[1][1]+l]]);const u=ct(d)?at(t,d,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&(i==null||i("015",De.error015())),{position:{x:u.x-c+(s.measured.width??0)*f[0],y:u.y-l+(s.measured.height??0)*f[1]},positionAbsolute:u}}async function td({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){const i=new Set(e.map(u=>u.id)),s=[];for(const u of n){if(u.deletable===!1)continue;const h=i.has(u.id),g=!h&&u.parentId&&s.find(w=>w.id===u.parentId);(h||g)&&s.push(u)}const a=new Set(t.map(u=>u.id)),c=r.filter(u=>u.deletable!==!1),f=Qf(s,c);for(const u of c)a.has(u.id)&&!f.find(g=>g.id===u.id)&&f.push(u);if(!o)return{edges:f,nodes:s};const d=await o({nodes:s,edges:f});return typeof d=="boolean"?d?{edges:f,nodes:s}:{edges:[],nodes:[]}:d}const bt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),at=(e={x:0,y:0},t,n)=>({x:bt(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:bt(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Ki(e,t,n){const{width:r,height:o}=ze(n),{x:i,y:s}=n.internals.positionAbsolute;return at(e,[[i,s],[i+r,s+o]],t)}const wo=(e,t,n)=>e<t?bt(Math.abs(e-t),1,t)/t:e>n?-bt(Math.abs(e-n),1,t)/t:0,Rr=(e,t,n=15,r=40)=>{const o=wo(e.x,r,t.width-r)*n,i=wo(e.y,r,t.height-r)*n;return[o,i]},Hn=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),vr=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),jn=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Yt=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=Tr(e)?e.internals.positionAbsolute:Zt(e,t);return{x:n,y:r,width:((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},kn=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=Tr(e)?e.internals.positionAbsolute:Zt(e,t);return{x:n,y:r,x2:n+(((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0),y2:r+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},Zi=(e,t)=>jn(Hn(vr(e),vr(t))),Ui=(e,t,n,r,o,i,s,a)=>{const c=Math.max(0,Math.min(e+n,o+s)-Math.max(e,o)),l=Math.max(0,Math.min(t+r,i+a)-Math.max(t,i));return Math.ceil(c*l)},An=(e,t)=>Ui(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),vo=e=>Pe(e.width)&&Pe(e.height)&&Pe(e.x)&&Pe(e.y),Pe=e=>!isNaN(e)&&isFinite(e),Qi=(e,t)=>(n,r)=>{},Qt=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Jt=({x:e,y:t},[n,r,o],i=!1,s=[1,1])=>{const a={x:(e-n)/o,y:(t-r)/o};return i?Qt(a,s):a},_t=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function gt(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function nd(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=gt(e,n),o=gt(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=gt(e.top??e.y??0,n),o=gt(e.bottom??e.y??0,n),i=gt(e.left??e.x??0,t),s=gt(e.right??e.x??0,t);return{top:r,right:s,bottom:o,left:i,x:i+s,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function rd(e,t,n,r,o,i){const{x:s,y:a}=_t(e,[t,n,r]),{x:c,y:l}=_t({x:e.x+e.width,y:e.y+e.height},[t,n,r]),f=o-c,d=i-l;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(f),bottom:Math.floor(d)}}const zr=(e,t,n,r,o,i)=>{const s=nd(i,t,n),a=(t-s.x)/e.width,c=(n-s.y)/e.height,l=Math.min(a,c),f=bt(l,r,o),d=e.x+e.width/2,u=e.y+e.height/2,h=t/2-d*f,g=n/2-u*f,w=rd(e,h,g,f,t,n),x={left:Math.min(w.left-s.left,0),top:Math.min(w.top-s.top,0),right:Math.min(w.right-s.right,0),bottom:Math.min(w.bottom-s.bottom,0)};return{x:h-x.left+x.right,y:g-x.top+x.bottom,zoom:f}},Wt=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function ct(e){return e!=null&&e!=="parent"}function ze(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function Ji(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function es(e,t={width:0,height:0},n,r,o){const i={...e},s=r.get(n);if(s){const a=s.origin||o;i.x+=s.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function bo(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function od(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function id(e){return{...Xi,...e||{}}}function Lt(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:s}=Te(e),a=Jt({x:i-((o==null?void 0:o.left)??0),y:s-((o==null?void 0:o.top)??0)},r),{x:c,y:l}=n?Qt(a,t):a;return{xSnapped:c,ySnapped:l,...a}}const Lr=e=>({width:e.offsetWidth,height:e.offsetHeight}),ts=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},sd=["INPUT","SELECT","TEXTAREA"];function ns(e){var r,o;const t=((o=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:o[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:sd.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const rs=e=>"clientX"in e,Te=(e,t)=>{var i,s;const n=rs(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,o=n?e.clientY:(s=e.touches)==null?void 0:s[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}},_o=(e,t,n,r,o)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:o,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...Lr(s)}})};function os({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:a}){const c=e*.125+o*.375+s*.375+n*.125,l=t*.125+i*.375+a*.375+r*.125,f=Math.abs(c-e),d=Math.abs(l-t);return[c,l,f,d]}function dn(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Eo({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case ee.Left:return[t-dn(t-r,i),n];case ee.Right:return[t+dn(r-t,i),n];case ee.Top:return[t,n-dn(n-o,i)];case ee.Bottom:return[t,n+dn(o-n,i)]}}function is({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:o,targetPosition:i=ee.Top,curvature:s=.25}){const[a,c]=Eo({pos:n,x1:e,y1:t,x2:r,y2:o,c:s}),[l,f]=Eo({pos:i,x1:r,y1:o,x2:e,y2:t,c:s}),[d,u,h,g]=os({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:c,targetControlX:l,targetControlY:f});return[`M${e},${t} C${a},${c} ${l},${f} ${r},${o}`,d,u,h,g]}function ss({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,s=Math.abs(r-t)/2,a=r<t?r+s:r-s;return[i,a,o,s]}function ad({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if(i==="manual")return r;const s=o&&n?r+1e3:r,a=Math.max(e.parentId||o&&e.selected?e.internals.z:0,t.parentId||o&&t.selected?t.internals.z:0);return s+a}function cd({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const i=Hn(kn(e),kn(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return An(s,jn(i))>0}const ld=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,ud=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),fd=(e,t,n={})=>{var i;if(!e.source||!e.target)return(i=n.onError)==null||i.call(n,"006",De.error006()),t;const r=n.getEdgeId||ld;let o;return qi(e)?o={...e}:o={...e,id:r(e)},ud(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function as({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,s,a]=ss({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,s,a]}const So={[ee.Left]:{x:-1,y:0},[ee.Right]:{x:1,y:0},[ee.Top]:{x:0,y:-1},[ee.Bottom]:{x:0,y:1}},dd=({source:e,sourcePosition:t=ee.Bottom,target:n})=>t===ee.Left||t===ee.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},No=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function hd({source:e,sourcePosition:t=ee.Bottom,target:n,targetPosition:r=ee.Top,center:o,offset:i,stepPosition:s}){const a=So[t],c=So[r],l={x:e.x+a.x*i,y:e.y+a.y*i},f={x:n.x+c.x*i,y:n.y+c.y*i},d=dd({source:l,sourcePosition:t,target:f}),u=d.x!==0?"x":"y",h=d[u];let g=[],w,x;const m={x:0,y:0},_={x:0,y:0},[,,p,v]=ss({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[u]*c[u]===-1){u==="x"?(w=o.x??l.x+(f.x-l.x)*s,x=o.y??(l.y+f.y)/2):(w=o.x??(l.x+f.x)/2,x=o.y??l.y+(f.y-l.y)*s);const P=[{x:w,y:l.y},{x:w,y:f.y}],$=[{x:l.x,y:x},{x:f.x,y:x}];a[u]===h?g=u==="x"?P:$:g=u==="x"?$:P}else{const P=[{x:l.x,y:f.y}],$=[{x:f.x,y:l.y}];if(u==="x"?g=a.x===h?$:P:g=a.y===h?P:$,t===r){const y=Math.abs(e[u]-n[u]);if(y<=i){const N=Math.min(i-1,i-y);a[u]===h?m[u]=(l[u]>e[u]?-1:1)*N:_[u]=(f[u]>n[u]?-1:1)*N}}if(t!==r){const y=u==="x"?"y":"x",N=a[u]===c[y],M=l[y]>f[y],A=l[y]<f[y];(a[u]===1&&(!N&&M||N&&A)||a[u]!==1&&(!N&&A||N&&M))&&(g=u==="x"?P:$)}const O={x:l.x+m.x,y:l.y+m.y},D={x:f.x+_.x,y:f.y+_.y},F=Math.max(Math.abs(O.x-g[0].x),Math.abs(D.x-g[0].x)),L=Math.max(Math.abs(O.y-g[0].y),Math.abs(D.y-g[0].y));F>=L?(w=(O.x+D.x)/2,x=g[0].y):(w=g[0].x,x=(O.y+D.y)/2)}const C={x:l.x+m.x,y:l.y+m.y},S={x:f.x+_.x,y:f.y+_.y};return[[e,...C.x!==g[0].x||C.y!==g[0].y?[C]:[],...g,...S.x!==g[g.length-1].x||S.y!==g[g.length-1].y?[S]:[],n],w,x,p,v]}function gd(e,t,n,r){const o=Math.min(No(e,t)/2,No(t,n)/2,r),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const l=e.x<n.x?-1:1,f=e.y<n.y?1:-1;return`L ${i+o*l},${s}Q ${i},${s} ${i},${s+o*f}`}const a=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${i},${s+o*c}Q ${i},${s} ${i+o*a},${s}`}function br({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:o,targetPosition:i=ee.Top,borderRadius:s=5,centerX:a,centerY:c,offset:l=20,stepPosition:f=.5}){const[d,u,h,g,w]=hd({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:a,y:c},offset:l,stepPosition:f});let x=`M${d[0].x} ${d[0].y}`;for(let m=1;m<d.length-1;m++)x+=gd(d[m-1],d[m],d[m+1],s);return x+=`L${d[d.length-1].x} ${d[d.length-1].y}`,[x,u,h,g,w]}function Mo(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function pd(e){var d;const{sourceNode:t,targetNode:n}=e;if(!Mo(t)||!Mo(n))return null;const r=t.internals.handleBounds||Co(t.handles),o=n.internals.handleBounds||Co(n.handles),i=ko((r==null?void 0:r.source)??[],e.sourceHandle),s=ko(e.connectionMode===vt.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),e.targetHandle);if(!i||!s)return(d=e.onError)==null||d.call(e,"008",De.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(i==null?void 0:i.position)||ee.Bottom,c=(s==null?void 0:s.position)||ee.Top,l=lt(t,i,a),f=lt(n,s,c);return{sourceX:l.x,sourceY:l.y,targetX:f.x,targetY:f.y,sourcePosition:a,targetPosition:c}}function Co(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function lt(e,t,n=ee.Left,r=!1){const o=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:s,height:a}=t??ze(e);if(r)return{x:o+s/2,y:i+a/2};switch((t==null?void 0:t.position)??n){case ee.Top:return{x:o+s/2,y:i};case ee.Right:return{x:o+s,y:i+a/2};case ee.Bottom:return{x:o+s/2,y:i+a};case ee.Left:return{x:o,y:i+a/2}}}function ko(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function _r(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function md(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const i=new Set;return e.reduce((s,a)=>([a.markerStart||r,a.markerEnd||o].forEach(c=>{if(c&&typeof c=="object"){const l=_r(c,t);i.has(l)||(s.push({id:l,color:c.color||n,...c}),i.add(l))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const cs=1e3,yd=10,Hr={nodeOrigin:[0,0],nodeExtent:Ft,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},xd={...Hr,checkEquality:!0};function jr(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function wd(e,t,n){const r=jr(Hr,n);for(const o of e.values())if(o.parentId)Br(o,e,t,r);else{const i=Zt(o,r.nodeOrigin),s=ct(o.extent)?o.extent:r.nodeExtent,a=at(i,s,ze(o));o.internals.positionAbsolute=a}}function vd(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const o of e.handles){const i={id:o.id,width:o.width??1,height:o.height??1,nodeId:e.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(i):o.type==="target"&&r.push(i)}return{source:n,target:r}}function Vr(e){return e==="manual"}function Er(e,t,n,r={}){var f,d;const o=jr(xd,r),i={i:0},s=new Map(t),a=o!=null&&o.elevateNodesOnSelect&&!Vr(o.zIndexMode)?cs:0;let c=e.length>0,l=!1;t.clear(),n.clear();for(const u of e){let h=s.get(u.id);if(o.checkEquality&&u===(h==null?void 0:h.internals.userNode))t.set(u.id,h);else{const g=Zt(u,o.nodeOrigin),w=ct(u.extent)?u.extent:o.nodeExtent,x=at(g,w,ze(u));h={...o.defaults,...u,measured:{width:(f=u.measured)==null?void 0:f.width,height:(d=u.measured)==null?void 0:d.height},internals:{positionAbsolute:x,handleBounds:vd(u,h),z:ls(u,a,o.zIndexMode),userNode:u}},t.set(u.id,h)}(h.measured===void 0||h.measured.width===void 0||h.measured.height===void 0)&&!h.hidden&&(c=!1),u.parentId&&Br(h,t,n,r,i),l||(l=u.selected??!1)}return{nodesInitialized:c,hasSelectedNodes:l}}function bd(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Br(e,t,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:a,zIndexMode:c}=jr(Hr,r),l=e.parentId,f=t.get(l);if(!f){console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}bd(e,n),o&&!f.parentId&&f.internals.rootParentIndex===void 0&&c==="auto"&&(f.internals.rootParentIndex=++o.i,f.internals.z=f.internals.z+o.i*yd),o&&f.internals.rootParentIndex!==void 0&&(o.i=f.internals.rootParentIndex);const d=i&&!Vr(c)?cs:0,{x:u,y:h,z:g}=_d(e,f,s,a,d,c),{positionAbsolute:w}=e.internals,x=u!==w.x||h!==w.y;(x||g!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:x?{x:u,y:h}:w,z:g}})}function ls(e,t,n){const r=Pe(e.zIndex)?e.zIndex:0;return Vr(n)?r:r+(e.selected?t:0)}function _d(e,t,n,r,o,i){const{x:s,y:a}=t.internals.positionAbsolute,c=ze(e),l=Zt(e,n),f=ct(e.extent)?at(l,e.extent,c):l;let d=at({x:s+f.x,y:a+f.y},r,c);e.extent==="parent"&&(d=Ki(d,c,t));const u=ls(e,o,i),h=t.internals.z??0;return{x:d.x,y:d.y,z:h>=u?h+1:u}}function Fr(e,t,n,r=[0,0]){var s;const o=[],i=new Map;for(const a of e){const c=t.get(a.parentId);if(!c)continue;const l=((s=i.get(a.parentId))==null?void 0:s.expandedRect)??Yt(c),f=Zi(l,a.rect);i.set(a.parentId,{expandedRect:f,parent:c})}return i.size>0&&i.forEach(({expandedRect:a,parent:c},l)=>{var p;const f=c.internals.positionAbsolute,d=ze(c),u=c.origin??r,h=a.x<f.x?Math.round(Math.abs(f.x-a.x)):0,g=a.y<f.y?Math.round(Math.abs(f.y-a.y)):0,w=Math.max(d.width,Math.round(a.width)),x=Math.max(d.height,Math.round(a.height)),m=(w-d.width)*u[0],_=(x-d.height)*u[1];(h>0||g>0||m||_)&&(o.push({id:l,type:"position",position:{x:c.position.x-h+m,y:c.position.y-g+_}}),(p=n.get(l))==null||p.forEach(v=>{e.some(C=>C.id===v.id)||o.push({id:v.id,type:"position",position:{x:v.position.x+h,y:v.position.y+g}})})),(d.width<a.width||d.height<a.height||h||g)&&o.push({id:l,type:"dimensions",setAttributes:!0,dimensions:{width:w+(h?u[0]*h-m:0),height:x+(g?u[1]*g-_:0)}})}),o}function Ed(e,t,n,r,o,i,s){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let c=!1;if(!a)return{changes:[],updatedInternals:c};const l=[],f=window.getComputedStyle(a),{m22:d}=new window.DOMMatrixReadOnly(f.transform),u=[];for(const h of e.values()){const g=t.get(h.id);if(!g)continue;if(g.hidden){t.set(g.id,{...g,internals:{...g.internals,handleBounds:void 0}}),c=!0;continue}const w=Lr(h.nodeElement),x=g.measured.width!==w.width||g.measured.height!==w.height;if(!!(w.width&&w.height&&(x||!g.internals.handleBounds||h.force))){const _=h.nodeElement.getBoundingClientRect(),p=ct(g.extent)?g.extent:i;let{positionAbsolute:v}=g.internals;if(g.parentId&&g.extent==="parent"){const S=t.get(g.parentId);S&&(v=Ki(v,w,S))}else p&&(v=at(v,p,w));const C={...g,measured:w,internals:{...g.internals,positionAbsolute:v,handleBounds:{source:_o("source",h.nodeElement,_,d,g.id),target:_o("target",h.nodeElement,_,d,g.id)}}};t.set(g.id,C),g.parentId&&Br(C,t,n,{nodeOrigin:o,zIndexMode:s}),c=!0,x&&(l.push({id:g.id,type:"dimensions",dimensions:w}),g.expandParent&&g.parentId&&u.push({id:g.id,parentId:g.parentId,rect:Yt(C,o)}))}}if(u.length>0){const h=Fr(u,t,n,o);l.push(...h)}return{changes:l,updatedInternals:c}}async function Sd({delta:e,panZoom:t,transform:n,translateExtent:r,width:o,height:i}){if(!t||!e.x&&!e.y)return!1;const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[o,i]],r);return!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2])}function Ao(e,t,n,r,o,i){let s=o;const a=r.get(s)||new Map;r.set(s,a.set(n,t)),s=`${o}-${e}`;const c=r.get(s)||new Map;if(r.set(s,c.set(n,t)),i){s=`${o}-${e}-${i}`;const l=r.get(s)||new Map;r.set(s,l.set(n,t))}}function us(e,t,n){e.clear(),t.clear();for(const r of n){const{source:o,target:i,sourceHandle:s=null,targetHandle:a=null}=r,c={edgeId:r.id,source:o,target:i,sourceHandle:s,targetHandle:a},l=`${o}-${s}--${i}-${a}`,f=`${i}-${a}--${o}-${s}`;Ao("source",c,f,e,o,s),Ao("target",c,l,e,i,a),t.set(r.id,r)}}function fs(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:fs(n,t):!1}function Io(e,t,n){var o;let r=e;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function Nd(e,t,n,r){const o=new Map;for(const[i,s]of e)if((s.selected||s.id===r)&&(!s.parentId||!fs(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const a=e.get(i);a&&o.set(i,{id:i,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return o}function ir({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var s,a,c;const o=[];for(const[l,f]of t){const d=(s=n.get(l))==null?void 0:s.internals.userNode;d&&o.push({...d,position:f.position,dragging:r})}if(!e)return[o[0],o];const i=(a=n.get(e))==null?void 0:a.internals.userNode;return[i?{...i,position:((c=t.get(e))==null?void 0:c.position)||i.position,dragging:r}:o[0],o]}function Md({dragItems:e,snapGrid:t,x:n,y:r}){const o=e.values().next().value;if(!o)return null;const i={x:n-o.distance.x,y:r-o.distance.y},s=Qt(i,t);return{x:s.x-i.x,y:s.y-i.y}}function Cd({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},s=0,a=new Map,c=!1,l={x:0,y:0},f=null,d=!1,u=null,h=!1,g=!1,w=null;function x({noDragClassName:_,handleSelector:p,domNode:v,isSelectable:C,nodeId:S,nodeClickDistance:I=0}){u=Ne(v);function P({x:F,y:L}){const{nodeLookup:y,nodeExtent:N,snapGrid:M,snapToGrid:A,nodeOrigin:T,onNodeDrag:k,onSelectionDrag:H,onError:V,updateNodePositions:B}=t();i={x:F,y:L};let G=!1;const K=a.size>1,te=K&&N?vr(Ut(a)):null,oe=K&&A?Md({dragItems:a,snapGrid:M,x:F,y:L}):null;for(const[Q,j]of a){if(!y.has(Q))continue;let X={x:F-j.distance.x,y:L-j.distance.y};A&&(X=oe?{x:Math.round(X.x+oe.x),y:Math.round(X.y+oe.y)}:Qt(X,M));let ne=null;if(K&&N&&!j.extent&&te){const{positionAbsolute:U}=j.internals,W=U.x-te.x+N[0][0],ie=U.x+j.measured.width-te.x2+N[1][0],se=U.y-te.y+N[0][1],ce=U.y+j.measured.height-te.y2+N[1][1];ne=[[W,se],[ie,ce]]}const{position:Z,positionAbsolute:J}=Gi({nodeId:Q,nextPosition:X,nodeLookup:y,nodeExtent:ne||N,nodeOrigin:T,onError:V});G=G||j.position.x!==Z.x||j.position.y!==Z.y,j.position=Z,j.internals.positionAbsolute=J}if(g=g||G,!!G&&(B(a,!0),w&&(r||k||!S&&H))){const[Q,j]=ir({nodeId:S,dragItems:a,nodeLookup:y});r==null||r(w,a,Q,j),k==null||k(w,Q,j),S||H==null||H(w,j)}}async function $(){if(!f)return;const{transform:F,panBy:L,autoPanSpeed:y,autoPanOnNodeDrag:N}=t();if(!N){c=!1,cancelAnimationFrame(s);return}const[M,A]=Rr(l,f,y);(M!==0||A!==0)&&(i.x=(i.x??0)-M/F[2],i.y=(i.y??0)-A/F[2],await L({x:M,y:A})&&P(i)),s=requestAnimationFrame($)}function O(F){var K;const{nodeLookup:L,multiSelectionActive:y,nodesDraggable:N,transform:M,snapGrid:A,snapToGrid:T,selectNodesOnDrag:k,onNodeDragStart:H,onSelectionDragStart:V,unselectNodesAndEdges:B}=t();d=!0,(!k||!C)&&!y&&S&&((K=L.get(S))!=null&&K.selected||B()),C&&k&&S&&(e==null||e(S));const G=Lt(F.sourceEvent,{transform:M,snapGrid:A,snapToGrid:T,containerBounds:f});if(i=G,a=Nd(L,N,G,S),a.size>0&&(n||H||!S&&V)){const[te,oe]=ir({nodeId:S,dragItems:a,nodeLookup:L});n==null||n(F.sourceEvent,a,te,oe),H==null||H(F.sourceEvent,te,oe),S||V==null||V(F.sourceEvent,oe)}}const D=Ci().clickDistance(I).on("start",F=>{const{domNode:L,nodeDragThreshold:y,transform:N,snapGrid:M,snapToGrid:A}=t();f=(L==null?void 0:L.getBoundingClientRect())||null,h=!1,g=!1,w=F.sourceEvent,y===0&&O(F),i=Lt(F.sourceEvent,{transform:N,snapGrid:M,snapToGrid:A,containerBounds:f}),l=Te(F.sourceEvent,f)}).on("drag",F=>{const{autoPanOnNodeDrag:L,transform:y,snapGrid:N,snapToGrid:M,nodeDragThreshold:A,nodeLookup:T}=t(),k=Lt(F.sourceEvent,{transform:y,snapGrid:N,snapToGrid:M,containerBounds:f});if(w=F.sourceEvent,(F.sourceEvent.type==="touchmove"&&F.sourceEvent.touches.length>1||S&&!T.has(S))&&(h=!0),!h){if(!c&&L&&d&&(c=!0,$()),!d){const H=Te(F.sourceEvent,f),V=H.x-l.x,B=H.y-l.y;Math.sqrt(V*V+B*B)>A&&O(F)}(i.x!==k.xSnapped||i.y!==k.ySnapped)&&a&&d&&(l=Te(F.sourceEvent,f),P(k))}}).on("end",F=>{if(!d||h){h&&a.size>0&&t().updateNodePositions(a,!1);return}if(c=!1,d=!1,cancelAnimationFrame(s),a.size>0){const{nodeLookup:L,updateNodePositions:y,onNodeDragStop:N,onSelectionDragStop:M}=t();if(g&&(y(a,!1),g=!1),o||N||!S&&M){const[A,T]=ir({nodeId:S,dragItems:a,nodeLookup:L,dragging:!1});o==null||o(F.sourceEvent,a,A,T),N==null||N(F.sourceEvent,A,T),S||M==null||M(F.sourceEvent,T)}}}).filter(F=>{const L=F.target;return!F.button&&(!_||!Io(L,`.${_}`,v))&&(!p||Io(L,p,v))});u.call(D)}function m(){u==null||u.on(".drag",null)}return{update:x,destroy:m}}function kd(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())An(o,Yt(i))>0&&r.push(i);return r}const Ad=250;function Id(e,t,n,r){var a,c;let o=[],i=1/0;const s=kd(e,n,t+Ad);for(const l of s){const f=[...((a=l.internals.handleBounds)==null?void 0:a.source)??[],...((c=l.internals.handleBounds)==null?void 0:c.target)??[]];for(const d of f){if(r.nodeId===d.nodeId&&r.type===d.type&&r.id===d.id)continue;const{x:u,y:h}=lt(l,d,d.position,!0),g=Math.sqrt(Math.pow(u-e.x,2)+Math.pow(h-e.y,2));g>t||(g<i?(o=[{...d,x:u,y:h}],i=g):g===i&&o.push({...d,x:u,y:h}))}}if(!o.length)return null;if(o.length>1){const l=r.type==="source"?"target":"source";return o.find(f=>f.type===l)??o[0]}return o[0]}function ds(e,t,n,r,o,i=!1){var l,f,d;const s=r.get(e);if(!s)return null;const a=o==="strict"?(l=s.internals.handleBounds)==null?void 0:l[t]:[...((f=s.internals.handleBounds)==null?void 0:f.source)??[],...((d=s.internals.handleBounds)==null?void 0:d.target)??[]],c=(n?a==null?void 0:a.find(u=>u.id===n):a==null?void 0:a[0])??null;return c&&i?{...c,...lt(s,c,c.position,!0)}:c}function hs(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function $d(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const gs=()=>!0;function Pd(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:c,lib:l,autoPanOnConnect:f,flowId:d,panBy:u,cancelConnection:h,onConnectStart:g,onConnect:w,onConnectEnd:x,isValidConnection:m=gs,onReconnectEnd:_,updateConnection:p,getTransform:v,getFromHandle:C,autoPanSpeed:S,dragThreshold:I=1,handleDomNode:P}){const $=ts(e.target);let O=0,D;const{x:F,y:L}=Te(e),y=hs(i,P),N=a==null?void 0:a.getBoundingClientRect();let M=!1;if(!N||!y)return;const A=ds(o,y,r,c,t);if(!A)return;let T=Te(e,N),k=!1,H=null,V=!1,B=null;function G(){if(!f||!N)return;const[Z,J]=Rr(T,N,S);u({x:Z,y:J}),O=requestAnimationFrame(G)}const K={...A,nodeId:o,type:y,position:A.position},te=c.get(o);let Q={inProgress:!0,isValid:null,from:lt(te,K,ee.Left,!0),fromHandle:K,fromPosition:K.position,fromNode:te,to:T,toHandle:null,toPosition:xo[K.position],toNode:null,pointer:T};function j(){M=!0,p(Q),g==null||g(e,{nodeId:o,handleId:r,handleType:y})}I===0&&j();function X(Z){if(!M){const{x:ce,y:me}=Te(Z),ve=ce-F,be=me-L;if(!(ve*ve+be*be>I*I))return;j()}if(!C()||!K){ne(Z);return}const J=v();T=Te(Z,N),D=Id(Jt(T,J,!1,[1,1]),n,c,K),k||(G(),k=!0);const U=ps(Z,{handle:D,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:s?"target":"source",isValidConnection:m,doc:$,lib:l,flowId:d,nodeLookup:c});B=U.handleDomNode,H=U.connection,V=$d(!!D,U.isValid);const W=c.get(o),ie=W?lt(W,K,ee.Left,!0):Q.from,se={...Q,from:ie,isValid:V,to:U.toHandle&&V?_t({x:U.toHandle.x,y:U.toHandle.y},J):T,toHandle:U.toHandle,toPosition:V&&U.toHandle?U.toHandle.position:xo[K.position],toNode:U.toHandle?c.get(U.toHandle.nodeId):null,pointer:T};p(se),Q=se}function ne(Z){if(!("touches"in Z&&Z.touches.length>0)){if(M){(D||B)&&H&&V&&(w==null||w(H));const{inProgress:J,...U}=Q,W={...U,toPosition:Q.toHandle?Q.toPosition:null};x==null||x(Z,W),i&&(_==null||_(Z,W))}h(),cancelAnimationFrame(O),k=!1,V=!1,H=null,B=null,$.removeEventListener("mousemove",X),$.removeEventListener("mouseup",ne),$.removeEventListener("touchmove",X),$.removeEventListener("touchend",ne)}}$.addEventListener("mousemove",X),$.addEventListener("mouseup",ne),$.addEventListener("touchmove",X),$.addEventListener("touchend",ne)}function ps(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:s,lib:a,flowId:c,isValidConnection:l=gs,nodeLookup:f}){const d=i==="target",u=t?s.querySelector(`.${a}-flow__handle[data-id="${c}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:h,y:g}=Te(e),w=s.elementFromPoint(h,g),x=w!=null&&w.classList.contains(`${a}-flow__handle`)?w:u,m={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){const _=hs(void 0,x),p=x.getAttribute("data-nodeid"),v=x.getAttribute("data-handleid"),C=x.classList.contains("connectable"),S=x.classList.contains("connectableend");if(!p||!_)return m;const I={source:d?p:r,sourceHandle:d?v:o,target:d?r:p,targetHandle:d?o:v};m.connection=I;const $=C&&S&&(n===vt.Strict?d&&_==="source"||!d&&_==="target":p!==r||v!==o);m.isValid=$&&l(I),m.toHandle=ds(p,_,v,f,n,!0)}return m}const Sr={onPointerDown:Pd,isValid:ps};function Td({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=Ne(e);function i({translateExtent:a,width:c,height:l,zoomStep:f=1,pannable:d=!0,zoomable:u=!0,inversePan:h=!1}){const g=p=>{if(p.sourceEvent.type!=="wheel"||!t)return;const v=n(),C=p.sourceEvent.ctrlKey&&Wt()?10:1,S=-p.sourceEvent.deltaY*(p.sourceEvent.deltaMode===1?.05:p.sourceEvent.deltaMode?1:.002)*f,I=v[2]*Math.pow(2,S*C);t.scaleTo(I)};let w=[0,0];const x=p=>{(p.sourceEvent.type==="mousedown"||p.sourceEvent.type==="touchstart")&&(w=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY])},m=p=>{const v=n();if(p.sourceEvent.type!=="mousemove"&&p.sourceEvent.type!=="touchmove"||!t)return;const C=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY],S=[C[0]-w[0],C[1]-w[1]];w=C;const I=r()*Math.max(v[2],Math.log(v[2]))*(h?-1:1),P={x:v[0]-S[0]*I,y:v[1]-S[1]*I},$=[[0,0],[c,l]];t.setViewportConstrained({x:P.x,y:P.y,zoom:v[2]},$,a)},_=Fi().on("start",x).on("zoom",d?m:null).on("zoom.wheel",u?g:null);o.call(_,{})}function s(){o.on("zoom",null)}return{update:i,destroy:s,pointer:Ie}}const Vn=e=>({x:e.x,y:e.y,zoom:e.k}),sr=({x:e,y:t,zoom:n})=>Ln.translate(e,t).scale(n),Ue=(e,t)=>e.target.closest(`.${t}`),ms=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Dd=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ar=(e,t=0,n=Dd,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},ys=e=>{const t=e.ctrlKey&&Wt()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Rd({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:c,onPanZoomEnd:l}){return f=>{if(Ue(f,t))return f.ctrlKey&&f.preventDefault(),!1;f.preventDefault(),f.stopImmediatePropagation();const d=n.property("__zoom").k||1;if(f.ctrlKey&&s){const x=Ie(f),m=ys(f),_=d*Math.pow(2,m);r.scaleTo(n,_,x,f);return}const u=f.deltaMode===1?20:1;let h=o===ot.Vertical?0:f.deltaX*u,g=o===ot.Horizontal?0:f.deltaY*u;!Wt()&&f.shiftKey&&o!==ot.Vertical&&(h=f.deltaY*u,g=0),r.translateBy(n,-(h/d)*i,-(g/d)*i,{internal:!0});const w=Vn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?c==null||c(f,w):(e.isPanScrolling=!0,a==null||a(f,w)),e.panScrollTimeout=setTimeout(()=>{l==null||l(f,w),e.isPanScrolling=!1},150)}}function zd({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",s=!t&&i&&!r.ctrlKey,a=Ue(r,e);if(r.ctrlKey&&i&&a&&r.preventDefault(),s||a)return null;r.preventDefault(),n.call(this,r,o)}}function Ld({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,s,a;if((i=r.sourceEvent)!=null&&i.internal)return;const o=Vn(r.transform);e.mouseButton=((s=r.sourceEvent)==null?void 0:s.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=o,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,o))}}function Hd({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var s,a;e.usedRightMouseButton=!!(n&&ms(t,e.mouseButton??0)),(s=i.sourceEvent)!=null&&s.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!((a=i.sourceEvent)!=null&&a.internal)&&(o==null||o(i.sourceEvent,Vn(i.transform)))}}function jd({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return s=>{var a;if(!((a=s.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,i&&ms(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){const c=Vn(s.transform);e.prevViewport=c,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o==null||o(s.sourceEvent,c)},n?150:0)}}}function Vd({panActivationKeyPressed:e,zoomActivationKeyPressed:t,zoomOnScroll:n,zoomOnPinch:r,panOnDrag:o,panOnScroll:i,zoomOnDoubleClick:s,userSelectionActive:a,noWheelClassName:c,noPanClassName:l,lib:f,connectionInProgress:d}){return u=>{var m;const h=t||n,g=r&&u.ctrlKey,w=u.type==="wheel";if(u.button===1&&u.type==="mousedown"&&(Ue(u,`${f}-flow__node`)||Ue(u,`${f}-flow__edge`)||Ue(u,`${f}-flow__selection`)||Ue(u,`${f}-flow__nodesselection`)))return!0;if(!o&&!h&&!i&&!s&&!r||a||d&&!w||Ue(u,c)&&w||Ue(u,l)&&(!w||i&&w&&!t)||!r&&u.ctrlKey&&w)return!1;if(!r&&u.type==="touchstart"&&((m=u.touches)==null?void 0:m.length)>1)return u.preventDefault(),!1;if(!h&&!i&&!g&&w||!o&&(u.type==="mousedown"||u.type==="touchstart")||Array.isArray(o)&&!o.includes(u.button)&&u.type==="mousedown")return!1;const x=Array.isArray(o)&&o.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||w||e)&&x}}function Bd({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:a,onDraggingChange:c}){const l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect();let d=[[0,0],[f.width,f.height]];const u=typeof ResizeObserver<"u"?new ResizeObserver(L=>{const y=L[0];y&&(d=[[0,0],[y.contentRect.width,y.contentRect.height]])}):null;u==null||u.observe(e);const h=Fi().extent(()=>d).scaleExtent([t,n]).translateExtent(r),g=Ne(e).call(h);v({x:o.x,y:o.y,zoom:bt(o.zoom,t,n)},[[0,0],[f.width,f.height]],r);const w=g.on("wheel.zoom"),x=g.on("dblclick.zoom");h.wheelDelta(ys);async function m(L,y){return g?new Promise(N=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?zt:yn).transform(ar(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>N(!0)),L)}):!1}function _({noWheelClassName:L,noPanClassName:y,onPaneContextMenu:N,userSelectionActive:M,panOnScroll:A,panOnDrag:T,panOnScrollMode:k,panOnScrollSpeed:H,preventScrolling:V,zoomOnPinch:B,zoomOnScroll:G,zoomOnDoubleClick:K,panActivationKeyPressed:te=!1,zoomActivationKeyPressed:oe,lib:Q,onTransformChange:j,connectionInProgress:X,paneClickDistance:ne,selectionOnDrag:Z}){M&&!l.isZoomingOrPanning&&p();const J=A&&!oe&&!M;h.clickDistance(Z?1/0:!Pe(ne)||ne<0?0:ne);const U=J?Rd({zoomPanValues:l,noWheelClassName:L,d3Selection:g,d3Zoom:h,panOnScrollMode:k,panOnScrollSpeed:H,zoomOnPinch:B,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:a}):zd({noWheelClassName:L,preventScrolling:V,d3ZoomHandler:w});g.on("wheel.zoom",U,{passive:!1});const W=Ld({zoomPanValues:l,onDraggingChange:c,onPanZoomStart:s});h.on("start",W);const ie=Hd({zoomPanValues:l,panOnDrag:T,onPaneContextMenu:!!N,onPanZoom:i,onTransformChange:j});h.on("zoom",ie);const se=jd({zoomPanValues:l,panOnDrag:T,panOnScroll:A,onPaneContextMenu:N,onPanZoomEnd:a,onDraggingChange:c});h.on("end",se);const ce=Vd({panActivationKeyPressed:te,zoomActivationKeyPressed:oe,panOnDrag:T,zoomOnScroll:G,panOnScroll:A,zoomOnDoubleClick:K,zoomOnPinch:B,userSelectionActive:M,noPanClassName:y,noWheelClassName:L,lib:Q,connectionInProgress:X});h.filter(ce),K?g.on("dblclick.zoom",x):g.on("dblclick.zoom",null)}function p(){h.on("zoom",null)}async function v(L,y,N){const M=sr(L),A=h==null?void 0:h.constrain()(M,y,N);return A&&await m(A),A}async function C(L,y){const N=sr(L);return await m(N,y),N}function S(L){if(g){const y=sr(L),N=g.property("__zoom");(N.k!==L.zoom||N.x!==L.x||N.y!==L.y)&&(h==null||h.transform(g,y,null,{sync:!0}))}}function I(){const L=g?Bi(g.node()):{x:0,y:0,k:1};return{x:L.x,y:L.y,zoom:L.k}}async function P(L,y){return g?new Promise(N=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?zt:yn).scaleTo(ar(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>N(!0)),L)}):!1}async function $(L,y){return g?new Promise(N=>{h==null||h.interpolate((y==null?void 0:y.interpolate)==="linear"?zt:yn).scaleBy(ar(g,y==null?void 0:y.duration,y==null?void 0:y.ease,()=>N(!0)),L)}):!1}function O(L){h==null||h.scaleExtent(L)}function D(L){h==null||h.translateExtent(L)}function F(L){const y=!Pe(L)||L<0?0:L;h==null||h.clickDistance(y)}return{update:_,destroy:p,setViewport:C,setViewportConstrained:v,getViewport:I,scaleTo:P,scaleBy:$,setScaleExtent:O,setTranslateExtent:D,syncViewport:S,setClickDistance:F}}var Et;(function(e){e.Line="line",e.Handle="handle"})(Et||(Et={}));function Fd({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:o,affectsY:i}){const s=e-t,a=n-r,c=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&o&&(c[0]=c[0]*-1),a&&i&&(c[1]=c[1]*-1),c}function $o(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),o=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:o}}function Ke(e,t){return Math.max(0,t-e)}function Ze(e,t){return Math.max(0,e-t)}function hn(e,t,n){return Math.max(0,t-e,e-n)}function Po(e,t){return e?!t:t}function Od(e,t,n,r,o,i,s,a){let{affectsX:c,affectsY:l}=t;const{isHorizontal:f,isVertical:d}=t,u=f&&d,{xSnapped:h,ySnapped:g}=n,{minWidth:w,maxWidth:x,minHeight:m,maxHeight:_}=r,{x:p,y:v,width:C,height:S,aspectRatio:I}=e;let P=Math.floor(f?h-e.pointerX:0),$=Math.floor(d?g-e.pointerY:0);const O=C+(c?-P:P),D=S+(l?-$:$),F=-i[0]*C,L=-i[1]*S;let y=hn(O,w,x),N=hn(D,m,_);if(s){let T=0,k=0;c&&P<0?T=Ke(p+P+F,s[0][0]):!c&&P>0&&(T=Ze(p+O+F,s[1][0])),l&&$<0?k=Ke(v+$+L,s[0][1]):!l&&$>0&&(k=Ze(v+D+L,s[1][1])),y=Math.max(y,T),N=Math.max(N,k)}if(a){let T=0,k=0;c&&P>0?T=Ze(p+P,a[0][0]):!c&&P<0&&(T=Ke(p+O,a[1][0])),l&&$>0?k=Ze(v+$,a[0][1]):!l&&$<0&&(k=Ke(v+D,a[1][1])),y=Math.max(y,T),N=Math.max(N,k)}if(o){if(f){const T=hn(O/I,m,_)*I;if(y=Math.max(y,T),s){let k=0;!c&&!l||c&&!l&&u?k=Ze(v+L+O/I,s[1][1])*I:k=Ke(v+L+(c?P:-P)/I,s[0][1])*I,y=Math.max(y,k)}if(a){let k=0;!c&&!l||c&&!l&&u?k=Ke(v+O/I,a[1][1])*I:k=Ze(v+(c?P:-P)/I,a[0][1])*I,y=Math.max(y,k)}}if(d){const T=hn(D*I,w,x)/I;if(N=Math.max(N,T),s){let k=0;!c&&!l||l&&!c&&u?k=Ze(p+D*I+F,s[1][0])/I:k=Ke(p+(l?$:-$)*I+F,s[0][0])/I,N=Math.max(N,k)}if(a){let k=0;!c&&!l||l&&!c&&u?k=Ke(p+D*I,a[1][0])/I:k=Ze(p+(l?$:-$)*I,a[0][0])/I,N=Math.max(N,k)}}}$=$+($<0?N:-N),P=P+(P<0?y:-y),o&&(u?O>D*I?$=(Po(c,l)?-P:P)/I:P=(Po(c,l)?-$:$)*I:f?($=P/I,l=c):(P=$*I,c=l));const M=c?p+P:p,A=l?v+$:v;return{width:C+(c?-P:P),height:S+(l?-$:$),x:i[0]*P*(c?-1:1)+M,y:i[1]*$*(l?-1:1)+A}}const xs={width:0,height:0,x:0,y:0},Xd={...xs,pointerX:0,pointerY:0,aspectRatio:1};function Yd(e,t,n){const r=t.position.x+e.position.x,o=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,a=n[0]*i,c=n[1]*s;return[[r-a,o-c],[r+i-a,o+s-c]]}function Wd({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const i=Ne(e);let s={controlDirection:$o("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:l,boundaries:f,keepAspectRatio:d,resizeDirection:u,onResizeStart:h,onResize:g,onResizeEnd:w,shouldResize:x}){let m={...xs},_={...Xd};s={boundaries:f,resizeDirection:u,keepAspectRatio:d,controlDirection:$o(l)};let p,v=null,C=[],S,I,P,$=!1;const O=Ci().on("start",D=>{const{nodeLookup:F,transform:L,snapGrid:y,snapToGrid:N,nodeOrigin:M,paneDomNode:A}=n();if(p=F.get(t),!p)return;v=(A==null?void 0:A.getBoundingClientRect())??null;const{xSnapped:T,ySnapped:k}=Lt(D.sourceEvent,{transform:L,snapGrid:y,snapToGrid:N,containerBounds:v});m={width:p.measured.width??0,height:p.measured.height??0,x:p.position.x??0,y:p.position.y??0},_={...m,pointerX:T,pointerY:k,aspectRatio:m.width/m.height},S=void 0,I=ct(p.extent)?p.extent:void 0,p.parentId&&(p.extent==="parent"||p.expandParent)&&(S=F.get(p.parentId)),S&&p.extent==="parent"&&(I=[[0,0],[S.measured.width,S.measured.height]]),C=[],P=void 0;for(const[H,V]of F)if(V.parentId===t&&(C.push({id:H,position:{...V.position},extent:V.extent}),V.extent==="parent"||V.expandParent)){const B=Yd(V,p,V.origin??M);P?P=[[Math.min(B[0][0],P[0][0]),Math.min(B[0][1],P[0][1])],[Math.max(B[1][0],P[1][0]),Math.max(B[1][1],P[1][1])]]:P=B}h==null||h(D,{...m})}).on("drag",D=>{const{transform:F,snapGrid:L,snapToGrid:y,nodeOrigin:N}=n(),M=Lt(D.sourceEvent,{transform:F,snapGrid:L,snapToGrid:y,containerBounds:v}),A=[];if(!p)return;const{x:T,y:k,width:H,height:V}=m,B={},G=p.origin??N,{width:K,height:te,x:oe,y:Q}=Od(_,s.controlDirection,M,s.boundaries,s.keepAspectRatio,G,I,P),j=K!==H,X=te!==V,ne=oe!==T&&j,Z=Q!==k&&X;if(!ne&&!Z&&!j&&!X)return;if((ne||Z||G[0]===1||G[1]===1)&&(B.x=ne?oe:m.x,B.y=Z?Q:m.y,m.x=B.x,m.y=B.y,C.length>0)){const ie=oe-T,se=Q-k;for(const ce of C)ce.position={x:ce.position.x-ie+G[0]*(K-H),y:ce.position.y-se+G[1]*(te-V)},A.push(ce)}if((j||X)&&(B.width=j&&(!s.resizeDirection||s.resizeDirection==="horizontal")?K:m.width,B.height=X&&(!s.resizeDirection||s.resizeDirection==="vertical")?te:m.height,m.width=B.width,m.height=B.height),S&&p.expandParent){const ie=G[0]*(B.width??0);B.x&&B.x<ie&&(m.x=ie,_.x=_.x-(B.x-ie));const se=G[1]*(B.height??0);B.y&&B.y<se&&(m.y=se,_.y=_.y-(B.y-se))}const J=Fd({width:m.width,prevWidth:H,height:m.height,prevHeight:V,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),U={...m,direction:J};(x==null?void 0:x(D,U))!==!1&&($=!0,g==null||g(D,U),r(B,A))}).on("end",D=>{$&&(w==null||w(D,{...m}),o==null||o({...m}),$=!1)});i.call(O)}function c(){i.on(".drag",null)}return{update:a,destroy:c}}var ws={exports:{}},vs={},bs={exports:{}},_s={};/**
|
|
3
|
+
* @license React
|
|
4
|
+
* use-sync-external-store-shim.production.js
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
7
|
+
*
|
|
8
|
+
* This source code is licensed under the MIT license found in the
|
|
9
|
+
* LICENSE file in the root directory of this source tree.
|
|
10
|
+
*/var St=E;function qd(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Gd=typeof Object.is=="function"?Object.is:qd,Kd=St.useState,Zd=St.useEffect,Ud=St.useLayoutEffect,Qd=St.useDebugValue;function Jd(e,t){var n=t(),r=Kd({inst:{value:n,getSnapshot:t}}),o=r[0].inst,i=r[1];return Ud(function(){o.value=n,o.getSnapshot=t,cr(o)&&i({inst:o})},[e,n,t]),Zd(function(){return cr(o)&&i({inst:o}),e(function(){cr(o)&&i({inst:o})})},[e]),Qd(n),n}function cr(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Gd(e,n)}catch{return!0}}function eh(e,t){return t()}var th=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?eh:Jd;_s.useSyncExternalStore=St.useSyncExternalStore!==void 0?St.useSyncExternalStore:th;bs.exports=_s;var nh=bs.exports;/**
|
|
11
|
+
* @license React
|
|
12
|
+
* use-sync-external-store-shim/with-selector.production.js
|
|
13
|
+
*
|
|
14
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
15
|
+
*
|
|
16
|
+
* This source code is licensed under the MIT license found in the
|
|
17
|
+
* LICENSE file in the root directory of this source tree.
|
|
18
|
+
*/var Bn=E,rh=nh;function oh(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ih=typeof Object.is=="function"?Object.is:oh,sh=rh.useSyncExternalStore,ah=Bn.useRef,ch=Bn.useEffect,lh=Bn.useMemo,uh=Bn.useDebugValue;vs.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var i=ah(null);if(i.current===null){var s={hasValue:!1,value:null};i.current=s}else s=i.current;i=lh(function(){function c(h){if(!l){if(l=!0,f=h,h=r(h),o!==void 0&&s.hasValue){var g=s.value;if(o(g,h))return d=g}return d=h}if(g=d,ih(f,h))return g;var w=r(h);return o!==void 0&&o(g,w)?(f=h,g):(f=h,d=w)}var l=!1,f,d,u=n===void 0?null:n;return[function(){return c(t())},u===null?void 0:function(){return c(u())}]},[t,n,r,o]);var a=sh(e,i[0],i[1]);return ch(function(){s.hasValue=!0,s.value=a},[a]),uh(a),a};ws.exports=vs;var fh=ws.exports;const dh=Ra(fh),hh={},To=e=>{let t;const n=new Set,r=(f,d)=>{const u=typeof f=="function"?f(t):f;if(!Object.is(u,t)){const h=t;t=d??(typeof u!="object"||u===null)?u:Object.assign({},t,u),n.forEach(g=>g(t,h))}},o=()=>t,c={setState:r,getState:o,getInitialState:()=>l,subscribe:f=>(n.add(f),()=>n.delete(f)),destroy:()=>{(hh?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=t=e(r,o,c);return c},gh=e=>e?To(e):To,{useDebugValue:ph}=za,{useSyncExternalStoreWithSelector:mh}=dh,yh=e=>e;function Es(e,t=yh,n){const r=mh(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return ph(r),r}const Do=(e,t)=>{const n=gh(e),r=(o,i=t)=>Es(n,o,i);return Object.assign(r,n),r},xh=(e,t)=>e?Do(e,t):Do;function fe(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,o]of e)if(!Object.is(o,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Fn=E.createContext(null),wh=Fn.Provider,Ss=De.error001("react");function ae(e,t){const n=E.useContext(Fn);if(n===null)throw new Error(Ss);return Es(n,e,t)}function ue(){const e=E.useContext(Fn);if(e===null)throw new Error(Ss);return E.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Ro={display:"none"},vh={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Ns="react-flow__node-desc",Ms="react-flow__edge-desc",bh="react-flow__aria-live",_h=e=>e.ariaLiveMessage,Eh=e=>e.ariaLabelConfig;function Sh({rfId:e}){const t=ae(_h);return b.jsx("div",{id:`${bh}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:vh,children:t})}function Nh({rfId:e,disableKeyboardA11y:t}){const n=ae(Eh);return b.jsxs(b.Fragment,{children:[b.jsx("div",{id:`${Ns}-${e}`,style:Ro,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),b.jsx("div",{id:`${Ms}-${e}`,style:Ro,children:n["edge.a11yDescription.default"]}),!t&&b.jsx(Sh,{rfId:e})]})}const On=E.forwardRef(({position:e="top-left",children:t,className:n,style:r,...o},i)=>{const s=`${e}`.split("-");return b.jsx("div",{className:ye(["react-flow__panel",n,...s]),style:r,ref:i,...o,children:t})});On.displayName="Panel";const zo="https://reactflow.dev?utm_source=attribution";function Mh({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:b.jsx(On,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${zo}`,children:b.jsx("a",{href:zo,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Ch=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},gn=e=>e.id;function kh(e,t){return fe(e.selectedNodes.map(gn),t.selectedNodes.map(gn))&&fe(e.selectedEdges.map(gn),t.selectedEdges.map(gn))}function Ah({onSelectionChange:e}){const t=ue(),{selectedNodes:n,selectedEdges:r}=ae(Ch,kh);return E.useEffect(()=>{const o={nodes:n,edges:r};e==null||e(o),t.getState().onSelectionChangeHandlers.forEach(i=>i(o))},[n,r,e]),null}const Ih=e=>!!e.onSelectionChangeHandlers;function $h({onSelectionChange:e}){const t=ae(Ih);return e||t?b.jsx(Ah,{onSelectionChange:e}):null}const Cs=[0,0],Ph={x:0,y:0,zoom:1},Th=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],Lo=[...Th,"rfId"],Dh=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Ho={translateExtent:Ft,nodeOrigin:Cs,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Rh(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:i,setNodeExtent:s,reset:a,setDefaultNodesAndEdges:c}=ae(Dh,fe),l=ue();E.useEffect(()=>(c(e.defaultNodes,e.defaultEdges),()=>{f.current=Ho,a()}),[]);const f=E.useRef(Ho);return E.useEffect(()=>{for(const d of Lo){const u=e[d],h=f.current[d];u!==h&&(typeof e[d]>"u"||(d==="nodes"?t(u):d==="edges"?n(u):d==="minZoom"?r(u):d==="maxZoom"?o(u):d==="translateExtent"?i(u):d==="nodeExtent"?s(u):d==="ariaLabelConfig"?l.setState({ariaLabelConfig:id(u)}):d==="fitView"?l.setState({fitViewQueued:u}):d==="fitViewOptions"?l.setState({fitViewOptions:u}):l.setState({[d]:u})))}f.current=e},Lo.map(d=>e[d])),null}function jo(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function zh(e){var r;const[t,n]=E.useState(e==="system"?null:e);return E.useEffect(()=>{if(e!=="system"){n(e);return}const o=jo(),i=()=>n(o!=null&&o.matches?"dark":"light");return i(),o==null||o.addEventListener("change",i),()=>{o==null||o.removeEventListener("change",i)}},[e]),t!==null?t:(r=jo())!=null&&r.matches?"dark":"light"}const Vo=typeof document<"u"?document:null;function qt(e=null,t={target:Vo,actInsideInputWithModifier:!0}){const[n,r]=E.useState(!1),o=E.useRef(!1),i=E.useRef(new Set([])),[s,a]=E.useMemo(()=>{if(e!==null){const l=(Array.isArray(e)?e:[e]).filter(d=>typeof d=="string").map(d=>d.replace(/\+/g,`
|
|
19
|
+
`).replace(`
|
|
20
|
+
|
|
21
|
+
`,`
|
|
22
|
+
+`).split(`
|
|
23
|
+
`)),f=l.reduce((d,u)=>d.concat(...u),[]);return[l,f]}return[[],[]]},[e]);return E.useEffect(()=>{const c=(t==null?void 0:t.target)??Vo,l=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const f=h=>{var x,m;if(o.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!o.current||o.current&&!l)&&ns(h))return!1;const w=Fo(h.code,a);if(i.current.add(h[w]),Bo(s,i.current,!1)){const _=((m=(x=h.composedPath)==null?void 0:x.call(h))==null?void 0:m[0])||h.target,p=(_==null?void 0:_.nodeName)==="BUTTON"||(_==null?void 0:_.nodeName)==="A";t.preventDefault!==!1&&(o.current||!p)&&h.preventDefault(),r(!0)}},d=h=>{const g=Fo(h.code,a);Bo(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[g]),h.key==="Meta"&&i.current.clear(),o.current=!1},u=()=>{i.current.clear(),r(!1)};return c==null||c.addEventListener("keydown",f),c==null||c.addEventListener("keyup",d),window.addEventListener("blur",u),window.addEventListener("contextmenu",u),()=>{c==null||c.removeEventListener("keydown",f),c==null||c.removeEventListener("keyup",d),window.removeEventListener("blur",u),window.removeEventListener("contextmenu",u)}}},[e,r]),n}function Bo(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function Fo(e,t){return t.includes(e)?"code":"key"}const Lh=()=>{const e=ue();return E.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,o,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??r,y:t.y??o,zoom:t.zoom??i},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:o,minZoom:i,maxZoom:s,panZoom:a}=e.getState(),c=zr(t,r,o,i,s,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(c,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:o,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:a,y:c}=s.getBoundingClientRect(),l={x:t.x-a,y:t.y-c},f=n.snapGrid??o,d=n.snapToGrid??i;return Jt(l,r,d,f)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:i}=r.getBoundingClientRect(),s=_t(t,n);return{x:s.x+o,y:s.y+i}}}),[])};function ks(e,t){const n=[],r=new Map,o=[];for(const i of e)if(i.type==="add"){o.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const s=r.get(i.id);s?s.push(i):r.set(i.id,[i])}for(const i of t){const s=r.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const a={...i};for(const c of s)Hh(c,a);n.push(a)}return o.length&&o.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Hh(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function jh(e,t){return ks(e,t)}function Vh(e,t){return ks(e,t)}function tt(e,t){return{id:e,type:"select",selected:t}}function pt(e,t=new Set,n=!1){const r=[];for(const[o,i]of e){const s=t.has(o);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),r.push(tt(i.id,s)))}return r}function Oo({items:e=[],lookup:t}){var o;const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,s]of e.entries()){const a=t.get(s.id),c=((o=a==null?void 0:a.internals)==null?void 0:o.userNode)??a;c!==void 0&&c!==s&&n.push({id:s.id,item:s,type:"replace"}),c===void 0&&n.push({item:s,type:"add",index:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function Xo(e){return{id:e.id,type:"remove"}}const Bh=Qi();function Fh(e,t,n={}){return fd(e,t,{...n,onError:n.onError??Bh})}const Yo=e=>Zf(e),Oh=e=>qi(e);function As(e){return E.forwardRef(e)}const Is=typeof window<"u"?E.useLayoutEffect:E.useEffect;function Wo(e){const[t,n]=E.useState(BigInt(0)),[r]=E.useState(()=>Xh(()=>n(o=>o+BigInt(1))));return Is(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function Xh(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const $s=E.createContext(null);function Yh({children:e}){const t=ue(),n=E.useCallback(a=>{const{nodes:c=[],setNodes:l,hasDefaultNodes:f,onNodesChange:d,nodeLookup:u,fitViewQueued:h,onNodesChangeMiddlewareMap:g}=t.getState();let w=c;for(const m of a)w=typeof m=="function"?m(w):m;let x=Oo({items:w,lookup:u});for(const m of g.values())x=m(x);f&&l(w),x.length>0?d==null||d(x):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:m,nodes:_,setNodes:p}=t.getState();m&&p(_)})},[]),r=Wo(n),o=E.useCallback(a=>{const{edges:c=[],setEdges:l,hasDefaultEdges:f,onEdgesChange:d,edgeLookup:u}=t.getState();let h=c;for(const g of a)h=typeof g=="function"?g(h):g;f?l(h):d&&d(Oo({items:h,lookup:u}))},[]),i=Wo(o),s=E.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return b.jsx($s.Provider,{value:s,children:e})}function Wh(){const e=E.useContext($s);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const qh=e=>!!e.panZoom;function Xn(){const e=Lh(),t=ue(),n=Wh(),r=ae(qh),o=E.useMemo(()=>{const i=d=>t.getState().nodeLookup.get(d),s=d=>{n.nodeQueue.push(d)},a=d=>{n.edgeQueue.push(d)},c=d=>{var m,_;const{nodeLookup:u,nodeOrigin:h}=t.getState(),g=Yo(d)?d:u.get(d.id),w=g.parentId?es(g.position,g.measured,g.parentId,u,h):g.position,x={...g,position:w,width:((m=g.measured)==null?void 0:m.width)??g.width,height:((_=g.measured)==null?void 0:_.height)??g.height};return Yt(x)},l=(d,u,h={replace:!1})=>{s(g=>g.map(w=>{if(w.id===d){const x=typeof u=="function"?u(w):u;return h.replace&&Yo(x)?x:{...w,...x}}return w}))},f=(d,u,h={replace:!1})=>{a(g=>g.map(w=>{if(w.id===d){const x=typeof u=="function"?u(w):u;return h.replace&&Oh(x)?x:{...w,...x}}return w}))};return{getNodes:()=>t.getState().nodes.map(d=>({...d})),getNode:d=>{var u;return(u=i(d))==null?void 0:u.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:d=[]}=t.getState();return d.map(u=>({...u}))},getEdge:d=>t.getState().edgeLookup.get(d),setNodes:s,setEdges:a,addNodes:d=>{const u=Array.isArray(d)?d:[d];n.nodeQueue.push(h=>[...h,...u])},addEdges:d=>{const u=Array.isArray(d)?d:[d];n.edgeQueue.push(h=>[...h,...u])},toObject:()=>{const{nodes:d=[],edges:u=[],transform:h}=t.getState(),[g,w,x]=h;return{nodes:d.map(m=>({...m})),edges:u.map(m=>({...m})),viewport:{x:g,y:w,zoom:x}}},deleteElements:async({nodes:d=[],edges:u=[]})=>{const{nodes:h,edges:g,onNodesDelete:w,onEdgesDelete:x,triggerNodeChanges:m,triggerEdgeChanges:_,onDelete:p,onBeforeDelete:v}=t.getState(),{nodes:C,edges:S}=await td({nodesToRemove:d,edgesToRemove:u,nodes:h,edges:g,onBeforeDelete:v}),I=S.length>0,P=C.length>0;if(I){const $=S.map(Xo);x==null||x(S),_($)}if(P){const $=C.map(Xo);w==null||w(C),m($)}return(P||I)&&(p==null||p({nodes:C,edges:S})),{deletedNodes:C,deletedEdges:S}},getIntersectingNodes:(d,u=!0,h)=>{const g=vo(d),w=g?d:c(d),x=h!==void 0;return w?(h||t.getState().nodes).filter(m=>{const _=t.getState().nodeLookup.get(m.id);if(_&&!g&&(m.id===d.id||!_.internals.positionAbsolute))return!1;const p=Yt(x?m:_),v=An(p,w);return u&&v>0||v>=p.width*p.height||v>=w.width*w.height}):[]},isNodeIntersecting:(d,u,h=!0)=>{const w=vo(d)?d:c(d);if(!w)return!1;const x=An(w,u);return h&&x>0||x>=u.width*u.height||x>=w.width*w.height},updateNode:l,updateNodeData:(d,u,h={replace:!1})=>{l(d,g=>{const w=typeof u=="function"?u(g):u;return h.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},h)},updateEdge:f,updateEdgeData:(d,u,h={replace:!1})=>{f(d,g=>{const w=typeof u=="function"?u(g):u;return h.replace?{...g,data:w}:{...g,data:{...g.data,...w}}},h)},getNodesBounds:d=>{const{nodeLookup:u,nodeOrigin:h}=t.getState();return Uf(d,{nodeLookup:u,nodeOrigin:h})},getHandleConnections:({type:d,id:u,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}-${d}${u?`-${u}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:d,handleId:u,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}${d?u?`-${d}-${u}`:`-${d}`:""}`))==null?void 0:g.values())??[])},fitView:async d=>{const u=t.getState().fitViewResolver??od();return t.setState({fitViewQueued:!0,fitViewOptions:d,fitViewResolver:u}),n.nodeQueue.push(h=>[...h]),u.promise}}},[]);return E.useMemo(()=>({...o,...e,viewportInitialized:r}),[r])}const qo=e=>e.selected,Gh=typeof window<"u"?window:void 0;function Kh({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ue(),{deleteElements:r}=Xn(),o=qt(e,{actInsideInputWithModifier:!1}),i=qt(t,{target:Gh});E.useEffect(()=>{if(o){const{edges:s,nodes:a}=n.getState();r({nodes:a.filter(qo),edges:s.filter(qo)}),n.setState({nodesSelectionActive:!1})}},[o]),E.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Zh(e){const t=ue();E.useEffect(()=>{const n=()=>{var o,i,s,a;if(!e.current||!(((i=(o=e.current).checkVisibility)==null?void 0:i.call(o))??!0))return!1;const r=Lr(e.current);(r.height===0||r.width===0)&&((a=(s=t.getState()).onError)==null||a.call(s,"004",De.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Yn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Uh=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Qh({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panActivationKeyPressed:o,panOnScrollSpeed:i=.5,panOnScrollMode:s=ot.Free,zoomOnDoubleClick:a=!0,panOnDrag:c=!0,defaultViewport:l,translateExtent:f,minZoom:d,maxZoom:u,zoomActivationKeyCode:h,preventScrolling:g=!0,children:w,noWheelClassName:x,noPanClassName:m,onViewportChange:_,isControlledViewport:p,paneClickDistance:v,selectionOnDrag:C}){const S=ue(),I=E.useRef(null),{userSelectionActive:P,lib:$,connectionInProgress:O}=ae(Uh,fe),D=qt(h),F=E.useRef();Zh(I);const L=E.useCallback(y=>{_==null||_({x:y[0],y:y[1],zoom:y[2]}),p||S.setState({transform:y})},[_,p]);return E.useEffect(()=>{if(I.current){F.current=Bd({domNode:I.current,minZoom:d,maxZoom:u,translateExtent:f,viewport:l,onDraggingChange:A=>S.setState(T=>T.paneDragging===A?T:{paneDragging:A}),onPanZoomStart:(A,T)=>{const{onViewportChangeStart:k,onMoveStart:H}=S.getState();H==null||H(A,T),k==null||k(T)},onPanZoom:(A,T)=>{const{onViewportChange:k,onMove:H}=S.getState();H==null||H(A,T),k==null||k(T)},onPanZoomEnd:(A,T)=>{const{onViewportChangeEnd:k,onMoveEnd:H}=S.getState();H==null||H(A,T),k==null||k(T)}});const{x:y,y:N,zoom:M}=F.current.getViewport();return S.setState({panZoom:F.current,transform:[y,N,M],domNode:I.current.closest(".react-flow")}),()=>{var A;(A=F.current)==null||A.destroy()}}},[]),E.useEffect(()=>{var y;(y=F.current)==null||y.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panActivationKeyPressed:o,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:a,panOnDrag:c,zoomActivationKeyPressed:D,preventScrolling:g,noPanClassName:m,userSelectionActive:P,noWheelClassName:x,lib:$,onTransformChange:L,connectionInProgress:O,selectionOnDrag:C,paneClickDistance:v})},[e,t,n,r,o,i,s,a,c,D,g,m,P,x,$,L,O,C,v]),b.jsx("div",{className:"react-flow__renderer",ref:I,style:Yn,children:w})}const Jh=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function eg(){const{userSelectionActive:e,userSelectionRect:t}=ae(Jh,fe);return e&&t?b.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const lr=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},tg=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function ng({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ot.Full,panOnDrag:r,autoPanOnSelection:o,paneClickDistance:i,selectionOnDrag:s,onSelectionStart:a,onSelectionEnd:c,onPaneClick:l,onPaneContextMenu:f,onPaneScroll:d,onPaneMouseEnter:u,onPaneMouseMove:h,onPaneMouseLeave:g,children:w}){const x=E.useRef(0),m=ue(),{userSelectionActive:_,elementsSelectable:p,dragging:v,panBy:C,autoPanSpeed:S}=ae(tg,fe),I=p&&(e||_),P=E.useRef(null),$=E.useRef(),O=E.useRef(new Set),D=E.useRef(new Set),F=E.useRef(!1),L=E.useRef(!1),y=E.useRef({x:0,y:0}),N=E.useRef(!1),M=j=>{if(L.current||F.current||m.getState().connection.inProgress){L.current=!1,F.current=!1;return}l==null||l(j),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},A=j=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){j.preventDefault();return}f==null||f(j)},T=d?j=>d(j):void 0,k=j=>{L.current&&(j.stopPropagation(),L.current=!1)},H=j=>{var ce,me;if(j.pointerType==="touch"&&r!==!1&&!t)return;const{domNode:X,transform:ne}=m.getState();if($.current=X==null?void 0:X.getBoundingClientRect(),!$.current)return;const Z=j.target===P.current;if(!Z&&!!j.target.closest(".nokey")||!e||!(s&&Z||t)||j.button!==0||!j.isPrimary)return;(me=(ce=j.target)==null?void 0:ce.setPointerCapture)==null||me.call(ce,j.pointerId),L.current=!1;const{x:W,y:ie}=Te(j.nativeEvent,$.current),se=Jt({x:W,y:ie},ne);m.setState({userSelectionRect:{width:0,height:0,startX:se.x,startY:se.y,x:W,y:ie}}),Z||(j.stopPropagation(),j.preventDefault())};function V(j,X){const{userSelectionRect:ne}=m.getState();if(!ne)return;const{transform:Z,nodeLookup:J,edgeLookup:U,connectionLookup:W,triggerNodeChanges:ie,triggerEdgeChanges:se,defaultEdgeOptions:ce}=m.getState(),me={x:ne.startX,y:ne.startY},{x:ve,y:be}=_t(me,Z),Ce={startX:me.x,startY:me.y,x:j<ve?j:ve,y:X<be?X:be,width:Math.abs(j-ve),height:Math.abs(X-be)},Le=O.current,xe=D.current;O.current=new Set(Dr(J,Ce,Z,n===Ot.Partial,!0).map(_e=>_e.id)),D.current=new Set;const He=(ce==null?void 0:ce.selectable)??!0;for(const _e of O.current){const Ee=W.get(_e);if(Ee)for(const{edgeId:ke}of Ee.values()){const Ae=U.get(ke);Ae&&(Ae.selectable??He)&&D.current.add(ke)}}if(!bo(Le,O.current)){const _e=pt(J,O.current,!0);ie(_e)}if(!bo(xe,D.current)){const _e=pt(U,D.current);se(_e)}m.setState({userSelectionRect:Ce,userSelectionActive:!0,nodesSelectionActive:!1})}function B(){if(!o||!$.current)return;const[j,X]=Rr(y.current,$.current,S);C({x:j,y:X}).then(ne=>{if(!L.current||!ne){x.current=requestAnimationFrame(B);return}const{x:Z,y:J}=y.current;V(Z,J),x.current=requestAnimationFrame(B)})}const G=()=>{cancelAnimationFrame(x.current),x.current=0,N.current=!1};E.useEffect(()=>()=>G(),[]);const K=j=>{const{userSelectionRect:X,transform:ne,resetSelectedElements:Z}=m.getState();if(!$.current||!X)return;const{x:J,y:U}=Te(j.nativeEvent,$.current);y.current={x:J,y:U};const W=_t({x:X.startX,y:X.startY},ne);if(!L.current){const ie=t?0:i;if(Math.hypot(J-W.x,U-W.y)<=ie)return;Z(),a==null||a(j)}L.current=!0,N.current||(B(),N.current=!0),V(J,U)},te=j=>{var X,ne;if(!I){j.target===P.current&&m.getState().connection.inProgress&&(F.current=!0);return}j.button===0&&((ne=(X=j.target)==null?void 0:X.releasePointerCapture)==null||ne.call(X,j.pointerId),!_&&j.target===P.current&&m.getState().userSelectionRect&&(M==null||M(j)),m.setState({userSelectionActive:!1,userSelectionRect:null}),L.current&&(c==null||c(j),m.setState({nodesSelectionActive:O.current.size>0})),G())},oe=j=>{var X,ne;(ne=(X=j.target)==null?void 0:X.releasePointerCapture)==null||ne.call(X,j.pointerId),G()},Q=r===!0||Array.isArray(r)&&r.includes(0);return b.jsxs("div",{className:ye(["react-flow__pane",{draggable:Q,dragging:v,selection:e}]),onClick:I?void 0:lr(M,P),onContextMenu:lr(A,P),onWheel:lr(T,P),onPointerEnter:I?void 0:u,onPointerMove:I?K:h,onPointerUp:te,onPointerCancel:I?oe:void 0,onPointerDownCapture:I?H:void 0,onClickCapture:I?k:void 0,onPointerLeave:g,ref:P,style:Yn,children:[w,b.jsx(eg,{})]})}function Nr({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:c}=t.getState(),l=a.get(e);if(!l){c==null||c("012",De.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&s)&&(i({nodes:[l],edges:[]}),requestAnimationFrame(()=>{var f;return(f=r==null?void 0:r.current)==null?void 0:f.blur()})):o([e])}function Ps({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:s}){const a=ue(),[c,l]=E.useState(!1),f=E.useRef();return E.useEffect(()=>{if(!t)return f.current=Cd({getStoreItems:()=>a.getState(),onNodeMouseDown:d=>{Nr({id:d,store:a,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}}),()=>{var d;(d=f.current)==null||d.destroy(),f.current=void 0}},[t,a,e]),E.useEffect(()=>{t||!e.current||!f.current||f.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:o,nodeClickDistance:s})},[n,r,t,i,e,o,s]),c}const rg=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Ts(){const e=ue();return E.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:c,nodeLookup:l,nodeOrigin:f}=e.getState(),d=new Map,u=rg(s),h=o?i[0]:5,g=o?i[1]:5,w=n.direction.x*h*n.factor,x=n.direction.y*g*n.factor;for(const[,m]of l){if(!u(m))continue;let _={x:m.internals.positionAbsolute.x+w,y:m.internals.positionAbsolute.y+x};o&&(_=Qt(_,i));const{position:p,positionAbsolute:v}=Gi({nodeId:m.id,nextPosition:_,nodeLookup:l,nodeExtent:r,nodeOrigin:f,onError:a});m.position=p,m.internals.positionAbsolute=v,d.set(m.id,m)}c(d)},[])}const Or=E.createContext(null),og=Or.Provider;Or.Consumer;const Ds=()=>E.useContext(Or),ig=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Rs=E.createContext(null);function sg({children:e}){const t=ae(ig,fe);return b.jsx(Rs.Provider,{value:t,children:e})}function ag(){const e=E.useContext(Rs);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}const cg={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},lg=(e,t,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:i,connection:s}=r,{fromHandle:a,toHandle:c,isValid:l}=s;if(!a&&!o)return cg;const f=(c==null?void 0:c.nodeId)===e&&(c==null?void 0:c.id)===t&&(c==null?void 0:c.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:f,clickConnecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.id)===t&&(o==null?void 0:o.type)===n,isPossibleEndHandle:i===vt.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!o,valid:f&&l}};function ug({type:e="source",position:t=ee.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:c,className:l,onMouseDown:f,onTouchStart:d,...u},h){var N,M;const g=s||null,w=e==="target",x=ue(),m=Ds(),{connectOnClick:_,noPanClassName:p,rfId:v}=ag(),{connectingFrom:C,connectingTo:S,clickConnecting:I,isPossibleEndHandle:P,connectionInProcess:$,clickConnectionInProcess:O,valid:D}=ae(lg(m,g,e),fe);m||(M=(N=x.getState()).onError)==null||M.call(N,"010",De.error010());const F=A=>{const{defaultEdgeOptions:T,onConnect:k,hasDefaultEdges:H}=x.getState(),V={...T,...A};if(H){const{edges:B,setEdges:G,onError:K}=x.getState();G(Fh(V,B,{onError:K}))}k==null||k(V),a==null||a(V)},L=A=>{if(!m)return;const T=rs(A.nativeEvent);if(o&&(T&&A.button===0||!T)){const k=x.getState();Sr.onPointerDown(A.nativeEvent,{handleDomNode:A.currentTarget,autoPanOnConnect:k.autoPanOnConnect,connectionMode:k.connectionMode,connectionRadius:k.connectionRadius,domNode:k.domNode,nodeLookup:k.nodeLookup,lib:k.lib,isTarget:w,handleId:g,nodeId:m,flowId:k.rfId,panBy:k.panBy,cancelConnection:k.cancelConnection,onConnectStart:k.onConnectStart,onConnectEnd:(...H)=>{var V,B;return(B=(V=x.getState()).onConnectEnd)==null?void 0:B.call(V,...H)},updateConnection:k.updateConnection,onConnect:F,isValidConnection:n||((...H)=>{var V,B;return((B=(V=x.getState()).isValidConnection)==null?void 0:B.call(V,...H))??!0}),getTransform:()=>x.getState().transform,getFromHandle:()=>x.getState().connection.fromHandle,autoPanSpeed:k.autoPanSpeed,dragThreshold:k.connectionDragThreshold})}T?f==null||f(A):d==null||d(A)},y=A=>{const{onClickConnectStart:T,onClickConnectEnd:k,connectionClickStartHandle:H,connectionMode:V,isValidConnection:B,lib:G,rfId:K,nodeLookup:te,connection:oe}=x.getState();if(!m||!H&&!o)return;if(!H){T==null||T(A.nativeEvent,{nodeId:m,handleId:g,handleType:e}),x.setState({connectionClickStartHandle:{nodeId:m,type:e,id:g}});return}const Q=ts(A.target),j=n||B,{connection:X,isValid:ne}=Sr.isValid(A.nativeEvent,{handle:{nodeId:m,id:g,type:e},connectionMode:V,fromNodeId:H.nodeId,fromHandleId:H.id||null,fromType:H.type,isValidConnection:j,flowId:K,doc:Q,lib:G,nodeLookup:te});ne&&X&&F(X);const Z=structuredClone(oe);delete Z.inProgress,Z.toPosition=Z.toHandle?Z.toHandle.position:null,k==null||k(A,Z),x.setState({connectionClickStartHandle:null})};return b.jsx("div",{"data-handleid":g,"data-nodeid":m,"data-handlepos":t,"data-id":`${v}-${m}-${g}-${e}`,className:ye(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",p,l,{source:!w,target:w,connectable:r,connectablestart:o,connectableend:i,clickconnecting:I,connectingfrom:C,connectingto:S,valid:D,connectionindicator:r&&(!$||P)&&($||O?i:o)}]),onMouseDown:L,onTouchStart:L,onClick:_?y:void 0,ref:h,...u,children:c})}const Nt=E.memo(As(ug));function fg({data:e,isConnectable:t,sourcePosition:n=ee.Bottom}){return b.jsxs(b.Fragment,{children:[e==null?void 0:e.label,b.jsx(Nt,{type:"source",position:n,isConnectable:t})]})}function dg({data:e,isConnectable:t,targetPosition:n=ee.Top,sourcePosition:r=ee.Bottom}){return b.jsxs(b.Fragment,{children:[b.jsx(Nt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,b.jsx(Nt,{type:"source",position:r,isConnectable:t})]})}function hg(){return null}function gg({data:e,isConnectable:t,targetPosition:n=ee.Top}){return b.jsxs(b.Fragment,{children:[b.jsx(Nt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const In={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Go={input:fg,default:dg,output:gg,group:hg};function pg(e){var t,n,r,o;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((o=e.style)==null?void 0:o.height)}}const mg=e=>{const{width:t,height:n,x:r,y:o}=Ut(e.nodeLookup,{filter:i=>!!i.selected});return{width:Pe(t)?t:null,height:Pe(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${o}px)`}};function yg({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=ue(),{width:o,height:i,transformString:s,userSelectionActive:a}=ae(mg,fe),c=Ts(),l=E.useRef(null);E.useEffect(()=>{var h;n||(h=l.current)==null||h.focus({preventScroll:!0})},[n]);const f=!a&&o!==null&&i!==null;if(Ps({nodeRef:l,disabled:!f}),!f)return null;const d=e?h=>{const g=r.getState().nodes.filter(w=>w.selected);e(h,g)}:void 0,u=h=>{Object.prototype.hasOwnProperty.call(In,h.key)&&(h.preventDefault(),c({direction:In[h.key],factor:h.shiftKey?4:1}))};return b.jsx("div",{className:ye(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:b.jsx("div",{ref:l,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:u,style:{width:o,height:i}})})}const Ko=typeof window<"u"?window:void 0,xg=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function zs({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:f,selectionMode:d,onSelectionStart:u,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:w,zoomActivationKeyCode:x,elementsSelectable:m,zoomOnScroll:_,zoomOnPinch:p,panOnScroll:v,panOnScrollSpeed:C,panOnScrollMode:S,zoomOnDoubleClick:I,panOnDrag:P,autoPanOnSelection:$,defaultViewport:O,translateExtent:D,minZoom:F,maxZoom:L,preventScrolling:y,onSelectionContextMenu:N,noWheelClassName:M,noPanClassName:A,disableKeyboardA11y:T,onViewportChange:k,isControlledViewport:H}){const{nodesSelectionActive:V,userSelectionActive:B}=ae(xg,fe),G=qt(l,{target:Ko}),K=qt(w,{target:Ko}),te=K||P,oe=K||v,Q=f&&te!==!0,j=G||B||Q;return Kh({deleteKeyCode:c,multiSelectionKeyCode:g}),b.jsx(Qh,{onPaneContextMenu:i,elementsSelectable:m,zoomOnScroll:_,zoomOnPinch:p,panOnScroll:oe,panActivationKeyPressed:K,panOnScrollSpeed:C,panOnScrollMode:S,zoomOnDoubleClick:I,panOnDrag:!G&&te,defaultViewport:O,translateExtent:D,minZoom:F,maxZoom:L,zoomActivationKeyCode:x,preventScrolling:y,noWheelClassName:M,noPanClassName:A,onViewportChange:k,isControlledViewport:H,paneClickDistance:a,selectionOnDrag:Q,children:b.jsxs(ng,{onSelectionStart:u,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:te,autoPanOnSelection:$,isSelecting:!!j,selectionMode:d,selectionKeyPressed:G,paneClickDistance:a,selectionOnDrag:Q,children:[e,V&&b.jsx(yg,{onSelectionContextMenu:N,noPanClassName:A,disableKeyboardA11y:T})]})})}zs.displayName="FlowRenderer";const wg=E.memo(zs),vg=e=>t=>e?Dr(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function bg(e){return ae(E.useCallback(vg(e),[e]),fe)}const _g=e=>e.updateNodeInternals;function Eg(){const e=ae(_g),[t]=E.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const i=o.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:o.target,force:!0})}),e(r)}));return E.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function Sg({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const o=ue(),i=E.useRef(null),s=E.useRef(null),a=E.useRef(e.sourcePosition),c=E.useRef(e.targetPosition),l=E.useRef(t),f=n&&!!e.internals.handleBounds;return E.useEffect(()=>{i.current&&!e.hidden&&(!f||s.current!==i.current)&&(s.current&&(r==null||r.unobserve(s.current)),r==null||r.observe(i.current),s.current=i.current)},[f,e.hidden]),E.useEffect(()=>()=>{s.current&&(r==null||r.unobserve(s.current),s.current=null)},[]),E.useEffect(()=>{if(i.current){const d=l.current!==t,u=a.current!==e.sourcePosition,h=c.current!==e.targetPosition;(d||u||h)&&(l.current=t,a.current=e.sourcePosition,c.current=e.targetPosition,o.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function Ng({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:c,nodesConnectable:l,nodesFocusable:f,resizeObserver:d,noDragClassName:u,noPanClassName:h,disableKeyboardA11y:g,rfId:w,nodeTypes:x,nodeClickDistance:m,onError:_}){const{node:p,internals:v,isParent:C}=ae(j=>{const X=j.nodeLookup.get(e),ne=j.parentLookup.has(e);return{node:X,internals:X.internals,isParent:ne}},fe);let S=p.type||"default",I=(x==null?void 0:x[S])||Go[S];I===void 0&&(_==null||_("003",De.error003(S)),S="default",I=(x==null?void 0:x.default)||Go.default);const P=!!(p.draggable||a&&typeof p.draggable>"u"),$=!!(p.selectable||c&&typeof p.selectable>"u"),O=!!(p.connectable||l&&typeof p.connectable>"u"),D=!!(p.focusable||f&&typeof p.focusable>"u"),F=ue(),L=Ji(p),y=Sg({node:p,nodeType:S,hasDimensions:L,resizeObserver:d}),N=Ps({nodeRef:y,disabled:p.hidden||!P,noDragClassName:u,handleSelector:p.dragHandle,nodeId:e,isSelectable:$,nodeClickDistance:m}),M=Ts();if(p.hidden)return null;const A=ze(p),T=pg(p),k=$||P||t||n||r||o,H=n?j=>n(j,{...v.userNode}):void 0,V=r?j=>r(j,{...v.userNode}):void 0,B=o?j=>o(j,{...v.userNode}):void 0,G=i?j=>i(j,{...v.userNode}):void 0,K=s?j=>s(j,{...v.userNode}):void 0,te=j=>{const{selectNodesOnDrag:X,nodeDragThreshold:ne}=F.getState();$&&(!X||!P||ne>0)&&Nr({id:e,store:F,nodeRef:y}),t&&t(j,{...v.userNode})},oe=j=>{if(!(ns(j.nativeEvent)||g)){if(Oi.includes(j.key)&&$){const X=j.key==="Escape";Nr({id:e,store:F,unselect:X,nodeRef:y})}else if(P&&p.selected&&Object.prototype.hasOwnProperty.call(In,j.key)){j.preventDefault();const{ariaLabelConfig:X}=F.getState();F.setState({ariaLiveMessage:X["node.a11yDescription.ariaLiveMessage"]({direction:j.key.replace("Arrow","").toLowerCase(),x:~~v.positionAbsolute.x,y:~~v.positionAbsolute.y})}),M({direction:In[j.key],factor:j.shiftKey?4:1})}}},Q=()=>{var W;if(g||!((W=y.current)!=null&&W.matches(":focus-visible")))return;const{transform:j,width:X,height:ne,autoPanOnNodeFocus:Z,setCenter:J}=F.getState();if(!Z)return;Dr(new Map([[e,p]]),{x:0,y:0,width:X,height:ne},j,!0).length>0||J(p.position.x+A.width/2,p.position.y+A.height/2,{zoom:j[2]})};return b.jsx("div",{className:ye(["react-flow__node",`react-flow__node-${S}`,{[h]:P},p.className,{selected:p.selected,selectable:$,parent:C,draggable:P,dragging:N}]),ref:y,style:{zIndex:v.z,transform:`translate(${v.positionAbsolute.x}px,${v.positionAbsolute.y}px)`,pointerEvents:k?"all":"none",visibility:L?"visible":"hidden",...p.style,...T},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:V,onMouseLeave:B,onContextMenu:G,onClick:te,onDoubleClick:K,onKeyDown:D?oe:void 0,tabIndex:D?0:void 0,onFocus:D?Q:void 0,role:p.ariaRole??(D?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${Ns}-${w}`,"aria-label":p.ariaLabel,...p.domAttributes,children:b.jsx(og,{value:e,children:b.jsx(I,{id:e,data:p.data,type:S,positionAbsoluteX:v.positionAbsolute.x,positionAbsoluteY:v.positionAbsolute.y,selected:p.selected??!1,selectable:$,draggable:P,deletable:p.deletable??!0,isConnectable:O,sourcePosition:p.sourcePosition,targetPosition:p.targetPosition,dragging:N,dragHandle:p.dragHandle,zIndex:v.z,parentId:p.parentId,...A})})})}var Mg=E.memo(Ng);const Cg=e=>({nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Ls(e){const{nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,onError:o}=ae(Cg,fe),i=bg(e.onlyRenderVisibleElements),s=Eg();return b.jsx("div",{className:"react-flow__nodes",style:Yn,children:i.map(a=>b.jsx(Mg,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:s,nodesDraggable:e.nodesDraggable??!0,nodesConnectable:t,nodesFocusable:n,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:o},a))})}Ls.displayName="NodeRenderer";const kg=E.memo(Ls);function Ag(e){return ae(E.useCallback(n=>{if(!e)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const i=n.nodeLookup.get(o.source),s=n.nodeLookup.get(o.target);i&&s&&cd({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),fe)}const Ig=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return b.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},$g=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return b.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Zo={[Xt.Arrow]:Ig,[Xt.ArrowClosed]:$g};function Pg(e){const t=ue();return E.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(Zo,e)?Zo[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",De.error009(e)),null)},[e])}const Tg=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const c=Pg(t);return c?b.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:b.jsx(c,{color:n,strokeWidth:s})}):null},Hs=({defaultColor:e,rfId:t})=>{const n=ae(i=>i.edges),r=ae(i=>i.defaultEdgeOptions),o=E.useMemo(()=>md(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return o.length?b.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:b.jsx("defs",{children:o.map(i=>b.jsx(Tg,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};Hs.displayName="MarkerDefinitions";var Dg=E.memo(Hs);function js({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:c,className:l,...f}){const[d,u]=E.useState({x:1,y:0,width:0,height:0}),h=ye(["react-flow__edge-textwrapper",l]),g=E.useRef(null);return E.useEffect(()=>{if(g.current){const w=g.current.getBBox();u({x:w.x,y:w.y,width:w.width,height:w.height})}},[n]),n?b.jsxs("g",{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:h,visibility:d.width?"visible":"hidden",...f,children:[o&&b.jsx("rect",{width:d.width+2*s[0],x:-s[0],y:-s[1],height:d.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),b.jsx("text",{className:"react-flow__edge-text",y:d.height/2,dy:"0.3em",ref:g,style:r,children:n}),c]}):null}js.displayName="EdgeText";const Rg=E.memo(js);function Wn({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c,interactionWidth:l=20,...f}){return b.jsxs(b.Fragment,{children:[b.jsx("path",{...f,d:e,fill:"none",className:ye(["react-flow__edge-path",f.className])}),l?b.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:l,className:"react-flow__edge-interaction"}):null,r&&Pe(t)&&Pe(n)?b.jsx(Rg,{x:t,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c}):null]})}function Uo({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===ee.Left||e===ee.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function Vs({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:o,targetPosition:i=ee.Top}){const[s,a]=Uo({pos:n,x1:e,y1:t,x2:r,y2:o}),[c,l]=Uo({pos:i,x1:r,y1:o,x2:e,y2:t}),[f,d,u,h]=os({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:a,targetControlX:c,targetControlY:l});return[`M${e},${t} C${s},${a} ${c},${l} ${r},${o}`,f,d,u,h]}function Bs(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s,targetPosition:a,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:m})=>{const[_,p,v]=Vs({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a}),C=e.isInternal?void 0:t;return b.jsx(Wn,{id:C,path:_,labelX:p,labelY:v,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:m})})}const zg=Bs({isInternal:!1}),Fs=Bs({isInternal:!0});zg.displayName="SimpleBezierEdge";Fs.displayName="SimpleBezierEdgeInternal";function Os(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:u,sourcePosition:h=ee.Bottom,targetPosition:g=ee.Top,markerEnd:w,markerStart:x,pathOptions:m,interactionWidth:_})=>{const[p,v,C]=br({sourceX:n,sourceY:r,sourcePosition:h,targetX:o,targetY:i,targetPosition:g,borderRadius:m==null?void 0:m.borderRadius,offset:m==null?void 0:m.offset,stepPosition:m==null?void 0:m.stepPosition}),S=e.isInternal?void 0:t;return b.jsx(Wn,{id:S,path:p,labelX:v,labelY:C,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:u,markerEnd:w,markerStart:x,interactionWidth:_})})}const Xs=Os({isInternal:!1}),Ys=Os({isInternal:!0});Xs.displayName="SmoothStepEdge";Ys.displayName="SmoothStepEdgeInternal";function Ws(e){return E.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return b.jsx(Xs,{...n,id:r,pathOptions:E.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const Lg=Ws({isInternal:!1}),qs=Ws({isInternal:!0});Lg.displayName="StepEdge";qs.displayName="StepEdgeInternal";function Gs(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:u,markerEnd:h,markerStart:g,interactionWidth:w})=>{const[x,m,_]=as({sourceX:n,sourceY:r,targetX:o,targetY:i}),p=e.isInternal?void 0:t;return b.jsx(Wn,{id:p,path:x,labelX:m,labelY:_,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:d,style:u,markerEnd:h,markerStart:g,interactionWidth:w})})}const Hg=Gs({isInternal:!1}),Ks=Gs({isInternal:!0});Hg.displayName="StraightEdge";Ks.displayName="StraightEdgeInternal";function Zs(e){return E.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s=ee.Bottom,targetPosition:a=ee.Top,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,pathOptions:m,interactionWidth:_})=>{const[p,v,C]=is({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:a,curvature:m==null?void 0:m.curvature}),S=e.isInternal?void 0:t;return b.jsx(Wn,{id:S,path:p,labelX:v,labelY:C,label:c,labelStyle:l,labelShowBg:f,labelBgStyle:d,labelBgPadding:u,labelBgBorderRadius:h,style:g,markerEnd:w,markerStart:x,interactionWidth:_})})}const jg=Zs({isInternal:!1}),Us=Zs({isInternal:!0});jg.displayName="BezierEdge";Us.displayName="BezierEdgeInternal";const Qo={default:Us,straight:Ks,step:qs,smoothstep:Ys,simplebezier:Fs},Jo={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},Vg=(e,t,n)=>n===ee.Left?e-t:n===ee.Right?e+t:e,Bg=(e,t,n)=>n===ee.Top?e-t:n===ee.Bottom?e+t:e,ei="react-flow__edgeupdater";function ti({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:a}){return b.jsx("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:ye([ei,`${ei}-${a}`]),cx:Vg(t,r,e),cy:Bg(n,r,e),r,stroke:"transparent",fill:"transparent"})}function Fg({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:s,sourcePosition:a,targetPosition:c,onReconnect:l,onReconnectStart:f,onReconnectEnd:d,setReconnecting:u,setUpdateHover:h}){const g=ue(),w=(v,C)=>{if(v.button!==0)return;const{autoPanOnConnect:S,domNode:I,connectionMode:P,connectionRadius:$,lib:O,onConnectStart:D,cancelConnection:F,nodeLookup:L,rfId:y,panBy:N,updateConnection:M}=g.getState(),A=C.type==="target",T=(V,B)=>{u(!1),d==null||d(V,n,C.type,B)},k=V=>l==null?void 0:l(n,V),H=(V,B)=>{u(!0),f==null||f(v,n,C.type),D==null||D(V,B)};Sr.onPointerDown(v.nativeEvent,{autoPanOnConnect:S,connectionMode:P,connectionRadius:$,domNode:I,handleId:C.id,nodeId:C.nodeId,nodeLookup:L,isTarget:A,edgeUpdaterType:C.type,lib:O,flowId:y,cancelConnection:F,panBy:N,isValidConnection:(...V)=>{var B,G;return((G=(B=g.getState()).isValidConnection)==null?void 0:G.call(B,...V))??!0},onConnect:k,onConnectStart:H,onConnectEnd:(...V)=>{var B,G;return(G=(B=g.getState()).onConnectEnd)==null?void 0:G.call(B,...V)},onReconnectEnd:T,updateConnection:M,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:v.currentTarget})},x=v=>w(v,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),m=v=>w(v,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),_=()=>h(!0),p=()=>h(!1);return b.jsxs(b.Fragment,{children:[(e===!0||e==="source")&&b.jsx(ti,{position:a,centerX:r,centerY:o,radius:t,onMouseDown:x,onMouseEnter:_,onMouseOut:p,type:"source"}),(e===!0||e==="target")&&b.jsx(ti,{position:c,centerX:i,centerY:s,radius:t,onMouseDown:m,onMouseEnter:_,onMouseOut:p,type:"target"})]})}function Og({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,reconnectRadius:f,onReconnect:d,onReconnectStart:u,onReconnectEnd:h,rfId:g,edgeTypes:w,noPanClassName:x,onError:m,disableKeyboardA11y:_}){let p=ae(J=>J.edgeLookup.get(e));const v=ae(J=>J.defaultEdgeOptions);p=v?{...v,...p}:p;let C=p.type||"default",S=(w==null?void 0:w[C])||Qo[C];S===void 0&&(m==null||m("011",De.error011(C)),C="default",S=(w==null?void 0:w.default)||Qo.default);const I=!!(p.focusable||t&&typeof p.focusable>"u"),P=typeof d<"u"&&(p.reconnectable||n&&typeof p.reconnectable>"u"),$=!!(p.selectable||r&&typeof p.selectable>"u"),O=E.useRef(null),[D,F]=E.useState(!1),[L,y]=E.useState(!1),N=ue(),{zIndex:M=p.zIndex,sourceX:A,sourceY:T,targetX:k,targetY:H,sourcePosition:V,targetPosition:B}=ae(E.useCallback(J=>{const U=J.nodeLookup.get(p.source),W=J.nodeLookup.get(p.target);if(!U||!W)return Jo;const ie=pd({id:e,sourceNode:U,targetNode:W,sourceHandle:p.sourceHandle||null,targetHandle:p.targetHandle||null,connectionMode:J.connectionMode,onError:m}),se=ad({selected:p.selected,zIndex:p.zIndex,sourceNode:U,targetNode:W,elevateOnSelect:J.elevateEdgesOnSelect,zIndexMode:J.zIndexMode});return{...ie||Jo,zIndex:se}},[p.source,p.target,p.sourceHandle,p.targetHandle,p.selected,p.zIndex,m]),fe),G=E.useMemo(()=>p.markerStart?`url('#${_r(p.markerStart,g)}')`:void 0,[p.markerStart,g]),K=E.useMemo(()=>p.markerEnd?`url('#${_r(p.markerEnd,g)}')`:void 0,[p.markerEnd,g]);if(p.hidden||A===null||T===null||k===null||H===null)return null;const te=J=>{var se;const{addSelectedEdges:U,unselectNodesAndEdges:W,multiSelectionActive:ie}=N.getState();$&&(N.setState({nodesSelectionActive:!1}),p.selected&&ie?(W({nodes:[],edges:[p]}),(se=O.current)==null||se.blur()):U([e])),o&&o(J,p)},oe=i?J=>{i(J,{...p})}:void 0,Q=s?J=>{s(J,{...p})}:void 0,j=a?J=>{a(J,{...p})}:void 0,X=c?J=>{c(J,{...p})}:void 0,ne=l?J=>{l(J,{...p})}:void 0,Z=J=>{var U;if(!_&&Oi.includes(J.key)&&$){const{unselectNodesAndEdges:W,addSelectedEdges:ie}=N.getState();J.key==="Escape"?((U=O.current)==null||U.blur(),W({edges:[p]})):ie([e])}};return b.jsx("svg",{style:{zIndex:M},children:b.jsxs("g",{className:ye(["react-flow__edge",`react-flow__edge-${C}`,p.className,x,{selected:p.selected,animated:p.animated,inactive:!$&&!o,updating:D,selectable:$}]),onClick:te,onDoubleClick:oe,onContextMenu:Q,onMouseEnter:j,onMouseMove:X,onMouseLeave:ne,onKeyDown:I?Z:void 0,tabIndex:I?0:void 0,role:p.ariaRole??(I?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":p.ariaLabel===null?void 0:p.ariaLabel||`Edge from ${p.source} to ${p.target}`,"aria-describedby":I?`${Ms}-${g}`:void 0,ref:O,...p.domAttributes,children:[!L&&b.jsx(S,{id:e,source:p.source,target:p.target,type:p.type,selected:p.selected,animated:p.animated,selectable:$,deletable:p.deletable??!0,label:p.label,labelStyle:p.labelStyle,labelShowBg:p.labelShowBg,labelBgStyle:p.labelBgStyle,labelBgPadding:p.labelBgPadding,labelBgBorderRadius:p.labelBgBorderRadius,sourceX:A,sourceY:T,targetX:k,targetY:H,sourcePosition:V,targetPosition:B,data:p.data,style:p.style,sourceHandleId:p.sourceHandle,targetHandleId:p.targetHandle,markerStart:G,markerEnd:K,pathOptions:"pathOptions"in p?p.pathOptions:void 0,interactionWidth:p.interactionWidth}),P&&b.jsx(Fg,{edge:p,isReconnectable:P,reconnectRadius:f,onReconnect:d,onReconnectStart:u,onReconnectEnd:h,sourceX:A,sourceY:T,targetX:k,targetY:H,sourcePosition:V,targetPosition:B,setUpdateHover:F,setReconnecting:y})]})})}var Xg=E.memo(Og);const Yg=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Qs({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:f,reconnectRadius:d,onEdgeDoubleClick:u,onReconnectStart:h,onReconnectEnd:g,disableKeyboardA11y:w}){const{edgesFocusable:x,edgesReconnectable:m,elementsSelectable:_,onError:p}=ae(Yg,fe),v=Ag(t);return b.jsxs("div",{className:"react-flow__edges",children:[b.jsx(Dg,{defaultColor:e,rfId:n}),v.map(C=>b.jsx(Xg,{id:C,edgesFocusable:x,edgesReconnectable:m,elementsSelectable:_,noPanClassName:o,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,onClick:f,reconnectRadius:d,onDoubleClick:u,onReconnectStart:h,onReconnectEnd:g,rfId:n,onError:p,edgeTypes:r,disableKeyboardA11y:w},C))]})}Qs.displayName="EdgeRenderer";const Wg=E.memo(Qs),ni=e=>`translate(${e[0]}px,${e[1]}px) scale(${e[2]})`;function qg({children:e}){const t=ue(),n=E.useRef(null),[r]=E.useState(()=>t.getState().transform);return Is(()=>{let o=null;const i=()=>{const s=t.getState().transform;o&&s[0]===o[0]&&s[1]===o[1]&&s[2]===o[2]||(o=s,n.current&&(n.current.style.transform=ni(s)))};return i(),t.subscribe(i)},[t]),b.jsx("div",{ref:n,className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:ni(r)},children:e})}function Gg(e){const t=Xn(),n=E.useRef(!1);E.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Kg=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function Zg(e){const t=ae(Kg),n=ue();return E.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Ug(e){return e.connection.inProgress?{...e.connection,to:Jt(e.connection.to,e.transform)}:{...e.connection}}function Qg(e){return Ug}function Jg(e){const t=Qg();return ae(t,fe)}const ep=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function tp({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:i,height:s,isValid:a,inProgress:c}=ae(ep,fe);return!(i&&o&&c)?null:b.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:b.jsx("g",{className:ye(["react-flow__connection",Wi(a)]),children:b.jsx(Js,{style:t,type:n,CustomComponent:r,isValid:a})})})}const Js=({style:e,type:t=Qe.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:i,fromNode:s,fromHandle:a,fromPosition:c,to:l,toNode:f,toHandle:d,toPosition:u,pointer:h}=Jg();if(!o)return;if(n)return b.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:u,connectionStatus:Wi(r),toNode:f,toHandle:d,pointer:h});let g="";const w={sourceX:i.x,sourceY:i.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:u};switch(t){case Qe.Bezier:[g]=is(w);break;case Qe.SimpleBezier:[g]=Vs(w);break;case Qe.Step:[g]=br({...w,borderRadius:0});break;case Qe.SmoothStep:[g]=br(w);break;default:[g]=as(w)}return b.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};Js.displayName="ConnectionLine";const np={};function ri(e=np){E.useRef(e),ue(),E.useEffect(()=>{},[e])}function rp(){ue(),E.useRef(!1),E.useEffect(()=>{},[])}function ea({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:f,onSelectionContextMenu:d,onSelectionStart:u,onSelectionEnd:h,connectionLineType:g,connectionLineStyle:w,connectionLineComponent:x,connectionLineContainerStyle:m,selectionKeyCode:_,selectionOnDrag:p,selectionMode:v,multiSelectionKeyCode:C,panActivationKeyCode:S,zoomActivationKeyCode:I,deleteKeyCode:P,onlyRenderVisibleElements:$,elementsSelectable:O,defaultViewport:D,translateExtent:F,minZoom:L,maxZoom:y,preventScrolling:N,defaultMarkerColor:M,zoomOnScroll:A,zoomOnPinch:T,panOnScroll:k,panOnScrollSpeed:H,panOnScrollMode:V,zoomOnDoubleClick:B,panOnDrag:G,autoPanOnSelection:K,onPaneClick:te,onPaneMouseEnter:oe,onPaneMouseMove:Q,onPaneMouseLeave:j,onPaneScroll:X,onPaneContextMenu:ne,paneClickDistance:Z,nodeClickDistance:J,onEdgeContextMenu:U,onEdgeMouseEnter:W,onEdgeMouseMove:ie,onEdgeMouseLeave:se,reconnectRadius:ce,onReconnect:me,onReconnectStart:ve,onReconnectEnd:be,noDragClassName:Ce,noWheelClassName:Le,noPanClassName:xe,disableKeyboardA11y:He,nodeExtent:_e,rfId:Ee,viewport:ke,onViewportChange:Ae,nodesDraggable:ut}){return ri(e),ri(t),rp(),Gg(n),Zg(ke),b.jsx(wg,{onPaneClick:te,onPaneMouseEnter:oe,onPaneMouseMove:Q,onPaneMouseLeave:j,onPaneContextMenu:ne,onPaneScroll:X,paneClickDistance:Z,deleteKeyCode:P,selectionKeyCode:_,selectionOnDrag:p,selectionMode:v,onSelectionStart:u,onSelectionEnd:h,multiSelectionKeyCode:C,panActivationKeyCode:S,zoomActivationKeyCode:I,elementsSelectable:O,zoomOnScroll:A,zoomOnPinch:T,zoomOnDoubleClick:B,panOnScroll:k,panOnScrollSpeed:H,panOnScrollMode:V,panOnDrag:G,autoPanOnSelection:K,defaultViewport:D,translateExtent:F,minZoom:L,maxZoom:y,onSelectionContextMenu:d,preventScrolling:N,noDragClassName:Ce,noWheelClassName:Le,noPanClassName:xe,disableKeyboardA11y:He,onViewportChange:Ae,isControlledViewport:!!ke,children:b.jsxs(qg,{children:[b.jsx(Wg,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:s,onReconnect:me,onReconnectStart:ve,onReconnectEnd:be,onlyRenderVisibleElements:$,onEdgeContextMenu:U,onEdgeMouseEnter:W,onEdgeMouseMove:ie,onEdgeMouseLeave:se,reconnectRadius:ce,defaultMarkerColor:M,noPanClassName:xe,disableKeyboardA11y:He,rfId:Ee}),b.jsx(tp,{style:w,type:g,component:x,containerStyle:m}),b.jsx("div",{className:"react-flow__edgelabel-renderer"}),b.jsx(kg,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:f,nodeClickDistance:J,onlyRenderVisibleElements:$,noPanClassName:xe,noDragClassName:Ce,disableKeyboardA11y:He,nodeExtent:_e,rfId:Ee,nodesDraggable:ut}),b.jsx("div",{className:"react-flow__viewport-portal"})]})})}ea.displayName="GraphView";const op=E.memo(ea),ip=Qi(),oi=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c=.5,maxZoom:l=2,nodeOrigin:f,nodeExtent:d,zIndexMode:u="basic"}={})=>{const h=new Map,g=new Map,w=new Map,x=new Map,m=r??t??[],_=n??e??[],p=f??[0,0],v=d??Ft;us(w,x,m);const{nodesInitialized:C}=Er(_,h,g,{nodeOrigin:p,nodeExtent:v,zIndexMode:u});let S=[0,0,1];if(s&&o&&i){const I=Ut(h,{filter:D=>!!((D.width||D.initialWidth)&&(D.height||D.initialHeight))}),{x:P,y:$,zoom:O}=zr(I,o,i,c,l,(a==null?void 0:a.padding)??.1);S=[P,$,O]}return{rfId:"1",width:o??0,height:i??0,transform:S,nodes:_,nodesInitialized:C,nodeLookup:h,parentLookup:g,edges:m,edgeLookup:x,connectionLookup:w,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Ft,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:vt.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:p,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Yi},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ip,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Xi,zIndexMode:u,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},sp=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:f,nodeExtent:d,zIndexMode:u})=>xh((h,g)=>{async function w(){const{nodeLookup:x,panZoom:m,fitViewOptions:_,fitViewResolver:p,width:v,height:C,minZoom:S,maxZoom:I}=g();m&&(await ed({nodes:x,width:v,height:C,panZoom:m,minZoom:S,maxZoom:I},_),p==null||p.resolve(!0),h({fitViewResolver:null}))}return{...oi({nodes:e,edges:t,width:o,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:f,nodeExtent:d,defaultNodes:n,defaultEdges:r,zIndexMode:u}),setNodes:x=>{const{nodeLookup:m,parentLookup:_,nodeOrigin:p,nodeExtent:v,elevateNodesOnSelect:C,fitViewQueued:S,zIndexMode:I,nodesSelectionActive:P}=g(),{nodesInitialized:$,hasSelectedNodes:O}=Er(x,m,_,{nodeOrigin:p,nodeExtent:v,elevateNodesOnSelect:C,checkEquality:!0,zIndexMode:I}),D=P&&O;S&&$?(w(),h({nodes:x,nodesInitialized:$,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:D})):h({nodes:x,nodesInitialized:$,nodesSelectionActive:D})},setEdges:x=>{const{connectionLookup:m,edgeLookup:_}=g();us(m,_,x),h({edges:x})},setDefaultNodesAndEdges:(x,m)=>{if(x){const{setNodes:_}=g();_(x),h({hasDefaultNodes:!0})}if(m){const{setEdges:_}=g();_(m),h({hasDefaultEdges:!0})}},updateNodeInternals:x=>{const{triggerNodeChanges:m,nodeLookup:_,parentLookup:p,domNode:v,nodeOrigin:C,nodeExtent:S,debug:I,fitViewQueued:P,zIndexMode:$}=g(),{changes:O,updatedInternals:D}=Ed(x,_,p,v,C,S,$);D&&(wd(_,p,{nodeOrigin:C,nodeExtent:S,zIndexMode:$}),P?(w(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(O==null?void 0:O.length)>0&&(I&&console.log("React Flow: trigger node changes",O),m==null||m(O)))},updateNodePositions:(x,m=!1)=>{const _=[];let p=[];const{nodeLookup:v,triggerNodeChanges:C,connection:S,updateConnection:I,onNodesChangeMiddlewareMap:P}=g();for(const[$,O]of x){const D=v.get($),F=!!(D!=null&&D.expandParent&&(D!=null&&D.parentId)&&(O!=null&&O.position)),L={id:$,type:"position",position:F?{x:Math.max(0,O.position.x),y:Math.max(0,O.position.y)}:O.position,dragging:m};if(D&&S.inProgress&&S.fromNode.id===D.id){const y=lt(D,S.fromHandle,ee.Left,!0);I({...S,from:y})}F&&D.parentId&&_.push({id:$,parentId:D.parentId,rect:{...O.internals.positionAbsolute,width:O.measured.width??0,height:O.measured.height??0}}),p.push(L)}if(_.length>0){const{parentLookup:$,nodeOrigin:O}=g(),D=Fr(_,v,$,O);p.push(...D)}for(const $ of P.values())p=$(p);C(p)},triggerNodeChanges:x=>{const{onNodesChange:m,setNodes:_,nodes:p,hasDefaultNodes:v,debug:C}=g();if(x!=null&&x.length){if(v){const S=jh(x,p);_(S)}C&&console.log("React Flow: trigger node changes",x),m==null||m(x)}},triggerEdgeChanges:x=>{const{onEdgesChange:m,setEdges:_,edges:p,hasDefaultEdges:v,debug:C}=g();if(x!=null&&x.length){if(v){const S=Vh(x,p);_(S)}C&&console.log("React Flow: trigger edge changes",x),m==null||m(x)}},addSelectedNodes:x=>{const{multiSelectionActive:m,edgeLookup:_,nodeLookup:p,triggerNodeChanges:v,triggerEdgeChanges:C}=g();if(m){const S=x.map(I=>tt(I,!0));v(S);return}v(pt(p,new Set([...x]),!0)),C(pt(_))},addSelectedEdges:x=>{const{multiSelectionActive:m,edgeLookup:_,nodeLookup:p,triggerNodeChanges:v,triggerEdgeChanges:C}=g();if(m){const S=x.map(I=>tt(I,!0));C(S);return}C(pt(_,new Set([...x]))),v(pt(p,new Set,!0))},unselectNodesAndEdges:({nodes:x,edges:m}={})=>{const{edges:_,nodes:p,nodeLookup:v,triggerNodeChanges:C,triggerEdgeChanges:S}=g(),I=x||p,P=m||_,$=[];for(const D of I){if(!D.selected)continue;const F=v.get(D.id);F&&(F.selected=!1),$.push(tt(D.id,!1))}const O=[];for(const D of P)D.selected&&O.push(tt(D.id,!1));C($),S(O)},setMinZoom:x=>{const{panZoom:m,maxZoom:_}=g();m==null||m.setScaleExtent([x,_]),h({minZoom:x})},setMaxZoom:x=>{const{panZoom:m,minZoom:_}=g();m==null||m.setScaleExtent([_,x]),h({maxZoom:x})},setTranslateExtent:x=>{var m;(m=g().panZoom)==null||m.setTranslateExtent(x),h({translateExtent:x})},resetSelectedElements:()=>{const{edges:x,nodes:m,triggerNodeChanges:_,triggerEdgeChanges:p,elementsSelectable:v}=g();if(!v)return;const C=m.reduce((I,P)=>P.selected?[...I,tt(P.id,!1)]:I,[]),S=x.reduce((I,P)=>P.selected?[...I,tt(P.id,!1)]:I,[]);_(C),p(S)},setNodeExtent:x=>{const{nodes:m,nodeLookup:_,parentLookup:p,nodeOrigin:v,elevateNodesOnSelect:C,nodeExtent:S,zIndexMode:I}=g();x[0][0]===S[0][0]&&x[0][1]===S[0][1]&&x[1][0]===S[1][0]&&x[1][1]===S[1][1]||(Er(m,_,p,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:C,checkEquality:!1,zIndexMode:I}),h({nodeExtent:x}))},panBy:x=>{const{transform:m,width:_,height:p,panZoom:v,translateExtent:C}=g();return Sd({delta:x,panZoom:v,transform:m,translateExtent:C,width:_,height:p})},setCenter:async(x,m,_)=>{const{width:p,height:v,maxZoom:C,panZoom:S}=g();if(!S)return!1;const I=typeof(_==null?void 0:_.zoom)<"u"?_.zoom:C;return await S.setViewport({x:p/2-x*I,y:v/2-m*I,zoom:I},{duration:_==null?void 0:_.duration,ease:_==null?void 0:_.ease,interpolate:_==null?void 0:_.interpolate}),!0},cancelConnection:()=>{h({connection:{...Yi}})},updateConnection:x=>{h({connection:x})},reset:()=>h({...oi()})}},Object.is);function ta({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:c,fitView:l,nodeOrigin:f,nodeExtent:d,zIndexMode:u,children:h}){const[g]=E.useState(()=>sp({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:l,minZoom:s,maxZoom:a,fitViewOptions:c,nodeOrigin:f,nodeExtent:d,zIndexMode:u}));return b.jsx(wh,{value:g,children:b.jsx(Yh,{children:b.jsx(sg,{children:h})})})}function ap({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:s,fitView:a,fitViewOptions:c,minZoom:l,maxZoom:f,nodeOrigin:d,nodeExtent:u,zIndexMode:h}){return E.useContext(Fn)?b.jsx(b.Fragment,{children:e}):b.jsx(ta,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:f,nodeOrigin:d,nodeExtent:u,zIndexMode:h,children:e})}const cp={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function lp({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:c,onInit:l,onMove:f,onMoveStart:d,onMoveEnd:u,onConnect:h,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:m,onNodeMouseEnter:_,onNodeMouseMove:p,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:S,onNodeDragStart:I,onNodeDrag:P,onNodeDragStop:$,onNodesDelete:O,onEdgesDelete:D,onDelete:F,onSelectionChange:L,onSelectionDragStart:y,onSelectionDrag:N,onSelectionDragStop:M,onSelectionContextMenu:A,onSelectionStart:T,onSelectionEnd:k,onBeforeDelete:H,connectionMode:V,connectionLineType:B=Qe.Bezier,connectionLineStyle:G,connectionLineComponent:K,connectionLineContainerStyle:te,deleteKeyCode:oe="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:j=!1,selectionMode:X=Ot.Full,panActivationKeyCode:ne="Space",multiSelectionKeyCode:Z=Wt()?"Meta":"Control",zoomActivationKeyCode:J=Wt()?"Meta":"Control",snapToGrid:U,snapGrid:W,onlyRenderVisibleElements:ie=!1,selectNodesOnDrag:se,nodesDraggable:ce,autoPanOnNodeFocus:me,nodesConnectable:ve,nodesFocusable:be,nodeOrigin:Ce=Cs,edgesFocusable:Le,edgesReconnectable:xe,elementsSelectable:He=!0,defaultViewport:_e=Ph,minZoom:Ee=.5,maxZoom:ke=2,translateExtent:Ae=Ft,preventScrolling:ut=!0,nodeExtent:qe,defaultMarkerColor:en="#b1b1b7",zoomOnScroll:tn=!0,zoomOnPinch:qn=!0,panOnScroll:Gn=!1,panOnScrollSpeed:Mt=.5,panOnScrollMode:nn=ot.Free,zoomOnDoubleClick:je=!0,panOnDrag:ft=!0,onPaneClick:Ct,onPaneMouseEnter:kt,onPaneMouseMove:rn,onPaneMouseLeave:At,onPaneScroll:dt,onPaneContextMenu:on,paneClickDistance:Kn=1,nodeClickDistance:Zn=0,children:Un,onReconnect:R,onReconnectStart:Y,onReconnectEnd:q,onEdgeContextMenu:re,onEdgeDoubleClick:de,onEdgeMouseEnter:he,onEdgeMouseMove:z,onEdgeMouseLeave:le,reconnectRadius:Ve=10,onNodesChange:Ge,onEdgesChange:ht,noDragClassName:ge="nodrag",noWheelClassName:Se="nowheel",noPanClassName:et="nopan",fitView:Xr,fitViewOptions:Yr,connectOnClick:ca,attributionPosition:la,proOptions:ua,defaultEdgeOptions:fa,elevateNodesOnSelect:da=!0,elevateEdgesOnSelect:ha=!1,disableKeyboardA11y:Wr=!1,autoPanOnConnect:ga,autoPanOnNodeDrag:pa,autoPanOnSelection:ma=!0,autoPanSpeed:ya,connectionRadius:xa,isValidConnection:wa,onError:va,style:ba,id:qr,nodeDragThreshold:_a,connectionDragThreshold:Ea,viewport:Sa,onViewportChange:Na,width:Ma,height:Ca,colorMode:ka="light",debug:Aa,onScroll:sn,ariaLabelConfig:Ia,zIndexMode:Gr="basic",...$a},Pa){const Qn=qr||"1",Ta=zh(ka),Da=E.useCallback(Kr=>{Kr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),sn==null||sn(Kr)},[sn]);return b.jsx("div",{"data-testid":"rf__wrapper",...$a,onScroll:Da,style:{...ba,...cp},ref:Pa,className:ye(["react-flow",o,Ta]),id:qr,role:"application",children:b.jsxs(ap,{nodes:e,edges:t,width:Ma,height:Ca,fitView:Xr,fitViewOptions:Yr,minZoom:Ee,maxZoom:ke,nodeOrigin:Ce,nodeExtent:qe,zIndexMode:Gr,children:[b.jsx(Rh,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:w,onClickConnectStart:x,onClickConnectEnd:m,nodesDraggable:ce,autoPanOnNodeFocus:me,nodesConnectable:ve,nodesFocusable:be,edgesFocusable:Le,edgesReconnectable:xe,elementsSelectable:He,elevateNodesOnSelect:da,elevateEdgesOnSelect:ha,minZoom:Ee,maxZoom:ke,nodeExtent:qe,onNodesChange:Ge,onEdgesChange:ht,snapToGrid:U,snapGrid:W,connectionMode:V,translateExtent:Ae,connectOnClick:ca,defaultEdgeOptions:fa,fitView:Xr,fitViewOptions:Yr,onNodesDelete:O,onEdgesDelete:D,onDelete:F,onNodeDragStart:I,onNodeDrag:P,onNodeDragStop:$,onSelectionDrag:N,onSelectionDragStart:y,onSelectionDragStop:M,onMove:f,onMoveStart:d,onMoveEnd:u,noPanClassName:et,nodeOrigin:Ce,rfId:Qn,autoPanOnConnect:ga,autoPanOnNodeDrag:pa,autoPanSpeed:ya,onError:va,connectionRadius:xa,isValidConnection:wa,selectNodesOnDrag:se,nodeDragThreshold:_a,connectionDragThreshold:Ea,onBeforeDelete:H,debug:Aa,ariaLabelConfig:Ia,zIndexMode:Gr}),b.jsx(op,{onInit:l,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:_,onNodeMouseMove:p,onNodeMouseLeave:v,onNodeContextMenu:C,onNodeDoubleClick:S,nodeTypes:i,edgeTypes:s,connectionLineType:B,connectionLineStyle:G,connectionLineComponent:K,connectionLineContainerStyle:te,selectionKeyCode:Q,selectionOnDrag:j,selectionMode:X,deleteKeyCode:oe,multiSelectionKeyCode:Z,panActivationKeyCode:ne,zoomActivationKeyCode:J,onlyRenderVisibleElements:ie,defaultViewport:_e,translateExtent:Ae,minZoom:Ee,maxZoom:ke,preventScrolling:ut,zoomOnScroll:tn,zoomOnPinch:qn,zoomOnDoubleClick:je,panOnScroll:Gn,panOnScrollSpeed:Mt,panOnScrollMode:nn,panOnDrag:ft,autoPanOnSelection:ma,onPaneClick:Ct,onPaneMouseEnter:kt,onPaneMouseMove:rn,onPaneMouseLeave:At,onPaneScroll:dt,onPaneContextMenu:on,paneClickDistance:Kn,nodeClickDistance:Zn,onSelectionContextMenu:A,onSelectionStart:T,onSelectionEnd:k,onReconnect:R,onReconnectStart:Y,onReconnectEnd:q,onEdgeContextMenu:re,onEdgeDoubleClick:de,onEdgeMouseEnter:he,onEdgeMouseMove:z,onEdgeMouseLeave:le,reconnectRadius:Ve,defaultMarkerColor:en,noDragClassName:ge,noWheelClassName:Se,noPanClassName:et,rfId:Qn,disableKeyboardA11y:Wr,nodeExtent:qe,viewport:Sa,onViewportChange:Na,nodesDraggable:ce}),b.jsx($h,{onSelectionChange:L}),Un,b.jsx(Mh,{proOptions:ua,position:la}),b.jsx(Nh,{rfId:Qn,disableKeyboardA11y:Wr})]})})}var up=As(lp);function fp({dimensions:e,lineWidth:t,variant:n,className:r}){return b.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ye(["react-flow__background-pattern",n,r])})}function dp({radius:e,className:t}){return b.jsx("circle",{cx:e,cy:e,r:e,className:ye(["react-flow__background-pattern","dots",t])})}var Je;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Je||(Je={}));const hp={[Je.Dots]:1,[Je.Lines]:1,[Je.Cross]:6},gp=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function na({id:e,variant:t=Je.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:s,bgColor:a,style:c,className:l,patternClassName:f}){const d=E.useRef(null),{transform:u,patternId:h}=ae(gp,fe),g=r||hp[t],w=t===Je.Dots,x=t===Je.Cross,m=Array.isArray(n)?n:[n,n],_=[m[0]*u[2]||1,m[1]*u[2]||1],p=g*u[2],v=Array.isArray(i)?i:[i,i],C=x?[p,p]:_,S=[v[0]*u[2]+C[0]/2,v[1]*u[2]+C[1]/2],I=`${h}${e||""}`;return b.jsxs("svg",{className:ye(["react-flow__background",l]),style:{...c,...Yn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:d,"data-testid":"rf__background",children:[b.jsx("pattern",{id:I,x:u[0]%_[0],y:u[1]%_[1],width:_[0],height:_[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:w?b.jsx(dp,{radius:p/2,className:f}):b.jsx(fp,{dimensions:C,lineWidth:o,variant:t,className:f})}),b.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${I})`})]})}na.displayName="Background";E.memo(na);function pp(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:b.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function mp(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:b.jsx("path",{d:"M0 0h32v4.2H0z"})})}function yp(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:b.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function xp(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:b.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function wp(){return b.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:b.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function pn({children:e,className:t,...n}){return b.jsx("button",{type:"button",className:ye(["react-flow__controls-button",t]),...n,children:e})}const vp=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ra({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:c,className:l,children:f,position:d="bottom-left",orientation:u="vertical","aria-label":h}){const g=ue(),{isInteractive:w,minZoomReached:x,maxZoomReached:m,ariaLabelConfig:_}=ae(vp,fe),{zoomIn:p,zoomOut:v,fitView:C}=Xn(),S=()=>{p(),i==null||i()},I=()=>{v(),s==null||s()},P=()=>{C(o),a==null||a()},$=()=>{g.setState({nodesDraggable:!w,nodesConnectable:!w,elementsSelectable:!w}),c==null||c(!w)},O=u==="horizontal"?"horizontal":"vertical";return b.jsxs(On,{className:ye(["react-flow__controls",O,l]),position:d,style:e,"data-testid":"rf__controls","aria-label":h??_["controls.ariaLabel"],children:[t&&b.jsxs(b.Fragment,{children:[b.jsx(pn,{onClick:S,className:"react-flow__controls-zoomin",title:_["controls.zoomIn.ariaLabel"],"aria-label":_["controls.zoomIn.ariaLabel"],disabled:m,children:b.jsx(pp,{})}),b.jsx(pn,{onClick:I,className:"react-flow__controls-zoomout",title:_["controls.zoomOut.ariaLabel"],"aria-label":_["controls.zoomOut.ariaLabel"],disabled:x,children:b.jsx(mp,{})})]}),n&&b.jsx(pn,{className:"react-flow__controls-fitview",onClick:P,title:_["controls.fitView.ariaLabel"],"aria-label":_["controls.fitView.ariaLabel"],children:b.jsx(yp,{})}),r&&b.jsx(pn,{className:"react-flow__controls-interactive",onClick:$,title:_["controls.interactive.ariaLabel"],"aria-label":_["controls.interactive.ariaLabel"],children:w?b.jsx(wp,{}):b.jsx(xp,{})}),f]})}ra.displayName="Controls";E.memo(ra);function bp({id:e,x:t,y:n,width:r,height:o,style:i,color:s,strokeColor:a,strokeWidth:c,className:l,borderRadius:f,shapeRendering:d,selected:u,onClick:h}){const{background:g,backgroundColor:w}=i||{},x=s||g||w;return b.jsx("rect",{className:ye(["react-flow__minimap-node",{selected:u},l]),x:t,y:n,rx:f,ry:f,width:r,height:o,style:{fill:x,stroke:a,strokeWidth:c},shapeRendering:d,onClick:h?m=>h(m,e):void 0})}const _p=E.memo(bp),Ep=e=>e.nodes.map(t=>t.id),ur=e=>e instanceof Function?e:()=>e;function Sp({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=_p,onClick:s}){const a=ae(Ep,fe),c=ur(t),l=ur(e),f=ur(n),d=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return b.jsx(b.Fragment,{children:a.map(u=>b.jsx(Mp,{id:u,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:f,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:s,shapeRendering:d},u))})}function Np({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:c}){const{node:l,x:f,y:d,width:u,height:h}=ae(g=>{const w=g.nodeLookup.get(e);if(!w)return{node:void 0,x:0,y:0,width:0,height:0};const x=w.internals.userNode,{x:m,y:_}=w.internals.positionAbsolute,{width:p,height:v}=ze(x);return{node:x,x:m,y:_,width:p,height:v}},fe);return!l||l.hidden||!Ji(l)?null:b.jsx(a,{x:f,y:d,width:u,height:h,style:l.style,selected:!!l.selected,className:r(l),color:t(l),borderRadius:o,strokeColor:n(l),strokeWidth:i,shapeRendering:s,onClick:c,id:l.id})}const Mp=E.memo(Np);var Cp=E.memo(Sp);const kp=200,Ap=150,Ip=e=>!e.hidden,$p=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Zi(Ut(e.nodeLookup,{filter:Ip}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},ii=(e,t)=>e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height,Pp=(e,t)=>ii(e.viewBB,t.viewBB)&&ii(e.boundingRect,t.boundingRect)&&e.rfId===t.rfId&&e.panZoom===t.panZoom&&e.translateExtent===t.translateExtent&&e.flowWidth===t.flowWidth&&e.flowHeight===t.flowHeight&&e.ariaLabelConfig===t.ariaLabelConfig,Tp="react-flow__minimap-desc";function oa({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:c,maskColor:l,maskStrokeColor:f,maskStrokeWidth:d,position:u="bottom-right",onClick:h,onNodeClick:g,pannable:w=!1,zoomable:x=!1,ariaLabel:m,inversePan:_,zoomStep:p=1,offsetScale:v=5}){const C=ue(),S=E.useRef(null),{boundingRect:I,viewBB:P,rfId:$,panZoom:O,translateExtent:D,flowWidth:F,flowHeight:L,ariaLabelConfig:y}=ae($p,Pp),N=(e==null?void 0:e.width)??kp,M=(e==null?void 0:e.height)??Ap,A=I.width/N,T=I.height/M,k=Math.max(A,T),H=k*N,V=k*M,B=v*k,G=I.x-(H-I.width)/2-B,K=I.y-(V-I.height)/2-B,te=H+B*2,oe=V+B*2,Q=`${Tp}-${$}`,j=E.useRef(0),X=E.useRef();j.current=k,E.useEffect(()=>{if(S.current&&O)return X.current=Td({domNode:S.current,panZoom:O,getTransform:()=>C.getState().transform,getViewScale:()=>j.current}),()=>{var U;(U=X.current)==null||U.destroy()}},[O]),E.useEffect(()=>{var U;(U=X.current)==null||U.update({translateExtent:D,width:F,height:L,inversePan:_,pannable:w,zoomStep:p,zoomable:x})},[w,x,_,p,D,F,L]);const ne=h?U=>{var se;const[W,ie]=((se=X.current)==null?void 0:se.pointer(U))||[0,0];h(U,{x:W,y:ie})}:void 0,Z=g?E.useCallback((U,W)=>{const ie=C.getState().nodeLookup.get(W).internals.userNode;g(U,ie)},[]):void 0,J=m??y["minimap.ariaLabel"];return b.jsx(On,{position:u,style:{...e,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof f=="string"?f:void 0,"--xy-minimap-mask-stroke-width-props":typeof d=="number"?d*k:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:ye(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:b.jsxs("svg",{width:N,height:M,viewBox:`${G} ${K} ${te} ${oe}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Q,ref:S,onClick:ne,children:[J&&b.jsx("title",{id:Q,children:J}),b.jsx(Cp,{onClick:Z,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:s,nodeComponent:a}),b.jsx("path",{className:"react-flow__minimap-mask",d:`M${G-B},${K-B}h${te+B*2}v${oe+B*2}h${-te-B*2}z
|
|
24
|
+
M${P.x},${P.y}h${P.width}v${P.height}h${-P.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}oa.displayName="MiniMap";E.memo(oa);const Dp=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Rp={[Et.Line]:"right",[Et.Handle]:"bottom-right"};function zp({nodeId:e,position:t,variant:n=Et.Handle,className:r,style:o=void 0,children:i,color:s,minWidth:a=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:f=Number.MAX_VALUE,keepAspectRatio:d=!1,resizeDirection:u,autoScale:h=!0,shouldResize:g,onResizeStart:w,onResize:x,onResizeEnd:m}){const _=Ds(),p=typeof e=="string"?e:_,v=ue(),C=E.useRef(null),S=n===Et.Handle,I=ae(E.useCallback(Dp(S&&h),[S,h]),fe),P=E.useRef(null),$=t??Rp[n];E.useEffect(()=>{if(!(!C.current||!p))return P.current||(P.current=Wd({domNode:C.current,nodeId:p,getStoreItems:()=>{const{nodeLookup:D,transform:F,snapGrid:L,snapToGrid:y,nodeOrigin:N,domNode:M}=v.getState();return{nodeLookup:D,transform:F,snapGrid:L,snapToGrid:y,nodeOrigin:N,paneDomNode:M}},onChange:(D,F)=>{const{triggerNodeChanges:L,nodeLookup:y,parentLookup:N,nodeOrigin:M}=v.getState(),A=[],T={x:D.x,y:D.y},k=y.get(p);if(k&&k.expandParent&&k.parentId){const H=k.origin??M,V=D.width??k.measured.width??0,B=D.height??k.measured.height??0,G={id:k.id,parentId:k.parentId,rect:{width:V,height:B,...es({x:D.x??k.position.x,y:D.y??k.position.y},{width:V,height:B},k.parentId,y,H)}},K=Fr([G],y,N,M);A.push(...K),T.x=D.x?Math.max(H[0]*V,D.x):void 0,T.y=D.y?Math.max(H[1]*B,D.y):void 0}if(T.x!==void 0&&T.y!==void 0){const H={id:p,type:"position",position:{...T}};A.push(H)}if(D.width!==void 0&&D.height!==void 0){const V={id:p,type:"dimensions",resizing:!0,setAttributes:u?u==="horizontal"?"width":"height":!0,dimensions:{width:D.width,height:D.height}};A.push(V)}for(const H of F){const V={...H,type:"position"};A.push(V)}L(A)},onEnd:({width:D,height:F})=>{const L={id:p,type:"dimensions",resizing:!1,dimensions:{width:D,height:F}};v.getState().triggerNodeChanges([L])}})),P.current.update({controlPosition:$,boundaries:{minWidth:a,minHeight:c,maxWidth:l,maxHeight:f},keepAspectRatio:d,resizeDirection:u,onResizeStart:w,onResize:x,onResizeEnd:m,shouldResize:g}),()=>{var D;(D=P.current)==null||D.destroy()}},[$,a,c,l,f,d,w,x,m,g]);const O=$.split("-");return b.jsx("div",{className:ye(["react-flow__resize-control","nodrag",...O,n,r]),ref:C,style:{...o,scale:I,...s&&{[S?"backgroundColor":"borderColor"]:s}},children:i})}E.memo(zp);function Lp(e,t){if(!e)return null;const n=Date.parse(e);if(Number.isNaN(n))return null;const r=Math.max(0,(Date.now()-n)/1e3);if(r<45)return t("time.justNow");const o=r/60,i=o/60,s=i/24;return o<45?t("time.minutes",{n:Math.round(o)}):i<22?t("time.hours",{n:Math.round(i)}):s<7?t("time.days",{n:Math.round(s)}):t("time.weeks",{n:Math.round(s/7)})}const Hp=4,si={isConnectable:!1,isConnectableStart:!1,isConnectableEnd:!1,style:{pointerEvents:"none"},"aria-hidden":!0};function jp({data:e}){const t=$n(),n=[...new Map((e.editors||[]).map(i=>[i.id,i])).values()];if(n.length===0)return null;const r=n.slice(0,Hp),o=n.length-r.length;return b.jsxs("span",{className:"node-editors","data-tip":t("specNode.liveEditors",{n:n.length}),children:[r.map(i=>b.jsx(Ua,{seed:i.id,status:i.status,title:t("specNode.editorTitle",{node:i.node||t("common.session"),status:t(`status.${i.status}`),id:i.id.slice(0,8)})},i.id)),o>0&&b.jsxs("span",{className:"av-more","data-tip":t("specNode.more",{n:o}),children:["+",o]})]})}function Vp({summary:e,t}){return e!=null&&e.open?b.jsxs("span",{className:"issue-badge","data-tip":t("specNode.openIssues",{n:e.open}),children:["◆",e.open]}):null}function Bp({data:e,selected:t}){var d,u;const n=$n(),r=Zr[e.status]||Zr.pending,o=Lp(e.lastEdited,n),i=e.overlays||[],s=i[0],a=i.some(h=>h.op==="deleted"),c=s&&!s.committed,l=[...new Set(i.map(h=>h.op))],f=["spec-node",e.status,t?"focused":"",e.ghost?"ghost":"",a?"deleted":"",i.length?"has-overlay":"",c?"ov-dirty":""].filter(Boolean).join(" ");return b.jsxs("div",{className:f,style:s?{"--ov":fr(s.seed)}:void 0,children:[b.jsx(Nt,{type:"target",position:ee.Left,...si}),b.jsxs("div",{className:"node-row1",children:[b.jsx("span",{className:"node-dot",style:{background:r.color},children:e.status==="active"&&b.jsx("span",{className:"pulse",style:{background:r.color}})}),b.jsx("span",{className:"node-title",title:e.graphTitle||e.title,children:Ga(e.graphTitle||e.title)}),l.length>0?b.jsx("span",{className:"ov-marks","data-tip":i.map(h=>n("specNode.opTitle",{op:n(`legend.opRows.${h.op}`),label:h.label,uncommitted:!h.committed})).join(`
|
|
25
|
+
`),children:l.map(h=>b.jsx("span",{className:`ov-mark ov-${h}`,children:Ka[h]},h))}):o?b.jsx("span",{className:"node-ago",children:o}):null]}),b.jsxs("div",{className:"node-row2",children:[b.jsx("span",{className:"node-ver",children:e.version?`v${e.version}`:""}),e.drift>0&&b.jsxs("span",{className:"drift-badge","data-tip":(e.driftFiles||[]).map(h=>`${h.file}: ${n("specNode.driftAhead",{n:h.behind})}`).join(`
|
|
26
|
+
`),children:["⚠",e.drift]}),b.jsx(Vp,{summary:(d=e.reviewSummary)==null?void 0:d.issues,t:n}),b.jsx(Za,{summary:(u=e.reviewSummary)==null?void 0:u.evals}),b.jsx(jp,{data:e})]}),e.collapsed&&b.jsxs("span",{className:"node-expand","data-tip":n("specNode.expandable",{n:e.childCount}),children:["▸",e.childCount]}),b.jsx(Nt,{type:"source",position:ee.Right,...si})]})}function Fp({menu:e,onClose:t,onInfo:n,onFresh:r,onNewChild:o,onDelete:i,sessions:s=[],onOpenSession:a}){const c=$n(),[l,f]=E.useState(null);if(E.useEffect(()=>{if(e)return window.addEventListener("click",t),window.addEventListener("contextmenu",t,!0),()=>{window.removeEventListener("click",t),window.removeEventListener("contextmenu",t,!0)}},[e,t]),di(!!e,t),E.useEffect(()=>{f(null)},[e]),E.useEffect(()=>{if(!l)return;const g=setTimeout(t,900);return()=>clearTimeout(g)},[l,t]),!e)return null;const d=g=>w=>{w.stopPropagation(),t(),g(e.id)},u=g=>{t(),a==null||a(g)},h=async g=>{g.stopPropagation(),f(await ec(tc(e.id))?"copied":"failed")};return b.jsxs(Qa,{x:e.x,y:e.y,anchorKey:e.id,label:c("nodeMenu.menuLabel"),children:[b.jsxs(er,{children:[b.jsx(It,{icon:"info",onClick:d(n),children:c("nodeMenu.info")}),b.jsx(It,{icon:"copy",onClick:h,children:c(l?`nodeMenu.${l}`:"nodeMenu.copyUrl")}),b.jsx(It,{icon:"sessions",onClick:d(r),children:c("nodeMenu.newSession")}),b.jsx(It,{icon:"plus",onClick:d(o),children:c("nodeMenu.newChild")})]}),b.jsx(Ur,{}),b.jsx(er,{children:b.jsx(It,{icon:"trash",danger:!0,onClick:d(i),children:c("nodeMenu.del")})}),s.length>0&&b.jsxs(b.Fragment,{children:[b.jsx(Ur,{}),b.jsx(er,{children:b.jsx(Ja,{sessions:s,value:"",onChange:u,filter:s.length>4,compact:!0,className:"sess-menu-picker",ariaLabel:c("nodeMenu.overlaySessions")})})]})]})}const Op=e=>(e==null?void 0:e.slice(0,12))||"";function Xp(){var l,f;const[e,t]=E.useState(!1),[n,r]=E.useState(null),[o,i]=E.useState(null);E.useEffect(()=>{if(!e||n||o)return;let d=!0;return La().then(u=>{d&&r(u)}).catch(u=>{d&&i(u)}),()=>{d=!1}},[e,n,o]),di(e,()=>t(!1));const s=n==null?void 0:n.about,a=n==null?void 0:n.publication,c=(l=n==null?void 0:n.release)==null?void 0:l.archive;return Ha({id:"public-about",side:"right",priority:10,node:b.jsxs("span",{className:"public-about-shell",children:[b.jsxs("button",{type:"button",className:"public-about-trigger",onClick:()=>t(d=>!d),"aria-label":"About this public graph","aria-expanded":e,"aria-controls":"public-graph-about",title:"About this public graph",children:[b.jsx(Jn,{name:"info",size:16}),b.jsx("span",{children:"About"})]}),e&&b.jsxs("aside",{id:"public-graph-about",className:"public-about","aria-label":"About this public graph",children:[b.jsxs("header",{className:"public-about-head",children:[b.jsxs("div",{children:[b.jsx("p",{className:"public-about-kicker",children:"Read-only Spec Graph"}),b.jsx("h2",{children:(s==null?void 0:s.title)||"About"})]}),b.jsx(ja,{icon:"x",size:14,className:"public-about-close",label:"Close about panel",onClick:()=>t(!1)})]}),!n&&!o&&b.jsx("p",{className:"public-about-status",children:"Loading release information..."}),o&&b.jsxs("p",{className:"public-about-status public-about-error",children:["Release information is unavailable: ",o.message]}),n&&b.jsxs(b.Fragment,{children:[b.jsx("p",{className:"public-about-summary",children:s.summary}),b.jsxs("dl",{className:"public-about-facts",children:[s.facts.map(d=>b.jsxs("div",{children:[b.jsx("dt",{children:d.label}),b.jsx("dd",{children:d.value})]},d.label)),b.jsxs("div",{children:[b.jsx("dt",{children:"Revision"}),b.jsx("dd",{children:b.jsx("code",{children:Op(n.release.revision)})})]})]}),b.jsxs("div",{className:"public-about-actions",children:[((f=a.repository)==null?void 0:f.url)&&b.jsxs("a",{className:"public-about-link",href:a.repository.url,target:"_blank",rel:"noopener noreferrer",children:[b.jsx(Jn,{name:"globe",size:14})," Repository"]}),b.jsxs("a",{className:"public-about-link primary",href:`./${c.path}`,download:c.name,children:[b.jsx(Jn,{name:"download",size:14})," Download .spec"]})]})]})]})]})}),null}function Yp(){let e=0,t=null,n=null,r=null;return function(i,s){if(!i)return;const a=r!=null&&Math.abs(i.scrollTop-r)>1;(i!==n||a)&&(n=i,t=null,r=null);const c=i.scrollHeight-i.clientHeight,l=t??i.scrollTop;t=Math.max(0,Math.min(c,l+s)),cancelAnimationFrame(e);const f=()=>{if(r!=null&&Math.abs(i.scrollTop-r)>1){cancelAnimationFrame(e),t=null,r=null;return}const d=t-i.scrollTop;if(Math.abs(d)<.5){i.scrollTop=t,r=i.scrollTop;return}i.scrollTop+=d*.2,r=i.scrollTop,e=requestAnimationFrame(f)};e=requestAnimationFrame(f)}}function Wp(e){return e>1}function qp(e){return{next:Qr((e("graph.cycle")||[])[0]||"o"),prev:Qr((e("graph.cycleRev")||[])[0]||"O")}}E.lazy(()=>Pn(()=>import("./tabs-BSpGhf1t.js").then(e=>e.bQ),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url));E.lazy(()=>Pn(()=>import("./EvalsPage-DnIhSuCK.js"),__vite__mapDeps([6,1,2,7,0,3,4,5]),import.meta.url));E.lazy(()=>Pn(()=>import("./IssuesPage-gbqBOftY.js"),__vite__mapDeps([8,1,2,0,3,4,5,9,7,10]),import.meta.url));E.lazy(()=>Pn(()=>import("./Settings-d9DTofmL.js"),__vite__mapDeps([11,1,2,3,0,4,5]),import.meta.url));const Gp={spec:Bp},Kp=[.5,.5],ai=Xa,Zp=[{type:"target",position:ee.Left,x:-1.5,y:22.5,width:5,height:5},{type:"source",position:ee.Right,x:172.5,y:22.5,width:5,height:5}],ci=e=>Math.max(ui,Math.min(li,e)),ia=fi("graph.newChild").join(""),sa=fi("graph.del").join(""),Rt={[ia]:e=>`Create a new spec node under [[${e}]] — choose a kebab-case id, write its spec.md at contract altitude with a code: list, implement it, then propose merge. What it should be: `,[sa]:e=>`Delete the [[${e}]] spec node — remove its dir, repoint or fold its governed code, fix any [[…]] refs, recover its intent from git history, then propose merge. Why: `},aa=Object.keys(Rt),Up=new Set(aa.map(e=>e[0]));function Qp({param:e,query:t,page:n="graph"}){const{specs:r,sessions:o,boardLive:i,identity:s,graphOnly:a}=ac(),{reload:c}=cc(),{openPalette:l,setCompose:f,lockGraphTo:d,toggleHelp:u}=lc(),{helpOpen:h}=Jr(),g=Va(),{lockedSource:w}=Jr();s!=null&&s.title;const x=n,m=x==="graph"||x==="spec";E.useEffect(()=>{},[a,x]);const[_,p]=E.useState(()=>{var Y;let R=null;try{R=sessionStorage.getItem("spex.focus")}catch{}return(R&&r.some(q=>q.id===R)?R:null)||((Y=r.find(q=>!q.parent))==null?void 0:Y.id)});E.useEffect(()=>{try{_&&sessionStorage.setItem("spex.focus",_)}catch{}},[_]);const[v,C]=E.useState(!1),[S,I]=E.useState("spec"),P=f,[$,O]=E.useState(null),{getViewport:D,setViewport:F}=Xn(),L=$n(),y=E.useRef(null),N=E.useRef(0),M=E.useRef(null),A=E.useRef(null),T=E.useRef(.85),k=E.useRef({buf:"",timer:0}),[H,V]=E.useState(!1),B=E.useRef(!1);B.current=H;const G=E.useRef({x:-1,y:-1}),K=E.useMemo(()=>Yp(),[]),te=E.useMemo(()=>Object.fromEntries(r.map(R=>[R.id,R])),[r]),oe=E.useRef(null);E.useLayoutEffect(()=>{!m||oe.current===e||(oe.current=e,e&&te[e]&&p(e))},[m,x,e,te]);const Q=E.useCallback(R=>{R&&p(R)},[]),j=te[_]||r.find(R=>!R.parent)||r[0],X=E.useMemo(()=>Ba(r,j==null?void 0:j.id),[r,j]),ne=E.useMemo(()=>Fa(r,X),[r,X]),Z=E.useMemo(()=>r.filter(R=>ne[R.id]).map(R=>({...R,...ne[R.id]})),[r,ne]),J=E.useMemo(()=>Oa(r),[r]),U=E.useMemo(()=>Object.fromEntries(Z.map(R=>[R.id,R])),[Z]),W=U[j.id],ie=E.useMemo(()=>{const R={};return r.forEach(Y=>{Y.parent&&(R[Y.parent]=(R[Y.parent]||0)+1)}),R},[r]),se=E.useMemo(()=>r.filter(R=>{var Y;return(Y=R.overlays)==null?void 0:Y.length}),[r]),ce=E.useMemo(()=>w?o.find(R=>R.source===w):null,[o,w]),me=E.useMemo(()=>w?r.filter(R=>(R.overlays||[]).some(Y=>Y.source===w)):[],[r,w]),ve=E.useMemo(()=>w?me:se,[w,me,se]),be=qp(sc),Ce=E.useCallback(R=>R?o.filter(Y=>{var q;return(q=Y.ops)==null?void 0:q.some(re=>re.nodeId===R.id)}):[],[o]),Le=E.useCallback(R=>g.open({page:"sessions",param:R,query:null}),[g]),xe=E.useCallback(R=>{P(R),g.open({page:"sessions",param:"new",query:{seed:R}})},[g,P]),He=E.useCallback(R=>(R==null?void 0:R.kind)==="session"?Le(R.sessionId):g.open(nc(R)),[Le,g]),_e=E.useMemo(()=>{var q;if(!$)return[];const R=r.find(re=>re.id===$.id);return(q=R==null?void 0:R.overlays)!=null&&q.length?[...new Set(R.overlays.map(re=>re.source))].map(re=>o.find(de=>de.source===re)).filter(Boolean):[]},[$,r,o]);E.useCallback(R=>{He(R.address)},[He]);const Ee=E.useMemo(()=>Z.filter(R=>R.parent===W.id),[Z,W]),ke=W.parent?U[W.parent]:null,Ae=E.useMemo(()=>Ee.length?Ee.reduce((R,Y)=>Math.abs(Y.y-W.y)<Math.abs(R.y-W.y)?Y:R):null,[Ee,W]),ut=E.useMemo(()=>{if(Ae)return Ae;let R=null,Y=1/0;for(const q of Z){const re=q.x-W.x;if(re<=0)continue;const de=q.y-W.y,he=(re/Wa)**2+(de/qa)**2;he<Y&&(Y=he,R=q)}return R},[Ae,Z,W]),qe=E.useCallback(R=>{let Y=null;for(const q of Z){if(q.id===W.id||q.x!==W.x)continue;const re=q.y-W.y;(R==="down"?re<=0:re>=0)||(!Y||Math.abs(re)<Math.abs(Y.y-W.y))&&(Y=q)}return Y},[Z,W]),en=E.useMemo(()=>qe("down"),[qe]),tn=E.useMemo(()=>qe("up"),[qe]),qn=E.useMemo(()=>Z.map(R=>{const Y=R.id===_||R.id===W.parent||R.parent===_||R.parent===W.parent;let q;w&&me.length?q=(R.overlays||[]).some(le=>le.source===w)?"ov-hot":"ov-dim":q=Y?void 0:"is-far";const de=Ce(R).map(le=>({id:le.id,status:le.status,node:le.node})),he=ie[R.id]||0,z={editors:de,collapsed:he>0&&!X.has(R.id),childCount:he};return{id:R.id,type:"spec",position:{x:R.x,y:R.y},data:{...R,graphTitle:J.get(R.id)||R.title,...z},initialWidth:ai.width,initialHeight:ai.height,handles:Zp,draggable:!1,selected:R.id===_,className:q}}),[_,W.parent,J,w,me,Z,Ce,ie,X]),Gn=E.useMemo(()=>{const R=Z.filter(q=>q.parent).map(q=>{const re=q.id===_||q.parent===_;return{id:`${q.parent}-${q.id}`,source:q.parent,target:q.id,type:"smoothstep",style:{stroke:re?"var(--blue)":"var(--line)",strokeWidth:re?2:1},zIndex:re?1:0}}),Y=[];for(const q of Z){const re=(q.overlays||[]).find(he=>he.op==="moved"&&he.toParent&&U[he.toParent]);if(!re)continue;const de=fr(re.seed);Y.push({id:`move-${q.id}-${re.toParent}`,source:q.id,target:re.toParent,type:"smoothstep",animated:!0,zIndex:2,className:"move-edge",style:{stroke:de,strokeWidth:1.5,strokeDasharray:"4 4",opacity:.6},markerEnd:{type:Xt.ArrowClosed,color:de,width:14,height:14}})}return[...R,...Y]},[_,Z,U]),Mt=E.useCallback(R=>{M.current={...R},F(R)},[F]),nn=E.useCallback((R,Y)=>{if(!Y){cancelAnimationFrame(N.current),Mt(R);return}const q=D(),re=performance.now();cancelAnimationFrame(N.current);const de=he=>{const z=Y?Math.min(1,(he-re)/Y):1,le=1-Math.pow(1-z,3);Mt({x:q.x+(R.x-q.x)*le,y:q.y+(R.y-q.y)*le,zoom:q.zoom+(R.zoom-q.zoom)*le}),z<1&&(N.current=requestAnimationFrame(de))};N.current=requestAnimationFrame(de)},[D,Mt]),je=E.useCallback((R,Y,q=300,re=Y==null)=>{const de=y.current;if(!de)return;const he=D().zoom,z=Y==null&&A.current!=null&&Math.abs(he-A.current)<.01,le=Y??(z?T.current:he),Ve=Z.filter(Se=>Se.parent===R.id),Ge=Ve.length?Ve.reduce((Se,et)=>Math.abs(et.y-R.y)<Math.abs(Se.y-R.y)?et:Se):null,ht=R.parent?U[R.parent]:null,ge=Ya({focus:R,parent:ht,child:Ge,visible:Z,width:de.clientWidth,height:de.clientHeight,zoom:le,fit:re});re&&Y==null?Math.abs(ge.zoom-le)>.001?(A.current=ge.zoom,T.current=le):(A.current=null,T.current=ge.zoom):Y!=null&&(A.current=null,T.current=ge.zoom),nn(ge,q)},[nn,U,D,Z]),ft=E.useRef(W);ft.current=W;const Ct=E.useRef(je);Ct.current=je;const kt=E.useRef(!1);E.useEffect(()=>{if(kt.current||!m)return;let R=0;const Y=()=>{const q=y.current;if(!(q!=null&&q.clientWidth)||!q.clientHeight){R=requestAnimationFrame(Y);return}kt.current=!0,je(W,void 0,0)};return R=requestAnimationFrame(Y),()=>cancelAnimationFrame(R)},[je,W,m,x]),E.useEffect(()=>{if(!m||!y.current||typeof ResizeObserver>"u")return;const R=y.current;let Y={width:0,height:0},q=0;const re=new ResizeObserver(([de])=>{const he=Math.round(de.contentRect.width),z=Math.round(de.contentRect.height);!he||!z||he===Y.width&&z===Y.height||(Y={width:he,height:z},cancelAnimationFrame(q),q=requestAnimationFrame(()=>{kt.current&&Ct.current(ft.current,void 0,0)}))});return re.observe(R),()=>{cancelAnimationFrame(q),re.disconnect()}},[m,x]);const rn=E.useRef(!1),At=E.useRef(null);E.useEffect(()=>{if(!m)return;if(!rn.current){rn.current=!0,At.current=_;return}if(At.current===_)return;At.current=_;const R=window.setTimeout(()=>Ct.current(ft.current,void 0,300,!1),50);return()=>clearTimeout(R)},[_,m,x]);const dt=v,on=E.useRef(dt);E.useEffect(()=>{on.current&&!dt&&pc(),on.current=dt},[dt]),uc(R=>{const Y=fc(W,a).map(z=>z.key),q=z=>I(le=>{const Ve=Y.indexOf(le);return Y[((Ve<0?0:Ve)+z+Y.length)%Y.length]}),re=(z,le)=>z?(le.preventDefault(),le.stopPropagation(),V(!0),Q(z.id),!0):!1,de=z=>K(document.querySelector(".ov-body .pane-doc, .ov-body .pane-hist, .ov-body .pane-issues, .ov-body .pane-eval, .ov-body .pane-edit"),z);return(z=>{var le,Ve,Ge,ht;if(h){if(z.key==="Escape"||pe("graph.help",z.key))return z.preventDefault(),z.stopPropagation(),u(),!0;if(z.key==="j"||z.key==="k"||z.key==="ArrowDown"||z.key==="ArrowUp"){z.preventDefault(),z.stopPropagation();const ge=document.querySelector(".legend-body");return ge&&(ge.scrollTop+=z.key==="j"||z.key==="ArrowDown"?120:-120),!0}return!0}if(z.metaKey||z.ctrlKey||z.altKey||(z.key==="Enter"||z.key===" ")&&((Ve=(le=z.target)==null?void 0:le.closest)!=null&&Ve.call(le,"button, a[href], input, select, textarea, summary"))||x==="sessions"||x==="evals"||x==="issues")return!1;if(x==="settings")return pe("graph.settings",z.key)?(z.preventDefault(),z.stopPropagation(),g.open({page:"graph",param:null,query:null}),!0):!1;if(v){const ge=z.key==="Escape"?null:(ht=(Ge=z.target)==null?void 0:Ge.closest)==null?void 0:ht.call(Ge,'input, textarea, select, [role="menu"], [role="menuitemradio"], [aria-haspopup="menu"]');if(ge!=null&&ge.closest("[data-focus-overlay]"))return!1;if(z.key==="Escape")return z.preventDefault(),C(!1),!0;if(z.shiftKey){if(pe("nav.up",z.key))return re(tn,z);if(pe("nav.down",z.key))return re(en,z);if(pe("nav.parent",z.key))return re(ke,z);if(pe("nav.child",z.key))return re(ut,z)}return z.key==="Tab"?(z.preventDefault(),z.stopPropagation(),q(z.shiftKey?-1:1),!0):z.key==="ArrowLeft"||z.key==="h"?(z.preventDefault(),z.stopPropagation(),q(-1),!0):z.key==="ArrowRight"||z.key==="l"?(z.preventDefault(),z.stopPropagation(),q(1),!0):/^[1-9]$/.test(z.key)&&+z.key<=Y.length?(z.preventDefault(),z.stopPropagation(),I(Y[+z.key-1]),!0):((z.key==="j"||z.key==="k"||z.key==="ArrowDown"||z.key==="ArrowUp")&&(z.preventDefault(),z.stopPropagation(),de(z.key==="j"||z.key==="ArrowDown"?120:-120)),!0)}if(z.key==="Escape"&&w)return z.preventDefault(),z.stopPropagation(),d(null,{toggle:!1}),!0;if(!a&&pe("graph.settings",z.key))return z.preventDefault(),g.open({page:"settings",param:null,query:null}),!0;if(!a&&pe("graph.search",z.key))return z.preventDefault(),z.stopPropagation(),l("nodes"),!0;if(!a&&!z.metaKey&&!z.ctrlKey&&!z.altKey&&/^[a-zA-Z]$/.test(z.key)){const ge=k.current;if(ge.buf||Up.has(z.key)){clearTimeout(ge.timer);const Se=ge.buf+z.key;if(Rt[Se])return z.preventDefault(),z.stopPropagation(),k.current={buf:"",timer:0},xe(Rt[Se](W.id)),!0;if(aa.some(et=>et.startsWith(Se)))return z.preventDefault(),z.stopPropagation(),k.current={buf:Se,timer:setTimeout(()=>{k.current={buf:"",timer:0}},700)},!0;k.current={buf:"",timer:0}}}if(pe("nav.up",z.key))return re(tn,z);if(pe("nav.down",z.key))return re(en,z);if(pe("nav.parent",z.key))return re(ke,z);if(pe("nav.child",z.key))return re(ut,z);if(pe("graph.zoomIn",z.key))return z.preventDefault(),V(!0),je(W,ci(D().zoom*1.2),160),!0;if(pe("graph.zoomOut",z.key))return z.preventDefault(),V(!0),je(W,ci(D().zoom/1.2),160),!0;if(pe("graph.zoomReset",z.key))return z.preventDefault(),V(!0),je(W,.85,200),!0;if(pe("graph.info",z.key))return z.preventDefault(),C(!0),!0;if(pe("graph.cycle",z.key)||pe("graph.cycleRev",z.key)){if(z.preventDefault(),!ve.length)return!0;V(!0);const ge=hc(ve,W.id,pe("graph.cycleRev",z.key)?-1:1,Se=>Se.id);return ge&&Q(ge.id),!0}else{if(!a&&pe("graph.fresh",z.key))return z.preventDefault(),xe(`[[${W.id}]] `),!0;if(!a&&pe("graph.evals",z.key))return z.preventDefault(),g.open({page:"evals",param:null,query:null}),!0}return!1})(R)}),E.useEffect(()=>{const R=Y=>{const q=G.current,re=Y.clientX!==q.x||Y.clientY!==q.y;q.x=Y.clientX,q.y=Y.clientY,re&&B.current&&V(!1)};return window.addEventListener("mousemove",R,!0),()=>window.removeEventListener("mousemove",R,!0)},[]);const Kn=E.useCallback((R,Y)=>{Q(Y.id)},[Q]),Zn=E.useCallback((R,Y)=>{Q(Y.id),a?C(!0):g.open({page:"spec",param:Y.id,query:null})},[Q,a,g]),Un=E.useCallback((R,Y)=>{R.preventDefault(),Q(Y.id),O({x:R.clientX,y:R.clientY,id:Y.id})},[Q]);return b.jsx("div",{className:H?"graphview kbd-mode":"graphview",children:b.jsxs("div",{className:"graph",ref:y,children:[b.jsx(up,{nodes:qn,edges:Gn,nodeTypes:Gp,onNodeClick:Kn,onNodeDoubleClick:Zn,onNodeContextMenu:a?void 0:Un,panOnDrag:[1,2],onMoveEnd:(R,Y)=>{const q=M.current,re=!q||Math.abs(q.x-Y.x)>.001||Math.abs(q.y-Y.y)>.001||Math.abs(q.zoom-Y.zoom)>.001;M.current={...Y},R&&re&&(A.current=null,T.current=Y.zoom)},onInit:()=>je(W,void 0,0),nodeOrigin:Kp,zoomOnDoubleClick:!1,nodesDraggable:!1,nodesFocusable:!1,disableKeyboardA11y:!0,defaultViewport:{x:0,y:0,zoom:.85},minZoom:ui,maxZoom:li,proOptions:{hideAttribution:!0}}),b.jsx(gc,{specs:r,focusId:_,onJump:Q}),!a&&b.jsx(rc,{sessions:o,activeId:w,onPick:R=>d(R.source),onOpenSession:Le,onNew:()=>xe(`[[${W.id}]] `)}),a&&b.jsx(Xp,{}),!a&&b.jsx(Fp,{menu:$,onClose:()=>O(null),onInfo:()=>g.open({page:"spec",param:ft.current.id,query:null}),onFresh:R=>xe(`[[${R}]] `),onNewChild:R=>xe(Rt[ia](R)),onDelete:R=>xe(Rt[sa](R)),sessions:_e,onOpenSession:Le}),!a&&ce&&b.jsxs("div",{className:"lock-hint",style:{"--ov":fr(ce.id)},children:[b.jsxs("span",{className:"lock-hint-lead",children:[b.jsx(oc,{})," ",ic(ce)]}),me.length?b.jsx("span",{className:"lock-hint-body",children:Wp(me.length)?b.jsxs(b.Fragment,{children:[L("lockHint.cycleBefore"),b.jsx("kbd",{children:be.next}),L("lockHint.cycleNext"),b.jsx("span",{className:"lock-hint-sep",children:" / "}),b.jsx("kbd",{children:be.prev}),L("lockHint.cyclePrev"),L("lockHint.cycleAfter",{n:me.length})]}):L("lockHint.singleChanged")}):b.jsx("span",{className:"lock-hint-body",children:L("lockHint.empty")}),b.jsx("button",{className:"lock-hint-release",onClick:()=>d(null,{toggle:!1}),"data-tip":L("lockHint.releaseTitle"),children:L("lockHint.release")})]}),v&&b.jsx(dc,{node:W,pane:S,setPane:I,sessions:o,graphOnly:a,onClose:()=>C(!1)},W.id)]})})}function a0(e){return b.jsx(ta,{children:b.jsx(Qp,{...e})})}export{a0 as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{u as D,T as Q,i as X,r as b,af as Z,j as e,ag as W,ah as ee,ai as se,I as $,aj as le,ak as te}from"./index-r6NCWBwM.js";import{aK as ne,N as ie,aG as F,aE as I,aF as A,P as _,g as U,R as Y,aL as M,az as ae,aA as oe,aB as re,aC as ce,a2 as ue,aM as de,aN as fe,ah as O,aO as pe,aP as K,aQ as H,ag as me}from"./tabs-BSpGhf1t.js";import{b as q,c as z}from"./NodeView-B3WRY-q0.js";import{c as ve,R as be,O as xe,r as ge}from"./Thread-DIfN4RS4.js";import{l as je,V as P,r as R,S as V,Q as T,U as he,T as we}from"./App-5COraOZF.js";import"./Modal-B_Q59vv6.js";import"./ProseActions-DPypFjCH.js";const ye={},G="new",Ne=s=>s.status!=="open",Se=s=>{const c=Math.max(0,(Date.now()-new Date(s).getTime())/1e3);return Number.isFinite(c)?c<3600?`${Math.max(1,Math.floor(c/60))}m`:c<86400?`${Math.floor(c/3600)}h`:`${Math.floor(c/86400)}d`:""},Le=s=>{const c=String(s||"").split("#"),p=c.length>1?c.at(-1):c[0];return`#${p.length>16?`${p.slice(0,13)}…`:p}`},ke=["is","state","store","author","node","label","session"],C=(s,c,p,v=t=>t)=>{var t,i;return(((i=(t=s==null?void 0:s.facets)==null?void 0:t[c])==null?void 0:i.options)??[]).map(a=>({value:a.value,label:a.value===""?p:v(a.value)}))};function Ee({data:s,loading:c,error:p,query:v,onQueryText:t}){var o,h,r,k;const i=D();if(s&&!s.enabled)return e.jsx("div",{className:"fv-note",children:i("session.issuesOff")});const a=Array.isArray(s==null?void 0:s.items)?s.items:[],u=String(v.q??"").trim()||P,S=l=>t==null?void 0:t(l),d=(l,n)=>S(V(u,l,n)),f=(((h=(o=s==null?void 0:s.facets)==null?void 0:o.store)==null?void 0:h.options)??[]).map(l=>l.value).filter(Boolean),w=a,E=((r=s==null?void 0:s.counts)==null?void 0:r.open)||0,x=((k=s==null?void 0:s.counts)==null?void 0:k.closed)||0,m=T(u,"state"),j=w.map(l=>{var g,B;const n=l.status||"open";return{key:l.id,label:l.concern,href:R("issues",l.id),content:e.jsx(e.Fragment,{children:e.jsx(ae,{state:e.jsx(Y,{kind:"issue",state:n}),title:e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"rl-row-title-text",children:l.concern}),e.jsx(z,{labels:l.labels,onSelect:J=>d("label",J)})]}),meta:e.jsxs(e.Fragment,{children:[e.jsx("span",{"data-tip":l.id,children:Le(l.id)}),l.by&&e.jsx("span",{"data-tip":l.by,children:i("reviewList.openedBy",{by:ge(l.by)})}),l.created&&e.jsx("span",{children:i("reviewList.openedAt",{at:Se(l.created)})})]}),aside:e.jsxs(e.Fragment,{children:[(((g=l.replies)==null?void 0:g.length)??0)>0&&e.jsxs("span",{className:"rl-comments","data-tip":i("session.issuesReplies",{n:l.replies.length}),children:[e.jsx($,{name:"message-square",size:14}),l.replies.length]}),f.length>1&&e.jsx("span",{className:`rl-tag fv-store-${l.store==="local"?"local":"forge"}`,children:l.store}),((B=l.nodes)==null?void 0:B[0])&&e.jsx("a",{className:"rl-tag node",href:_(U(l.nodes[0])),children:l.nodes[0]})]})})})}}),L=e.jsxs("a",{className:"rl-new",href:R("issues",G),children:[e.jsx($,{name:"plus",size:14}),i("session.issuesNew")]}),y={label:i("reviewList.facetStore"),value:T(u,"store"),options:C(s,"store",i("reviewList.all"))},N={label:i("reviewList.facetSession"),value:T(u,"session"),options:C(s,"session",i("reviewList.all"),l=>i(l==="present"?"reviewList.sessionPresent":"reviewList.sessionMissing"))};return e.jsx(oe,{loading:c,error:p,title:i("reviewList.issuesTitle"),action:L,search:{value:String(v.q??"").trim()?v.q:P,onSubmit:S,placeholder:i("reviewList.searchIssues"),label:i("reviewList.search"),keys:ke,suggest:{author:C(s,"author",i("reviewList.all")).filter(l=>l.value),node:C(s,"node",i("reviewList.all")).filter(l=>l.value),label:C(s,"label",i("reviewList.all")).filter(l=>l.value)}},sections:[{key:"open",label:i("reviewList.open"),count:E,active:m===""||m==="open",onSelect:()=>d("state","open")},{key:"closed",label:i("reviewList.closed"),count:x,active:m!==""&&m!=="open",onSelect:()=>d("state","closed")}],facets:e.jsx(ce,{label:y.label,value:y.value,options:y.options,clearLabel:i("reviewList.all"),onChange:l=>d("store",l),mobile:!0}),secondaryFilters:e.jsx(re,{label:i("reviewList.filters"),clearLabel:i("reviewList.all"),groups:[{label:N.label,value:N.value,active:!!N.value,options:N.options,onChange:l=>d("session",l)}]}),rows:j,pagination:s?{page:s.page,pageCount:s.pageCount,prev:s.prev,next:s.next,hrefFor:l=>R("issues",null,he(u,P,l))}:null,empty:{hasData:((s==null?void 0:s.sourceTotal)??0)>0,dataset:i("session.issuesEmpty"),filtered:i("session.issuesNoMatch")}})}function Ie({issue:s,specs:c,sessions:p,onOpenSession:v,onWrite:t,onQueryText:i}){const a=D(),u=s.store==="local",S=Ne(s),[d,f]=b.useState(""),[w,E]=b.useState(""),x=Array.isArray(s.nodes)?s.nodes:[],m=Array.isArray(s.labels)?s.labels:[],j=Array.isArray(s.replies)?s.replies:[],L=s.status||"open",y=(o,h)=>async()=>{if(!d){f(o);try{const r=await h();r!=null&&r.ok?(E(""),await(t==null?void 0:t(""))):E((r==null?void 0:r.error)||`${o} failed`)}finally{f("")}}},N=(o,h,r,k)=>e.jsx("button",{type:"button",className:`fv-close-issue fv-life-${o}`,disabled:!!d,"data-tip":k,onMouseDown:l=>l.preventDefault(),onClick:y(o,r),children:d===o?a("session.issuesActing"):h});return e.jsxs(F,{title:s.concern,backHref:M("issues"),backLabel:a("detail.backToIssues"),status:e.jsx(Y,{kind:"issue",state:L,showLabel:!0,className:"ds-status-pill",size:16}),side:e.jsxs(e.Fragment,{children:[e.jsx(I,{label:a("detail.sideIssue"),children:e.jsx(A,{text:s.id,mono:!0})}),e.jsxs(I,{label:a("detail.sideStore"),children:[e.jsx(A,{text:s.store,className:`fv-store fv-store-${u?"local":"forge"}`}),s.url&&e.jsx(A,{text:a("session.issuesOpenOnStore",{store:Re(s.store)}),href:s.url,external:!0})]}),m.length>0&&e.jsx(I,{label:a("detail.sideLabels"),children:e.jsx(z,{labels:m,onSelect:o=>i==null?void 0:i(V(P,"label",o))})}),s.by&&e.jsx(I,{label:a("detail.sideOriginator"),children:u?e.jsx(xe,{originator:s.by,sessions:p,kind:"issue",onOpenSession:v}):e.jsx(A,{text:s.by,dim:!0})}),x.length>0&&e.jsx(I,{label:a("detail.sideNodes"),children:x.map(o=>e.jsx(A,{text:o,mono:!0,tip:a("session.issuesFocusNode"),href:_(U(o))},o))})]}),composer:e.jsx(be,{onSend:(o,h)=>se(s.id,o,h),specs:c,sessions:p,focusId:x[0]||null,onDone:t,actionsEnd:!S&&e.jsxs(e.Fragment,{children:[w&&e.jsx("span",{className:"fv-error",children:w}),u&&N("promote",a("session.issuesPromote"),()=>W(s.id),a("session.issuesPromoteTitle")),N("close",a("session.issuesCloseIssue"),()=>ee(s.id),a("session.issuesCloseIssueTitle"))]})},s.id),children:[s.body&&e.jsx("div",{className:"fvd-body",children:e.jsx(q,{body:s.body})}),e.jsx(ve,{replies:j,threadId:u?s.id:null,onRemarkChange:()=>t==null?void 0:t("")})]})}function Ae(s,c){const[p,v]=b.useState(null),[t,i]=b.useState(null),a=b.useRef(0),u=b.useCallback(async()=>{if(!s)return null;const d=++a.current;i(null);try{const f=await le(s);return d===a.current&&v(f),f}catch(f){return d===a.current&&(v(!1),i(f instanceof Error?f.message:String(f))),null}},[s]),S=b.useRef(null);return b.useEffect(()=>{s!==S.current&&(S.current=s,v(null),i(null)),s&&u()},[s,c,u]),{issue:p,error:t,reload:u}}function Ke({param:s=null,query:c=ye,onOpenSession:p,specs:v=[],sessions:t=[],issuesStamp:i=null}){var o,h;const a=D(),u=Q(),S=je(),{notify:d}=X(),f=s===G,w=String(c.q??"").trim()||P,E=ne(c.page),x=b.useMemo(()=>t.map(r=>r.id).join(","),[t]),m=ie("issues",w,E,{enabled:(!s||f)&&S,refreshKey:`${i??""}|${x}`}),j=Ae(f?null:s,i);Z(s&&!f?R("issues",s):null,(o=j.issue)==null?void 0:o.concern);const L=r=>{r&&d(r)},y=async r=>{L(r),await(s?j.reload():m.reload())},N=r=>u.ownQuery(we(r,P));if(f){if(m.data&&!m.data.enabled)return e.jsx("div",{className:"fv-note",children:a("session.issuesOff")});const r=Array.isArray((h=m.data)==null?void 0:h.stores)&&m.data.stores.length?m.data.stores:[{id:"local",label:"local",kind:"local"}];return e.jsx(Ce,{specs:v,sessions:t,stores:r,onCreated:(k,l)=>{L(l),u.open({page:"issues",param:k,query:null},{replace:!0})}})}return s?j.issue==null?e.jsx("div",{className:"fv-note",children:a("session.issuesLoading")}):j.error?e.jsx(F,{failure:j.error,listHref:R("issues"),listLabel:a("reviewShell.backToIssues")}):j.issue===!1?e.jsx(F,{missing:a("reviewShell.issueNotFound",{id:s}),listHref:R("issues"),listLabel:a("reviewShell.backToIssues")}):e.jsx(Ie,{issue:j.issue,specs:v,sessions:t,onOpenSession:p,onWrite:y,onQueryText:N}):e.jsx(Ee,{data:m.data,loading:m.loading,error:m.error,query:c,onQueryText:N})}const Pe={github:"GitHub",gitlab:"GitLab"},Re=s=>Pe[s]||s;function Ce({specs:s,sessions:c,stores:p,onCreated:v}){var l;const t=D(),[i,a]=b.useState(((l=p[0])==null?void 0:l.id)||"local"),[u,S]=b.useState(""),[d,f]=b.useState(""),[w,E]=b.useState(!1),[x,m]=b.useState(!1),[j,L]=b.useState(""),y=b.useRef(null),{launchers:N}=ue(),o=de({inputRef:y,value:d,setValue:f,specs:s,sessions:c,launchers:N});b.useEffect(()=>{var n;p.some(g=>g.id===i)||a(((n=p[0])==null?void 0:n.id)||"local")},[p,i]);const h=[...new Set([...d.matchAll(fe)].map(n=>n[1]))],r=async()=>{const n=u.trim();if(!(!n||x)){m(!0),L("");try{const g=await te({concern:n,body:d.trim()||void 0,store:i});g!=null&&g.ok&&g.id?v==null||v(g.id,g.outcomes||""):L((g==null?void 0:g.error)||t("session.issuesPostFailed"))}finally{m(!1)}}},k=(n,g)=>e.jsx("button",{type:"button",role:"tab","aria-selected":w===n,className:`fv-tab ${w===n?"on":""}`,onClick:()=>E(n),children:g});return e.jsx(F,{title:t("session.issuesNewTitle"),backHref:M("issues"),backLabel:t("detail.backToIssues"),side:e.jsxs(e.Fragment,{children:[e.jsx(I,{label:t("session.issuesStoreLabel"),children:e.jsxs("label",{className:"fv-store-pick",children:[e.jsx("span",{className:"sr-only",children:t("session.issuesStoreLabel")}),e.jsx("select",{value:i,disabled:x,onChange:n=>a(n.target.value),children:p.map(n=>e.jsx("option",{value:n.id,children:n.label||n.id},n.id))})]})}),e.jsx(I,{label:t("detail.sideNodes"),children:h.length>0?h.map(n=>e.jsx(A,{text:n,mono:!0},n)):e.jsx(A,{text:t("session.issuesNodesHint"),dim:!0})})]}),children:e.jsxs("div",{className:"fv-new-page",children:[e.jsxs("label",{className:"fv-field",children:[e.jsx("span",{className:"fv-field-label",children:t("session.issuesTitleLabel")}),e.jsx("input",{className:"fv-input fv-new-title",value:u,placeholder:t("session.issuesConcernPlaceholder"),disabled:x,autoFocus:!0,onChange:n=>S(n.target.value),onKeyDown:n=>{O(n)||n.key==="Enter"&&(n.preventDefault(),r())}})]}),e.jsxs("div",{className:"fv-field",children:[e.jsxs("div",{className:"fv-field-head",children:[e.jsx("span",{className:"fv-field-label",children:t("session.issuesBodyLabel")}),e.jsxs("div",{className:"fv-tabs",role:"tablist","aria-label":t("session.issuesBodyLabel"),children:[k(!1,t("session.issuesWrite")),k(!0,t("session.issuesPreview"))]})]}),e.jsx(pe,{className:"fv-new-compose",editor:w?e.jsx("div",{className:"fv-new-preview",role:"tabpanel",children:d.trim()?e.jsx(q,{body:d}):e.jsx("span",{className:"fv-new-hint",children:t("session.issuesPreviewEmpty")})}):e.jsxs("div",{className:"fv-tawrap",role:"tabpanel",children:[e.jsx(me,{ref:y,className:"fv-textarea",rows:1,value:d,placeholder:t("session.issuesBodyPlaceholder"),disabled:x,onChange:n=>{f(n.target.value),o.sync(n.target)},onSelect:n=>o.sync(n.target),onBlur:o.close,onKeyDown:n=>{O(n)||o.onKeyDown(n)||n.key==="Enter"&&(n.metaKey||n.ctrlKey)&&(n.preventDefault(),r())}}),o.menuEl]}),footer:e.jsxs("div",{className:"fv-actions",children:[e.jsx(K,{label:t("thread.mentionActor"),disabled:x||w,onClick:()=>H(y.current,"@",f,o.sync),children:"@"}),e.jsx(K,{label:t("thread.mentionNode"),disabled:x||w,onClick:()=>H(y.current,"[[",f,o.sync),children:"[["})]})})]}),e.jsxs("div",{className:"fv-new-actions",children:[j&&e.jsx("span",{className:"fv-error",children:j}),e.jsx("a",{className:"fv-cancel",href:M("issues"),children:t("session.issuesCancel")}),e.jsx("button",{type:"button",className:"fv-post",disabled:x||!u.trim(),onClick:r,children:t(x?"session.issuesSending":"session.issuesPost")})]})]})})}export{ke as ISSUE_QUERY_KEYS,Ie as IssueDetailPage,Ee as IssuesListPage,G as NEW_PARAM,Ke as default};
|