@enruana/claude-orka 0.7.9 β 0.8.1
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/cli.js +9 -35
- package/dist/electron/main/main.js +30 -35
- package/dist/electron/main/main.js.map +1 -1
- package/dist/electron/renderer/assets/main-HIgPFlZ_.js +66 -0
- package/dist/electron/renderer/index.html +1 -1
- package/dist/src/core/SessionManager.d.ts.map +1 -1
- package/dist/src/core/SessionManager.js +13 -19
- package/dist/src/core/SessionManager.js.map +1 -1
- package/package.json +1 -1
- package/dist/electron/renderer/assets/main-CIzNAcE6.js +0 -66
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import{r as io,g as fi,R as C,a as di,b as S,c as Te,j as A,F as hi,T as gi,d as pi}from"./terminal-BTLiXhkP.js";function ae(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=ae(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var mn={exports:{}},yn={},xn={exports:{}},wn={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* use-sync-external-store-shim.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var hr;function mi(){if(hr)return wn;hr=1;var e=io();function t(f,d){return f===d&&(f!==0||1/f===1/d)||f!==f&&d!==d}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,o=e.useEffect,i=e.useLayoutEffect,s=e.useDebugValue;function a(f,d){var g=d(),x=r({inst:{value:g,getSnapshot:d}}),p=x[0].inst,b=x[1];return i(function(){p.value=g,p.getSnapshot=d,c(p)&&b({inst:p})},[f,g,d]),o(function(){return c(p)&&b({inst:p}),f(function(){c(p)&&b({inst:p})})},[f]),s(g),g}function c(f){var d=f.getSnapshot;f=f.value;try{var g=d();return!n(f,g)}catch{return!0}}function u(f,d){return d()}var l=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:a;return wn.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:l,wn}var gr;function yi(){return gr||(gr=1,xn.exports=mi()),xn.exports}/**
|
|
10
|
+
* @license React
|
|
11
|
+
* use-sync-external-store-shim/with-selector.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var pr;function xi(){if(pr)return yn;pr=1;var e=io(),t=yi();function n(u,l){return u===l&&(u!==0||1/u===1/l)||u!==u&&l!==l}var r=typeof Object.is=="function"?Object.is:n,o=t.useSyncExternalStore,i=e.useRef,s=e.useEffect,a=e.useMemo,c=e.useDebugValue;return yn.useSyncExternalStoreWithSelector=function(u,l,f,d,g){var x=i(null);if(x.current===null){var p={hasValue:!1,value:null};x.current=p}else p=x.current;x=a(function(){function m($){if(!w){if(w=!0,N=$,$=d($),g!==void 0&&p.hasValue){var D=p.value;if(g(D,$))return y=D}return y=$}if(D=y,r(N,$))return D;var V=d($);return g!==void 0&&g(D,V)?(N=$,D):(N=$,y=V)}var w=!1,N,y,M=f===void 0?null:f;return[function(){return m(l())},M===null?void 0:function(){return m(M())}]},[l,f,d,g]);var b=o(u,x[0],x[1]);return s(function(){p.hasValue=!0,p.value=b},[b]),c(b),b},yn}var mr;function wi(){return mr||(mr=1,mn.exports=xi()),mn.exports}var vi=wi();const bi=fi(vi),_i={},yr=e=>{let t;const n=new Set,r=(l,f)=>{const d=typeof l=="function"?l(t):l;if(!Object.is(d,t)){const g=t;t=f??(typeof d!="object"||d===null)?d:Object.assign({},t,d),n.forEach(x=>x(t,g))}},o=()=>t,c={setState:r,getState:o,getInitialState:()=>u,subscribe:l=>(n.add(l),()=>n.delete(l)),destroy:()=>{(_i?"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()}},u=t=e(r,o,c);return c},Ei=e=>e?yr(e):yr,{useDebugValue:Si}=C,{useSyncExternalStoreWithSelector:Ni}=bi,ki=e=>e;function ao(e,t=ki,n){const r=Ni(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return Si(r),r}const xr=(e,t)=>{const n=Ei(e),r=(o,i=t)=>ao(n,o,i);return Object.assign(r,n),r},Ci=(e,t)=>e?xr(e,t):xr;function ie(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}var Ai={value:()=>{}};function an(){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 Wt(n)}function Wt(e){this._=e}function Mi(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}})}Wt.prototype=an.prototype={constructor:Wt,on:function(e,t){var n=this._,r=Mi(e+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(e=r[i]).type)&&(o=$i(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]=wr(n[o],e.name,t);else if(t==null)for(o in n)n[o]=wr(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 Wt(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 $i(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function wr(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=Ai,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Mn="http://www.w3.org/1999/xhtml";const vr={svg:"http://www.w3.org/2000/svg",xhtml:Mn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function cn(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),vr.hasOwnProperty(t)?{space:vr[t],local:e}:e}function Ii(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Mn&&t.documentElement.namespaceURI===Mn?t.createElement(e):t.createElementNS(n,e)}}function Ti(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function co(e){var t=cn(e);return(t.local?Ti:Ii)(t)}function zi(){}function Yn(e){return e==null?zi:function(){return this.querySelector(e)}}function Pi(e){typeof e!="function"&&(e=Yn(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,u,l=0;l<s;++l)(c=i[l])&&(u=e.call(c,c.__data__,l,i))&&("__data__"in c&&(u.__data__=c.__data__),a[l]=u);return new ue(r,this._parents)}function Ri(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Di(){return[]}function lo(e){return e==null?Di:function(){return this.querySelectorAll(e)}}function Hi(e){return function(){return Ri(e.apply(this,arguments))}}function Fi(e){typeof e=="function"?e=Hi(e):e=lo(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,u=0;u<a;++u)(c=s[u])&&(r.push(e.call(c,c.__data__,u,s)),o.push(c));return new ue(r,o)}function uo(e){return function(){return this.matches(e)}}function fo(e){return function(t){return t.matches(e)}}var Vi=Array.prototype.find;function Bi(e){return function(){return Vi.call(this.children,e)}}function Li(){return this.firstElementChild}function ji(e){return this.select(e==null?Li:Bi(typeof e=="function"?e:fo(e)))}var Oi=Array.prototype.filter;function Xi(){return Array.from(this.children)}function Yi(e){return function(){return Oi.call(this.children,e)}}function Ui(e){return this.selectAll(e==null?Xi:Yi(typeof e=="function"?e:fo(e)))}function qi(e){typeof e!="function"&&(e=uo(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,u=0;u<s;++u)(c=i[u])&&e.call(c,c.__data__,u,i)&&a.push(c);return new ue(r,this._parents)}function ho(e){return new Array(e.length)}function Wi(){return new ue(this._enter||this._groups.map(ho),this._parents)}function Qt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Qt.prototype={constructor:Qt,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 Gi(e){return function(){return e}}function Zi(e,t,n,r,o,i){for(var s=0,a,c=t.length,u=i.length;s<u;++s)(a=t[s])?(a.__data__=i[s],r[s]=a):n[s]=new Qt(e,i[s]);for(;s<c;++s)(a=t[s])&&(o[s]=a)}function Ki(e,t,n,r,o,i,s){var a,c,u=new Map,l=t.length,f=i.length,d=new Array(l),g;for(a=0;a<l;++a)(c=t[a])&&(d[a]=g=s.call(c,c.__data__,a,t)+"",u.has(g)?o[a]=c:u.set(g,c));for(a=0;a<f;++a)g=s.call(e,i[a],a,i)+"",(c=u.get(g))?(r[a]=c,c.__data__=i[a],u.delete(g)):n[a]=new Qt(e,i[a]);for(a=0;a<l;++a)(c=t[a])&&u.get(d[a])===c&&(o[a]=c)}function Qi(e){return e.__data__}function Ji(e,t){if(!arguments.length)return Array.from(this,Qi);var n=t?Ki:Zi,r=this._parents,o=this._groups;typeof e!="function"&&(e=Gi(e));for(var i=o.length,s=new Array(i),a=new Array(i),c=new Array(i),u=0;u<i;++u){var l=r[u],f=o[u],d=f.length,g=ea(e.call(l,l&&l.__data__,u,r)),x=g.length,p=a[u]=new Array(x),b=s[u]=new Array(x),m=c[u]=new Array(d);n(l,f,p,b,m,g,t);for(var w=0,N=0,y,M;w<x;++w)if(y=p[w]){for(w>=N&&(N=w+1);!(M=b[N])&&++N<x;);y._next=M||null}}return s=new ue(s,r),s._enter=a,s._exit=c,s}function ea(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ta(){return new ue(this._exit||this._groups.map(ho),this._parents)}function na(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 ra(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 u=n[c],l=r[c],f=u.length,d=a[c]=new Array(f),g,x=0;x<f;++x)(g=u[x]||l[x])&&(d[x]=g);for(;c<o;++c)a[c]=n[c];return new ue(a,this._parents)}function oa(){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 sa(e){e||(e=ia);function t(f,d){return f&&d?e(f.__data__,d.__data__):!f-!d}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),u,l=0;l<a;++l)(u=s[l])&&(c[l]=u);c.sort(t)}return new ue(o,this._parents).order()}function ia(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function aa(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function ca(){return Array.from(this)}function la(){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 ua(){let e=0;for(const t of this)++e;return e}function fa(){return!this.node()}function da(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 ha(e){return function(){this.removeAttribute(e)}}function ga(e){return function(){this.removeAttributeNS(e.space,e.local)}}function pa(e,t){return function(){this.setAttribute(e,t)}}function ma(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ya(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function xa(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 wa(e,t){var n=cn(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?ga:ha:typeof t=="function"?n.local?xa:ya:n.local?ma:pa)(n,t))}function go(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function va(e){return function(){this.style.removeProperty(e)}}function ba(e,t,n){return function(){this.style.setProperty(e,t,n)}}function _a(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function Ea(e,t,n){return arguments.length>1?this.each((t==null?va:typeof t=="function"?_a:ba)(e,t,n??"")):ht(this.node(),e)}function ht(e,t){return e.style.getPropertyValue(t)||go(e).getComputedStyle(e,null).getPropertyValue(t)}function Sa(e){return function(){delete this[e]}}function Na(e,t){return function(){this[e]=t}}function ka(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Ca(e,t){return arguments.length>1?this.each((t==null?Sa:typeof t=="function"?ka:Na)(e,t)):this.node()[e]}function po(e){return e.trim().split(/^|\s+/)}function Un(e){return e.classList||new mo(e)}function mo(e){this._node=e,this._names=po(e.getAttribute("class")||"")}mo.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 yo(e,t){for(var n=Un(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function xo(e,t){for(var n=Un(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Aa(e){return function(){yo(this,e)}}function Ma(e){return function(){xo(this,e)}}function $a(e,t){return function(){(t.apply(this,arguments)?yo:xo)(this,e)}}function Ia(e,t){var n=po(e+"");if(arguments.length<2){for(var r=Un(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?$a:t?Aa:Ma)(n,t))}function Ta(){this.textContent=""}function za(e){return function(){this.textContent=e}}function Pa(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Ra(e){return arguments.length?this.each(e==null?Ta:(typeof e=="function"?Pa:za)(e)):this.node().textContent}function Da(){this.innerHTML=""}function Ha(e){return function(){this.innerHTML=e}}function Fa(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Va(e){return arguments.length?this.each(e==null?Da:(typeof e=="function"?Fa:Ha)(e)):this.node().innerHTML}function Ba(){this.nextSibling&&this.parentNode.appendChild(this)}function La(){return this.each(Ba)}function ja(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Oa(){return this.each(ja)}function Xa(e){var t=typeof e=="function"?e:co(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Ya(){return null}function Ua(e,t){var n=typeof e=="function"?e:co(e),r=t==null?Ya:typeof t=="function"?t:Yn(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function qa(){var e=this.parentNode;e&&e.removeChild(this)}function Wa(){return this.each(qa)}function Ga(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Za(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ka(e){return this.select(e?Za:Ga)}function Qa(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Ja(e){return function(t){e.call(this,t,this.__data__)}}function ec(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 tc(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 nc(e,t,n){return function(){var r=this.__on,o,i=Ja(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 rc(e,t,n){var r=ec(e+""),o,i=r.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,u=a.length,l;c<u;++c)for(o=0,l=a[c];o<i;++o)if((s=r[o]).type===l.type&&s.name===l.name)return l.value}return}for(a=t?nc:tc,o=0;o<i;++o)this.each(a(r[o],t,n));return this}function wo(e,t,n){var r=go(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 oc(e,t){return function(){return wo(this,e,t)}}function sc(e,t){return function(){return wo(this,e,t.apply(this,arguments))}}function ic(e,t){return this.each((typeof t=="function"?sc:oc)(e,t))}function*ac(){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 vo=[null];function ue(e,t){this._groups=e,this._parents=t}function Dt(){return new ue([[document.documentElement]],vo)}function cc(){return this}ue.prototype=Dt.prototype={constructor:ue,select:Pi,selectAll:Fi,selectChild:ji,selectChildren:Ui,filter:qi,data:Ji,enter:Wi,exit:ta,join:na,merge:ra,selection:cc,order:oa,sort:sa,call:aa,nodes:ca,node:la,size:ua,empty:fa,each:da,attr:wa,style:Ea,property:Ca,classed:Ia,text:Ra,html:Va,raise:La,lower:Oa,append:Xa,insert:Ua,remove:Wa,clone:Ka,datum:Qa,on:rc,dispatch:ic,[Symbol.iterator]:ac};function ye(e){return typeof e=="string"?new ue([[document.querySelector(e)]],[document.documentElement]):new ue([[e]],vo)}function lc(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Ee(e,t){if(e=lc(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 uc={passive:!1},At={capture:!0,passive:!1};function vn(e){e.stopImmediatePropagation()}function lt(e){e.preventDefault(),e.stopImmediatePropagation()}function bo(e){var t=e.document.documentElement,n=ye(e).on("dragstart.drag",lt,At);"onselectstart"in t?n.on("selectstart.drag",lt,At):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function _o(e,t){var n=e.document.documentElement,r=ye(e).on("dragstart.drag",null);t&&(r.on("click.drag",lt,At),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 Vt=e=>()=>e;function $n(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:s,y:a,dx:c,dy:u,dispatch:l}){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:u,enumerable:!0,configurable:!0},_:{value:l}})}$n.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function fc(e){return!e.ctrlKey&&!e.button}function dc(){return this.parentNode}function hc(e,t){return t??{x:e.x,y:e.y}}function gc(){return navigator.maxTouchPoints||"ontouchstart"in this}function pc(){var e=fc,t=dc,n=hc,r=gc,o={},i=an("start","drag","end"),s=0,a,c,u,l,f=0;function d(y){y.on("mousedown.drag",g).filter(r).on("touchstart.drag",b).on("touchmove.drag",m,uc).on("touchend.drag touchcancel.drag",w).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(y,M){if(!(l||!e.call(this,y,M))){var $=N(this,t.call(this,y,M),y,M,"mouse");$&&(ye(y.view).on("mousemove.drag",x,At).on("mouseup.drag",p,At),bo(y.view),vn(y),u=!1,a=y.clientX,c=y.clientY,$("start",y))}}function x(y){if(lt(y),!u){var M=y.clientX-a,$=y.clientY-c;u=M*M+$*$>f}o.mouse("drag",y)}function p(y){ye(y.view).on("mousemove.drag mouseup.drag",null),_o(y.view,u),lt(y),o.mouse("end",y)}function b(y,M){if(e.call(this,y,M)){var $=y.changedTouches,D=t.call(this,y,M),V=$.length,T,R;for(T=0;T<V;++T)(R=N(this,D,y,M,$[T].identifier,$[T]))&&(vn(y),R("start",y,$[T]))}}function m(y){var M=y.changedTouches,$=M.length,D,V;for(D=0;D<$;++D)(V=o[M[D].identifier])&&(lt(y),V("drag",y,M[D]))}function w(y){var M=y.changedTouches,$=M.length,D,V;for(l&&clearTimeout(l),l=setTimeout(function(){l=null},500),D=0;D<$;++D)(V=o[M[D].identifier])&&(vn(y),V("end",y,M[D]))}function N(y,M,$,D,V,T){var R=i.copy(),H=Ee(T||$,M),L,B,h;if((h=n.call(y,new $n("beforestart",{sourceEvent:$,target:d,identifier:V,active:s,x:H[0],y:H[1],dx:0,dy:0,dispatch:R}),D))!=null)return L=h.x-H[0]||0,B=h.y-H[1]||0,function k(E,z,F){var _=H,v;switch(E){case"start":o[V]=k,v=s++;break;case"end":delete o[V],--s;case"drag":H=Ee(F||z,M),v=s;break}R.call(E,y,new $n(E,{sourceEvent:z,subject:h,target:d,identifier:V,active:v,x:H[0]+L,y:H[1]+B,dx:H[0]-_[0],dy:H[1]-_[1],dispatch:R}),D)}}return d.filter=function(y){return arguments.length?(e=typeof y=="function"?y:Vt(!!y),d):e},d.container=function(y){return arguments.length?(t=typeof y=="function"?y:Vt(y),d):t},d.subject=function(y){return arguments.length?(n=typeof y=="function"?y:Vt(y),d):n},d.touchable=function(y){return arguments.length?(r=typeof y=="function"?y:Vt(!!y),d):r},d.on=function(){var y=i.on.apply(i,arguments);return y===i?d:y},d.clickDistance=function(y){return arguments.length?(f=(y=+y)*y,d):Math.sqrt(f)},d}function qn(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Eo(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ht(){}var Mt=.7,Jt=1/Mt,ut="\\s*([+-]?\\d+)\\s*",$t="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Se="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",mc=/^#([0-9a-f]{3,8})$/,yc=new RegExp(`^rgb\\(${ut},${ut},${ut}\\)$`),xc=new RegExp(`^rgb\\(${Se},${Se},${Se}\\)$`),wc=new RegExp(`^rgba\\(${ut},${ut},${ut},${$t}\\)$`),vc=new RegExp(`^rgba\\(${Se},${Se},${Se},${$t}\\)$`),bc=new RegExp(`^hsl\\(${$t},${Se},${Se}\\)$`),_c=new RegExp(`^hsla\\(${$t},${Se},${Se},${$t}\\)$`),br={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};qn(Ht,It,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:_r,formatHex:_r,formatHex8:Ec,formatHsl:Sc,formatRgb:Er,toString:Er});function _r(){return this.rgb().formatHex()}function Ec(){return this.rgb().formatHex8()}function Sc(){return So(this).formatHsl()}function Er(){return this.rgb().formatRgb()}function It(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=mc.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Sr(t):n===3?new ce(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Bt(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Bt(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=yc.exec(e))?new ce(t[1],t[2],t[3],1):(t=xc.exec(e))?new ce(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=wc.exec(e))?Bt(t[1],t[2],t[3],t[4]):(t=vc.exec(e))?Bt(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=bc.exec(e))?Cr(t[1],t[2]/100,t[3]/100,1):(t=_c.exec(e))?Cr(t[1],t[2]/100,t[3]/100,t[4]):br.hasOwnProperty(e)?Sr(br[e]):e==="transparent"?new ce(NaN,NaN,NaN,0):null}function Sr(e){return new ce(e>>16&255,e>>8&255,e&255,1)}function Bt(e,t,n,r){return r<=0&&(e=t=n=NaN),new ce(e,t,n,r)}function Nc(e){return e instanceof Ht||(e=It(e)),e?(e=e.rgb(),new ce(e.r,e.g,e.b,e.opacity)):new ce}function In(e,t,n,r){return arguments.length===1?Nc(e):new ce(e,t,n,r??1)}function ce(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}qn(ce,In,Eo(Ht,{brighter(e){return e=e==null?Jt:Math.pow(Jt,e),new ce(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Mt:Math.pow(Mt,e),new ce(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ce(Ze(this.r),Ze(this.g),Ze(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:Nr,formatHex:Nr,formatHex8:kc,formatRgb:kr,toString:kr}));function Nr(){return`#${We(this.r)}${We(this.g)}${We(this.b)}`}function kc(){return`#${We(this.r)}${We(this.g)}${We(this.b)}${We((isNaN(this.opacity)?1:this.opacity)*255)}`}function kr(){const e=en(this.opacity);return`${e===1?"rgb(":"rgba("}${Ze(this.r)}, ${Ze(this.g)}, ${Ze(this.b)}${e===1?")":`, ${e})`}`}function en(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ze(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function We(e){return e=Ze(e),(e<16?"0":"")+e.toString(16)}function Cr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new xe(e,t,n,r)}function So(e){if(e instanceof xe)return new xe(e.h,e.s,e.l,e.opacity);if(e instanceof Ht||(e=It(e)),!e)return new xe;if(e instanceof xe)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 xe(s,a,c,e.opacity)}function Cc(e,t,n,r){return arguments.length===1?So(e):new xe(e,t,n,r??1)}function xe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}qn(xe,Cc,Eo(Ht,{brighter(e){return e=e==null?Jt:Math.pow(Jt,e),new xe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Mt:Math.pow(Mt,e),new xe(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 ce(bn(e>=240?e-240:e+120,o,r),bn(e,o,r),bn(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new xe(Ar(this.h),Lt(this.s),Lt(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("}${Ar(this.h)}, ${Lt(this.s)*100}%, ${Lt(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Ar(e){return e=(e||0)%360,e<0?e+360:e}function Lt(e){return Math.max(0,Math.min(1,e||0))}function bn(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 No=e=>()=>e;function Ac(e,t){return function(n){return e+n*t}}function Mc(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 $c(e){return(e=+e)==1?ko:function(t,n){return n-t?Mc(t,n,e):No(isNaN(t)?n:t)}}function ko(e,t){var n=t-e;return n?Ac(e,n):No(isNaN(e)?t:e)}const Mr=(function e(t){var n=$c(t);function r(o,i){var s=n((o=In(o)).r,(i=In(i)).r),a=n(o.g,i.g),c=n(o.b,i.b),u=ko(o.opacity,i.opacity);return function(l){return o.r=s(l),o.g=a(l),o.b=c(l),o.opacity=u(l),o+""}}return r.gamma=e,r})(1);function Pe(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Tn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,_n=new RegExp(Tn.source,"g");function Ic(e){return function(){return e}}function Tc(e){return function(t){return e(t)+""}}function zc(e,t){var n=Tn.lastIndex=_n.lastIndex=0,r,o,i,s=-1,a=[],c=[];for(e=e+"",t=t+"";(r=Tn.exec(e))&&(o=_n.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:Pe(r,o)})),n=_n.lastIndex;return n<t.length&&(i=t.slice(n),a[s]?a[s]+=i:a[++s]=i),a.length<2?c[0]?Tc(c[0].x):Ic(t):(t=c.length,function(u){for(var l=0,f;l<t;++l)a[(f=c[l]).i]=f.x(u);return a.join("")})}var $r=180/Math.PI,zn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Co(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)*$r,skewX:Math.atan(c)*$r,scaleX:s,scaleY:a}}var jt;function Pc(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?zn:Co(t.a,t.b,t.c,t.d,t.e,t.f)}function Rc(e){return e==null||(jt||(jt=document.createElementNS("http://www.w3.org/2000/svg","g")),jt.setAttribute("transform",e),!(e=jt.transform.baseVal.consolidate()))?zn:(e=e.matrix,Co(e.a,e.b,e.c,e.d,e.e,e.f))}function Ao(e,t,n,r){function o(u){return u.length?u.pop()+" ":""}function i(u,l,f,d,g,x){if(u!==f||l!==d){var p=g.push("translate(",null,t,null,n);x.push({i:p-4,x:Pe(u,f)},{i:p-2,x:Pe(l,d)})}else(f||d)&&g.push("translate("+f+t+d+n)}function s(u,l,f,d){u!==l?(u-l>180?l+=360:l-u>180&&(u+=360),d.push({i:f.push(o(f)+"rotate(",null,r)-2,x:Pe(u,l)})):l&&f.push(o(f)+"rotate("+l+r)}function a(u,l,f,d){u!==l?d.push({i:f.push(o(f)+"skewX(",null,r)-2,x:Pe(u,l)}):l&&f.push(o(f)+"skewX("+l+r)}function c(u,l,f,d,g,x){if(u!==f||l!==d){var p=g.push(o(g)+"scale(",null,",",null,")");x.push({i:p-4,x:Pe(u,f)},{i:p-2,x:Pe(l,d)})}else(f!==1||d!==1)&&g.push(o(g)+"scale("+f+","+d+")")}return function(u,l){var f=[],d=[];return u=e(u),l=e(l),i(u.translateX,u.translateY,l.translateX,l.translateY,f,d),s(u.rotate,l.rotate,f,d),a(u.skewX,l.skewX,f,d),c(u.scaleX,u.scaleY,l.scaleX,l.scaleY,f,d),u=l=null,function(g){for(var x=-1,p=d.length,b;++x<p;)f[(b=d[x]).i]=b.x(g);return f.join("")}}}var Dc=Ao(Pc,"px, ","px)","deg)"),Hc=Ao(Rc,", ",")",")"),Fc=1e-12;function Ir(e){return((e=Math.exp(e))+1/e)/2}function Vc(e){return((e=Math.exp(e))-1/e)/2}function Bc(e){return((e=Math.exp(2*e))-1)/(e+1)}const Lc=(function e(t,n,r){function o(i,s){var a=i[0],c=i[1],u=i[2],l=s[0],f=s[1],d=s[2],g=l-a,x=f-c,p=g*g+x*x,b,m;if(p<Fc)m=Math.log(d/u)/t,b=function(D){return[a+D*g,c+D*x,u*Math.exp(t*D*m)]};else{var w=Math.sqrt(p),N=(d*d-u*u+r*p)/(2*u*n*w),y=(d*d-u*u-r*p)/(2*d*n*w),M=Math.log(Math.sqrt(N*N+1)-N),$=Math.log(Math.sqrt(y*y+1)-y);m=($-M)/t,b=function(D){var V=D*m,T=Ir(M),R=u/(n*w)*(T*Bc(t*V+M)-Vc(M));return[a+R*g,c+R*x,u*T/Ir(t*V+M)]}}return b.duration=m*1e3*t/Math.SQRT2,b}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 gt=0,Nt=0,vt=0,Mo=1e3,tn,kt,nn=0,Ke=0,ln=0,Tt=typeof performance=="object"&&performance.now?performance:Date,$o=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Wn(){return Ke||($o(jc),Ke=Tt.now()+ln)}function jc(){Ke=0}function rn(){this._call=this._time=this._next=null}rn.prototype=Io.prototype={constructor:rn,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Wn():+n)+(t==null?0:+t),!this._next&&kt!==this&&(kt?kt._next=this:tn=this,kt=this),this._call=e,this._time=n,Pn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Pn())}};function Io(e,t,n){var r=new rn;return r.restart(e,t,n),r}function Oc(){Wn(),++gt;for(var e=tn,t;e;)(t=Ke-e._time)>=0&&e._call.call(void 0,t),e=e._next;--gt}function Tr(){Ke=(nn=Tt.now())+ln,gt=Nt=0;try{Oc()}finally{gt=0,Yc(),Ke=0}}function Xc(){var e=Tt.now(),t=e-nn;t>Mo&&(ln-=t,nn=e)}function Yc(){for(var e,t=tn,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:tn=n);kt=e,Pn(r)}function Pn(e){if(!gt){Nt&&(Nt=clearTimeout(Nt));var t=e-Ke;t>24?(e<1/0&&(Nt=setTimeout(Tr,e-Tt.now()-ln)),vt&&(vt=clearInterval(vt))):(vt||(nn=Tt.now(),vt=setInterval(Xc,Mo)),gt=1,$o(Tr))}}function zr(e,t,n){var r=new rn;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var Uc=an("start","end","cancel","interrupt"),qc=[],To=0,Pr=1,Rn=2,Gt=3,Rr=4,Dn=5,Zt=6;function un(e,t,n,r,o,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;Wc(e,n,{name:t,index:r,group:o,on:Uc,tween:qc,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:To})}function Gn(e,t){var n=ve(e,t);if(n.state>To)throw new Error("too late; already scheduled");return n}function Ne(e,t){var n=ve(e,t);if(n.state>Gt)throw new Error("too late; already running");return n}function ve(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Wc(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=Io(i,0,n.time);function i(u){n.state=Pr,n.timer.restart(s,n.delay,n.time),n.delay<=u&&s(u-n.delay)}function s(u){var l,f,d,g;if(n.state!==Pr)return c();for(l in r)if(g=r[l],g.name===n.name){if(g.state===Gt)return zr(s);g.state===Rr?(g.state=Zt,g.timer.stop(),g.on.call("interrupt",e,e.__data__,g.index,g.group),delete r[l]):+l<t&&(g.state=Zt,g.timer.stop(),g.on.call("cancel",e,e.__data__,g.index,g.group),delete r[l])}if(zr(function(){n.state===Gt&&(n.state=Rr,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=Rn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Rn){for(n.state=Gt,o=new Array(d=n.tween.length),l=0,f=-1;l<d;++l)(g=n.tween[l].value.call(e,e.__data__,n.index,n.group))&&(o[++f]=g);o.length=f+1}}function a(u){for(var l=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(c),n.state=Dn,1),f=-1,d=o.length;++f<d;)o[f].call(e,l);n.state===Dn&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=Zt,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function Kt(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>Rn&&r.state<Dn,r.state=Zt,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[s]}i&&delete e.__transition}}function Gc(e){return this.each(function(){Kt(this,e)})}function Zc(e,t){var n,r;return function(){var o=Ne(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 Kc(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=Ne(this,e),s=i.tween;if(s!==r){o=(r=s).slice();for(var a={name:t,value:n},c=0,u=o.length;c<u;++c)if(o[c].name===t){o[c]=a;break}c===u&&o.push(a)}i.tween=o}}function Qc(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=ve(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?Zc:Kc)(n,e,t))}function Zn(e,t,n){var r=e._id;return e.each(function(){var o=Ne(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return ve(o,r).value[t]}}function zo(e,t){var n;return(typeof t=="number"?Pe:t instanceof It?Mr:(n=It(t))?(t=n,Mr):zc)(e,t)}function Jc(e){return function(){this.removeAttribute(e)}}function el(e){return function(){this.removeAttributeNS(e.space,e.local)}}function tl(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 nl(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 rl(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 ol(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 sl(e,t){var n=cn(e),r=n==="transform"?Hc:zo;return this.attrTween(e,typeof t=="function"?(n.local?ol:rl)(n,r,Zn(this,"attr."+e,t)):t==null?(n.local?el:Jc)(n):(n.local?nl:tl)(n,r,t))}function il(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function al(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function cl(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&al(e,i)),n}return o._value=t,o}function ll(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&il(e,i)),n}return o._value=t,o}function ul(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=cn(e);return this.tween(n,(r.local?cl:ll)(r,t))}function fl(e,t){return function(){Gn(this,e).delay=+t.apply(this,arguments)}}function dl(e,t){return t=+t,function(){Gn(this,e).delay=t}}function hl(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?fl:dl)(t,e)):ve(this.node(),t).delay}function gl(e,t){return function(){Ne(this,e).duration=+t.apply(this,arguments)}}function pl(e,t){return t=+t,function(){Ne(this,e).duration=t}}function ml(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?gl:pl)(t,e)):ve(this.node(),t).duration}function yl(e,t){if(typeof t!="function")throw new Error;return function(){Ne(this,e).ease=t}}function xl(e){var t=this._id;return arguments.length?this.each(yl(t,e)):ve(this.node(),t).ease}function wl(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;Ne(this,e).ease=n}}function vl(e){if(typeof e!="function")throw new Error;return this.each(wl(this._id,e))}function bl(e){typeof e!="function"&&(e=uo(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,u=0;u<s;++u)(c=i[u])&&e.call(c,c.__data__,u,i)&&a.push(c);return new $e(r,this._parents,this._name,this._id)}function _l(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],u=n[a],l=c.length,f=s[a]=new Array(l),d,g=0;g<l;++g)(d=c[g]||u[g])&&(f[g]=d);for(;a<r;++a)s[a]=t[a];return new $e(s,this._parents,this._name,this._id)}function El(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 Sl(e,t,n){var r,o,i=El(t)?Gn:Ne;return function(){var s=i(this,e),a=s.on;a!==r&&(o=(r=a).copy()).on(t,n),s.on=o}}function Nl(e,t){var n=this._id;return arguments.length<2?ve(this.node(),n).on.on(e):this.each(Sl(n,e,t))}function kl(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Cl(){return this.on("end.remove",kl(this._id))}function Al(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Yn(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,u=i[s]=new Array(c),l,f,d=0;d<c;++d)(l=a[d])&&(f=e.call(l,l.__data__,d,a))&&("__data__"in l&&(f.__data__=l.__data__),u[d]=f,un(u[d],t,n,d,u,ve(l,n)));return new $e(i,this._parents,t,n)}function Ml(e){var t=this._name,n=this._id;typeof e!="function"&&(e=lo(e));for(var r=this._groups,o=r.length,i=[],s=[],a=0;a<o;++a)for(var c=r[a],u=c.length,l,f=0;f<u;++f)if(l=c[f]){for(var d=e.call(l,l.__data__,f,c),g,x=ve(l,n),p=0,b=d.length;p<b;++p)(g=d[p])&&un(g,t,n,p,d,x);i.push(d),s.push(l)}return new $e(i,s,t,n)}var $l=Dt.prototype.constructor;function Il(){return new $l(this._groups,this._parents)}function Tl(e,t){var n,r,o;return function(){var i=ht(this,e),s=(this.style.removeProperty(e),ht(this,e));return i===s?null:i===n&&s===r?o:o=t(n=i,r=s)}}function Po(e){return function(){this.style.removeProperty(e)}}function zl(e,t,n){var r,o=n+"",i;return function(){var s=ht(this,e);return s===o?null:s===r?i:i=t(r=s,n)}}function Pl(e,t,n){var r,o,i;return function(){var s=ht(this,e),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(e),ht(this,e))),s===c?null:s===r&&c===o?i:(o=c,i=t(r=s,a))}}function Rl(e,t){var n,r,o,i="style."+t,s="end."+i,a;return function(){var c=Ne(this,e),u=c.on,l=c.value[i]==null?a||(a=Po(t)):void 0;(u!==n||o!==l)&&(r=(n=u).copy()).on(s,o=l),c.on=r}}function Dl(e,t,n){var r=(e+="")=="transform"?Dc:zo;return t==null?this.styleTween(e,Tl(e,r)).on("end.style."+e,Po(e)):typeof t=="function"?this.styleTween(e,Pl(e,r,Zn(this,"style."+e,t))).each(Rl(this._id,e)):this.styleTween(e,zl(e,r,t),n).on("end.style."+e,null)}function Hl(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Fl(e,t,n){var r,o;function i(){var s=t.apply(this,arguments);return s!==o&&(r=(o=s)&&Hl(e,s,n)),r}return i._value=t,i}function Vl(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,Fl(e,t,n??""))}function Bl(e){return function(){this.textContent=e}}function Ll(e){return function(){var t=e(this);this.textContent=t??""}}function jl(e){return this.tween("text",typeof e=="function"?Ll(Zn(this,"text",e)):Bl(e==null?"":e+""))}function Ol(e){return function(t){this.textContent=e.call(this,t)}}function Xl(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&Ol(o)),t}return r._value=e,r}function Yl(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,Xl(e))}function Ul(){for(var e=this._name,t=this._id,n=Ro(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],a=s.length,c,u=0;u<a;++u)if(c=s[u]){var l=ve(c,t);un(c,e,n,u,s,{time:l.time+l.delay+l.duration,delay:0,duration:l.duration,ease:l.ease})}return new $e(r,this._parents,e,n)}function ql(){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 u=Ne(this,r),l=u.on;l!==e&&(t=(e=l).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(c)),u.on=t}),o===0&&i()})}var Wl=0;function $e(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Ro(){return++Wl}var Ae=Dt.prototype;$e.prototype={constructor:$e,select:Al,selectAll:Ml,selectChild:Ae.selectChild,selectChildren:Ae.selectChildren,filter:bl,merge:_l,selection:Il,transition:Ul,call:Ae.call,nodes:Ae.nodes,node:Ae.node,size:Ae.size,empty:Ae.empty,each:Ae.each,on:Nl,attr:sl,attrTween:ul,style:Dl,styleTween:Vl,text:jl,textTween:Yl,remove:Cl,tween:Qc,delay:hl,duration:ml,ease:xl,easeVarying:vl,end:ql,[Symbol.iterator]:Ae[Symbol.iterator]};function Gl(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Zl={time:null,delay:0,duration:250,ease:Gl};function Kl(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 Ql(e){var t,n;e instanceof $e?(t=e._id,e=e._name):(t=Ro(),(n=Zl).time=Wn(),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,u=0;u<a;++u)(c=s[u])&&un(c,e,t,u,s,n||Kl(c,t));return new $e(r,this._parents,e,t)}Dt.prototype.interrupt=Gc;Dt.prototype.transition=Ql;const Ot=e=>()=>e;function Jl(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 Me(e,t,n){this.k=e,this.x=t,this.y=n}Me.prototype={constructor:Me,scale:function(e){return e===1?this:new Me(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Me(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 He=new Me(1,0,0);Me.prototype;function En(e){e.stopImmediatePropagation()}function bt(e){e.preventDefault(),e.stopImmediatePropagation()}function eu(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function tu(){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 Dr(){return this.__zoom||He}function nu(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function ru(){return navigator.maxTouchPoints||"ontouchstart"in this}function ou(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 su(){var e=eu,t=tu,n=ou,r=nu,o=ru,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,c=Lc,u=an("start","zoom","end"),l,f,d,g=500,x=150,p=0,b=10;function m(h){h.property("__zoom",Dr).on("wheel.zoom",V,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",R).filter(o).on("touchstart.zoom",H).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",B).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}m.transform=function(h,k,E,z){var F=h.selection?h.selection():h;F.property("__zoom",Dr),h!==F?M(h,k,E,z):F.interrupt().each(function(){$(this,arguments).event(z).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},m.scaleBy=function(h,k,E,z){m.scaleTo(h,function(){var F=this.__zoom.k,_=typeof k=="function"?k.apply(this,arguments):k;return F*_},E,z)},m.scaleTo=function(h,k,E,z){m.transform(h,function(){var F=t.apply(this,arguments),_=this.__zoom,v=E==null?y(F):typeof E=="function"?E.apply(this,arguments):E,I=_.invert(v),P=typeof k=="function"?k.apply(this,arguments):k;return n(N(w(_,P),v,I),F,s)},E,z)},m.translateBy=function(h,k,E,z){m.transform(h,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof E=="function"?E.apply(this,arguments):E),t.apply(this,arguments),s)},null,z)},m.translateTo=function(h,k,E,z,F){m.transform(h,function(){var _=t.apply(this,arguments),v=this.__zoom,I=z==null?y(_):typeof z=="function"?z.apply(this,arguments):z;return n(He.translate(I[0],I[1]).scale(v.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof E=="function"?-E.apply(this,arguments):-E),_,s)},z,F)};function w(h,k){return k=Math.max(i[0],Math.min(i[1],k)),k===h.k?h:new Me(k,h.x,h.y)}function N(h,k,E){var z=k[0]-E[0]*h.k,F=k[1]-E[1]*h.k;return z===h.x&&F===h.y?h:new Me(h.k,z,F)}function y(h){return[(+h[0][0]+ +h[1][0])/2,(+h[0][1]+ +h[1][1])/2]}function M(h,k,E,z){h.on("start.zoom",function(){$(this,arguments).event(z).start()}).on("interrupt.zoom end.zoom",function(){$(this,arguments).event(z).end()}).tween("zoom",function(){var F=this,_=arguments,v=$(F,_).event(z),I=t.apply(F,_),P=E==null?y(I):typeof E=="function"?E.apply(F,_):E,j=Math.max(I[1][0]-I[0][0],I[1][1]-I[0][1]),O=F.__zoom,U=typeof k=="function"?k.apply(F,_):k,W=c(O.invert(P).concat(j/O.k),U.invert(P).concat(j/U.k));return function(G){if(G===1)G=U;else{var Z=W(G),ee=j/Z[2];G=new Me(ee,P[0]-Z[0]*ee,P[1]-Z[1]*ee)}v.zoom(null,G)}})}function $(h,k,E){return!E&&h.__zooming||new D(h,k)}function D(h,k){this.that=h,this.args=k,this.active=0,this.sourceEvent=null,this.extent=t.apply(h,k),this.taps=0}D.prototype={event:function(h){return h&&(this.sourceEvent=h),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(h,k){return this.mouse&&h!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&h!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&h!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(h){var k=ye(this.that).datum();u.call(h,this.that,new Jl(h,{sourceEvent:this.sourceEvent,target:m,transform:this.that.__zoom,dispatch:u}),k)}};function V(h,...k){if(!e.apply(this,arguments))return;var E=$(this,k).event(h),z=this.__zoom,F=Math.max(i[0],Math.min(i[1],z.k*Math.pow(2,r.apply(this,arguments)))),_=Ee(h);if(E.wheel)(E.mouse[0][0]!==_[0]||E.mouse[0][1]!==_[1])&&(E.mouse[1]=z.invert(E.mouse[0]=_)),clearTimeout(E.wheel);else{if(z.k===F)return;E.mouse=[_,z.invert(_)],Kt(this),E.start()}bt(h),E.wheel=setTimeout(v,x),E.zoom("mouse",n(N(w(z,F),E.mouse[0],E.mouse[1]),E.extent,s));function v(){E.wheel=null,E.end()}}function T(h,...k){if(d||!e.apply(this,arguments))return;var E=h.currentTarget,z=$(this,k,!0).event(h),F=ye(h.view).on("mousemove.zoom",P,!0).on("mouseup.zoom",j,!0),_=Ee(h,E),v=h.clientX,I=h.clientY;bo(h.view),En(h),z.mouse=[_,this.__zoom.invert(_)],Kt(this),z.start();function P(O){if(bt(O),!z.moved){var U=O.clientX-v,W=O.clientY-I;z.moved=U*U+W*W>p}z.event(O).zoom("mouse",n(N(z.that.__zoom,z.mouse[0]=Ee(O,E),z.mouse[1]),z.extent,s))}function j(O){F.on("mousemove.zoom mouseup.zoom",null),_o(O.view,z.moved),bt(O),z.event(O).end()}}function R(h,...k){if(e.apply(this,arguments)){var E=this.__zoom,z=Ee(h.changedTouches?h.changedTouches[0]:h,this),F=E.invert(z),_=E.k*(h.shiftKey?.5:2),v=n(N(w(E,_),z,F),t.apply(this,k),s);bt(h),a>0?ye(this).transition().duration(a).call(M,v,z,h):ye(this).call(m.transform,v,z,h)}}function H(h,...k){if(e.apply(this,arguments)){var E=h.touches,z=E.length,F=$(this,k,h.changedTouches.length===z).event(h),_,v,I,P;for(En(h),v=0;v<z;++v)I=E[v],P=Ee(I,this),P=[P,this.__zoom.invert(P),I.identifier],F.touch0?!F.touch1&&F.touch0[2]!==P[2]&&(F.touch1=P,F.taps=0):(F.touch0=P,_=!0,F.taps=1+!!l);l&&(l=clearTimeout(l)),_&&(F.taps<2&&(f=P[0],l=setTimeout(function(){l=null},g)),Kt(this),F.start())}}function L(h,...k){if(this.__zooming){var E=$(this,k).event(h),z=h.changedTouches,F=z.length,_,v,I,P;for(bt(h),_=0;_<F;++_)v=z[_],I=Ee(v,this),E.touch0&&E.touch0[2]===v.identifier?E.touch0[0]=I:E.touch1&&E.touch1[2]===v.identifier&&(E.touch1[0]=I);if(v=E.that.__zoom,E.touch1){var j=E.touch0[0],O=E.touch0[1],U=E.touch1[0],W=E.touch1[1],G=(G=U[0]-j[0])*G+(G=U[1]-j[1])*G,Z=(Z=W[0]-O[0])*Z+(Z=W[1]-O[1])*Z;v=w(v,Math.sqrt(G/Z)),I=[(j[0]+U[0])/2,(j[1]+U[1])/2],P=[(O[0]+W[0])/2,(O[1]+W[1])/2]}else if(E.touch0)I=E.touch0[0],P=E.touch0[1];else return;E.zoom("touch",n(N(v,I,P),E.extent,s))}}function B(h,...k){if(this.__zooming){var E=$(this,k).event(h),z=h.changedTouches,F=z.length,_,v;for(En(h),d&&clearTimeout(d),d=setTimeout(function(){d=null},g),_=0;_<F;++_)v=z[_],E.touch0&&E.touch0[2]===v.identifier?delete E.touch0:E.touch1&&E.touch1[2]===v.identifier&&delete E.touch1;if(E.touch1&&!E.touch0&&(E.touch0=E.touch1,delete E.touch1),E.touch0)E.touch0[1]=this.__zoom.invert(E.touch0[0]);else if(E.end(),E.taps===2&&(v=Ee(v,this),Math.hypot(f[0]-v[0],f[1]-v[1])<b)){var I=ye(this).on("dblclick.zoom");I&&I.apply(this,arguments)}}}return m.wheelDelta=function(h){return arguments.length?(r=typeof h=="function"?h:Ot(+h),m):r},m.filter=function(h){return arguments.length?(e=typeof h=="function"?h:Ot(!!h),m):e},m.touchable=function(h){return arguments.length?(o=typeof h=="function"?h:Ot(!!h),m):o},m.extent=function(h){return arguments.length?(t=typeof h=="function"?h:Ot([[+h[0][0],+h[0][1]],[+h[1][0],+h[1][1]]]),m):t},m.scaleExtent=function(h){return arguments.length?(i[0]=+h[0],i[1]=+h[1],m):[i[0],i[1]]},m.translateExtent=function(h){return arguments.length?(s[0][0]=+h[0][0],s[1][0]=+h[1][0],s[0][1]=+h[0][1],s[1][1]=+h[1][1],m):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},m.constrain=function(h){return arguments.length?(n=h,m):n},m.duration=function(h){return arguments.length?(a=+h,m):a},m.interpolate=function(h){return arguments.length?(c=h,m):c},m.on=function(){var h=u.on.apply(u,arguments);return h===u?m:h},m.clickDistance=function(h){return arguments.length?(p=(h=+h)*h,m):Math.sqrt(p)},m.tapDistance=function(h){return arguments.length?(b=+h,m):b},m}di();const fn=S.createContext(null),iu=fn.Provider,Ie={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.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 React Flow 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,t)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?t.targetHandle:t.sourceHandle}", edge id: ${t.id}.`,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.`},Do=Ie.error001();function J(e,t){const n=S.useContext(fn);if(n===null)throw new Error(Do);return ao(n,e,t)}const oe=()=>{const e=S.useContext(fn);if(e===null)throw new Error(Do);return S.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},au=e=>e.userSelectionActive?"none":"all";function Ho({position:e,children:t,className:n,style:r,...o}){const i=J(au),s=`${e}`.split("-");return C.createElement("div",{className:ae(["react-flow__panel",n,...s]),style:{...r,pointerEvents:i},...o},t)}function cu({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:C.createElement(Ho,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},C.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const lu=({x:e,y:t,label:n,labelStyle:r={},labelShowBg:o=!0,labelBgStyle:i={},labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:c,className:u,...l})=>{const f=S.useRef(null),[d,g]=S.useState({x:0,y:0,width:0,height:0}),x=ae(["react-flow__edge-textwrapper",u]);return S.useEffect(()=>{if(f.current){const p=f.current.getBBox();g({x:p.x,y:p.y,width:p.width,height:p.height})}},[n]),typeof n>"u"||!n?null:C.createElement("g",{transform:`translate(${e-d.width/2} ${t-d.height/2})`,className:x,visibility:d.width?"visible":"hidden",...l},o&&C.createElement("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}),C.createElement("text",{className:"react-flow__edge-text",y:d.height/2,dy:"0.3em",ref:f,style:r},n),c)};var uu=S.memo(lu);const Kn=e=>({width:e.offsetWidth,height:e.offsetHeight}),pt=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Qn=(e={x:0,y:0},t)=>({x:pt(e.x,t[0][0],t[1][0]),y:pt(e.y,t[0][1],t[1][1])}),Hr=(e,t,n)=>e<t?pt(Math.abs(e-t),1,50)/50:e>n?-pt(Math.abs(e-n),1,50)/50:0,Fo=(e,t)=>{const n=Hr(e.x,35,t.width-35)*20,r=Hr(e.y,35,t.height-35)*20;return[n,r]},Vo=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},fu=(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)}),Jn=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),du=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Fr=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),Hn=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},hu=e=>he(e.width)&&he(e.height)&&he(e.x)&&he(e.y),he=e=>!isNaN(e)&&isFinite(e),te=Symbol.for("internals"),Bo=["Enter"," ","Escape"],gu=(e,t)=>{},pu=e=>"nativeEvent"in e;function Fn(e){var o,i;const t=pu(e)?e.nativeEvent:e,n=((i=(o=t.composedPath)==null?void 0:o.call(t))==null?void 0:i[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(n==null?void 0:n.nodeName)||(n==null?void 0:n.hasAttribute("contenteditable"))||!!(n!=null&&n.closest(".nokey"))}const Lo=e=>"clientX"in e,Fe=(e,t)=>{var i,s;const n=Lo(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)}},on=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},Ft=({id:e,path:t,labelX:n,labelY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:u,style:l,markerEnd:f,markerStart:d,interactionWidth:g=20})=>C.createElement(C.Fragment,null,C.createElement("path",{id:e,style:l,d:t,fill:"none",className:"react-flow__edge-path",markerEnd:f,markerStart:d}),g&&C.createElement("path",{d:t,fill:"none",strokeOpacity:0,strokeWidth:g,className:"react-flow__edge-interaction"}),o&&he(n)&&he(r)?C.createElement(uu,{x:n,y:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:u}):null);Ft.displayName="BaseEdge";function _t(e,t,n){return n===void 0?n:r=>{const o=t().edges.find(i=>i.id===e);o&&n(r,{...o})}}function jo({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 Oo({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,u=t*.125+i*.375+a*.375+r*.125,l=Math.abs(c-e),f=Math.abs(u-t);return[c,u,l,f]}var Qe;(function(e){e.Strict="strict",e.Loose="loose"})(Qe||(Qe={}));var Ge;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ge||(Ge={}));var zt;(function(e){e.Partial="partial",e.Full="full"})(zt||(zt={}));var De;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(De||(De={}));var Pt;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Pt||(Pt={}));var X;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(X||(X={}));function Vr({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===X.Left||e===X.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function Xo({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top}){const[s,a]=Vr({pos:n,x1:e,y1:t,x2:r,y2:o}),[c,u]=Vr({pos:i,x1:r,y1:o,x2:e,y2:t}),[l,f,d,g]=Oo({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:a,targetControlX:c,targetControlY:u});return[`M${e},${t} C${s},${a} ${c},${u} ${r},${o}`,l,f,d,g]}const er=S.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=X.Bottom,targetPosition:i=X.Top,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,markerEnd:g,markerStart:x,interactionWidth:p})=>{const[b,m,w]=Xo({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i});return C.createElement(Ft,{path:b,labelX:m,labelY:w,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,markerEnd:g,markerStart:x,interactionWidth:p})});er.displayName="SimpleBezierEdge";const Br={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},mu=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.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},Lr=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function yu({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:r=X.Top,center:o,offset:i}){const s=Br[t],a=Br[r],c={x:e.x+s.x*i,y:e.y+s.y*i},u={x:n.x+a.x*i,y:n.y+a.y*i},l=mu({source:c,sourcePosition:t,target:u}),f=l.x!==0?"x":"y",d=l[f];let g=[],x,p;const b={x:0,y:0},m={x:0,y:0},[w,N,y,M]=jo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(s[f]*a[f]===-1){x=o.x??w,p=o.y??N;const D=[{x,y:c.y},{x,y:u.y}],V=[{x:c.x,y:p},{x:u.x,y:p}];s[f]===d?g=f==="x"?D:V:g=f==="x"?V:D}else{const D=[{x:c.x,y:u.y}],V=[{x:u.x,y:c.y}];if(f==="x"?g=s.x===d?V:D:g=s.y===d?D:V,t===r){const B=Math.abs(e[f]-n[f]);if(B<=i){const h=Math.min(i-1,i-B);s[f]===d?b[f]=(c[f]>e[f]?-1:1)*h:m[f]=(u[f]>n[f]?-1:1)*h}}if(t!==r){const B=f==="x"?"y":"x",h=s[f]===a[B],k=c[B]>u[B],E=c[B]<u[B];(s[f]===1&&(!h&&k||h&&E)||s[f]!==1&&(!h&&E||h&&k))&&(g=f==="x"?D:V)}const T={x:c.x+b.x,y:c.y+b.y},R={x:u.x+m.x,y:u.y+m.y},H=Math.max(Math.abs(T.x-g[0].x),Math.abs(R.x-g[0].x)),L=Math.max(Math.abs(T.y-g[0].y),Math.abs(R.y-g[0].y));H>=L?(x=(T.x+R.x)/2,p=g[0].y):(x=g[0].x,p=(T.y+R.y)/2)}return[[e,{x:c.x+b.x,y:c.y+b.y},...g,{x:u.x+m.x,y:u.y+m.y},n],x,p,y,M]}function xu(e,t,n,r){const o=Math.min(Lr(e,t)/2,Lr(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 u=e.x<n.x?-1:1,l=e.y<n.y?1:-1;return`L ${i+o*u},${s}Q ${i},${s} ${i},${s+o*l}`}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 Vn({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top,borderRadius:s=5,centerX:a,centerY:c,offset:u=20}){const[l,f,d,g,x]=yu({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:a,y:c},offset:u});return[l.reduce((b,m,w)=>{let N="";return w>0&&w<l.length-1?N=xu(l[w-1],m,l[w+1],s):N=`${w===0?"M":"L"}${m.x} ${m.y}`,b+=N,b},""),f,d,g,x]}const dn=S.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:u,style:l,sourcePosition:f=X.Bottom,targetPosition:d=X.Top,markerEnd:g,markerStart:x,pathOptions:p,interactionWidth:b})=>{const[m,w,N]=Vn({sourceX:e,sourceY:t,sourcePosition:f,targetX:n,targetY:r,targetPosition:d,borderRadius:p==null?void 0:p.borderRadius,offset:p==null?void 0:p.offset});return C.createElement(Ft,{path:m,labelX:w,labelY:N,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:u,style:l,markerEnd:g,markerStart:x,interactionWidth:b})});dn.displayName="SmoothStepEdge";const tr=S.memo(e=>{var t;return C.createElement(dn,{...e,pathOptions:S.useMemo(()=>{var n;return{borderRadius:0,offset:(n=e.pathOptions)==null?void 0:n.offset}},[(t=e.pathOptions)==null?void 0:t.offset])})});tr.displayName="StepEdge";function wu({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,s,a]=jo({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,s,a]}const nr=S.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:u,style:l,markerEnd:f,markerStart:d,interactionWidth:g})=>{const[x,p,b]=wu({sourceX:e,sourceY:t,targetX:n,targetY:r});return C.createElement(Ft,{path:x,labelX:p,labelY:b,label:o,labelStyle:i,labelShowBg:s,labelBgStyle:a,labelBgPadding:c,labelBgBorderRadius:u,style:l,markerEnd:f,markerStart:d,interactionWidth:g})});nr.displayName="StraightEdge";function Xt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function jr({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case X.Left:return[t-Xt(t-r,i),n];case X.Right:return[t+Xt(r-t,i),n];case X.Top:return[t,n-Xt(n-o,i)];case X.Bottom:return[t,n+Xt(o-n,i)]}}function Yo({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:r,targetY:o,targetPosition:i=X.Top,curvature:s=.25}){const[a,c]=jr({pos:n,x1:e,y1:t,x2:r,y2:o,c:s}),[u,l]=jr({pos:i,x1:r,y1:o,x2:e,y2:t,c:s}),[f,d,g,x]=Oo({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:c,targetControlX:u,targetControlY:l});return[`M${e},${t} C${a},${c} ${u},${l} ${r},${o}`,f,d,g,x]}const sn=S.memo(({sourceX:e,sourceY:t,targetX:n,targetY:r,sourcePosition:o=X.Bottom,targetPosition:i=X.Top,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,markerEnd:g,markerStart:x,pathOptions:p,interactionWidth:b})=>{const[m,w,N]=Yo({sourceX:e,sourceY:t,sourcePosition:o,targetX:n,targetY:r,targetPosition:i,curvature:p==null?void 0:p.curvature});return C.createElement(Ft,{path:m,labelX:w,labelY:N,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:u,labelBgPadding:l,labelBgBorderRadius:f,style:d,markerEnd:g,markerStart:x,interactionWidth:b})});sn.displayName="BezierEdge";const rr=S.createContext(null),vu=rr.Provider;rr.Consumer;const bu=()=>S.useContext(rr),_u=e=>"id"in e&&"source"in e&&"target"in e,Eu=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`reactflow__edge-${e}${t||""}-${n}${r||""}`,Bn=(e,t)=>typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`,Su=(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)),Nu=(e,t)=>{if(!e.source||!e.target)return t;let n;return _u(e)?n={...e}:n={...e,id:Eu(e)},Su(n,t)?t:t.concat(n)},Ln=({x:e,y:t},[n,r,o],i,[s,a])=>{const c={x:(e-n)/o,y:(t-r)/o};return i?{x:s*Math.round(c.x/s),y:a*Math.round(c.y/a)}:c},Uo=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r}),ft=(e,t=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const n=(e.width??0)*t[0],r=(e.height??0)*t[1],o={x:e.position.x-n,y:e.position.y-r};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-n,y:e.positionAbsolute.y-r}:o}},or=(e,t=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const{x:i,y:s}=ft(o,t).positionAbsolute;return fu(r,Jn({x:i,y:s,width:o.width||0,height:o.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return du(n)},qo=(e,t,[n,r,o]=[0,0,1],i=!1,s=!1,a=[0,0])=>{const c={x:(t.x-n)/o,y:(t.y-r)/o,width:t.width/o,height:t.height/o},u=[];return e.forEach(l=>{const{width:f,height:d,selectable:g=!0,hidden:x=!1}=l;if(s&&!g||x)return!1;const{positionAbsolute:p}=ft(l,a),b={x:p.x,y:p.y,width:f||0,height:d||0},m=Hn(c,b),w=typeof f>"u"||typeof d>"u"||f===null||d===null,N=i&&m>0,y=(f||0)*(d||0);(w||N||m>=y||l.dragging)&&u.push(l)}),u},Wo=(e,t)=>{const n=e.map(r=>r.id);return t.filter(r=>n.includes(r.source)||n.includes(r.target))},Go=(e,t,n,r,o,i=.1)=>{const s=t/(e.width*(1+i)),a=n/(e.height*(1+i)),c=Math.min(s,a),u=pt(c,r,o),l=e.x+e.width/2,f=e.y+e.height/2,d=t/2-l*u,g=n/2-f*u;return{x:d,y:g,zoom:u}},qe=(e,t=0)=>e.transition().duration(t);function Or(e,t,n,r){return(t[n]||[]).reduce((o,i)=>{var s,a;return`${e.id}-${i.id}-${n}`!==r&&o.push({id:i.id||null,type:n,nodeId:e.id,x:(((s=e.positionAbsolute)==null?void 0:s.x)??0)+i.x+i.width/2,y:(((a=e.positionAbsolute)==null?void 0:a.y)??0)+i.y+i.height/2}),o},[])}function ku(e,t,n,r,o,i){const{x:s,y:a}=Fe(e),u=t.elementsFromPoint(s,a).find(x=>x.classList.contains("react-flow__handle"));if(u){const x=u.getAttribute("data-nodeid");if(x){const p=sr(void 0,u),b=u.getAttribute("data-handleid"),m=i({nodeId:x,id:b,type:p});if(m){const w=o.find(N=>N.nodeId===x&&N.type===p&&N.id===b);return{handle:{id:b,type:p,nodeId:x,x:(w==null?void 0:w.x)||n.x,y:(w==null?void 0:w.y)||n.y},validHandleResult:m}}}}let l=[],f=1/0;if(o.forEach(x=>{const p=Math.sqrt((x.x-n.x)**2+(x.y-n.y)**2);if(p<=r){const b=i(x);p<=f&&(p<f?l=[{handle:x,validHandleResult:b}]:p===f&&l.push({handle:x,validHandleResult:b}),f=p)}}),!l.length)return{handle:null,validHandleResult:Zo()};if(l.length===1)return l[0];const d=l.some(({validHandleResult:x})=>x.isValid),g=l.some(({handle:x})=>x.type==="target");return l.find(({handle:x,validHandleResult:p})=>g?x.type==="target":d?p.isValid:!0)||l[0]}const Cu={source:null,target:null,sourceHandle:null,targetHandle:null},Zo=()=>({handleDomNode:null,isValid:!1,connection:Cu,endHandle:null});function Ko(e,t,n,r,o,i,s){const a=o==="target",c=s.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),u={...Zo(),handleDomNode:c};if(c){const l=sr(void 0,c),f=c.getAttribute("data-nodeid"),d=c.getAttribute("data-handleid"),g=c.classList.contains("connectable"),x=c.classList.contains("connectableend"),p={source:a?f:n,sourceHandle:a?d:r,target:a?n:f,targetHandle:a?r:d};u.connection=p,g&&x&&(t===Qe.Strict?a&&l==="source"||!a&&l==="target":f!==n||d!==r)&&(u.endHandle={nodeId:f,handleId:d,type:l},u.isValid=i(p))}return u}function Au({nodes:e,nodeId:t,handleId:n,handleType:r}){return e.reduce((o,i)=>{if(i[te]){const{handleBounds:s}=i[te];let a=[],c=[];s&&(a=Or(i,s,"source",`${t}-${n}-${r}`),c=Or(i,s,"target",`${t}-${n}-${r}`)),o.push(...a,...c)}return o},[])}function sr(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Sn(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function Mu(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function Qo({event:e,handleId:t,nodeId:n,onConnect:r,isTarget:o,getState:i,setState:s,isValidConnection:a,edgeUpdaterType:c,onReconnectEnd:u}){const l=Vo(e.target),{connectionMode:f,domNode:d,autoPanOnConnect:g,connectionRadius:x,onConnectStart:p,panBy:b,getNodes:m,cancelConnection:w}=i();let N=0,y;const{x:M,y:$}=Fe(e),D=l==null?void 0:l.elementFromPoint(M,$),V=sr(c,D),T=d==null?void 0:d.getBoundingClientRect();if(!T||!V)return;let R,H=Fe(e,T),L=!1,B=null,h=!1,k=null;const E=Au({nodes:m(),nodeId:n,handleId:t,handleType:V}),z=()=>{if(!g)return;const[v,I]=Fo(H,T);b({x:v,y:I}),N=requestAnimationFrame(z)};s({connectionPosition:H,connectionStatus:null,connectionNodeId:n,connectionHandleId:t,connectionHandleType:V,connectionStartHandle:{nodeId:n,handleId:t,type:V},connectionEndHandle:null}),p==null||p(e,{nodeId:n,handleId:t,handleType:V});function F(v){const{transform:I}=i();H=Fe(v,T);const{handle:P,validHandleResult:j}=ku(v,l,Ln(H,I,!1,[1,1]),x,E,O=>Ko(O,f,n,t,o?"target":"source",a,l));if(y=P,L||(z(),L=!0),k=j.handleDomNode,B=j.connection,h=j.isValid,s({connectionPosition:y&&h?Uo({x:y.x,y:y.y},I):H,connectionStatus:Mu(!!y,h),connectionEndHandle:j.endHandle}),!y&&!h&&!k)return Sn(R);B.source!==B.target&&k&&(Sn(R),R=k,k.classList.add("connecting","react-flow__handle-connecting"),k.classList.toggle("valid",h),k.classList.toggle("react-flow__handle-valid",h))}function _(v){var I,P;(y||k)&&B&&h&&(r==null||r(B)),(P=(I=i()).onConnectEnd)==null||P.call(I,v),c&&(u==null||u(v)),Sn(R),w(),cancelAnimationFrame(N),L=!1,h=!1,B=null,k=null,l.removeEventListener("mousemove",F),l.removeEventListener("mouseup",_),l.removeEventListener("touchmove",F),l.removeEventListener("touchend",_)}l.addEventListener("mousemove",F),l.addEventListener("mouseup",_),l.addEventListener("touchmove",F),l.addEventListener("touchend",_)}const Xr=()=>!0,$u=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),Iu=(e,t,n)=>r=>{const{connectionStartHandle:o,connectionEndHandle:i,connectionClickStartHandle:s}=r;return{connecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.handleId)===t&&(o==null?void 0:o.type)===n||(i==null?void 0:i.nodeId)===e&&(i==null?void 0:i.handleId)===t&&(i==null?void 0:i.type)===n,clickConnecting:(s==null?void 0:s.nodeId)===e&&(s==null?void 0:s.handleId)===t&&(s==null?void 0:s.type)===n}},Jo=S.forwardRef(({type:e="source",position:t=X.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:c,className:u,onMouseDown:l,onTouchStart:f,...d},g)=>{var T,R;const x=s||null,p=e==="target",b=oe(),m=bu(),{connectOnClick:w,noPanClassName:N}=J($u,ie),{connecting:y,clickConnecting:M}=J(Iu(m,x,e),ie);m||(R=(T=b.getState()).onError)==null||R.call(T,"010",Ie.error010());const $=H=>{const{defaultEdgeOptions:L,onConnect:B,hasDefaultEdges:h}=b.getState(),k={...L,...H};if(h){const{edges:E,setEdges:z}=b.getState();z(Nu(k,E))}B==null||B(k),a==null||a(k)},D=H=>{if(!m)return;const L=Lo(H);o&&(L&&H.button===0||!L)&&Qo({event:H,handleId:x,nodeId:m,onConnect:$,isTarget:p,getState:b.getState,setState:b.setState,isValidConnection:n||b.getState().isValidConnection||Xr}),L?l==null||l(H):f==null||f(H)},V=H=>{const{onClickConnectStart:L,onClickConnectEnd:B,connectionClickStartHandle:h,connectionMode:k,isValidConnection:E}=b.getState();if(!m||!h&&!o)return;if(!h){L==null||L(H,{nodeId:m,handleId:x,handleType:e}),b.setState({connectionClickStartHandle:{nodeId:m,type:e,handleId:x}});return}const z=Vo(H.target),F=n||E||Xr,{connection:_,isValid:v}=Ko({nodeId:m,id:x,type:e},k,h.nodeId,h.handleId||null,h.type,F,z);v&&$(_),B==null||B(H),b.setState({connectionClickStartHandle:null})};return C.createElement("div",{"data-handleid":x,"data-nodeid":m,"data-handlepos":t,"data-id":`${m}-${x}-${e}`,className:ae(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",N,u,{source:!p,target:p,connectable:r,connectablestart:o,connectableend:i,connecting:M,connectionindicator:r&&(o&&!y||i&&y)}]),onMouseDown:D,onTouchStart:D,onClick:w?V:void 0,ref:g,...d},c)});Jo.displayName="Handle";var Ve=S.memo(Jo);const es=({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:r=X.Bottom})=>C.createElement(C.Fragment,null,C.createElement(Ve,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,C.createElement(Ve,{type:"source",position:r,isConnectable:t}));es.displayName="DefaultNode";var jn=S.memo(es);const ts=({data:e,isConnectable:t,sourcePosition:n=X.Bottom})=>C.createElement(C.Fragment,null,e==null?void 0:e.label,C.createElement(Ve,{type:"source",position:n,isConnectable:t}));ts.displayName="InputNode";var ns=S.memo(ts);const rs=({data:e,isConnectable:t,targetPosition:n=X.Top})=>C.createElement(C.Fragment,null,C.createElement(Ve,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label);rs.displayName="OutputNode";var os=S.memo(rs);const ir=()=>null;ir.displayName="GroupNode";const Tu=e=>({selectedNodes:e.getNodes().filter(t=>t.selected),selectedEdges:e.edges.filter(t=>t.selected).map(t=>({...t}))}),Yt=e=>e.id;function zu(e,t){return ie(e.selectedNodes.map(Yt),t.selectedNodes.map(Yt))&&ie(e.selectedEdges.map(Yt),t.selectedEdges.map(Yt))}const ss=S.memo(({onSelectionChange:e})=>{const t=oe(),{selectedNodes:n,selectedEdges:r}=J(Tu,zu);return S.useEffect(()=>{const o={nodes:n,edges:r};e==null||e(o),t.getState().onSelectionChange.forEach(i=>i(o))},[n,r,e]),null});ss.displayName="SelectionListener";const Pu=e=>!!e.onSelectionChange;function Ru({onSelectionChange:e}){const t=J(Pu);return e||t?C.createElement(ss,{onSelectionChange:e}):null}const Du=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function ot(e,t){S.useEffect(()=>{typeof e<"u"&&t(e)},[e])}function q(e,t,n){S.useEffect(()=>{typeof t<"u"&&n({[e]:t})},[t])}const Hu=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:o,onConnectStart:i,onConnectEnd:s,onClickConnectStart:a,onClickConnectEnd:c,nodesDraggable:u,nodesConnectable:l,nodesFocusable:f,edgesFocusable:d,edgesUpdatable:g,elevateNodesOnSelect:x,minZoom:p,maxZoom:b,nodeExtent:m,onNodesChange:w,onEdgesChange:N,elementsSelectable:y,connectionMode:M,snapGrid:$,snapToGrid:D,translateExtent:V,connectOnClick:T,defaultEdgeOptions:R,fitView:H,fitViewOptions:L,onNodesDelete:B,onEdgesDelete:h,onNodeDrag:k,onNodeDragStart:E,onNodeDragStop:z,onSelectionDrag:F,onSelectionDragStart:_,onSelectionDragStop:v,noPanClassName:I,nodeOrigin:P,rfId:j,autoPanOnConnect:O,autoPanOnNodeDrag:U,onError:W,connectionRadius:G,isValidConnection:Z,nodeDragThreshold:ee})=>{const{setNodes:K,setEdges:ge,setDefaultNodesAndEdges:fe,setMinZoom:pe,setMaxZoom:de,setTranslateExtent:ne,setNodeExtent:be,reset:Q}=J(Du,ie),Y=oe();return S.useEffect(()=>{const le=r==null?void 0:r.map(Be=>({...Be,...R}));return fe(n,le),()=>{Q()}},[]),q("defaultEdgeOptions",R,Y.setState),q("connectionMode",M,Y.setState),q("onConnect",o,Y.setState),q("onConnectStart",i,Y.setState),q("onConnectEnd",s,Y.setState),q("onClickConnectStart",a,Y.setState),q("onClickConnectEnd",c,Y.setState),q("nodesDraggable",u,Y.setState),q("nodesConnectable",l,Y.setState),q("nodesFocusable",f,Y.setState),q("edgesFocusable",d,Y.setState),q("edgesUpdatable",g,Y.setState),q("elementsSelectable",y,Y.setState),q("elevateNodesOnSelect",x,Y.setState),q("snapToGrid",D,Y.setState),q("snapGrid",$,Y.setState),q("onNodesChange",w,Y.setState),q("onEdgesChange",N,Y.setState),q("connectOnClick",T,Y.setState),q("fitViewOnInit",H,Y.setState),q("fitViewOnInitOptions",L,Y.setState),q("onNodesDelete",B,Y.setState),q("onEdgesDelete",h,Y.setState),q("onNodeDrag",k,Y.setState),q("onNodeDragStart",E,Y.setState),q("onNodeDragStop",z,Y.setState),q("onSelectionDrag",F,Y.setState),q("onSelectionDragStart",_,Y.setState),q("onSelectionDragStop",v,Y.setState),q("noPanClassName",I,Y.setState),q("nodeOrigin",P,Y.setState),q("rfId",j,Y.setState),q("autoPanOnConnect",O,Y.setState),q("autoPanOnNodeDrag",U,Y.setState),q("onError",W,Y.setState),q("connectionRadius",G,Y.setState),q("isValidConnection",Z,Y.setState),q("nodeDragThreshold",ee,Y.setState),ot(e,K),ot(t,ge),ot(p,pe),ot(b,de),ot(V,ne),ot(m,be),null},Yr={display:"none"},Fu={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},is="react-flow__node-desc",as="react-flow__edge-desc",Vu="react-flow__aria-live",Bu=e=>e.ariaLiveMessage;function Lu({rfId:e}){const t=J(Bu);return C.createElement("div",{id:`${Vu}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Fu},t)}function ju({rfId:e,disableKeyboardA11y:t}){return C.createElement(C.Fragment,null,C.createElement("div",{id:`${is}-${e}`,style:Yr},"Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),C.createElement("div",{id:`${as}-${e}`,style:Yr},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!t&&C.createElement(Lu,{rfId:e}))}var Rt=(e=null,t={actInsideInputWithModifier:!0})=>{const[n,r]=S.useState(!1),o=S.useRef(!1),i=S.useRef(new Set([])),[s,a]=S.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.split("+")),l=u.reduce((f,d)=>f.concat(...d),[]);return[u,l]}return[[],[]]},[e]);return S.useEffect(()=>{const c=typeof document<"u"?document:null,u=(t==null?void 0:t.target)||c;if(e!==null){const l=g=>{if(o.current=g.ctrlKey||g.metaKey||g.shiftKey,(!o.current||o.current&&!t.actInsideInputWithModifier)&&Fn(g))return!1;const p=qr(g.code,a);i.current.add(g[p]),Ur(s,i.current,!1)&&(g.preventDefault(),r(!0))},f=g=>{if((!o.current||o.current&&!t.actInsideInputWithModifier)&&Fn(g))return!1;const p=qr(g.code,a);Ur(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(g[p]),g.key==="Meta"&&i.current.clear(),o.current=!1},d=()=>{i.current.clear(),r(!1)};return u==null||u.addEventListener("keydown",l),u==null||u.addEventListener("keyup",f),window.addEventListener("blur",d),()=>{u==null||u.removeEventListener("keydown",l),u==null||u.removeEventListener("keyup",f),window.removeEventListener("blur",d)}}},[e,r]),n};function Ur(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function qr(e,t){return t.includes(e)?"code":"key"}function cs(e,t,n,r){var a,c;const o=e.parentNode||e.parentId;if(!o)return n;const i=t.get(o),s=ft(i,r);return cs(i,t,{x:(n.x??0)+s.x,y:(n.y??0)+s.y,z:(((a=i[te])==null?void 0:a.z)??0)>(n.z??0)?((c=i[te])==null?void 0:c.z)??0:n.z??0},r)}function ls(e,t,n){e.forEach(r=>{var i;const o=r.parentNode||r.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||n!=null&&n[r.id]){const{x:s,y:a,z:c}=cs(r,e,{...r.position,z:((i=r[te])==null?void 0:i.z)??0},t);r.positionAbsolute={x:s,y:a},r[te].z=c,n!=null&&n[r.id]&&(r[te].isParent=!0)}})}function Nn(e,t,n,r){const o=new Map,i={},s=r?1e3:0;return e.forEach(a=>{var g;const c=(he(a.zIndex)?a.zIndex:0)+(a.selected?s:0),u=t.get(a.id),l={...a,positionAbsolute:{x:a.position.x,y:a.position.y}},f=a.parentNode||a.parentId;f&&(i[f]=!0);const d=(u==null?void 0:u.type)&&(u==null?void 0:u.type)!==a.type;Object.defineProperty(l,te,{enumerable:!1,value:{handleBounds:d||(g=u==null?void 0:u[te])==null?void 0:g.handleBounds,z:c}}),o.set(a.id,l)}),ls(o,n,i),o}function us(e,t={}){const{getNodes:n,width:r,height:o,minZoom:i,maxZoom:s,d3Zoom:a,d3Selection:c,fitViewOnInitDone:u,fitViewOnInit:l,nodeOrigin:f}=e(),d=t.initial&&!u&&l;if(a&&c&&(d||!t.initial)){const x=n().filter(b=>{var w;const m=t.includeHiddenNodes?b.width&&b.height:!b.hidden;return(w=t.nodes)!=null&&w.length?m&&t.nodes.some(N=>N.id===b.id):m}),p=x.every(b=>b.width&&b.height);if(x.length>0&&p){const b=or(x,f),{x:m,y:w,zoom:N}=Go(b,r,o,t.minZoom??i,t.maxZoom??s,t.padding??.1),y=He.translate(m,w).scale(N);return typeof t.duration=="number"&&t.duration>0?a.transform(qe(c,t.duration),y):a.transform(c,y),!0}}return!1}function Ou(e,t){return e.forEach(n=>{const r=t.get(n.id);r&&t.set(r.id,{...r,[te]:r[te],selected:n.selected})}),new Map(t)}function Xu(e,t){return t.map(n=>{const r=e.find(o=>o.id===n.id);return r&&(n.selected=r.selected),n})}function Ut({changedNodes:e,changedEdges:t,get:n,set:r}){const{nodeInternals:o,edges:i,onNodesChange:s,onEdgesChange:a,hasDefaultNodes:c,hasDefaultEdges:u}=n();e!=null&&e.length&&(c&&r({nodeInternals:Ou(e,o)}),s==null||s(e)),t!=null&&t.length&&(u&&r({edges:Xu(t,i)}),a==null||a(t))}const st=()=>{},Yu={zoomIn:st,zoomOut:st,zoomTo:st,getZoom:()=>1,setViewport:st,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:st,fitBounds:st,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},Uu=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),qu=()=>{const e=oe(),{d3Zoom:t,d3Selection:n}=J(Uu,ie);return S.useMemo(()=>n&&t?{zoomIn:o=>t.scaleBy(qe(n,o==null?void 0:o.duration),1.2),zoomOut:o=>t.scaleBy(qe(n,o==null?void 0:o.duration),1/1.2),zoomTo:(o,i)=>t.scaleTo(qe(n,i==null?void 0:i.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,i)=>{const[s,a,c]=e.getState().transform,u=He.translate(o.x??s,o.y??a).scale(o.zoom??c);t.transform(qe(n,i==null?void 0:i.duration),u)},getViewport:()=>{const[o,i,s]=e.getState().transform;return{x:o,y:i,zoom:s}},fitView:o=>us(e.getState,o),setCenter:(o,i,s)=>{const{width:a,height:c,maxZoom:u}=e.getState(),l=typeof(s==null?void 0:s.zoom)<"u"?s.zoom:u,f=a/2-o*l,d=c/2-i*l,g=He.translate(f,d).scale(l);t.transform(qe(n,s==null?void 0:s.duration),g)},fitBounds:(o,i)=>{const{width:s,height:a,minZoom:c,maxZoom:u}=e.getState(),{x:l,y:f,zoom:d}=Go(o,s,a,c,u,(i==null?void 0:i.padding)??.1),g=He.translate(l,f).scale(d);t.transform(qe(n,i==null?void 0:i.duration),g)},project:o=>{const{transform:i,snapToGrid:s,snapGrid:a}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Ln(o,i,s,a)},screenToFlowPosition:o=>{const{transform:i,snapToGrid:s,snapGrid:a,domNode:c}=e.getState();if(!c)return o;const{x:u,y:l}=c.getBoundingClientRect(),f={x:o.x-u,y:o.y-l};return Ln(f,i,s,a)},flowToScreenPosition:o=>{const{transform:i,domNode:s}=e.getState();if(!s)return o;const{x:a,y:c}=s.getBoundingClientRect(),u=Uo(o,i);return{x:u.x+a,y:u.y+c}},viewportInitialized:!0}:Yu,[t,n])};function ar(){const e=qu(),t=oe(),n=S.useCallback(()=>t.getState().getNodes().map(p=>({...p})),[]),r=S.useCallback(p=>t.getState().nodeInternals.get(p),[]),o=S.useCallback(()=>{const{edges:p=[]}=t.getState();return p.map(b=>({...b}))},[]),i=S.useCallback(p=>{const{edges:b=[]}=t.getState();return b.find(m=>m.id===p)},[]),s=S.useCallback(p=>{const{getNodes:b,setNodes:m,hasDefaultNodes:w,onNodesChange:N}=t.getState(),y=b(),M=typeof p=="function"?p(y):p;if(w)m(M);else if(N){const $=M.length===0?y.map(D=>({type:"remove",id:D.id})):M.map(D=>({item:D,type:"reset"}));N($)}},[]),a=S.useCallback(p=>{const{edges:b=[],setEdges:m,hasDefaultEdges:w,onEdgesChange:N}=t.getState(),y=typeof p=="function"?p(b):p;if(w)m(y);else if(N){const M=y.length===0?b.map($=>({type:"remove",id:$.id})):y.map($=>({item:$,type:"reset"}));N(M)}},[]),c=S.useCallback(p=>{const b=Array.isArray(p)?p:[p],{getNodes:m,setNodes:w,hasDefaultNodes:N,onNodesChange:y}=t.getState();if(N){const $=[...m(),...b];w($)}else if(y){const M=b.map($=>({item:$,type:"add"}));y(M)}},[]),u=S.useCallback(p=>{const b=Array.isArray(p)?p:[p],{edges:m=[],setEdges:w,hasDefaultEdges:N,onEdgesChange:y}=t.getState();if(N)w([...m,...b]);else if(y){const M=b.map($=>({item:$,type:"add"}));y(M)}},[]),l=S.useCallback(()=>{const{getNodes:p,edges:b=[],transform:m}=t.getState(),[w,N,y]=m;return{nodes:p().map(M=>({...M})),edges:b.map(M=>({...M})),viewport:{x:w,y:N,zoom:y}}},[]),f=S.useCallback(({nodes:p,edges:b})=>{const{nodeInternals:m,getNodes:w,edges:N,hasDefaultNodes:y,hasDefaultEdges:M,onNodesDelete:$,onEdgesDelete:D,onNodesChange:V,onEdgesChange:T}=t.getState(),R=(p||[]).map(k=>k.id),H=(b||[]).map(k=>k.id),L=w().reduce((k,E)=>{const z=E.parentNode||E.parentId,F=!R.includes(E.id)&&z&&k.find(v=>v.id===z);return(typeof E.deletable=="boolean"?E.deletable:!0)&&(R.includes(E.id)||F)&&k.push(E),k},[]),B=N.filter(k=>typeof k.deletable=="boolean"?k.deletable:!0),h=B.filter(k=>H.includes(k.id));if(L||h){const k=Wo(L,B),E=[...h,...k],z=E.reduce((F,_)=>(F.includes(_.id)||F.push(_.id),F),[]);if((M||y)&&(M&&t.setState({edges:N.filter(F=>!z.includes(F.id))}),y&&(L.forEach(F=>{m.delete(F.id)}),t.setState({nodeInternals:new Map(m)}))),z.length>0&&(D==null||D(E),T&&T(z.map(F=>({id:F,type:"remove"})))),L.length>0&&($==null||$(L),V)){const F=L.map(_=>({id:_.id,type:"remove"}));V(F)}}},[]),d=S.useCallback(p=>{const b=hu(p),m=b?null:t.getState().nodeInternals.get(p.id);return!b&&!m?[null,null,b]:[b?p:Fr(m),m,b]},[]),g=S.useCallback((p,b=!0,m)=>{const[w,N,y]=d(p);return w?(m||t.getState().getNodes()).filter(M=>{if(!y&&(M.id===N.id||!M.positionAbsolute))return!1;const $=Fr(M),D=Hn($,w);return b&&D>0||D>=w.width*w.height}):[]},[]),x=S.useCallback((p,b,m=!0)=>{const[w]=d(p);if(!w)return!1;const N=Hn(w,b);return m&&N>0||N>=w.width*w.height},[]);return S.useMemo(()=>({...e,getNodes:n,getNode:r,getEdges:o,getEdge:i,setNodes:s,setEdges:a,addNodes:c,addEdges:u,toObject:l,deleteElements:f,getIntersectingNodes:g,isNodeIntersecting:x}),[e,n,r,o,i,s,a,c,u,l,f,g,x])}const Wu={actInsideInputWithModifier:!1};var Gu=({deleteKeyCode:e,multiSelectionKeyCode:t})=>{const n=oe(),{deleteElements:r}=ar(),o=Rt(e,Wu),i=Rt(t);S.useEffect(()=>{if(o){const{edges:s,getNodes:a}=n.getState(),c=a().filter(l=>l.selected),u=s.filter(l=>l.selected);r({nodes:c,edges:u}),n.setState({nodesSelectionActive:!1})}},[o]),S.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])};function Zu(e){const t=oe();S.useEffect(()=>{let n;const r=()=>{var i,s;if(!e.current)return;const o=Kn(e.current);(o.height===0||o.width===0)&&((s=(i=t.getState()).onError)==null||s.call(i,"004",Ie.error004())),t.setState({width:o.width||500,height:o.height||500})};return r(),window.addEventListener("resize",r),e.current&&(n=new ResizeObserver(()=>r()),n.observe(e.current)),()=>{window.removeEventListener("resize",r),n&&e.current&&n.unobserve(e.current)}},[])}const cr={position:"absolute",width:"100%",height:"100%",top:0,left:0},Ku=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,qt=e=>({x:e.x,y:e.y,zoom:e.k}),it=(e,t)=>e.target.closest(`.${t}`),Wr=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Gr=e=>{const t=e.ctrlKey&&on()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t},Qu=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),Ju=({onMove:e,onMoveStart:t,onMoveEnd:n,onPaneContextMenu:r,zoomOnScroll:o=!0,zoomOnPinch:i=!0,panOnScroll:s=!1,panOnScrollSpeed:a=.5,panOnScrollMode:c=Ge.Free,zoomOnDoubleClick:u=!0,elementsSelectable:l,panOnDrag:f=!0,defaultViewport:d,translateExtent:g,minZoom:x,maxZoom:p,zoomActivationKeyCode:b,preventScrolling:m=!0,children:w,noWheelClassName:N,noPanClassName:y})=>{const M=S.useRef(),$=oe(),D=S.useRef(!1),V=S.useRef(!1),T=S.useRef(null),R=S.useRef({x:0,y:0,zoom:0}),{d3Zoom:H,d3Selection:L,d3ZoomHandler:B,userSelectionActive:h}=J(Qu,ie),k=Rt(b),E=S.useRef(0),z=S.useRef(!1),F=S.useRef();return Zu(T),S.useEffect(()=>{if(T.current){const _=T.current.getBoundingClientRect(),v=su().scaleExtent([x,p]).translateExtent(g),I=ye(T.current).call(v),P=He.translate(d.x,d.y).scale(pt(d.zoom,x,p)),j=[[0,0],[_.width,_.height]],O=v.constrain()(P,j,g);v.transform(I,O),v.wheelDelta(Gr),$.setState({d3Zoom:v,d3Selection:I,d3ZoomHandler:I.on("wheel.zoom"),transform:[O.x,O.y,O.k],domNode:T.current.closest(".react-flow")})}},[]),S.useEffect(()=>{L&&H&&(s&&!k&&!h?L.on("wheel.zoom",_=>{if(it(_,N))return!1;_.preventDefault(),_.stopImmediatePropagation();const v=L.property("__zoom").k||1;if(_.ctrlKey&&i){const Z=Ee(_),ee=Gr(_),K=v*Math.pow(2,ee);H.scaleTo(L,K,Z,_);return}const I=_.deltaMode===1?20:1;let P=c===Ge.Vertical?0:_.deltaX*I,j=c===Ge.Horizontal?0:_.deltaY*I;!on()&&_.shiftKey&&c!==Ge.Vertical&&(P=_.deltaY*I,j=0),H.translateBy(L,-(P/v)*a,-(j/v)*a,{internal:!0});const O=qt(L.property("__zoom")),{onViewportChangeStart:U,onViewportChange:W,onViewportChangeEnd:G}=$.getState();clearTimeout(F.current),z.current||(z.current=!0,t==null||t(_,O),U==null||U(O)),z.current&&(e==null||e(_,O),W==null||W(O),F.current=setTimeout(()=>{n==null||n(_,O),G==null||G(O),z.current=!1},150))},{passive:!1}):typeof B<"u"&&L.on("wheel.zoom",function(_,v){if(!m&&_.type==="wheel"&&!_.ctrlKey||it(_,N))return null;_.preventDefault(),B.call(this,_,v)},{passive:!1}))},[h,s,c,L,H,B,k,i,m,N,t,e,n]),S.useEffect(()=>{H&&H.on("start",_=>{var P,j;if(!_.sourceEvent||_.sourceEvent.internal)return null;E.current=(P=_.sourceEvent)==null?void 0:P.button;const{onViewportChangeStart:v}=$.getState(),I=qt(_.transform);D.current=!0,R.current=I,((j=_.sourceEvent)==null?void 0:j.type)==="mousedown"&&$.setState({paneDragging:!0}),v==null||v(I),t==null||t(_.sourceEvent,I)})},[H,t]),S.useEffect(()=>{H&&(h&&!D.current?H.on("zoom",null):h||H.on("zoom",_=>{var I;const{onViewportChange:v}=$.getState();if($.setState({transform:[_.transform.x,_.transform.y,_.transform.k]}),V.current=!!(r&&Wr(f,E.current??0)),(e||v)&&!((I=_.sourceEvent)!=null&&I.internal)){const P=qt(_.transform);v==null||v(P),e==null||e(_.sourceEvent,P)}}))},[h,H,e,f,r]),S.useEffect(()=>{H&&H.on("end",_=>{if(!_.sourceEvent||_.sourceEvent.internal)return null;const{onViewportChangeEnd:v}=$.getState();if(D.current=!1,$.setState({paneDragging:!1}),r&&Wr(f,E.current??0)&&!V.current&&r(_.sourceEvent),V.current=!1,(n||v)&&Ku(R.current,_.transform)){const I=qt(_.transform);R.current=I,clearTimeout(M.current),M.current=setTimeout(()=>{v==null||v(I),n==null||n(_.sourceEvent,I)},s?150:0)}})},[H,s,f,n,r]),S.useEffect(()=>{H&&H.filter(_=>{const v=k||o,I=i&&_.ctrlKey;if((f===!0||Array.isArray(f)&&f.includes(1))&&_.button===1&&_.type==="mousedown"&&(it(_,"react-flow__node")||it(_,"react-flow__edge")))return!0;if(!f&&!v&&!s&&!u&&!i||h||!u&&_.type==="dblclick"||it(_,N)&&_.type==="wheel"||it(_,y)&&(_.type!=="wheel"||s&&_.type==="wheel"&&!k)||!i&&_.ctrlKey&&_.type==="wheel"||!v&&!s&&!I&&_.type==="wheel"||!f&&(_.type==="mousedown"||_.type==="touchstart")||Array.isArray(f)&&!f.includes(_.button)&&_.type==="mousedown")return!1;const P=Array.isArray(f)&&f.includes(_.button)||!_.button||_.button<=1;return(!_.ctrlKey||_.type==="wheel")&&P})},[h,H,o,i,s,u,f,l,k]),C.createElement("div",{className:"react-flow__renderer",ref:T,style:cr},w)},ef=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function tf(){const{userSelectionActive:e,userSelectionRect:t}=J(ef,ie);return e&&t?C.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}function Zr(e,t){const n=t.parentNode||t.parentId,r=e.find(o=>o.id===n);if(r){const o=t.position.x+t.width-r.width,i=t.position.y+t.height-r.height;if(o>0||i>0||t.position.x<0||t.position.y<0){if(r.style={...r.style},r.style.width=r.style.width??r.width,r.style.height=r.style.height??r.height,o>0&&(r.style.width+=o),i>0&&(r.style.height+=i),t.position.x<0){const s=Math.abs(t.position.x);r.position.x=r.position.x-s,r.style.width+=s,t.position.x=0}if(t.position.y<0){const s=Math.abs(t.position.y);r.position.y=r.position.y-s,r.style.height+=s,t.position.y=0}r.width=r.style.width,r.height=r.style.height}}}function fs(e,t){if(e.some(r=>r.type==="reset"))return e.filter(r=>r.type==="reset").map(r=>r.item);const n=e.filter(r=>r.type==="add").map(r=>r.item);return t.reduce((r,o)=>{const i=e.filter(a=>a.id===o.id);if(i.length===0)return r.push(o),r;const s={...o};for(const a of i)if(a)switch(a.type){case"select":{s.selected=a.selected;break}case"position":{typeof a.position<"u"&&(s.position=a.position),typeof a.positionAbsolute<"u"&&(s.positionAbsolute=a.positionAbsolute),typeof a.dragging<"u"&&(s.dragging=a.dragging),s.expandParent&&Zr(r,s);break}case"dimensions":{typeof a.dimensions<"u"&&(s.width=a.dimensions.width,s.height=a.dimensions.height),typeof a.updateStyle<"u"&&(s.style={...s.style||{},...a.dimensions}),typeof a.resizing=="boolean"&&(s.resizing=a.resizing),s.expandParent&&Zr(r,s);break}case"remove":return r}return r.push(s),r},n)}function ds(e,t){return fs(e,t)}function nf(e,t){return fs(e,t)}const Re=(e,t)=>({id:e,type:"select",selected:t});function ct(e,t){return e.reduce((n,r)=>{const o=t.includes(r.id);return!r.selected&&o?(r.selected=!0,n.push(Re(r.id,!0))):r.selected&&!o&&(r.selected=!1,n.push(Re(r.id,!1))),n},[])}const kn=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},rf=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),hs=S.memo(({isSelecting:e,selectionMode:t=zt.Full,panOnDrag:n,onSelectionStart:r,onSelectionEnd:o,onPaneClick:i,onPaneContextMenu:s,onPaneScroll:a,onPaneMouseEnter:c,onPaneMouseMove:u,onPaneMouseLeave:l,children:f})=>{const d=S.useRef(null),g=oe(),x=S.useRef(0),p=S.useRef(0),b=S.useRef(),{userSelectionActive:m,elementsSelectable:w,dragging:N}=J(rf,ie),y=()=>{g.setState({userSelectionActive:!1,userSelectionRect:null}),x.current=0,p.current=0},M=B=>{i==null||i(B),g.getState().resetSelectedElements(),g.setState({nodesSelectionActive:!1})},$=B=>{if(Array.isArray(n)&&(n!=null&&n.includes(2))){B.preventDefault();return}s==null||s(B)},D=a?B=>a(B):void 0,V=B=>{const{resetSelectedElements:h,domNode:k}=g.getState();if(b.current=k==null?void 0:k.getBoundingClientRect(),!w||!e||B.button!==0||B.target!==d.current||!b.current)return;const{x:E,y:z}=Fe(B,b.current);h(),g.setState({userSelectionRect:{width:0,height:0,startX:E,startY:z,x:E,y:z}}),r==null||r(B)},T=B=>{const{userSelectionRect:h,nodeInternals:k,edges:E,transform:z,onNodesChange:F,onEdgesChange:_,nodeOrigin:v,getNodes:I}=g.getState();if(!e||!b.current||!h)return;g.setState({userSelectionActive:!0,nodesSelectionActive:!1});const P=Fe(B,b.current),j=h.startX??0,O=h.startY??0,U={...h,x:P.x<j?P.x:j,y:P.y<O?P.y:O,width:Math.abs(P.x-j),height:Math.abs(P.y-O)},W=I(),G=qo(k,U,z,t===zt.Partial,!0,v),Z=Wo(G,E).map(K=>K.id),ee=G.map(K=>K.id);if(x.current!==ee.length){x.current=ee.length;const K=ct(W,ee);K.length&&(F==null||F(K))}if(p.current!==Z.length){p.current=Z.length;const K=ct(E,Z);K.length&&(_==null||_(K))}g.setState({userSelectionRect:U})},R=B=>{if(B.button!==0)return;const{userSelectionRect:h}=g.getState();!m&&h&&B.target===d.current&&(M==null||M(B)),g.setState({nodesSelectionActive:x.current>0}),y(),o==null||o(B)},H=B=>{m&&(g.setState({nodesSelectionActive:x.current>0}),o==null||o(B)),y()},L=w&&(e||m);return C.createElement("div",{className:ae(["react-flow__pane",{dragging:N,selection:e}]),onClick:L?void 0:kn(M,d),onContextMenu:kn($,d),onWheel:kn(D,d),onMouseEnter:L?void 0:c,onMouseDown:L?V:void 0,onMouseMove:L?T:u,onMouseUp:L?R:void 0,onMouseLeave:L?H:l,ref:d,style:cr},f,C.createElement(tf,null))});hs.displayName="Pane";function gs(e,t){const n=e.parentNode||e.parentId;if(!n)return!1;const r=t.get(n);return r?r.selected?!0:gs(r,t):!1}function Kr(e,t,n){let r=e;do{if(r!=null&&r.matches(t))return!0;if(r===n.current)return!1;r=r.parentElement}while(r);return!1}function of(e,t,n,r){return Array.from(e.values()).filter(o=>(o.selected||o.id===r)&&(!o.parentNode||o.parentId||!gs(o,e))&&(o.draggable||t&&typeof o.draggable>"u")).map(o=>{var i,s;return{id:o.id,position:o.position||{x:0,y:0},positionAbsolute:o.positionAbsolute||{x:0,y:0},distance:{x:n.x-(((i=o.positionAbsolute)==null?void 0:i.x)??0),y:n.y-(((s=o.positionAbsolute)==null?void 0:s.y)??0)},delta:{x:0,y:0},extent:o.extent,parentNode:o.parentNode||o.parentId,parentId:o.parentNode||o.parentId,width:o.width,height:o.height,expandParent:o.expandParent}})}function sf(e,t){return!t||t==="parent"?t:[t[0],[t[1][0]-(e.width||0),t[1][1]-(e.height||0)]]}function ps(e,t,n,r,o=[0,0],i){const s=sf(e,e.extent||r);let a=s;const c=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(c&&e.width&&e.height){const f=n.get(c),{x:d,y:g}=ft(f,o).positionAbsolute;a=f&&he(d)&&he(g)&&he(f.width)&&he(f.height)?[[d+e.width*o[0],g+e.height*o[1]],[d+f.width-e.width+e.width*o[0],g+f.height-e.height+e.height*o[1]]]:a}else i==null||i("005",Ie.error005()),a=s;else if(e.extent&&c&&e.extent!=="parent"){const f=n.get(c),{x:d,y:g}=ft(f,o).positionAbsolute;a=[[e.extent[0][0]+d,e.extent[0][1]+g],[e.extent[1][0]+d,e.extent[1][1]+g]]}let u={x:0,y:0};if(c){const f=n.get(c);u=ft(f,o).positionAbsolute}const l=a&&a!=="parent"?Qn(t,a):t;return{position:{x:l.x-u.x,y:l.y-u.y},positionAbsolute:l}}function Cn({nodeId:e,dragItems:t,nodeInternals:n}){const r=t.map(o=>({...n.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?r.find(o=>o.id===e):r[0],r]}const Qr=(e,t,n,r)=>{const o=t.querySelectorAll(e);if(!o||!o.length)return null;const i=Array.from(o),s=t.getBoundingClientRect(),a={x:s.width*r[0],y:s.height*r[1]};return i.map(c=>{const u=c.getBoundingClientRect();return{id:c.getAttribute("data-handleid"),position:c.getAttribute("data-handlepos"),x:(u.left-s.left-a.x)/n,y:(u.top-s.top-a.y)/n,...Kn(c)}})};function Et(e,t,n){return n===void 0?n:r=>{const o=t().nodeInternals.get(e);o&&n(r,{...o})}}function On({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeInternals:a,onError:c}=t.getState(),u=a.get(e);if(!u){c==null||c("012",Ie.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&s)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var l;return(l=r==null?void 0:r.current)==null?void 0:l.blur()})):o([e])}function af(){const e=oe();return S.useCallback(({sourceEvent:n})=>{const{transform:r,snapGrid:o,snapToGrid:i}=e.getState(),s=n.touches?n.touches[0].clientX:n.clientX,a=n.touches?n.touches[0].clientY:n.clientY,c={x:(s-r[0])/r[2],y:(a-r[1])/r[2]};return{xSnapped:i?o[0]*Math.round(c.x/o[0]):c.x,ySnapped:i?o[1]*Math.round(c.y/o[1]):c.y,...c}},[])}function An(e){return(t,n,r)=>e==null?void 0:e(t,r)}function ms({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,selectNodesOnDrag:s}){const a=oe(),[c,u]=S.useState(!1),l=S.useRef([]),f=S.useRef({x:null,y:null}),d=S.useRef(0),g=S.useRef(null),x=S.useRef({x:0,y:0}),p=S.useRef(null),b=S.useRef(!1),m=S.useRef(!1),w=S.useRef(!1),N=af();return S.useEffect(()=>{if(e!=null&&e.current){const y=ye(e.current),M=({x:V,y:T})=>{const{nodeInternals:R,onNodeDrag:H,onSelectionDrag:L,updateNodePositions:B,nodeExtent:h,snapGrid:k,snapToGrid:E,nodeOrigin:z,onError:F}=a.getState();f.current={x:V,y:T};let _=!1,v={x:0,y:0,x2:0,y2:0};if(l.current.length>1&&h){const P=or(l.current,z);v=Jn(P)}if(l.current=l.current.map(P=>{const j={x:V-P.distance.x,y:T-P.distance.y};E&&(j.x=k[0]*Math.round(j.x/k[0]),j.y=k[1]*Math.round(j.y/k[1]));const O=[[h[0][0],h[0][1]],[h[1][0],h[1][1]]];l.current.length>1&&h&&!P.extent&&(O[0][0]=P.positionAbsolute.x-v.x+h[0][0],O[1][0]=P.positionAbsolute.x+(P.width??0)-v.x2+h[1][0],O[0][1]=P.positionAbsolute.y-v.y+h[0][1],O[1][1]=P.positionAbsolute.y+(P.height??0)-v.y2+h[1][1]);const U=ps(P,j,R,O,z,F);return _=_||P.position.x!==U.position.x||P.position.y!==U.position.y,P.position=U.position,P.positionAbsolute=U.positionAbsolute,P}),!_)return;B(l.current,!0,!0),u(!0);const I=o?H:An(L);if(I&&p.current){const[P,j]=Cn({nodeId:o,dragItems:l.current,nodeInternals:R});I(p.current,P,j)}},$=()=>{if(!g.current)return;const[V,T]=Fo(x.current,g.current);if(V!==0||T!==0){const{transform:R,panBy:H}=a.getState();f.current.x=(f.current.x??0)-V/R[2],f.current.y=(f.current.y??0)-T/R[2],H({x:V,y:T})&&M(f.current)}d.current=requestAnimationFrame($)},D=V=>{var z;const{nodeInternals:T,multiSelectionActive:R,nodesDraggable:H,unselectNodesAndEdges:L,onNodeDragStart:B,onSelectionDragStart:h}=a.getState();m.current=!0;const k=o?B:An(h);(!s||!i)&&!R&&o&&((z=T.get(o))!=null&&z.selected||L()),o&&i&&s&&On({id:o,store:a,nodeRef:e});const E=N(V);if(f.current=E,l.current=of(T,H,E,o),k&&l.current){const[F,_]=Cn({nodeId:o,dragItems:l.current,nodeInternals:T});k(V.sourceEvent,F,_)}};if(t)y.on(".drag",null);else{const V=pc().on("start",T=>{const{domNode:R,nodeDragThreshold:H}=a.getState();H===0&&D(T),w.current=!1;const L=N(T);f.current=L,g.current=(R==null?void 0:R.getBoundingClientRect())||null,x.current=Fe(T.sourceEvent,g.current)}).on("drag",T=>{var B,h;const R=N(T),{autoPanOnNodeDrag:H,nodeDragThreshold:L}=a.getState();if(T.sourceEvent.type==="touchmove"&&T.sourceEvent.touches.length>1&&(w.current=!0),!w.current){if(!b.current&&m.current&&H&&(b.current=!0,$()),!m.current){const k=R.xSnapped-(((B=f==null?void 0:f.current)==null?void 0:B.x)??0),E=R.ySnapped-(((h=f==null?void 0:f.current)==null?void 0:h.y)??0);Math.sqrt(k*k+E*E)>L&&D(T)}(f.current.x!==R.xSnapped||f.current.y!==R.ySnapped)&&l.current&&m.current&&(p.current=T.sourceEvent,x.current=Fe(T.sourceEvent,g.current),M(R))}}).on("end",T=>{if(!(!m.current||w.current)&&(u(!1),b.current=!1,m.current=!1,cancelAnimationFrame(d.current),l.current)){const{updateNodePositions:R,nodeInternals:H,onNodeDragStop:L,onSelectionDragStop:B}=a.getState(),h=o?L:An(B);if(R(l.current,!1,!1),h){const[k,E]=Cn({nodeId:o,dragItems:l.current,nodeInternals:H});h(T.sourceEvent,k,E)}}}).filter(T=>{const R=T.target;return!T.button&&(!n||!Kr(R,`.${n}`,e))&&(!r||Kr(R,r,e))});return y.call(V),()=>{y.on(".drag",null)}}}},[e,t,n,r,i,a,o,s,N]),c}function ys(){const e=oe();return S.useCallback(n=>{const{nodeInternals:r,nodeExtent:o,updateNodePositions:i,getNodes:s,snapToGrid:a,snapGrid:c,onError:u,nodesDraggable:l}=e.getState(),f=s().filter(w=>w.selected&&(w.draggable||l&&typeof w.draggable>"u")),d=a?c[0]:5,g=a?c[1]:5,x=n.isShiftPressed?4:1,p=n.x*d*x,b=n.y*g*x,m=f.map(w=>{if(w.positionAbsolute){const N={x:w.positionAbsolute.x+p,y:w.positionAbsolute.y+b};a&&(N.x=c[0]*Math.round(N.x/c[0]),N.y=c[1]*Math.round(N.y/c[1]));const{positionAbsolute:y,position:M}=ps(w,N,r,o,void 0,u);w.position=M,w.positionAbsolute=y}return w});i(m,!0,!1)},[])}const dt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var St=e=>{const t=({id:n,type:r,data:o,xPos:i,yPos:s,xPosOrigin:a,yPosOrigin:c,selected:u,onClick:l,onMouseEnter:f,onMouseMove:d,onMouseLeave:g,onContextMenu:x,onDoubleClick:p,style:b,className:m,isDraggable:w,isSelectable:N,isConnectable:y,isFocusable:M,selectNodesOnDrag:$,sourcePosition:D,targetPosition:V,hidden:T,resizeObserver:R,dragHandle:H,zIndex:L,isParent:B,noDragClassName:h,noPanClassName:k,initialized:E,disableKeyboardA11y:z,ariaLabel:F,rfId:_,hasHandleBounds:v})=>{const I=oe(),P=S.useRef(null),j=S.useRef(null),O=S.useRef(D),U=S.useRef(V),W=S.useRef(r),G=N||w||l||f||d||g,Z=ys(),ee=Et(n,I.getState,f),K=Et(n,I.getState,d),ge=Et(n,I.getState,g),fe=Et(n,I.getState,x),pe=Et(n,I.getState,p),de=Q=>{const{nodeDragThreshold:Y}=I.getState();if(N&&(!$||!w||Y>0)&&On({id:n,store:I,nodeRef:P}),l){const le=I.getState().nodeInternals.get(n);le&&l(Q,{...le})}},ne=Q=>{if(!Fn(Q)&&!z)if(Bo.includes(Q.key)&&N){const Y=Q.key==="Escape";On({id:n,store:I,unselect:Y,nodeRef:P})}else w&&u&&Object.prototype.hasOwnProperty.call(dt,Q.key)&&(I.setState({ariaLiveMessage:`Moved selected node ${Q.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~i}, y: ${~~s}`}),Z({x:dt[Q.key].x,y:dt[Q.key].y,isShiftPressed:Q.shiftKey}))};S.useEffect(()=>()=>{j.current&&(R==null||R.unobserve(j.current),j.current=null)},[]),S.useEffect(()=>{if(P.current&&!T){const Q=P.current;(!E||!v||j.current!==Q)&&(j.current&&(R==null||R.unobserve(j.current)),R==null||R.observe(Q),j.current=Q)}},[T,E,v]),S.useEffect(()=>{const Q=W.current!==r,Y=O.current!==D,le=U.current!==V;P.current&&(Q||Y||le)&&(Q&&(W.current=r),Y&&(O.current=D),le&&(U.current=V),I.getState().updateNodeDimensions([{id:n,nodeElement:P.current,forceUpdate:!0}]))},[n,r,D,V]);const be=ms({nodeRef:P,disabled:T||!w,noDragClassName:h,handleSelector:H,nodeId:n,isSelectable:N,selectNodesOnDrag:$});return T?null:C.createElement("div",{className:ae(["react-flow__node",`react-flow__node-${r}`,{[k]:w},m,{selected:u,selectable:N,parent:B,dragging:be}]),ref:P,style:{zIndex:L,transform:`translate(${a}px,${c}px)`,pointerEvents:G?"all":"none",visibility:E?"visible":"hidden",...b},"data-id":n,"data-testid":`rf__node-${n}`,onMouseEnter:ee,onMouseMove:K,onMouseLeave:ge,onContextMenu:fe,onClick:de,onDoubleClick:pe,onKeyDown:M?ne:void 0,tabIndex:M?0:void 0,role:M?"button":void 0,"aria-describedby":z?void 0:`${is}-${_}`,"aria-label":F},C.createElement(vu,{value:n},C.createElement(e,{id:n,data:o,type:r,xPos:i,yPos:s,selected:u,isConnectable:y,sourcePosition:D,targetPosition:V,dragging:be,dragHandle:H,zIndex:L})))};return t.displayName="NodeWrapper",S.memo(t)};const cf=e=>{const t=e.getNodes().filter(n=>n.selected);return{...or(t,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function lf({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=oe(),{width:o,height:i,x:s,y:a,transformString:c,userSelectionActive:u}=J(cf,ie),l=ys(),f=S.useRef(null);if(S.useEffect(()=>{var x;n||(x=f.current)==null||x.focus({preventScroll:!0})},[n]),ms({nodeRef:f}),u||!o||!i)return null;const d=e?x=>{const p=r.getState().getNodes().filter(b=>b.selected);e(x,p)}:void 0,g=x=>{Object.prototype.hasOwnProperty.call(dt,x.key)&&l({x:dt[x.key].x,y:dt[x.key].y,isShiftPressed:x.shiftKey})};return C.createElement("div",{className:ae(["react-flow__nodesselection","react-flow__container",t]),style:{transform:c}},C.createElement("div",{ref:f,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:o,height:i,top:a,left:s}}))}var uf=S.memo(lf);const ff=e=>e.nodesSelectionActive,xs=({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,deleteKeyCode:a,onMove:c,onMoveStart:u,onMoveEnd:l,selectionKeyCode:f,selectionOnDrag:d,selectionMode:g,onSelectionStart:x,onSelectionEnd:p,multiSelectionKeyCode:b,panActivationKeyCode:m,zoomActivationKeyCode:w,elementsSelectable:N,zoomOnScroll:y,zoomOnPinch:M,panOnScroll:$,panOnScrollSpeed:D,panOnScrollMode:V,zoomOnDoubleClick:T,panOnDrag:R,defaultViewport:H,translateExtent:L,minZoom:B,maxZoom:h,preventScrolling:k,onSelectionContextMenu:E,noWheelClassName:z,noPanClassName:F,disableKeyboardA11y:_})=>{const v=J(ff),I=Rt(f),P=Rt(m),j=P||R,O=P||$,U=I||d&&j!==!0;return Gu({deleteKeyCode:a,multiSelectionKeyCode:b}),C.createElement(Ju,{onMove:c,onMoveStart:u,onMoveEnd:l,onPaneContextMenu:i,elementsSelectable:N,zoomOnScroll:y,zoomOnPinch:M,panOnScroll:O,panOnScrollSpeed:D,panOnScrollMode:V,zoomOnDoubleClick:T,panOnDrag:!I&&j,defaultViewport:H,translateExtent:L,minZoom:B,maxZoom:h,zoomActivationKeyCode:w,preventScrolling:k,noWheelClassName:z,noPanClassName:F},C.createElement(hs,{onSelectionStart:x,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:j,isSelecting:!!U,selectionMode:g},e,v&&C.createElement(uf,{onSelectionContextMenu:E,noPanClassName:F,disableKeyboardA11y:_})))};xs.displayName="FlowRenderer";var df=S.memo(xs);function hf(e){return J(S.useCallback(n=>e?qo(n.nodeInternals,{x:0,y:0,width:n.width,height:n.height},n.transform,!0):n.getNodes(),[e]))}function gf(e){const t={input:St(e.input||ns),default:St(e.default||jn),output:St(e.output||os),group:St(e.group||ir)},n={},r=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,i)=>(o[i]=St(e[i]||jn),o),n);return{...t,...r}}const pf=({x:e,y:t,width:n,height:r,origin:o})=>!n||!r?{x:e,y:t}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:t}:{x:e-n*o[0],y:t-r*o[1]},mf=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),ws=e=>{const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,updateNodeDimensions:i,onError:s}=J(mf,ie),a=hf(e.onlyRenderVisibleElements),c=S.useRef(),u=S.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const l=new ResizeObserver(f=>{const d=f.map(g=>({id:g.target.getAttribute("data-id"),nodeElement:g.target,forceUpdate:!0}));i(d)});return c.current=l,l},[]);return S.useEffect(()=>()=>{var l;(l=c==null?void 0:c.current)==null||l.disconnect()},[]),C.createElement("div",{className:"react-flow__nodes",style:cr},a.map(l=>{var M,$,D;let f=l.type||"default";e.nodeTypes[f]||(s==null||s("003",Ie.error003(f)),f="default");const d=e.nodeTypes[f]||e.nodeTypes.default,g=!!(l.draggable||t&&typeof l.draggable>"u"),x=!!(l.selectable||o&&typeof l.selectable>"u"),p=!!(l.connectable||n&&typeof l.connectable>"u"),b=!!(l.focusable||r&&typeof l.focusable>"u"),m=e.nodeExtent?Qn(l.positionAbsolute,e.nodeExtent):l.positionAbsolute,w=(m==null?void 0:m.x)??0,N=(m==null?void 0:m.y)??0,y=pf({x:w,y:N,width:l.width??0,height:l.height??0,origin:e.nodeOrigin});return C.createElement(d,{key:l.id,id:l.id,className:l.className,style:l.style,type:f,data:l.data,sourcePosition:l.sourcePosition||X.Bottom,targetPosition:l.targetPosition||X.Top,hidden:l.hidden,xPos:w,yPos:N,xPosOrigin:y.x,yPosOrigin:y.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!l.selected,isDraggable:g,isSelectable:x,isConnectable:p,isFocusable:b,resizeObserver:u,dragHandle:l.dragHandle,zIndex:((M=l[te])==null?void 0:M.z)??0,isParent:!!(($=l[te])!=null&&$.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!l.width&&!!l.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:l.ariaLabel,hasHandleBounds:!!((D=l[te])!=null&&D.handleBounds)})}))};ws.displayName="NodeRenderer";var yf=S.memo(ws);const xf=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,wf=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,Jr="react-flow__edgeupdater",eo=({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:a})=>C.createElement("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:ae([Jr,`${Jr}-${a}`]),cx:xf(t,r,e),cy:wf(n,r,e),r,stroke:"transparent",fill:"transparent"}),vf=()=>!0;var at=e=>{const t=({id:n,className:r,type:o,data:i,onClick:s,onEdgeDoubleClick:a,selected:c,animated:u,label:l,labelStyle:f,labelShowBg:d,labelBgStyle:g,labelBgPadding:x,labelBgBorderRadius:p,style:b,source:m,target:w,sourceX:N,sourceY:y,targetX:M,targetY:$,sourcePosition:D,targetPosition:V,elementsSelectable:T,hidden:R,sourceHandleId:H,targetHandleId:L,onContextMenu:B,onMouseEnter:h,onMouseMove:k,onMouseLeave:E,reconnectRadius:z,onReconnect:F,onReconnectStart:_,onReconnectEnd:v,markerEnd:I,markerStart:P,rfId:j,ariaLabel:O,isFocusable:U,isReconnectable:W,pathOptions:G,interactionWidth:Z,disableKeyboardA11y:ee})=>{const K=S.useRef(null),[ge,fe]=S.useState(!1),[pe,de]=S.useState(!1),ne=oe(),be=S.useMemo(()=>`url('#${Bn(P,j)}')`,[P,j]),Q=S.useMemo(()=>`url('#${Bn(I,j)}')`,[I,j]);if(R)return null;const Y=se=>{var _e;const{edges:me,addSelectedEdges:Oe,unselectNodesAndEdges:Xe,multiSelectionActive:Ye}=ne.getState(),Ce=me.find(xt=>xt.id===n);Ce&&(T&&(ne.setState({nodesSelectionActive:!1}),Ce.selected&&Ye?(Xe({nodes:[],edges:[Ce]}),(_e=K.current)==null||_e.blur()):Oe([n])),s&&s(se,Ce))},le=_t(n,ne.getState,a),Be=_t(n,ne.getState,B),mt=_t(n,ne.getState,h),Je=_t(n,ne.getState,k),et=_t(n,ne.getState,E),ke=(se,me)=>{if(se.button!==0)return;const{edges:Oe,isValidConnection:Xe}=ne.getState(),Ye=me?w:m,Ce=(me?L:H)||null,_e=me?"target":"source",xt=Xe||vf,hn=me,wt=Oe.find(Ue=>Ue.id===n);de(!0),_==null||_(se,wt,_e);const gn=Ue=>{de(!1),v==null||v(Ue,wt,_e)};Qo({event:se,handleId:Ce,nodeId:Ye,onConnect:Ue=>F==null?void 0:F(wt,Ue),isTarget:hn,getState:ne.getState,setState:ne.setState,isValidConnection:xt,edgeUpdaterType:_e,onReconnectEnd:gn})},tt=se=>ke(se,!0),Le=se=>ke(se,!1),je=()=>fe(!0),nt=()=>fe(!1),rt=!T&&!s,yt=se=>{var me;if(!ee&&Bo.includes(se.key)&&T){const{unselectNodesAndEdges:Oe,addSelectedEdges:Xe,edges:Ye}=ne.getState();se.key==="Escape"?((me=K.current)==null||me.blur(),Oe({edges:[Ye.find(_e=>_e.id===n)]})):Xe([n])}};return C.createElement("g",{className:ae(["react-flow__edge",`react-flow__edge-${o}`,r,{selected:c,animated:u,inactive:rt,updating:ge}]),onClick:Y,onDoubleClick:le,onContextMenu:Be,onMouseEnter:mt,onMouseMove:Je,onMouseLeave:et,onKeyDown:U?yt:void 0,tabIndex:U?0:void 0,role:U?"button":"img","data-testid":`rf__edge-${n}`,"aria-label":O===null?void 0:O||`Edge from ${m} to ${w}`,"aria-describedby":U?`${as}-${j}`:void 0,ref:K},!pe&&C.createElement(e,{id:n,source:m,target:w,selected:c,animated:u,label:l,labelStyle:f,labelShowBg:d,labelBgStyle:g,labelBgPadding:x,labelBgBorderRadius:p,data:i,style:b,sourceX:N,sourceY:y,targetX:M,targetY:$,sourcePosition:D,targetPosition:V,sourceHandleId:H,targetHandleId:L,markerStart:be,markerEnd:Q,pathOptions:G,interactionWidth:Z}),W&&C.createElement(C.Fragment,null,(W==="source"||W===!0)&&C.createElement(eo,{position:D,centerX:N,centerY:y,radius:z,onMouseDown:tt,onMouseEnter:je,onMouseOut:nt,type:"source"}),(W==="target"||W===!0)&&C.createElement(eo,{position:V,centerX:M,centerY:$,radius:z,onMouseDown:Le,onMouseEnter:je,onMouseOut:nt,type:"target"})))};return t.displayName="EdgeWrapper",S.memo(t)};function bf(e){const t={default:at(e.default||sn),straight:at(e.bezier||nr),step:at(e.step||tr),smoothstep:at(e.step||dn),simplebezier:at(e.simplebezier||er)},n={},r=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,i)=>(o[i]=at(e[i]||sn),o),n);return{...t,...r}}function to(e,t,n=null){const r=((n==null?void 0:n.x)||0)+t.x,o=((n==null?void 0:n.y)||0)+t.y,i=(n==null?void 0:n.width)||t.width,s=(n==null?void 0:n.height)||t.height;switch(e){case X.Top:return{x:r+i/2,y:o};case X.Right:return{x:r+i,y:o+s/2};case X.Bottom:return{x:r+i/2,y:o+s};case X.Left:return{x:r,y:o+s/2}}}function no(e,t){return e?e.length===1||!t?e[0]:t&&e.find(n=>n.id===t)||null:null}const _f=(e,t,n,r,o,i)=>{const s=to(n,e,t),a=to(i,r,o);return{sourceX:s.x,sourceY:s.y,targetX:a.x,targetY:a.y}};function Ef({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:r,targetWidth:o,targetHeight:i,width:s,height:a,transform:c}){const u={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+o),y2:Math.max(e.y+r,t.y+i)};u.x===u.x2&&(u.x2+=1),u.y===u.y2&&(u.y2+=1);const l=Jn({x:(0-c[0])/c[2],y:(0-c[1])/c[2],width:s/c[2],height:a/c[2]}),f=Math.max(0,Math.min(l.x2,u.x2)-Math.max(l.x,u.x)),d=Math.max(0,Math.min(l.y2,u.y2)-Math.max(l.y,u.y));return Math.ceil(f*d)>0}function ro(e){var r,o,i,s,a;const t=((r=e==null?void 0:e[te])==null?void 0:r.handleBounds)||null,n=t&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((o=e==null?void 0:e.positionAbsolute)==null?void 0:o.x)<"u"&&typeof((i=e==null?void 0:e.positionAbsolute)==null?void 0:i.y)<"u";return[{x:((s=e==null?void 0:e.positionAbsolute)==null?void 0:s.x)||0,y:((a=e==null?void 0:e.positionAbsolute)==null?void 0:a.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},t,!!n]}const Sf=[{level:0,isMaxLevel:!0,edges:[]}];function Nf(e,t,n=!1){let r=-1;const o=e.reduce((s,a)=>{var l,f;const c=he(a.zIndex);let u=c?a.zIndex:0;if(n){const d=t.get(a.target),g=t.get(a.source),x=a.selected||(d==null?void 0:d.selected)||(g==null?void 0:g.selected),p=Math.max(((l=g==null?void 0:g[te])==null?void 0:l.z)||0,((f=d==null?void 0:d[te])==null?void 0:f.z)||0,1e3);u=(c?a.zIndex:0)+(x?p:0)}return s[u]?s[u].push(a):s[u]=[a],r=u>r?u:r,s},{}),i=Object.entries(o).map(([s,a])=>{const c=+s;return{edges:a,level:c,isMaxLevel:c===r}});return i.length===0?Sf:i}function kf(e,t,n){const r=J(S.useCallback(o=>e?o.edges.filter(i=>{const s=t.get(i.source),a=t.get(i.target);return(s==null?void 0:s.width)&&(s==null?void 0:s.height)&&(a==null?void 0:a.width)&&(a==null?void 0:a.height)&&Ef({sourcePos:s.positionAbsolute||{x:0,y:0},targetPos:a.positionAbsolute||{x:0,y:0},sourceWidth:s.width,sourceHeight:s.height,targetWidth:a.width,targetHeight:a.height,width:o.width,height:o.height,transform:o.transform})}):o.edges,[e,t]));return Nf(r,t,n)}const Cf=({color:e="none",strokeWidth:t=1})=>C.createElement("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),Af=({color:e="none",strokeWidth:t=1})=>C.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),oo={[Pt.Arrow]:Cf,[Pt.ArrowClosed]:Af};function Mf(e){const t=oe();return S.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(oo,e)?oo[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",Ie.error009(e)),null)},[e])}const $f=({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=Mf(t);return c?C.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0"},C.createElement(c,{color:n,strokeWidth:s})):null},If=({defaultColor:e,rfId:t})=>n=>{const r=[];return n.edges.reduce((o,i)=>([i.markerStart,i.markerEnd].forEach(s=>{if(s&&typeof s=="object"){const a=Bn(s,t);r.includes(a)||(o.push({id:a,color:s.color||e,...s}),r.push(a))}}),o),[]).sort((o,i)=>o.id.localeCompare(i.id))},vs=({defaultColor:e,rfId:t})=>{const n=J(S.useCallback(If({defaultColor:e,rfId:t}),[e,t]),(r,o)=>!(r.length!==o.length||r.some((i,s)=>i.id!==o[s].id)));return C.createElement("defs",null,n.map(r=>C.createElement($f,{id:r.id,key:r.id,type:r.type,color:r.color,width:r.width,height:r.height,markerUnits:r.markerUnits,strokeWidth:r.strokeWidth,orient:r.orient})))};vs.displayName="MarkerDefinitions";var Tf=S.memo(vs);const zf=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),bs=({defaultMarkerColor:e,onlyRenderVisibleElements:t,elevateEdgesOnSelect:n,rfId:r,edgeTypes:o,noPanClassName:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:u,onEdgeClick:l,onEdgeDoubleClick:f,onReconnect:d,onReconnectStart:g,onReconnectEnd:x,reconnectRadius:p,children:b,disableKeyboardA11y:m})=>{const{edgesFocusable:w,edgesUpdatable:N,elementsSelectable:y,width:M,height:$,connectionMode:D,nodeInternals:V,onError:T}=J(zf,ie),R=kf(t,V,n);return M?C.createElement(C.Fragment,null,R.map(({level:H,edges:L,isMaxLevel:B})=>C.createElement("svg",{key:H,style:{zIndex:H},width:M,height:$,className:"react-flow__edges react-flow__container"},B&&C.createElement(Tf,{defaultColor:e,rfId:r}),C.createElement("g",null,L.map(h=>{const[k,E,z]=ro(V.get(h.source)),[F,_,v]=ro(V.get(h.target));if(!z||!v)return null;let I=h.type||"default";o[I]||(T==null||T("011",Ie.error011(I)),I="default");const P=o[I]||o.default,j=D===Qe.Strict?_.target:(_.target??[]).concat(_.source??[]),O=no(E.source,h.sourceHandle),U=no(j,h.targetHandle),W=(O==null?void 0:O.position)||X.Bottom,G=(U==null?void 0:U.position)||X.Top,Z=!!(h.focusable||w&&typeof h.focusable>"u"),ee=h.reconnectable||h.updatable,K=typeof d<"u"&&(ee||N&&typeof ee>"u");if(!O||!U)return T==null||T("008",Ie.error008(O,h)),null;const{sourceX:ge,sourceY:fe,targetX:pe,targetY:de}=_f(k,O,W,F,U,G);return C.createElement(P,{key:h.id,id:h.id,className:ae([h.className,i]),type:I,data:h.data,selected:!!h.selected,animated:!!h.animated,hidden:!!h.hidden,label:h.label,labelStyle:h.labelStyle,labelShowBg:h.labelShowBg,labelBgStyle:h.labelBgStyle,labelBgPadding:h.labelBgPadding,labelBgBorderRadius:h.labelBgBorderRadius,style:h.style,source:h.source,target:h.target,sourceHandleId:h.sourceHandle,targetHandleId:h.targetHandle,markerEnd:h.markerEnd,markerStart:h.markerStart,sourceX:ge,sourceY:fe,targetX:pe,targetY:de,sourcePosition:W,targetPosition:G,elementsSelectable:y,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:u,onClick:l,onEdgeDoubleClick:f,onReconnect:d,onReconnectStart:g,onReconnectEnd:x,reconnectRadius:p,rfId:r,ariaLabel:h.ariaLabel,isFocusable:Z,isReconnectable:K,pathOptions:"pathOptions"in h?h.pathOptions:void 0,interactionWidth:h.interactionWidth,disableKeyboardA11y:m})})))),b):null};bs.displayName="EdgeRenderer";var Pf=S.memo(bs);const Rf=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Df({children:e}){const t=J(Rf);return C.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:t}},e)}function Hf(e){const t=ar(),n=S.useRef(!1);S.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Ff={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top},_s=({nodeId:e,handleType:t,style:n,type:r=De.Bezier,CustomComponent:o,connectionStatus:i})=>{var $,D,V;const{fromNode:s,handleId:a,toX:c,toY:u,connectionMode:l}=J(S.useCallback(T=>({fromNode:T.nodeInternals.get(e),handleId:T.connectionHandleId,toX:(T.connectionPosition.x-T.transform[0])/T.transform[2],toY:(T.connectionPosition.y-T.transform[1])/T.transform[2],connectionMode:T.connectionMode}),[e]),ie),f=($=s==null?void 0:s[te])==null?void 0:$.handleBounds;let d=f==null?void 0:f[t];if(l===Qe.Loose&&(d=d||(f==null?void 0:f[t==="source"?"target":"source"])),!s||!d)return null;const g=a?d.find(T=>T.id===a):d[0],x=g?g.x+g.width/2:(s.width??0)/2,p=g?g.y+g.height/2:s.height??0,b=(((D=s.positionAbsolute)==null?void 0:D.x)??0)+x,m=(((V=s.positionAbsolute)==null?void 0:V.y)??0)+p,w=g==null?void 0:g.position,N=w?Ff[w]:null;if(!w||!N)return null;if(o)return C.createElement(o,{connectionLineType:r,connectionLineStyle:n,fromNode:s,fromHandle:g,fromX:b,fromY:m,toX:c,toY:u,fromPosition:w,toPosition:N,connectionStatus:i});let y="";const M={sourceX:b,sourceY:m,sourcePosition:w,targetX:c,targetY:u,targetPosition:N};return r===De.Bezier?[y]=Yo(M):r===De.Step?[y]=Vn({...M,borderRadius:0}):r===De.SmoothStep?[y]=Vn(M):r===De.SimpleBezier?[y]=Xo(M):y=`M${b},${m} ${c},${u}`,C.createElement("path",{d:y,fill:"none",className:"react-flow__connection-path",style:n})};_s.displayName="ConnectionLine";const Vf=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function Bf({containerStyle:e,style:t,type:n,component:r}){const{nodeId:o,handleType:i,nodesConnectable:s,width:a,height:c,connectionStatus:u}=J(Vf,ie);return!(o&&i&&a&&s)?null:C.createElement("svg",{style:e,width:a,height:c,className:"react-flow__edges react-flow__connectionline react-flow__container"},C.createElement("g",{className:ae(["react-flow__connection",u])},C.createElement(_s,{nodeId:o,handleType:i,style:t,type:n,CustomComponent:r,connectionStatus:u})))}function so(e,t){return S.useRef(null),oe(),S.useMemo(()=>t(e),[e])}const Es=({nodeTypes:e,edgeTypes:t,onMove:n,onMoveStart:r,onMoveEnd:o,onInit:i,onNodeClick:s,onEdgeClick:a,onNodeDoubleClick:c,onEdgeDoubleClick:u,onNodeMouseEnter:l,onNodeMouseMove:f,onNodeMouseLeave:d,onNodeContextMenu:g,onSelectionContextMenu:x,onSelectionStart:p,onSelectionEnd:b,connectionLineType:m,connectionLineStyle:w,connectionLineComponent:N,connectionLineContainerStyle:y,selectionKeyCode:M,selectionOnDrag:$,selectionMode:D,multiSelectionKeyCode:V,panActivationKeyCode:T,zoomActivationKeyCode:R,deleteKeyCode:H,onlyRenderVisibleElements:L,elementsSelectable:B,selectNodesOnDrag:h,defaultViewport:k,translateExtent:E,minZoom:z,maxZoom:F,preventScrolling:_,defaultMarkerColor:v,zoomOnScroll:I,zoomOnPinch:P,panOnScroll:j,panOnScrollSpeed:O,panOnScrollMode:U,zoomOnDoubleClick:W,panOnDrag:G,onPaneClick:Z,onPaneMouseEnter:ee,onPaneMouseMove:K,onPaneMouseLeave:ge,onPaneScroll:fe,onPaneContextMenu:pe,onEdgeContextMenu:de,onEdgeMouseEnter:ne,onEdgeMouseMove:be,onEdgeMouseLeave:Q,onReconnect:Y,onReconnectStart:le,onReconnectEnd:Be,reconnectRadius:mt,noDragClassName:Je,noWheelClassName:et,noPanClassName:ke,elevateEdgesOnSelect:tt,disableKeyboardA11y:Le,nodeOrigin:je,nodeExtent:nt,rfId:rt})=>{const yt=so(e,gf),se=so(t,bf);return Hf(i),C.createElement(df,{onPaneClick:Z,onPaneMouseEnter:ee,onPaneMouseMove:K,onPaneMouseLeave:ge,onPaneContextMenu:pe,onPaneScroll:fe,deleteKeyCode:H,selectionKeyCode:M,selectionOnDrag:$,selectionMode:D,onSelectionStart:p,onSelectionEnd:b,multiSelectionKeyCode:V,panActivationKeyCode:T,zoomActivationKeyCode:R,elementsSelectable:B,onMove:n,onMoveStart:r,onMoveEnd:o,zoomOnScroll:I,zoomOnPinch:P,zoomOnDoubleClick:W,panOnScroll:j,panOnScrollSpeed:O,panOnScrollMode:U,panOnDrag:G,defaultViewport:k,translateExtent:E,minZoom:z,maxZoom:F,onSelectionContextMenu:x,preventScrolling:_,noDragClassName:Je,noWheelClassName:et,noPanClassName:ke,disableKeyboardA11y:Le},C.createElement(Df,null,C.createElement(Pf,{edgeTypes:se,onEdgeClick:a,onEdgeDoubleClick:u,onlyRenderVisibleElements:L,onEdgeContextMenu:de,onEdgeMouseEnter:ne,onEdgeMouseMove:be,onEdgeMouseLeave:Q,onReconnect:Y,onReconnectStart:le,onReconnectEnd:Be,reconnectRadius:mt,defaultMarkerColor:v,noPanClassName:ke,elevateEdgesOnSelect:!!tt,disableKeyboardA11y:Le,rfId:rt},C.createElement(Bf,{style:w,type:m,component:N,containerStyle:y})),C.createElement("div",{className:"react-flow__edgelabel-renderer"}),C.createElement(yf,{nodeTypes:yt,onNodeClick:s,onNodeDoubleClick:c,onNodeMouseEnter:l,onNodeMouseMove:f,onNodeMouseLeave:d,onNodeContextMenu:g,selectNodesOnDrag:h,onlyRenderVisibleElements:L,noPanClassName:ke,noDragClassName:Je,disableKeyboardA11y:Le,nodeOrigin:je,nodeExtent:nt,rfId:rt})))};Es.displayName="GraphView";var Lf=S.memo(Es);const Xn=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ze={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:Xn,nodeExtent:Xn,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Qe.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:gu,isValidConnection:void 0},jf=()=>Ci((e,t)=>({...ze,setNodes:n=>{const{nodeInternals:r,nodeOrigin:o,elevateNodesOnSelect:i}=t();e({nodeInternals:Nn(n,r,o,i)})},getNodes:()=>Array.from(t().nodeInternals.values()),setEdges:n=>{const{defaultEdgeOptions:r={}}=t();e({edges:n.map(o=>({...r,...o}))})},setDefaultNodesAndEdges:(n,r)=>{const o=typeof n<"u",i=typeof r<"u",s=o?Nn(n,new Map,t().nodeOrigin,t().elevateNodesOnSelect):new Map;e({nodeInternals:s,edges:i?r:[],hasDefaultNodes:o,hasDefaultEdges:i})},updateNodeDimensions:n=>{const{onNodesChange:r,nodeInternals:o,fitViewOnInit:i,fitViewOnInitDone:s,fitViewOnInitOptions:a,domNode:c,nodeOrigin:u}=t(),l=c==null?void 0:c.querySelector(".react-flow__viewport");if(!l)return;const f=window.getComputedStyle(l),{m22:d}=new window.DOMMatrixReadOnly(f.transform),g=n.reduce((p,b)=>{const m=o.get(b.id);if(m!=null&&m.hidden)o.set(m.id,{...m,[te]:{...m[te],handleBounds:void 0}});else if(m){const w=Kn(b.nodeElement);!!(w.width&&w.height&&(m.width!==w.width||m.height!==w.height||b.forceUpdate))&&(o.set(m.id,{...m,[te]:{...m[te],handleBounds:{source:Qr(".source",b.nodeElement,d,u),target:Qr(".target",b.nodeElement,d,u)}},...w}),p.push({id:m.id,type:"dimensions",dimensions:w}))}return p},[]);ls(o,u);const x=s||i&&!s&&us(t,{initial:!0,...a});e({nodeInternals:new Map(o),fitViewOnInitDone:x}),(g==null?void 0:g.length)>0&&(r==null||r(g))},updateNodePositions:(n,r=!0,o=!1)=>{const{triggerNodeChanges:i}=t(),s=n.map(a=>{const c={id:a.id,type:"position",dragging:o};return r&&(c.positionAbsolute=a.positionAbsolute,c.position=a.position),c});i(s)},triggerNodeChanges:n=>{const{onNodesChange:r,nodeInternals:o,hasDefaultNodes:i,nodeOrigin:s,getNodes:a,elevateNodesOnSelect:c}=t();if(n!=null&&n.length){if(i){const u=ds(n,a()),l=Nn(u,o,s,c);e({nodeInternals:l})}r==null||r(n)}},addSelectedNodes:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let s,a=null;r?s=n.map(c=>Re(c,!0)):(s=ct(i(),n),a=ct(o,[])),Ut({changedNodes:s,changedEdges:a,get:t,set:e})},addSelectedEdges:n=>{const{multiSelectionActive:r,edges:o,getNodes:i}=t();let s,a=null;r?s=n.map(c=>Re(c,!0)):(s=ct(o,n),a=ct(i(),[])),Ut({changedNodes:a,changedEdges:s,get:t,set:e})},unselectNodesAndEdges:({nodes:n,edges:r}={})=>{const{edges:o,getNodes:i}=t(),s=n||i(),a=r||o,c=s.map(l=>(l.selected=!1,Re(l.id,!1))),u=a.map(l=>Re(l.id,!1));Ut({changedNodes:c,changedEdges:u,get:t,set:e})},setMinZoom:n=>{const{d3Zoom:r,maxZoom:o}=t();r==null||r.scaleExtent([n,o]),e({minZoom:n})},setMaxZoom:n=>{const{d3Zoom:r,minZoom:o}=t();r==null||r.scaleExtent([o,n]),e({maxZoom:n})},setTranslateExtent:n=>{var r;(r=t().d3Zoom)==null||r.translateExtent(n),e({translateExtent:n})},resetSelectedElements:()=>{const{edges:n,getNodes:r}=t(),i=r().filter(a=>a.selected).map(a=>Re(a.id,!1)),s=n.filter(a=>a.selected).map(a=>Re(a.id,!1));Ut({changedNodes:i,changedEdges:s,get:t,set:e})},setNodeExtent:n=>{const{nodeInternals:r}=t();r.forEach(o=>{o.positionAbsolute=Qn(o.position,n)}),e({nodeExtent:n,nodeInternals:new Map(r)})},panBy:n=>{const{transform:r,width:o,height:i,d3Zoom:s,d3Selection:a,translateExtent:c}=t();if(!s||!a||!n.x&&!n.y)return!1;const u=He.translate(r[0]+n.x,r[1]+n.y).scale(r[2]),l=[[0,0],[o,i]],f=s==null?void 0:s.constrain()(u,l,c);return s.transform(a,f),r[0]!==f.x||r[1]!==f.y||r[2]!==f.k},cancelConnection:()=>e({connectionNodeId:ze.connectionNodeId,connectionHandleId:ze.connectionHandleId,connectionHandleType:ze.connectionHandleType,connectionStatus:ze.connectionStatus,connectionStartHandle:ze.connectionStartHandle,connectionEndHandle:ze.connectionEndHandle}),reset:()=>e({...ze})}),Object.is),Ss=({children:e})=>{const t=S.useRef(null);return t.current||(t.current=jf()),C.createElement(iu,{value:t.current},e)};Ss.displayName="ReactFlowProvider";const Ns=({children:e})=>S.useContext(fn)?C.createElement(C.Fragment,null,e):C.createElement(Ss,null,e);Ns.displayName="ReactFlowWrapper";const Of={input:ns,default:jn,output:os,group:ir},Xf={default:sn,straight:nr,step:tr,smoothstep:dn,simplebezier:er},Yf=[0,0],Uf=[15,15],qf={x:0,y:0,zoom:1},Wf={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},ks=S.forwardRef(({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i=Of,edgeTypes:s=Xf,onNodeClick:a,onEdgeClick:c,onInit:u,onMove:l,onMoveStart:f,onMoveEnd:d,onConnect:g,onConnectStart:x,onConnectEnd:p,onClickConnectStart:b,onClickConnectEnd:m,onNodeMouseEnter:w,onNodeMouseMove:N,onNodeMouseLeave:y,onNodeContextMenu:M,onNodeDoubleClick:$,onNodeDragStart:D,onNodeDrag:V,onNodeDragStop:T,onNodesDelete:R,onEdgesDelete:H,onSelectionChange:L,onSelectionDragStart:B,onSelectionDrag:h,onSelectionDragStop:k,onSelectionContextMenu:E,onSelectionStart:z,onSelectionEnd:F,connectionMode:_=Qe.Strict,connectionLineType:v=De.Bezier,connectionLineStyle:I,connectionLineComponent:P,connectionLineContainerStyle:j,deleteKeyCode:O="Backspace",selectionKeyCode:U="Shift",selectionOnDrag:W=!1,selectionMode:G=zt.Full,panActivationKeyCode:Z="Space",multiSelectionKeyCode:ee=on()?"Meta":"Control",zoomActivationKeyCode:K=on()?"Meta":"Control",snapToGrid:ge=!1,snapGrid:fe=Uf,onlyRenderVisibleElements:pe=!1,selectNodesOnDrag:de=!0,nodesDraggable:ne,nodesConnectable:be,nodesFocusable:Q,nodeOrigin:Y=Yf,edgesFocusable:le,edgesUpdatable:Be,elementsSelectable:mt,defaultViewport:Je=qf,minZoom:et=.5,maxZoom:ke=2,translateExtent:tt=Xn,preventScrolling:Le=!0,nodeExtent:je,defaultMarkerColor:nt="#b1b1b7",zoomOnScroll:rt=!0,zoomOnPinch:yt=!0,panOnScroll:se=!1,panOnScrollSpeed:me=.5,panOnScrollMode:Oe=Ge.Free,zoomOnDoubleClick:Xe=!0,panOnDrag:Ye=!0,onPaneClick:Ce,onPaneMouseEnter:_e,onPaneMouseMove:xt,onPaneMouseLeave:hn,onPaneScroll:wt,onPaneContextMenu:gn,children:lr,onEdgeContextMenu:Ue,onEdgeDoubleClick:Ts,onEdgeMouseEnter:zs,onEdgeMouseMove:Ps,onEdgeMouseLeave:Rs,onEdgeUpdate:Ds,onEdgeUpdateStart:Hs,onEdgeUpdateEnd:Fs,onReconnect:Vs,onReconnectStart:Bs,onReconnectEnd:Ls,reconnectRadius:js=10,edgeUpdaterRadius:Os=10,onNodesChange:Xs,onEdgesChange:Ys,noDragClassName:Us="nodrag",noWheelClassName:qs="nowheel",noPanClassName:ur="nopan",fitView:Ws=!1,fitViewOptions:Gs,connectOnClick:Zs=!0,attributionPosition:Ks,proOptions:Qs,defaultEdgeOptions:Js,elevateNodesOnSelect:ei=!0,elevateEdgesOnSelect:ti=!1,disableKeyboardA11y:fr=!1,autoPanOnConnect:ni=!0,autoPanOnNodeDrag:ri=!0,connectionRadius:oi=20,isValidConnection:si,onError:ii,style:ai,id:dr,nodeDragThreshold:ci,...li},ui)=>{const pn=dr||"1";return C.createElement("div",{...li,style:{...ai,...Wf},ref:ui,className:ae(["react-flow",o]),"data-testid":"rf__wrapper",id:dr},C.createElement(Ns,null,C.createElement(Lf,{onInit:u,onMove:l,onMoveStart:f,onMoveEnd:d,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:w,onNodeMouseMove:N,onNodeMouseLeave:y,onNodeContextMenu:M,onNodeDoubleClick:$,nodeTypes:i,edgeTypes:s,connectionLineType:v,connectionLineStyle:I,connectionLineComponent:P,connectionLineContainerStyle:j,selectionKeyCode:U,selectionOnDrag:W,selectionMode:G,deleteKeyCode:O,multiSelectionKeyCode:ee,panActivationKeyCode:Z,zoomActivationKeyCode:K,onlyRenderVisibleElements:pe,selectNodesOnDrag:de,defaultViewport:Je,translateExtent:tt,minZoom:et,maxZoom:ke,preventScrolling:Le,zoomOnScroll:rt,zoomOnPinch:yt,zoomOnDoubleClick:Xe,panOnScroll:se,panOnScrollSpeed:me,panOnScrollMode:Oe,panOnDrag:Ye,onPaneClick:Ce,onPaneMouseEnter:_e,onPaneMouseMove:xt,onPaneMouseLeave:hn,onPaneScroll:wt,onPaneContextMenu:gn,onSelectionContextMenu:E,onSelectionStart:z,onSelectionEnd:F,onEdgeContextMenu:Ue,onEdgeDoubleClick:Ts,onEdgeMouseEnter:zs,onEdgeMouseMove:Ps,onEdgeMouseLeave:Rs,onReconnect:Vs??Ds,onReconnectStart:Bs??Hs,onReconnectEnd:Ls??Fs,reconnectRadius:js??Os,defaultMarkerColor:nt,noDragClassName:Us,noWheelClassName:qs,noPanClassName:ur,elevateEdgesOnSelect:ti,rfId:pn,disableKeyboardA11y:fr,nodeOrigin:Y,nodeExtent:je}),C.createElement(Hu,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:g,onConnectStart:x,onConnectEnd:p,onClickConnectStart:b,onClickConnectEnd:m,nodesDraggable:ne,nodesConnectable:be,nodesFocusable:Q,edgesFocusable:le,edgesUpdatable:Be,elementsSelectable:mt,elevateNodesOnSelect:ei,minZoom:et,maxZoom:ke,nodeExtent:je,onNodesChange:Xs,onEdgesChange:Ys,snapToGrid:ge,snapGrid:fe,connectionMode:_,translateExtent:tt,connectOnClick:Zs,defaultEdgeOptions:Js,fitView:Ws,fitViewOptions:Gs,onNodesDelete:R,onEdgesDelete:H,onNodeDragStart:D,onNodeDrag:V,onNodeDragStop:T,onSelectionDrag:h,onSelectionDragStart:B,onSelectionDragStop:k,noPanClassName:ur,nodeOrigin:Y,rfId:pn,autoPanOnConnect:ni,autoPanOnNodeDrag:ri,onError:ii,connectionRadius:oi,isValidConnection:si,nodeDragThreshold:ci}),C.createElement(Ru,{onSelectionChange:L}),lr,C.createElement(cu,{proOptions:Qs,position:Ks}),C.createElement(ju,{rfId:pn,disableKeyboardA11y:fr})))});ks.displayName="ReactFlow";function Cs(e){return t=>{const[n,r]=S.useState(t),o=S.useCallback(i=>r(s=>e(i,s)),[]);return[n,r,o]}}const Gf=Cs(ds),Zf=Cs(nf);function Kf(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},C.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function Qf(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},C.createElement("path",{d:"M0 0h32v4.2H0z"}))}function Jf(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},C.createElement("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 ed(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},C.createElement("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 td(){return C.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},C.createElement("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"}))}const Ct=({children:e,className:t,...n})=>C.createElement("button",{type:"button",className:ae(["react-flow__controls-button",t]),...n},e);Ct.displayName="ControlButton";const nd=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),As=({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:c,className:u,children:l,position:f="bottom-left"})=>{const d=oe(),[g,x]=S.useState(!1),{isInteractive:p,minZoomReached:b,maxZoomReached:m}=J(nd,ie),{zoomIn:w,zoomOut:N,fitView:y}=ar();if(S.useEffect(()=>{x(!0)},[]),!g)return null;const M=()=>{w(),i==null||i()},$=()=>{N(),s==null||s()},D=()=>{y(o),a==null||a()},V=()=>{d.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),c==null||c(!p)};return C.createElement(Ho,{className:ae(["react-flow__controls",u]),position:f,style:e,"data-testid":"rf__controls"},t&&C.createElement(C.Fragment,null,C.createElement(Ct,{onClick:M,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:m},C.createElement(Kf,null)),C.createElement(Ct,{onClick:$,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:b},C.createElement(Qf,null))),n&&C.createElement(Ct,{className:"react-flow__controls-fitview",onClick:D,title:"fit view","aria-label":"fit view"},C.createElement(Jf,null)),r&&C.createElement(Ct,{className:"react-flow__controls-interactive",onClick:V,title:"toggle interactivity","aria-label":"toggle interactivity"},p?C.createElement(td,null):C.createElement(ed,null)),l)};As.displayName="Controls";var rd=S.memo(As),we;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(we||(we={}));function od({color:e,dimensions:t,lineWidth:n}){return C.createElement("path",{stroke:e,strokeWidth:n,d:`M${t[0]/2} 0 V${t[1]} M0 ${t[1]/2} H${t[0]}`})}function sd({color:e,radius:t}){return C.createElement("circle",{cx:t,cy:t,r:t,fill:e})}const id={[we.Dots]:"#91919a",[we.Lines]:"#eee",[we.Cross]:"#e2e2e2"},ad={[we.Dots]:1,[we.Lines]:1,[we.Cross]:6},cd=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Ms({id:e,variant:t=we.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=2,color:s,style:a,className:c}){const u=S.useRef(null),{transform:l,patternId:f}=J(cd,ie),d=s||id[t],g=r||ad[t],x=t===we.Dots,p=t===we.Cross,b=Array.isArray(n)?n:[n,n],m=[b[0]*l[2]||1,b[1]*l[2]||1],w=g*l[2],N=p?[w,w]:m,y=x?[w/i,w/i]:[N[0]/i,N[1]/i];return C.createElement("svg",{className:ae(["react-flow__background",c]),style:{...a,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:u,"data-testid":"rf__background"},C.createElement("pattern",{id:f+e,x:l[0]%m[0],y:l[1]%m[1],width:m[0],height:m[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${y[0]},-${y[1]})`},x?C.createElement(sd,{color:d,radius:w/i}):C.createElement(od,{dimensions:N,color:d,lineWidth:o})),C.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${f+e})`}))}Ms.displayName="Background";var ld=S.memo(Ms);/**
|
|
18
|
+
* @license lucide-react v0.554.0 - ISC
|
|
19
|
+
*
|
|
20
|
+
* This source code is licensed under the ISC license.
|
|
21
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
22
|
+
*/const ud=[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]],fd=Te("circle-check-big",ud);/**
|
|
23
|
+
* @license lucide-react v0.554.0 - ISC
|
|
24
|
+
*
|
|
25
|
+
* This source code is licensed under the ISC license.
|
|
26
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
27
|
+
*/const dd=[["path",{d:"M9 9.003a1 1 0 0 1 1.517-.859l4.997 2.997a1 1 0 0 1 0 1.718l-4.997 2.997A1 1 0 0 1 9 14.996z",key:"kmsa83"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],hd=Te("circle-play",dd);/**
|
|
28
|
+
* @license lucide-react v0.554.0 - ISC
|
|
29
|
+
*
|
|
30
|
+
* This source code is licensed under the ISC license.
|
|
31
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
32
|
+
*/const gd=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],pd=Te("circle",gd);/**
|
|
33
|
+
* @license lucide-react v0.554.0 - ISC
|
|
34
|
+
*
|
|
35
|
+
* This source code is licensed under the ISC license.
|
|
36
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
37
|
+
*/const md=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],yd=Te("clock",md);/**
|
|
38
|
+
* @license lucide-react v0.554.0 - ISC
|
|
39
|
+
*
|
|
40
|
+
* This source code is licensed under the ISC license.
|
|
41
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
42
|
+
*/const xd=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]],wd=Te("file-text",xd);/**
|
|
43
|
+
* @license lucide-react v0.554.0 - ISC
|
|
44
|
+
*
|
|
45
|
+
* This source code is licensed under the ISC license.
|
|
46
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
47
|
+
*/const vd=[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]],$s=Te("git-branch",vd);/**
|
|
48
|
+
* @license lucide-react v0.554.0 - ISC
|
|
49
|
+
*
|
|
50
|
+
* This source code is licensed under the ISC license.
|
|
51
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
52
|
+
*/const bd=[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]],_d=Te("git-merge",bd);/**
|
|
53
|
+
* @license lucide-react v0.554.0 - ISC
|
|
54
|
+
*
|
|
55
|
+
* This source code is licensed under the ISC license.
|
|
56
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
57
|
+
*/const Ed=[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]],Sd=Te("upload",Ed);/**
|
|
58
|
+
* @license lucide-react v0.554.0 - ISC
|
|
59
|
+
*
|
|
60
|
+
* This source code is licensed under the ISC license.
|
|
61
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
62
|
+
*/const Nd=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Is=Te("x",Nd);function kd({data:e}){const t=()=>{switch(e.status){case"active":return A.jsx(hd,{className:"status-icon active",size:16});case"saved":return A.jsx(fd,{className:"status-icon saved",size:16});default:return A.jsx(pd,{className:"status-icon",size:16})}},n=()=>{switch(e.status){case"active":return"active";case"saved":return"saved";case"merged":return"merged";default:return""}};return A.jsxs("div",{className:`node-card ${e.selected?"selected":""} ${n()}`,children:[A.jsx(Ve,{type:"target",position:X.Top,className:"node-handle"}),A.jsxs("div",{className:"node-header",children:[t(),A.jsx("span",{className:"node-label",children:e.label})]}),e.claudeSessionId&&A.jsxs("div",{className:"node-id",children:[e.claudeSessionId.slice(0,8),"..."]}),A.jsx("div",{className:"node-status-badge",children:e.status}),A.jsx(Ve,{type:"source",position:X.Bottom,className:"node-handle"})]})}function Cd({data:e}){const t=e.status==="merged"?"#94e2d5":"#f38ba8",n=e.status==="merged"?"rgba(148, 226, 213, 0.1)":"rgba(243, 139, 168, 0.1)";return A.jsxs("div",{style:{width:"48px",height:"48px",borderRadius:"50%",border:`3px solid ${t}`,background:e.selected?n:"rgba(30, 30, 46, 0.95)",display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",transition:"all 0.2s ease",backdropFilter:"blur(10px)"},title:`${e.label} (${e.status})`,children:[A.jsx(Ve,{type:"target",position:X.Top}),A.jsx("span",{style:{fontSize:"10px",fontWeight:600,color:t,textAlign:"center"},children:e.status==="merged"?"M":"C"}),A.jsx(Ve,{type:"source",position:X.Bottom})]})}const Ad={sessionNode:kd,compactNode:Cd};function Md({session:e,selectedNode:t,onNodeClick:n}){var b,m;const r=S.useMemo(()=>(e.forks||[]).map(N=>`${N.id}:${N.status}:${N.parentId}`).join(","),[e.forks]),o=S.useMemo(()=>JSON.stringify(e.nodePositions||{}),[e.nodePositions]),i=S.useCallback((w,N,y=new Set)=>{if(w==="main"||y.has(w))return 0;const M=N.find($=>$.id===w);return M?(y.add(w),1+i(M.parentId,N,y)):0},[]),s=S.useMemo(()=>{var V,T;const w=e.forks||[],N=e.nodePositions||{},y=new Map;w.forEach(R=>{const H=i(R.id,w);y.has(H)||y.set(H,[]),y.get(H).push(R)});const M=R=>{if(R==="main")return{x:250,y:50};const H=w.find(k=>k.id===R);if(!H)return{x:250,y:50};const L=i(H.id,w),B=y.get(L)||[];return{x:100+B.indexOf(H)*150-B.length*75+250,y:50+L*150}},$=R=>N[R]||M(R),D=[{id:"main",type:"sessionNode",position:$("main"),draggable:!0,data:{label:"MAIN",status:((V=e.main)==null?void 0:V.status)||e.status,claudeSessionId:(T=e.main)==null?void 0:T.claudeSessionId,selected:!1}}];return w.forEach(R=>{const H=R.status==="closed"||R.status==="merged"?"compactNode":"sessionNode";D.push({id:R.id,type:H,position:$(R.id),draggable:!0,data:{label:R.name,status:R.status,claudeSessionId:R.claudeSessionId,selected:!1}})}),D},[e.id,e.status,(b=e.main)==null?void 0:b.status,(m=e.main)==null?void 0:m.claudeSessionId,r,o,i]),a=S.useMemo(()=>(e.forks||[]).map(N=>({id:`${N.parentId}-${N.id}`,source:N.parentId,target:N.id,animated:N.status==="active",markerEnd:{type:Pt.ArrowClosed},style:{stroke:N.status==="active"?"#a6e3a1":"#585b70",strokeWidth:2}})),[r]),[c,u,l]=Gf(s),[f,d,g]=Zf(a);S.useEffect(()=>{u(s),d(a)},[r]);const x=S.useMemo(()=>c.map(w=>({...w,data:{...w.data,selected:w.id===t}})),[c,t]),p=S.useCallback((w,N)=>{n(N.id)},[n]);return A.jsx("div",{style:{width:"100%",height:"100%"},children:A.jsxs(ks,{nodes:x,edges:f,nodeTypes:Ad,onNodesChange:l,onEdgesChange:g,onNodeClick:p,fitView:!0,minZoom:.5,maxZoom:1.5,defaultViewport:{x:0,y:0,zoom:1},proOptions:{hideAttribution:!0},children:[A.jsx(ld,{}),A.jsx(rd,{})]})})}function $d({session:e}){const t=s=>{const a=new Date(s),u=new Date().getTime()-a.getTime(),l=Math.floor(u/(1e3*60*60)),f=Math.floor(l/24);return f>0?`${f} day${f>1?"s":""} ago`:l>0?`${l} hour${l>1?"s":""} ago`:"Just now"},n=async()=>{try{await window.electronAPI.openProjectFolder()}catch(s){console.error("Error opening project folder:",s)}},r=async()=>{try{await window.electronAPI.focusTerminal()}catch(s){console.error("Error focusing terminal:",s)}},o=e.forks.filter(s=>s.status==="active").length,i=e.forks.filter(s=>s.status==="saved").length;return A.jsxs("div",{className:"session-info",children:[A.jsxs("div",{className:"session-info-header",children:[A.jsx("h2",{className:"session-name",children:e.name||"Unnamed Session"}),A.jsx("div",{className:`session-status-badge ${e.status}`,children:e.status})]}),A.jsxs("div",{className:"session-meta",children:[A.jsxs("div",{className:"session-meta-item",children:[A.jsx(yd,{size:14}),A.jsx("span",{children:t(e.createdAt)})]}),A.jsxs("button",{className:"session-meta-item folder-button",onClick:n,title:"Open project folder (tries Cursor, VSCode, or Finder)",children:[A.jsx(hi,{size:14}),A.jsx("span",{children:"Code"})]}),A.jsxs("button",{className:"session-meta-item terminal-button",onClick:r,title:"Focus terminal window",children:[A.jsx(gi,{size:14}),A.jsx("span",{children:"Terminal"})]}),A.jsxs("div",{className:"session-meta-item",children:[A.jsx($s,{size:14}),A.jsxs("span",{children:[o+i," fork",o+i!==1?"s":""]})]})]})]})}function Id({selectedNode:e,onCreateFork:t,onExportFork:n,onMergeFork:r,onCloseFork:o,isCreatingFork:i,isExporting:s,isMerging:a,isClosing:c,canCreateFork:u,hasExport:l}){const f=e!=="main",d=i||s||a||c;return A.jsxs("div",{className:"action-panel",children:[A.jsx("div",{className:"action-panel-header",children:A.jsxs("span",{className:"action-panel-title",children:["Actions for: ",A.jsxs("strong",{children:[e==="main"?"MAIN":e.slice(0,8),"..."]})]})}),A.jsxs("div",{className:"action-buttons",children:[A.jsxs("button",{className:"action-button primary",onClick:t,disabled:!u||d,title:u?"Create a new fork from the current branch":"Claude Code limitation: Only one active fork allowed per branch. Merge the existing fork or create from it.",children:[A.jsx($s,{size:18}),A.jsx("span",{children:i?"Creating...":"New Fork"})]}),A.jsxs("button",{className:"action-button",onClick:n,disabled:!f||d,title:"Export fork summary",children:[A.jsx(Sd,{size:18}),A.jsx("span",{children:s?"Exporting...":"Export"})]}),A.jsxs("button",{className:"action-button",onClick:r,disabled:!f||d||!l,title:l?"Merge fork back to parent":"Export the fork first before merging",children:[A.jsx(_d,{size:18}),A.jsx("span",{children:a?"Merging...":"Merge"})]}),A.jsxs("button",{className:"action-button danger",onClick:o,disabled:!f||d,title:"Close fork (abandon experiment)",children:[A.jsx(Is,{size:18}),A.jsx("span",{children:c?"Closing...":"Close"})]})]})]})}function Td({fork:e,onClose:t,onOpenExport:n}){const r={active:"#a6e3a1",saved:"#f9e2af",closed:"#f38ba8",merged:"#94e2d5"}[e.status],o={active:"Active",saved:"Saved",closed:"Closed",merged:"Merged"}[e.status];return A.jsx("div",{className:"modal-overlay",onClick:t,children:A.jsxs("div",{className:"modal fork-info-modal",onClick:i=>i.stopPropagation(),children:[A.jsxs("div",{className:"modal-header",children:[A.jsx("h3",{children:"Fork Details"}),A.jsx("button",{className:"modal-close-btn",onClick:t,children:A.jsx(Is,{size:18})})]}),A.jsxs("div",{className:"fork-info-content",children:[A.jsxs("div",{className:"info-row",children:[A.jsx("span",{className:"info-label",children:"Name:"}),A.jsx("span",{className:"info-value",children:e.name})]}),A.jsxs("div",{className:"info-row",children:[A.jsx("span",{className:"info-label",children:"ID:"}),A.jsx("span",{className:"info-value fork-id",children:e.id})]}),A.jsxs("div",{className:"info-row",children:[A.jsx("span",{className:"info-label",children:"Claude Session ID:"}),A.jsx("span",{className:"info-value fork-id",children:e.claudeSessionId})]}),A.jsxs("div",{className:"info-row",children:[A.jsx("span",{className:"info-label",children:"Status:"}),A.jsx("span",{className:"info-value",children:A.jsx("span",{className:"status-badge",style:{borderColor:r,color:r},children:o})})]}),A.jsxs("div",{className:"info-row",children:[A.jsx("span",{className:"info-label",children:"Created:"}),A.jsx("span",{className:"info-value",children:new Date(e.createdAt).toLocaleString()})]}),e.status==="merged"&&e.mergedAt&&A.jsxs("div",{className:"info-row",children:[A.jsx("span",{className:"info-label",children:"Merged:"}),A.jsx("span",{className:"info-value",children:new Date(e.mergedAt).toLocaleString()})]}),e.contextPath&&A.jsxs("div",{className:"info-row",children:[A.jsx("span",{className:"info-label",children:"Export Path:"}),A.jsx("span",{className:"info-value export-path",children:e.contextPath})]})]}),e.status==="merged"&&e.contextPath&&n&&A.jsx("div",{className:"modal-actions",children:A.jsxs("button",{className:"button-primary",onClick:n,children:[A.jsx(wd,{size:16}),"Open Export File"]})})]})})}const re={info:(...e)=>console.log("[App]",...e),error:(...e)=>console.error("[App]",...e),warn:(...e)=>console.warn("[App]",...e)};re.info("=== App module loaded ===");function zd(){var _;re.info("App component rendering...");const[e,t]=S.useState(null),[n,r]=S.useState("main"),[o,i]=S.useState(!0),[s,a]=S.useState(null),[c,u]=S.useState(!1),[l,f]=S.useState(""),[d,g]=S.useState(!1),[x,p]=S.useState(!1),[b,m]=S.useState(!1),[w,N]=S.useState(!1),[y,M]=S.useState(!1),[$,D]=S.useState(null);S.useEffect(()=>{if(re.info("useEffect: Initializing app..."),re.info("electronAPI available:",!!window.electronAPI),!window.electronAPI){re.error("electronAPI is not available! Preload script may have failed."),a("electronAPI not available - preload script may have failed"),i(!1);return}re.info("Requesting session data from main process..."),window.electronAPI.getSession().then(v=>{var I;re.info("Session data received:",v==null?void 0:v.id,v==null?void 0:v.name),re.info("Session has",((I=v==null?void 0:v.forks)==null?void 0:I.length)||0,"forks"),t(v),i(!1),re.info("Loading state set to false")}).catch(v=>{re.error("Failed to get session:",v.message),a(`Failed to get session: ${v.message}`),i(!1)}),re.info("Setting up state update listener..."),window.electronAPI.onStateUpdate(v=>{var I;re.info("State update received:",v==null?void 0:v.id,"forks:",(I=v==null?void 0:v.forks)==null?void 0:I.length),v!=null&&v.forks&&re.info("Fork details:",v.forks.map(P=>`${P.name}:${P.status}`).join(", ")),t(v)}),re.info("useEffect: Initialization complete")},[]);const V=async v=>{if(!e)return;const I=e.forks.find(P=>P.id===v);if(I&&(I.status==="closed"||I.status==="merged")){D(I),M(!0);return}r(v),await window.electronAPI.selectNode(v)},T=()=>{var I;if(!e){alert("No session available");return}if(e.forks.filter(P=>P.parentId===n&&P.status==="active").length>0){const P=n==="main"?"MAIN":((I=e.forks.find(j=>j.id===n))==null?void 0:I.name)||n;alert(`Claude Code limitation: Only one active fork can exist from each branch.
|
|
63
|
+
|
|
64
|
+
The branch "${P}" already has an active fork. Close or merge the existing fork first, or create a fork from it.`);return}u(!0)},R=async()=>{if(!l.trim()){alert("Please enter a fork name");return}g(!0);try{await window.electronAPI.createFork(e.id,l,n),u(!1),f(""),alert("Fork created successfully!")}catch(v){alert(`Failed to create fork: ${v.message}`),console.error("Create fork error:",v)}finally{g(!1)}},H=()=>{u(!1),f("")},L=async()=>{if(!(!e||n==="main")){p(!0);try{await window.electronAPI.exportFork(e.id,n),alert("Export completed successfully!")}catch(v){alert(`Export failed: ${v.message}`),console.error("Export error:",v)}finally{p(!1)}}},B=async()=>{if(!(!e||n==="main"||!window.confirm(`Are you sure you want to merge "${n}" to main?`))){m(!0);try{await window.electronAPI.mergeFork(e.id,n),alert("Merge completed successfully!")}catch(I){alert(`Merge failed: ${I.message}`),console.error("Merge error:",I)}finally{m(!1)}}},h=async()=>{if(!e||n==="main")return;const v=e.forks.find(P=>P.id===n);if(window.confirm(`Are you sure you want to close "${(v==null?void 0:v.name)||n}"?
|
|
65
|
+
|
|
66
|
+
The fork will be saved and can be resumed later, but it will no longer be active.`)){N(!0);try{await window.electronAPI.closeFork(e.id,n),alert("Fork closed successfully!")}catch(P){alert(`Close failed: ${P.message}`),console.error("Close error:",P)}finally{N(!1)}}},k=async()=>{if($!=null&&$.contextPath)try{await window.electronAPI.openExportFile($.contextPath)}catch(v){alert(`Failed to open export file: ${v.message}`),console.error("Open export error:",v)}};if(o)return re.info("Rendering loading state..."),A.jsxs("div",{className:"loading",children:[A.jsx("div",{className:"spinner"}),A.jsx("p",{children:"Loading session..."})]});if(s)return re.error("Rendering error state:",s),A.jsxs("div",{className:"error",children:[A.jsx("p",{children:"Error loading session"}),A.jsx("p",{style:{fontSize:"12px",color:"#888"},children:s})]});if(!e)return re.warn("Rendering no-session state"),A.jsx("div",{className:"error",children:A.jsx("p",{children:"No session data available"})});re.info("Rendering main UI with session:",e.id);const E=e.forks||[],z=async()=>{await window.electronAPI.saveAndClose()},F=async()=>{await window.electronAPI.minimizeToTaskbar()};return A.jsxs("div",{className:"app",children:[A.jsxs("div",{className:"titlebar","data-tauri-drag-region":!0,children:[A.jsx("span",{className:"titlebar-text",children:"π Claude-Orka"}),A.jsxs("div",{className:"titlebar-buttons",children:[A.jsx("button",{className:"titlebar-button minimize",onClick:F,children:"Minimize"}),A.jsx("button",{className:"titlebar-button save-close",onClick:z,children:"Save & Close"})]})]}),A.jsx($d,{session:e}),A.jsx("div",{className:"content",children:A.jsx(Md,{session:e,selectedNode:n,onNodeClick:V})}),A.jsx(Id,{selectedNode:n,onCreateFork:T,onExportFork:L,onMergeFork:B,onCloseFork:h,isCreatingFork:d,isExporting:x,isMerging:b,isClosing:w,canCreateFork:E.filter(v=>v.parentId===n&&v.status==="active").length===0,hasExport:n==="main"?!1:!!((_=E.find(v=>v.id===n))!=null&&_.contextPath)}),c&&A.jsx("div",{className:"modal-overlay",children:A.jsxs("div",{className:"modal",children:[A.jsx("h3",{children:"Create New Fork"}),A.jsx("input",{type:"text",value:l,onChange:v=>f(v.target.value),placeholder:"Enter fork name...",autoFocus:!0,disabled:d,onKeyPress:v=>v.key==="Enter"&&!d&&R()}),A.jsxs("div",{className:"modal-buttons",children:[A.jsx("button",{onClick:H,className:"button-secondary",disabled:d,children:"Cancel"}),A.jsx("button",{onClick:R,className:"button-primary",disabled:d,children:d?"Creating...":"Create"})]})]})}),y&&$&&A.jsx(Td,{fork:$,onClose:()=>{M(!1),D(null)},onOpenExport:$.status==="merged"?k:void 0})]})}class Pd extends S.Component{constructor(t){super(t),this.state={hasError:!1,error:null,errorInfo:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t,errorInfo:null}}componentDidCatch(t,n){console.error("[ErrorBoundary] Caught error:",t,n),this.setState({error:t,errorInfo:n})}render(){var t,n;return this.state.hasError?A.jsxs("div",{style:{padding:"20px",backgroundColor:"#1e1e2e",color:"#cdd6f4",fontFamily:"monospace",height:"100vh",overflow:"auto"},children:[A.jsx("h2",{style:{color:"#f38ba8"},children:"Something went wrong"}),A.jsxs("details",{style:{whiteSpace:"pre-wrap",marginTop:"10px"},children:[A.jsx("summary",{style:{cursor:"pointer",color:"#fab387"},children:(t=this.state.error)==null?void 0:t.toString()}),A.jsx("pre",{style:{marginTop:"10px",padding:"10px",backgroundColor:"#313244",borderRadius:"4px",fontSize:"12px",overflow:"auto"},children:(n=this.state.errorInfo)==null?void 0:n.componentStack})]}),A.jsx("button",{onClick:()=>window.location.reload(),style:{marginTop:"20px",padding:"10px 20px",backgroundColor:"#89b4fa",color:"#1e1e2e",border:"none",borderRadius:"4px",cursor:"pointer"},children:"Reload"})]}):this.props.children}}pi.createRoot(document.getElementById("root")).render(A.jsx(C.StrictMode,{children:A.jsx(Pd,{children:A.jsx(zd,{})})}));
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<title>Claude-Orka</title>
|
|
7
|
-
<script type="module" crossorigin src="./assets/main-
|
|
7
|
+
<script type="module" crossorigin src="./assets/main-HIgPFlZ_.js"></script>
|
|
8
8
|
<link rel="modulepreload" crossorigin href="./assets/terminal-BTLiXhkP.js">
|
|
9
9
|
<link rel="stylesheet" crossorigin href="./assets/main-DqAO9n-6.css">
|
|
10
10
|
</head>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/core/SessionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../../src/core/SessionManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AA2BzD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,yBAAyB,CAAC,EAAE,MAAM,CAAA;CACnC;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,WAAW,CAAQ;gBAEf,WAAW,EAAE,MAAM;IAK/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,QAAQ;IAQd;;OAEG;IACG,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyEzE;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,UAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAyF7E;;OAEG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrD;;OAEG;IACG,YAAY,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIhE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAQ5D;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,GAAE,MAAe,EACzB,QAAQ,UAAQ,GACf,OAAO,CAAC,IAAI,CAAC;IA+DhB;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDlE;;OAEG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BlE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBnE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BnF;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuE5E;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkGjE;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASpE;;;;;OAKG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB5G;;OAEG;YACW,gBAAgB;IA0C9B;;OAEG;YACW,QAAQ;CAgFvB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StateManager } from './StateManager';
|
|
2
|
-
import { TmuxCommands, logger
|
|
2
|
+
import { TmuxCommands, logger } from '../utils';
|
|
3
3
|
import { v4 as uuidv4 } from 'uuid';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
@@ -237,6 +237,7 @@ export class SessionManager {
|
|
|
237
237
|
throw new Error(`Session ${sessionId} not found`);
|
|
238
238
|
}
|
|
239
239
|
const forkId = uuidv4();
|
|
240
|
+
const forkClaudeSessionId = uuidv4(); // Pre-generate the Claude session ID
|
|
240
241
|
const forkName = name || `Fork-${session.forks.length + 1}`;
|
|
241
242
|
logger.info(`Creating fork: ${forkName} from parent ${parentId} in session ${session.name}`);
|
|
242
243
|
// Find parent's claudeSessionId
|
|
@@ -252,6 +253,7 @@ export class SessionManager {
|
|
|
252
253
|
parentClaudeSessionId = parentFork.claudeSessionId;
|
|
253
254
|
}
|
|
254
255
|
logger.debug(`Parent Claude session ID: ${parentClaudeSessionId}`);
|
|
256
|
+
logger.debug(`Pre-generated fork Claude session ID: ${forkClaudeSessionId}`);
|
|
255
257
|
// 1. Crear split en tmux
|
|
256
258
|
await TmuxCommands.splitPane(session.tmuxSessionId, vertical);
|
|
257
259
|
await sleep(1000);
|
|
@@ -259,28 +261,19 @@ export class SessionManager {
|
|
|
259
261
|
const allPanes = await TmuxCommands.listPanes(session.tmuxSessionId);
|
|
260
262
|
const forkPaneId = allPanes[allPanes.length - 1];
|
|
261
263
|
logger.debug(`Fork pane ID: ${forkPaneId}`);
|
|
262
|
-
// 3.
|
|
263
|
-
const existingIds = await getExistingSessionIds();
|
|
264
|
-
logger.debug(`Existing sessions before fork: ${existingIds.size}`);
|
|
265
|
-
// 4. Start Claude fork con prompt inicial
|
|
264
|
+
// 3. Start Claude fork con session ID pre-generado (no need to detect!)
|
|
266
265
|
await this.initializeClaude(forkPaneId, {
|
|
267
266
|
type: 'fork',
|
|
268
267
|
parentSessionId: parentClaudeSessionId,
|
|
268
|
+
forkSessionId: forkClaudeSessionId,
|
|
269
269
|
forkName: forkName,
|
|
270
270
|
});
|
|
271
|
-
//
|
|
272
|
-
logger.info('Detecting fork session ID from history...');
|
|
273
|
-
const detectedForkId = await detectNewSessionId(existingIds, 30000, 500);
|
|
274
|
-
if (!detectedForkId) {
|
|
275
|
-
throw new Error('Failed to detect fork session ID. Fork may not have been created. Check if the parent session is valid.');
|
|
276
|
-
}
|
|
277
|
-
logger.info(`Fork session ID detected: ${detectedForkId}`);
|
|
278
|
-
// 6. Crear fork con el ID detectado
|
|
271
|
+
// 4. Crear fork con el ID pre-generado (no waiting for detection!)
|
|
279
272
|
const fork = {
|
|
280
273
|
id: forkId,
|
|
281
274
|
name: forkName,
|
|
282
275
|
parentId: parentId,
|
|
283
|
-
claudeSessionId:
|
|
276
|
+
claudeSessionId: forkClaudeSessionId, // β
Pre-generated ID
|
|
284
277
|
tmuxPaneId: forkPaneId,
|
|
285
278
|
status: 'active',
|
|
286
279
|
createdAt: new Date().toISOString(),
|
|
@@ -288,7 +281,7 @@ export class SessionManager {
|
|
|
288
281
|
session.forks.push(fork);
|
|
289
282
|
session.lastActivity = new Date().toISOString();
|
|
290
283
|
await this.stateManager.replaceSession(session);
|
|
291
|
-
logger.info(`Fork created: ${forkName} (${forkId})`);
|
|
284
|
+
logger.info(`Fork created: ${forkName} (${forkId}) with Claude session ${forkClaudeSessionId}`);
|
|
292
285
|
return fork;
|
|
293
286
|
}
|
|
294
287
|
/**
|
|
@@ -613,7 +606,7 @@ Analyze the content and help me integrate the changes and learnings from the for
|
|
|
613
606
|
* Initialize Claude en un pane con prompt inicial
|
|
614
607
|
*/
|
|
615
608
|
async initializeClaude(paneId, options) {
|
|
616
|
-
const { type, sessionId, resumeSessionId, parentSessionId, sessionName, forkName } = options;
|
|
609
|
+
const { type, sessionId, resumeSessionId, parentSessionId, forkSessionId, sessionName, forkName } = options;
|
|
617
610
|
// 1. cd al proyecto
|
|
618
611
|
await TmuxCommands.sendKeys(paneId, `cd ${this.projectPath}`);
|
|
619
612
|
await TmuxCommands.sendEnter(paneId);
|
|
@@ -635,14 +628,15 @@ Analyze the content and help me integrate the changes and learnings from the for
|
|
|
635
628
|
break;
|
|
636
629
|
case 'fork':
|
|
637
630
|
const forkPrompt = `This is a fork called "${forkName}". Keep in mind we are exploring an alternative to the main conversation.`;
|
|
638
|
-
|
|
631
|
+
// Use --session-id to pre-set the fork's session ID (eliminates need to detect from history)
|
|
632
|
+
command = `claude --resume ${parentSessionId} --fork-session --session-id ${forkSessionId} "${forkPrompt}"`;
|
|
639
633
|
break;
|
|
640
634
|
}
|
|
641
635
|
logger.info(`Executing: ${command}`);
|
|
642
636
|
await TmuxCommands.sendKeys(paneId, command);
|
|
643
637
|
await TmuxCommands.sendEnter(paneId);
|
|
644
|
-
// 3. Esperar a que Claude inicie
|
|
645
|
-
await sleep(
|
|
638
|
+
// 3. Esperar a que Claude inicie (reducido porque ya no detectamos session ID)
|
|
639
|
+
await sleep(2000); // 2 segundos para que Claude inicie
|
|
646
640
|
}
|
|
647
641
|
/**
|
|
648
642
|
* Launch Electron UI for a session
|