furu 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl
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.
- furu/__init__.py +3 -1
- furu/config.py +85 -5
- furu/core/__init__.py +2 -2
- furu/core/furu.py +438 -75
- furu/dashboard/frontend/dist/assets/{index-CbdDfSOZ.css → index-BXAIKNNr.css} +1 -1
- furu/dashboard/frontend/dist/assets/{index-DDv_TYB_.js → index-DS3FsqcY.js} +3 -3
- furu/dashboard/frontend/dist/index.html +2 -2
- furu/errors.py +47 -5
- furu/migration.py +8 -4
- furu/serialization/serializer.py +40 -2
- furu/storage/metadata.py +17 -5
- furu/storage/state.py +115 -3
- {furu-0.0.1.dist-info → furu-0.0.3.dist-info}/METADATA +48 -20
- {furu-0.0.1.dist-info → furu-0.0.3.dist-info}/RECORD +19 -19
- {furu-0.0.1.dist-info → furu-0.0.3.dist-info}/WHEEL +1 -1
- {furu-0.0.1.dist-info → furu-0.0.3.dist-info}/entry_points.txt +1 -0
|
@@ -58,10 +58,10 @@ Error generating stack: `+o.message+`
|
|
|
58
58
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[og]=this[og]={accessors:{}}).accessors,s=this.prototype;function o(i){const a=Jo(i);r[a]||(mP(s,i),r[a]=!0)}return $.isArray(t)?t.forEach(o):o(t),this}};bt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);$.reduceDescriptors(bt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});$.freezeMethods(bt);function Hc(e,t){const n=this||ga,r=t||n,s=bt.from(r.headers);let o=r.data;return $.forEach(e,function(a){o=a.call(n,o,s.normalize(),t?t.status:void 0)}),s.normalize(),o}function Kv(e){return!!(e&&e.__CANCEL__)}function Fo(e,t,n){se.call(this,e??"canceled",se.ERR_CANCELED,t,n),this.name="CanceledError"}$.inherits(Fo,se,{__CANCEL__:!0});function qv(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new se("Request failed with status code "+n.status,[se.ERR_BAD_REQUEST,se.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function gP(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function yP(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,o=0,i;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),d=r[o];i||(i=u),n[s]=l,r[s]=u;let c=o,f=0;for(;c!==s;)f+=n[c++],c=c%e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),u-i<t)return;const m=d&&u-d;return m?Math.round(f*1e3/m):void 0}}function xP(e,t){let n=0,r=1e3/t,s,o;const i=(u,d=Date.now())=>{n=d,s=null,o&&(clearTimeout(o),o=null),e(...u)};return[(...u)=>{const d=Date.now(),c=d-n;c>=r?i(u,d):(s=u,o||(o=setTimeout(()=>{o=null,i(s)},r-c)))},()=>s&&i(s)]}const au=(e,t,n=3)=>{let r=0;const s=yP(50,250);return xP(o=>{const i=o.loaded,a=o.lengthComputable?o.total:void 0,l=i-r,u=s(l),d=i<=a;r=i;const c={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:u||void 0,estimated:u&&a&&d?(a-i)/u:void 0,event:o,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(c)},n)},ig=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},ag=e=>(...t)=>$.asap(()=>e(...t)),vP=tt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,tt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(tt.origin),tt.navigator&&/(msie|trident)/i.test(tt.navigator.userAgent)):()=>!0,wP=tt.hasStandardBrowserEnv?{write(e,t,n,r,s,o,i){if(typeof document>"u")return;const a=[`${e}=${encodeURIComponent(t)}`];$.isNumber(n)&&a.push(`expires=${new Date(n).toUTCString()}`),$.isString(r)&&a.push(`path=${r}`),$.isString(s)&&a.push(`domain=${s}`),o===!0&&a.push("secure"),$.isString(i)&&a.push(`SameSite=${i}`),document.cookie=a.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function SP(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function _P(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Qv(e,t,n){let r=!SP(t);return e&&(r||n==!1)?_P(e,t):t}const lg=e=>e instanceof bt?{...e}:e;function ys(e,t){t=t||{};const n={};function r(u,d,c,f){return $.isPlainObject(u)&&$.isPlainObject(d)?$.merge.call({caseless:f},u,d):$.isPlainObject(d)?$.merge({},d):$.isArray(d)?d.slice():d}function s(u,d,c,f){if($.isUndefined(d)){if(!$.isUndefined(u))return r(void 0,u,c,f)}else return r(u,d,c,f)}function o(u,d){if(!$.isUndefined(d))return r(void 0,d)}function i(u,d){if($.isUndefined(d)){if(!$.isUndefined(u))return r(void 0,u)}else return r(void 0,d)}function a(u,d,c){if(c in t)return r(u,d);if(c in e)return r(void 0,u)}const l={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(u,d,c)=>s(lg(u),lg(d),c,!0)};return $.forEach(Object.keys({...e,...t}),function(d){const c=l[d]||s,f=c(e[d],t[d],d);$.isUndefined(f)&&c!==a||(n[d]=f)}),n}const Gv=e=>{const t=ys({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:i,auth:a}=t;if(t.headers=i=bt.from(i),t.url=Uv(Qv(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),$.isFormData(n)){if(tt.hasStandardBrowserEnv||tt.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if($.isFunction(n.getHeaders)){const l=n.getHeaders(),u=["content-type","content-length"];Object.entries(l).forEach(([d,c])=>{u.includes(d.toLowerCase())&&i.set(d,c)})}}if(tt.hasStandardBrowserEnv&&(r&&$.isFunction(r)&&(r=r(t)),r||r!==!1&&vP(t.url))){const l=s&&o&&wP.read(o);l&&i.set(s,l)}return t},bP=typeof XMLHttpRequest<"u",EP=bP&&function(e){return new Promise(function(n,r){const s=Gv(e);let o=s.data;const i=bt.from(s.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:u}=s,d,c,f,m,p;function x(){m&&m(),p&&p(),s.cancelToken&&s.cancelToken.unsubscribe(d),s.signal&&s.signal.removeEventListener("abort",d)}let w=new XMLHttpRequest;w.open(s.method.toUpperCase(),s.url,!0),w.timeout=s.timeout;function g(){if(!w)return;const y=bt.from("getAllResponseHeaders"in w&&w.getAllResponseHeaders()),E={data:!a||a==="text"||a==="json"?w.responseText:w.response,status:w.status,statusText:w.statusText,headers:y,config:e,request:w};qv(function(b){n(b),x()},function(b){r(b),x()},E),w=null}"onloadend"in w?w.onloadend=g:w.onreadystatechange=function(){!w||w.readyState!==4||w.status===0&&!(w.responseURL&&w.responseURL.indexOf("file:")===0)||setTimeout(g)},w.onabort=function(){w&&(r(new se("Request aborted",se.ECONNABORTED,e,w)),w=null)},w.onerror=function(S){const E=S&&S.message?S.message:"Network Error",_=new se(E,se.ERR_NETWORK,e,w);_.event=S||null,r(_),w=null},w.ontimeout=function(){let S=s.timeout?"timeout of "+s.timeout+"ms exceeded":"timeout exceeded";const E=s.transitional||Vv;s.timeoutErrorMessage&&(S=s.timeoutErrorMessage),r(new se(S,E.clarifyTimeoutError?se.ETIMEDOUT:se.ECONNABORTED,e,w)),w=null},o===void 0&&i.setContentType(null),"setRequestHeader"in w&&$.forEach(i.toJSON(),function(S,E){w.setRequestHeader(E,S)}),$.isUndefined(s.withCredentials)||(w.withCredentials=!!s.withCredentials),a&&a!=="json"&&(w.responseType=s.responseType),u&&([f,p]=au(u,!0),w.addEventListener("progress",f)),l&&w.upload&&([c,m]=au(l),w.upload.addEventListener("progress",c),w.upload.addEventListener("loadend",m)),(s.cancelToken||s.signal)&&(d=y=>{w&&(r(!y||y.type?new Fo(null,e,w):y),w.abort(),w=null)},s.cancelToken&&s.cancelToken.subscribe(d),s.signal&&(s.signal.aborted?d():s.signal.addEventListener("abort",d)));const v=gP(s.url);if(v&&tt.protocols.indexOf(v)===-1){r(new se("Unsupported protocol "+v+":",se.ERR_BAD_REQUEST,e));return}w.send(o||null)})},CP=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,s;const o=function(u){if(!s){s=!0,a();const d=u instanceof Error?u:this.reason;r.abort(d instanceof se?d:new Fo(d instanceof Error?d.message:d))}};let i=t&&setTimeout(()=>{i=null,o(new se(`timeout ${t} of ms exceeded`,se.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(u=>{u.unsubscribe?u.unsubscribe(o):u.removeEventListener("abort",o)}),e=null)};e.forEach(u=>u.addEventListener("abort",o));const{signal:l}=r;return l.unsubscribe=()=>$.asap(a),l}},NP=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,s;for(;r<n;)s=r+t,yield e.slice(r,s),r=s},kP=async function*(e,t){for await(const n of PP(e))yield*NP(n,t)},PP=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},ug=(e,t,n,r)=>{const s=kP(e,t);let o=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:u,value:d}=await s.next();if(u){a(),l.close();return}let c=d.byteLength;if(n){let f=o+=c;n(f)}l.enqueue(new Uint8Array(d))}catch(u){throw a(u),u}},cancel(l){return a(l),s.return()}},{highWaterMark:2})},cg=64*1024,{isFunction:Ga}=$,RP=(({Request:e,Response:t})=>({Request:e,Response:t}))($.global),{ReadableStream:dg,TextEncoder:fg}=$.global,hg=(e,...t)=>{try{return!!e(...t)}catch{return!1}},jP=e=>{e=$.merge.call({skipUndefined:!0},RP,e);const{fetch:t,Request:n,Response:r}=e,s=t?Ga(t):typeof fetch=="function",o=Ga(n),i=Ga(r);if(!s)return!1;const a=s&&Ga(dg),l=s&&(typeof fg=="function"?(p=>x=>p.encode(x))(new fg):async p=>new Uint8Array(await new n(p).arrayBuffer())),u=o&&a&&hg(()=>{let p=!1;const x=new n(tt.origin,{body:new dg,method:"POST",get duplex(){return p=!0,"half"}}).headers.has("Content-Type");return p&&!x}),d=i&&a&&hg(()=>$.isReadableStream(new r("").body)),c={stream:d&&(p=>p.body)};s&&["text","arrayBuffer","blob","formData","stream"].forEach(p=>{!c[p]&&(c[p]=(x,w)=>{let g=x&&x[p];if(g)return g.call(x);throw new se(`Response type '${p}' is not supported`,se.ERR_NOT_SUPPORT,w)})});const f=async p=>{if(p==null)return 0;if($.isBlob(p))return p.size;if($.isSpecCompliantForm(p))return(await new n(tt.origin,{method:"POST",body:p}).arrayBuffer()).byteLength;if($.isArrayBufferView(p)||$.isArrayBuffer(p))return p.byteLength;if($.isURLSearchParams(p)&&(p=p+""),$.isString(p))return(await l(p)).byteLength},m=async(p,x)=>{const w=$.toFiniteNumber(p.getContentLength());return w??f(x)};return async p=>{let{url:x,method:w,data:g,signal:v,cancelToken:y,timeout:S,onDownloadProgress:E,onUploadProgress:_,responseType:b,headers:C,withCredentials:L="same-origin",fetchOptions:M}=Gv(p),P=t||fetch;b=b?(b+"").toLowerCase():"text";let j=CP([v,y&&y.toAbortSignal()],S),O=null;const k=j&&j.unsubscribe&&(()=>{j.unsubscribe()});let D;try{if(_&&u&&w!=="get"&&w!=="head"&&(D=await m(C,g))!==0){let B=new n(x,{method:"POST",body:g,duplex:"half"}),H;if($.isFormData(g)&&(H=B.headers.get("content-type"))&&C.setContentType(H),B.body){const[K,V]=ig(D,au(ag(_)));g=ug(B.body,cg,K,V)}}$.isString(L)||(L=L?"include":"omit");const I=o&&"credentials"in n.prototype,F={...M,signal:j,method:w.toUpperCase(),headers:C.normalize().toJSON(),body:g,duplex:"half",credentials:I?L:void 0};O=o&&new n(x,F);let N=await(o?P(O,M):P(x,F));const T=d&&(b==="stream"||b==="response");if(d&&(E||T&&k)){const B={};["status","statusText","headers"].forEach(X=>{B[X]=N[X]});const H=$.toFiniteNumber(N.headers.get("content-length")),[K,V]=E&&ig(H,au(ag(E),!0))||[];N=new r(ug(N.body,cg,K,()=>{V&&V(),k&&k()}),B)}b=b||"text";let z=await c[$.findKey(c,b)||"text"](N,p);return!T&&k&&k(),await new Promise((B,H)=>{qv(B,H,{data:z,headers:bt.from(N.headers),status:N.status,statusText:N.statusText,config:p,request:O})})}catch(I){throw k&&k(),I&&I.name==="TypeError"&&/Load failed|fetch/i.test(I.message)?Object.assign(new se("Network Error",se.ERR_NETWORK,p,O),{cause:I.cause||I}):se.from(I,I&&I.code,p,O)}}},MP=new Map,Xv=e=>{let t=e&&e.env||{};const{fetch:n,Request:r,Response:s}=t,o=[r,s,n];let i=o.length,a=i,l,u,d=MP;for(;a--;)l=o[a],u=d.get(l),u===void 0&&d.set(l,u=a?new Map:jP(t)),d=u;return u};Xv();const Hh={http:Qk,xhr:EP,fetch:{get:Xv}};$.forEach(Hh,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const pg=e=>`- ${e}`,TP=e=>$.isFunction(e)||e===null||e===!1;function LP(e,t){e=$.isArray(e)?e:[e];const{length:n}=e;let r,s;const o={};for(let i=0;i<n;i++){r=e[i];let a;if(s=r,!TP(r)&&(s=Hh[(a=String(r)).toLowerCase()],s===void 0))throw new se(`Unknown adapter '${a}'`);if(s&&($.isFunction(s)||(s=s.get(t))))break;o[a||"#"+i]=s}if(!s){const i=Object.entries(o).map(([l,u])=>`adapter ${l} `+(u===!1?"is not supported by the environment":"is not available in the build"));let a=n?i.length>1?`since :
|
|
59
59
|
`+i.map(pg).join(`
|
|
60
60
|
`):" "+pg(i[0]):"as no adapter specified";throw new se("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return s}const Yv={getAdapter:LP,adapters:Hh};function Uc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Fo(null,e)}function mg(e){return Uc(e),e.headers=bt.from(e.headers),e.data=Hc.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Yv.getAdapter(e.adapter||ga.adapter,e)(e).then(function(r){return Uc(e),r.data=Hc.call(e,e.transformResponse,r),r.headers=bt.from(r.headers),r},function(r){return Kv(r)||(Uc(e),r&&r.response&&(r.response.data=Hc.call(e,e.transformResponse,r.response),r.response.headers=bt.from(r.response.headers))),Promise.reject(r)})}const Zv="1.13.2",Vu={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Vu[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const gg={};Vu.transitional=function(t,n,r){function s(o,i){return"[Axios v"+Zv+"] Transitional option '"+o+"'"+i+(r?". "+r:"")}return(o,i,a)=>{if(t===!1)throw new se(s(i," has been removed"+(n?" in "+n:"")),se.ERR_DEPRECATED);return n&&!gg[i]&&(gg[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,a):!0}};Vu.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function IP(e,t,n){if(typeof e!="object")throw new se("options must be an object",se.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const o=r[s],i=t[o];if(i){const a=e[o],l=a===void 0||i(a,o,e);if(l!==!0)throw new se("option "+o+" must be "+l,se.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new se("Unknown option "+o,se.ERR_BAD_OPTION)}}const Sl={assertOptions:IP,validators:Vu},dn=Sl.validators;let os=class{constructor(t){this.defaults=t||{},this.interceptors={request:new sg,response:new sg}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s={};Error.captureStackTrace?Error.captureStackTrace(s):s=new Error;const o=s.stack?s.stack.replace(/^.+\n/,""):"";try{r.stack?o&&!String(r.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(r.stack+=`
|
|
61
|
-
`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ys(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Sl.assertOptions(r,{silentJSONParsing:dn.transitional(dn.boolean),forcedJSONParsing:dn.transitional(dn.boolean),clarifyTimeoutError:dn.transitional(dn.boolean)},!1),s!=null&&($.isFunction(s)?n.paramsSerializer={serialize:s}:Sl.assertOptions(s,{encode:dn.function,serialize:dn.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Sl.assertOptions(n,{baseUrl:dn.spelling("baseURL"),withXsrfToken:dn.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&$.merge(o.common,o[n.method]);o&&$.forEach(["delete","get","head","post","put","patch","common"],p=>{delete o[p]}),n.headers=bt.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(x){typeof x.runWhen=="function"&&x.runWhen(n)===!1||(l=l&&x.synchronous,a.unshift(x.fulfilled,x.rejected))});const u=[];this.interceptors.response.forEach(function(x){u.push(x.fulfilled,x.rejected)});let d,c=0,f;if(!l){const p=[mg.bind(this),void 0];for(p.unshift(...a),p.push(...u),f=p.length,d=Promise.resolve(n);c<f;)d=d.then(p[c++],p[c++]);return d}f=a.length;let m=n;for(;c<f;){const p=a[c++],x=a[c++];try{m=p(m)}catch(w){x.call(this,w);break}}try{d=mg.call(this,m)}catch(p){return Promise.reject(p)}for(c=0,f=u.length;c<f;)d=d.then(u[c++],u[c++]);return d}getUri(t){t=ys(this.defaults,t);const n=Qv(t.baseURL,t.url,t.allowAbsoluteUrls);return Uv(n,t.params,t.paramsSerializer)}};$.forEach(["delete","get","head","options"],function(t){os.prototype[t]=function(n,r){return this.request(ys(r||{},{method:t,url:n,data:(r||{}).data}))}});$.forEach(["post","put","patch"],function(t){function n(r){return function(o,i,a){return this.request(ys(a||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:i}))}}os.prototype[t]=n(),os.prototype[t+"Form"]=n(!0)});let AP=class Jv{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(s=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new Fo(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Jv(function(s){t=s}),cancel:t}}};function OP(e){return function(n){return e.apply(null,n)}}function FP(e){return $.isObject(e)&&e.isAxiosError===!0}const hf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(hf).forEach(([e,t])=>{hf[t]=e});function ew(e){const t=new os(e),n=Mv(os.prototype.request,t);return $.extend(n,os.prototype,t,{allOwnKeys:!0}),$.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return ew(ys(e,s))},n}const Te=ew(ga);Te.Axios=os;Te.CanceledError=Fo;Te.CancelToken=AP;Te.isCancel=Kv;Te.VERSION=Zv;Te.toFormData=Uu;Te.AxiosError=se;Te.Cancel=Te.CanceledError;Te.all=function(t){return Promise.all(t)};Te.spread=OP;Te.isAxiosError=FP;Te.mergeConfig=ys;Te.AxiosHeaders=bt;Te.formToJSON=e=>Wv($.isHTMLForm(e)?new FormData(e):e);Te.getAdapter=Yv.getAdapter;Te.HttpStatusCode=hf;Te.default=Te;const{Axios:zO,AxiosError:DP,CanceledError:$O,isCancel:BO,CancelToken:HO,VERSION:UO,all:VO,Cancel:WO,isAxiosError:KO,spread:qO,toFormData:QO,AxiosHeaders:GO,HttpStatusCode:XO,formToJSON:YO,getAdapter:ZO,mergeConfig:JO}=Te;function yg(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zP(...e){return t=>{let n=!1;const r=e.map(s=>{const o=yg(s,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let s=0;s<r.length;s++){const o=r[s];typeof o=="function"?o():yg(e[s],null)}}}}var $P=Symbol.for("react.lazy"),lu=x_[" use ".trim().toString()];function BP(e){return typeof e=="object"&&e!==null&&"then"in e}function tw(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===$P&&"_payload"in e&&BP(e._payload)}function HP(e){const t=VP(e),n=R.forwardRef((r,s)=>{let{children:o,...i}=r;tw(o)&&typeof lu=="function"&&(o=lu(o._payload));const a=R.Children.toArray(o),l=a.find(KP);if(l){const u=l.props.children,d=a.map(c=>c===l?R.Children.count(u)>1?R.Children.only(null):R.isValidElement(u)?u.props.children:null:c);return h.jsx(t,{...i,ref:s,children:R.isValidElement(u)?R.cloneElement(u,void 0,d):null})}return h.jsx(t,{...i,ref:s,children:o})});return n.displayName=`${e}.Slot`,n}var UP=HP("Slot");function VP(e){const t=R.forwardRef((n,r)=>{let{children:s,...o}=n;if(tw(s)&&typeof lu=="function"&&(s=lu(s._payload)),R.isValidElement(s)){const i=QP(s),a=qP(o,s.props);return s.type!==R.Fragment&&(a.ref=r?zP(r,i):i),R.cloneElement(s,a)}return R.Children.count(s)>1?R.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var WP=Symbol("radix.slottable");function KP(e){return R.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WP}function qP(e,t){const n={...t};for(const r in t){const s=e[r],o=t[r];/^on[A-Z]/.test(r)?s&&o?n[r]=(...a)=>{const l=o(...a);return s(...a),l}:s&&(n[r]=s):r==="style"?n[r]={...s,...o}:r==="className"&&(n[r]=[s,o].filter(Boolean).join(" "))}return{...e,...n}}function QP(e){var r,s;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function nw(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=nw(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function rw(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=nw(e))&&(r&&(r+=" "),r+=t);return r}const xg=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,vg=rw,sw=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return vg(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:s,defaultVariants:o}=t,i=Object.keys(s).map(u=>{const d=n==null?void 0:n[u],c=o==null?void 0:o[u];if(d===null)return null;const f=xg(d)||xg(c);return s[u][f]}),a=n&&Object.entries(n).reduce((u,d)=>{let[c,f]=d;return f===void 0||(u[c]=f),u},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,d)=>{let{class:c,className:f,...m}=d;return Object.entries(m).every(p=>{let[x,w]=p;return Array.isArray(w)?w.includes({...o,...a}[x]):{...o,...a}[x]===w})?[...u,c,f]:u},[]);return vg(e,i,l,n==null?void 0:n.class,n==null?void 0:n.className)},Uh="-",GP=e=>{const t=YP(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const a=i.split(Uh);return a[0]===""&&a.length!==1&&a.shift(),ow(a,t)||XP(i)},getConflictingClassGroupIds:(i,a)=>{const l=n[i]||[];return a&&r[i]?[...l,...r[i]]:l}}},ow=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),s=r?ow(e.slice(1),r):void 0;if(s)return s;if(t.validators.length===0)return;const o=e.join(Uh);return(i=t.validators.find(({validator:a})=>a(o)))==null?void 0:i.classGroupId},wg=/^\[(.+)\]$/,XP=e=>{if(wg.test(e)){const t=wg.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},YP=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return JP(Object.entries(e.classGroups),n).forEach(([o,i])=>{pf(i,r,o,t)}),r},pf=(e,t,n,r)=>{e.forEach(s=>{if(typeof s=="string"){const o=s===""?t:Sg(t,s);o.classGroupId=n;return}if(typeof s=="function"){if(ZP(s)){pf(s(r),t,n,r);return}t.validators.push({validator:s,classGroupId:n});return}Object.entries(s).forEach(([o,i])=>{pf(i,Sg(t,o),n,r)})})},Sg=(e,t)=>{let n=e;return t.split(Uh).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},ZP=e=>e.isThemeGetter,JP=(e,t)=>t?e.map(([n,r])=>{const s=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([i,a])=>[t+i,a])):o);return[n,s]}):e,eR=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const s=(o,i)=>{n.set(o,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(o){let i=n.get(o);if(i!==void 0)return i;if((i=r.get(o))!==void 0)return s(o,i),i},set(o,i){n.has(o)?n.set(o,i):s(o,i)}}},iw="!",tR=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,s=t[0],o=t.length,i=a=>{const l=[];let u=0,d=0,c;for(let w=0;w<a.length;w++){let g=a[w];if(u===0){if(g===s&&(r||a.slice(w,w+o)===t)){l.push(a.slice(d,w)),d=w+o;continue}if(g==="/"){c=w;continue}}g==="["?u++:g==="]"&&u--}const f=l.length===0?a:a.substring(d),m=f.startsWith(iw),p=m?f.substring(1):f,x=c&&c>d?c-d:void 0;return{modifiers:l,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:x}};return n?a=>n({className:a,parseClassName:i}):i},nR=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},rR=e=>({cache:eR(e.cacheSize),parseClassName:tR(e),...GP(e)}),sR=/\s+/,oR=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:s}=t,o=[],i=e.trim().split(sR);let a="";for(let l=i.length-1;l>=0;l-=1){const u=i[l],{modifiers:d,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:m}=n(u);let p=!!m,x=r(p?f.substring(0,m):f);if(!x){if(!p){a=u+(a.length>0?" "+a:a);continue}if(x=r(f),!x){a=u+(a.length>0?" "+a:a);continue}p=!1}const w=nR(d).join(":"),g=c?w+iw:w,v=g+x;if(o.includes(v))continue;o.push(v);const y=s(x,p);for(let S=0;S<y.length;++S){const E=y[S];o.push(g+E)}a=u+(a.length>0?" "+a:a)}return a};function iR(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=aw(t))&&(r&&(r+=" "),r+=n);return r}const aw=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=aw(e[r]))&&(n&&(n+=" "),n+=t);return n};function aR(e,...t){let n,r,s,o=i;function i(l){const u=t.reduce((d,c)=>c(d),e());return n=rR(u),r=n.cache.get,s=n.cache.set,o=a,a(l)}function a(l){const u=r(l);if(u)return u;const d=oR(l,n);return s(l,d),d}return function(){return o(iR.apply(null,arguments))}}const ve=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},lw=/^\[(?:([a-z-]+):)?(.+)\]$/i,lR=/^\d+\/\d+$/,uR=new Set(["px","full","screen"]),cR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,dR=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,fR=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,hR=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,pR=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Nn=e=>Xs(e)||uR.has(e)||lR.test(e),Qn=e=>Do(e,"length",_R),Xs=e=>!!e&&!Number.isNaN(Number(e)),Vc=e=>Do(e,"number",Xs),ei=e=>!!e&&Number.isInteger(Number(e)),mR=e=>e.endsWith("%")&&Xs(e.slice(0,-1)),ie=e=>lw.test(e),Gn=e=>cR.test(e),gR=new Set(["length","size","percentage"]),yR=e=>Do(e,gR,uw),xR=e=>Do(e,"position",uw),vR=new Set(["image","url"]),wR=e=>Do(e,vR,ER),SR=e=>Do(e,"",bR),ti=()=>!0,Do=(e,t,n)=>{const r=lw.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},_R=e=>dR.test(e)&&!fR.test(e),uw=()=>!1,bR=e=>hR.test(e),ER=e=>pR.test(e),CR=()=>{const e=ve("colors"),t=ve("spacing"),n=ve("blur"),r=ve("brightness"),s=ve("borderColor"),o=ve("borderRadius"),i=ve("borderSpacing"),a=ve("borderWidth"),l=ve("contrast"),u=ve("grayscale"),d=ve("hueRotate"),c=ve("invert"),f=ve("gap"),m=ve("gradientColorStops"),p=ve("gradientColorStopPositions"),x=ve("inset"),w=ve("margin"),g=ve("opacity"),v=ve("padding"),y=ve("saturate"),S=ve("scale"),E=ve("sepia"),_=ve("skew"),b=ve("space"),C=ve("translate"),L=()=>["auto","contain","none"],M=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto",ie,t],j=()=>[ie,t],O=()=>["",Nn,Qn],k=()=>["auto",Xs,ie],D=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],I=()=>["solid","dashed","dotted","double","none"],F=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],N=()=>["start","end","center","between","around","evenly","stretch"],T=()=>["","0",ie],z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>[Xs,ie];return{cacheSize:500,separator:":",theme:{colors:[ti],spacing:[Nn,Qn],blur:["none","",Gn,ie],brightness:B(),borderColor:[e],borderRadius:["none","","full",Gn,ie],borderSpacing:j(),borderWidth:O(),contrast:B(),grayscale:T(),hueRotate:B(),invert:T(),gap:j(),gradientColorStops:[e],gradientColorStopPositions:[mR,Qn],inset:P(),margin:P(),opacity:B(),padding:j(),saturate:B(),scale:B(),sepia:T(),skew:B(),space:j(),translate:j()},classGroups:{aspect:[{aspect:["auto","square","video",ie]}],container:["container"],columns:[{columns:[Gn]}],"break-after":[{"break-after":z()}],"break-before":[{"break-before":z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...D(),ie]}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[x]}],"inset-x":[{"inset-x":[x]}],"inset-y":[{"inset-y":[x]}],start:[{start:[x]}],end:[{end:[x]}],top:[{top:[x]}],right:[{right:[x]}],bottom:[{bottom:[x]}],left:[{left:[x]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ei,ie]}],basis:[{basis:P()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",ie]}],grow:[{grow:T()}],shrink:[{shrink:T()}],order:[{order:["first","last","none",ei,ie]}],"grid-cols":[{"grid-cols":[ti]}],"col-start-end":[{col:["auto",{span:["full",ei,ie]},ie]}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":[ti]}],"row-start-end":[{row:["auto",{span:[ei,ie]},ie]}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",ie]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",ie]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:["normal",...N()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...N(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...N(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[b]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[b]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",ie,t]}],"min-w":[{"min-w":[ie,t,"min","max","fit"]}],"max-w":[{"max-w":[ie,t,"none","full","min","max","fit","prose",{screen:[Gn]},Gn]}],h:[{h:[ie,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[ie,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[ie,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[ie,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Gn,Qn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Vc]}],"font-family":[{font:[ti]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",ie]}],"line-clamp":[{"line-clamp":["none",Xs,Vc]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Nn,ie]}],"list-image":[{"list-image":["none",ie]}],"list-style-type":[{list:["none","disc","decimal",ie]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[g]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[g]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...I(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Nn,Qn]}],"underline-offset":[{"underline-offset":["auto",Nn,ie]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:j()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ie]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ie]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[g]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...D(),xR]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",yR]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},wR]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[p]}],"gradient-via-pos":[{via:[p]}],"gradient-to-pos":[{to:[p]}],"gradient-from":[{from:[m]}],"gradient-via":[{via:[m]}],"gradient-to":[{to:[m]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[a]}],"border-w-x":[{"border-x":[a]}],"border-w-y":[{"border-y":[a]}],"border-w-s":[{"border-s":[a]}],"border-w-e":[{"border-e":[a]}],"border-w-t":[{"border-t":[a]}],"border-w-r":[{"border-r":[a]}],"border-w-b":[{"border-b":[a]}],"border-w-l":[{"border-l":[a]}],"border-opacity":[{"border-opacity":[g]}],"border-style":[{border:[...I(),"hidden"]}],"divide-x":[{"divide-x":[a]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[a]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[g]}],"divide-style":[{divide:I()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...I()]}],"outline-offset":[{"outline-offset":[Nn,ie]}],"outline-w":[{outline:[Nn,Qn]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[g]}],"ring-offset-w":[{"ring-offset":[Nn,Qn]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Gn,SR]}],"shadow-color":[{shadow:[ti]}],opacity:[{opacity:[g]}],"mix-blend":[{"mix-blend":[...F(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":F()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",Gn,ie]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[c]}],saturate:[{saturate:[y]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[c]}],"backdrop-opacity":[{"backdrop-opacity":[g]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",ie]}],duration:[{duration:B()}],ease:[{ease:["linear","in","out","in-out",ie]}],delay:[{delay:B()}],animate:[{animate:["none","spin","ping","pulse","bounce",ie]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[ei,ie]}],"translate-x":[{"translate-x":[C]}],"translate-y":[{"translate-y":[C]}],"skew-x":[{"skew-x":[_]}],"skew-y":[{"skew-y":[_]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",ie]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ie]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":j()}],"scroll-mx":[{"scroll-mx":j()}],"scroll-my":[{"scroll-my":j()}],"scroll-ms":[{"scroll-ms":j()}],"scroll-me":[{"scroll-me":j()}],"scroll-mt":[{"scroll-mt":j()}],"scroll-mr":[{"scroll-mr":j()}],"scroll-mb":[{"scroll-mb":j()}],"scroll-ml":[{"scroll-ml":j()}],"scroll-p":[{"scroll-p":j()}],"scroll-px":[{"scroll-px":j()}],"scroll-py":[{"scroll-py":j()}],"scroll-ps":[{"scroll-ps":j()}],"scroll-pe":[{"scroll-pe":j()}],"scroll-pt":[{"scroll-pt":j()}],"scroll-pr":[{"scroll-pr":j()}],"scroll-pb":[{"scroll-pb":j()}],"scroll-pl":[{"scroll-pl":j()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ie]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Nn,Qn,Vc]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},NR=aR(CR);function ze(...e){return NR(rw(e))}const kR=sw("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 ring-offset-background",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}});function wn({className:e,variant:t,size:n,asChild:r=!1,...s}){const o=r?UP:"button";return h.jsx(o,{className:ze(kR({variant:t,size:n}),e),...s})}const ya=XN({component:PR});function PR(){return h.jsxs("div",{className:"min-h-screen flex flex-col bg-background",children:[h.jsxs("nav",{className:"px-8 py-4 border-b bg-card flex gap-6 items-center",children:[h.jsxs(Ue,{to:"/",className:"font-bold text-xl text-primary no-underline flex items-center gap-2",children:[h.jsxs("svg",{className:"w-7 h-7",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[h.jsx("rect",{width:"32",height:"32",rx:"6",fill:"#166534"}),h.jsx("path",{d:"M8 10h4v12H8V10zm6 0h4v12h-4V10zm6 0h4v12h-4V10z",fill:"#86efac"}),h.jsx("circle",{cx:"10",cy:"13",r:"1.5",fill:"#22c55e"}),h.jsx("circle",{cx:"16",cy:"16",r:"1.5",fill:"#22c55e"}),h.jsx("circle",{cx:"22",cy:"19",r:"1.5",fill:"#22c55e"})]}),"Furu"]}),h.jsxs("div",{className:"flex gap-2",children:[h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/",activeOptions:{exact:!0},className:"[&.active]:text-primary [&.active]:bg-accent",children:"Dashboard"})}),h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/experiments",className:"[&.active]:text-primary [&.active]:bg-accent",children:"Experiments"})}),h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/dag",className:"[&.active]:text-primary [&.active]:bg-accent",children:"DAG"})})]})]}),h.jsx("main",{className:"flex-1 p-8",children:h.jsx(jv,{})})]})}const RR=Te.create({baseURL:""}),zo=e=>{const t=Te.CancelToken.source(),n=RR({...e,cancelToken:t.token}).then(({data:r})=>r);return n.cancel=()=>{t.cancel("Query was cancelled")},n},jR=e=>zo({url:"/api/health",method:"GET",signal:e}),MR=()=>["/api/health"],TR=e=>{const{query:t}={};return{queryKey:(t==null?void 0:t.queryKey)??MR(),queryFn:({signal:s})=>jR(s),...t}};function LR(e,t){const n=TR(),r=Ao(n);return r.queryKey=n.queryKey,r}const IR=(e,t)=>zo({url:"/api/experiments",method:"GET",params:e,signal:t}),AR=e=>["/api/experiments",...e?[e]:[]],OR=(e,t)=>{const{query:n}={};return{queryKey:(n==null?void 0:n.queryKey)??AR(e),queryFn:({signal:o})=>IR(e,o),...n}};function cw(e,t,n){const r=OR(e),s=Ao(r);return s.queryKey=r.queryKey,s}const FR=(e,t,n,r)=>zo({url:`/api/experiments/${e}/${t}/relationships`,method:"GET",params:n,signal:r}),DR=(e,t,n)=>[`/api/experiments/${e}/${t}/relationships`,...n?[n]:[]],zR=(e,t,n,r)=>{const{query:s}={};return{queryKey:(s==null?void 0:s.queryKey)??DR(e,t,n),queryFn:({signal:a})=>FR(e,t,n,a),enabled:!!(e&&t),...s}};function $R(e,t,n,r,s){const o=zR(e,t,n),i=Ao(o);return i.queryKey=o.queryKey,i}const BR=(e,t,n,r)=>zo({url:`/api/experiments/${e}/${t}`,method:"GET",params:n,signal:r}),HR=(e,t,n)=>[`/api/experiments/${e}/${t}`,...n?[n]:[]],UR=(e,t,n,r)=>{const{query:s}={};return{queryKey:(s==null?void 0:s.queryKey)??HR(e,t,n),queryFn:({signal:a})=>BR(e,t,n,a),enabled:!!(e&&t),...s}};function VR(e,t,n,r,s){const o=UR(e,t,n),i=Ao(o);return i.queryKey=o.queryKey,i}const WR=e=>zo({url:"/api/stats",method:"GET",signal:e}),KR=()=>["/api/stats"],qR=e=>{const{query:t}={};return{queryKey:(t==null?void 0:t.queryKey)??KR(),queryFn:({signal:s})=>WR(s),...t}};function QR(e,t){const n=qR(),r=Ao(n);return r.queryKey=n.queryKey,r}const GR=e=>zo({url:"/api/dag",method:"GET",signal:e}),XR=()=>["/api/dag"],YR=e=>{const{query:t}={};return{queryKey:(t==null?void 0:t.queryKey)??XR(),queryFn:({signal:s})=>GR(s),...t}};function ZR(e,t){const n=YR(),r=Ao(n);return r.queryKey=n.queryKey,r}const JR=sw("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium transition-colors",{variants:{variant:{default:"bg-primary text-primary-foreground border-transparent",secondary:"bg-secondary text-secondary-foreground border-transparent",outline:"text-foreground",success:"bg-emerald-500/15 text-emerald-300 border-emerald-500/30",warning:"bg-amber-500/15 text-amber-300 border-amber-500/30",info:"bg-blue-500/15 text-blue-300 border-blue-500/30",destructive:"bg-red-500/15 text-red-300 border-red-500/30",muted:"bg-muted text-muted-foreground border-border"}},defaultVariants:{variant:"default"}});function mt({className:e,variant:t,...n}){return h.jsx("div",{className:ze(JR({variant:t}),e),...n})}const ej={success:"success",failed:"destructive",incomplete:"warning",absent:"muted"},tj={success:"success",running:"info",queued:"secondary",failed:"destructive",crashed:"warning",cancelled:"muted",preempted:"warning"};function sn({status:e,type:t}){const r=(t==="result"?ej:tj)[e]??"muted";return h.jsxs(mt,{variant:r,className:"gap-1.5 px-2.5 py-1",children:[t==="attempt"&&e==="running"&&h.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-blue-300 animate-pulse"}),e]})}const be=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));be.displayName="Card";const nt=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("flex flex-col gap-1.5 p-6",e),...t}));nt.displayName="CardHeader";const lt=R.forwardRef(({className:e,...t},n)=>h.jsx("h3",{ref:n,className:ze("text-lg font-semibold leading-none tracking-tight",e),...t}));lt.displayName="CardTitle";const nj=R.forwardRef(({className:e,...t},n)=>h.jsx("p",{ref:n,className:ze("text-sm text-muted-foreground",e),...t}));nj.displayName="CardDescription";const ke=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("p-6 pt-0",e),...t}));ke.displayName="CardContent";const rj=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("flex items-center p-6 pt-0",e),...t}));rj.displayName="CardFooter";function dw({title:e,description:t,icon:n="📭"}){return h.jsx(be,{className:"border-dashed",children:h.jsxs(ke,{className:"flex flex-col items-center justify-center py-16 text-center",children:[h.jsx("span",{className:"mb-4 text-5xl",children:n}),h.jsx("h3",{className:"mb-2 text-lg font-medium",children:e}),t?h.jsx("p",{className:"max-w-md text-muted-foreground",children:t}):null]})})}const Ar=R.forwardRef(({className:e,type:t,...n},r)=>h.jsx("input",{type:t,className:ze("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));Ar.displayName="Input";const Vh=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{className:"w-full overflow-auto",children:h.jsx("table",{ref:n,className:ze("w-full caption-bottom text-sm",e),...t})}));Vh.displayName="Table";const Wh=R.forwardRef(({className:e,...t},n)=>h.jsx("thead",{ref:n,className:ze("[&_tr]:border-b",e),...t}));Wh.displayName="TableHeader";const Kh=R.forwardRef(({className:e,...t},n)=>h.jsx("tbody",{ref:n,className:ze("[&_tr:last-child]:border-0",e),...t}));Kh.displayName="TableBody";const sj=R.forwardRef(({className:e,...t},n)=>h.jsx("tfoot",{ref:n,className:ze("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));sj.displayName="TableFooter";const Wi=R.forwardRef(({className:e,...t},n)=>h.jsx("tr",{ref:n,className:ze("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));Wi.displayName="TableRow";const Ke=R.forwardRef(({className:e,...t},n)=>h.jsx("th",{ref:n,className:ze("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",e),...t}));Ke.displayName="TableHead";const qe=R.forwardRef(({className:e,...t},n)=>h.jsx("td",{ref:n,className:ze("p-4 align-middle [&:has([role=checkbox])]:pr-0",e),...t}));qe.displayName="TableCell";const oj=R.forwardRef(({className:e,...t},n)=>h.jsx("caption",{ref:n,className:ze("mt-4 text-sm text-muted-foreground",e),...t}));oj.displayName="TableCaption";const ij=_o("/experiments")({component:cj}),aj=["","success","failed","incomplete","absent"],lj=["","running","queued","success","failed","crashed","cancelled","preempted"],uj=["","local","submitit"];function cj(){const[e,t]=R.useState(""),[n,r]=R.useState(""),[s,o]=R.useState(""),[i,a]=R.useState(""),[l,u]=R.useState(""),[d,c]=R.useState(""),[f,m]=R.useState(""),[p,x]=R.useState(""),[w,g]=R.useState(""),[v,y]=R.useState("resolved"),[S,E]=R.useState(0),_=20,{data:b,isLoading:C,error:L}=cw({result_status:e||void 0,attempt_status:n||void 0,namespace:s||void 0,backend:i||void 0,hostname:l||void 0,user:d||void 0,started_after:f||void 0,started_before:p||void 0,config_filter:w||void 0,view:v,limit:_,offset:S*_}),M=b?Math.ceil(b.total/_):0,P=()=>{t(""),r(""),o(""),a(""),u(""),c(""),m(""),x(""),g(""),E(0)},j=e||n||s||i||l||d||f||p||w;return h.jsxs("div",{className:"max-w-7xl mx-auto",children:[h.jsxs("div",{className:"mb-8",children:[h.jsx("h1",{className:"text-3xl font-bold mb-2",children:"Experiments"}),h.jsx("p",{className:"text-muted-foreground",children:"Browse and filter all Furu experiments"})]}),h.jsxs(be,{className:"mb-6",children:[h.jsxs(nt,{className:"flex flex-row items-center justify-between",children:[h.jsx(lt,{children:"Filters"}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsxs("div",{className:"flex rounded-full border border-muted overflow-hidden text-xs",children:[h.jsx("button",{className:`px-3 py-1 ${v==="resolved"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>{y("resolved"),E(0)},children:"Aliased"}),h.jsx("button",{className:`px-3 py-1 ${v==="original"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>{y("original"),E(0)},children:"Original"})]}),j&&h.jsx(wn,{variant:"ghost",size:"sm",onClick:P,children:"Clear filters"})]})]}),h.jsx(ke,{children:h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Namespace"}),h.jsx(Ar,{type:"text",placeholder:"Filter by namespace...",value:s,onChange:O=>{o(O.target.value),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Result Status"}),h.jsx("select",{value:e,onChange:O=>{t(O.target.value),E(0)},className:"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:aj.map(O=>h.jsx("option",{value:O,children:O||"All Results"},O))})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Attempt Status"}),h.jsx("select",{value:n,onChange:O=>{r(O.target.value),E(0)},className:"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:lj.map(O=>h.jsx("option",{value:O,children:O||"All Attempts"},O))})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Backend"}),h.jsx("select",{value:i,onChange:O=>{a(O.target.value),E(0)},className:"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:uj.map(O=>h.jsx("option",{value:O,children:O||"All Backends"},O))})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Hostname"}),h.jsx(Ar,{type:"text",placeholder:"Filter by hostname...",value:l,onChange:O=>{u(O.target.value),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"User"}),h.jsx(Ar,{type:"text",placeholder:"Filter by user...",value:d,onChange:O=>{c(O.target.value),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Started After"}),h.jsx(Ar,{type:"datetime-local",value:f,onChange:O=>{m(O.target.value?O.target.value+":00":""),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Started Before"}),h.jsx(Ar,{type:"datetime-local",value:p,onChange:O=>{x(O.target.value?O.target.value+":00":""),E(0)}})]}),h.jsxs("div",{className:"md:col-span-2",children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Config Filter"}),h.jsx(Ar,{type:"text",placeholder:"field.path=value (e.g., model.name=gpt-4)",value:w,onChange:O=>{g(O.target.value),E(0)}})]})]})})]}),h.jsx("div",{className:"mb-4 text-sm text-muted-foreground",children:b?h.jsxs(h.Fragment,{children:["Showing ",b.experiments.length," of ",b.total," experiments"]}):"Loading..."}),C?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-muted-foreground",children:"Loading experiments..."})}):L?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-destructive",children:"Error loading experiments. Is the API running?"})}):(b==null?void 0:b.experiments.length)===0?h.jsx(dw,{title:"No experiments found",description:"Try adjusting your filters or create some experiments first.",icon:"🔬"}):h.jsxs(be,{className:"overflow-hidden",children:[h.jsxs(Vh,{children:[h.jsx(Wh,{children:h.jsxs(Wi,{children:[h.jsx(Ke,{className:"pl-6",children:"Class"}),h.jsx(Ke,{children:"Namespace"}),h.jsx(Ke,{children:"Hash"}),h.jsx(Ke,{children:"Result"}),h.jsx(Ke,{children:"Migration"}),h.jsx(Ke,{children:"Attempt"}),h.jsx(Ke,{children:"Backend"}),h.jsx(Ke,{children:"Host"}),h.jsx(Ke,{children:"User"}),h.jsx(Ke,{children:"Updated"})]})}),h.jsx(Kh,{children:b==null?void 0:b.experiments.map(O=>h.jsxs(Wi,{children:[h.jsx(qe,{className:"pl-6",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:O.namespace,furu_hash:O.furu_hash},className:"font-medium hover:text-primary",children:O.class_name})}),h.jsx(qe,{className:"max-w-xs truncate font-mono text-sm text-muted-foreground",children:O.namespace}),h.jsx(qe,{children:h.jsxs("code",{className:"rounded bg-muted px-2 py-1 font-mono text-xs text-muted-foreground",children:[O.furu_hash.slice(0,8),"..."]})}),h.jsx(qe,{children:h.jsx(sn,{status:O.result_status,type:"result"})}),h.jsx(qe,{children:O.migration_kind?h.jsx("span",{className:"text-xs rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-amber-300",children:O.migration_kind}):h.jsx("span",{className:"text-muted-foreground",children:"-"})}),h.jsx(qe,{children:O.attempt_status?h.jsx(sn,{status:O.attempt_status,type:"attempt"}):h.jsx("span",{className:"text-muted-foreground",children:"-"})}),h.jsx(qe,{className:"text-sm text-muted-foreground",children:O.backend||"-"}),h.jsx(qe,{className:"text-sm text-muted-foreground max-w-[150px] truncate",title:O.hostname||void 0,children:O.hostname||"-"}),h.jsx(qe,{className:"text-sm text-muted-foreground",children:O.user||"-"}),h.jsx(qe,{className:"whitespace-nowrap text-sm text-muted-foreground",children:O.updated_at?new Date(O.updated_at).toLocaleString():"-"})]},`${O.namespace}-${O.furu_hash}`))})]}),M>1&&h.jsxs(ke,{className:"flex items-center justify-between border-t py-4",children:[h.jsx(wn,{variant:"secondary",onClick:()=>E(O=>Math.max(0,O-1)),disabled:S===0,children:"Previous"}),h.jsxs("span",{className:"text-sm text-muted-foreground",children:["Page ",S+1," of ",M]}),h.jsx(wn,{variant:"secondary",onClick:()=>E(O=>Math.min(M-1,O+1)),disabled:S>=M-1,children:"Next"})]})]})]})}function Oe(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=Oe(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var dj={value:()=>{}};function Wu(){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 _l(n)}function _l(e){this._=e}function fj(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}_l.prototype=Wu.prototype={constructor:_l,on:function(e,t){var n=this._,r=fj(e+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(e=r[o]).type)&&(s=hj(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<i;)if(s=(e=r[o]).type)n[s]=_g(n[s],e.name,t);else if(t==null)for(s in n)n[s]=_g(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new _l(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,o;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,s=o.length;r<s;++r)o[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],s=0,o=r.length;s<o;++s)r[s].value.apply(t,n)}};function hj(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function _g(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=dj,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var mf="http://www.w3.org/1999/xhtml";const bg={svg:"http://www.w3.org/2000/svg",xhtml:mf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ku(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),bg.hasOwnProperty(t)?{space:bg[t],local:e}:e}function pj(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===mf&&t.documentElement.namespaceURI===mf?t.createElement(e):t.createElementNS(n,e)}}function mj(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function fw(e){var t=Ku(e);return(t.local?mj:pj)(t)}function gj(){}function qh(e){return e==null?gj:function(){return this.querySelector(e)}}function yj(e){typeof e!="function"&&(e=qh(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=new Array(i),l,u,d=0;d<i;++d)(l=o[d])&&(u=e.call(l,l.__data__,d,o))&&("__data__"in l&&(u.__data__=l.__data__),a[d]=u);return new Mt(r,this._parents)}function xj(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function vj(){return[]}function hw(e){return e==null?vj:function(){return this.querySelectorAll(e)}}function wj(e){return function(){return xj(e.apply(this,arguments))}}function Sj(e){typeof e=="function"?e=wj(e):e=hw(e);for(var t=this._groups,n=t.length,r=[],s=[],o=0;o<n;++o)for(var i=t[o],a=i.length,l,u=0;u<a;++u)(l=i[u])&&(r.push(e.call(l,l.__data__,u,i)),s.push(l));return new Mt(r,s)}function pw(e){return function(){return this.matches(e)}}function mw(e){return function(t){return t.matches(e)}}var _j=Array.prototype.find;function bj(e){return function(){return _j.call(this.children,e)}}function Ej(){return this.firstElementChild}function Cj(e){return this.select(e==null?Ej:bj(typeof e=="function"?e:mw(e)))}var Nj=Array.prototype.filter;function kj(){return Array.from(this.children)}function Pj(e){return function(){return Nj.call(this.children,e)}}function Rj(e){return this.selectAll(e==null?kj:Pj(typeof e=="function"?e:mw(e)))}function jj(e){typeof e!="function"&&(e=pw(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,u=0;u<i;++u)(l=o[u])&&e.call(l,l.__data__,u,o)&&a.push(l);return new Mt(r,this._parents)}function gw(e){return new Array(e.length)}function Mj(){return new Mt(this._enter||this._groups.map(gw),this._parents)}function uu(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}uu.prototype={constructor:uu,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 Tj(e){return function(){return e}}function Lj(e,t,n,r,s,o){for(var i=0,a,l=t.length,u=o.length;i<u;++i)(a=t[i])?(a.__data__=o[i],r[i]=a):n[i]=new uu(e,o[i]);for(;i<l;++i)(a=t[i])&&(s[i]=a)}function Ij(e,t,n,r,s,o,i){var a,l,u=new Map,d=t.length,c=o.length,f=new Array(d),m;for(a=0;a<d;++a)(l=t[a])&&(f[a]=m=i.call(l,l.__data__,a,t)+"",u.has(m)?s[a]=l:u.set(m,l));for(a=0;a<c;++a)m=i.call(e,o[a],a,o)+"",(l=u.get(m))?(r[a]=l,l.__data__=o[a],u.delete(m)):n[a]=new uu(e,o[a]);for(a=0;a<d;++a)(l=t[a])&&u.get(f[a])===l&&(s[a]=l)}function Aj(e){return e.__data__}function Oj(e,t){if(!arguments.length)return Array.from(this,Aj);var n=t?Ij:Lj,r=this._parents,s=this._groups;typeof e!="function"&&(e=Tj(e));for(var o=s.length,i=new Array(o),a=new Array(o),l=new Array(o),u=0;u<o;++u){var d=r[u],c=s[u],f=c.length,m=Fj(e.call(d,d&&d.__data__,u,r)),p=m.length,x=a[u]=new Array(p),w=i[u]=new Array(p),g=l[u]=new Array(f);n(d,c,x,w,g,m,t);for(var v=0,y=0,S,E;v<p;++v)if(S=x[v]){for(v>=y&&(y=v+1);!(E=w[y])&&++y<p;);S._next=E||null}}return i=new Mt(i,r),i._enter=a,i._exit=l,i}function Fj(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Dj(){return new Mt(this._exit||this._groups.map(gw),this._parents)}function zj(e,t,n){var r=this.enter(),s=this,o=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?o.remove():n(o),r&&s?r.merge(s).order():s}function $j(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,o=r.length,i=Math.min(s,o),a=new Array(s),l=0;l<i;++l)for(var u=n[l],d=r[l],c=u.length,f=a[l]=new Array(c),m,p=0;p<c;++p)(m=u[p]||d[p])&&(f[p]=m);for(;l<s;++l)a[l]=n[l];return new Mt(a,this._parents)}function Bj(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,o=r[s],i;--s>=0;)(i=r[s])&&(o&&i.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(i,o),o=i);return this}function Hj(e){e||(e=Uj);function t(c,f){return c&&f?e(c.__data__,f.__data__):!c-!f}for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o){for(var i=n[o],a=i.length,l=s[o]=new Array(a),u,d=0;d<a;++d)(u=i[d])&&(l[d]=u);l.sort(t)}return new Mt(s,this._parents).order()}function Uj(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Vj(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Wj(){return Array.from(this)}function Kj(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length;s<o;++s){var i=r[s];if(i)return i}return null}function qj(){let e=0;for(const t of this)++e;return e}function Qj(){return!this.node()}function Gj(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],o=0,i=s.length,a;o<i;++o)(a=s[o])&&e.call(a,a.__data__,o,s);return this}function Xj(e){return function(){this.removeAttribute(e)}}function Yj(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Zj(e,t){return function(){this.setAttribute(e,t)}}function Jj(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function e2(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function t2(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 n2(e,t){var n=Ku(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?Yj:Xj:typeof t=="function"?n.local?t2:e2:n.local?Jj:Zj)(n,t))}function yw(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function r2(e){return function(){this.style.removeProperty(e)}}function s2(e,t,n){return function(){this.style.setProperty(e,t,n)}}function o2(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function i2(e,t,n){return arguments.length>1?this.each((t==null?r2:typeof t=="function"?o2:s2)(e,t,n??"")):Eo(this.node(),e)}function Eo(e,t){return e.style.getPropertyValue(t)||yw(e).getComputedStyle(e,null).getPropertyValue(t)}function a2(e){return function(){delete this[e]}}function l2(e,t){return function(){this[e]=t}}function u2(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function c2(e,t){return arguments.length>1?this.each((t==null?a2:typeof t=="function"?u2:l2)(e,t)):this.node()[e]}function xw(e){return e.trim().split(/^|\s+/)}function Qh(e){return e.classList||new vw(e)}function vw(e){this._node=e,this._names=xw(e.getAttribute("class")||"")}vw.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 ww(e,t){for(var n=Qh(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function Sw(e,t){for(var n=Qh(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function d2(e){return function(){ww(this,e)}}function f2(e){return function(){Sw(this,e)}}function h2(e,t){return function(){(t.apply(this,arguments)?ww:Sw)(this,e)}}function p2(e,t){var n=xw(e+"");if(arguments.length<2){for(var r=Qh(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?h2:t?d2:f2)(n,t))}function m2(){this.textContent=""}function g2(e){return function(){this.textContent=e}}function y2(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function x2(e){return arguments.length?this.each(e==null?m2:(typeof e=="function"?y2:g2)(e)):this.node().textContent}function v2(){this.innerHTML=""}function w2(e){return function(){this.innerHTML=e}}function S2(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function _2(e){return arguments.length?this.each(e==null?v2:(typeof e=="function"?S2:w2)(e)):this.node().innerHTML}function b2(){this.nextSibling&&this.parentNode.appendChild(this)}function E2(){return this.each(b2)}function C2(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function N2(){return this.each(C2)}function k2(e){var t=typeof e=="function"?e:fw(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function P2(){return null}function R2(e,t){var n=typeof e=="function"?e:fw(e),r=t==null?P2:typeof t=="function"?t:qh(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function j2(){var e=this.parentNode;e&&e.removeChild(this)}function M2(){return this.each(j2)}function T2(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function L2(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function I2(e){return this.select(e?L2:T2)}function A2(e){return arguments.length?this.property("__data__",e):this.node().__data__}function O2(e){return function(t){e.call(this,t,this.__data__)}}function F2(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 D2(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,o;n<s;++n)o=t[n],(!e.type||o.type===e.type)&&o.name===e.name?this.removeEventListener(o.type,o.listener,o.options):t[++r]=o;++r?t.length=r:delete this.__on}}}function z2(e,t,n){return function(){var r=this.__on,s,o=O2(t);if(r){for(var i=0,a=r.length;i<a;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=o,s.options=n),s.value=t;return}}this.addEventListener(e.type,o,n),s={type:e.type,name:e.name,value:t,listener:o,options:n},r?r.push(s):this.__on=[s]}}function $2(e,t,n){var r=F2(e+""),s,o=r.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,u=a.length,d;l<u;++l)for(s=0,d=a[l];s<o;++s)if((i=r[s]).type===d.type&&i.name===d.name)return d.value}return}for(a=t?z2:D2,s=0;s<o;++s)this.each(a(r[s],t,n));return this}function _w(e,t,n){var r=yw(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function B2(e,t){return function(){return _w(this,e,t)}}function H2(e,t){return function(){return _w(this,e,t.apply(this,arguments))}}function U2(e,t){return this.each((typeof t=="function"?H2:B2)(e,t))}function*V2(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length,i;s<o;++s)(i=r[s])&&(yield i)}var bw=[null];function Mt(e,t){this._groups=e,this._parents=t}function xa(){return new Mt([[document.documentElement]],bw)}function W2(){return this}Mt.prototype=xa.prototype={constructor:Mt,select:yj,selectAll:Sj,selectChild:Cj,selectChildren:Rj,filter:jj,data:Oj,enter:Mj,exit:Dj,join:zj,merge:$j,selection:W2,order:Bj,sort:Hj,call:Vj,nodes:Wj,node:Kj,size:qj,empty:Qj,each:Gj,attr:n2,style:i2,property:c2,classed:p2,text:x2,html:_2,raise:E2,lower:N2,append:k2,insert:R2,remove:M2,clone:I2,datum:A2,on:$2,dispatch:U2,[Symbol.iterator]:V2};function Nt(e){return typeof e=="string"?new Mt([[document.querySelector(e)]],[document.documentElement]):new Mt([[e]],bw)}function K2(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Yt(e,t){if(e=K2(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 s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}const q2={passive:!1},Ki={capture:!0,passive:!1};function Wc(e){e.stopImmediatePropagation()}function Ys(e){e.preventDefault(),e.stopImmediatePropagation()}function Ew(e){var t=e.document.documentElement,n=Nt(e).on("dragstart.drag",Ys,Ki);"onselectstart"in t?n.on("selectstart.drag",Ys,Ki):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Cw(e,t){var n=e.document.documentElement,r=Nt(e).on("dragstart.drag",null);t&&(r.on("click.drag",Ys,Ki),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 Xa=e=>()=>e;function gf(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:o,x:i,y:a,dx:l,dy:u,dispatch:d}){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:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}gf.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Q2(e){return!e.ctrlKey&&!e.button}function G2(){return this.parentNode}function X2(e,t){return t??{x:e.x,y:e.y}}function Y2(){return navigator.maxTouchPoints||"ontouchstart"in this}function Nw(){var e=Q2,t=G2,n=X2,r=Y2,s={},o=Wu("start","drag","end"),i=0,a,l,u,d,c=0;function f(S){S.on("mousedown.drag",m).filter(r).on("touchstart.drag",w).on("touchmove.drag",g,q2).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(S,E){if(!(d||!e.call(this,S,E))){var _=y(this,t.call(this,S,E),S,E,"mouse");_&&(Nt(S.view).on("mousemove.drag",p,Ki).on("mouseup.drag",x,Ki),Ew(S.view),Wc(S),u=!1,a=S.clientX,l=S.clientY,_("start",S))}}function p(S){if(Ys(S),!u){var E=S.clientX-a,_=S.clientY-l;u=E*E+_*_>c}s.mouse("drag",S)}function x(S){Nt(S.view).on("mousemove.drag mouseup.drag",null),Cw(S.view,u),Ys(S),s.mouse("end",S)}function w(S,E){if(e.call(this,S,E)){var _=S.changedTouches,b=t.call(this,S,E),C=_.length,L,M;for(L=0;L<C;++L)(M=y(this,b,S,E,_[L].identifier,_[L]))&&(Wc(S),M("start",S,_[L]))}}function g(S){var E=S.changedTouches,_=E.length,b,C;for(b=0;b<_;++b)(C=s[E[b].identifier])&&(Ys(S),C("drag",S,E[b]))}function v(S){var E=S.changedTouches,_=E.length,b,C;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),b=0;b<_;++b)(C=s[E[b].identifier])&&(Wc(S),C("end",S,E[b]))}function y(S,E,_,b,C,L){var M=o.copy(),P=Yt(L||_,E),j,O,k;if((k=n.call(S,new gf("beforestart",{sourceEvent:_,target:f,identifier:C,active:i,x:P[0],y:P[1],dx:0,dy:0,dispatch:M}),b))!=null)return j=k.x-P[0]||0,O=k.y-P[1]||0,function D(I,F,N){var T=P,z;switch(I){case"start":s[C]=D,z=i++;break;case"end":delete s[C],--i;case"drag":P=Yt(N||F,E),z=i;break}M.call(I,S,new gf(I,{sourceEvent:F,subject:k,target:f,identifier:C,active:z,x:P[0]+j,y:P[1]+O,dx:P[0]-T[0],dy:P[1]-T[1],dispatch:M}),b)}}return f.filter=function(S){return arguments.length?(e=typeof S=="function"?S:Xa(!!S),f):e},f.container=function(S){return arguments.length?(t=typeof S=="function"?S:Xa(S),f):t},f.subject=function(S){return arguments.length?(n=typeof S=="function"?S:Xa(S),f):n},f.touchable=function(S){return arguments.length?(r=typeof S=="function"?S:Xa(!!S),f):r},f.on=function(){var S=o.on.apply(o,arguments);return S===o?f:S},f.clickDistance=function(S){return arguments.length?(c=(S=+S)*S,f):Math.sqrt(c)},f}function Gh(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function kw(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function va(){}var qi=.7,cu=1/qi,Zs="\\s*([+-]?\\d+)\\s*",Qi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Sn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Z2=/^#([0-9a-f]{3,8})$/,J2=new RegExp(`^rgb\\(${Zs},${Zs},${Zs}\\)$`),eM=new RegExp(`^rgb\\(${Sn},${Sn},${Sn}\\)$`),tM=new RegExp(`^rgba\\(${Zs},${Zs},${Zs},${Qi}\\)$`),nM=new RegExp(`^rgba\\(${Sn},${Sn},${Sn},${Qi}\\)$`),rM=new RegExp(`^hsl\\(${Qi},${Sn},${Sn}\\)$`),sM=new RegExp(`^hsla\\(${Qi},${Sn},${Sn},${Qi}\\)$`),Eg={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};Gh(va,xs,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Cg,formatHex:Cg,formatHex8:oM,formatHsl:iM,formatRgb:Ng,toString:Ng});function Cg(){return this.rgb().formatHex()}function oM(){return this.rgb().formatHex8()}function iM(){return Pw(this).formatHsl()}function Ng(){return this.rgb().formatRgb()}function xs(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Z2.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?kg(t):n===3?new yt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ya(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ya(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=J2.exec(e))?new yt(t[1],t[2],t[3],1):(t=eM.exec(e))?new yt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=tM.exec(e))?Ya(t[1],t[2],t[3],t[4]):(t=nM.exec(e))?Ya(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=rM.exec(e))?jg(t[1],t[2]/100,t[3]/100,1):(t=sM.exec(e))?jg(t[1],t[2]/100,t[3]/100,t[4]):Eg.hasOwnProperty(e)?kg(Eg[e]):e==="transparent"?new yt(NaN,NaN,NaN,0):null}function kg(e){return new yt(e>>16&255,e>>8&255,e&255,1)}function Ya(e,t,n,r){return r<=0&&(e=t=n=NaN),new yt(e,t,n,r)}function aM(e){return e instanceof va||(e=xs(e)),e?(e=e.rgb(),new yt(e.r,e.g,e.b,e.opacity)):new yt}function yf(e,t,n,r){return arguments.length===1?aM(e):new yt(e,t,n,r??1)}function yt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Gh(yt,yf,kw(va,{brighter(e){return e=e==null?cu:Math.pow(cu,e),new yt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new yt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new yt(is(this.r),is(this.g),is(this.b),du(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:Pg,formatHex:Pg,formatHex8:lM,formatRgb:Rg,toString:Rg}));function Pg(){return`#${Ur(this.r)}${Ur(this.g)}${Ur(this.b)}`}function lM(){return`#${Ur(this.r)}${Ur(this.g)}${Ur(this.b)}${Ur((isNaN(this.opacity)?1:this.opacity)*255)}`}function Rg(){const e=du(this.opacity);return`${e===1?"rgb(":"rgba("}${is(this.r)}, ${is(this.g)}, ${is(this.b)}${e===1?")":`, ${e})`}`}function du(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function is(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ur(e){return e=is(e),(e<16?"0":"")+e.toString(16)}function jg(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Jt(e,t,n,r)}function Pw(e){if(e instanceof Jt)return new Jt(e.h,e.s,e.l,e.opacity);if(e instanceof va||(e=xs(e)),!e)return new Jt;if(e instanceof Jt)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,a=o-s,l=(o+s)/2;return a?(t===o?i=(n-r)/a+(n<r)*6:n===o?i=(r-t)/a+2:i=(t-n)/a+4,a/=l<.5?o+s:2-o-s,i*=60):a=l>0&&l<1?0:i,new Jt(i,a,l,e.opacity)}function uM(e,t,n,r){return arguments.length===1?Pw(e):new Jt(e,t,n,r??1)}function Jt(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Gh(Jt,uM,kw(va,{brighter(e){return e=e==null?cu:Math.pow(cu,e),new Jt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new Jt(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,s=2*n-r;return new yt(Kc(e>=240?e-240:e+120,s,r),Kc(e,s,r),Kc(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new Jt(Mg(this.h),Za(this.s),Za(this.l),du(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=du(this.opacity);return`${e===1?"hsl(":"hsla("}${Mg(this.h)}, ${Za(this.s)*100}%, ${Za(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Mg(e){return e=(e||0)%360,e<0?e+360:e}function Za(e){return Math.max(0,Math.min(1,e||0))}function Kc(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 Xh=e=>()=>e;function cM(e,t){return function(n){return e+n*t}}function dM(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 fM(e){return(e=+e)==1?Rw:function(t,n){return n-t?dM(t,n,e):Xh(isNaN(t)?n:t)}}function Rw(e,t){var n=t-e;return n?cM(e,n):Xh(isNaN(e)?t:e)}const fu=function e(t){var n=fM(t);function r(s,o){var i=n((s=yf(s)).r,(o=yf(o)).r),a=n(s.g,o.g),l=n(s.b,o.b),u=Rw(s.opacity,o.opacity);return function(d){return s.r=i(d),s.g=a(d),s.b=l(d),s.opacity=u(d),s+""}}return r.gamma=e,r}(1);function hM(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(o){for(s=0;s<n;++s)r[s]=e[s]*(1-o)+t[s]*o;return r}}function pM(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function mM(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)s[i]=bi(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(a){for(i=0;i<r;++i)o[i]=s[i](a);return o}}function gM(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function gn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function yM(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=bi(e[s],t[s]):r[s]=t[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var xf=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,qc=new RegExp(xf.source,"g");function xM(e){return function(){return e}}function vM(e){return function(t){return e(t)+""}}function jw(e,t){var n=xf.lastIndex=qc.lastIndex=0,r,s,o,i=-1,a=[],l=[];for(e=e+"",t=t+"";(r=xf.exec(e))&&(s=qc.exec(t));)(o=s.index)>n&&(o=t.slice(n,o),a[i]?a[i]+=o:a[++i]=o),(r=r[0])===(s=s[0])?a[i]?a[i]+=s:a[++i]=s:(a[++i]=null,l.push({i,x:gn(r,s)})),n=qc.lastIndex;return n<t.length&&(o=t.slice(n),a[i]?a[i]+=o:a[++i]=o),a.length<2?l[0]?vM(l[0].x):xM(t):(t=l.length,function(u){for(var d=0,c;d<t;++d)a[(c=l[d]).i]=c.x(u);return a.join("")})}function bi(e,t){var n=typeof t,r;return t==null||n==="boolean"?Xh(t):(n==="number"?gn:n==="string"?(r=xs(t))?(t=r,fu):jw:t instanceof xs?fu:t instanceof Date?gM:pM(t)?hM:Array.isArray(t)?mM:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?yM:gn)(e,t)}var Tg=180/Math.PI,vf={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Mw(e,t,n,r,s,o){var i,a,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),e*r<t*n&&(e=-e,t=-t,l=-l,i=-i),{translateX:s,translateY:o,rotate:Math.atan2(t,e)*Tg,skewX:Math.atan(l)*Tg,scaleX:i,scaleY:a}}var Ja;function wM(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?vf:Mw(t.a,t.b,t.c,t.d,t.e,t.f)}function SM(e){return e==null||(Ja||(Ja=document.createElementNS("http://www.w3.org/2000/svg","g")),Ja.setAttribute("transform",e),!(e=Ja.transform.baseVal.consolidate()))?vf:(e=e.matrix,Mw(e.a,e.b,e.c,e.d,e.e,e.f))}function Tw(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function o(u,d,c,f,m,p){if(u!==c||d!==f){var x=m.push("translate(",null,t,null,n);p.push({i:x-4,x:gn(u,c)},{i:x-2,x:gn(d,f)})}else(c||f)&&m.push("translate("+c+t+f+n)}function i(u,d,c,f){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),f.push({i:c.push(s(c)+"rotate(",null,r)-2,x:gn(u,d)})):d&&c.push(s(c)+"rotate("+d+r)}function a(u,d,c,f){u!==d?f.push({i:c.push(s(c)+"skewX(",null,r)-2,x:gn(u,d)}):d&&c.push(s(c)+"skewX("+d+r)}function l(u,d,c,f,m,p){if(u!==c||d!==f){var x=m.push(s(m)+"scale(",null,",",null,")");p.push({i:x-4,x:gn(u,c)},{i:x-2,x:gn(d,f)})}else(c!==1||f!==1)&&m.push(s(m)+"scale("+c+","+f+")")}return function(u,d){var c=[],f=[];return u=e(u),d=e(d),o(u.translateX,u.translateY,d.translateX,d.translateY,c,f),i(u.rotate,d.rotate,c,f),a(u.skewX,d.skewX,c,f),l(u.scaleX,u.scaleY,d.scaleX,d.scaleY,c,f),u=d=null,function(m){for(var p=-1,x=f.length,w;++p<x;)c[(w=f[p]).i]=w.x(m);return c.join("")}}}var _M=Tw(wM,"px, ","px)","deg)"),bM=Tw(SM,", ",")",")"),EM=1e-12;function Lg(e){return((e=Math.exp(e))+1/e)/2}function CM(e){return((e=Math.exp(e))-1/e)/2}function NM(e){return((e=Math.exp(2*e))-1)/(e+1)}const bl=function e(t,n,r){function s(o,i){var a=o[0],l=o[1],u=o[2],d=i[0],c=i[1],f=i[2],m=d-a,p=c-l,x=m*m+p*p,w,g;if(x<EM)g=Math.log(f/u)/t,w=function(b){return[a+b*m,l+b*p,u*Math.exp(t*b*g)]};else{var v=Math.sqrt(x),y=(f*f-u*u+r*x)/(2*u*n*v),S=(f*f-u*u-r*x)/(2*f*n*v),E=Math.log(Math.sqrt(y*y+1)-y),_=Math.log(Math.sqrt(S*S+1)-S);g=(_-E)/t,w=function(b){var C=b*g,L=Lg(E),M=u/(n*v)*(L*NM(t*C+E)-CM(E));return[a+M*m,l+M*p,u*L/Lg(t*C+E)]}}return w.duration=g*1e3*t/Math.SQRT2,w}return s.rho=function(o){var i=Math.max(.001,+o),a=i*i,l=a*a;return e(i,a,l)},s}(Math.SQRT2,2,4);var Co=0,ci=0,ni=0,Lw=1e3,hu,di,pu=0,vs=0,qu=0,Gi=typeof performance=="object"&&performance.now?performance:Date,Iw=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Yh(){return vs||(Iw(kM),vs=Gi.now()+qu)}function kM(){vs=0}function mu(){this._call=this._time=this._next=null}mu.prototype=Aw.prototype={constructor:mu,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Yh():+n)+(t==null?0:+t),!this._next&&di!==this&&(di?di._next=this:hu=this,di=this),this._call=e,this._time=n,wf()},stop:function(){this._call&&(this._call=null,this._time=1/0,wf())}};function Aw(e,t,n){var r=new mu;return r.restart(e,t,n),r}function PM(){Yh(),++Co;for(var e=hu,t;e;)(t=vs-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Co}function Ig(){vs=(pu=Gi.now())+qu,Co=ci=0;try{PM()}finally{Co=0,jM(),vs=0}}function RM(){var e=Gi.now(),t=e-pu;t>Lw&&(qu-=t,pu=e)}function jM(){for(var e,t=hu,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:hu=n);di=e,wf(r)}function wf(e){if(!Co){ci&&(ci=clearTimeout(ci));var t=e-vs;t>24?(e<1/0&&(ci=setTimeout(Ig,e-Gi.now()-qu)),ni&&(ni=clearInterval(ni))):(ni||(pu=Gi.now(),ni=setInterval(RM,Lw)),Co=1,Iw(Ig))}}function Ag(e,t,n){var r=new mu;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var MM=Wu("start","end","cancel","interrupt"),TM=[],Ow=0,Og=1,Sf=2,El=3,Fg=4,_f=5,Cl=6;function Qu(e,t,n,r,s,o){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;LM(e,n,{name:t,index:r,group:s,on:MM,tween:TM,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Ow})}function Zh(e,t){var n=ln(e,t);if(n.state>Ow)throw new Error("too late; already scheduled");return n}function En(e,t){var n=ln(e,t);if(n.state>El)throw new Error("too late; already running");return n}function ln(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function LM(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=Aw(o,0,n.time);function o(u){n.state=Og,n.timer.restart(i,n.delay,n.time),n.delay<=u&&i(u-n.delay)}function i(u){var d,c,f,m;if(n.state!==Og)return l();for(d in r)if(m=r[d],m.name===n.name){if(m.state===El)return Ag(i);m.state===Fg?(m.state=Cl,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete r[d]):+d<t&&(m.state=Cl,m.timer.stop(),m.on.call("cancel",e,e.__data__,m.index,m.group),delete r[d])}if(Ag(function(){n.state===El&&(n.state=Fg,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=Sf,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Sf){for(n.state=El,s=new Array(f=n.tween.length),d=0,c=-1;d<f;++d)(m=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++c]=m);s.length=c+1}}function a(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(l),n.state=_f,1),c=-1,f=s.length;++c<f;)s[c].call(e,d);n.state===_f&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Cl,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function Nl(e,t){var n=e.__transition,r,s,o=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){o=!1;continue}s=r.state>Sf&&r.state<_f,r.state=Cl,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}o&&delete e.__transition}}function IM(e){return this.each(function(){Nl(this,e)})}function AM(e,t){var n,r;return function(){var s=En(this,e),o=s.tween;if(o!==n){r=n=o;for(var i=0,a=r.length;i<a;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function OM(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var o=En(this,e),i=o.tween;if(i!==r){s=(r=i).slice();for(var a={name:t,value:n},l=0,u=s.length;l<u;++l)if(s[l].name===t){s[l]=a;break}l===u&&s.push(a)}o.tween=s}}function FM(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=ln(this.node(),n).tween,s=0,o=r.length,i;s<o;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?AM:OM)(n,e,t))}function Jh(e,t,n){var r=e._id;return e.each(function(){var s=En(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return ln(s,r).value[t]}}function Fw(e,t){var n;return(typeof t=="number"?gn:t instanceof xs?fu:(n=xs(t))?(t=n,fu):jw)(e,t)}function DM(e){return function(){this.removeAttribute(e)}}function zM(e){return function(){this.removeAttributeNS(e.space,e.local)}}function $M(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttribute(e);return i===s?null:i===r?o:o=t(r=i,n)}}function BM(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?o:o=t(r=i,n)}}function HM(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function UM(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function VM(e,t){var n=Ku(e),r=n==="transform"?bM:Fw;return this.attrTween(e,typeof t=="function"?(n.local?UM:HM)(n,r,Jh(this,"attr."+e,t)):t==null?(n.local?zM:DM)(n):(n.local?BM:$M)(n,r,t))}function WM(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function KM(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function qM(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&KM(e,o)),n}return s._value=t,s}function QM(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&WM(e,o)),n}return s._value=t,s}function GM(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=Ku(e);return this.tween(n,(r.local?qM:QM)(r,t))}function XM(e,t){return function(){Zh(this,e).delay=+t.apply(this,arguments)}}function YM(e,t){return t=+t,function(){Zh(this,e).delay=t}}function ZM(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?XM:YM)(t,e)):ln(this.node(),t).delay}function JM(e,t){return function(){En(this,e).duration=+t.apply(this,arguments)}}function eT(e,t){return t=+t,function(){En(this,e).duration=t}}function tT(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?JM:eT)(t,e)):ln(this.node(),t).duration}function nT(e,t){if(typeof t!="function")throw new Error;return function(){En(this,e).ease=t}}function rT(e){var t=this._id;return arguments.length?this.each(nT(t,e)):ln(this.node(),t).ease}function sT(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;En(this,e).ease=n}}function oT(e){if(typeof e!="function")throw new Error;return this.each(sT(this._id,e))}function iT(e){typeof e!="function"&&(e=pw(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,u=0;u<i;++u)(l=o[u])&&e.call(l,l.__data__,u,o)&&a.push(l);return new Hn(r,this._parents,this._name,this._id)}function aT(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,o=Math.min(r,s),i=new Array(r),a=0;a<o;++a)for(var l=t[a],u=n[a],d=l.length,c=i[a]=new Array(d),f,m=0;m<d;++m)(f=l[m]||u[m])&&(c[m]=f);for(;a<r;++a)i[a]=t[a];return new Hn(i,this._parents,this._name,this._id)}function lT(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 uT(e,t,n){var r,s,o=lT(t)?Zh:En;return function(){var i=o(this,e),a=i.on;a!==r&&(s=(r=a).copy()).on(t,n),i.on=s}}function cT(e,t){var n=this._id;return arguments.length<2?ln(this.node(),n).on.on(e):this.each(uT(n,e,t))}function dT(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function fT(){return this.on("end.remove",dT(this._id))}function hT(e){var t=this._name,n=this._id;typeof e!="function"&&(e=qh(e));for(var r=this._groups,s=r.length,o=new Array(s),i=0;i<s;++i)for(var a=r[i],l=a.length,u=o[i]=new Array(l),d,c,f=0;f<l;++f)(d=a[f])&&(c=e.call(d,d.__data__,f,a))&&("__data__"in d&&(c.__data__=d.__data__),u[f]=c,Qu(u[f],t,n,f,u,ln(d,n)));return new Hn(o,this._parents,t,n)}function pT(e){var t=this._name,n=this._id;typeof e!="function"&&(e=hw(e));for(var r=this._groups,s=r.length,o=[],i=[],a=0;a<s;++a)for(var l=r[a],u=l.length,d,c=0;c<u;++c)if(d=l[c]){for(var f=e.call(d,d.__data__,c,l),m,p=ln(d,n),x=0,w=f.length;x<w;++x)(m=f[x])&&Qu(m,t,n,x,f,p);o.push(f),i.push(d)}return new Hn(o,i,t,n)}var mT=xa.prototype.constructor;function gT(){return new mT(this._groups,this._parents)}function yT(e,t){var n,r,s;return function(){var o=Eo(this,e),i=(this.style.removeProperty(e),Eo(this,e));return o===i?null:o===n&&i===r?s:s=t(n=o,r=i)}}function Dw(e){return function(){this.style.removeProperty(e)}}function xT(e,t,n){var r,s=n+"",o;return function(){var i=Eo(this,e);return i===s?null:i===r?o:o=t(r=i,n)}}function vT(e,t,n){var r,s,o;return function(){var i=Eo(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Eo(this,e))),i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a))}}function wT(e,t){var n,r,s,o="style."+t,i="end."+o,a;return function(){var l=En(this,e),u=l.on,d=l.value[o]==null?a||(a=Dw(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),l.on=r}}function ST(e,t,n){var r=(e+="")=="transform"?_M:Fw;return t==null?this.styleTween(e,yT(e,r)).on("end.style."+e,Dw(e)):typeof t=="function"?this.styleTween(e,vT(e,r,Jh(this,"style."+e,t))).each(wT(this._id,e)):this.styleTween(e,xT(e,r,t),n).on("end.style."+e,null)}function _T(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function bT(e,t,n){var r,s;function o(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&_T(e,i,n)),r}return o._value=t,o}function ET(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,bT(e,t,n??""))}function CT(e){return function(){this.textContent=e}}function NT(e){return function(){var t=e(this);this.textContent=t??""}}function kT(e){return this.tween("text",typeof e=="function"?NT(Jh(this,"text",e)):CT(e==null?"":e+""))}function PT(e){return function(t){this.textContent=e.call(this,t)}}function RT(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&PT(s)),t}return r._value=e,r}function jT(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,RT(e))}function MT(){for(var e=this._name,t=this._id,n=zw(),r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,u=0;u<a;++u)if(l=i[u]){var d=ln(l,t);Qu(l,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Hn(r,this._parents,e,n)}function TT(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(o,i){var a={value:i},l={value:function(){--s===0&&o()}};n.each(function(){var u=En(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),u.on=t}),s===0&&o()})}var LT=0;function Hn(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function zw(){return++LT}var kn=xa.prototype;Hn.prototype={constructor:Hn,select:hT,selectAll:pT,selectChild:kn.selectChild,selectChildren:kn.selectChildren,filter:iT,merge:aT,selection:gT,transition:MT,call:kn.call,nodes:kn.nodes,node:kn.node,size:kn.size,empty:kn.empty,each:kn.each,on:cT,attr:VM,attrTween:GM,style:ST,styleTween:ET,text:kT,textTween:jT,remove:fT,tween:FM,delay:ZM,duration:tT,ease:rT,easeVarying:oT,end:TT,[Symbol.iterator]:kn[Symbol.iterator]};function IT(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var AT={time:null,delay:0,duration:250,ease:IT};function OT(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 FT(e){var t,n;e instanceof Hn?(t=e._id,e=e._name):(t=zw(),(n=AT).time=Yh(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,u=0;u<a;++u)(l=i[u])&&Qu(l,e,t,u,i,n||OT(l,t));return new Hn(r,this._parents,e,t)}xa.prototype.interrupt=IM;xa.prototype.transition=FT;const el=e=>()=>e;function DT(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){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:s}})}function An(e,t,n){this.k=e,this.x=t,this.y=n}An.prototype={constructor:An,scale:function(e){return e===1?this:new An(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new An(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 Gu=new An(1,0,0);$w.prototype=An.prototype;function $w(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Gu;return e.__zoom}function Qc(e){e.stopImmediatePropagation()}function ri(e){e.preventDefault(),e.stopImmediatePropagation()}function zT(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function $T(){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 Dg(){return this.__zoom||Gu}function BT(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function HT(){return navigator.maxTouchPoints||"ontouchstart"in this}function UT(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i))}function Bw(){var e=zT,t=$T,n=UT,r=BT,s=HT,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=bl,u=Wu("start","zoom","end"),d,c,f,m=500,p=150,x=0,w=10;function g(k){k.property("__zoom",Dg).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",M).filter(s).on("touchstart.zoom",P).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",O).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(k,D,I,F){var N=k.selection?k.selection():k;N.property("__zoom",Dg),k!==N?E(k,D,I,F):N.interrupt().each(function(){_(this,arguments).event(F).start().zoom(null,typeof D=="function"?D.apply(this,arguments):D).end()})},g.scaleBy=function(k,D,I,F){g.scaleTo(k,function(){var N=this.__zoom.k,T=typeof D=="function"?D.apply(this,arguments):D;return N*T},I,F)},g.scaleTo=function(k,D,I,F){g.transform(k,function(){var N=t.apply(this,arguments),T=this.__zoom,z=I==null?S(N):typeof I=="function"?I.apply(this,arguments):I,B=T.invert(z),H=typeof D=="function"?D.apply(this,arguments):D;return n(y(v(T,H),z,B),N,i)},I,F)},g.translateBy=function(k,D,I,F){g.transform(k,function(){return n(this.__zoom.translate(typeof D=="function"?D.apply(this,arguments):D,typeof I=="function"?I.apply(this,arguments):I),t.apply(this,arguments),i)},null,F)},g.translateTo=function(k,D,I,F,N){g.transform(k,function(){var T=t.apply(this,arguments),z=this.__zoom,B=F==null?S(T):typeof F=="function"?F.apply(this,arguments):F;return n(Gu.translate(B[0],B[1]).scale(z.k).translate(typeof D=="function"?-D.apply(this,arguments):-D,typeof I=="function"?-I.apply(this,arguments):-I),T,i)},F,N)};function v(k,D){return D=Math.max(o[0],Math.min(o[1],D)),D===k.k?k:new An(D,k.x,k.y)}function y(k,D,I){var F=D[0]-I[0]*k.k,N=D[1]-I[1]*k.k;return F===k.x&&N===k.y?k:new An(k.k,F,N)}function S(k){return[(+k[0][0]+ +k[1][0])/2,(+k[0][1]+ +k[1][1])/2]}function E(k,D,I,F){k.on("start.zoom",function(){_(this,arguments).event(F).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(F).end()}).tween("zoom",function(){var N=this,T=arguments,z=_(N,T).event(F),B=t.apply(N,T),H=I==null?S(B):typeof I=="function"?I.apply(N,T):I,K=Math.max(B[1][0]-B[0][0],B[1][1]-B[0][1]),V=N.__zoom,X=typeof D=="function"?D.apply(N,T):D,Q=l(V.invert(H).concat(K/V.k),X.invert(H).concat(K/X.k));return function(Y){if(Y===1)Y=X;else{var W=Q(Y),Z=K/W[2];Y=new An(Z,H[0]-W[0]*Z,H[1]-W[1]*Z)}z.zoom(null,Y)}})}function _(k,D,I){return!I&&k.__zooming||new b(k,D)}function b(k,D){this.that=k,this.args=D,this.active=0,this.sourceEvent=null,this.extent=t.apply(k,D),this.taps=0}b.prototype={event:function(k){return k&&(this.sourceEvent=k),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(k,D){return this.mouse&&k!=="mouse"&&(this.mouse[1]=D.invert(this.mouse[0])),this.touch0&&k!=="touch"&&(this.touch0[1]=D.invert(this.touch0[0])),this.touch1&&k!=="touch"&&(this.touch1[1]=D.invert(this.touch1[0])),this.that.__zoom=D,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(k){var D=Nt(this.that).datum();u.call(k,this.that,new DT(k,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:u}),D)}};function C(k,...D){if(!e.apply(this,arguments))return;var I=_(this,D).event(k),F=this.__zoom,N=Math.max(o[0],Math.min(o[1],F.k*Math.pow(2,r.apply(this,arguments)))),T=Yt(k);if(I.wheel)(I.mouse[0][0]!==T[0]||I.mouse[0][1]!==T[1])&&(I.mouse[1]=F.invert(I.mouse[0]=T)),clearTimeout(I.wheel);else{if(F.k===N)return;I.mouse=[T,F.invert(T)],Nl(this),I.start()}ri(k),I.wheel=setTimeout(z,p),I.zoom("mouse",n(y(v(F,N),I.mouse[0],I.mouse[1]),I.extent,i));function z(){I.wheel=null,I.end()}}function L(k,...D){if(f||!e.apply(this,arguments))return;var I=k.currentTarget,F=_(this,D,!0).event(k),N=Nt(k.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",K,!0),T=Yt(k,I),z=k.clientX,B=k.clientY;Ew(k.view),Qc(k),F.mouse=[T,this.__zoom.invert(T)],Nl(this),F.start();function H(V){if(ri(V),!F.moved){var X=V.clientX-z,Q=V.clientY-B;F.moved=X*X+Q*Q>x}F.event(V).zoom("mouse",n(y(F.that.__zoom,F.mouse[0]=Yt(V,I),F.mouse[1]),F.extent,i))}function K(V){N.on("mousemove.zoom mouseup.zoom",null),Cw(V.view,F.moved),ri(V),F.event(V).end()}}function M(k,...D){if(e.apply(this,arguments)){var I=this.__zoom,F=Yt(k.changedTouches?k.changedTouches[0]:k,this),N=I.invert(F),T=I.k*(k.shiftKey?.5:2),z=n(y(v(I,T),F,N),t.apply(this,D),i);ri(k),a>0?Nt(this).transition().duration(a).call(E,z,F,k):Nt(this).call(g.transform,z,F,k)}}function P(k,...D){if(e.apply(this,arguments)){var I=k.touches,F=I.length,N=_(this,D,k.changedTouches.length===F).event(k),T,z,B,H;for(Qc(k),z=0;z<F;++z)B=I[z],H=Yt(B,this),H=[H,this.__zoom.invert(H),B.identifier],N.touch0?!N.touch1&&N.touch0[2]!==H[2]&&(N.touch1=H,N.taps=0):(N.touch0=H,T=!0,N.taps=1+!!d);d&&(d=clearTimeout(d)),T&&(N.taps<2&&(c=H[0],d=setTimeout(function(){d=null},m)),Nl(this),N.start())}}function j(k,...D){if(this.__zooming){var I=_(this,D).event(k),F=k.changedTouches,N=F.length,T,z,B,H;for(ri(k),T=0;T<N;++T)z=F[T],B=Yt(z,this),I.touch0&&I.touch0[2]===z.identifier?I.touch0[0]=B:I.touch1&&I.touch1[2]===z.identifier&&(I.touch1[0]=B);if(z=I.that.__zoom,I.touch1){var K=I.touch0[0],V=I.touch0[1],X=I.touch1[0],Q=I.touch1[1],Y=(Y=X[0]-K[0])*Y+(Y=X[1]-K[1])*Y,W=(W=Q[0]-V[0])*W+(W=Q[1]-V[1])*W;z=v(z,Math.sqrt(Y/W)),B=[(K[0]+X[0])/2,(K[1]+X[1])/2],H=[(V[0]+Q[0])/2,(V[1]+Q[1])/2]}else if(I.touch0)B=I.touch0[0],H=I.touch0[1];else return;I.zoom("touch",n(y(z,B,H),I.extent,i))}}function O(k,...D){if(this.__zooming){var I=_(this,D).event(k),F=k.changedTouches,N=F.length,T,z;for(Qc(k),f&&clearTimeout(f),f=setTimeout(function(){f=null},m),T=0;T<N;++T)z=F[T],I.touch0&&I.touch0[2]===z.identifier?delete I.touch0:I.touch1&&I.touch1[2]===z.identifier&&delete I.touch1;if(I.touch1&&!I.touch0&&(I.touch0=I.touch1,delete I.touch1),I.touch0)I.touch0[1]=this.__zoom.invert(I.touch0[0]);else if(I.end(),I.taps===2&&(z=Yt(z,this),Math.hypot(c[0]-z[0],c[1]-z[1])<w)){var B=Nt(this).on("dblclick.zoom");B&&B.apply(this,arguments)}}}return g.wheelDelta=function(k){return arguments.length?(r=typeof k=="function"?k:el(+k),g):r},g.filter=function(k){return arguments.length?(e=typeof k=="function"?k:el(!!k),g):e},g.touchable=function(k){return arguments.length?(s=typeof k=="function"?k:el(!!k),g):s},g.extent=function(k){return arguments.length?(t=typeof k=="function"?k:el([[+k[0][0],+k[0][1]],[+k[1][0],+k[1][1]]]),g):t},g.scaleExtent=function(k){return arguments.length?(o[0]=+k[0],o[1]=+k[1],g):[o[0],o[1]]},g.translateExtent=function(k){return arguments.length?(i[0][0]=+k[0][0],i[1][0]=+k[1][0],i[0][1]=+k[0][1],i[1][1]=+k[1][1],g):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},g.constrain=function(k){return arguments.length?(n=k,g):n},g.duration=function(k){return arguments.length?(a=+k,g):a},g.interpolate=function(k){return arguments.length?(l=k,g):l},g.on=function(){var k=u.on.apply(u,arguments);return k===u?g:k},g.clickDistance=function(k){return arguments.length?(x=(k=+k)*k,g):Math.sqrt(x)},g.tapDistance=function(k){return arguments.length?(w=+k,g):w},g}const bn={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,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},Xi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Hw=["Enter"," ","Escape"],Uw={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var No;(function(e){e.Strict="strict",e.Loose="loose"})(No||(No={}));var as;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(as||(as={}));var Yi;(function(e){e.Partial="partial",e.Full="full"})(Yi||(Yi={}));const Vw={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var rr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(rr||(rr={}));var ws;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(ws||(ws={}));var ee;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ee||(ee={}));const zg={[ee.Left]:ee.Right,[ee.Right]:ee.Left,[ee.Top]:ee.Bottom,[ee.Bottom]:ee.Top};function Ww(e){return e===null?null:e?"valid":"invalid"}const Kw=e=>"id"in e&&"source"in e&&"target"in e,VT=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),ep=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),wa=(e,t=[0,0])=>{const{width:n,height:r}=Vn(e),s=e.origin??t,o=n*s[0],i=r*s[1];return{x:e.position.x-o,y:e.position.y-i}},WT=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const o=typeof s=="string";let i=!t.nodeLookup&&!o?s:void 0;t.nodeLookup&&(i=o?t.nodeLookup.get(s):ep(s)?s:t.nodeLookup.get(s.id));const a=i?gu(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Xu(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Yu(n)},Sa=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=Xu(n,gu(s)),r=!0)}),r?Yu(n):{x:0,y:0,width:0,height:0}},tp=(e,t,[n,r,s]=[0,0,1],o=!1,i=!1)=>{const a={...ba(t,[n,r,s]),width:t.width/s,height:t.height/s},l=[];for(const u of e.values()){const{measured:d,selectable:c=!0,hidden:f=!1}=u;if(i&&!c||f)continue;const m=d.width??u.width??u.initialWidth??null,p=d.height??u.height??u.initialHeight??null,x=Zi(a,Po(u)),w=(m??0)*(p??0),g=o&&x>0;(!u.internals.handleBounds||g||x>=w||u.dragging)&&l.push(u)}return l},KT=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function qT(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{s.measured.width&&s.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!s.hidden)&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function QT({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:o},i){if(e.size===0)return Promise.resolve(!0);const a=qT(e,i),l=Sa(a),u=np(l,t,n,(i==null?void 0:i.minZoom)??s,(i==null?void 0:i.maxZoom)??o,(i==null?void 0:i.padding)??.1);return await r.setViewport(u,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),Promise.resolve(!0)}function qw({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:o}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:l,y:u}=a?a.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let c=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!a)o==null||o("005",bn.error005());else{const m=a.measured.width,p=a.measured.height;m&&p&&(c=[[l,u],[l+m,u+p]])}else a&&Ro(i.extent)&&(c=[[i.extent[0][0]+l,i.extent[0][1]+u],[i.extent[1][0]+l,i.extent[1][1]+u]]);const f=Ro(c)?Ss(t,c,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&(o==null||o("015",bn.error015())),{position:{x:f.x-l+(i.measured.width??0)*d[0],y:f.y-u+(i.measured.height??0)*d[1]},positionAbsolute:f}}async function GT({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const o=new Set(e.map(f=>f.id)),i=[];for(const f of n){if(f.deletable===!1)continue;const m=o.has(f.id),p=!m&&f.parentId&&i.find(x=>x.id===f.parentId);(m||p)&&i.push(f)}const a=new Set(t.map(f=>f.id)),l=r.filter(f=>f.deletable!==!1),d=KT(i,l);for(const f of l)a.has(f.id)&&!d.find(p=>p.id===f.id)&&d.push(f);if(!s)return{edges:d,nodes:i};const c=await s({nodes:i,edges:d});return typeof c=="boolean"?c?{edges:d,nodes:i}:{edges:[],nodes:[]}:c}const ko=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ss=(e={x:0,y:0},t,n)=>({x:ko(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:ko(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Qw(e,t,n){const{width:r,height:s}=Vn(n),{x:o,y:i}=n.internals.positionAbsolute;return Ss(e,[[o,i],[o+r,i+s]],t)}const $g=(e,t,n)=>e<t?ko(Math.abs(e-t),1,t)/t:e>n?-ko(Math.abs(e-n),1,t)/t:0,Gw=(e,t,n=15,r=40)=>{const s=$g(e.x,r,t.width-r)*n,o=$g(e.y,r,t.height-r)*n;return[s,o]},Xu=(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)}),bf=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Yu=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Po=(e,t=[0,0])=>{var s,o;const{x:n,y:r}=ep(e)?e.internals.positionAbsolute:wa(e,t);return{x:n,y:r,width:((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0,height:((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0}},gu=(e,t=[0,0])=>{var s,o;const{x:n,y:r}=ep(e)?e.internals.positionAbsolute:wa(e,t);return{x:n,y:r,x2:n+(((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0),y2:r+(((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0)}},Xw=(e,t)=>Yu(Xu(bf(e),bf(t))),Zi=(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)},Bg=e=>en(e.width)&&en(e.height)&&en(e.x)&&en(e.y),en=e=>!isNaN(e)&&isFinite(e),XT=(e,t)=>{},_a=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ba=({x:e,y:t},[n,r,s],o=!1,i=[1,1])=>{const a={x:(e-n)/s,y:(t-r)/s};return o?_a(a,i):a},yu=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function Ns(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function YT(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Ns(e,n),s=Ns(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=Ns(e.top??e.y??0,n),s=Ns(e.bottom??e.y??0,n),o=Ns(e.left??e.x??0,t),i=Ns(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:o,x:o+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function ZT(e,t,n,r,s,o){const{x:i,y:a}=yu(e,[t,n,r]),{x:l,y:u}=yu({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=s-l,c=o-u;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(c)}}const np=(e,t,n,r,s,o)=>{const i=YT(o,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,u=Math.min(a,l),d=ko(u,r,s),c=e.x+e.width/2,f=e.y+e.height/2,m=t/2-c*d,p=n/2-f*d,x=ZT(e,m,p,d,t,n),w={left:Math.min(x.left-i.left,0),top:Math.min(x.top-i.top,0),right:Math.min(x.right-i.right,0),bottom:Math.min(x.bottom-i.bottom,0)};return{x:m-w.left+w.right,y:p-w.top+w.bottom,zoom:d}},Ji=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Ro(e){return e!=null&&e!=="parent"}function Vn(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function Yw(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function Zw(e,t={width:0,height:0},n,r,s){const o={...e},i=r.get(n);if(i){const a=i.origin||s;o.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],o.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return o}function Hg(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function JT(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function eL(e){return{...Uw,...e||{}}}function Ei(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:o,y:i}=tn(e),a=ba({x:o-((s==null?void 0:s.left)??0),y:i-((s==null?void 0:s.top)??0)},r),{x:l,y:u}=n?_a(a,t):a;return{xSnapped:l,ySnapped:u,...a}}const rp=e=>({width:e.offsetWidth,height:e.offsetHeight}),Jw=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},tL=["INPUT","SELECT","TEXTAREA"];function e1(e){var r,s;const t=((s=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:s[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:tL.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const t1=e=>"clientX"in e,tn=(e,t)=>{var o,i;const n=t1(e),r=n?e.clientX:(o=e.touches)==null?void 0:o[0].clientX,s=n?e.clientY:(i=e.touches)==null?void 0:i[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:s-((t==null?void 0:t.top)??0)}},Ug=(e,t,n,r,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...rp(i)}})};function n1({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:o,targetControlX:i,targetControlY:a}){const l=e*.125+s*.375+i*.375+n*.125,u=t*.125+o*.375+a*.375+r*.125,d=Math.abs(l-e),c=Math.abs(u-t);return[l,u,d,c]}function tl(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Vg({pos:e,x1:t,y1:n,x2:r,y2:s,c:o}){switch(e){case ee.Left:return[t-tl(t-r,o),n];case ee.Right:return[t+tl(r-t,o),n];case ee.Top:return[t,n-tl(n-s,o)];case ee.Bottom:return[t,n+tl(s-n,o)]}}function r1({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:s,targetPosition:o=ee.Top,curvature:i=.25}){const[a,l]=Vg({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Vg({pos:o,x1:r,y1:s,x2:e,y2:t,c:i}),[c,f,m,p]=n1({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:a,sourceControlY:l,targetControlX:u,targetControlY:d});return[`M${e},${t} C${a},${l} ${u},${d} ${r},${s}`,c,f,m,p]}function s1({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,o=n<e?n+s:n-s,i=Math.abs(r-t)/2,a=r<t?r+i:r-i;return[o,a,s,i]}function nL({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:o="basic"}){if(o==="manual")return r;const i=s&&n?r+1e3:r,a=Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0);return i+a}function rL({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const o=Xu(gu(e),gu(t));o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return Zi(i,Yu(o))>0}const sL=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,oL=(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)),iL=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||sL;let s;return Kw(e)?s={...e}:s={...e,id:r(e)},oL(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function o1({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,o,i,a]=s1({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,o,i,a]}const Wg={[ee.Left]:{x:-1,y:0},[ee.Right]:{x:1,y:0},[ee.Top]:{x:0,y:-1},[ee.Bottom]:{x:0,y:1}},aL=({source:e,sourcePosition:t=ee.Bottom,target:n})=>t===ee.Left||t===ee.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Kg=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function lL({source:e,sourcePosition:t=ee.Bottom,target:n,targetPosition:r=ee.Top,center:s,offset:o,stepPosition:i}){const a=Wg[t],l=Wg[r],u={x:e.x+a.x*o,y:e.y+a.y*o},d={x:n.x+l.x*o,y:n.y+l.y*o},c=aL({source:u,sourcePosition:t,target:d}),f=c.x!==0?"x":"y",m=c[f];let p=[],x,w;const g={x:0,y:0},v={x:0,y:0},[,,y,S]=s1({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[f]*l[f]===-1){f==="x"?(x=s.x??u.x+(d.x-u.x)*i,w=s.y??(u.y+d.y)/2):(x=s.x??(u.x+d.x)/2,w=s.y??u.y+(d.y-u.y)*i);const _=[{x,y:u.y},{x,y:d.y}],b=[{x:u.x,y:w},{x:d.x,y:w}];a[f]===m?p=f==="x"?_:b:p=f==="x"?b:_}else{const _=[{x:u.x,y:d.y}],b=[{x:d.x,y:u.y}];if(f==="x"?p=a.x===m?b:_:p=a.y===m?_:b,t===r){const j=Math.abs(e[f]-n[f]);if(j<=o){const O=Math.min(o-1,o-j);a[f]===m?g[f]=(u[f]>e[f]?-1:1)*O:v[f]=(d[f]>n[f]?-1:1)*O}}if(t!==r){const j=f==="x"?"y":"x",O=a[f]===l[j],k=u[j]>d[j],D=u[j]<d[j];(a[f]===1&&(!O&&k||O&&D)||a[f]!==1&&(!O&&D||O&&k))&&(p=f==="x"?_:b)}const C={x:u.x+g.x,y:u.y+g.y},L={x:d.x+v.x,y:d.y+v.y},M=Math.max(Math.abs(C.x-p[0].x),Math.abs(L.x-p[0].x)),P=Math.max(Math.abs(C.y-p[0].y),Math.abs(L.y-p[0].y));M>=P?(x=(C.x+L.x)/2,w=p[0].y):(x=p[0].x,w=(C.y+L.y)/2)}return[[e,{x:u.x+g.x,y:u.y+g.y},...p,{x:d.x+v.x,y:d.y+v.y},n],x,w,y,S]}function uL(e,t,n,r){const s=Math.min(Kg(e,t)/2,Kg(t,n)/2,r),{x:o,y:i}=t;if(e.x===o&&o===n.x||e.y===i&&i===n.y)return`L${o} ${i}`;if(e.y===i){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${o+s*u},${i}Q ${o},${i} ${o},${i+s*d}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${o},${i+s*l}Q ${o},${i} ${o+s*a},${i}`}function Ef({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:s,targetPosition:o=ee.Top,borderRadius:i=5,centerX:a,centerY:l,offset:u=20,stepPosition:d=.5}){const[c,f,m,p,x]=lL({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:o,center:{x:a,y:l},offset:u,stepPosition:d});return[c.reduce((g,v,y)=>{let S="";return y>0&&y<c.length-1?S=uL(c[y-1],v,c[y+1],i):S=`${y===0?"M":"L"}${v.x} ${v.y}`,g+=S,g},""),f,m,p,x]}function qg(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function cL(e){var c;const{sourceNode:t,targetNode:n}=e;if(!qg(t)||!qg(n))return null;const r=t.internals.handleBounds||Qg(t.handles),s=n.internals.handleBounds||Qg(n.handles),o=Gg((r==null?void 0:r.source)??[],e.sourceHandle),i=Gg(e.connectionMode===No.Strict?(s==null?void 0:s.target)??[]:((s==null?void 0:s.target)??[]).concat((s==null?void 0:s.source)??[]),e.targetHandle);if(!o||!i)return(c=e.onError)==null||c.call(e,"008",bn.error008(o?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(o==null?void 0:o.position)||ee.Bottom,l=(i==null?void 0:i.position)||ee.Top,u=_s(t,o,a),d=_s(n,i,l);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:l}}function Qg(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function _s(e,t,n=ee.Left,r=!1){const s=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,o=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Vn(e);if(r)return{x:s+i/2,y:o+a/2};switch((t==null?void 0:t.position)??n){case ee.Top:return{x:s+i/2,y:o};case ee.Right:return{x:s+i,y:o+a/2};case ee.Bottom:return{x:s+i/2,y:o+a};case ee.Left:return{x:s,y:o+a/2}}}function Gg(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Cf(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function dL(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const o=new Set;return e.reduce((i,a)=>([a.markerStart||r,a.markerEnd||s].forEach(l=>{if(l&&typeof l=="object"){const u=Cf(l,t);o.has(u)||(i.push({id:u,color:l.color||n,...l}),o.add(u))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const i1=1e3,fL=10,sp={nodeOrigin:[0,0],nodeExtent:Xi,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},hL={...sp,checkEquality:!0};function op(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function pL(e,t,n){const r=op(sp,n);for(const s of e.values())if(s.parentId)ap(s,e,t,r);else{const o=wa(s,r.nodeOrigin),i=Ro(s.extent)?s.extent:r.nodeExtent,a=Ss(o,i,Vn(s));s.internals.positionAbsolute=a}}function mL(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(o):s.type==="target"&&r.push(o)}return{source:n,target:r}}function ip(e){return e==="manual"}function Nf(e,t,n,r={}){var u,d;const s=op(hL,r),o={i:0},i=new Map(t),a=s!=null&&s.elevateNodesOnSelect&&!ip(s.zIndexMode)?i1:0;let l=e.length>0;t.clear(),n.clear();for(const c of e){let f=i.get(c.id);if(s.checkEquality&&c===(f==null?void 0:f.internals.userNode))t.set(c.id,f);else{const m=wa(c,s.nodeOrigin),p=Ro(c.extent)?c.extent:s.nodeExtent,x=Ss(m,p,Vn(c));f={...s.defaults,...c,measured:{width:(u=c.measured)==null?void 0:u.width,height:(d=c.measured)==null?void 0:d.height},internals:{positionAbsolute:x,handleBounds:mL(c,f),z:a1(c,a,s.zIndexMode),userNode:c}},t.set(c.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(l=!1),c.parentId&&ap(f,t,n,r,o)}return l}function gL(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ap(e,t,n,r,s){const{elevateNodesOnSelect:o,nodeOrigin:i,nodeExtent:a,zIndexMode:l}=op(sp,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}gL(e,n),s&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++s.i,d.internals.z=d.internals.z+s.i*fL),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const c=o&&!ip(l)?i1:0,{x:f,y:m,z:p}=yL(e,d,i,a,c,l),{positionAbsolute:x}=e.internals,w=f!==x.x||m!==x.y;(w||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:f,y:m}:x,z:p}})}function a1(e,t,n){const r=en(e.zIndex)?e.zIndex:0;return ip(n)?r:r+(e.selected?t:0)}function yL(e,t,n,r,s,o){const{x:i,y:a}=t.internals.positionAbsolute,l=Vn(e),u=wa(e,n),d=Ro(e.extent)?Ss(u,e.extent,l):u;let c=Ss({x:i+d.x,y:a+d.y},r,l);e.extent==="parent"&&(c=Qw(c,l,t));const f=a1(e,s,o),m=t.internals.z??0;return{x:c.x,y:c.y,z:m>=f?m+1:f}}function lp(e,t,n,r=[0,0]){var i;const s=[],o=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const u=((i=o.get(a.parentId))==null?void 0:i.expandedRect)??Po(l),d=Xw(u,a.rect);o.set(a.parentId,{expandedRect:d,parent:l})}return o.size>0&&o.forEach(({expandedRect:a,parent:l},u)=>{var y;const d=l.internals.positionAbsolute,c=Vn(l),f=l.origin??r,m=a.x<d.x?Math.round(Math.abs(d.x-a.x)):0,p=a.y<d.y?Math.round(Math.abs(d.y-a.y)):0,x=Math.max(c.width,Math.round(a.width)),w=Math.max(c.height,Math.round(a.height)),g=(x-c.width)*f[0],v=(w-c.height)*f[1];(m>0||p>0||g||v)&&(s.push({id:u,type:"position",position:{x:l.position.x-m+g,y:l.position.y-p+v}}),(y=n.get(u))==null||y.forEach(S=>{e.some(E=>E.id===S.id)||s.push({id:S.id,type:"position",position:{x:S.position.x+m,y:S.position.y+p}})})),(c.width<a.width||c.height<a.height||m||p)&&s.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:x+(m?f[0]*m-g:0),height:w+(p?f[1]*p-v:0)}})}),s}function xL(e,t,n,r,s,o,i){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const u=[],d=window.getComputedStyle(a),{m22:c}=new window.DOMMatrixReadOnly(d.transform),f=[];for(const m of e.values()){const p=t.get(m.id);if(!p)continue;if(p.hidden){t.set(p.id,{...p,internals:{...p.internals,handleBounds:void 0}}),l=!0;continue}const x=rp(m.nodeElement),w=p.measured.width!==x.width||p.measured.height!==x.height;if(!!(x.width&&x.height&&(w||!p.internals.handleBounds||m.force))){const v=m.nodeElement.getBoundingClientRect(),y=Ro(p.extent)?p.extent:o;let{positionAbsolute:S}=p.internals;p.parentId&&p.extent==="parent"?S=Qw(S,x,t.get(p.parentId)):y&&(S=Ss(S,y,x));const E={...p,measured:x,internals:{...p.internals,positionAbsolute:S,handleBounds:{source:Ug("source",m.nodeElement,v,c,p.id),target:Ug("target",m.nodeElement,v,c,p.id)}}};t.set(p.id,E),p.parentId&&ap(E,t,n,{nodeOrigin:s,zIndexMode:i}),l=!0,w&&(u.push({id:p.id,type:"dimensions",dimensions:x}),p.expandParent&&p.parentId&&f.push({id:p.id,parentId:p.parentId,rect:Po(E,s)}))}}if(f.length>0){const m=lp(f,t,n,s);u.push(...m)}return{changes:u,updatedInternals:l}}async function vL({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,o]],r),a=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(a)}function Xg(e,t,n,r,s,o){let i=s;const a=r.get(i)||new Map;r.set(i,a.set(n,t)),i=`${s}-${e}`;const l=r.get(i)||new Map;if(r.set(i,l.set(n,t)),o){i=`${s}-${e}-${o}`;const u=r.get(i)||new Map;r.set(i,u.set(n,t))}}function l1(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:o,sourceHandle:i=null,targetHandle:a=null}=r,l={edgeId:r.id,source:s,target:o,sourceHandle:i,targetHandle:a},u=`${s}-${i}--${o}-${a}`,d=`${o}-${a}--${s}-${i}`;Xg("source",l,d,e,s,i),Xg("target",l,u,e,o,a),t.set(r.id,r)}}function u1(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:u1(n,t):!1}function Yg(e,t,n){var s;let r=e;do{if((s=r==null?void 0:r.matches)!=null&&s.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function wL(e,t,n,r){const s=new Map;for(const[o,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!u1(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(o);a&&s.set(o,{id:o,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return s}function Gc({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var i,a,l;const s=[];for(const[u,d]of t){const c=(i=n.get(u))==null?void 0:i.internals.userNode;c&&s.push({...c,position:d.position,dragging:r})}if(!e)return[s[0],s];const o=(a=n.get(e))==null?void 0:a.internals.userNode;return[o?{...o,position:((l=t.get(e))==null?void 0:l.position)||o.position,dragging:r}:s[0],s]}function SL({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const o={x:n-s.distance.x,y:r-s.distance.y},i=_a(o,t);return{x:i.x-o.x,y:i.y-o.y}}function _L({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let o={x:null,y:null},i=0,a=new Map,l=!1,u={x:0,y:0},d=null,c=!1,f=null,m=!1,p=!1,x=null;function w({noDragClassName:v,handleSelector:y,domNode:S,isSelectable:E,nodeId:_,nodeClickDistance:b=0}){f=Nt(S);function C({x:j,y:O}){const{nodeLookup:k,nodeExtent:D,snapGrid:I,snapToGrid:F,nodeOrigin:N,onNodeDrag:T,onSelectionDrag:z,onError:B,updateNodePositions:H}=t();o={x:j,y:O};let K=!1;const V=a.size>1,X=V&&D?bf(Sa(a)):null,Q=V&&F?SL({dragItems:a,snapGrid:I,x:j,y:O}):null;for(const[Y,W]of a){if(!k.has(Y))continue;let Z={x:j-W.distance.x,y:O-W.distance.y};F&&(Z=Q?{x:Math.round(Z.x+Q.x),y:Math.round(Z.y+Q.y)}:_a(Z,I));let oe=null;if(V&&D&&!W.extent&&X){const{positionAbsolute:te}=W.internals,he=te.x-X.x+D[0][0],ye=te.x+W.measured.width-X.x2+D[1][0],ce=te.y-X.y+D[0][1],$e=te.y+W.measured.height-X.y2+D[1][1];oe=[[he,ce],[ye,$e]]}const{position:re,positionAbsolute:J}=qw({nodeId:Y,nextPosition:Z,nodeLookup:k,nodeExtent:oe||D,nodeOrigin:N,onError:B});K=K||W.position.x!==re.x||W.position.y!==re.y,W.position=re,W.internals.positionAbsolute=J}if(p=p||K,!!K&&(H(a,!0),x&&(r||T||!_&&z))){const[Y,W]=Gc({nodeId:_,dragItems:a,nodeLookup:k});r==null||r(x,a,Y,W),T==null||T(x,Y,W),_||z==null||z(x,W)}}async function L(){if(!d)return;const{transform:j,panBy:O,autoPanSpeed:k,autoPanOnNodeDrag:D}=t();if(!D){l=!1,cancelAnimationFrame(i);return}const[I,F]=Gw(u,d,k);(I!==0||F!==0)&&(o.x=(o.x??0)-I/j[2],o.y=(o.y??0)-F/j[2],await O({x:I,y:F})&&C(o)),i=requestAnimationFrame(L)}function M(j){var V;const{nodeLookup:O,multiSelectionActive:k,nodesDraggable:D,transform:I,snapGrid:F,snapToGrid:N,selectNodesOnDrag:T,onNodeDragStart:z,onSelectionDragStart:B,unselectNodesAndEdges:H}=t();c=!0,(!T||!E)&&!k&&_&&((V=O.get(_))!=null&&V.selected||H()),E&&T&&_&&(e==null||e(_));const K=Ei(j.sourceEvent,{transform:I,snapGrid:F,snapToGrid:N,containerBounds:d});if(o=K,a=wL(O,D,K,_),a.size>0&&(n||z||!_&&B)){const[X,Q]=Gc({nodeId:_,dragItems:a,nodeLookup:O});n==null||n(j.sourceEvent,a,X,Q),z==null||z(j.sourceEvent,X,Q),_||B==null||B(j.sourceEvent,Q)}}const P=Nw().clickDistance(b).on("start",j=>{const{domNode:O,nodeDragThreshold:k,transform:D,snapGrid:I,snapToGrid:F}=t();d=(O==null?void 0:O.getBoundingClientRect())||null,m=!1,p=!1,x=j.sourceEvent,k===0&&M(j),o=Ei(j.sourceEvent,{transform:D,snapGrid:I,snapToGrid:F,containerBounds:d}),u=tn(j.sourceEvent,d)}).on("drag",j=>{const{autoPanOnNodeDrag:O,transform:k,snapGrid:D,snapToGrid:I,nodeDragThreshold:F,nodeLookup:N}=t(),T=Ei(j.sourceEvent,{transform:k,snapGrid:D,snapToGrid:I,containerBounds:d});if(x=j.sourceEvent,(j.sourceEvent.type==="touchmove"&&j.sourceEvent.touches.length>1||_&&!N.has(_))&&(m=!0),!m){if(!l&&O&&c&&(l=!0,L()),!c){const z=tn(j.sourceEvent,d),B=z.x-u.x,H=z.y-u.y;Math.sqrt(B*B+H*H)>F&&M(j)}(o.x!==T.xSnapped||o.y!==T.ySnapped)&&a&&c&&(u=tn(j.sourceEvent,d),C(T))}}).on("end",j=>{if(!(!c||m)&&(l=!1,c=!1,cancelAnimationFrame(i),a.size>0)){const{nodeLookup:O,updateNodePositions:k,onNodeDragStop:D,onSelectionDragStop:I}=t();if(p&&(k(a,!1),p=!1),s||D||!_&&I){const[F,N]=Gc({nodeId:_,dragItems:a,nodeLookup:O,dragging:!1});s==null||s(j.sourceEvent,a,F,N),D==null||D(j.sourceEvent,F,N),_||I==null||I(j.sourceEvent,N)}}}).filter(j=>{const O=j.target;return!j.button&&(!v||!Yg(O,`.${v}`,S))&&(!y||Yg(O,y,S))});f.call(P)}function g(){f==null||f.on(".drag",null)}return{update:w,destroy:g}}function bL(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())Zi(s,Po(o))>0&&r.push(o);return r}const EL=250;function CL(e,t,n,r){var a,l;let s=[],o=1/0;const i=bL(e,n,t+EL);for(const u of i){const d=[...((a=u.internals.handleBounds)==null?void 0:a.source)??[],...((l=u.internals.handleBounds)==null?void 0:l.target)??[]];for(const c of d){if(r.nodeId===c.nodeId&&r.type===c.type&&r.id===c.id)continue;const{x:f,y:m}=_s(u,c,c.position,!0),p=Math.sqrt(Math.pow(f-e.x,2)+Math.pow(m-e.y,2));p>t||(p<o?(s=[{...c,x:f,y:m}],o=p):p===o&&s.push({...c,x:f,y:m}))}}if(!s.length)return null;if(s.length>1){const u=r.type==="source"?"target":"source";return s.find(d=>d.type===u)??s[0]}return s[0]}function c1(e,t,n,r,s,o=!1){var u,d,c;const i=r.get(e);if(!i)return null;const a=s==="strict"?(u=i.internals.handleBounds)==null?void 0:u[t]:[...((d=i.internals.handleBounds)==null?void 0:d.source)??[],...((c=i.internals.handleBounds)==null?void 0:c.target)??[]],l=(n?a==null?void 0:a.find(f=>f.id===n):a==null?void 0:a[0])??null;return l&&o?{...l,..._s(i,l,l.position,!0)}:l}function d1(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function NL(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const f1=()=>!0;function kL(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:o,isTarget:i,domNode:a,nodeLookup:l,lib:u,autoPanOnConnect:d,flowId:c,panBy:f,cancelConnection:m,onConnectStart:p,onConnect:x,onConnectEnd:w,isValidConnection:g=f1,onReconnectEnd:v,updateConnection:y,getTransform:S,getFromHandle:E,autoPanSpeed:_,dragThreshold:b=1,handleDomNode:C}){const L=Jw(e.target);let M=0,P;const{x:j,y:O}=tn(e),k=d1(o,C),D=a==null?void 0:a.getBoundingClientRect();let I=!1;if(!D||!k)return;const F=c1(s,k,r,l,t);if(!F)return;let N=tn(e,D),T=!1,z=null,B=!1,H=null;function K(){if(!d||!D)return;const[re,J]=Gw(N,D,_);f({x:re,y:J}),M=requestAnimationFrame(K)}const V={...F,nodeId:s,type:k,position:F.position},X=l.get(s);let Y={inProgress:!0,isValid:null,from:_s(X,V,ee.Left,!0),fromHandle:V,fromPosition:V.position,fromNode:X,to:N,toHandle:null,toPosition:zg[V.position],toNode:null,pointer:N};function W(){I=!0,y(Y),p==null||p(e,{nodeId:s,handleId:r,handleType:k})}b===0&&W();function Z(re){if(!I){const{x:$e,y:un}=tn(re),dt=$e-j,At=un-O;if(!(dt*dt+At*At>b*b))return;W()}if(!E()||!V){oe(re);return}const J=S();N=tn(re,D),P=CL(ba(N,J,!1,[1,1]),n,l,V),T||(K(),T=!0);const te=h1(re,{handle:P,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:g,doc:L,lib:u,flowId:c,nodeLookup:l});H=te.handleDomNode,z=te.connection,B=NL(!!P,te.isValid);const he=l.get(s),ye=he?_s(he,V,ee.Left,!0):Y.from,ce={...Y,from:ye,isValid:B,to:te.toHandle&&B?yu({x:te.toHandle.x,y:te.toHandle.y},J):N,toHandle:te.toHandle,toPosition:B&&te.toHandle?te.toHandle.position:zg[V.position],toNode:te.toHandle?l.get(te.toHandle.nodeId):null,pointer:N};y(ce),Y=ce}function oe(re){if(!("touches"in re&&re.touches.length>0)){if(I){(P||H)&&z&&B&&(x==null||x(z));const{inProgress:J,...te}=Y,he={...te,toPosition:Y.toHandle?Y.toPosition:null};w==null||w(re,he),o&&(v==null||v(re,he))}m(),cancelAnimationFrame(M),T=!1,B=!1,z=null,H=null,L.removeEventListener("mousemove",Z),L.removeEventListener("mouseup",oe),L.removeEventListener("touchmove",Z),L.removeEventListener("touchend",oe)}}L.addEventListener("mousemove",Z),L.addEventListener("mouseup",oe),L.addEventListener("touchmove",Z),L.addEventListener("touchend",oe)}function h1(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:o,doc:i,lib:a,flowId:l,isValidConnection:u=f1,nodeLookup:d}){const c=o==="target",f=t?i.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:m,y:p}=tn(e),x=i.elementFromPoint(m,p),w=x!=null&&x.classList.contains(`${a}-flow__handle`)?x:f,g={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const v=d1(void 0,w),y=w.getAttribute("data-nodeid"),S=w.getAttribute("data-handleid"),E=w.classList.contains("connectable"),_=w.classList.contains("connectableend");if(!y||!v)return g;const b={source:c?y:r,sourceHandle:c?S:s,target:c?r:y,targetHandle:c?s:S};g.connection=b;const L=E&&_&&(n===No.Strict?c&&v==="source"||!c&&v==="target":y!==r||S!==s);g.isValid=L&&u(b),g.toHandle=c1(y,v,S,d,n,!0)}return g}const kf={onPointerDown:kL,isValid:h1};function PL({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Nt(e);function o({translateExtent:a,width:l,height:u,zoomStep:d=1,pannable:c=!0,zoomable:f=!0,inversePan:m=!1}){const p=y=>{if(y.sourceEvent.type!=="wheel"||!t)return;const S=n(),E=y.sourceEvent.ctrlKey&&Ji()?10:1,_=-y.sourceEvent.deltaY*(y.sourceEvent.deltaMode===1?.05:y.sourceEvent.deltaMode?1:.002)*d,b=S[2]*Math.pow(2,_*E);t.scaleTo(b)};let x=[0,0];const w=y=>{(y.sourceEvent.type==="mousedown"||y.sourceEvent.type==="touchstart")&&(x=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY])},g=y=>{const S=n();if(y.sourceEvent.type!=="mousemove"&&y.sourceEvent.type!=="touchmove"||!t)return;const E=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY],_=[E[0]-x[0],E[1]-x[1]];x=E;const b=r()*Math.max(S[2],Math.log(S[2]))*(m?-1:1),C={x:S[0]-_[0]*b,y:S[1]-_[1]*b},L=[[0,0],[l,u]];t.setViewportConstrained({x:C.x,y:C.y,zoom:S[2]},L,a)},v=Bw().on("start",w).on("zoom",c?g:null).on("zoom.wheel",f?p:null);s.call(v,{})}function i(){s.on("zoom",null)}return{update:o,destroy:i,pointer:Yt}}const Zu=e=>({x:e.x,y:e.y,zoom:e.k}),Xc=({x:e,y:t,zoom:n})=>Gu.translate(e,t).scale(n),Bs=(e,t)=>e.target.closest(`.${t}`),p1=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),RL=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Yc=(e,t=0,n=RL,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},m1=e=>{const t=e.ctrlKey&&Ji()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function jL({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(Bs(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const c=n.property("__zoom").k||1;if(d.ctrlKey&&i){const w=Yt(d),g=m1(d),v=c*Math.pow(2,g);r.scaleTo(n,v,w,d);return}const f=d.deltaMode===1?20:1;let m=s===as.Vertical?0:d.deltaX*f,p=s===as.Horizontal?0:d.deltaY*f;!Ji()&&d.shiftKey&&s!==as.Vertical&&(m=d.deltaY*f,p=0),r.translateBy(n,-(m/c)*o,-(p/c)*o,{internal:!0});const x=Zu(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,x),e.panScrollTimeout=setTimeout(()=>{u==null||u(d,x),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,x))}}function ML({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const o=r.type==="wheel",i=!t&&o&&!r.ctrlKey,a=Bs(r,e);if(r.ctrlKey&&o&&a&&r.preventDefault(),i||a)return null;r.preventDefault(),n.call(this,r,s)}}function TL({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var o,i,a;if((o=r.sourceEvent)!=null&&o.internal)return;const s=Zu(r.transform);e.mouseButton=((i=r.sourceEvent)==null?void 0:i.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=s,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,s))}}function LL({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return o=>{var i,a;e.usedRightMouseButton=!!(n&&p1(t,e.mouseButton??0)),(i=o.sourceEvent)!=null&&i.sync||r([o.transform.x,o.transform.y,o.transform.k]),s&&!((a=o.sourceEvent)!=null&&a.internal)&&(s==null||s(o.sourceEvent,Zu(o.transform)))}}function IL({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:o}){return i=>{var a;if(!((a=i.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,o&&p1(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&o(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=Zu(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s==null||s(i.sourceEvent,l)},n?150:0)}}}function AL({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:o,userSelectionActive:i,noWheelClassName:a,noPanClassName:l,lib:u,connectionInProgress:d}){return c=>{var w;const f=e||t,m=n&&c.ctrlKey,p=c.type==="wheel";if(c.button===1&&c.type==="mousedown"&&(Bs(c,`${u}-flow__node`)||Bs(c,`${u}-flow__edge`)))return!0;if(!r&&!f&&!s&&!o&&!n||i||d&&!p||Bs(c,a)&&p||Bs(c,l)&&(!p||s&&p&&!e)||!n&&c.ctrlKey&&p)return!1;if(!n&&c.type==="touchstart"&&((w=c.touches)==null?void 0:w.length)>1)return c.preventDefault(),!1;if(!f&&!s&&!m&&p||!r&&(c.type==="mousedown"||c.type==="touchstart")||Array.isArray(r)&&!r.includes(c.button)&&c.type==="mousedown")return!1;const x=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||p)&&x}}function OL({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:o,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:l}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),c=Bw().scaleExtent([t,n]).translateExtent(r),f=Nt(e).call(c);v({x:s.x,y:s.y,zoom:ko(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const m=f.on("wheel.zoom"),p=f.on("dblclick.zoom");c.wheelDelta(m1);function x(P,j){return f?new Promise(O=>{c==null||c.interpolate((j==null?void 0:j.interpolate)==="linear"?bi:bl).transform(Yc(f,j==null?void 0:j.duration,j==null?void 0:j.ease,()=>O(!0)),P)}):Promise.resolve(!1)}function w({noWheelClassName:P,noPanClassName:j,onPaneContextMenu:O,userSelectionActive:k,panOnScroll:D,panOnDrag:I,panOnScrollMode:F,panOnScrollSpeed:N,preventScrolling:T,zoomOnPinch:z,zoomOnScroll:B,zoomOnDoubleClick:H,zoomActivationKeyPressed:K,lib:V,onTransformChange:X,connectionInProgress:Q,paneClickDistance:Y,selectionOnDrag:W}){k&&!u.isZoomingOrPanning&&g();const Z=D&&!K&&!k;c.clickDistance(W?1/0:!en(Y)||Y<0?0:Y);const oe=Z?jL({zoomPanValues:u,noWheelClassName:P,d3Selection:f,d3Zoom:c,panOnScrollMode:F,panOnScrollSpeed:N,zoomOnPinch:z,onPanZoomStart:i,onPanZoom:o,onPanZoomEnd:a}):ML({noWheelClassName:P,preventScrolling:T,d3ZoomHandler:m});if(f.on("wheel.zoom",oe,{passive:!1}),!k){const J=TL({zoomPanValues:u,onDraggingChange:l,onPanZoomStart:i});c.on("start",J);const te=LL({zoomPanValues:u,panOnDrag:I,onPaneContextMenu:!!O,onPanZoom:o,onTransformChange:X});c.on("zoom",te);const he=IL({zoomPanValues:u,panOnDrag:I,panOnScroll:D,onPaneContextMenu:O,onPanZoomEnd:a,onDraggingChange:l});c.on("end",he)}const re=AL({zoomActivationKeyPressed:K,panOnDrag:I,zoomOnScroll:B,panOnScroll:D,zoomOnDoubleClick:H,zoomOnPinch:z,userSelectionActive:k,noPanClassName:j,noWheelClassName:P,lib:V,connectionInProgress:Q});c.filter(re),H?f.on("dblclick.zoom",p):f.on("dblclick.zoom",null)}function g(){c.on("zoom",null)}async function v(P,j,O){const k=Xc(P),D=c==null?void 0:c.constrain()(k,j,O);return D&&await x(D),new Promise(I=>I(D))}async function y(P,j){const O=Xc(P);return await x(O,j),new Promise(k=>k(O))}function S(P){if(f){const j=Xc(P),O=f.property("__zoom");(O.k!==P.zoom||O.x!==P.x||O.y!==P.y)&&(c==null||c.transform(f,j,null,{sync:!0}))}}function E(){const P=f?$w(f.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}function _(P,j){return f?new Promise(O=>{c==null||c.interpolate((j==null?void 0:j.interpolate)==="linear"?bi:bl).scaleTo(Yc(f,j==null?void 0:j.duration,j==null?void 0:j.ease,()=>O(!0)),P)}):Promise.resolve(!1)}function b(P,j){return f?new Promise(O=>{c==null||c.interpolate((j==null?void 0:j.interpolate)==="linear"?bi:bl).scaleBy(Yc(f,j==null?void 0:j.duration,j==null?void 0:j.ease,()=>O(!0)),P)}):Promise.resolve(!1)}function C(P){c==null||c.scaleExtent(P)}function L(P){c==null||c.translateExtent(P)}function M(P){const j=!en(P)||P<0?0:P;c==null||c.clickDistance(j)}return{update:w,destroy:g,setViewport:y,setViewportConstrained:v,getViewport:E,scaleTo:_,scaleBy:b,setScaleExtent:C,setTranslateExtent:L,syncViewport:S,setClickDistance:M}}var jo;(function(e){e.Line="line",e.Handle="handle"})(jo||(jo={}));function FL({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:o}){const i=e-t,a=n-r,l=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&s&&(l[0]=l[0]*-1),a&&o&&(l[1]=l[1]*-1),l}function Zg(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:s}}function Xn(e,t){return Math.max(0,t-e)}function Yn(e,t){return Math.max(0,e-t)}function nl(e,t,n){return Math.max(0,t-e,e-n)}function Jg(e,t){return e?!t:t}function DL(e,t,n,r,s,o,i,a){let{affectsX:l,affectsY:u}=t;const{isHorizontal:d,isVertical:c}=t,f=d&&c,{xSnapped:m,ySnapped:p}=n,{minWidth:x,maxWidth:w,minHeight:g,maxHeight:v}=r,{x:y,y:S,width:E,height:_,aspectRatio:b}=e;let C=Math.floor(d?m-e.pointerX:0),L=Math.floor(c?p-e.pointerY:0);const M=E+(l?-C:C),P=_+(u?-L:L),j=-o[0]*E,O=-o[1]*_;let k=nl(M,x,w),D=nl(P,g,v);if(i){let N=0,T=0;l&&C<0?N=Xn(y+C+j,i[0][0]):!l&&C>0&&(N=Yn(y+M+j,i[1][0])),u&&L<0?T=Xn(S+L+O,i[0][1]):!u&&L>0&&(T=Yn(S+P+O,i[1][1])),k=Math.max(k,N),D=Math.max(D,T)}if(a){let N=0,T=0;l&&C>0?N=Yn(y+C,a[0][0]):!l&&C<0&&(N=Xn(y+M,a[1][0])),u&&L>0?T=Yn(S+L,a[0][1]):!u&&L<0&&(T=Xn(S+P,a[1][1])),k=Math.max(k,N),D=Math.max(D,T)}if(s){if(d){const N=nl(M/b,g,v)*b;if(k=Math.max(k,N),i){let T=0;!l&&!u||l&&!u&&f?T=Yn(S+O+M/b,i[1][1])*b:T=Xn(S+O+(l?C:-C)/b,i[0][1])*b,k=Math.max(k,T)}if(a){let T=0;!l&&!u||l&&!u&&f?T=Xn(S+M/b,a[1][1])*b:T=Yn(S+(l?C:-C)/b,a[0][1])*b,k=Math.max(k,T)}}if(c){const N=nl(P*b,x,w)/b;if(D=Math.max(D,N),i){let T=0;!l&&!u||u&&!l&&f?T=Yn(y+P*b+j,i[1][0])/b:T=Xn(y+(u?L:-L)*b+j,i[0][0])/b,D=Math.max(D,T)}if(a){let T=0;!l&&!u||u&&!l&&f?T=Xn(y+P*b,a[1][0])/b:T=Yn(y+(u?L:-L)*b,a[0][0])/b,D=Math.max(D,T)}}}L=L+(L<0?D:-D),C=C+(C<0?k:-k),s&&(f?M>P*b?L=(Jg(l,u)?-C:C)/b:C=(Jg(l,u)?-L:L)*b:d?(L=C/b,u=l):(C=L*b,l=u));const I=l?y+C:y,F=u?S+L:S;return{width:E+(l?-C:C),height:_+(u?-L:L),x:o[0]*C*(l?-1:1)+I,y:o[1]*L*(u?-1:1)+F}}const g1={width:0,height:0,x:0,y:0},zL={...g1,pointerX:0,pointerY:0,aspectRatio:1};function $L(e){return[[0,0],[e.measured.width,e.measured.height]]}function BL(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,i=e.measured.height??0,a=n[0]*o,l=n[1]*i;return[[r-a,s-l],[r+o-a,s+i-l]]}function HL({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const o=Nt(e);let i={controlDirection:Zg("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:u,boundaries:d,keepAspectRatio:c,resizeDirection:f,onResizeStart:m,onResize:p,onResizeEnd:x,shouldResize:w}){let g={...g1},v={...zL};i={boundaries:d,resizeDirection:f,keepAspectRatio:c,controlDirection:Zg(u)};let y,S=null,E=[],_,b,C,L=!1;const M=Nw().on("start",P=>{const{nodeLookup:j,transform:O,snapGrid:k,snapToGrid:D,nodeOrigin:I,paneDomNode:F}=n();if(y=j.get(t),!y)return;S=(F==null?void 0:F.getBoundingClientRect())??null;const{xSnapped:N,ySnapped:T}=Ei(P.sourceEvent,{transform:O,snapGrid:k,snapToGrid:D,containerBounds:S});g={width:y.measured.width??0,height:y.measured.height??0,x:y.position.x??0,y:y.position.y??0},v={...g,pointerX:N,pointerY:T,aspectRatio:g.width/g.height},_=void 0,y.parentId&&(y.extent==="parent"||y.expandParent)&&(_=j.get(y.parentId),b=_&&y.extent==="parent"?$L(_):void 0),E=[],C=void 0;for(const[z,B]of j)if(B.parentId===t&&(E.push({id:z,position:{...B.position},extent:B.extent}),B.extent==="parent"||B.expandParent)){const H=BL(B,y,B.origin??I);C?C=[[Math.min(H[0][0],C[0][0]),Math.min(H[0][1],C[0][1])],[Math.max(H[1][0],C[1][0]),Math.max(H[1][1],C[1][1])]]:C=H}m==null||m(P,{...g})}).on("drag",P=>{const{transform:j,snapGrid:O,snapToGrid:k,nodeOrigin:D}=n(),I=Ei(P.sourceEvent,{transform:j,snapGrid:O,snapToGrid:k,containerBounds:S}),F=[];if(!y)return;const{x:N,y:T,width:z,height:B}=g,H={},K=y.origin??D,{width:V,height:X,x:Q,y:Y}=DL(v,i.controlDirection,I,i.boundaries,i.keepAspectRatio,K,b,C),W=V!==z,Z=X!==B,oe=Q!==N&&W,re=Y!==T&&Z;if(!oe&&!re&&!W&&!Z)return;if((oe||re||K[0]===1||K[1]===1)&&(H.x=oe?Q:g.x,H.y=re?Y:g.y,g.x=H.x,g.y=H.y,E.length>0)){const ye=Q-N,ce=Y-T;for(const $e of E)$e.position={x:$e.position.x-ye+K[0]*(V-z),y:$e.position.y-ce+K[1]*(X-B)},F.push($e)}if((W||Z)&&(H.width=W&&(!i.resizeDirection||i.resizeDirection==="horizontal")?V:g.width,H.height=Z&&(!i.resizeDirection||i.resizeDirection==="vertical")?X:g.height,g.width=H.width,g.height=H.height),_&&y.expandParent){const ye=K[0]*(H.width??0);H.x&&H.x<ye&&(g.x=ye,v.x=v.x-(H.x-ye));const ce=K[1]*(H.height??0);H.y&&H.y<ce&&(g.y=ce,v.y=v.y-(H.y-ce))}const J=FL({width:g.width,prevWidth:z,height:g.height,prevHeight:B,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),te={...g,direction:J};(w==null?void 0:w(P,te))!==!1&&(L=!0,p==null||p(P,te),r(H,F))}).on("end",P=>{L&&(x==null||x(P,{...g}),s==null||s({...g}),L=!1)});o.call(M)}function l(){o.on(".drag",null)}return{update:a,destroy:l}}const UL={},ey=e=>{let t;const n=new Set,r=(d,c)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const m=t;t=c??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(p=>p(t,m))}},s=()=>t,l={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(UL?"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,s,l);return l},VL=e=>e?ey(e):ey,{useDebugValue:WL}=ls,{useSyncExternalStoreWithSelector:KL}=IN,qL=e=>e;function y1(e,t=qL,n){const r=KL(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return WL(r),r}const ty=(e,t)=>{const n=VL(e),r=(s,o=t)=>y1(n,s,o);return Object.assign(r,n),r},QL=(e,t)=>e?ty(e,t):ty;function Ee(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,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Ju=R.createContext(null),GL=Ju.Provider,x1=bn.error001();function fe(e,t){const n=R.useContext(Ju);if(n===null)throw new Error(x1);return y1(n,e,t)}function Ce(){const e=R.useContext(Ju);if(e===null)throw new Error(x1);return R.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const ny={display:"none"},XL={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},v1="react-flow__node-desc",w1="react-flow__edge-desc",YL="react-flow__aria-live",ZL=e=>e.ariaLiveMessage,JL=e=>e.ariaLabelConfig;function eI({rfId:e}){const t=fe(ZL);return h.jsx("div",{id:`${YL}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:XL,children:t})}function tI({rfId:e,disableKeyboardA11y:t}){const n=fe(JL);return h.jsxs(h.Fragment,{children:[h.jsx("div",{id:`${v1}-${e}`,style:ny,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),h.jsx("div",{id:`${w1}-${e}`,style:ny,children:n["edge.a11yDescription.default"]}),!t&&h.jsx(eI,{rfId:e})]})}const Ea=R.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},o)=>{const i=`${e}`.split("-");return h.jsx("div",{className:Oe(["react-flow__panel",n,...i]),style:r,ref:o,...s,children:t})});Ea.displayName="Panel";function nI({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:h.jsx(Ea,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:h.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const rI=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},rl=e=>e.id;function sI(e,t){return Ee(e.selectedNodes.map(rl),t.selectedNodes.map(rl))&&Ee(e.selectedEdges.map(rl),t.selectedEdges.map(rl))}function oI({onSelectionChange:e}){const t=Ce(),{selectedNodes:n,selectedEdges:r}=fe(rI,sI);return R.useEffect(()=>{const s={nodes:n,edges:r};e==null||e(s),t.getState().onSelectionChangeHandlers.forEach(o=>o(s))},[n,r,e]),null}const iI=e=>!!e.onSelectionChangeHandlers;function aI({onSelectionChange:e}){const t=fe(iI);return e||t?h.jsx(oI,{onSelectionChange:e}):null}const S1=[0,0],lI={x:0,y:0,zoom:1},uI=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],ry=[...uI,"rfId"],cI=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),sy={translateExtent:Xi,nodeOrigin:S1,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function dI(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:o,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=fe(cI,Ee),u=Ce();R.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=sy,a()}),[]);const d=R.useRef(sy);return R.useEffect(()=>{for(const c of ry){const f=e[c],m=d.current[c];f!==m&&(typeof e[c]>"u"||(c==="nodes"?t(f):c==="edges"?n(f):c==="minZoom"?r(f):c==="maxZoom"?s(f):c==="translateExtent"?o(f):c==="nodeExtent"?i(f):c==="ariaLabelConfig"?u.setState({ariaLabelConfig:eL(f)}):c==="fitView"?u.setState({fitViewQueued:f}):c==="fitViewOptions"?u.setState({fitViewOptions:f}):u.setState({[c]:f})))}d.current=e},ry.map(c=>e[c])),null}function oy(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function fI(e){var r;const[t,n]=R.useState(e==="system"?null:e);return R.useEffect(()=>{if(e!=="system"){n(e);return}const s=oy(),o=()=>n(s!=null&&s.matches?"dark":"light");return o(),s==null||s.addEventListener("change",o),()=>{s==null||s.removeEventListener("change",o)}},[e]),t!==null?t:(r=oy())!=null&&r.matches?"dark":"light"}const iy=typeof document<"u"?document:null;function ea(e=null,t={target:iy,actInsideInputWithModifier:!0}){const[n,r]=R.useState(!1),s=R.useRef(!1),o=R.useRef(new Set([])),[i,a]=R.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(c=>typeof c=="string").map(c=>c.replace("+",`
|
|
61
|
+
`+o):r.stack=o}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=ys(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:o}=n;r!==void 0&&Sl.assertOptions(r,{silentJSONParsing:dn.transitional(dn.boolean),forcedJSONParsing:dn.transitional(dn.boolean),clarifyTimeoutError:dn.transitional(dn.boolean)},!1),s!=null&&($.isFunction(s)?n.paramsSerializer={serialize:s}:Sl.assertOptions(s,{encode:dn.function,serialize:dn.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Sl.assertOptions(n,{baseUrl:dn.spelling("baseURL"),withXsrfToken:dn.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&$.merge(o.common,o[n.method]);o&&$.forEach(["delete","get","head","post","put","patch","common"],p=>{delete o[p]}),n.headers=bt.concat(i,o);const a=[];let l=!0;this.interceptors.request.forEach(function(x){typeof x.runWhen=="function"&&x.runWhen(n)===!1||(l=l&&x.synchronous,a.unshift(x.fulfilled,x.rejected))});const u=[];this.interceptors.response.forEach(function(x){u.push(x.fulfilled,x.rejected)});let d,c=0,f;if(!l){const p=[mg.bind(this),void 0];for(p.unshift(...a),p.push(...u),f=p.length,d=Promise.resolve(n);c<f;)d=d.then(p[c++],p[c++]);return d}f=a.length;let m=n;for(;c<f;){const p=a[c++],x=a[c++];try{m=p(m)}catch(w){x.call(this,w);break}}try{d=mg.call(this,m)}catch(p){return Promise.reject(p)}for(c=0,f=u.length;c<f;)d=d.then(u[c++],u[c++]);return d}getUri(t){t=ys(this.defaults,t);const n=Qv(t.baseURL,t.url,t.allowAbsoluteUrls);return Uv(n,t.params,t.paramsSerializer)}};$.forEach(["delete","get","head","options"],function(t){os.prototype[t]=function(n,r){return this.request(ys(r||{},{method:t,url:n,data:(r||{}).data}))}});$.forEach(["post","put","patch"],function(t){function n(r){return function(o,i,a){return this.request(ys(a||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:o,data:i}))}}os.prototype[t]=n(),os.prototype[t+"Form"]=n(!0)});let AP=class Jv{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(o){n=o});const r=this;this.promise.then(s=>{if(!r._listeners)return;let o=r._listeners.length;for(;o-- >0;)r._listeners[o](s);r._listeners=null}),this.promise.then=s=>{let o;const i=new Promise(a=>{r.subscribe(a),o=a}).then(s);return i.cancel=function(){r.unsubscribe(o)},i},t(function(o,i,a){r.reason||(r.reason=new Fo(o,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new Jv(function(s){t=s}),cancel:t}}};function OP(e){return function(n){return e.apply(null,n)}}function FP(e){return $.isObject(e)&&e.isAxiosError===!0}const hf={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(hf).forEach(([e,t])=>{hf[t]=e});function ew(e){const t=new os(e),n=Mv(os.prototype.request,t);return $.extend(n,os.prototype,t,{allOwnKeys:!0}),$.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return ew(ys(e,s))},n}const Te=ew(ga);Te.Axios=os;Te.CanceledError=Fo;Te.CancelToken=AP;Te.isCancel=Kv;Te.VERSION=Zv;Te.toFormData=Uu;Te.AxiosError=se;Te.Cancel=Te.CanceledError;Te.all=function(t){return Promise.all(t)};Te.spread=OP;Te.isAxiosError=FP;Te.mergeConfig=ys;Te.AxiosHeaders=bt;Te.formToJSON=e=>Wv($.isHTMLForm(e)?new FormData(e):e);Te.getAdapter=Yv.getAdapter;Te.HttpStatusCode=hf;Te.default=Te;const{Axios:z3,AxiosError:DP,CanceledError:$3,isCancel:B3,CancelToken:H3,VERSION:U3,all:V3,Cancel:W3,isAxiosError:K3,spread:q3,toFormData:Q3,AxiosHeaders:G3,HttpStatusCode:X3,formToJSON:Y3,getAdapter:Z3,mergeConfig:J3}=Te;function yg(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function zP(...e){return t=>{let n=!1;const r=e.map(s=>{const o=yg(s,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let s=0;s<r.length;s++){const o=r[s];typeof o=="function"?o():yg(e[s],null)}}}}var $P=Symbol.for("react.lazy"),lu=x_[" use ".trim().toString()];function BP(e){return typeof e=="object"&&e!==null&&"then"in e}function tw(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===$P&&"_payload"in e&&BP(e._payload)}function HP(e){const t=VP(e),n=R.forwardRef((r,s)=>{let{children:o,...i}=r;tw(o)&&typeof lu=="function"&&(o=lu(o._payload));const a=R.Children.toArray(o),l=a.find(KP);if(l){const u=l.props.children,d=a.map(c=>c===l?R.Children.count(u)>1?R.Children.only(null):R.isValidElement(u)?u.props.children:null:c);return h.jsx(t,{...i,ref:s,children:R.isValidElement(u)?R.cloneElement(u,void 0,d):null})}return h.jsx(t,{...i,ref:s,children:o})});return n.displayName=`${e}.Slot`,n}var UP=HP("Slot");function VP(e){const t=R.forwardRef((n,r)=>{let{children:s,...o}=n;if(tw(s)&&typeof lu=="function"&&(s=lu(s._payload)),R.isValidElement(s)){const i=QP(s),a=qP(o,s.props);return s.type!==R.Fragment&&(a.ref=r?zP(r,i):i),R.cloneElement(s,a)}return R.Children.count(s)>1?R.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var WP=Symbol("radix.slottable");function KP(e){return R.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===WP}function qP(e,t){const n={...t};for(const r in t){const s=e[r],o=t[r];/^on[A-Z]/.test(r)?s&&o?n[r]=(...a)=>{const l=o(...a);return s(...a),l}:s&&(n[r]=s):r==="style"?n[r]={...s,...o}:r==="className"&&(n[r]=[s,o].filter(Boolean).join(" "))}return{...e,...n}}function QP(e){var r,s;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(s=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function nw(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=nw(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function rw(){for(var e,t,n=0,r="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=nw(e))&&(r&&(r+=" "),r+=t);return r}const xg=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,vg=rw,sw=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return vg(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:s,defaultVariants:o}=t,i=Object.keys(s).map(u=>{const d=n==null?void 0:n[u],c=o==null?void 0:o[u];if(d===null)return null;const f=xg(d)||xg(c);return s[u][f]}),a=n&&Object.entries(n).reduce((u,d)=>{let[c,f]=d;return f===void 0||(u[c]=f),u},{}),l=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,d)=>{let{class:c,className:f,...m}=d;return Object.entries(m).every(p=>{let[x,w]=p;return Array.isArray(w)?w.includes({...o,...a}[x]):{...o,...a}[x]===w})?[...u,c,f]:u},[]);return vg(e,i,l,n==null?void 0:n.class,n==null?void 0:n.className)},Uh="-",GP=e=>{const t=YP(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:i=>{const a=i.split(Uh);return a[0]===""&&a.length!==1&&a.shift(),ow(a,t)||XP(i)},getConflictingClassGroupIds:(i,a)=>{const l=n[i]||[];return a&&r[i]?[...l,...r[i]]:l}}},ow=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),s=r?ow(e.slice(1),r):void 0;if(s)return s;if(t.validators.length===0)return;const o=e.join(Uh);return(i=t.validators.find(({validator:a})=>a(o)))==null?void 0:i.classGroupId},wg=/^\[(.+)\]$/,XP=e=>{if(wg.test(e)){const t=wg.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},YP=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return JP(Object.entries(e.classGroups),n).forEach(([o,i])=>{pf(i,r,o,t)}),r},pf=(e,t,n,r)=>{e.forEach(s=>{if(typeof s=="string"){const o=s===""?t:Sg(t,s);o.classGroupId=n;return}if(typeof s=="function"){if(ZP(s)){pf(s(r),t,n,r);return}t.validators.push({validator:s,classGroupId:n});return}Object.entries(s).forEach(([o,i])=>{pf(i,Sg(t,o),n,r)})})},Sg=(e,t)=>{let n=e;return t.split(Uh).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},ZP=e=>e.isThemeGetter,JP=(e,t)=>t?e.map(([n,r])=>{const s=r.map(o=>typeof o=="string"?t+o:typeof o=="object"?Object.fromEntries(Object.entries(o).map(([i,a])=>[t+i,a])):o);return[n,s]}):e,eR=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const s=(o,i)=>{n.set(o,i),t++,t>e&&(t=0,r=n,n=new Map)};return{get(o){let i=n.get(o);if(i!==void 0)return i;if((i=r.get(o))!==void 0)return s(o,i),i},set(o,i){n.has(o)?n.set(o,i):s(o,i)}}},iw="!",tR=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,s=t[0],o=t.length,i=a=>{const l=[];let u=0,d=0,c;for(let w=0;w<a.length;w++){let g=a[w];if(u===0){if(g===s&&(r||a.slice(w,w+o)===t)){l.push(a.slice(d,w)),d=w+o;continue}if(g==="/"){c=w;continue}}g==="["?u++:g==="]"&&u--}const f=l.length===0?a:a.substring(d),m=f.startsWith(iw),p=m?f.substring(1):f,x=c&&c>d?c-d:void 0;return{modifiers:l,hasImportantModifier:m,baseClassName:p,maybePostfixModifierPosition:x}};return n?a=>n({className:a,parseClassName:i}):i},nR=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},rR=e=>({cache:eR(e.cacheSize),parseClassName:tR(e),...GP(e)}),sR=/\s+/,oR=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:s}=t,o=[],i=e.trim().split(sR);let a="";for(let l=i.length-1;l>=0;l-=1){const u=i[l],{modifiers:d,hasImportantModifier:c,baseClassName:f,maybePostfixModifierPosition:m}=n(u);let p=!!m,x=r(p?f.substring(0,m):f);if(!x){if(!p){a=u+(a.length>0?" "+a:a);continue}if(x=r(f),!x){a=u+(a.length>0?" "+a:a);continue}p=!1}const w=nR(d).join(":"),g=c?w+iw:w,v=g+x;if(o.includes(v))continue;o.push(v);const y=s(x,p);for(let S=0;S<y.length;++S){const E=y[S];o.push(g+E)}a=u+(a.length>0?" "+a:a)}return a};function iR(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=aw(t))&&(r&&(r+=" "),r+=n);return r}const aw=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=aw(e[r]))&&(n&&(n+=" "),n+=t);return n};function aR(e,...t){let n,r,s,o=i;function i(l){const u=t.reduce((d,c)=>c(d),e());return n=rR(u),r=n.cache.get,s=n.cache.set,o=a,a(l)}function a(l){const u=r(l);if(u)return u;const d=oR(l,n);return s(l,d),d}return function(){return o(iR.apply(null,arguments))}}const ve=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},lw=/^\[(?:([a-z-]+):)?(.+)\]$/i,lR=/^\d+\/\d+$/,uR=new Set(["px","full","screen"]),cR=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,dR=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,fR=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,hR=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,pR=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Nn=e=>Xs(e)||uR.has(e)||lR.test(e),Qn=e=>Do(e,"length",_R),Xs=e=>!!e&&!Number.isNaN(Number(e)),Vc=e=>Do(e,"number",Xs),ei=e=>!!e&&Number.isInteger(Number(e)),mR=e=>e.endsWith("%")&&Xs(e.slice(0,-1)),ie=e=>lw.test(e),Gn=e=>cR.test(e),gR=new Set(["length","size","percentage"]),yR=e=>Do(e,gR,uw),xR=e=>Do(e,"position",uw),vR=new Set(["image","url"]),wR=e=>Do(e,vR,ER),SR=e=>Do(e,"",bR),ti=()=>!0,Do=(e,t,n)=>{const r=lw.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},_R=e=>dR.test(e)&&!fR.test(e),uw=()=>!1,bR=e=>hR.test(e),ER=e=>pR.test(e),CR=()=>{const e=ve("colors"),t=ve("spacing"),n=ve("blur"),r=ve("brightness"),s=ve("borderColor"),o=ve("borderRadius"),i=ve("borderSpacing"),a=ve("borderWidth"),l=ve("contrast"),u=ve("grayscale"),d=ve("hueRotate"),c=ve("invert"),f=ve("gap"),m=ve("gradientColorStops"),p=ve("gradientColorStopPositions"),x=ve("inset"),w=ve("margin"),g=ve("opacity"),v=ve("padding"),y=ve("saturate"),S=ve("scale"),E=ve("sepia"),_=ve("skew"),b=ve("space"),C=ve("translate"),L=()=>["auto","contain","none"],M=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto",ie,t],j=()=>[ie,t],O=()=>["",Nn,Qn],k=()=>["auto",Xs,ie],D=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],I=()=>["solid","dashed","dotted","double","none"],F=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],N=()=>["start","end","center","between","around","evenly","stretch"],T=()=>["","0",ie],z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>[Xs,ie];return{cacheSize:500,separator:":",theme:{colors:[ti],spacing:[Nn,Qn],blur:["none","",Gn,ie],brightness:B(),borderColor:[e],borderRadius:["none","","full",Gn,ie],borderSpacing:j(),borderWidth:O(),contrast:B(),grayscale:T(),hueRotate:B(),invert:T(),gap:j(),gradientColorStops:[e],gradientColorStopPositions:[mR,Qn],inset:P(),margin:P(),opacity:B(),padding:j(),saturate:B(),scale:B(),sepia:T(),skew:B(),space:j(),translate:j()},classGroups:{aspect:[{aspect:["auto","square","video",ie]}],container:["container"],columns:[{columns:[Gn]}],"break-after":[{"break-after":z()}],"break-before":[{"break-before":z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...D(),ie]}],overflow:[{overflow:M()}],"overflow-x":[{"overflow-x":M()}],"overflow-y":[{"overflow-y":M()}],overscroll:[{overscroll:L()}],"overscroll-x":[{"overscroll-x":L()}],"overscroll-y":[{"overscroll-y":L()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[x]}],"inset-x":[{"inset-x":[x]}],"inset-y":[{"inset-y":[x]}],start:[{start:[x]}],end:[{end:[x]}],top:[{top:[x]}],right:[{right:[x]}],bottom:[{bottom:[x]}],left:[{left:[x]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ei,ie]}],basis:[{basis:P()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",ie]}],grow:[{grow:T()}],shrink:[{shrink:T()}],order:[{order:["first","last","none",ei,ie]}],"grid-cols":[{"grid-cols":[ti]}],"col-start-end":[{col:["auto",{span:["full",ei,ie]},ie]}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":[ti]}],"row-start-end":[{row:["auto",{span:[ei,ie]},ie]}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",ie]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",ie]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:["normal",...N()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...N(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...N(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[b]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[b]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",ie,t]}],"min-w":[{"min-w":[ie,t,"min","max","fit"]}],"max-w":[{"max-w":[ie,t,"none","full","min","max","fit","prose",{screen:[Gn]},Gn]}],h:[{h:[ie,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[ie,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[ie,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[ie,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Gn,Qn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Vc]}],"font-family":[{font:[ti]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",ie]}],"line-clamp":[{"line-clamp":["none",Xs,Vc]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Nn,ie]}],"list-image":[{"list-image":["none",ie]}],"list-style-type":[{list:["none","disc","decimal",ie]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[g]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[g]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...I(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Nn,Qn]}],"underline-offset":[{"underline-offset":["auto",Nn,ie]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:j()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ie]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ie]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[g]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...D(),xR]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",yR]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},wR]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[p]}],"gradient-via-pos":[{via:[p]}],"gradient-to-pos":[{to:[p]}],"gradient-from":[{from:[m]}],"gradient-via":[{via:[m]}],"gradient-to":[{to:[m]}],rounded:[{rounded:[o]}],"rounded-s":[{"rounded-s":[o]}],"rounded-e":[{"rounded-e":[o]}],"rounded-t":[{"rounded-t":[o]}],"rounded-r":[{"rounded-r":[o]}],"rounded-b":[{"rounded-b":[o]}],"rounded-l":[{"rounded-l":[o]}],"rounded-ss":[{"rounded-ss":[o]}],"rounded-se":[{"rounded-se":[o]}],"rounded-ee":[{"rounded-ee":[o]}],"rounded-es":[{"rounded-es":[o]}],"rounded-tl":[{"rounded-tl":[o]}],"rounded-tr":[{"rounded-tr":[o]}],"rounded-br":[{"rounded-br":[o]}],"rounded-bl":[{"rounded-bl":[o]}],"border-w":[{border:[a]}],"border-w-x":[{"border-x":[a]}],"border-w-y":[{"border-y":[a]}],"border-w-s":[{"border-s":[a]}],"border-w-e":[{"border-e":[a]}],"border-w-t":[{"border-t":[a]}],"border-w-r":[{"border-r":[a]}],"border-w-b":[{"border-b":[a]}],"border-w-l":[{"border-l":[a]}],"border-opacity":[{"border-opacity":[g]}],"border-style":[{border:[...I(),"hidden"]}],"divide-x":[{"divide-x":[a]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[a]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[g]}],"divide-style":[{divide:I()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...I()]}],"outline-offset":[{"outline-offset":[Nn,ie]}],"outline-w":[{outline:[Nn,Qn]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:O()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[g]}],"ring-offset-w":[{"ring-offset":[Nn,Qn]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Gn,SR]}],"shadow-color":[{shadow:[ti]}],opacity:[{opacity:[g]}],"mix-blend":[{"mix-blend":[...F(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":F()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",Gn,ie]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[d]}],invert:[{invert:[c]}],saturate:[{saturate:[y]}],sepia:[{sepia:[E]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[d]}],"backdrop-invert":[{"backdrop-invert":[c]}],"backdrop-opacity":[{"backdrop-opacity":[g]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[E]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",ie]}],duration:[{duration:B()}],ease:[{ease:["linear","in","out","in-out",ie]}],delay:[{delay:B()}],animate:[{animate:["none","spin","ping","pulse","bounce",ie]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[S]}],"scale-x":[{"scale-x":[S]}],"scale-y":[{"scale-y":[S]}],rotate:[{rotate:[ei,ie]}],"translate-x":[{"translate-x":[C]}],"translate-y":[{"translate-y":[C]}],"skew-x":[{"skew-x":[_]}],"skew-y":[{"skew-y":[_]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",ie]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ie]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":j()}],"scroll-mx":[{"scroll-mx":j()}],"scroll-my":[{"scroll-my":j()}],"scroll-ms":[{"scroll-ms":j()}],"scroll-me":[{"scroll-me":j()}],"scroll-mt":[{"scroll-mt":j()}],"scroll-mr":[{"scroll-mr":j()}],"scroll-mb":[{"scroll-mb":j()}],"scroll-ml":[{"scroll-ml":j()}],"scroll-p":[{"scroll-p":j()}],"scroll-px":[{"scroll-px":j()}],"scroll-py":[{"scroll-py":j()}],"scroll-ps":[{"scroll-ps":j()}],"scroll-pe":[{"scroll-pe":j()}],"scroll-pt":[{"scroll-pt":j()}],"scroll-pr":[{"scroll-pr":j()}],"scroll-pb":[{"scroll-pb":j()}],"scroll-pl":[{"scroll-pl":j()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ie]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Nn,Qn,Vc]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},NR=aR(CR);function ze(...e){return NR(rw(e))}const kR=sw("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 ring-offset-background",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",ghost:"hover:bg-accent hover:text-accent-foreground",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}});function wn({className:e,variant:t,size:n,asChild:r=!1,...s}){const o=r?UP:"button";return h.jsx(o,{className:ze(kR({variant:t,size:n}),e),...s})}const ya=XN({component:PR});function PR(){return h.jsxs("div",{className:"min-h-screen flex flex-col bg-background",children:[h.jsxs("nav",{className:"px-8 py-4 border-b bg-card flex gap-6 items-center",children:[h.jsxs(Ue,{to:"/",className:"font-bold text-xl text-primary no-underline flex items-center gap-2",children:[h.jsxs("svg",{className:"w-7 h-7",viewBox:"0 0 32 32",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[h.jsx("rect",{width:"32",height:"32",rx:"6",fill:"#166534"}),h.jsx("path",{d:"M8 10h4v12H8V10zm6 0h4v12h-4V10zm6 0h4v12h-4V10z",fill:"#86efac"}),h.jsx("circle",{cx:"10",cy:"13",r:"1.5",fill:"#22c55e"}),h.jsx("circle",{cx:"16",cy:"16",r:"1.5",fill:"#22c55e"}),h.jsx("circle",{cx:"22",cy:"19",r:"1.5",fill:"#22c55e"})]}),"Furu"]}),h.jsxs("div",{className:"flex gap-2",children:[h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/",activeOptions:{exact:!0},className:"[&.active]:text-primary [&.active]:bg-accent",children:"Dashboard"})}),h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/experiments",className:"[&.active]:text-primary [&.active]:bg-accent",children:"Experiments"})}),h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/dag",className:"[&.active]:text-primary [&.active]:bg-accent",children:"DAG"})})]})]}),h.jsx("main",{className:"flex-1 p-8",children:h.jsx(jv,{})})]})}const RR=Te.create({baseURL:""}),zo=e=>{const t=Te.CancelToken.source(),n=RR({...e,cancelToken:t.token}).then(({data:r})=>r);return n.cancel=()=>{t.cancel("Query was cancelled")},n},jR=e=>zo({url:"/api/health",method:"GET",signal:e}),MR=()=>["/api/health"],TR=e=>{const{query:t}={};return{queryKey:(t==null?void 0:t.queryKey)??MR(),queryFn:({signal:s})=>jR(s),...t}};function LR(e,t){const n=TR(),r=Ao(n);return r.queryKey=n.queryKey,r}const IR=(e,t)=>zo({url:"/api/experiments",method:"GET",params:e,signal:t}),AR=e=>["/api/experiments",...e?[e]:[]],OR=(e,t)=>{const{query:n}={};return{queryKey:(n==null?void 0:n.queryKey)??AR(e),queryFn:({signal:o})=>IR(e,o),...n}};function cw(e,t,n){const r=OR(e),s=Ao(r);return s.queryKey=r.queryKey,s}const FR=(e,t,n,r)=>zo({url:`/api/experiments/${e}/${t}/relationships`,method:"GET",params:n,signal:r}),DR=(e,t,n)=>[`/api/experiments/${e}/${t}/relationships`,...n?[n]:[]],zR=(e,t,n,r)=>{const{query:s}={};return{queryKey:(s==null?void 0:s.queryKey)??DR(e,t,n),queryFn:({signal:a})=>FR(e,t,n,a),enabled:!!(e&&t),...s}};function $R(e,t,n,r,s){const o=zR(e,t,n),i=Ao(o);return i.queryKey=o.queryKey,i}const BR=(e,t,n,r)=>zo({url:`/api/experiments/${e}/${t}`,method:"GET",params:n,signal:r}),HR=(e,t,n)=>[`/api/experiments/${e}/${t}`,...n?[n]:[]],UR=(e,t,n,r)=>{const{query:s}={};return{queryKey:(s==null?void 0:s.queryKey)??HR(e,t,n),queryFn:({signal:a})=>BR(e,t,n,a),enabled:!!(e&&t),...s}};function VR(e,t,n,r,s){const o=UR(e,t,n),i=Ao(o);return i.queryKey=o.queryKey,i}const WR=e=>zo({url:"/api/stats",method:"GET",signal:e}),KR=()=>["/api/stats"],qR=e=>{const{query:t}={};return{queryKey:(t==null?void 0:t.queryKey)??KR(),queryFn:({signal:s})=>WR(s),...t}};function QR(e,t){const n=qR(),r=Ao(n);return r.queryKey=n.queryKey,r}const GR=e=>zo({url:"/api/dag",method:"GET",signal:e}),XR=()=>["/api/dag"],YR=e=>{const{query:t}={};return{queryKey:(t==null?void 0:t.queryKey)??XR(),queryFn:({signal:s})=>GR(s),...t}};function ZR(e,t){const n=YR(),r=Ao(n);return r.queryKey=n.queryKey,r}const JR=sw("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium transition-colors",{variants:{variant:{default:"bg-primary text-primary-foreground border-transparent",secondary:"bg-secondary text-secondary-foreground border-transparent",outline:"text-foreground",success:"bg-emerald-500/15 text-emerald-300 border-emerald-500/30",warning:"bg-amber-500/15 text-amber-300 border-amber-500/30",info:"bg-blue-500/15 text-blue-300 border-blue-500/30",destructive:"bg-red-500/15 text-red-300 border-red-500/30",muted:"bg-muted text-muted-foreground border-border"}},defaultVariants:{variant:"default"}});function mt({className:e,variant:t,...n}){return h.jsx("div",{className:ze(JR({variant:t}),e),...n})}const ej={success:"success",failed:"destructive",incomplete:"warning",absent:"muted"},tj={success:"success",running:"info",queued:"secondary",failed:"destructive",crashed:"warning",cancelled:"muted",preempted:"warning"};function sn({status:e,type:t}){const r=(t==="result"?ej:tj)[e]??"muted";return h.jsxs(mt,{variant:r,className:"gap-1.5 px-2.5 py-1",children:[t==="attempt"&&e==="running"&&h.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-blue-300 animate-pulse"}),e]})}const be=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));be.displayName="Card";const nt=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("flex flex-col gap-1.5 p-6",e),...t}));nt.displayName="CardHeader";const lt=R.forwardRef(({className:e,...t},n)=>h.jsx("h3",{ref:n,className:ze("text-lg font-semibold leading-none tracking-tight",e),...t}));lt.displayName="CardTitle";const nj=R.forwardRef(({className:e,...t},n)=>h.jsx("p",{ref:n,className:ze("text-sm text-muted-foreground",e),...t}));nj.displayName="CardDescription";const ke=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("p-6 pt-0",e),...t}));ke.displayName="CardContent";const rj=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{ref:n,className:ze("flex items-center p-6 pt-0",e),...t}));rj.displayName="CardFooter";function dw({title:e,description:t,icon:n="📭"}){return h.jsx(be,{className:"border-dashed",children:h.jsxs(ke,{className:"flex flex-col items-center justify-center py-16 text-center",children:[h.jsx("span",{className:"mb-4 text-5xl",children:n}),h.jsx("h3",{className:"mb-2 text-lg font-medium",children:e}),t?h.jsx("p",{className:"max-w-md text-muted-foreground",children:t}):null]})})}const Ar=R.forwardRef(({className:e,type:t,...n},r)=>h.jsx("input",{type:t,className:ze("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));Ar.displayName="Input";const Vh=R.forwardRef(({className:e,...t},n)=>h.jsx("div",{className:"w-full overflow-auto",children:h.jsx("table",{ref:n,className:ze("w-full caption-bottom text-sm",e),...t})}));Vh.displayName="Table";const Wh=R.forwardRef(({className:e,...t},n)=>h.jsx("thead",{ref:n,className:ze("[&_tr]:border-b",e),...t}));Wh.displayName="TableHeader";const Kh=R.forwardRef(({className:e,...t},n)=>h.jsx("tbody",{ref:n,className:ze("[&_tr:last-child]:border-0",e),...t}));Kh.displayName="TableBody";const sj=R.forwardRef(({className:e,...t},n)=>h.jsx("tfoot",{ref:n,className:ze("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));sj.displayName="TableFooter";const Wi=R.forwardRef(({className:e,...t},n)=>h.jsx("tr",{ref:n,className:ze("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));Wi.displayName="TableRow";const Ke=R.forwardRef(({className:e,...t},n)=>h.jsx("th",{ref:n,className:ze("h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0",e),...t}));Ke.displayName="TableHead";const qe=R.forwardRef(({className:e,...t},n)=>h.jsx("td",{ref:n,className:ze("p-4 align-middle [&:has([role=checkbox])]:pr-0",e),...t}));qe.displayName="TableCell";const oj=R.forwardRef(({className:e,...t},n)=>h.jsx("caption",{ref:n,className:ze("mt-4 text-sm text-muted-foreground",e),...t}));oj.displayName="TableCaption";const ij=_o("/experiments")({component:cj}),aj=["","success","failed","incomplete","absent"],lj=["","running","queued","success","failed","crashed","cancelled","preempted"],uj=["","local","submitit"];function cj(){const[e,t]=R.useState(""),[n,r]=R.useState(""),[s,o]=R.useState(""),[i,a]=R.useState(""),[l,u]=R.useState(""),[d,c]=R.useState(""),[f,m]=R.useState(""),[p,x]=R.useState(""),[w,g]=R.useState(""),[v,y]=R.useState("resolved"),[S,E]=R.useState(0),_=20,{data:b,isLoading:C,error:L}=cw({result_status:e||void 0,attempt_status:n||void 0,namespace:s||void 0,backend:i||void 0,hostname:l||void 0,user:d||void 0,started_after:f||void 0,started_before:p||void 0,config_filter:w||void 0,view:v,limit:_,offset:S*_}),M=b?Math.ceil(b.total/_):0,P=()=>{t(""),r(""),o(""),a(""),u(""),c(""),m(""),x(""),g(""),E(0)},j=e||n||s||i||l||d||f||p||w;return h.jsxs("div",{className:"max-w-7xl mx-auto",children:[h.jsxs("div",{className:"mb-8",children:[h.jsx("h1",{className:"text-3xl font-bold mb-2",children:"Experiments"}),h.jsx("p",{className:"text-muted-foreground",children:"Browse and filter all Furu experiments"})]}),h.jsxs(be,{className:"mb-6",children:[h.jsxs(nt,{className:"flex flex-row items-center justify-between",children:[h.jsx(lt,{children:"Filters"}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsxs("div",{className:"flex rounded-full border border-muted overflow-hidden text-xs",children:[h.jsx("button",{className:`px-3 py-1 ${v==="resolved"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>{y("resolved"),E(0)},children:"Aliased"}),h.jsx("button",{className:`px-3 py-1 ${v==="original"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>{y("original"),E(0)},children:"Original"})]}),j&&h.jsx(wn,{variant:"ghost",size:"sm",onClick:P,children:"Clear filters"})]})]}),h.jsx(ke,{children:h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Namespace"}),h.jsx(Ar,{type:"text",placeholder:"Filter by namespace...",value:s,onChange:O=>{o(O.target.value),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Result Status"}),h.jsx("select",{value:e,onChange:O=>{t(O.target.value),E(0)},className:"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:aj.map(O=>h.jsx("option",{value:O,children:O||"All Results"},O))})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Attempt Status"}),h.jsx("select",{value:n,onChange:O=>{r(O.target.value),E(0)},className:"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:lj.map(O=>h.jsx("option",{value:O,children:O||"All Attempts"},O))})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Backend"}),h.jsx("select",{value:i,onChange:O=>{a(O.target.value),E(0)},className:"h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:uj.map(O=>h.jsx("option",{value:O,children:O||"All Backends"},O))})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Hostname"}),h.jsx(Ar,{type:"text",placeholder:"Filter by hostname...",value:l,onChange:O=>{u(O.target.value),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"User"}),h.jsx(Ar,{type:"text",placeholder:"Filter by user...",value:d,onChange:O=>{c(O.target.value),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Started After"}),h.jsx(Ar,{type:"datetime-local",value:f,onChange:O=>{m(O.target.value?O.target.value+":00":""),E(0)}})]}),h.jsxs("div",{children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Started Before"}),h.jsx(Ar,{type:"datetime-local",value:p,onChange:O=>{x(O.target.value?O.target.value+":00":""),E(0)}})]}),h.jsxs("div",{className:"md:col-span-2",children:[h.jsx("label",{className:"mb-1 block text-sm text-muted-foreground",children:"Config Filter"}),h.jsx(Ar,{type:"text",placeholder:"field.path=value (e.g., model.name=gpt-4)",value:w,onChange:O=>{g(O.target.value),E(0)}})]})]})})]}),h.jsx("div",{className:"mb-4 text-sm text-muted-foreground",children:b?h.jsxs(h.Fragment,{children:["Showing ",b.experiments.length," of ",b.total," experiments"]}):"Loading..."}),C?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-muted-foreground",children:"Loading experiments..."})}):L?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-destructive",children:"Error loading experiments. Is the API running?"})}):(b==null?void 0:b.experiments.length)===0?h.jsx(dw,{title:"No experiments found",description:"Try adjusting your filters or create some experiments first.",icon:"🔬"}):h.jsxs(be,{className:"overflow-hidden",children:[h.jsxs(Vh,{children:[h.jsx(Wh,{children:h.jsxs(Wi,{children:[h.jsx(Ke,{className:"pl-6",children:"Class"}),h.jsx(Ke,{children:"Namespace"}),h.jsx(Ke,{children:"Hash"}),h.jsx(Ke,{children:"Result"}),h.jsx(Ke,{children:"Migration"}),h.jsx(Ke,{children:"Attempt"}),h.jsx(Ke,{children:"Backend"}),h.jsx(Ke,{children:"Host"}),h.jsx(Ke,{children:"User"}),h.jsx(Ke,{children:"Updated"})]})}),h.jsx(Kh,{children:b==null?void 0:b.experiments.map(O=>h.jsxs(Wi,{children:[h.jsx(qe,{className:"pl-6",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:O.namespace,furu_hash:O.furu_hash},className:"font-medium hover:text-primary",children:O.class_name})}),h.jsx(qe,{className:"max-w-xs truncate font-mono text-sm text-muted-foreground",children:O.namespace}),h.jsx(qe,{children:h.jsxs("code",{className:"rounded bg-muted px-2 py-1 font-mono text-xs text-muted-foreground",children:[O.furu_hash.slice(0,8),"..."]})}),h.jsx(qe,{children:h.jsx(sn,{status:O.result_status,type:"result"})}),h.jsx(qe,{children:O.migration_kind?h.jsx("span",{className:"text-xs rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-amber-300",children:O.migration_kind}):h.jsx("span",{className:"text-muted-foreground",children:"-"})}),h.jsx(qe,{children:O.attempt_status?h.jsx(sn,{status:O.attempt_status,type:"attempt"}):h.jsx("span",{className:"text-muted-foreground",children:"-"})}),h.jsx(qe,{className:"text-sm text-muted-foreground",children:O.backend||"-"}),h.jsx(qe,{className:"text-sm text-muted-foreground max-w-[150px] truncate",title:O.hostname||void 0,children:O.hostname||"-"}),h.jsx(qe,{className:"text-sm text-muted-foreground",children:O.user||"-"}),h.jsx(qe,{className:"whitespace-nowrap text-sm text-muted-foreground",children:O.updated_at?new Date(O.updated_at).toLocaleString():"-"})]},`${O.namespace}-${O.furu_hash}`))})]}),M>1&&h.jsxs(ke,{className:"flex items-center justify-between border-t py-4",children:[h.jsx(wn,{variant:"secondary",onClick:()=>E(O=>Math.max(0,O-1)),disabled:S===0,children:"Previous"}),h.jsxs("span",{className:"text-sm text-muted-foreground",children:["Page ",S+1," of ",M]}),h.jsx(wn,{variant:"secondary",onClick:()=>E(O=>Math.min(M-1,O+1)),disabled:S>=M-1,children:"Next"})]})]})]})}function Oe(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=Oe(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var dj={value:()=>{}};function Wu(){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 _l(n)}function _l(e){this._=e}function fj(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");if(s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}_l.prototype=Wu.prototype={constructor:_l,on:function(e,t){var n=this._,r=fj(e+"",n),s,o=-1,i=r.length;if(arguments.length<2){for(;++o<i;)if((s=(e=r[o]).type)&&(s=hj(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++o<i;)if(s=(e=r[o]).type)n[s]=_g(n[s],e.name,t);else if(t==null)for(s in n)n[s]=_g(n[s],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new _l(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,o;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(o=this._[e],r=0,s=o.length;r<s;++r)o[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],s=0,o=r.length;s<o;++s)r[s].value.apply(t,n)}};function hj(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function _g(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=dj,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var mf="http://www.w3.org/1999/xhtml";const bg={svg:"http://www.w3.org/2000/svg",xhtml:mf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ku(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),bg.hasOwnProperty(t)?{space:bg[t],local:e}:e}function pj(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===mf&&t.documentElement.namespaceURI===mf?t.createElement(e):t.createElementNS(n,e)}}function mj(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function fw(e){var t=Ku(e);return(t.local?mj:pj)(t)}function gj(){}function qh(e){return e==null?gj:function(){return this.querySelector(e)}}function yj(e){typeof e!="function"&&(e=qh(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=new Array(i),l,u,d=0;d<i;++d)(l=o[d])&&(u=e.call(l,l.__data__,d,o))&&("__data__"in l&&(u.__data__=l.__data__),a[d]=u);return new Mt(r,this._parents)}function xj(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function vj(){return[]}function hw(e){return e==null?vj:function(){return this.querySelectorAll(e)}}function wj(e){return function(){return xj(e.apply(this,arguments))}}function Sj(e){typeof e=="function"?e=wj(e):e=hw(e);for(var t=this._groups,n=t.length,r=[],s=[],o=0;o<n;++o)for(var i=t[o],a=i.length,l,u=0;u<a;++u)(l=i[u])&&(r.push(e.call(l,l.__data__,u,i)),s.push(l));return new Mt(r,s)}function pw(e){return function(){return this.matches(e)}}function mw(e){return function(t){return t.matches(e)}}var _j=Array.prototype.find;function bj(e){return function(){return _j.call(this.children,e)}}function Ej(){return this.firstElementChild}function Cj(e){return this.select(e==null?Ej:bj(typeof e=="function"?e:mw(e)))}var Nj=Array.prototype.filter;function kj(){return Array.from(this.children)}function Pj(e){return function(){return Nj.call(this.children,e)}}function Rj(e){return this.selectAll(e==null?kj:Pj(typeof e=="function"?e:mw(e)))}function jj(e){typeof e!="function"&&(e=pw(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,u=0;u<i;++u)(l=o[u])&&e.call(l,l.__data__,u,o)&&a.push(l);return new Mt(r,this._parents)}function gw(e){return new Array(e.length)}function Mj(){return new Mt(this._enter||this._groups.map(gw),this._parents)}function uu(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}uu.prototype={constructor:uu,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 Tj(e){return function(){return e}}function Lj(e,t,n,r,s,o){for(var i=0,a,l=t.length,u=o.length;i<u;++i)(a=t[i])?(a.__data__=o[i],r[i]=a):n[i]=new uu(e,o[i]);for(;i<l;++i)(a=t[i])&&(s[i]=a)}function Ij(e,t,n,r,s,o,i){var a,l,u=new Map,d=t.length,c=o.length,f=new Array(d),m;for(a=0;a<d;++a)(l=t[a])&&(f[a]=m=i.call(l,l.__data__,a,t)+"",u.has(m)?s[a]=l:u.set(m,l));for(a=0;a<c;++a)m=i.call(e,o[a],a,o)+"",(l=u.get(m))?(r[a]=l,l.__data__=o[a],u.delete(m)):n[a]=new uu(e,o[a]);for(a=0;a<d;++a)(l=t[a])&&u.get(f[a])===l&&(s[a]=l)}function Aj(e){return e.__data__}function Oj(e,t){if(!arguments.length)return Array.from(this,Aj);var n=t?Ij:Lj,r=this._parents,s=this._groups;typeof e!="function"&&(e=Tj(e));for(var o=s.length,i=new Array(o),a=new Array(o),l=new Array(o),u=0;u<o;++u){var d=r[u],c=s[u],f=c.length,m=Fj(e.call(d,d&&d.__data__,u,r)),p=m.length,x=a[u]=new Array(p),w=i[u]=new Array(p),g=l[u]=new Array(f);n(d,c,x,w,g,m,t);for(var v=0,y=0,S,E;v<p;++v)if(S=x[v]){for(v>=y&&(y=v+1);!(E=w[y])&&++y<p;);S._next=E||null}}return i=new Mt(i,r),i._enter=a,i._exit=l,i}function Fj(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Dj(){return new Mt(this._exit||this._groups.map(gw),this._parents)}function zj(e,t,n){var r=this.enter(),s=this,o=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(s=t(s),s&&(s=s.selection())),n==null?o.remove():n(o),r&&s?r.merge(s).order():s}function $j(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,o=r.length,i=Math.min(s,o),a=new Array(s),l=0;l<i;++l)for(var u=n[l],d=r[l],c=u.length,f=a[l]=new Array(c),m,p=0;p<c;++p)(m=u[p]||d[p])&&(f[p]=m);for(;l<s;++l)a[l]=n[l];return new Mt(a,this._parents)}function Bj(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,o=r[s],i;--s>=0;)(i=r[s])&&(o&&i.compareDocumentPosition(o)^4&&o.parentNode.insertBefore(i,o),o=i);return this}function Hj(e){e||(e=Uj);function t(c,f){return c&&f?e(c.__data__,f.__data__):!c-!f}for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o){for(var i=n[o],a=i.length,l=s[o]=new Array(a),u,d=0;d<a;++d)(u=i[d])&&(l[d]=u);l.sort(t)}return new Mt(s,this._parents).order()}function Uj(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Vj(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Wj(){return Array.from(this)}function Kj(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length;s<o;++s){var i=r[s];if(i)return i}return null}function qj(){let e=0;for(const t of this)++e;return e}function Qj(){return!this.node()}function Gj(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],o=0,i=s.length,a;o<i;++o)(a=s[o])&&e.call(a,a.__data__,o,s);return this}function Xj(e){return function(){this.removeAttribute(e)}}function Yj(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Zj(e,t){return function(){this.setAttribute(e,t)}}function Jj(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function e2(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function t2(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 n2(e,t){var n=Ku(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?Yj:Xj:typeof t=="function"?n.local?t2:e2:n.local?Jj:Zj)(n,t))}function yw(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function r2(e){return function(){this.style.removeProperty(e)}}function s2(e,t,n){return function(){this.style.setProperty(e,t,n)}}function o2(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function i2(e,t,n){return arguments.length>1?this.each((t==null?r2:typeof t=="function"?o2:s2)(e,t,n??"")):Eo(this.node(),e)}function Eo(e,t){return e.style.getPropertyValue(t)||yw(e).getComputedStyle(e,null).getPropertyValue(t)}function a2(e){return function(){delete this[e]}}function l2(e,t){return function(){this[e]=t}}function u2(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function c2(e,t){return arguments.length>1?this.each((t==null?a2:typeof t=="function"?u2:l2)(e,t)):this.node()[e]}function xw(e){return e.trim().split(/^|\s+/)}function Qh(e){return e.classList||new vw(e)}function vw(e){this._node=e,this._names=xw(e.getAttribute("class")||"")}vw.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 ww(e,t){for(var n=Qh(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function Sw(e,t){for(var n=Qh(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function d2(e){return function(){ww(this,e)}}function f2(e){return function(){Sw(this,e)}}function h2(e,t){return function(){(t.apply(this,arguments)?ww:Sw)(this,e)}}function p2(e,t){var n=xw(e+"");if(arguments.length<2){for(var r=Qh(this.node()),s=-1,o=n.length;++s<o;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?h2:t?d2:f2)(n,t))}function m2(){this.textContent=""}function g2(e){return function(){this.textContent=e}}function y2(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function x2(e){return arguments.length?this.each(e==null?m2:(typeof e=="function"?y2:g2)(e)):this.node().textContent}function v2(){this.innerHTML=""}function w2(e){return function(){this.innerHTML=e}}function S2(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function _2(e){return arguments.length?this.each(e==null?v2:(typeof e=="function"?S2:w2)(e)):this.node().innerHTML}function b2(){this.nextSibling&&this.parentNode.appendChild(this)}function E2(){return this.each(b2)}function C2(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function N2(){return this.each(C2)}function k2(e){var t=typeof e=="function"?e:fw(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function P2(){return null}function R2(e,t){var n=typeof e=="function"?e:fw(e),r=t==null?P2:typeof t=="function"?t:qh(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function j2(){var e=this.parentNode;e&&e.removeChild(this)}function M2(){return this.each(j2)}function T2(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function L2(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function I2(e){return this.select(e?L2:T2)}function A2(e){return arguments.length?this.property("__data__",e):this.node().__data__}function O2(e){return function(t){e.call(this,t,this.__data__)}}function F2(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 D2(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,o;n<s;++n)o=t[n],(!e.type||o.type===e.type)&&o.name===e.name?this.removeEventListener(o.type,o.listener,o.options):t[++r]=o;++r?t.length=r:delete this.__on}}}function z2(e,t,n){return function(){var r=this.__on,s,o=O2(t);if(r){for(var i=0,a=r.length;i<a;++i)if((s=r[i]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=o,s.options=n),s.value=t;return}}this.addEventListener(e.type,o,n),s={type:e.type,name:e.name,value:t,listener:o,options:n},r?r.push(s):this.__on=[s]}}function $2(e,t,n){var r=F2(e+""),s,o=r.length,i;if(arguments.length<2){var a=this.node().__on;if(a){for(var l=0,u=a.length,d;l<u;++l)for(s=0,d=a[l];s<o;++s)if((i=r[s]).type===d.type&&i.name===d.name)return d.value}return}for(a=t?z2:D2,s=0;s<o;++s)this.each(a(r[s],t,n));return this}function _w(e,t,n){var r=yw(e),s=r.CustomEvent;typeof s=="function"?s=new s(t,n):(s=r.document.createEvent("Event"),n?(s.initEvent(t,n.bubbles,n.cancelable),s.detail=n.detail):s.initEvent(t,!1,!1)),e.dispatchEvent(s)}function B2(e,t){return function(){return _w(this,e,t)}}function H2(e,t){return function(){return _w(this,e,t.apply(this,arguments))}}function U2(e,t){return this.each((typeof t=="function"?H2:B2)(e,t))}function*V2(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,o=r.length,i;s<o;++s)(i=r[s])&&(yield i)}var bw=[null];function Mt(e,t){this._groups=e,this._parents=t}function xa(){return new Mt([[document.documentElement]],bw)}function W2(){return this}Mt.prototype=xa.prototype={constructor:Mt,select:yj,selectAll:Sj,selectChild:Cj,selectChildren:Rj,filter:jj,data:Oj,enter:Mj,exit:Dj,join:zj,merge:$j,selection:W2,order:Bj,sort:Hj,call:Vj,nodes:Wj,node:Kj,size:qj,empty:Qj,each:Gj,attr:n2,style:i2,property:c2,classed:p2,text:x2,html:_2,raise:E2,lower:N2,append:k2,insert:R2,remove:M2,clone:I2,datum:A2,on:$2,dispatch:U2,[Symbol.iterator]:V2};function Nt(e){return typeof e=="string"?new Mt([[document.querySelector(e)]],[document.documentElement]):new Mt([[e]],bw)}function K2(e){let t;for(;t=e.sourceEvent;)e=t;return e}function Yt(e,t){if(e=K2(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 s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}const q2={passive:!1},Ki={capture:!0,passive:!1};function Wc(e){e.stopImmediatePropagation()}function Ys(e){e.preventDefault(),e.stopImmediatePropagation()}function Ew(e){var t=e.document.documentElement,n=Nt(e).on("dragstart.drag",Ys,Ki);"onselectstart"in t?n.on("selectstart.drag",Ys,Ki):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Cw(e,t){var n=e.document.documentElement,r=Nt(e).on("dragstart.drag",null);t&&(r.on("click.drag",Ys,Ki),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 Xa=e=>()=>e;function gf(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:o,x:i,y:a,dx:l,dy:u,dispatch:d}){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:s,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:d}})}gf.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Q2(e){return!e.ctrlKey&&!e.button}function G2(){return this.parentNode}function X2(e,t){return t??{x:e.x,y:e.y}}function Y2(){return navigator.maxTouchPoints||"ontouchstart"in this}function Nw(){var e=Q2,t=G2,n=X2,r=Y2,s={},o=Wu("start","drag","end"),i=0,a,l,u,d,c=0;function f(S){S.on("mousedown.drag",m).filter(r).on("touchstart.drag",w).on("touchmove.drag",g,q2).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(S,E){if(!(d||!e.call(this,S,E))){var _=y(this,t.call(this,S,E),S,E,"mouse");_&&(Nt(S.view).on("mousemove.drag",p,Ki).on("mouseup.drag",x,Ki),Ew(S.view),Wc(S),u=!1,a=S.clientX,l=S.clientY,_("start",S))}}function p(S){if(Ys(S),!u){var E=S.clientX-a,_=S.clientY-l;u=E*E+_*_>c}s.mouse("drag",S)}function x(S){Nt(S.view).on("mousemove.drag mouseup.drag",null),Cw(S.view,u),Ys(S),s.mouse("end",S)}function w(S,E){if(e.call(this,S,E)){var _=S.changedTouches,b=t.call(this,S,E),C=_.length,L,M;for(L=0;L<C;++L)(M=y(this,b,S,E,_[L].identifier,_[L]))&&(Wc(S),M("start",S,_[L]))}}function g(S){var E=S.changedTouches,_=E.length,b,C;for(b=0;b<_;++b)(C=s[E[b].identifier])&&(Ys(S),C("drag",S,E[b]))}function v(S){var E=S.changedTouches,_=E.length,b,C;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),b=0;b<_;++b)(C=s[E[b].identifier])&&(Wc(S),C("end",S,E[b]))}function y(S,E,_,b,C,L){var M=o.copy(),P=Yt(L||_,E),j,O,k;if((k=n.call(S,new gf("beforestart",{sourceEvent:_,target:f,identifier:C,active:i,x:P[0],y:P[1],dx:0,dy:0,dispatch:M}),b))!=null)return j=k.x-P[0]||0,O=k.y-P[1]||0,function D(I,F,N){var T=P,z;switch(I){case"start":s[C]=D,z=i++;break;case"end":delete s[C],--i;case"drag":P=Yt(N||F,E),z=i;break}M.call(I,S,new gf(I,{sourceEvent:F,subject:k,target:f,identifier:C,active:z,x:P[0]+j,y:P[1]+O,dx:P[0]-T[0],dy:P[1]-T[1],dispatch:M}),b)}}return f.filter=function(S){return arguments.length?(e=typeof S=="function"?S:Xa(!!S),f):e},f.container=function(S){return arguments.length?(t=typeof S=="function"?S:Xa(S),f):t},f.subject=function(S){return arguments.length?(n=typeof S=="function"?S:Xa(S),f):n},f.touchable=function(S){return arguments.length?(r=typeof S=="function"?S:Xa(!!S),f):r},f.on=function(){var S=o.on.apply(o,arguments);return S===o?f:S},f.clickDistance=function(S){return arguments.length?(c=(S=+S)*S,f):Math.sqrt(c)},f}function Gh(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function kw(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function va(){}var qi=.7,cu=1/qi,Zs="\\s*([+-]?\\d+)\\s*",Qi="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Sn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Z2=/^#([0-9a-f]{3,8})$/,J2=new RegExp(`^rgb\\(${Zs},${Zs},${Zs}\\)$`),eM=new RegExp(`^rgb\\(${Sn},${Sn},${Sn}\\)$`),tM=new RegExp(`^rgba\\(${Zs},${Zs},${Zs},${Qi}\\)$`),nM=new RegExp(`^rgba\\(${Sn},${Sn},${Sn},${Qi}\\)$`),rM=new RegExp(`^hsl\\(${Qi},${Sn},${Sn}\\)$`),sM=new RegExp(`^hsla\\(${Qi},${Sn},${Sn},${Qi}\\)$`),Eg={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};Gh(va,xs,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Cg,formatHex:Cg,formatHex8:oM,formatHsl:iM,formatRgb:Ng,toString:Ng});function Cg(){return this.rgb().formatHex()}function oM(){return this.rgb().formatHex8()}function iM(){return Pw(this).formatHsl()}function Ng(){return this.rgb().formatRgb()}function xs(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Z2.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?kg(t):n===3?new yt(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ya(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ya(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=J2.exec(e))?new yt(t[1],t[2],t[3],1):(t=eM.exec(e))?new yt(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=tM.exec(e))?Ya(t[1],t[2],t[3],t[4]):(t=nM.exec(e))?Ya(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=rM.exec(e))?jg(t[1],t[2]/100,t[3]/100,1):(t=sM.exec(e))?jg(t[1],t[2]/100,t[3]/100,t[4]):Eg.hasOwnProperty(e)?kg(Eg[e]):e==="transparent"?new yt(NaN,NaN,NaN,0):null}function kg(e){return new yt(e>>16&255,e>>8&255,e&255,1)}function Ya(e,t,n,r){return r<=0&&(e=t=n=NaN),new yt(e,t,n,r)}function aM(e){return e instanceof va||(e=xs(e)),e?(e=e.rgb(),new yt(e.r,e.g,e.b,e.opacity)):new yt}function yf(e,t,n,r){return arguments.length===1?aM(e):new yt(e,t,n,r??1)}function yt(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}Gh(yt,yf,kw(va,{brighter(e){return e=e==null?cu:Math.pow(cu,e),new yt(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new yt(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new yt(is(this.r),is(this.g),is(this.b),du(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:Pg,formatHex:Pg,formatHex8:lM,formatRgb:Rg,toString:Rg}));function Pg(){return`#${Ur(this.r)}${Ur(this.g)}${Ur(this.b)}`}function lM(){return`#${Ur(this.r)}${Ur(this.g)}${Ur(this.b)}${Ur((isNaN(this.opacity)?1:this.opacity)*255)}`}function Rg(){const e=du(this.opacity);return`${e===1?"rgb(":"rgba("}${is(this.r)}, ${is(this.g)}, ${is(this.b)}${e===1?")":`, ${e})`}`}function du(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function is(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Ur(e){return e=is(e),(e<16?"0":"")+e.toString(16)}function jg(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Jt(e,t,n,r)}function Pw(e){if(e instanceof Jt)return new Jt(e.h,e.s,e.l,e.opacity);if(e instanceof va||(e=xs(e)),!e)return new Jt;if(e instanceof Jt)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),o=Math.max(t,n,r),i=NaN,a=o-s,l=(o+s)/2;return a?(t===o?i=(n-r)/a+(n<r)*6:n===o?i=(r-t)/a+2:i=(t-n)/a+4,a/=l<.5?o+s:2-o-s,i*=60):a=l>0&&l<1?0:i,new Jt(i,a,l,e.opacity)}function uM(e,t,n,r){return arguments.length===1?Pw(e):new Jt(e,t,n,r??1)}function Jt(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}Gh(Jt,uM,kw(va,{brighter(e){return e=e==null?cu:Math.pow(cu,e),new Jt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?qi:Math.pow(qi,e),new Jt(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,s=2*n-r;return new yt(Kc(e>=240?e-240:e+120,s,r),Kc(e,s,r),Kc(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new Jt(Mg(this.h),Za(this.s),Za(this.l),du(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=du(this.opacity);return`${e===1?"hsl(":"hsla("}${Mg(this.h)}, ${Za(this.s)*100}%, ${Za(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Mg(e){return e=(e||0)%360,e<0?e+360:e}function Za(e){return Math.max(0,Math.min(1,e||0))}function Kc(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 Xh=e=>()=>e;function cM(e,t){return function(n){return e+n*t}}function dM(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 fM(e){return(e=+e)==1?Rw:function(t,n){return n-t?dM(t,n,e):Xh(isNaN(t)?n:t)}}function Rw(e,t){var n=t-e;return n?cM(e,n):Xh(isNaN(e)?t:e)}const fu=function e(t){var n=fM(t);function r(s,o){var i=n((s=yf(s)).r,(o=yf(o)).r),a=n(s.g,o.g),l=n(s.b,o.b),u=Rw(s.opacity,o.opacity);return function(d){return s.r=i(d),s.g=a(d),s.b=l(d),s.opacity=u(d),s+""}}return r.gamma=e,r}(1);function hM(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),s;return function(o){for(s=0;s<n;++s)r[s]=e[s]*(1-o)+t[s]*o;return r}}function pM(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function mM(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,s=new Array(r),o=new Array(n),i;for(i=0;i<r;++i)s[i]=bi(e[i],t[i]);for(;i<n;++i)o[i]=t[i];return function(a){for(i=0;i<r;++i)o[i]=s[i](a);return o}}function gM(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function gn(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function yM(e,t){var n={},r={},s;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(s in t)s in e?n[s]=bi(e[s],t[s]):r[s]=t[s];return function(o){for(s in n)r[s]=n[s](o);return r}}var xf=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,qc=new RegExp(xf.source,"g");function xM(e){return function(){return e}}function vM(e){return function(t){return e(t)+""}}function jw(e,t){var n=xf.lastIndex=qc.lastIndex=0,r,s,o,i=-1,a=[],l=[];for(e=e+"",t=t+"";(r=xf.exec(e))&&(s=qc.exec(t));)(o=s.index)>n&&(o=t.slice(n,o),a[i]?a[i]+=o:a[++i]=o),(r=r[0])===(s=s[0])?a[i]?a[i]+=s:a[++i]=s:(a[++i]=null,l.push({i,x:gn(r,s)})),n=qc.lastIndex;return n<t.length&&(o=t.slice(n),a[i]?a[i]+=o:a[++i]=o),a.length<2?l[0]?vM(l[0].x):xM(t):(t=l.length,function(u){for(var d=0,c;d<t;++d)a[(c=l[d]).i]=c.x(u);return a.join("")})}function bi(e,t){var n=typeof t,r;return t==null||n==="boolean"?Xh(t):(n==="number"?gn:n==="string"?(r=xs(t))?(t=r,fu):jw:t instanceof xs?fu:t instanceof Date?gM:pM(t)?hM:Array.isArray(t)?mM:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?yM:gn)(e,t)}var Tg=180/Math.PI,vf={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Mw(e,t,n,r,s,o){var i,a,l;return(i=Math.sqrt(e*e+t*t))&&(e/=i,t/=i),(l=e*n+t*r)&&(n-=e*l,r-=t*l),(a=Math.sqrt(n*n+r*r))&&(n/=a,r/=a,l/=a),e*r<t*n&&(e=-e,t=-t,l=-l,i=-i),{translateX:s,translateY:o,rotate:Math.atan2(t,e)*Tg,skewX:Math.atan(l)*Tg,scaleX:i,scaleY:a}}var Ja;function wM(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?vf:Mw(t.a,t.b,t.c,t.d,t.e,t.f)}function SM(e){return e==null||(Ja||(Ja=document.createElementNS("http://www.w3.org/2000/svg","g")),Ja.setAttribute("transform",e),!(e=Ja.transform.baseVal.consolidate()))?vf:(e=e.matrix,Mw(e.a,e.b,e.c,e.d,e.e,e.f))}function Tw(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function o(u,d,c,f,m,p){if(u!==c||d!==f){var x=m.push("translate(",null,t,null,n);p.push({i:x-4,x:gn(u,c)},{i:x-2,x:gn(d,f)})}else(c||f)&&m.push("translate("+c+t+f+n)}function i(u,d,c,f){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),f.push({i:c.push(s(c)+"rotate(",null,r)-2,x:gn(u,d)})):d&&c.push(s(c)+"rotate("+d+r)}function a(u,d,c,f){u!==d?f.push({i:c.push(s(c)+"skewX(",null,r)-2,x:gn(u,d)}):d&&c.push(s(c)+"skewX("+d+r)}function l(u,d,c,f,m,p){if(u!==c||d!==f){var x=m.push(s(m)+"scale(",null,",",null,")");p.push({i:x-4,x:gn(u,c)},{i:x-2,x:gn(d,f)})}else(c!==1||f!==1)&&m.push(s(m)+"scale("+c+","+f+")")}return function(u,d){var c=[],f=[];return u=e(u),d=e(d),o(u.translateX,u.translateY,d.translateX,d.translateY,c,f),i(u.rotate,d.rotate,c,f),a(u.skewX,d.skewX,c,f),l(u.scaleX,u.scaleY,d.scaleX,d.scaleY,c,f),u=d=null,function(m){for(var p=-1,x=f.length,w;++p<x;)c[(w=f[p]).i]=w.x(m);return c.join("")}}}var _M=Tw(wM,"px, ","px)","deg)"),bM=Tw(SM,", ",")",")"),EM=1e-12;function Lg(e){return((e=Math.exp(e))+1/e)/2}function CM(e){return((e=Math.exp(e))-1/e)/2}function NM(e){return((e=Math.exp(2*e))-1)/(e+1)}const bl=function e(t,n,r){function s(o,i){var a=o[0],l=o[1],u=o[2],d=i[0],c=i[1],f=i[2],m=d-a,p=c-l,x=m*m+p*p,w,g;if(x<EM)g=Math.log(f/u)/t,w=function(b){return[a+b*m,l+b*p,u*Math.exp(t*b*g)]};else{var v=Math.sqrt(x),y=(f*f-u*u+r*x)/(2*u*n*v),S=(f*f-u*u-r*x)/(2*f*n*v),E=Math.log(Math.sqrt(y*y+1)-y),_=Math.log(Math.sqrt(S*S+1)-S);g=(_-E)/t,w=function(b){var C=b*g,L=Lg(E),M=u/(n*v)*(L*NM(t*C+E)-CM(E));return[a+M*m,l+M*p,u*L/Lg(t*C+E)]}}return w.duration=g*1e3*t/Math.SQRT2,w}return s.rho=function(o){var i=Math.max(.001,+o),a=i*i,l=a*a;return e(i,a,l)},s}(Math.SQRT2,2,4);var Co=0,ci=0,ni=0,Lw=1e3,hu,di,pu=0,vs=0,qu=0,Gi=typeof performance=="object"&&performance.now?performance:Date,Iw=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Yh(){return vs||(Iw(kM),vs=Gi.now()+qu)}function kM(){vs=0}function mu(){this._call=this._time=this._next=null}mu.prototype=Aw.prototype={constructor:mu,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Yh():+n)+(t==null?0:+t),!this._next&&di!==this&&(di?di._next=this:hu=this,di=this),this._call=e,this._time=n,wf()},stop:function(){this._call&&(this._call=null,this._time=1/0,wf())}};function Aw(e,t,n){var r=new mu;return r.restart(e,t,n),r}function PM(){Yh(),++Co;for(var e=hu,t;e;)(t=vs-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Co}function Ig(){vs=(pu=Gi.now())+qu,Co=ci=0;try{PM()}finally{Co=0,jM(),vs=0}}function RM(){var e=Gi.now(),t=e-pu;t>Lw&&(qu-=t,pu=e)}function jM(){for(var e,t=hu,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:hu=n);di=e,wf(r)}function wf(e){if(!Co){ci&&(ci=clearTimeout(ci));var t=e-vs;t>24?(e<1/0&&(ci=setTimeout(Ig,e-Gi.now()-qu)),ni&&(ni=clearInterval(ni))):(ni||(pu=Gi.now(),ni=setInterval(RM,Lw)),Co=1,Iw(Ig))}}function Ag(e,t,n){var r=new mu;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var MM=Wu("start","end","cancel","interrupt"),TM=[],Ow=0,Og=1,Sf=2,El=3,Fg=4,_f=5,Cl=6;function Qu(e,t,n,r,s,o){var i=e.__transition;if(!i)e.__transition={};else if(n in i)return;LM(e,n,{name:t,index:r,group:s,on:MM,tween:TM,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Ow})}function Zh(e,t){var n=ln(e,t);if(n.state>Ow)throw new Error("too late; already scheduled");return n}function En(e,t){var n=ln(e,t);if(n.state>El)throw new Error("too late; already running");return n}function ln(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function LM(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=Aw(o,0,n.time);function o(u){n.state=Og,n.timer.restart(i,n.delay,n.time),n.delay<=u&&i(u-n.delay)}function i(u){var d,c,f,m;if(n.state!==Og)return l();for(d in r)if(m=r[d],m.name===n.name){if(m.state===El)return Ag(i);m.state===Fg?(m.state=Cl,m.timer.stop(),m.on.call("interrupt",e,e.__data__,m.index,m.group),delete r[d]):+d<t&&(m.state=Cl,m.timer.stop(),m.on.call("cancel",e,e.__data__,m.index,m.group),delete r[d])}if(Ag(function(){n.state===El&&(n.state=Fg,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=Sf,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Sf){for(n.state=El,s=new Array(f=n.tween.length),d=0,c=-1;d<f;++d)(m=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++c]=m);s.length=c+1}}function a(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(l),n.state=_f,1),c=-1,f=s.length;++c<f;)s[c].call(e,d);n.state===_f&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Cl,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function Nl(e,t){var n=e.__transition,r,s,o=!0,i;if(n){t=t==null?null:t+"";for(i in n){if((r=n[i]).name!==t){o=!1;continue}s=r.state>Sf&&r.state<_f,r.state=Cl,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[i]}o&&delete e.__transition}}function IM(e){return this.each(function(){Nl(this,e)})}function AM(e,t){var n,r;return function(){var s=En(this,e),o=s.tween;if(o!==n){r=n=o;for(var i=0,a=r.length;i<a;++i)if(r[i].name===t){r=r.slice(),r.splice(i,1);break}}s.tween=r}}function OM(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var o=En(this,e),i=o.tween;if(i!==r){s=(r=i).slice();for(var a={name:t,value:n},l=0,u=s.length;l<u;++l)if(s[l].name===t){s[l]=a;break}l===u&&s.push(a)}o.tween=s}}function FM(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=ln(this.node(),n).tween,s=0,o=r.length,i;s<o;++s)if((i=r[s]).name===e)return i.value;return null}return this.each((t==null?AM:OM)(n,e,t))}function Jh(e,t,n){var r=e._id;return e.each(function(){var s=En(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return ln(s,r).value[t]}}function Fw(e,t){var n;return(typeof t=="number"?gn:t instanceof xs?fu:(n=xs(t))?(t=n,fu):jw)(e,t)}function DM(e){return function(){this.removeAttribute(e)}}function zM(e){return function(){this.removeAttributeNS(e.space,e.local)}}function $M(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttribute(e);return i===s?null:i===r?o:o=t(r=i,n)}}function BM(e,t,n){var r,s=n+"",o;return function(){var i=this.getAttributeNS(e.space,e.local);return i===s?null:i===r?o:o=t(r=i,n)}}function HM(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttribute(e):(i=this.getAttribute(e),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function UM(e,t,n){var r,s,o;return function(){var i,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(i=this.getAttributeNS(e.space,e.local),l=a+"",i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a)))}}function VM(e,t){var n=Ku(e),r=n==="transform"?bM:Fw;return this.attrTween(e,typeof t=="function"?(n.local?UM:HM)(n,r,Jh(this,"attr."+e,t)):t==null?(n.local?zM:DM)(n):(n.local?BM:$M)(n,r,t))}function WM(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function KM(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function qM(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&KM(e,o)),n}return s._value=t,s}function QM(e,t){var n,r;function s(){var o=t.apply(this,arguments);return o!==r&&(n=(r=o)&&WM(e,o)),n}return s._value=t,s}function GM(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=Ku(e);return this.tween(n,(r.local?qM:QM)(r,t))}function XM(e,t){return function(){Zh(this,e).delay=+t.apply(this,arguments)}}function YM(e,t){return t=+t,function(){Zh(this,e).delay=t}}function ZM(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?XM:YM)(t,e)):ln(this.node(),t).delay}function JM(e,t){return function(){En(this,e).duration=+t.apply(this,arguments)}}function eT(e,t){return t=+t,function(){En(this,e).duration=t}}function tT(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?JM:eT)(t,e)):ln(this.node(),t).duration}function nT(e,t){if(typeof t!="function")throw new Error;return function(){En(this,e).ease=t}}function rT(e){var t=this._id;return arguments.length?this.each(nT(t,e)):ln(this.node(),t).ease}function sT(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;En(this,e).ease=n}}function oT(e){if(typeof e!="function")throw new Error;return this.each(sT(this._id,e))}function iT(e){typeof e!="function"&&(e=pw(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var o=t[s],i=o.length,a=r[s]=[],l,u=0;u<i;++u)(l=o[u])&&e.call(l,l.__data__,u,o)&&a.push(l);return new Hn(r,this._parents,this._name,this._id)}function aT(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,o=Math.min(r,s),i=new Array(r),a=0;a<o;++a)for(var l=t[a],u=n[a],d=l.length,c=i[a]=new Array(d),f,m=0;m<d;++m)(f=l[m]||u[m])&&(c[m]=f);for(;a<r;++a)i[a]=t[a];return new Hn(i,this._parents,this._name,this._id)}function lT(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 uT(e,t,n){var r,s,o=lT(t)?Zh:En;return function(){var i=o(this,e),a=i.on;a!==r&&(s=(r=a).copy()).on(t,n),i.on=s}}function cT(e,t){var n=this._id;return arguments.length<2?ln(this.node(),n).on.on(e):this.each(uT(n,e,t))}function dT(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function fT(){return this.on("end.remove",dT(this._id))}function hT(e){var t=this._name,n=this._id;typeof e!="function"&&(e=qh(e));for(var r=this._groups,s=r.length,o=new Array(s),i=0;i<s;++i)for(var a=r[i],l=a.length,u=o[i]=new Array(l),d,c,f=0;f<l;++f)(d=a[f])&&(c=e.call(d,d.__data__,f,a))&&("__data__"in d&&(c.__data__=d.__data__),u[f]=c,Qu(u[f],t,n,f,u,ln(d,n)));return new Hn(o,this._parents,t,n)}function pT(e){var t=this._name,n=this._id;typeof e!="function"&&(e=hw(e));for(var r=this._groups,s=r.length,o=[],i=[],a=0;a<s;++a)for(var l=r[a],u=l.length,d,c=0;c<u;++c)if(d=l[c]){for(var f=e.call(d,d.__data__,c,l),m,p=ln(d,n),x=0,w=f.length;x<w;++x)(m=f[x])&&Qu(m,t,n,x,f,p);o.push(f),i.push(d)}return new Hn(o,i,t,n)}var mT=xa.prototype.constructor;function gT(){return new mT(this._groups,this._parents)}function yT(e,t){var n,r,s;return function(){var o=Eo(this,e),i=(this.style.removeProperty(e),Eo(this,e));return o===i?null:o===n&&i===r?s:s=t(n=o,r=i)}}function Dw(e){return function(){this.style.removeProperty(e)}}function xT(e,t,n){var r,s=n+"",o;return function(){var i=Eo(this,e);return i===s?null:i===r?o:o=t(r=i,n)}}function vT(e,t,n){var r,s,o;return function(){var i=Eo(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Eo(this,e))),i===l?null:i===r&&l===s?o:(s=l,o=t(r=i,a))}}function wT(e,t){var n,r,s,o="style."+t,i="end."+o,a;return function(){var l=En(this,e),u=l.on,d=l.value[o]==null?a||(a=Dw(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(i,s=d),l.on=r}}function ST(e,t,n){var r=(e+="")=="transform"?_M:Fw;return t==null?this.styleTween(e,yT(e,r)).on("end.style."+e,Dw(e)):typeof t=="function"?this.styleTween(e,vT(e,r,Jh(this,"style."+e,t))).each(wT(this._id,e)):this.styleTween(e,xT(e,r,t),n).on("end.style."+e,null)}function _T(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function bT(e,t,n){var r,s;function o(){var i=t.apply(this,arguments);return i!==s&&(r=(s=i)&&_T(e,i,n)),r}return o._value=t,o}function ET(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,bT(e,t,n??""))}function CT(e){return function(){this.textContent=e}}function NT(e){return function(){var t=e(this);this.textContent=t??""}}function kT(e){return this.tween("text",typeof e=="function"?NT(Jh(this,"text",e)):CT(e==null?"":e+""))}function PT(e){return function(t){this.textContent=e.call(this,t)}}function RT(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&PT(s)),t}return r._value=e,r}function jT(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,RT(e))}function MT(){for(var e=this._name,t=this._id,n=zw(),r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,u=0;u<a;++u)if(l=i[u]){var d=ln(l,t);Qu(l,e,n,u,i,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new Hn(r,this._parents,e,n)}function TT(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(o,i){var a={value:i},l={value:function(){--s===0&&o()}};n.each(function(){var u=En(this,r),d=u.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(l)),u.on=t}),s===0&&o()})}var LT=0;function Hn(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function zw(){return++LT}var kn=xa.prototype;Hn.prototype={constructor:Hn,select:hT,selectAll:pT,selectChild:kn.selectChild,selectChildren:kn.selectChildren,filter:iT,merge:aT,selection:gT,transition:MT,call:kn.call,nodes:kn.nodes,node:kn.node,size:kn.size,empty:kn.empty,each:kn.each,on:cT,attr:VM,attrTween:GM,style:ST,styleTween:ET,text:kT,textTween:jT,remove:fT,tween:FM,delay:ZM,duration:tT,ease:rT,easeVarying:oT,end:TT,[Symbol.iterator]:kn[Symbol.iterator]};function IT(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var AT={time:null,delay:0,duration:250,ease:IT};function OT(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 FT(e){var t,n;e instanceof Hn?(t=e._id,e=e._name):(t=zw(),(n=AT).time=Yh(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,o=0;o<s;++o)for(var i=r[o],a=i.length,l,u=0;u<a;++u)(l=i[u])&&Qu(l,e,t,u,i,n||OT(l,t));return new Hn(r,this._parents,e,t)}xa.prototype.interrupt=IM;xa.prototype.transition=FT;const el=e=>()=>e;function DT(e,{sourceEvent:t,target:n,transform:r,dispatch:s}){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:s}})}function An(e,t,n){this.k=e,this.x=t,this.y=n}An.prototype={constructor:An,scale:function(e){return e===1?this:new An(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new An(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 Gu=new An(1,0,0);$w.prototype=An.prototype;function $w(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Gu;return e.__zoom}function Qc(e){e.stopImmediatePropagation()}function ri(e){e.preventDefault(),e.stopImmediatePropagation()}function zT(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function $T(){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 Dg(){return this.__zoom||Gu}function BT(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function HT(){return navigator.maxTouchPoints||"ontouchstart"in this}function UT(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],o=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),i>o?(o+i)/2:Math.min(0,o)||Math.max(0,i))}function Bw(){var e=zT,t=$T,n=UT,r=BT,s=HT,o=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,l=bl,u=Wu("start","zoom","end"),d,c,f,m=500,p=150,x=0,w=10;function g(k){k.property("__zoom",Dg).on("wheel.zoom",C,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",M).filter(s).on("touchstart.zoom",P).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",O).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(k,D,I,F){var N=k.selection?k.selection():k;N.property("__zoom",Dg),k!==N?E(k,D,I,F):N.interrupt().each(function(){_(this,arguments).event(F).start().zoom(null,typeof D=="function"?D.apply(this,arguments):D).end()})},g.scaleBy=function(k,D,I,F){g.scaleTo(k,function(){var N=this.__zoom.k,T=typeof D=="function"?D.apply(this,arguments):D;return N*T},I,F)},g.scaleTo=function(k,D,I,F){g.transform(k,function(){var N=t.apply(this,arguments),T=this.__zoom,z=I==null?S(N):typeof I=="function"?I.apply(this,arguments):I,B=T.invert(z),H=typeof D=="function"?D.apply(this,arguments):D;return n(y(v(T,H),z,B),N,i)},I,F)},g.translateBy=function(k,D,I,F){g.transform(k,function(){return n(this.__zoom.translate(typeof D=="function"?D.apply(this,arguments):D,typeof I=="function"?I.apply(this,arguments):I),t.apply(this,arguments),i)},null,F)},g.translateTo=function(k,D,I,F,N){g.transform(k,function(){var T=t.apply(this,arguments),z=this.__zoom,B=F==null?S(T):typeof F=="function"?F.apply(this,arguments):F;return n(Gu.translate(B[0],B[1]).scale(z.k).translate(typeof D=="function"?-D.apply(this,arguments):-D,typeof I=="function"?-I.apply(this,arguments):-I),T,i)},F,N)};function v(k,D){return D=Math.max(o[0],Math.min(o[1],D)),D===k.k?k:new An(D,k.x,k.y)}function y(k,D,I){var F=D[0]-I[0]*k.k,N=D[1]-I[1]*k.k;return F===k.x&&N===k.y?k:new An(k.k,F,N)}function S(k){return[(+k[0][0]+ +k[1][0])/2,(+k[0][1]+ +k[1][1])/2]}function E(k,D,I,F){k.on("start.zoom",function(){_(this,arguments).event(F).start()}).on("interrupt.zoom end.zoom",function(){_(this,arguments).event(F).end()}).tween("zoom",function(){var N=this,T=arguments,z=_(N,T).event(F),B=t.apply(N,T),H=I==null?S(B):typeof I=="function"?I.apply(N,T):I,K=Math.max(B[1][0]-B[0][0],B[1][1]-B[0][1]),V=N.__zoom,X=typeof D=="function"?D.apply(N,T):D,Q=l(V.invert(H).concat(K/V.k),X.invert(H).concat(K/X.k));return function(Y){if(Y===1)Y=X;else{var W=Q(Y),Z=K/W[2];Y=new An(Z,H[0]-W[0]*Z,H[1]-W[1]*Z)}z.zoom(null,Y)}})}function _(k,D,I){return!I&&k.__zooming||new b(k,D)}function b(k,D){this.that=k,this.args=D,this.active=0,this.sourceEvent=null,this.extent=t.apply(k,D),this.taps=0}b.prototype={event:function(k){return k&&(this.sourceEvent=k),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(k,D){return this.mouse&&k!=="mouse"&&(this.mouse[1]=D.invert(this.mouse[0])),this.touch0&&k!=="touch"&&(this.touch0[1]=D.invert(this.touch0[0])),this.touch1&&k!=="touch"&&(this.touch1[1]=D.invert(this.touch1[0])),this.that.__zoom=D,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(k){var D=Nt(this.that).datum();u.call(k,this.that,new DT(k,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:u}),D)}};function C(k,...D){if(!e.apply(this,arguments))return;var I=_(this,D).event(k),F=this.__zoom,N=Math.max(o[0],Math.min(o[1],F.k*Math.pow(2,r.apply(this,arguments)))),T=Yt(k);if(I.wheel)(I.mouse[0][0]!==T[0]||I.mouse[0][1]!==T[1])&&(I.mouse[1]=F.invert(I.mouse[0]=T)),clearTimeout(I.wheel);else{if(F.k===N)return;I.mouse=[T,F.invert(T)],Nl(this),I.start()}ri(k),I.wheel=setTimeout(z,p),I.zoom("mouse",n(y(v(F,N),I.mouse[0],I.mouse[1]),I.extent,i));function z(){I.wheel=null,I.end()}}function L(k,...D){if(f||!e.apply(this,arguments))return;var I=k.currentTarget,F=_(this,D,!0).event(k),N=Nt(k.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",K,!0),T=Yt(k,I),z=k.clientX,B=k.clientY;Ew(k.view),Qc(k),F.mouse=[T,this.__zoom.invert(T)],Nl(this),F.start();function H(V){if(ri(V),!F.moved){var X=V.clientX-z,Q=V.clientY-B;F.moved=X*X+Q*Q>x}F.event(V).zoom("mouse",n(y(F.that.__zoom,F.mouse[0]=Yt(V,I),F.mouse[1]),F.extent,i))}function K(V){N.on("mousemove.zoom mouseup.zoom",null),Cw(V.view,F.moved),ri(V),F.event(V).end()}}function M(k,...D){if(e.apply(this,arguments)){var I=this.__zoom,F=Yt(k.changedTouches?k.changedTouches[0]:k,this),N=I.invert(F),T=I.k*(k.shiftKey?.5:2),z=n(y(v(I,T),F,N),t.apply(this,D),i);ri(k),a>0?Nt(this).transition().duration(a).call(E,z,F,k):Nt(this).call(g.transform,z,F,k)}}function P(k,...D){if(e.apply(this,arguments)){var I=k.touches,F=I.length,N=_(this,D,k.changedTouches.length===F).event(k),T,z,B,H;for(Qc(k),z=0;z<F;++z)B=I[z],H=Yt(B,this),H=[H,this.__zoom.invert(H),B.identifier],N.touch0?!N.touch1&&N.touch0[2]!==H[2]&&(N.touch1=H,N.taps=0):(N.touch0=H,T=!0,N.taps=1+!!d);d&&(d=clearTimeout(d)),T&&(N.taps<2&&(c=H[0],d=setTimeout(function(){d=null},m)),Nl(this),N.start())}}function j(k,...D){if(this.__zooming){var I=_(this,D).event(k),F=k.changedTouches,N=F.length,T,z,B,H;for(ri(k),T=0;T<N;++T)z=F[T],B=Yt(z,this),I.touch0&&I.touch0[2]===z.identifier?I.touch0[0]=B:I.touch1&&I.touch1[2]===z.identifier&&(I.touch1[0]=B);if(z=I.that.__zoom,I.touch1){var K=I.touch0[0],V=I.touch0[1],X=I.touch1[0],Q=I.touch1[1],Y=(Y=X[0]-K[0])*Y+(Y=X[1]-K[1])*Y,W=(W=Q[0]-V[0])*W+(W=Q[1]-V[1])*W;z=v(z,Math.sqrt(Y/W)),B=[(K[0]+X[0])/2,(K[1]+X[1])/2],H=[(V[0]+Q[0])/2,(V[1]+Q[1])/2]}else if(I.touch0)B=I.touch0[0],H=I.touch0[1];else return;I.zoom("touch",n(y(z,B,H),I.extent,i))}}function O(k,...D){if(this.__zooming){var I=_(this,D).event(k),F=k.changedTouches,N=F.length,T,z;for(Qc(k),f&&clearTimeout(f),f=setTimeout(function(){f=null},m),T=0;T<N;++T)z=F[T],I.touch0&&I.touch0[2]===z.identifier?delete I.touch0:I.touch1&&I.touch1[2]===z.identifier&&delete I.touch1;if(I.touch1&&!I.touch0&&(I.touch0=I.touch1,delete I.touch1),I.touch0)I.touch0[1]=this.__zoom.invert(I.touch0[0]);else if(I.end(),I.taps===2&&(z=Yt(z,this),Math.hypot(c[0]-z[0],c[1]-z[1])<w)){var B=Nt(this).on("dblclick.zoom");B&&B.apply(this,arguments)}}}return g.wheelDelta=function(k){return arguments.length?(r=typeof k=="function"?k:el(+k),g):r},g.filter=function(k){return arguments.length?(e=typeof k=="function"?k:el(!!k),g):e},g.touchable=function(k){return arguments.length?(s=typeof k=="function"?k:el(!!k),g):s},g.extent=function(k){return arguments.length?(t=typeof k=="function"?k:el([[+k[0][0],+k[0][1]],[+k[1][0],+k[1][1]]]),g):t},g.scaleExtent=function(k){return arguments.length?(o[0]=+k[0],o[1]=+k[1],g):[o[0],o[1]]},g.translateExtent=function(k){return arguments.length?(i[0][0]=+k[0][0],i[1][0]=+k[1][0],i[0][1]=+k[0][1],i[1][1]=+k[1][1],g):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},g.constrain=function(k){return arguments.length?(n=k,g):n},g.duration=function(k){return arguments.length?(a=+k,g):a},g.interpolate=function(k){return arguments.length?(l=k,g):l},g.on=function(){var k=u.on.apply(u,arguments);return k===u?g:k},g.clickDistance=function(k){return arguments.length?(x=(k=+k)*k,g):Math.sqrt(x)},g.tapDistance=function(k){return arguments.length?(w=+k,g):w},g}const bn={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,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},Xi=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Hw=["Enter"," ","Escape"],Uw={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var No;(function(e){e.Strict="strict",e.Loose="loose"})(No||(No={}));var as;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(as||(as={}));var Yi;(function(e){e.Partial="partial",e.Full="full"})(Yi||(Yi={}));const Vw={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var rr;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(rr||(rr={}));var ws;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(ws||(ws={}));var ee;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ee||(ee={}));const zg={[ee.Left]:ee.Right,[ee.Right]:ee.Left,[ee.Top]:ee.Bottom,[ee.Bottom]:ee.Top};function Ww(e){return e===null?null:e?"valid":"invalid"}const Kw=e=>"id"in e&&"source"in e&&"target"in e,VT=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),ep=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),wa=(e,t=[0,0])=>{const{width:n,height:r}=Vn(e),s=e.origin??t,o=n*s[0],i=r*s[1];return{x:e.position.x-o,y:e.position.y-i}},WT=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const o=typeof s=="string";let i=!t.nodeLookup&&!o?s:void 0;t.nodeLookup&&(i=o?t.nodeLookup.get(s):ep(s)?s:t.nodeLookup.get(s.id));const a=i?gu(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Xu(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Yu(n)},Sa=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=Xu(n,gu(s)),r=!0)}),r?Yu(n):{x:0,y:0,width:0,height:0}},tp=(e,t,[n,r,s]=[0,0,1],o=!1,i=!1)=>{const a={...ba(t,[n,r,s]),width:t.width/s,height:t.height/s},l=[];for(const u of e.values()){const{measured:d,selectable:c=!0,hidden:f=!1}=u;if(i&&!c||f)continue;const m=d.width??u.width??u.initialWidth??null,p=d.height??u.height??u.initialHeight??null,x=Zi(a,Po(u)),w=(m??0)*(p??0),g=o&&x>0;(!u.internals.handleBounds||g||x>=w||u.dragging)&&l.push(u)}return l},KT=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function qT(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{s.measured.width&&s.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!s.hidden)&&(!r||r.has(s.id))&&n.set(s.id,s)}),n}async function QT({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:o},i){if(e.size===0)return Promise.resolve(!0);const a=qT(e,i),l=Sa(a),u=np(l,t,n,(i==null?void 0:i.minZoom)??s,(i==null?void 0:i.maxZoom)??o,(i==null?void 0:i.padding)??.1);return await r.setViewport(u,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),Promise.resolve(!0)}function qw({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:o}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:l,y:u}=a?a.internals.positionAbsolute:{x:0,y:0},d=i.origin??r;let c=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!a)o==null||o("005",bn.error005());else{const m=a.measured.width,p=a.measured.height;m&&p&&(c=[[l,u],[l+m,u+p]])}else a&&Ro(i.extent)&&(c=[[i.extent[0][0]+l,i.extent[0][1]+u],[i.extent[1][0]+l,i.extent[1][1]+u]]);const f=Ro(c)?Ss(t,c,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&(o==null||o("015",bn.error015())),{position:{x:f.x-l+(i.measured.width??0)*d[0],y:f.y-u+(i.measured.height??0)*d[1]},positionAbsolute:f}}async function GT({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const o=new Set(e.map(f=>f.id)),i=[];for(const f of n){if(f.deletable===!1)continue;const m=o.has(f.id),p=!m&&f.parentId&&i.find(x=>x.id===f.parentId);(m||p)&&i.push(f)}const a=new Set(t.map(f=>f.id)),l=r.filter(f=>f.deletable!==!1),d=KT(i,l);for(const f of l)a.has(f.id)&&!d.find(p=>p.id===f.id)&&d.push(f);if(!s)return{edges:d,nodes:i};const c=await s({nodes:i,edges:d});return typeof c=="boolean"?c?{edges:d,nodes:i}:{edges:[],nodes:[]}:c}const ko=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ss=(e={x:0,y:0},t,n)=>({x:ko(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:ko(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Qw(e,t,n){const{width:r,height:s}=Vn(n),{x:o,y:i}=n.internals.positionAbsolute;return Ss(e,[[o,i],[o+r,i+s]],t)}const $g=(e,t,n)=>e<t?ko(Math.abs(e-t),1,t)/t:e>n?-ko(Math.abs(e-n),1,t)/t:0,Gw=(e,t,n=15,r=40)=>{const s=$g(e.x,r,t.width-r)*n,o=$g(e.y,r,t.height-r)*n;return[s,o]},Xu=(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)}),bf=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Yu=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Po=(e,t=[0,0])=>{var s,o;const{x:n,y:r}=ep(e)?e.internals.positionAbsolute:wa(e,t);return{x:n,y:r,width:((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0,height:((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0}},gu=(e,t=[0,0])=>{var s,o;const{x:n,y:r}=ep(e)?e.internals.positionAbsolute:wa(e,t);return{x:n,y:r,x2:n+(((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0),y2:r+(((o=e.measured)==null?void 0:o.height)??e.height??e.initialHeight??0)}},Xw=(e,t)=>Yu(Xu(bf(e),bf(t))),Zi=(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)},Bg=e=>en(e.width)&&en(e.height)&&en(e.x)&&en(e.y),en=e=>!isNaN(e)&&isFinite(e),XT=(e,t)=>{},_a=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ba=({x:e,y:t},[n,r,s],o=!1,i=[1,1])=>{const a={x:(e-n)/s,y:(t-r)/s};return o?_a(a,i):a},yu=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r});function Ns(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function YT(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Ns(e,n),s=Ns(e,t);return{top:r,right:s,bottom:r,left:s,x:s*2,y:r*2}}if(typeof e=="object"){const r=Ns(e.top??e.y??0,n),s=Ns(e.bottom??e.y??0,n),o=Ns(e.left??e.x??0,t),i=Ns(e.right??e.x??0,t);return{top:r,right:i,bottom:s,left:o,x:o+i,y:r+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function ZT(e,t,n,r,s,o){const{x:i,y:a}=yu(e,[t,n,r]),{x:l,y:u}=yu({x:e.x+e.width,y:e.y+e.height},[t,n,r]),d=s-l,c=o-u;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(c)}}const np=(e,t,n,r,s,o)=>{const i=YT(o,t,n),a=(t-i.x)/e.width,l=(n-i.y)/e.height,u=Math.min(a,l),d=ko(u,r,s),c=e.x+e.width/2,f=e.y+e.height/2,m=t/2-c*d,p=n/2-f*d,x=ZT(e,m,p,d,t,n),w={left:Math.min(x.left-i.left,0),top:Math.min(x.top-i.top,0),right:Math.min(x.right-i.right,0),bottom:Math.min(x.bottom-i.bottom,0)};return{x:m-w.left+w.right,y:p-w.top+w.bottom,zoom:d}},Ji=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Ro(e){return e!=null&&e!=="parent"}function Vn(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function Yw(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function Zw(e,t={width:0,height:0},n,r,s){const o={...e},i=r.get(n);if(i){const a=i.origin||s;o.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],o.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return o}function Hg(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function JT(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}function eL(e){return{...Uw,...e||{}}}function Ei(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:o,y:i}=tn(e),a=ba({x:o-((s==null?void 0:s.left)??0),y:i-((s==null?void 0:s.top)??0)},r),{x:l,y:u}=n?_a(a,t):a;return{xSnapped:l,ySnapped:u,...a}}const rp=e=>({width:e.offsetWidth,height:e.offsetHeight}),Jw=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},tL=["INPUT","SELECT","TEXTAREA"];function e1(e){var r,s;const t=((s=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:s[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:tL.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const t1=e=>"clientX"in e,tn=(e,t)=>{var o,i;const n=t1(e),r=n?e.clientX:(o=e.touches)==null?void 0:o[0].clientX,s=n?e.clientY:(i=e.touches)==null?void 0:i[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:s-((t==null?void 0:t.top)??0)}},Ug=(e,t,n,r,s)=>{const o=t.querySelectorAll(`.${e}`);return!o||!o.length?null:Array.from(o).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...rp(i)}})};function n1({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:o,targetControlX:i,targetControlY:a}){const l=e*.125+s*.375+i*.375+n*.125,u=t*.125+o*.375+a*.375+r*.125,d=Math.abs(l-e),c=Math.abs(u-t);return[l,u,d,c]}function tl(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Vg({pos:e,x1:t,y1:n,x2:r,y2:s,c:o}){switch(e){case ee.Left:return[t-tl(t-r,o),n];case ee.Right:return[t+tl(r-t,o),n];case ee.Top:return[t,n-tl(n-s,o)];case ee.Bottom:return[t,n+tl(s-n,o)]}}function r1({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:s,targetPosition:o=ee.Top,curvature:i=.25}){const[a,l]=Vg({pos:n,x1:e,y1:t,x2:r,y2:s,c:i}),[u,d]=Vg({pos:o,x1:r,y1:s,x2:e,y2:t,c:i}),[c,f,m,p]=n1({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:a,sourceControlY:l,targetControlX:u,targetControlY:d});return[`M${e},${t} C${a},${l} ${u},${d} ${r},${s}`,c,f,m,p]}function s1({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,o=n<e?n+s:n-s,i=Math.abs(r-t)/2,a=r<t?r+i:r-i;return[o,a,s,i]}function nL({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1,zIndexMode:o="basic"}){if(o==="manual")return r;const i=s&&n?r+1e3:r,a=Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0);return i+a}function rL({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const o=Xu(gu(e),gu(t));o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return Zi(i,Yu(o))>0}const sL=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,oL=(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)),iL=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||sL;let s;return Kw(e)?s={...e}:s={...e,id:r(e)},oL(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function o1({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,o,i,a]=s1({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,o,i,a]}const Wg={[ee.Left]:{x:-1,y:0},[ee.Right]:{x:1,y:0},[ee.Top]:{x:0,y:-1},[ee.Bottom]:{x:0,y:1}},aL=({source:e,sourcePosition:t=ee.Bottom,target:n})=>t===ee.Left||t===ee.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},Kg=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function lL({source:e,sourcePosition:t=ee.Bottom,target:n,targetPosition:r=ee.Top,center:s,offset:o,stepPosition:i}){const a=Wg[t],l=Wg[r],u={x:e.x+a.x*o,y:e.y+a.y*o},d={x:n.x+l.x*o,y:n.y+l.y*o},c=aL({source:u,sourcePosition:t,target:d}),f=c.x!==0?"x":"y",m=c[f];let p=[],x,w;const g={x:0,y:0},v={x:0,y:0},[,,y,S]=s1({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[f]*l[f]===-1){f==="x"?(x=s.x??u.x+(d.x-u.x)*i,w=s.y??(u.y+d.y)/2):(x=s.x??(u.x+d.x)/2,w=s.y??u.y+(d.y-u.y)*i);const _=[{x,y:u.y},{x,y:d.y}],b=[{x:u.x,y:w},{x:d.x,y:w}];a[f]===m?p=f==="x"?_:b:p=f==="x"?b:_}else{const _=[{x:u.x,y:d.y}],b=[{x:d.x,y:u.y}];if(f==="x"?p=a.x===m?b:_:p=a.y===m?_:b,t===r){const j=Math.abs(e[f]-n[f]);if(j<=o){const O=Math.min(o-1,o-j);a[f]===m?g[f]=(u[f]>e[f]?-1:1)*O:v[f]=(d[f]>n[f]?-1:1)*O}}if(t!==r){const j=f==="x"?"y":"x",O=a[f]===l[j],k=u[j]>d[j],D=u[j]<d[j];(a[f]===1&&(!O&&k||O&&D)||a[f]!==1&&(!O&&D||O&&k))&&(p=f==="x"?_:b)}const C={x:u.x+g.x,y:u.y+g.y},L={x:d.x+v.x,y:d.y+v.y},M=Math.max(Math.abs(C.x-p[0].x),Math.abs(L.x-p[0].x)),P=Math.max(Math.abs(C.y-p[0].y),Math.abs(L.y-p[0].y));M>=P?(x=(C.x+L.x)/2,w=p[0].y):(x=p[0].x,w=(C.y+L.y)/2)}return[[e,{x:u.x+g.x,y:u.y+g.y},...p,{x:d.x+v.x,y:d.y+v.y},n],x,w,y,S]}function uL(e,t,n,r){const s=Math.min(Kg(e,t)/2,Kg(t,n)/2,r),{x:o,y:i}=t;if(e.x===o&&o===n.x||e.y===i&&i===n.y)return`L${o} ${i}`;if(e.y===i){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${o+s*u},${i}Q ${o},${i} ${o},${i+s*d}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${o},${i+s*l}Q ${o},${i} ${o+s*a},${i}`}function Ef({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:s,targetPosition:o=ee.Top,borderRadius:i=5,centerX:a,centerY:l,offset:u=20,stepPosition:d=.5}){const[c,f,m,p,x]=lL({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:o,center:{x:a,y:l},offset:u,stepPosition:d});return[c.reduce((g,v,y)=>{let S="";return y>0&&y<c.length-1?S=uL(c[y-1],v,c[y+1],i):S=`${y===0?"M":"L"}${v.x} ${v.y}`,g+=S,g},""),f,m,p,x]}function qg(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function cL(e){var c;const{sourceNode:t,targetNode:n}=e;if(!qg(t)||!qg(n))return null;const r=t.internals.handleBounds||Qg(t.handles),s=n.internals.handleBounds||Qg(n.handles),o=Gg((r==null?void 0:r.source)??[],e.sourceHandle),i=Gg(e.connectionMode===No.Strict?(s==null?void 0:s.target)??[]:((s==null?void 0:s.target)??[]).concat((s==null?void 0:s.source)??[]),e.targetHandle);if(!o||!i)return(c=e.onError)==null||c.call(e,"008",bn.error008(o?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(o==null?void 0:o.position)||ee.Bottom,l=(i==null?void 0:i.position)||ee.Top,u=_s(t,o,a),d=_s(n,i,l);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:l}}function Qg(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function _s(e,t,n=ee.Left,r=!1){const s=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,o=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??Vn(e);if(r)return{x:s+i/2,y:o+a/2};switch((t==null?void 0:t.position)??n){case ee.Top:return{x:s+i/2,y:o};case ee.Right:return{x:s+i,y:o+a/2};case ee.Bottom:return{x:s+i/2,y:o+a};case ee.Left:return{x:s,y:o+a/2}}}function Gg(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Cf(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function dL(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const o=new Set;return e.reduce((i,a)=>([a.markerStart||r,a.markerEnd||s].forEach(l=>{if(l&&typeof l=="object"){const u=Cf(l,t);o.has(u)||(i.push({id:u,color:l.color||n,...l}),o.add(u))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const i1=1e3,fL=10,sp={nodeOrigin:[0,0],nodeExtent:Xi,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},hL={...sp,checkEquality:!0};function op(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function pL(e,t,n){const r=op(sp,n);for(const s of e.values())if(s.parentId)ap(s,e,t,r);else{const o=wa(s,r.nodeOrigin),i=Ro(s.extent)?s.extent:r.nodeExtent,a=Ss(o,i,Vn(s));s.internals.positionAbsolute=a}}function mL(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const s of e.handles){const o={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(o):s.type==="target"&&r.push(o)}return{source:n,target:r}}function ip(e){return e==="manual"}function Nf(e,t,n,r={}){var u,d;const s=op(hL,r),o={i:0},i=new Map(t),a=s!=null&&s.elevateNodesOnSelect&&!ip(s.zIndexMode)?i1:0;let l=e.length>0;t.clear(),n.clear();for(const c of e){let f=i.get(c.id);if(s.checkEquality&&c===(f==null?void 0:f.internals.userNode))t.set(c.id,f);else{const m=wa(c,s.nodeOrigin),p=Ro(c.extent)?c.extent:s.nodeExtent,x=Ss(m,p,Vn(c));f={...s.defaults,...c,measured:{width:(u=c.measured)==null?void 0:u.width,height:(d=c.measured)==null?void 0:d.height},internals:{positionAbsolute:x,handleBounds:mL(c,f),z:a1(c,a,s.zIndexMode),userNode:c}},t.set(c.id,f)}(f.measured===void 0||f.measured.width===void 0||f.measured.height===void 0)&&!f.hidden&&(l=!1),c.parentId&&ap(f,t,n,r,o)}return l}function gL(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function ap(e,t,n,r,s){const{elevateNodesOnSelect:o,nodeOrigin:i,nodeExtent:a,zIndexMode:l}=op(sp,r),u=e.parentId,d=t.get(u);if(!d){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}gL(e,n),s&&!d.parentId&&d.internals.rootParentIndex===void 0&&l==="auto"&&(d.internals.rootParentIndex=++s.i,d.internals.z=d.internals.z+s.i*fL),s&&d.internals.rootParentIndex!==void 0&&(s.i=d.internals.rootParentIndex);const c=o&&!ip(l)?i1:0,{x:f,y:m,z:p}=yL(e,d,i,a,c,l),{positionAbsolute:x}=e.internals,w=f!==x.x||m!==x.y;(w||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:w?{x:f,y:m}:x,z:p}})}function a1(e,t,n){const r=en(e.zIndex)?e.zIndex:0;return ip(n)?r:r+(e.selected?t:0)}function yL(e,t,n,r,s,o){const{x:i,y:a}=t.internals.positionAbsolute,l=Vn(e),u=wa(e,n),d=Ro(e.extent)?Ss(u,e.extent,l):u;let c=Ss({x:i+d.x,y:a+d.y},r,l);e.extent==="parent"&&(c=Qw(c,l,t));const f=a1(e,s,o),m=t.internals.z??0;return{x:c.x,y:c.y,z:m>=f?m+1:f}}function lp(e,t,n,r=[0,0]){var i;const s=[],o=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const u=((i=o.get(a.parentId))==null?void 0:i.expandedRect)??Po(l),d=Xw(u,a.rect);o.set(a.parentId,{expandedRect:d,parent:l})}return o.size>0&&o.forEach(({expandedRect:a,parent:l},u)=>{var y;const d=l.internals.positionAbsolute,c=Vn(l),f=l.origin??r,m=a.x<d.x?Math.round(Math.abs(d.x-a.x)):0,p=a.y<d.y?Math.round(Math.abs(d.y-a.y)):0,x=Math.max(c.width,Math.round(a.width)),w=Math.max(c.height,Math.round(a.height)),g=(x-c.width)*f[0],v=(w-c.height)*f[1];(m>0||p>0||g||v)&&(s.push({id:u,type:"position",position:{x:l.position.x-m+g,y:l.position.y-p+v}}),(y=n.get(u))==null||y.forEach(S=>{e.some(E=>E.id===S.id)||s.push({id:S.id,type:"position",position:{x:S.position.x+m,y:S.position.y+p}})})),(c.width<a.width||c.height<a.height||m||p)&&s.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:x+(m?f[0]*m-g:0),height:w+(p?f[1]*p-v:0)}})}),s}function xL(e,t,n,r,s,o,i){const a=r==null?void 0:r.querySelector(".xyflow__viewport");let l=!1;if(!a)return{changes:[],updatedInternals:l};const u=[],d=window.getComputedStyle(a),{m22:c}=new window.DOMMatrixReadOnly(d.transform),f=[];for(const m of e.values()){const p=t.get(m.id);if(!p)continue;if(p.hidden){t.set(p.id,{...p,internals:{...p.internals,handleBounds:void 0}}),l=!0;continue}const x=rp(m.nodeElement),w=p.measured.width!==x.width||p.measured.height!==x.height;if(!!(x.width&&x.height&&(w||!p.internals.handleBounds||m.force))){const v=m.nodeElement.getBoundingClientRect(),y=Ro(p.extent)?p.extent:o;let{positionAbsolute:S}=p.internals;p.parentId&&p.extent==="parent"?S=Qw(S,x,t.get(p.parentId)):y&&(S=Ss(S,y,x));const E={...p,measured:x,internals:{...p.internals,positionAbsolute:S,handleBounds:{source:Ug("source",m.nodeElement,v,c,p.id),target:Ug("target",m.nodeElement,v,c,p.id)}}};t.set(p.id,E),p.parentId&&ap(E,t,n,{nodeOrigin:s,zIndexMode:i}),l=!0,w&&(u.push({id:p.id,type:"dimensions",dimensions:x}),p.expandParent&&p.parentId&&f.push({id:p.id,parentId:p.parentId,rect:Po(E,s)}))}}if(f.length>0){const m=lp(f,t,n,s);u.push(...m)}return{changes:u,updatedInternals:l}}async function vL({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,o]],r),a=!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2]);return Promise.resolve(a)}function Xg(e,t,n,r,s,o){let i=s;const a=r.get(i)||new Map;r.set(i,a.set(n,t)),i=`${s}-${e}`;const l=r.get(i)||new Map;if(r.set(i,l.set(n,t)),o){i=`${s}-${e}-${o}`;const u=r.get(i)||new Map;r.set(i,u.set(n,t))}}function l1(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:o,sourceHandle:i=null,targetHandle:a=null}=r,l={edgeId:r.id,source:s,target:o,sourceHandle:i,targetHandle:a},u=`${s}-${i}--${o}-${a}`,d=`${o}-${a}--${s}-${i}`;Xg("source",l,d,e,s,i),Xg("target",l,u,e,o,a),t.set(r.id,r)}}function u1(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:u1(n,t):!1}function Yg(e,t,n){var s;let r=e;do{if((s=r==null?void 0:r.matches)!=null&&s.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function wL(e,t,n,r){const s=new Map;for(const[o,i]of e)if((i.selected||i.id===r)&&(!i.parentId||!u1(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(o);a&&s.set(o,{id:o,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return s}function Gc({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var i,a,l;const s=[];for(const[u,d]of t){const c=(i=n.get(u))==null?void 0:i.internals.userNode;c&&s.push({...c,position:d.position,dragging:r})}if(!e)return[s[0],s];const o=(a=n.get(e))==null?void 0:a.internals.userNode;return[o?{...o,position:((l=t.get(e))==null?void 0:l.position)||o.position,dragging:r}:s[0],s]}function SL({dragItems:e,snapGrid:t,x:n,y:r}){const s=e.values().next().value;if(!s)return null;const o={x:n-s.distance.x,y:r-s.distance.y},i=_a(o,t);return{x:i.x-o.x,y:i.y-o.y}}function _L({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let o={x:null,y:null},i=0,a=new Map,l=!1,u={x:0,y:0},d=null,c=!1,f=null,m=!1,p=!1,x=null;function w({noDragClassName:v,handleSelector:y,domNode:S,isSelectable:E,nodeId:_,nodeClickDistance:b=0}){f=Nt(S);function C({x:j,y:O}){const{nodeLookup:k,nodeExtent:D,snapGrid:I,snapToGrid:F,nodeOrigin:N,onNodeDrag:T,onSelectionDrag:z,onError:B,updateNodePositions:H}=t();o={x:j,y:O};let K=!1;const V=a.size>1,X=V&&D?bf(Sa(a)):null,Q=V&&F?SL({dragItems:a,snapGrid:I,x:j,y:O}):null;for(const[Y,W]of a){if(!k.has(Y))continue;let Z={x:j-W.distance.x,y:O-W.distance.y};F&&(Z=Q?{x:Math.round(Z.x+Q.x),y:Math.round(Z.y+Q.y)}:_a(Z,I));let oe=null;if(V&&D&&!W.extent&&X){const{positionAbsolute:te}=W.internals,he=te.x-X.x+D[0][0],ye=te.x+W.measured.width-X.x2+D[1][0],ce=te.y-X.y+D[0][1],$e=te.y+W.measured.height-X.y2+D[1][1];oe=[[he,ce],[ye,$e]]}const{position:re,positionAbsolute:J}=qw({nodeId:Y,nextPosition:Z,nodeLookup:k,nodeExtent:oe||D,nodeOrigin:N,onError:B});K=K||W.position.x!==re.x||W.position.y!==re.y,W.position=re,W.internals.positionAbsolute=J}if(p=p||K,!!K&&(H(a,!0),x&&(r||T||!_&&z))){const[Y,W]=Gc({nodeId:_,dragItems:a,nodeLookup:k});r==null||r(x,a,Y,W),T==null||T(x,Y,W),_||z==null||z(x,W)}}async function L(){if(!d)return;const{transform:j,panBy:O,autoPanSpeed:k,autoPanOnNodeDrag:D}=t();if(!D){l=!1,cancelAnimationFrame(i);return}const[I,F]=Gw(u,d,k);(I!==0||F!==0)&&(o.x=(o.x??0)-I/j[2],o.y=(o.y??0)-F/j[2],await O({x:I,y:F})&&C(o)),i=requestAnimationFrame(L)}function M(j){var V;const{nodeLookup:O,multiSelectionActive:k,nodesDraggable:D,transform:I,snapGrid:F,snapToGrid:N,selectNodesOnDrag:T,onNodeDragStart:z,onSelectionDragStart:B,unselectNodesAndEdges:H}=t();c=!0,(!T||!E)&&!k&&_&&((V=O.get(_))!=null&&V.selected||H()),E&&T&&_&&(e==null||e(_));const K=Ei(j.sourceEvent,{transform:I,snapGrid:F,snapToGrid:N,containerBounds:d});if(o=K,a=wL(O,D,K,_),a.size>0&&(n||z||!_&&B)){const[X,Q]=Gc({nodeId:_,dragItems:a,nodeLookup:O});n==null||n(j.sourceEvent,a,X,Q),z==null||z(j.sourceEvent,X,Q),_||B==null||B(j.sourceEvent,Q)}}const P=Nw().clickDistance(b).on("start",j=>{const{domNode:O,nodeDragThreshold:k,transform:D,snapGrid:I,snapToGrid:F}=t();d=(O==null?void 0:O.getBoundingClientRect())||null,m=!1,p=!1,x=j.sourceEvent,k===0&&M(j),o=Ei(j.sourceEvent,{transform:D,snapGrid:I,snapToGrid:F,containerBounds:d}),u=tn(j.sourceEvent,d)}).on("drag",j=>{const{autoPanOnNodeDrag:O,transform:k,snapGrid:D,snapToGrid:I,nodeDragThreshold:F,nodeLookup:N}=t(),T=Ei(j.sourceEvent,{transform:k,snapGrid:D,snapToGrid:I,containerBounds:d});if(x=j.sourceEvent,(j.sourceEvent.type==="touchmove"&&j.sourceEvent.touches.length>1||_&&!N.has(_))&&(m=!0),!m){if(!l&&O&&c&&(l=!0,L()),!c){const z=tn(j.sourceEvent,d),B=z.x-u.x,H=z.y-u.y;Math.sqrt(B*B+H*H)>F&&M(j)}(o.x!==T.xSnapped||o.y!==T.ySnapped)&&a&&c&&(u=tn(j.sourceEvent,d),C(T))}}).on("end",j=>{if(!(!c||m)&&(l=!1,c=!1,cancelAnimationFrame(i),a.size>0)){const{nodeLookup:O,updateNodePositions:k,onNodeDragStop:D,onSelectionDragStop:I}=t();if(p&&(k(a,!1),p=!1),s||D||!_&&I){const[F,N]=Gc({nodeId:_,dragItems:a,nodeLookup:O,dragging:!1});s==null||s(j.sourceEvent,a,F,N),D==null||D(j.sourceEvent,F,N),_||I==null||I(j.sourceEvent,N)}}}).filter(j=>{const O=j.target;return!j.button&&(!v||!Yg(O,`.${v}`,S))&&(!y||Yg(O,y,S))});f.call(P)}function g(){f==null||f.on(".drag",null)}return{update:w,destroy:g}}function bL(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const o of t.values())Zi(s,Po(o))>0&&r.push(o);return r}const EL=250;function CL(e,t,n,r){var a,l;let s=[],o=1/0;const i=bL(e,n,t+EL);for(const u of i){const d=[...((a=u.internals.handleBounds)==null?void 0:a.source)??[],...((l=u.internals.handleBounds)==null?void 0:l.target)??[]];for(const c of d){if(r.nodeId===c.nodeId&&r.type===c.type&&r.id===c.id)continue;const{x:f,y:m}=_s(u,c,c.position,!0),p=Math.sqrt(Math.pow(f-e.x,2)+Math.pow(m-e.y,2));p>t||(p<o?(s=[{...c,x:f,y:m}],o=p):p===o&&s.push({...c,x:f,y:m}))}}if(!s.length)return null;if(s.length>1){const u=r.type==="source"?"target":"source";return s.find(d=>d.type===u)??s[0]}return s[0]}function c1(e,t,n,r,s,o=!1){var u,d,c;const i=r.get(e);if(!i)return null;const a=s==="strict"?(u=i.internals.handleBounds)==null?void 0:u[t]:[...((d=i.internals.handleBounds)==null?void 0:d.source)??[],...((c=i.internals.handleBounds)==null?void 0:c.target)??[]],l=(n?a==null?void 0:a.find(f=>f.id===n):a==null?void 0:a[0])??null;return l&&o?{...l,..._s(i,l,l.position,!0)}:l}function d1(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function NL(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const f1=()=>!0;function kL(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:o,isTarget:i,domNode:a,nodeLookup:l,lib:u,autoPanOnConnect:d,flowId:c,panBy:f,cancelConnection:m,onConnectStart:p,onConnect:x,onConnectEnd:w,isValidConnection:g=f1,onReconnectEnd:v,updateConnection:y,getTransform:S,getFromHandle:E,autoPanSpeed:_,dragThreshold:b=1,handleDomNode:C}){const L=Jw(e.target);let M=0,P;const{x:j,y:O}=tn(e),k=d1(o,C),D=a==null?void 0:a.getBoundingClientRect();let I=!1;if(!D||!k)return;const F=c1(s,k,r,l,t);if(!F)return;let N=tn(e,D),T=!1,z=null,B=!1,H=null;function K(){if(!d||!D)return;const[re,J]=Gw(N,D,_);f({x:re,y:J}),M=requestAnimationFrame(K)}const V={...F,nodeId:s,type:k,position:F.position},X=l.get(s);let Y={inProgress:!0,isValid:null,from:_s(X,V,ee.Left,!0),fromHandle:V,fromPosition:V.position,fromNode:X,to:N,toHandle:null,toPosition:zg[V.position],toNode:null,pointer:N};function W(){I=!0,y(Y),p==null||p(e,{nodeId:s,handleId:r,handleType:k})}b===0&&W();function Z(re){if(!I){const{x:$e,y:un}=tn(re),dt=$e-j,At=un-O;if(!(dt*dt+At*At>b*b))return;W()}if(!E()||!V){oe(re);return}const J=S();N=tn(re,D),P=CL(ba(N,J,!1,[1,1]),n,l,V),T||(K(),T=!0);const te=h1(re,{handle:P,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:i?"target":"source",isValidConnection:g,doc:L,lib:u,flowId:c,nodeLookup:l});H=te.handleDomNode,z=te.connection,B=NL(!!P,te.isValid);const he=l.get(s),ye=he?_s(he,V,ee.Left,!0):Y.from,ce={...Y,from:ye,isValid:B,to:te.toHandle&&B?yu({x:te.toHandle.x,y:te.toHandle.y},J):N,toHandle:te.toHandle,toPosition:B&&te.toHandle?te.toHandle.position:zg[V.position],toNode:te.toHandle?l.get(te.toHandle.nodeId):null,pointer:N};y(ce),Y=ce}function oe(re){if(!("touches"in re&&re.touches.length>0)){if(I){(P||H)&&z&&B&&(x==null||x(z));const{inProgress:J,...te}=Y,he={...te,toPosition:Y.toHandle?Y.toPosition:null};w==null||w(re,he),o&&(v==null||v(re,he))}m(),cancelAnimationFrame(M),T=!1,B=!1,z=null,H=null,L.removeEventListener("mousemove",Z),L.removeEventListener("mouseup",oe),L.removeEventListener("touchmove",Z),L.removeEventListener("touchend",oe)}}L.addEventListener("mousemove",Z),L.addEventListener("mouseup",oe),L.addEventListener("touchmove",Z),L.addEventListener("touchend",oe)}function h1(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:o,doc:i,lib:a,flowId:l,isValidConnection:u=f1,nodeLookup:d}){const c=o==="target",f=t?i.querySelector(`.${a}-flow__handle[data-id="${l}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:m,y:p}=tn(e),x=i.elementFromPoint(m,p),w=x!=null&&x.classList.contains(`${a}-flow__handle`)?x:f,g={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const v=d1(void 0,w),y=w.getAttribute("data-nodeid"),S=w.getAttribute("data-handleid"),E=w.classList.contains("connectable"),_=w.classList.contains("connectableend");if(!y||!v)return g;const b={source:c?y:r,sourceHandle:c?S:s,target:c?r:y,targetHandle:c?s:S};g.connection=b;const L=E&&_&&(n===No.Strict?c&&v==="source"||!c&&v==="target":y!==r||S!==s);g.isValid=L&&u(b),g.toHandle=c1(y,v,S,d,n,!0)}return g}const kf={onPointerDown:kL,isValid:h1};function PL({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=Nt(e);function o({translateExtent:a,width:l,height:u,zoomStep:d=1,pannable:c=!0,zoomable:f=!0,inversePan:m=!1}){const p=y=>{if(y.sourceEvent.type!=="wheel"||!t)return;const S=n(),E=y.sourceEvent.ctrlKey&&Ji()?10:1,_=-y.sourceEvent.deltaY*(y.sourceEvent.deltaMode===1?.05:y.sourceEvent.deltaMode?1:.002)*d,b=S[2]*Math.pow(2,_*E);t.scaleTo(b)};let x=[0,0];const w=y=>{(y.sourceEvent.type==="mousedown"||y.sourceEvent.type==="touchstart")&&(x=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY])},g=y=>{const S=n();if(y.sourceEvent.type!=="mousemove"&&y.sourceEvent.type!=="touchmove"||!t)return;const E=[y.sourceEvent.clientX??y.sourceEvent.touches[0].clientX,y.sourceEvent.clientY??y.sourceEvent.touches[0].clientY],_=[E[0]-x[0],E[1]-x[1]];x=E;const b=r()*Math.max(S[2],Math.log(S[2]))*(m?-1:1),C={x:S[0]-_[0]*b,y:S[1]-_[1]*b},L=[[0,0],[l,u]];t.setViewportConstrained({x:C.x,y:C.y,zoom:S[2]},L,a)},v=Bw().on("start",w).on("zoom",c?g:null).on("zoom.wheel",f?p:null);s.call(v,{})}function i(){s.on("zoom",null)}return{update:o,destroy:i,pointer:Yt}}const Zu=e=>({x:e.x,y:e.y,zoom:e.k}),Xc=({x:e,y:t,zoom:n})=>Gu.translate(e,t).scale(n),Bs=(e,t)=>e.target.closest(`.${t}`),p1=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),RL=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,Yc=(e,t=0,n=RL,r=()=>{})=>{const s=typeof t=="number"&&t>0;return s||r(),s?e.transition().duration(t).ease(n).on("end",r):e},m1=e=>{const t=e.ctrlKey&&Ji()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function jL({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:o,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(Bs(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const c=n.property("__zoom").k||1;if(d.ctrlKey&&i){const w=Yt(d),g=m1(d),v=c*Math.pow(2,g);r.scaleTo(n,v,w,d);return}const f=d.deltaMode===1?20:1;let m=s===as.Vertical?0:d.deltaX*f,p=s===as.Horizontal?0:d.deltaY*f;!Ji()&&d.shiftKey&&s!==as.Vertical&&(m=d.deltaY*f,p=0),r.translateBy(n,-(m/c)*o,-(p/c)*o,{internal:!0});const x=Zu(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l==null||l(d,x),e.panScrollTimeout=setTimeout(()=>{u==null||u(d,x),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(d,x))}}function ML({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){const o=r.type==="wheel",i=!t&&o&&!r.ctrlKey,a=Bs(r,e);if(r.ctrlKey&&o&&a&&r.preventDefault(),i||a)return null;r.preventDefault(),n.call(this,r,s)}}function TL({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var o,i,a;if((o=r.sourceEvent)!=null&&o.internal)return;const s=Zu(r.transform);e.mouseButton=((i=r.sourceEvent)==null?void 0:i.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=s,((a=r.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,s))}}function LL({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return o=>{var i,a;e.usedRightMouseButton=!!(n&&p1(t,e.mouseButton??0)),(i=o.sourceEvent)!=null&&i.sync||r([o.transform.x,o.transform.y,o.transform.k]),s&&!((a=o.sourceEvent)!=null&&a.internal)&&(s==null||s(o.sourceEvent,Zu(o.transform)))}}function IL({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:o}){return i=>{var a;if(!((a=i.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,o&&p1(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&o(i.sourceEvent),e.usedRightMouseButton=!1,r(!1),s)){const l=Zu(i.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s==null||s(i.sourceEvent,l)},n?150:0)}}}function AL({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:o,userSelectionActive:i,noWheelClassName:a,noPanClassName:l,lib:u,connectionInProgress:d}){return c=>{var w;const f=e||t,m=n&&c.ctrlKey,p=c.type==="wheel";if(c.button===1&&c.type==="mousedown"&&(Bs(c,`${u}-flow__node`)||Bs(c,`${u}-flow__edge`)))return!0;if(!r&&!f&&!s&&!o&&!n||i||d&&!p||Bs(c,a)&&p||Bs(c,l)&&(!p||s&&p&&!e)||!n&&c.ctrlKey&&p)return!1;if(!n&&c.type==="touchstart"&&((w=c.touches)==null?void 0:w.length)>1)return c.preventDefault(),!1;if(!f&&!s&&!m&&p||!r&&(c.type==="mousedown"||c.type==="touchstart")||Array.isArray(r)&&!r.includes(c.button)&&c.type==="mousedown")return!1;const x=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||p)&&x}}function OL({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:s,onPanZoom:o,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:l}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),c=Bw().scaleExtent([t,n]).translateExtent(r),f=Nt(e).call(c);v({x:s.x,y:s.y,zoom:ko(s.zoom,t,n)},[[0,0],[d.width,d.height]],r);const m=f.on("wheel.zoom"),p=f.on("dblclick.zoom");c.wheelDelta(m1);function x(P,j){return f?new Promise(O=>{c==null||c.interpolate((j==null?void 0:j.interpolate)==="linear"?bi:bl).transform(Yc(f,j==null?void 0:j.duration,j==null?void 0:j.ease,()=>O(!0)),P)}):Promise.resolve(!1)}function w({noWheelClassName:P,noPanClassName:j,onPaneContextMenu:O,userSelectionActive:k,panOnScroll:D,panOnDrag:I,panOnScrollMode:F,panOnScrollSpeed:N,preventScrolling:T,zoomOnPinch:z,zoomOnScroll:B,zoomOnDoubleClick:H,zoomActivationKeyPressed:K,lib:V,onTransformChange:X,connectionInProgress:Q,paneClickDistance:Y,selectionOnDrag:W}){k&&!u.isZoomingOrPanning&&g();const Z=D&&!K&&!k;c.clickDistance(W?1/0:!en(Y)||Y<0?0:Y);const oe=Z?jL({zoomPanValues:u,noWheelClassName:P,d3Selection:f,d3Zoom:c,panOnScrollMode:F,panOnScrollSpeed:N,zoomOnPinch:z,onPanZoomStart:i,onPanZoom:o,onPanZoomEnd:a}):ML({noWheelClassName:P,preventScrolling:T,d3ZoomHandler:m});if(f.on("wheel.zoom",oe,{passive:!1}),!k){const J=TL({zoomPanValues:u,onDraggingChange:l,onPanZoomStart:i});c.on("start",J);const te=LL({zoomPanValues:u,panOnDrag:I,onPaneContextMenu:!!O,onPanZoom:o,onTransformChange:X});c.on("zoom",te);const he=IL({zoomPanValues:u,panOnDrag:I,panOnScroll:D,onPaneContextMenu:O,onPanZoomEnd:a,onDraggingChange:l});c.on("end",he)}const re=AL({zoomActivationKeyPressed:K,panOnDrag:I,zoomOnScroll:B,panOnScroll:D,zoomOnDoubleClick:H,zoomOnPinch:z,userSelectionActive:k,noPanClassName:j,noWheelClassName:P,lib:V,connectionInProgress:Q});c.filter(re),H?f.on("dblclick.zoom",p):f.on("dblclick.zoom",null)}function g(){c.on("zoom",null)}async function v(P,j,O){const k=Xc(P),D=c==null?void 0:c.constrain()(k,j,O);return D&&await x(D),new Promise(I=>I(D))}async function y(P,j){const O=Xc(P);return await x(O,j),new Promise(k=>k(O))}function S(P){if(f){const j=Xc(P),O=f.property("__zoom");(O.k!==P.zoom||O.x!==P.x||O.y!==P.y)&&(c==null||c.transform(f,j,null,{sync:!0}))}}function E(){const P=f?$w(f.node()):{x:0,y:0,k:1};return{x:P.x,y:P.y,zoom:P.k}}function _(P,j){return f?new Promise(O=>{c==null||c.interpolate((j==null?void 0:j.interpolate)==="linear"?bi:bl).scaleTo(Yc(f,j==null?void 0:j.duration,j==null?void 0:j.ease,()=>O(!0)),P)}):Promise.resolve(!1)}function b(P,j){return f?new Promise(O=>{c==null||c.interpolate((j==null?void 0:j.interpolate)==="linear"?bi:bl).scaleBy(Yc(f,j==null?void 0:j.duration,j==null?void 0:j.ease,()=>O(!0)),P)}):Promise.resolve(!1)}function C(P){c==null||c.scaleExtent(P)}function L(P){c==null||c.translateExtent(P)}function M(P){const j=!en(P)||P<0?0:P;c==null||c.clickDistance(j)}return{update:w,destroy:g,setViewport:y,setViewportConstrained:v,getViewport:E,scaleTo:_,scaleBy:b,setScaleExtent:C,setTranslateExtent:L,syncViewport:S,setClickDistance:M}}var jo;(function(e){e.Line="line",e.Handle="handle"})(jo||(jo={}));function FL({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:o}){const i=e-t,a=n-r,l=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&s&&(l[0]=l[0]*-1),a&&o&&(l[1]=l[1]*-1),l}function Zg(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:s}}function Xn(e,t){return Math.max(0,t-e)}function Yn(e,t){return Math.max(0,e-t)}function nl(e,t,n){return Math.max(0,t-e,e-n)}function Jg(e,t){return e?!t:t}function DL(e,t,n,r,s,o,i,a){let{affectsX:l,affectsY:u}=t;const{isHorizontal:d,isVertical:c}=t,f=d&&c,{xSnapped:m,ySnapped:p}=n,{minWidth:x,maxWidth:w,minHeight:g,maxHeight:v}=r,{x:y,y:S,width:E,height:_,aspectRatio:b}=e;let C=Math.floor(d?m-e.pointerX:0),L=Math.floor(c?p-e.pointerY:0);const M=E+(l?-C:C),P=_+(u?-L:L),j=-o[0]*E,O=-o[1]*_;let k=nl(M,x,w),D=nl(P,g,v);if(i){let N=0,T=0;l&&C<0?N=Xn(y+C+j,i[0][0]):!l&&C>0&&(N=Yn(y+M+j,i[1][0])),u&&L<0?T=Xn(S+L+O,i[0][1]):!u&&L>0&&(T=Yn(S+P+O,i[1][1])),k=Math.max(k,N),D=Math.max(D,T)}if(a){let N=0,T=0;l&&C>0?N=Yn(y+C,a[0][0]):!l&&C<0&&(N=Xn(y+M,a[1][0])),u&&L>0?T=Yn(S+L,a[0][1]):!u&&L<0&&(T=Xn(S+P,a[1][1])),k=Math.max(k,N),D=Math.max(D,T)}if(s){if(d){const N=nl(M/b,g,v)*b;if(k=Math.max(k,N),i){let T=0;!l&&!u||l&&!u&&f?T=Yn(S+O+M/b,i[1][1])*b:T=Xn(S+O+(l?C:-C)/b,i[0][1])*b,k=Math.max(k,T)}if(a){let T=0;!l&&!u||l&&!u&&f?T=Xn(S+M/b,a[1][1])*b:T=Yn(S+(l?C:-C)/b,a[0][1])*b,k=Math.max(k,T)}}if(c){const N=nl(P*b,x,w)/b;if(D=Math.max(D,N),i){let T=0;!l&&!u||u&&!l&&f?T=Yn(y+P*b+j,i[1][0])/b:T=Xn(y+(u?L:-L)*b+j,i[0][0])/b,D=Math.max(D,T)}if(a){let T=0;!l&&!u||u&&!l&&f?T=Xn(y+P*b,a[1][0])/b:T=Yn(y+(u?L:-L)*b,a[0][0])/b,D=Math.max(D,T)}}}L=L+(L<0?D:-D),C=C+(C<0?k:-k),s&&(f?M>P*b?L=(Jg(l,u)?-C:C)/b:C=(Jg(l,u)?-L:L)*b:d?(L=C/b,u=l):(C=L*b,l=u));const I=l?y+C:y,F=u?S+L:S;return{width:E+(l?-C:C),height:_+(u?-L:L),x:o[0]*C*(l?-1:1)+I,y:o[1]*L*(u?-1:1)+F}}const g1={width:0,height:0,x:0,y:0},zL={...g1,pointerX:0,pointerY:0,aspectRatio:1};function $L(e){return[[0,0],[e.measured.width,e.measured.height]]}function BL(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,o=e.measured.width??0,i=e.measured.height??0,a=n[0]*o,l=n[1]*i;return[[r-a,s-l],[r+o-a,s+i-l]]}function HL({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const o=Nt(e);let i={controlDirection:Zg("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:u,boundaries:d,keepAspectRatio:c,resizeDirection:f,onResizeStart:m,onResize:p,onResizeEnd:x,shouldResize:w}){let g={...g1},v={...zL};i={boundaries:d,resizeDirection:f,keepAspectRatio:c,controlDirection:Zg(u)};let y,S=null,E=[],_,b,C,L=!1;const M=Nw().on("start",P=>{const{nodeLookup:j,transform:O,snapGrid:k,snapToGrid:D,nodeOrigin:I,paneDomNode:F}=n();if(y=j.get(t),!y)return;S=(F==null?void 0:F.getBoundingClientRect())??null;const{xSnapped:N,ySnapped:T}=Ei(P.sourceEvent,{transform:O,snapGrid:k,snapToGrid:D,containerBounds:S});g={width:y.measured.width??0,height:y.measured.height??0,x:y.position.x??0,y:y.position.y??0},v={...g,pointerX:N,pointerY:T,aspectRatio:g.width/g.height},_=void 0,y.parentId&&(y.extent==="parent"||y.expandParent)&&(_=j.get(y.parentId),b=_&&y.extent==="parent"?$L(_):void 0),E=[],C=void 0;for(const[z,B]of j)if(B.parentId===t&&(E.push({id:z,position:{...B.position},extent:B.extent}),B.extent==="parent"||B.expandParent)){const H=BL(B,y,B.origin??I);C?C=[[Math.min(H[0][0],C[0][0]),Math.min(H[0][1],C[0][1])],[Math.max(H[1][0],C[1][0]),Math.max(H[1][1],C[1][1])]]:C=H}m==null||m(P,{...g})}).on("drag",P=>{const{transform:j,snapGrid:O,snapToGrid:k,nodeOrigin:D}=n(),I=Ei(P.sourceEvent,{transform:j,snapGrid:O,snapToGrid:k,containerBounds:S}),F=[];if(!y)return;const{x:N,y:T,width:z,height:B}=g,H={},K=y.origin??D,{width:V,height:X,x:Q,y:Y}=DL(v,i.controlDirection,I,i.boundaries,i.keepAspectRatio,K,b,C),W=V!==z,Z=X!==B,oe=Q!==N&&W,re=Y!==T&&Z;if(!oe&&!re&&!W&&!Z)return;if((oe||re||K[0]===1||K[1]===1)&&(H.x=oe?Q:g.x,H.y=re?Y:g.y,g.x=H.x,g.y=H.y,E.length>0)){const ye=Q-N,ce=Y-T;for(const $e of E)$e.position={x:$e.position.x-ye+K[0]*(V-z),y:$e.position.y-ce+K[1]*(X-B)},F.push($e)}if((W||Z)&&(H.width=W&&(!i.resizeDirection||i.resizeDirection==="horizontal")?V:g.width,H.height=Z&&(!i.resizeDirection||i.resizeDirection==="vertical")?X:g.height,g.width=H.width,g.height=H.height),_&&y.expandParent){const ye=K[0]*(H.width??0);H.x&&H.x<ye&&(g.x=ye,v.x=v.x-(H.x-ye));const ce=K[1]*(H.height??0);H.y&&H.y<ce&&(g.y=ce,v.y=v.y-(H.y-ce))}const J=FL({width:g.width,prevWidth:z,height:g.height,prevHeight:B,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),te={...g,direction:J};(w==null?void 0:w(P,te))!==!1&&(L=!0,p==null||p(P,te),r(H,F))}).on("end",P=>{L&&(x==null||x(P,{...g}),s==null||s({...g}),L=!1)});o.call(M)}function l(){o.on(".drag",null)}return{update:a,destroy:l}}const UL={},ey=e=>{let t;const n=new Set,r=(d,c)=>{const f=typeof d=="function"?d(t):d;if(!Object.is(f,t)){const m=t;t=c??(typeof f!="object"||f===null)?f:Object.assign({},t,f),n.forEach(p=>p(t,m))}},s=()=>t,l={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(UL?"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,s,l);return l},VL=e=>e?ey(e):ey,{useDebugValue:WL}=ls,{useSyncExternalStoreWithSelector:KL}=IN,qL=e=>e;function y1(e,t=qL,n){const r=KL(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return WL(r),r}const ty=(e,t)=>{const n=VL(e),r=(s,o=t)=>y1(n,s,o);return Object.assign(r,n),r},QL=(e,t)=>e?ty(e,t):ty;function Ee(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,s]of e)if(!Object.is(s,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const Ju=R.createContext(null),GL=Ju.Provider,x1=bn.error001();function fe(e,t){const n=R.useContext(Ju);if(n===null)throw new Error(x1);return y1(n,e,t)}function Ce(){const e=R.useContext(Ju);if(e===null)throw new Error(x1);return R.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const ny={display:"none"},XL={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},v1="react-flow__node-desc",w1="react-flow__edge-desc",YL="react-flow__aria-live",ZL=e=>e.ariaLiveMessage,JL=e=>e.ariaLabelConfig;function eI({rfId:e}){const t=fe(ZL);return h.jsx("div",{id:`${YL}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:XL,children:t})}function tI({rfId:e,disableKeyboardA11y:t}){const n=fe(JL);return h.jsxs(h.Fragment,{children:[h.jsx("div",{id:`${v1}-${e}`,style:ny,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),h.jsx("div",{id:`${w1}-${e}`,style:ny,children:n["edge.a11yDescription.default"]}),!t&&h.jsx(eI,{rfId:e})]})}const Ea=R.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},o)=>{const i=`${e}`.split("-");return h.jsx("div",{className:Oe(["react-flow__panel",n,...i]),style:r,ref:o,...s,children:t})});Ea.displayName="Panel";function nI({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:h.jsx(Ea,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:h.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const rI=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},rl=e=>e.id;function sI(e,t){return Ee(e.selectedNodes.map(rl),t.selectedNodes.map(rl))&&Ee(e.selectedEdges.map(rl),t.selectedEdges.map(rl))}function oI({onSelectionChange:e}){const t=Ce(),{selectedNodes:n,selectedEdges:r}=fe(rI,sI);return R.useEffect(()=>{const s={nodes:n,edges:r};e==null||e(s),t.getState().onSelectionChangeHandlers.forEach(o=>o(s))},[n,r,e]),null}const iI=e=>!!e.onSelectionChangeHandlers;function aI({onSelectionChange:e}){const t=fe(iI);return e||t?h.jsx(oI,{onSelectionChange:e}):null}const S1=[0,0],lI={x:0,y:0,zoom:1},uI=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],ry=[...uI,"rfId"],cI=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),sy={translateExtent:Xi,nodeOrigin:S1,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function dI(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:o,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:l}=fe(cI,Ee),u=Ce();R.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{d.current=sy,a()}),[]);const d=R.useRef(sy);return R.useEffect(()=>{for(const c of ry){const f=e[c],m=d.current[c];f!==m&&(typeof e[c]>"u"||(c==="nodes"?t(f):c==="edges"?n(f):c==="minZoom"?r(f):c==="maxZoom"?s(f):c==="translateExtent"?o(f):c==="nodeExtent"?i(f):c==="ariaLabelConfig"?u.setState({ariaLabelConfig:eL(f)}):c==="fitView"?u.setState({fitViewQueued:f}):c==="fitViewOptions"?u.setState({fitViewOptions:f}):u.setState({[c]:f})))}d.current=e},ry.map(c=>e[c])),null}function oy(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function fI(e){var r;const[t,n]=R.useState(e==="system"?null:e);return R.useEffect(()=>{if(e!=="system"){n(e);return}const s=oy(),o=()=>n(s!=null&&s.matches?"dark":"light");return o(),s==null||s.addEventListener("change",o),()=>{s==null||s.removeEventListener("change",o)}},[e]),t!==null?t:(r=oy())!=null&&r.matches?"dark":"light"}const iy=typeof document<"u"?document:null;function ea(e=null,t={target:iy,actInsideInputWithModifier:!0}){const[n,r]=R.useState(!1),s=R.useRef(!1),o=R.useRef(new Set([])),[i,a]=R.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(c=>typeof c=="string").map(c=>c.replace("+",`
|
|
62
62
|
`).replace(`
|
|
63
63
|
|
|
64
64
|
`,`
|
|
65
65
|
+`).split(`
|
|
66
|
-
`)),d=u.reduce((c,f)=>c.concat(...f),[]);return[u,d]}return[[],[]]},[e]);return R.useEffect(()=>{const l=(t==null?void 0:t.target)??iy,u=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=m=>{var w,g;if(s.current=m.ctrlKey||m.metaKey||m.shiftKey||m.altKey,(!s.current||s.current&&!u)&&e1(m))return!1;const x=ly(m.code,a);if(o.current.add(m[x]),ay(i,o.current,!1)){const v=((g=(w=m.composedPath)==null?void 0:w.call(m))==null?void 0:g[0])||m.target,y=(v==null?void 0:v.nodeName)==="BUTTON"||(v==null?void 0:v.nodeName)==="A";t.preventDefault!==!1&&(s.current||!y)&&m.preventDefault(),r(!0)}},c=m=>{const p=ly(m.code,a);ay(i,o.current,!0)?(r(!1),o.current.clear()):o.current.delete(m[p]),m.key==="Meta"&&o.current.clear(),s.current=!1},f=()=>{o.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",c),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",c),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,r]),n}function ay(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(s=>t.has(s)))}function ly(e,t){return t.includes(e)?"code":"key"}const hI=()=>{const e=Ce();return R.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,{duration:n==null?void 0:n.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,s,o],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??r,y:t.y??s,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:s,minZoom:o,maxZoom:i,panZoom:a}=e.getState(),l=np(t,r,s,o,i,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:s,snapToGrid:o,domNode:i}=e.getState();if(!i)return t;const{x:a,y:l}=i.getBoundingClientRect(),u={x:t.x-a,y:t.y-l},d=n.snapGrid??s,c=n.snapToGrid??o;return ba(u,r,c,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:s,y:o}=r.getBoundingClientRect(),i=yu(t,n);return{x:i.x+s,y:i.y+o}}}),[])};function _1(e,t){const n=[],r=new Map,s=[];for(const o of e)if(o.type==="add"){s.push(o);continue}else if(o.type==="remove"||o.type==="replace")r.set(o.id,[o]);else{const i=r.get(o.id);i?i.push(o):r.set(o.id,[o])}for(const o of t){const i=r.get(o.id);if(!i){n.push(o);continue}if(i[0].type==="remove")continue;if(i[0].type==="replace"){n.push({...i[0].item});continue}const a={...o};for(const l of i)pI(l,a);n.push(a)}return s.length&&s.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function pI(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function b1(e,t){return _1(e,t)}function E1(e,t){return _1(e,t)}function Or(e,t){return{id:e,type:"select",selected:t}}function Hs(e,t=new Set,n=!1){const r=[];for(const[s,o]of e){const i=t.has(s);!(o.selected===void 0&&!i)&&o.selected!==i&&(n&&(o.selected=i),r.push(Or(o.id,i)))}return r}function uy({items:e=[],lookup:t}){var s;const n=[],r=new Map(e.map(o=>[o.id,o]));for(const[o,i]of e.entries()){const a=t.get(i.id),l=((s=a==null?void 0:a.internals)==null?void 0:s.userNode)??a;l!==void 0&&l!==i&&n.push({id:i.id,item:i,type:"replace"}),l===void 0&&n.push({item:i,type:"add",index:o})}for(const[o]of t)r.get(o)===void 0&&n.push({id:o,type:"remove"});return n}function cy(e){return{id:e.id,type:"remove"}}const dy=e=>VT(e),mI=e=>Kw(e);function C1(e){return R.forwardRef(e)}const gI=typeof window<"u"?R.useLayoutEffect:R.useEffect;function fy(e){const[t,n]=R.useState(BigInt(0)),[r]=R.useState(()=>yI(()=>n(s=>s+BigInt(1))));return gI(()=>{const s=r.get();s.length&&(e(s),r.reset())},[t]),r}function yI(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const N1=R.createContext(null);function xI({children:e}){const t=Ce(),n=R.useCallback(a=>{const{nodes:l=[],setNodes:u,hasDefaultNodes:d,onNodesChange:c,nodeLookup:f,fitViewQueued:m,onNodesChangeMiddlewareMap:p}=t.getState();let x=l;for(const g of a)x=typeof g=="function"?g(x):g;let w=uy({items:x,lookup:f});for(const g of p.values())w=g(w);d&&u(x),w.length>0?c==null||c(w):m&&window.requestAnimationFrame(()=>{const{fitViewQueued:g,nodes:v,setNodes:y}=t.getState();g&&y(v)})},[]),r=fy(n),s=R.useCallback(a=>{const{edges:l=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:c,edgeLookup:f}=t.getState();let m=l;for(const p of a)m=typeof p=="function"?p(m):p;d?u(m):c&&c(uy({items:m,lookup:f}))},[]),o=fy(s),i=R.useMemo(()=>({nodeQueue:r,edgeQueue:o}),[]);return h.jsx(N1.Provider,{value:i,children:e})}function vI(){const e=R.useContext(N1);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const wI=e=>!!e.panZoom;function up(){const e=hI(),t=Ce(),n=vI(),r=fe(wI),s=R.useMemo(()=>{const o=c=>t.getState().nodeLookup.get(c),i=c=>{n.nodeQueue.push(c)},a=c=>{n.edgeQueue.push(c)},l=c=>{var g,v;const{nodeLookup:f,nodeOrigin:m}=t.getState(),p=dy(c)?c:f.get(c.id),x=p.parentId?Zw(p.position,p.measured,p.parentId,f,m):p.position,w={...p,position:x,width:((g=p.measured)==null?void 0:g.width)??p.width,height:((v=p.measured)==null?void 0:v.height)??p.height};return Po(w)},u=(c,f,m={replace:!1})=>{i(p=>p.map(x=>{if(x.id===c){const w=typeof f=="function"?f(x):f;return m.replace&&dy(w)?w:{...x,...w}}return x}))},d=(c,f,m={replace:!1})=>{a(p=>p.map(x=>{if(x.id===c){const w=typeof f=="function"?f(x):f;return m.replace&&mI(w)?w:{...x,...w}}return x}))};return{getNodes:()=>t.getState().nodes.map(c=>({...c})),getNode:c=>{var f;return(f=o(c))==null?void 0:f.internals.userNode},getInternalNode:o,getEdges:()=>{const{edges:c=[]}=t.getState();return c.map(f=>({...f}))},getEdge:c=>t.getState().edgeLookup.get(c),setNodes:i,setEdges:a,addNodes:c=>{const f=Array.isArray(c)?c:[c];n.nodeQueue.push(m=>[...m,...f])},addEdges:c=>{const f=Array.isArray(c)?c:[c];n.edgeQueue.push(m=>[...m,...f])},toObject:()=>{const{nodes:c=[],edges:f=[],transform:m}=t.getState(),[p,x,w]=m;return{nodes:c.map(g=>({...g})),edges:f.map(g=>({...g})),viewport:{x:p,y:x,zoom:w}}},deleteElements:async({nodes:c=[],edges:f=[]})=>{const{nodes:m,edges:p,onNodesDelete:x,onEdgesDelete:w,triggerNodeChanges:g,triggerEdgeChanges:v,onDelete:y,onBeforeDelete:S}=t.getState(),{nodes:E,edges:_}=await GT({nodesToRemove:c,edgesToRemove:f,nodes:m,edges:p,onBeforeDelete:S}),b=_.length>0,C=E.length>0;if(b){const L=_.map(cy);w==null||w(_),v(L)}if(C){const L=E.map(cy);x==null||x(E),g(L)}return(C||b)&&(y==null||y({nodes:E,edges:_})),{deletedNodes:E,deletedEdges:_}},getIntersectingNodes:(c,f=!0,m)=>{const p=Bg(c),x=p?c:l(c),w=m!==void 0;return x?(m||t.getState().nodes).filter(g=>{const v=t.getState().nodeLookup.get(g.id);if(v&&!p&&(g.id===c.id||!v.internals.positionAbsolute))return!1;const y=Po(w?g:v),S=Zi(y,x);return f&&S>0||S>=y.width*y.height||S>=x.width*x.height}):[]},isNodeIntersecting:(c,f,m=!0)=>{const x=Bg(c)?c:l(c);if(!x)return!1;const w=Zi(x,f);return m&&w>0||w>=f.width*f.height||w>=x.width*x.height},updateNode:u,updateNodeData:(c,f,m={replace:!1})=>{u(c,p=>{const x=typeof f=="function"?f(p):f;return m.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},m)},updateEdge:d,updateEdgeData:(c,f,m={replace:!1})=>{d(c,p=>{const x=typeof f=="function"?f(p):f;return m.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},m)},getNodesBounds:c=>{const{nodeLookup:f,nodeOrigin:m}=t.getState();return WT(c,{nodeLookup:f,nodeOrigin:m})},getHandleConnections:({type:c,id:f,nodeId:m})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${m}-${c}${f?`-${f}`:""}`))==null?void 0:p.values())??[])},getNodeConnections:({type:c,handleId:f,nodeId:m})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${m}${c?f?`-${c}-${f}`:`-${c}`:""}`))==null?void 0:p.values())??[])},fitView:async c=>{const f=t.getState().fitViewResolver??JT();return t.setState({fitViewQueued:!0,fitViewOptions:c,fitViewResolver:f}),n.nodeQueue.push(m=>[...m]),f.promise}}},[]);return R.useMemo(()=>({...s,...e,viewportInitialized:r}),[r])}const hy=e=>e.selected,SI=typeof window<"u"?window:void 0;function _I({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Ce(),{deleteElements:r}=up(),s=ea(e,{actInsideInputWithModifier:!1}),o=ea(t,{target:SI});R.useEffect(()=>{if(s){const{edges:i,nodes:a}=n.getState();r({nodes:a.filter(hy),edges:i.filter(hy)}),n.setState({nodesSelectionActive:!1})}},[s]),R.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function bI(e){const t=Ce();R.useEffect(()=>{const n=()=>{var s,o,i,a;if(!e.current||!(((o=(s=e.current).checkVisibility)==null?void 0:o.call(s))??!0))return!1;const r=rp(e.current);(r.height===0||r.width===0)&&((a=(i=t.getState()).onError)==null||a.call(i,"004",bn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const ec={position:"absolute",width:"100%",height:"100%",top:0,left:0},EI=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function CI({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:s=.5,panOnScrollMode:o=as.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:c,zoomActivationKeyCode:f,preventScrolling:m=!0,children:p,noWheelClassName:x,noPanClassName:w,onViewportChange:g,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:S}){const E=Ce(),_=R.useRef(null),{userSelectionActive:b,lib:C,connectionInProgress:L}=fe(EI,Ee),M=ea(f),P=R.useRef();bI(_);const j=R.useCallback(O=>{g==null||g({x:O[0],y:O[1],zoom:O[2]}),v||E.setState({transform:O})},[g,v]);return R.useEffect(()=>{if(_.current){P.current=OL({domNode:_.current,minZoom:d,maxZoom:c,translateExtent:u,viewport:l,onDraggingChange:I=>E.setState({paneDragging:I}),onPanZoomStart:(I,F)=>{const{onViewportChangeStart:N,onMoveStart:T}=E.getState();T==null||T(I,F),N==null||N(F)},onPanZoom:(I,F)=>{const{onViewportChange:N,onMove:T}=E.getState();T==null||T(I,F),N==null||N(F)},onPanZoomEnd:(I,F)=>{const{onViewportChangeEnd:N,onMoveEnd:T}=E.getState();T==null||T(I,F),N==null||N(F)}});const{x:O,y:k,zoom:D}=P.current.getViewport();return E.setState({panZoom:P.current,transform:[O,k,D],domNode:_.current.closest(".react-flow")}),()=>{var I;(I=P.current)==null||I.destroy()}}},[]),R.useEffect(()=>{var O;(O=P.current)==null||O.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:s,panOnScrollMode:o,zoomOnDoubleClick:i,panOnDrag:a,zoomActivationKeyPressed:M,preventScrolling:m,noPanClassName:w,userSelectionActive:b,noWheelClassName:x,lib:C,onTransformChange:j,connectionInProgress:L,selectionOnDrag:S,paneClickDistance:y})},[e,t,n,r,s,o,i,a,M,m,w,b,x,C,j,L,S,y]),h.jsx("div",{className:"react-flow__renderer",ref:_,style:ec,children:p})}const NI=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function kI(){const{userSelectionActive:e,userSelectionRect:t}=fe(NI,Ee);return e&&t?h.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const Zc=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},PI=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function RI({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Yi.Full,panOnDrag:r,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:i,onSelectionEnd:a,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:c,onPaneMouseMove:f,onPaneMouseLeave:m,children:p}){const x=Ce(),{userSelectionActive:w,elementsSelectable:g,dragging:v,connectionInProgress:y}=fe(PI,Ee),S=g&&(e||w),E=R.useRef(null),_=R.useRef(),b=R.useRef(new Set),C=R.useRef(new Set),L=R.useRef(!1),M=N=>{if(L.current||y){L.current=!1;return}l==null||l(N),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},P=N=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){N.preventDefault();return}u==null||u(N)},j=d?N=>d(N):void 0,O=N=>{L.current&&(N.stopPropagation(),L.current=!1)},k=N=>{var X,Q;const{domNode:T}=x.getState();if(_.current=T==null?void 0:T.getBoundingClientRect(),!_.current)return;const z=N.target===E.current;if(!z&&!!N.target.closest(".nokey")||!e||!(o&&z||t)||N.button!==0||!N.isPrimary)return;(Q=(X=N.target)==null?void 0:X.setPointerCapture)==null||Q.call(X,N.pointerId),L.current=!1;const{x:K,y:V}=tn(N.nativeEvent,_.current);x.setState({userSelectionRect:{width:0,height:0,startX:K,startY:V,x:K,y:V}}),z||(N.stopPropagation(),N.preventDefault())},D=N=>{const{userSelectionRect:T,transform:z,nodeLookup:B,edgeLookup:H,connectionLookup:K,triggerNodeChanges:V,triggerEdgeChanges:X,defaultEdgeOptions:Q,resetSelectedElements:Y}=x.getState();if(!_.current||!T)return;const{x:W,y:Z}=tn(N.nativeEvent,_.current),{startX:oe,startY:re}=T;if(!L.current){const ce=t?0:s;if(Math.hypot(W-oe,Z-re)<=ce)return;Y(),i==null||i(N)}L.current=!0;const J={startX:oe,startY:re,x:W<oe?W:oe,y:Z<re?Z:re,width:Math.abs(W-oe),height:Math.abs(Z-re)},te=b.current,he=C.current;b.current=new Set(tp(B,J,z,n===Yi.Partial,!0).map(ce=>ce.id)),C.current=new Set;const ye=(Q==null?void 0:Q.selectable)??!0;for(const ce of b.current){const $e=K.get(ce);if($e)for(const{edgeId:un}of $e.values()){const dt=H.get(un);dt&&(dt.selectable??ye)&&C.current.add(un)}}if(!Hg(te,b.current)){const ce=Hs(B,b.current,!0);V(ce)}if(!Hg(he,C.current)){const ce=Hs(H,C.current);X(ce)}x.setState({userSelectionRect:J,userSelectionActive:!0,nodesSelectionActive:!1})},I=N=>{var T,z;N.button===0&&((z=(T=N.target)==null?void 0:T.releasePointerCapture)==null||z.call(T,N.pointerId),!w&&N.target===E.current&&x.getState().userSelectionRect&&(M==null||M(N)),x.setState({userSelectionActive:!1,userSelectionRect:null}),L.current&&(a==null||a(N),x.setState({nodesSelectionActive:b.current.size>0})))},F=r===!0||Array.isArray(r)&&r.includes(0);return h.jsxs("div",{className:Oe(["react-flow__pane",{draggable:F,dragging:v,selection:e}]),onClick:S?void 0:Zc(M,E),onContextMenu:Zc(P,E),onWheel:Zc(j,E),onPointerEnter:S?void 0:c,onPointerMove:S?D:f,onPointerUp:S?I:void 0,onPointerDownCapture:S?k:void 0,onClickCapture:S?O:void 0,onPointerLeave:m,ref:E,style:ec,children:[p,h.jsx(kI,{})]})}function Pf({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:s,unselectNodesAndEdges:o,multiSelectionActive:i,nodeLookup:a,onError:l}=t.getState(),u=a.get(e);if(!u){l==null||l("012",bn.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&i)&&(o({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):s([e])}function k1({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:s,isSelectable:o,nodeClickDistance:i}){const a=Ce(),[l,u]=R.useState(!1),d=R.useRef();return R.useEffect(()=>{d.current=_L({getStoreItems:()=>a.getState(),onNodeMouseDown:c=>{Pf({id:c,store:a,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),R.useEffect(()=>{var c,f;if(t)(c=d.current)==null||c.destroy();else if(e.current)return(f=d.current)==null||f.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:o,nodeId:s,nodeClickDistance:i}),()=>{var m;(m=d.current)==null||m.destroy()}},[n,r,t,o,e,s]),l}const jI=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function P1(){const e=Ce();return R.useCallback(n=>{const{nodeExtent:r,snapToGrid:s,snapGrid:o,nodesDraggable:i,onError:a,updateNodePositions:l,nodeLookup:u,nodeOrigin:d}=e.getState(),c=new Map,f=jI(i),m=s?o[0]:5,p=s?o[1]:5,x=n.direction.x*m*n.factor,w=n.direction.y*p*n.factor;for(const[,g]of u){if(!f(g))continue;let v={x:g.internals.positionAbsolute.x+x,y:g.internals.positionAbsolute.y+w};s&&(v=_a(v,o));const{position:y,positionAbsolute:S}=qw({nodeId:g.id,nextPosition:v,nodeLookup:u,nodeExtent:r,nodeOrigin:d,onError:a});g.position=y,g.internals.positionAbsolute=S,c.set(g.id,g)}l(c)},[])}const cp=R.createContext(null),MI=cp.Provider;cp.Consumer;const R1=()=>R.useContext(cp),TI=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),LI=(e,t,n)=>r=>{const{connectionClickStartHandle:s,connectionMode:o,connection:i}=r,{fromHandle:a,toHandle:l,isValid:u}=i,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(s==null?void 0:s.nodeId)===e&&(s==null?void 0:s.id)===t&&(s==null?void 0:s.type)===n,isPossibleEndHandle:o===No.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!s,valid:d&&u}};function II({type:e="source",position:t=ee.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:s=!0,isConnectableEnd:o=!0,id:i,onConnect:a,children:l,className:u,onMouseDown:d,onTouchStart:c,...f},m){var D,I;const p=i||null,x=e==="target",w=Ce(),g=R1(),{connectOnClick:v,noPanClassName:y,rfId:S}=fe(TI,Ee),{connectingFrom:E,connectingTo:_,clickConnecting:b,isPossibleEndHandle:C,connectionInProcess:L,clickConnectionInProcess:M,valid:P}=fe(LI(g,p,e),Ee);g||(I=(D=w.getState()).onError)==null||I.call(D,"010",bn.error010());const j=F=>{const{defaultEdgeOptions:N,onConnect:T,hasDefaultEdges:z}=w.getState(),B={...N,...F};if(z){const{edges:H,setEdges:K}=w.getState();K(iL(B,H))}T==null||T(B),a==null||a(B)},O=F=>{if(!g)return;const N=t1(F.nativeEvent);if(s&&(N&&F.button===0||!N)){const T=w.getState();kf.onPointerDown(F.nativeEvent,{handleDomNode:F.currentTarget,autoPanOnConnect:T.autoPanOnConnect,connectionMode:T.connectionMode,connectionRadius:T.connectionRadius,domNode:T.domNode,nodeLookup:T.nodeLookup,lib:T.lib,isTarget:x,handleId:p,nodeId:g,flowId:T.rfId,panBy:T.panBy,cancelConnection:T.cancelConnection,onConnectStart:T.onConnectStart,onConnectEnd:T.onConnectEnd,updateConnection:T.updateConnection,onConnect:j,isValidConnection:n||T.isValidConnection,getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:T.autoPanSpeed,dragThreshold:T.connectionDragThreshold})}N?d==null||d(F):c==null||c(F)},k=F=>{const{onClickConnectStart:N,onClickConnectEnd:T,connectionClickStartHandle:z,connectionMode:B,isValidConnection:H,lib:K,rfId:V,nodeLookup:X,connection:Q}=w.getState();if(!g||!z&&!s)return;if(!z){N==null||N(F.nativeEvent,{nodeId:g,handleId:p,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:g,type:e,id:p}});return}const Y=Jw(F.target),W=n||H,{connection:Z,isValid:oe}=kf.isValid(F.nativeEvent,{handle:{nodeId:g,id:p,type:e},connectionMode:B,fromNodeId:z.nodeId,fromHandleId:z.id||null,fromType:z.type,isValidConnection:W,flowId:V,doc:Y,lib:K,nodeLookup:X});oe&&Z&&j(Z);const re=structuredClone(Q);delete re.inProgress,re.toPosition=re.toHandle?re.toHandle.position:null,T==null||T(F,re),w.setState({connectionClickStartHandle:null})};return h.jsx("div",{"data-handleid":p,"data-nodeid":g,"data-handlepos":t,"data-id":`${S}-${g}-${p}-${e}`,className:Oe(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",y,u,{source:!x,target:x,connectable:r,connectablestart:s,connectableend:o,clickconnecting:b,connectingfrom:E,connectingto:_,valid:P,connectionindicator:r&&(!L||C)&&(L||M?o:s)}]),onMouseDown:O,onTouchStart:O,onClick:v?k:void 0,ref:m,...f,children:l})}const Mo=R.memo(C1(II));function AI({data:e,isConnectable:t,sourcePosition:n=ee.Bottom}){return h.jsxs(h.Fragment,{children:[e==null?void 0:e.label,h.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function OI({data:e,isConnectable:t,targetPosition:n=ee.Top,sourcePosition:r=ee.Bottom}){return h.jsxs(h.Fragment,{children:[h.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,h.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function FI(){return null}function DI({data:e,isConnectable:t,targetPosition:n=ee.Top}){return h.jsxs(h.Fragment,{children:[h.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const xu={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},py={input:AI,default:OI,output:DI,group:FI};function zI(e){var t,n,r,s;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((s=e.style)==null?void 0:s.height)}}const $I=e=>{const{width:t,height:n,x:r,y:s}=Sa(e.nodeLookup,{filter:o=>!!o.selected});return{width:en(t)?t:null,height:en(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${s}px)`}};function BI({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Ce(),{width:s,height:o,transformString:i,userSelectionActive:a}=fe($I,Ee),l=P1(),u=R.useRef(null);if(R.useEffect(()=>{var f;n||(f=u.current)==null||f.focus({preventScroll:!0})},[n]),k1({nodeRef:u}),a||!s||!o)return null;const d=e?f=>{const m=r.getState().nodes.filter(p=>p.selected);e(f,m)}:void 0,c=f=>{Object.prototype.hasOwnProperty.call(xu,f.key)&&(f.preventDefault(),l({direction:xu[f.key],factor:f.shiftKey?4:1}))};return h.jsx("div",{className:Oe(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:h.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:c,style:{width:s,height:o}})})}const my=typeof window<"u"?window:void 0,HI=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function j1({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:u,selectionOnDrag:d,selectionMode:c,onSelectionStart:f,onSelectionEnd:m,multiSelectionKeyCode:p,panActivationKeyCode:x,zoomActivationKeyCode:w,elementsSelectable:g,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:S,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:b,panOnDrag:C,defaultViewport:L,translateExtent:M,minZoom:P,maxZoom:j,preventScrolling:O,onSelectionContextMenu:k,noWheelClassName:D,noPanClassName:I,disableKeyboardA11y:F,onViewportChange:N,isControlledViewport:T}){const{nodesSelectionActive:z,userSelectionActive:B}=fe(HI,Ee),H=ea(u,{target:my}),K=ea(x,{target:my}),V=K||C,X=K||S,Q=d&&V!==!0,Y=H||B||Q;return _I({deleteKeyCode:l,multiSelectionKeyCode:p}),h.jsx(CI,{onPaneContextMenu:o,elementsSelectable:g,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:X,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:b,panOnDrag:!H&&V,defaultViewport:L,translateExtent:M,minZoom:P,maxZoom:j,zoomActivationKeyCode:w,preventScrolling:O,noWheelClassName:D,noPanClassName:I,onViewportChange:N,isControlledViewport:T,paneClickDistance:a,selectionOnDrag:Q,children:h.jsxs(RI,{onSelectionStart:f,onSelectionEnd:m,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,panOnDrag:V,isSelecting:!!Y,selectionMode:c,selectionKeyPressed:H,paneClickDistance:a,selectionOnDrag:Q,children:[e,z&&h.jsx(BI,{onSelectionContextMenu:k,noPanClassName:I,disableKeyboardA11y:F})]})})}j1.displayName="FlowRenderer";const UI=R.memo(j1),VI=e=>t=>e?tp(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function WI(e){return fe(R.useCallback(VI(e),[e]),Ee)}const KI=e=>e.updateNodeInternals;function qI(){const e=fe(KI),[t]=R.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(s=>{const o=s.target.getAttribute("data-id");r.set(o,{id:o,nodeElement:s.target,force:!0})}),e(r)}));return R.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function QI({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const s=Ce(),o=R.useRef(null),i=R.useRef(null),a=R.useRef(e.sourcePosition),l=R.useRef(e.targetPosition),u=R.useRef(t),d=n&&!!e.internals.handleBounds;return R.useEffect(()=>{o.current&&!e.hidden&&(!d||i.current!==o.current)&&(i.current&&(r==null||r.unobserve(i.current)),r==null||r.observe(o.current),i.current=o.current)},[d,e.hidden]),R.useEffect(()=>()=>{i.current&&(r==null||r.unobserve(i.current),i.current=null)},[]),R.useEffect(()=>{if(o.current){const c=u.current!==t,f=a.current!==e.sourcePosition,m=l.current!==e.targetPosition;(c||f||m)&&(u.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,s.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function GI({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:s,onContextMenu:o,onDoubleClick:i,nodesDraggable:a,elementsSelectable:l,nodesConnectable:u,nodesFocusable:d,resizeObserver:c,noDragClassName:f,noPanClassName:m,disableKeyboardA11y:p,rfId:x,nodeTypes:w,nodeClickDistance:g,onError:v}){const{node:y,internals:S,isParent:E}=fe(W=>{const Z=W.nodeLookup.get(e),oe=W.parentLookup.has(e);return{node:Z,internals:Z.internals,isParent:oe}},Ee);let _=y.type||"default",b=(w==null?void 0:w[_])||py[_];b===void 0&&(v==null||v("003",bn.error003(_)),_="default",b=(w==null?void 0:w.default)||py.default);const C=!!(y.draggable||a&&typeof y.draggable>"u"),L=!!(y.selectable||l&&typeof y.selectable>"u"),M=!!(y.connectable||u&&typeof y.connectable>"u"),P=!!(y.focusable||d&&typeof y.focusable>"u"),j=Ce(),O=Yw(y),k=QI({node:y,nodeType:_,hasDimensions:O,resizeObserver:c}),D=k1({nodeRef:k,disabled:y.hidden||!C,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:L,nodeClickDistance:g}),I=P1();if(y.hidden)return null;const F=Vn(y),N=zI(y),T=L||C||t||n||r||s,z=n?W=>n(W,{...S.userNode}):void 0,B=r?W=>r(W,{...S.userNode}):void 0,H=s?W=>s(W,{...S.userNode}):void 0,K=o?W=>o(W,{...S.userNode}):void 0,V=i?W=>i(W,{...S.userNode}):void 0,X=W=>{const{selectNodesOnDrag:Z,nodeDragThreshold:oe}=j.getState();L&&(!Z||!C||oe>0)&&Pf({id:e,store:j,nodeRef:k}),t&&t(W,{...S.userNode})},Q=W=>{if(!(e1(W.nativeEvent)||p)){if(Hw.includes(W.key)&&L){const Z=W.key==="Escape";Pf({id:e,store:j,unselect:Z,nodeRef:k})}else if(C&&y.selected&&Object.prototype.hasOwnProperty.call(xu,W.key)){W.preventDefault();const{ariaLabelConfig:Z}=j.getState();j.setState({ariaLiveMessage:Z["node.a11yDescription.ariaLiveMessage"]({direction:W.key.replace("Arrow","").toLowerCase(),x:~~S.positionAbsolute.x,y:~~S.positionAbsolute.y})}),I({direction:xu[W.key],factor:W.shiftKey?4:1})}}},Y=()=>{var he;if(p||!((he=k.current)!=null&&he.matches(":focus-visible")))return;const{transform:W,width:Z,height:oe,autoPanOnNodeFocus:re,setCenter:J}=j.getState();if(!re)return;tp(new Map([[e,y]]),{x:0,y:0,width:Z,height:oe},W,!0).length>0||J(y.position.x+F.width/2,y.position.y+F.height/2,{zoom:W[2]})};return h.jsx("div",{className:Oe(["react-flow__node",`react-flow__node-${_}`,{[m]:C},y.className,{selected:y.selected,selectable:L,parent:E,draggable:C,dragging:D}]),ref:k,style:{zIndex:S.z,transform:`translate(${S.positionAbsolute.x}px,${S.positionAbsolute.y}px)`,pointerEvents:T?"all":"none",visibility:O?"visible":"hidden",...y.style,...N},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:z,onMouseMove:B,onMouseLeave:H,onContextMenu:K,onClick:X,onDoubleClick:V,onKeyDown:P?Q:void 0,tabIndex:P?0:void 0,onFocus:P?Y:void 0,role:y.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${v1}-${x}`,"aria-label":y.ariaLabel,...y.domAttributes,children:h.jsx(MI,{value:e,children:h.jsx(b,{id:e,data:y.data,type:_,positionAbsoluteX:S.positionAbsolute.x,positionAbsoluteY:S.positionAbsolute.y,selected:y.selected??!1,selectable:L,draggable:C,deletable:y.deletable??!0,isConnectable:M,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:D,dragHandle:y.dragHandle,zIndex:S.z,parentId:y.parentId,...F})})})}var XI=R.memo(GI);const YI=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function M1(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,onError:o}=fe(YI,Ee),i=WI(e.onlyRenderVisibleElements),a=qI();return h.jsx("div",{className:"react-flow__nodes",style:ec,children:i.map(l=>h.jsx(XI,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,nodeClickDistance:e.nodeClickDistance,onError:o},l))})}M1.displayName="NodeRenderer";const ZI=R.memo(M1);function JI(e){return fe(R.useCallback(n=>{if(!e)return n.edges.map(s=>s.id);const r=[];if(n.width&&n.height)for(const s of n.edges){const o=n.nodeLookup.get(s.source),i=n.nodeLookup.get(s.target);o&&i&&rL({sourceNode:o,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&r.push(s.id)}return r},[e]),Ee)}const eA=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return h.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},tA=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return h.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},gy={[ws.Arrow]:eA,[ws.ArrowClosed]:tA};function nA(e){const t=Ce();return R.useMemo(()=>{var s,o;return Object.prototype.hasOwnProperty.call(gy,e)?gy[e]:((o=(s=t.getState()).onError)==null||o.call(s,"009",bn.error009(e)),null)},[e])}const rA=({id:e,type:t,color:n,width:r=12.5,height:s=12.5,markerUnits:o="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const l=nA(t);return l?h.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${s}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:a,refX:"0",refY:"0",children:h.jsx(l,{color:n,strokeWidth:i})}):null},T1=({defaultColor:e,rfId:t})=>{const n=fe(o=>o.edges),r=fe(o=>o.defaultEdgeOptions),s=R.useMemo(()=>dL(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return s.length?h.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:h.jsx("defs",{children:s.map(o=>h.jsx(rA,{id:o.id,type:o.type,color:o.color,width:o.width,height:o.height,markerUnits:o.markerUnits,strokeWidth:o.strokeWidth,orient:o.orient},o.id))})}):null};T1.displayName="MarkerDefinitions";var sA=R.memo(T1);function L1({x:e,y:t,label:n,labelStyle:r,labelShowBg:s=!0,labelBgStyle:o,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:l,className:u,...d}){const[c,f]=R.useState({x:1,y:0,width:0,height:0}),m=Oe(["react-flow__edge-textwrapper",u]),p=R.useRef(null);return R.useEffect(()=>{if(p.current){const x=p.current.getBBox();f({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),n?h.jsxs("g",{transform:`translate(${e-c.width/2} ${t-c.height/2})`,className:m,visibility:c.width?"visible":"hidden",...d,children:[s&&h.jsx("rect",{width:c.width+2*i[0],x:-i[0],y:-i[1],height:c.height+2*i[1],className:"react-flow__edge-textbg",style:o,rx:a,ry:a}),h.jsx("text",{className:"react-flow__edge-text",y:c.height/2,dy:"0.3em",ref:p,style:r,children:n}),l]}):null}L1.displayName="EdgeText";const oA=R.memo(L1);function tc({path:e,labelX:t,labelY:n,label:r,labelStyle:s,labelShowBg:o,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:u=20,...d}){return h.jsxs(h.Fragment,{children:[h.jsx("path",{...d,d:e,fill:"none",className:Oe(["react-flow__edge-path",d.className])}),u?h.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,r&&en(t)&&en(n)?h.jsx(oA,{x:t,y:n,label:r,labelStyle:s,labelShowBg:o,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function yy({pos:e,x1:t,y1:n,x2:r,y2:s}){return e===ee.Left||e===ee.Right?[.5*(t+r),n]:[t,.5*(n+s)]}function I1({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:s,targetPosition:o=ee.Top}){const[i,a]=yy({pos:n,x1:e,y1:t,x2:r,y2:s}),[l,u]=yy({pos:o,x1:r,y1:s,x2:e,y2:t}),[d,c,f,m]=n1({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:u});return[`M${e},${t} C${i},${a} ${l},${u} ${r},${s}`,d,c,f,m]}function A1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,sourcePosition:i,targetPosition:a,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,interactionWidth:g})=>{const[v,y,S]=I1({sourceX:n,sourceY:r,sourcePosition:i,targetX:s,targetY:o,targetPosition:a}),E=e.isInternal?void 0:t;return h.jsx(tc,{id:E,path:v,labelX:y,labelY:S,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,interactionWidth:g})})}const iA=A1({isInternal:!1}),O1=A1({isInternal:!0});iA.displayName="SimpleBezierEdge";O1.displayName="SimpleBezierEdgeInternal";function F1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,sourcePosition:m=ee.Bottom,targetPosition:p=ee.Top,markerEnd:x,markerStart:w,pathOptions:g,interactionWidth:v})=>{const[y,S,E]=Ef({sourceX:n,sourceY:r,sourcePosition:m,targetX:s,targetY:o,targetPosition:p,borderRadius:g==null?void 0:g.borderRadius,offset:g==null?void 0:g.offset,stepPosition:g==null?void 0:g.stepPosition}),_=e.isInternal?void 0:t;return h.jsx(tc,{id:_,path:y,labelX:S,labelY:E,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,markerEnd:x,markerStart:w,interactionWidth:v})})}const D1=F1({isInternal:!1}),z1=F1({isInternal:!0});D1.displayName="SmoothStepEdge";z1.displayName="SmoothStepEdgeInternal";function $1(e){return R.memo(({id:t,...n})=>{var s;const r=e.isInternal?void 0:t;return h.jsx(D1,{...n,id:r,pathOptions:R.useMemo(()=>{var o;return{borderRadius:0,offset:(o=n.pathOptions)==null?void 0:o.offset}},[(s=n.pathOptions)==null?void 0:s.offset])})})}const aA=$1({isInternal:!1}),B1=$1({isInternal:!0});aA.displayName="StepEdge";B1.displayName="StepEdgeInternal";function H1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,markerEnd:m,markerStart:p,interactionWidth:x})=>{const[w,g,v]=o1({sourceX:n,sourceY:r,targetX:s,targetY:o}),y=e.isInternal?void 0:t;return h.jsx(tc,{id:y,path:w,labelX:g,labelY:v,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,markerEnd:m,markerStart:p,interactionWidth:x})})}const lA=H1({isInternal:!1}),U1=H1({isInternal:!0});lA.displayName="StraightEdge";U1.displayName="StraightEdgeInternal";function V1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,sourcePosition:i=ee.Bottom,targetPosition:a=ee.Top,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,pathOptions:g,interactionWidth:v})=>{const[y,S,E]=r1({sourceX:n,sourceY:r,sourcePosition:i,targetX:s,targetY:o,targetPosition:a,curvature:g==null?void 0:g.curvature}),_=e.isInternal?void 0:t;return h.jsx(tc,{id:_,path:y,labelX:S,labelY:E,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,interactionWidth:v})})}const uA=V1({isInternal:!1}),W1=V1({isInternal:!0});uA.displayName="BezierEdge";W1.displayName="BezierEdgeInternal";const xy={default:W1,straight:U1,step:B1,smoothstep:z1,simplebezier:O1},vy={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},cA=(e,t,n)=>n===ee.Left?e-t:n===ee.Right?e+t:e,dA=(e,t,n)=>n===ee.Top?e-t:n===ee.Bottom?e+t:e,wy="react-flow__edgeupdater";function Sy({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:s,onMouseEnter:o,onMouseOut:i,type:a}){return h.jsx("circle",{onMouseDown:s,onMouseEnter:o,onMouseOut:i,className:Oe([wy,`${wy}-${a}`]),cx:cA(t,r,e),cy:dA(n,r,e),r,stroke:"transparent",fill:"transparent"})}function fA({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:s,targetX:o,targetY:i,sourcePosition:a,targetPosition:l,onReconnect:u,onReconnectStart:d,onReconnectEnd:c,setReconnecting:f,setUpdateHover:m}){const p=Ce(),x=(S,E)=>{if(S.button!==0)return;const{autoPanOnConnect:_,domNode:b,isValidConnection:C,connectionMode:L,connectionRadius:M,lib:P,onConnectStart:j,onConnectEnd:O,cancelConnection:k,nodeLookup:D,rfId:I,panBy:F,updateConnection:N}=p.getState(),T=E.type==="target",z=(K,V)=>{f(!1),c==null||c(K,n,E.type,V)},B=K=>u==null?void 0:u(n,K),H=(K,V)=>{f(!0),d==null||d(S,n,E.type),j==null||j(K,V)};kf.onPointerDown(S.nativeEvent,{autoPanOnConnect:_,connectionMode:L,connectionRadius:M,domNode:b,handleId:E.id,nodeId:E.nodeId,nodeLookup:D,isTarget:T,edgeUpdaterType:E.type,lib:P,flowId:I,cancelConnection:k,panBy:F,isValidConnection:C,onConnect:B,onConnectStart:H,onConnectEnd:O,onReconnectEnd:z,updateConnection:N,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:S.currentTarget})},w=S=>x(S,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),g=S=>x(S,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),v=()=>m(!0),y=()=>m(!1);return h.jsxs(h.Fragment,{children:[(e===!0||e==="source")&&h.jsx(Sy,{position:a,centerX:r,centerY:s,radius:t,onMouseDown:w,onMouseEnter:v,onMouseOut:y,type:"source"}),(e===!0||e==="target")&&h.jsx(Sy,{position:l,centerX:o,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:"target"})]})}function hA({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:s,onDoubleClick:o,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,reconnectRadius:d,onReconnect:c,onReconnectStart:f,onReconnectEnd:m,rfId:p,edgeTypes:x,noPanClassName:w,onError:g,disableKeyboardA11y:v}){let y=fe(J=>J.edgeLookup.get(e));const S=fe(J=>J.defaultEdgeOptions);y=S?{...S,...y}:y;let E=y.type||"default",_=(x==null?void 0:x[E])||xy[E];_===void 0&&(g==null||g("011",bn.error011(E)),E="default",_=(x==null?void 0:x.default)||xy.default);const b=!!(y.focusable||t&&typeof y.focusable>"u"),C=typeof c<"u"&&(y.reconnectable||n&&typeof y.reconnectable>"u"),L=!!(y.selectable||r&&typeof y.selectable>"u"),M=R.useRef(null),[P,j]=R.useState(!1),[O,k]=R.useState(!1),D=Ce(),{zIndex:I,sourceX:F,sourceY:N,targetX:T,targetY:z,sourcePosition:B,targetPosition:H}=fe(R.useCallback(J=>{const te=J.nodeLookup.get(y.source),he=J.nodeLookup.get(y.target);if(!te||!he)return{zIndex:y.zIndex,...vy};const ye=cL({id:e,sourceNode:te,targetNode:he,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:J.connectionMode,onError:g});return{zIndex:nL({selected:y.selected,zIndex:y.zIndex,sourceNode:te,targetNode:he,elevateOnSelect:J.elevateEdgesOnSelect,zIndexMode:J.zIndexMode}),...ye||vy}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Ee),K=R.useMemo(()=>y.markerStart?`url('#${Cf(y.markerStart,p)}')`:void 0,[y.markerStart,p]),V=R.useMemo(()=>y.markerEnd?`url('#${Cf(y.markerEnd,p)}')`:void 0,[y.markerEnd,p]);if(y.hidden||F===null||N===null||T===null||z===null)return null;const X=J=>{var ce;const{addSelectedEdges:te,unselectNodesAndEdges:he,multiSelectionActive:ye}=D.getState();L&&(D.setState({nodesSelectionActive:!1}),y.selected&&ye?(he({nodes:[],edges:[y]}),(ce=M.current)==null||ce.blur()):te([e])),s&&s(J,y)},Q=o?J=>{o(J,{...y})}:void 0,Y=i?J=>{i(J,{...y})}:void 0,W=a?J=>{a(J,{...y})}:void 0,Z=l?J=>{l(J,{...y})}:void 0,oe=u?J=>{u(J,{...y})}:void 0,re=J=>{var te;if(!v&&Hw.includes(J.key)&&L){const{unselectNodesAndEdges:he,addSelectedEdges:ye}=D.getState();J.key==="Escape"?((te=M.current)==null||te.blur(),he({edges:[y]})):ye([e])}};return h.jsx("svg",{style:{zIndex:I},children:h.jsxs("g",{className:Oe(["react-flow__edge",`react-flow__edge-${E}`,y.className,w,{selected:y.selected,animated:y.animated,inactive:!L&&!s,updating:P,selectable:L}]),onClick:X,onDoubleClick:Q,onContextMenu:Y,onMouseEnter:W,onMouseMove:Z,onMouseLeave:oe,onKeyDown:b?re:void 0,tabIndex:b?0:void 0,role:y.ariaRole??(b?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":b?`${w1}-${p}`:void 0,ref:M,...y.domAttributes,children:[!O&&h.jsx(_,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:L,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:F,sourceY:N,targetX:T,targetY:z,sourcePosition:B,targetPosition:H,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:K,markerEnd:V,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),C&&h.jsx(fA,{edge:y,isReconnectable:C,reconnectRadius:d,onReconnect:c,onReconnectStart:f,onReconnectEnd:m,sourceX:F,sourceY:N,targetX:T,targetY:z,sourcePosition:B,targetPosition:H,setUpdateHover:j,setReconnecting:k})]})})}var pA=R.memo(hA);const mA=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function K1({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:s,onReconnect:o,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:c,onEdgeDoubleClick:f,onReconnectStart:m,onReconnectEnd:p,disableKeyboardA11y:x}){const{edgesFocusable:w,edgesReconnectable:g,elementsSelectable:v,onError:y}=fe(mA,Ee),S=JI(t);return h.jsxs("div",{className:"react-flow__edges",children:[h.jsx(sA,{defaultColor:e,rfId:n}),S.map(E=>h.jsx(pA,{id:E,edgesFocusable:w,edgesReconnectable:g,elementsSelectable:v,noPanClassName:s,onReconnect:o,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,onClick:d,reconnectRadius:c,onDoubleClick:f,onReconnectStart:m,onReconnectEnd:p,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:x},E))]})}K1.displayName="EdgeRenderer";const gA=R.memo(K1),yA=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function xA({children:e}){const t=fe(yA);return h.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function vA(e){const t=up(),n=R.useRef(!1);R.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const wA=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function SA(e){const t=fe(wA),n=Ce();return R.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function _A(e){return e.connection.inProgress?{...e.connection,to:ba(e.connection.to,e.transform)}:{...e.connection}}function bA(e){return _A}function EA(e){const t=bA();return fe(t,Ee)}const CA=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function NA({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:s,width:o,height:i,isValid:a,inProgress:l}=fe(CA,Ee);return!(o&&s&&l)?null:h.jsx("svg",{style:e,width:o,height:i,className:"react-flow__connectionline react-flow__container",children:h.jsx("g",{className:Oe(["react-flow__connection",Ww(a)]),children:h.jsx(q1,{style:t,type:n,CustomComponent:r,isValid:a})})})}const q1=({style:e,type:t=rr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:s,from:o,fromNode:i,fromHandle:a,fromPosition:l,to:u,toNode:d,toHandle:c,toPosition:f,pointer:m}=EA();if(!s)return;if(n)return h.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:o.x,fromY:o.y,toX:u.x,toY:u.y,fromPosition:l,toPosition:f,connectionStatus:Ww(r),toNode:d,toHandle:c,pointer:m});let p="";const x={sourceX:o.x,sourceY:o.y,sourcePosition:l,targetX:u.x,targetY:u.y,targetPosition:f};switch(t){case rr.Bezier:[p]=r1(x);break;case rr.SimpleBezier:[p]=I1(x);break;case rr.Step:[p]=Ef({...x,borderRadius:0});break;case rr.SmoothStep:[p]=Ef(x);break;default:[p]=o1(x)}return h.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};q1.displayName="ConnectionLine";const kA={};function _y(e=kA){R.useRef(e),Ce(),R.useEffect(()=>{},[e])}function PA(){Ce(),R.useRef(!1),R.useEffect(()=>{},[])}function Q1({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:s,onNodeDoubleClick:o,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:c,onSelectionStart:f,onSelectionEnd:m,connectionLineType:p,connectionLineStyle:x,connectionLineComponent:w,connectionLineContainerStyle:g,selectionKeyCode:v,selectionOnDrag:y,selectionMode:S,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:b,deleteKeyCode:C,onlyRenderVisibleElements:L,elementsSelectable:M,defaultViewport:P,translateExtent:j,minZoom:O,maxZoom:k,preventScrolling:D,defaultMarkerColor:I,zoomOnScroll:F,zoomOnPinch:N,panOnScroll:T,panOnScrollSpeed:z,panOnScrollMode:B,zoomOnDoubleClick:H,panOnDrag:K,onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:Q,onPaneMouseLeave:Y,onPaneScroll:W,onPaneContextMenu:Z,paneClickDistance:oe,nodeClickDistance:re,onEdgeContextMenu:J,onEdgeMouseEnter:te,onEdgeMouseMove:he,onEdgeMouseLeave:ye,reconnectRadius:ce,onReconnect:$e,onReconnectStart:un,onReconnectEnd:dt,noDragClassName:At,noWheelClassName:Wn,noPanClassName:Kn,disableKeyboardA11y:de,nodeExtent:Le,rfId:Ye,viewport:Cn,onViewportChange:$o}){return _y(e),_y(t),PA(),vA(n),SA(Cn),h.jsx(UI,{onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:Q,onPaneMouseLeave:Y,onPaneContextMenu:Z,onPaneScroll:W,paneClickDistance:oe,deleteKeyCode:C,selectionKeyCode:v,selectionOnDrag:y,selectionMode:S,onSelectionStart:f,onSelectionEnd:m,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:b,elementsSelectable:M,zoomOnScroll:F,zoomOnPinch:N,zoomOnDoubleClick:H,panOnScroll:T,panOnScrollSpeed:z,panOnScrollMode:B,panOnDrag:K,defaultViewport:P,translateExtent:j,minZoom:O,maxZoom:k,onSelectionContextMenu:c,preventScrolling:D,noDragClassName:At,noWheelClassName:Wn,noPanClassName:Kn,disableKeyboardA11y:de,onViewportChange:$o,isControlledViewport:!!Cn,children:h.jsxs(xA,{children:[h.jsx(gA,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:i,onReconnect:$e,onReconnectStart:un,onReconnectEnd:dt,onlyRenderVisibleElements:L,onEdgeContextMenu:J,onEdgeMouseEnter:te,onEdgeMouseMove:he,onEdgeMouseLeave:ye,reconnectRadius:ce,defaultMarkerColor:I,noPanClassName:Kn,disableKeyboardA11y:de,rfId:Ye}),h.jsx(NA,{style:x,type:p,component:w,containerStyle:g}),h.jsx("div",{className:"react-flow__edgelabel-renderer"}),h.jsx(ZI,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:re,onlyRenderVisibleElements:L,noPanClassName:Kn,noDragClassName:At,disableKeyboardA11y:de,nodeExtent:Le,rfId:Ye}),h.jsx("div",{className:"react-flow__viewport-portal"})]})})}Q1.displayName="GraphView";const RA=R.memo(Q1),by=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l=.5,maxZoom:u=2,nodeOrigin:d,nodeExtent:c,zIndexMode:f="basic"}={})=>{const m=new Map,p=new Map,x=new Map,w=new Map,g=r??t??[],v=n??e??[],y=d??[0,0],S=c??Xi;l1(x,w,g);const E=Nf(v,m,p,{nodeOrigin:y,nodeExtent:S,zIndexMode:f});let _=[0,0,1];if(i&&s&&o){const b=Sa(m,{filter:P=>!!((P.width||P.initialWidth)&&(P.height||P.initialHeight))}),{x:C,y:L,zoom:M}=np(b,s,o,l,u,(a==null?void 0:a.padding)??.1);_=[C,L,M]}return{rfId:"1",width:s??0,height:o??0,transform:_,nodes:v,nodesInitialized:E,nodeLookup:m,parentLookup:p,edges:g,edgeLookup:w,connectionLookup:x,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:u,translateExtent:Xi,nodeExtent:S,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:No.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Vw},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:XT,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Uw,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},jA=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:c,zIndexMode:f})=>QL((m,p)=>{async function x(){const{nodeLookup:w,panZoom:g,fitViewOptions:v,fitViewResolver:y,width:S,height:E,minZoom:_,maxZoom:b}=p();g&&(await QT({nodes:w,width:S,height:E,panZoom:g,minZoom:_,maxZoom:b},v),y==null||y.resolve(!0),m({fitViewResolver:null}))}return{...by({nodes:e,edges:t,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:c,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:w=>{const{nodeLookup:g,parentLookup:v,nodeOrigin:y,elevateNodesOnSelect:S,fitViewQueued:E,zIndexMode:_}=p(),b=Nf(w,g,v,{nodeOrigin:y,nodeExtent:c,elevateNodesOnSelect:S,checkEquality:!0,zIndexMode:_});E&&b?(x(),m({nodes:w,nodesInitialized:b,fitViewQueued:!1,fitViewOptions:void 0})):m({nodes:w,nodesInitialized:b})},setEdges:w=>{const{connectionLookup:g,edgeLookup:v}=p();l1(g,v,w),m({edges:w})},setDefaultNodesAndEdges:(w,g)=>{if(w){const{setNodes:v}=p();v(w),m({hasDefaultNodes:!0})}if(g){const{setEdges:v}=p();v(g),m({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:g,nodeLookup:v,parentLookup:y,domNode:S,nodeOrigin:E,nodeExtent:_,debug:b,fitViewQueued:C,zIndexMode:L}=p(),{changes:M,updatedInternals:P}=xL(w,v,y,S,E,_,L);P&&(pL(v,y,{nodeOrigin:E,nodeExtent:_,zIndexMode:L}),C?(x(),m({fitViewQueued:!1,fitViewOptions:void 0})):m({}),(M==null?void 0:M.length)>0&&(b&&console.log("React Flow: trigger node changes",M),g==null||g(M)))},updateNodePositions:(w,g=!1)=>{const v=[];let y=[];const{nodeLookup:S,triggerNodeChanges:E,connection:_,updateConnection:b,onNodesChangeMiddlewareMap:C}=p();for(const[L,M]of w){const P=S.get(L),j=!!(P!=null&&P.expandParent&&(P!=null&&P.parentId)&&(M!=null&&M.position)),O={id:L,type:"position",position:j?{x:Math.max(0,M.position.x),y:Math.max(0,M.position.y)}:M.position,dragging:g};if(P&&_.inProgress&&_.fromNode.id===P.id){const k=_s(P,_.fromHandle,ee.Left,!0);b({..._,from:k})}j&&P.parentId&&v.push({id:L,parentId:P.parentId,rect:{...M.internals.positionAbsolute,width:M.measured.width??0,height:M.measured.height??0}}),y.push(O)}if(v.length>0){const{parentLookup:L,nodeOrigin:M}=p(),P=lp(v,S,L,M);y.push(...P)}for(const L of C.values())y=L(y);E(y)},triggerNodeChanges:w=>{const{onNodesChange:g,setNodes:v,nodes:y,hasDefaultNodes:S,debug:E}=p();if(w!=null&&w.length){if(S){const _=b1(w,y);v(_)}E&&console.log("React Flow: trigger node changes",w),g==null||g(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:g,setEdges:v,edges:y,hasDefaultEdges:S,debug:E}=p();if(w!=null&&w.length){if(S){const _=E1(w,y);v(_)}E&&console.log("React Flow: trigger edge changes",w),g==null||g(w)}},addSelectedNodes:w=>{const{multiSelectionActive:g,edgeLookup:v,nodeLookup:y,triggerNodeChanges:S,triggerEdgeChanges:E}=p();if(g){const _=w.map(b=>Or(b,!0));S(_);return}S(Hs(y,new Set([...w]),!0)),E(Hs(v))},addSelectedEdges:w=>{const{multiSelectionActive:g,edgeLookup:v,nodeLookup:y,triggerNodeChanges:S,triggerEdgeChanges:E}=p();if(g){const _=w.map(b=>Or(b,!0));E(_);return}E(Hs(v,new Set([...w]))),S(Hs(y,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:g}={})=>{const{edges:v,nodes:y,nodeLookup:S,triggerNodeChanges:E,triggerEdgeChanges:_}=p(),b=w||y,C=g||v,L=b.map(P=>{const j=S.get(P.id);return j&&(j.selected=!1),Or(P.id,!1)}),M=C.map(P=>Or(P.id,!1));E(L),_(M)},setMinZoom:w=>{const{panZoom:g,maxZoom:v}=p();g==null||g.setScaleExtent([w,v]),m({minZoom:w})},setMaxZoom:w=>{const{panZoom:g,minZoom:v}=p();g==null||g.setScaleExtent([v,w]),m({maxZoom:w})},setTranslateExtent:w=>{var g;(g=p().panZoom)==null||g.setTranslateExtent(w),m({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:g,triggerNodeChanges:v,triggerEdgeChanges:y,elementsSelectable:S}=p();if(!S)return;const E=g.reduce((b,C)=>C.selected?[...b,Or(C.id,!1)]:b,[]),_=w.reduce((b,C)=>C.selected?[...b,Or(C.id,!1)]:b,[]);v(E),y(_)},setNodeExtent:w=>{const{nodes:g,nodeLookup:v,parentLookup:y,nodeOrigin:S,elevateNodesOnSelect:E,nodeExtent:_,zIndexMode:b}=p();w[0][0]===_[0][0]&&w[0][1]===_[0][1]&&w[1][0]===_[1][0]&&w[1][1]===_[1][1]||(Nf(g,v,y,{nodeOrigin:S,nodeExtent:w,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:b}),m({nodeExtent:w}))},panBy:w=>{const{transform:g,width:v,height:y,panZoom:S,translateExtent:E}=p();return vL({delta:w,panZoom:S,transform:g,translateExtent:E,width:v,height:y})},setCenter:async(w,g,v)=>{const{width:y,height:S,maxZoom:E,panZoom:_}=p();if(!_)return Promise.resolve(!1);const b=typeof(v==null?void 0:v.zoom)<"u"?v.zoom:E;return await _.setViewport({x:y/2-w*b,y:S/2-g*b,zoom:b},{duration:v==null?void 0:v.duration,ease:v==null?void 0:v.ease,interpolate:v==null?void 0:v.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{m({connection:{...Vw}})},updateConnection:w=>{m({connection:w})},reset:()=>m({...by()})}},Object.is);function MA({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:s,initialHeight:o,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:l,fitView:u,nodeOrigin:d,nodeExtent:c,zIndexMode:f,children:m}){const[p]=R.useState(()=>jA({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:u,minZoom:i,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:c,zIndexMode:f}));return h.jsx(GL,{value:p,children:h.jsx(xI,{children:m})})}function TA({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:s,width:o,height:i,fitView:a,fitViewOptions:l,minZoom:u,maxZoom:d,nodeOrigin:c,nodeExtent:f,zIndexMode:m}){return R.useContext(Ju)?h.jsx(h.Fragment,{children:e}):h.jsx(MA,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:s,initialWidth:o,initialHeight:i,fitView:a,initialFitViewOptions:l,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:c,nodeExtent:f,zIndexMode:m,children:e})}const LA={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function IA({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:s,nodeTypes:o,edgeTypes:i,onNodeClick:a,onEdgeClick:l,onInit:u,onMove:d,onMoveStart:c,onMoveEnd:f,onConnect:m,onConnectStart:p,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:g,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:S,onNodeContextMenu:E,onNodeDoubleClick:_,onNodeDragStart:b,onNodeDrag:C,onNodeDragStop:L,onNodesDelete:M,onEdgesDelete:P,onDelete:j,onSelectionChange:O,onSelectionDragStart:k,onSelectionDrag:D,onSelectionDragStop:I,onSelectionContextMenu:F,onSelectionStart:N,onSelectionEnd:T,onBeforeDelete:z,connectionMode:B,connectionLineType:H=rr.Bezier,connectionLineStyle:K,connectionLineComponent:V,connectionLineContainerStyle:X,deleteKeyCode:Q="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:W=!1,selectionMode:Z=Yi.Full,panActivationKeyCode:oe="Space",multiSelectionKeyCode:re=Ji()?"Meta":"Control",zoomActivationKeyCode:J=Ji()?"Meta":"Control",snapToGrid:te,snapGrid:he,onlyRenderVisibleElements:ye=!1,selectNodesOnDrag:ce,nodesDraggable:$e,autoPanOnNodeFocus:un,nodesConnectable:dt,nodesFocusable:At,nodeOrigin:Wn=S1,edgesFocusable:Kn,edgesReconnectable:de,elementsSelectable:Le=!0,defaultViewport:Ye=lI,minZoom:Cn=.5,maxZoom:$o=2,translateExtent:dp=Xi,preventScrolling:J1=!0,nodeExtent:nc,defaultMarkerColor:eS="#b1b1b7",zoomOnScroll:tS=!0,zoomOnPinch:nS=!0,panOnScroll:rS=!1,panOnScrollSpeed:sS=.5,panOnScrollMode:oS=as.Free,zoomOnDoubleClick:iS=!0,panOnDrag:aS=!0,onPaneClick:lS,onPaneMouseEnter:uS,onPaneMouseMove:cS,onPaneMouseLeave:dS,onPaneScroll:fS,onPaneContextMenu:hS,paneClickDistance:pS=1,nodeClickDistance:mS=0,children:gS,onReconnect:yS,onReconnectStart:xS,onReconnectEnd:vS,onEdgeContextMenu:wS,onEdgeDoubleClick:SS,onEdgeMouseEnter:_S,onEdgeMouseMove:bS,onEdgeMouseLeave:ES,reconnectRadius:CS=10,onNodesChange:NS,onEdgesChange:kS,noDragClassName:PS="nodrag",noWheelClassName:RS="nowheel",noPanClassName:fp="nopan",fitView:hp,fitViewOptions:pp,connectOnClick:jS,attributionPosition:MS,proOptions:TS,defaultEdgeOptions:LS,elevateNodesOnSelect:IS=!0,elevateEdgesOnSelect:AS=!1,disableKeyboardA11y:mp=!1,autoPanOnConnect:OS,autoPanOnNodeDrag:FS,autoPanSpeed:DS,connectionRadius:zS,isValidConnection:$S,onError:BS,style:HS,id:gp,nodeDragThreshold:US,connectionDragThreshold:VS,viewport:WS,onViewportChange:KS,width:qS,height:QS,colorMode:GS="light",debug:XS,onScroll:Ca,ariaLabelConfig:YS,zIndexMode:yp="basic",...ZS},JS){const rc=gp||"1",e_=fI(GS),t_=R.useCallback(xp=>{xp.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Ca==null||Ca(xp)},[Ca]);return h.jsx("div",{"data-testid":"rf__wrapper",...ZS,onScroll:t_,style:{...HS,...LA},ref:JS,className:Oe(["react-flow",s,e_]),id:gp,role:"application",children:h.jsxs(TA,{nodes:e,edges:t,width:qS,height:QS,fitView:hp,fitViewOptions:pp,minZoom:Cn,maxZoom:$o,nodeOrigin:Wn,nodeExtent:nc,zIndexMode:yp,children:[h.jsx(RA,{onInit:u,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:S,onNodeContextMenu:E,onNodeDoubleClick:_,nodeTypes:o,edgeTypes:i,connectionLineType:H,connectionLineStyle:K,connectionLineComponent:V,connectionLineContainerStyle:X,selectionKeyCode:Y,selectionOnDrag:W,selectionMode:Z,deleteKeyCode:Q,multiSelectionKeyCode:re,panActivationKeyCode:oe,zoomActivationKeyCode:J,onlyRenderVisibleElements:ye,defaultViewport:Ye,translateExtent:dp,minZoom:Cn,maxZoom:$o,preventScrolling:J1,zoomOnScroll:tS,zoomOnPinch:nS,zoomOnDoubleClick:iS,panOnScroll:rS,panOnScrollSpeed:sS,panOnScrollMode:oS,panOnDrag:aS,onPaneClick:lS,onPaneMouseEnter:uS,onPaneMouseMove:cS,onPaneMouseLeave:dS,onPaneScroll:fS,onPaneContextMenu:hS,paneClickDistance:pS,nodeClickDistance:mS,onSelectionContextMenu:F,onSelectionStart:N,onSelectionEnd:T,onReconnect:yS,onReconnectStart:xS,onReconnectEnd:vS,onEdgeContextMenu:wS,onEdgeDoubleClick:SS,onEdgeMouseEnter:_S,onEdgeMouseMove:bS,onEdgeMouseLeave:ES,reconnectRadius:CS,defaultMarkerColor:eS,noDragClassName:PS,noWheelClassName:RS,noPanClassName:fp,rfId:rc,disableKeyboardA11y:mp,nodeExtent:nc,viewport:WS,onViewportChange:KS}),h.jsx(dI,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:m,onConnectStart:p,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:g,nodesDraggable:$e,autoPanOnNodeFocus:un,nodesConnectable:dt,nodesFocusable:At,edgesFocusable:Kn,edgesReconnectable:de,elementsSelectable:Le,elevateNodesOnSelect:IS,elevateEdgesOnSelect:AS,minZoom:Cn,maxZoom:$o,nodeExtent:nc,onNodesChange:NS,onEdgesChange:kS,snapToGrid:te,snapGrid:he,connectionMode:B,translateExtent:dp,connectOnClick:jS,defaultEdgeOptions:LS,fitView:hp,fitViewOptions:pp,onNodesDelete:M,onEdgesDelete:P,onDelete:j,onNodeDragStart:b,onNodeDrag:C,onNodeDragStop:L,onSelectionDrag:D,onSelectionDragStart:k,onSelectionDragStop:I,onMove:d,onMoveStart:c,onMoveEnd:f,noPanClassName:fp,nodeOrigin:Wn,rfId:rc,autoPanOnConnect:OS,autoPanOnNodeDrag:FS,autoPanSpeed:DS,onError:BS,connectionRadius:zS,isValidConnection:$S,selectNodesOnDrag:ce,nodeDragThreshold:US,connectionDragThreshold:VS,onBeforeDelete:z,debug:XS,ariaLabelConfig:YS,zIndexMode:yp}),h.jsx(aI,{onSelectionChange:O}),gS,h.jsx(nI,{proOptions:TS,position:MS}),h.jsx(tI,{rfId:rc,disableKeyboardA11y:mp})]})})}var AA=C1(IA);function OA(e){const[t,n]=R.useState(e),r=R.useCallback(s=>n(o=>b1(s,o)),[]);return[t,n,r]}function FA(e){const[t,n]=R.useState(e),r=R.useCallback(s=>n(o=>E1(s,o)),[]);return[t,n,r]}function DA({dimensions:e,lineWidth:t,variant:n,className:r}){return h.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Oe(["react-flow__background-pattern",n,r])})}function zA({radius:e,className:t}){return h.jsx("circle",{cx:e,cy:e,r:e,className:Oe(["react-flow__background-pattern","dots",t])})}var kr;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(kr||(kr={}));const $A={[kr.Dots]:1,[kr.Lines]:1,[kr.Cross]:6},BA=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function G1({id:e,variant:t=kr.Dots,gap:n=20,size:r,lineWidth:s=1,offset:o=0,color:i,bgColor:a,style:l,className:u,patternClassName:d}){const c=R.useRef(null),{transform:f,patternId:m}=fe(BA,Ee),p=r||$A[t],x=t===kr.Dots,w=t===kr.Cross,g=Array.isArray(n)?n:[n,n],v=[g[0]*f[2]||1,g[1]*f[2]||1],y=p*f[2],S=Array.isArray(o)?o:[o,o],E=w?[y,y]:v,_=[S[0]*f[2]||1+E[0]/2,S[1]*f[2]||1+E[1]/2],b=`${m}${e||""}`;return h.jsxs("svg",{className:Oe(["react-flow__background",u]),style:{...l,...ec,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:c,"data-testid":"rf__background",children:[h.jsx("pattern",{id:b,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:x?h.jsx(zA,{radius:y/2,className:d}):h.jsx(DA,{dimensions:E,lineWidth:s,variant:t,className:d})}),h.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${b})`})]})}G1.displayName="Background";const HA=R.memo(G1);function UA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:h.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function VA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:h.jsx("path",{d:"M0 0h32v4.2H0z"})})}function WA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:h.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function KA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:h.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function qA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:h.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function sl({children:e,className:t,...n}){return h.jsx("button",{type:"button",className:Oe(["react-flow__controls-button",t]),...n,children:e})}const QA=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function X1({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:s,onZoomIn:o,onZoomOut:i,onFitView:a,onInteractiveChange:l,className:u,children:d,position:c="bottom-left",orientation:f="vertical","aria-label":m}){const p=Ce(),{isInteractive:x,minZoomReached:w,maxZoomReached:g,ariaLabelConfig:v}=fe(QA,Ee),{zoomIn:y,zoomOut:S,fitView:E}=up(),_=()=>{y(),o==null||o()},b=()=>{S(),i==null||i()},C=()=>{E(s),a==null||a()},L=()=>{p.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),l==null||l(!x)},M=f==="horizontal"?"horizontal":"vertical";return h.jsxs(Ea,{className:Oe(["react-flow__controls",M,u]),position:c,style:e,"data-testid":"rf__controls","aria-label":m??v["controls.ariaLabel"],children:[t&&h.jsxs(h.Fragment,{children:[h.jsx(sl,{onClick:_,className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:g,children:h.jsx(UA,{})}),h.jsx(sl,{onClick:b,className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:w,children:h.jsx(VA,{})})]}),n&&h.jsx(sl,{className:"react-flow__controls-fitview",onClick:C,title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:h.jsx(WA,{})}),r&&h.jsx(sl,{className:"react-flow__controls-interactive",onClick:L,title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:x?h.jsx(qA,{}):h.jsx(KA,{})}),d]})}X1.displayName="Controls";const GA=R.memo(X1);function XA({id:e,x:t,y:n,width:r,height:s,style:o,color:i,strokeColor:a,strokeWidth:l,className:u,borderRadius:d,shapeRendering:c,selected:f,onClick:m}){const{background:p,backgroundColor:x}=o||{},w=i||p||x;return h.jsx("rect",{className:Oe(["react-flow__minimap-node",{selected:f},u]),x:t,y:n,rx:d,ry:d,width:r,height:s,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:c,onClick:m?g=>m(g,e):void 0})}const YA=R.memo(XA),ZA=e=>e.nodes.map(t=>t.id),Jc=e=>e instanceof Function?e:()=>e;function JA({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:s,nodeComponent:o=YA,onClick:i}){const a=fe(ZA,Ee),l=Jc(t),u=Jc(e),d=Jc(n),c=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return h.jsx(h.Fragment,{children:a.map(f=>h.jsx(tO,{id:f,nodeColorFunc:l,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:s,NodeComponent:o,onClick:i,shapeRendering:c},f))})}function eO({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:s,nodeStrokeWidth:o,shapeRendering:i,NodeComponent:a,onClick:l}){const{node:u,x:d,y:c,width:f,height:m}=fe(p=>{const{internals:x}=p.nodeLookup.get(e),w=x.userNode,{x:g,y:v}=x.positionAbsolute,{width:y,height:S}=Vn(w);return{node:w,x:g,y:v,width:y,height:S}},Ee);return!u||u.hidden||!Yw(u)?null:h.jsx(a,{x:d,y:c,width:f,height:m,style:u.style,selected:!!u.selected,className:r(u),color:t(u),borderRadius:s,strokeColor:n(u),strokeWidth:o,shapeRendering:i,onClick:l,id:u.id})}const tO=R.memo(eO);var nO=R.memo(JA);const rO=200,sO=150,oO=e=>!e.hidden,iO=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Xw(Sa(e.nodeLookup,{filter:oO}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},aO="react-flow__minimap-desc";function Y1({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:s="",nodeBorderRadius:o=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:l,maskColor:u,maskStrokeColor:d,maskStrokeWidth:c,position:f="bottom-right",onClick:m,onNodeClick:p,pannable:x=!1,zoomable:w=!1,ariaLabel:g,inversePan:v,zoomStep:y=1,offsetScale:S=5}){const E=Ce(),_=R.useRef(null),{boundingRect:b,viewBB:C,rfId:L,panZoom:M,translateExtent:P,flowWidth:j,flowHeight:O,ariaLabelConfig:k}=fe(iO,Ee),D=(e==null?void 0:e.width)??rO,I=(e==null?void 0:e.height)??sO,F=b.width/D,N=b.height/I,T=Math.max(F,N),z=T*D,B=T*I,H=S*T,K=b.x-(z-b.width)/2-H,V=b.y-(B-b.height)/2-H,X=z+H*2,Q=B+H*2,Y=`${aO}-${L}`,W=R.useRef(0),Z=R.useRef();W.current=T,R.useEffect(()=>{if(_.current&&M)return Z.current=PL({domNode:_.current,panZoom:M,getTransform:()=>E.getState().transform,getViewScale:()=>W.current}),()=>{var te;(te=Z.current)==null||te.destroy()}},[M]),R.useEffect(()=>{var te;(te=Z.current)==null||te.update({translateExtent:P,width:j,height:O,inversePan:v,pannable:x,zoomStep:y,zoomable:w})},[x,w,v,y,P,j,O]);const oe=m?te=>{var ce;const[he,ye]=((ce=Z.current)==null?void 0:ce.pointer(te))||[0,0];m(te,{x:he,y:ye})}:void 0,re=p?R.useCallback((te,he)=>{const ye=E.getState().nodeLookup.get(he).internals.userNode;p(te,ye)},[]):void 0,J=g??k["minimap.ariaLabel"];return h.jsx(Ea,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof c=="number"?c*T:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:Oe(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:h.jsxs("svg",{width:D,height:I,viewBox:`${K} ${V} ${X} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:_,onClick:oe,children:[J&&h.jsx("title",{id:Y,children:J}),h.jsx(nO,{onClick:re,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:s,nodeStrokeWidth:i,nodeComponent:a}),h.jsx("path",{className:"react-flow__minimap-mask",d:`M${K-H},${V-H}h${X+H*2}v${Q+H*2}h${-X-H*2}z
|
|
67
|
-
M${C.x},${C.y}h${C.width}v${C.height}h${-C.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Y1.displayName="MiniMap";const lO=R.memo(Y1),uO=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,cO={[jo.Line]:"right",[jo.Handle]:"bottom-right"};function dO({nodeId:e,position:t,variant:n=jo.Handle,className:r,style:s=void 0,children:o,color:i,minWidth:a=10,minHeight:l=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:c=!1,resizeDirection:f,autoScale:m=!0,shouldResize:p,onResizeStart:x,onResize:w,onResizeEnd:g}){const v=R1(),y=typeof e=="string"?e:v,S=Ce(),E=R.useRef(null),_=n===jo.Handle,b=fe(R.useCallback(uO(_&&m),[_,m]),Ee),C=R.useRef(null),L=t??cO[n];R.useEffect(()=>{if(!(!E.current||!y))return C.current||(C.current=HL({domNode:E.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:P,transform:j,snapGrid:O,snapToGrid:k,nodeOrigin:D,domNode:I}=S.getState();return{nodeLookup:P,transform:j,snapGrid:O,snapToGrid:k,nodeOrigin:D,paneDomNode:I}},onChange:(P,j)=>{const{triggerNodeChanges:O,nodeLookup:k,parentLookup:D,nodeOrigin:I}=S.getState(),F=[],N={x:P.x,y:P.y},T=k.get(y);if(T&&T.expandParent&&T.parentId){const z=T.origin??I,B=P.width??T.measured.width??0,H=P.height??T.measured.height??0,K={id:T.id,parentId:T.parentId,rect:{width:B,height:H,...Zw({x:P.x??T.position.x,y:P.y??T.position.y},{width:B,height:H},T.parentId,k,z)}},V=lp([K],k,D,I);F.push(...V),N.x=P.x?Math.max(z[0]*B,P.x):void 0,N.y=P.y?Math.max(z[1]*H,P.y):void 0}if(N.x!==void 0&&N.y!==void 0){const z={id:y,type:"position",position:{...N}};F.push(z)}if(P.width!==void 0&&P.height!==void 0){const B={id:y,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:P.width,height:P.height}};F.push(B)}for(const z of j){const B={...z,type:"position"};F.push(B)}O(F)},onEnd:({width:P,height:j})=>{const O={id:y,type:"dimensions",resizing:!1,dimensions:{width:P,height:j}};S.getState().triggerNodeChanges([O])}})),C.current.update({controlPosition:L,boundaries:{minWidth:a,minHeight:l,maxWidth:u,maxHeight:d},keepAspectRatio:c,resizeDirection:f,onResizeStart:x,onResize:w,onResizeEnd:g,shouldResize:p}),()=>{var P;(P=C.current)==null||P.destroy()}},[L,a,l,u,d,c,x,w,g,p]);const M=L.split("-");return h.jsx("div",{className:Oe(["react-flow__resize-control","nodrag",...M,n,r]),ref:E,style:{...s,scale:b,...i&&{[_?"backgroundColor":"borderColor"]:i}},children:o})}R.memo(dO);function fO({data:e,selected:t}){const n=e,r=n.failed_count>0,s=n.running_count>0,o=n.success_count===n.total_count&&n.total_count>0;let i="border-border";return t?i="border-primary ring-2 ring-primary/20":r?i="border-red-500":s?i="border-blue-500":o&&(i="border-green-500"),h.jsxs("div",{className:`bg-card rounded-lg border-2 ${i} shadow-md min-w-[180px] transition-all`,children:[h.jsx(Mo,{type:"target",position:ee.Top,className:"!bg-muted-foreground !w-3 !h-3"}),h.jsxs("div",{className:"px-4 py-3",children:[h.jsx("div",{className:"font-semibold text-sm mb-2",children:n.class_name}),h.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[h.jsxs(mt,{variant:"muted",className:"text-xs px-1.5 py-0.5",children:[n.total_count," total"]}),n.success_count>0&&h.jsx(mt,{variant:"success",className:"text-xs px-1.5 py-0.5",children:n.success_count}),n.running_count>0&&h.jsx(mt,{variant:"info",className:"text-xs px-1.5 py-0.5",children:n.running_count}),n.failed_count>0&&h.jsx(mt,{variant:"destructive",className:"text-xs px-1.5 py-0.5",children:n.failed_count})]}),h.jsxs("div",{className:"space-y-1",children:[n.experiments.slice(0,3).map(a=>h.jsxs(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:a.namespace,furu_hash:a.furu_hash},className:"block text-xs text-muted-foreground hover:text-primary truncate",title:a.furu_hash,children:[a.furu_hash.slice(0,8),"..."]},a.furu_hash)),n.experiments.length>3&&h.jsxs("div",{className:"text-xs text-muted-foreground",children:["+",n.experiments.length-3," more"]})]})]}),h.jsx(Mo,{type:"source",position:ee.Bottom,className:"!bg-muted-foreground !w-3 !h-3"})]})}const hO={classNode:fO};function pO(e,t){var p;const n=new Map,r=new Map,s=new Map;for(const x of e)n.set(x.id,0),r.set(x.id,[]),s.set(x.id,x);for(const x of t)s.has(x.source)&&s.has(x.target)&&(n.set(x.target,(n.get(x.target)??0)+1),(p=r.get(x.source))==null||p.push(x.target));const o=[],i=new Set,a=new Set(e.map(x=>x.id));for(;a.size>0;){const x=[];for(const w of a)(n.get(w)??0)===0&&x.push(w);if(x.length===0){const w=a.values().next().value;w&&x.push(w)}o.push(x);for(const w of x){a.delete(w),i.add(w);for(const g of r.get(w)??[])i.has(g)||n.set(g,(n.get(g)??1)-1)}}const l=200,u=180,d=40,c=new Map;for(let x=0;x<o.length;x++){const w=o[x],v=-(w.length*l+(w.length-1)*d)/2;for(let y=0;y<w.length;y++){const S=w[y];c.set(S,{x:v+y*(l+d),y:x*u})}}const f=e.map(x=>{const w=c.get(x.id)??{x:0,y:0};return{id:x.id,type:"classNode",position:w,data:x}}),m=t.filter(x=>s.has(x.source)&&s.has(x.target)).map(x=>({id:`${x.source}-${x.target}`,source:x.source,target:x.target,label:x.field_name,labelStyle:{fontSize:10,fill:"hsl(var(--muted-foreground))"},labelBgStyle:{fill:"hsl(var(--background))"},labelBgPadding:[4,2],style:{stroke:"hsl(var(--border))",strokeWidth:2},markerEnd:{type:ws.ArrowClosed,color:"hsl(var(--border))"},animated:!1}));return{nodes:f,edges:m}}function mO({nodes:e,edges:t}){const[n,r]=R.useState(null),{nodes:s,edges:o}=R.useMemo(()=>pO(e,t),[e,t]),[i,,a]=OA(s),[l,u,d]=FA(o),c=R.useCallback((m,p)=>{const x=p.data;r(x);const w=new Set([p.id]);for(const g of t)g.target===p.id&&w.add(g.source),g.source===p.id&&w.add(g.target);u(g=>g.map(v=>{const y=v.source===p.id||v.target===p.id;return{...v,animated:y,style:{...v.style,stroke:y?"hsl(var(--primary))":"hsl(var(--border))",strokeWidth:y?3:2},markerEnd:{type:ws.ArrowClosed,color:y?"hsl(var(--primary))":"hsl(var(--border))"}}}))},[t,u]),f=R.useCallback(()=>{r(null),u(m=>m.map(p=>({...p,animated:!1,style:{...p.style,stroke:"hsl(var(--border))",strokeWidth:2},markerEnd:{type:ws.ArrowClosed,color:"hsl(var(--border))"}})))},[u]);return h.jsx("div",{className:"h-[600px] border rounded-lg bg-background relative",children:h.jsxs(AA,{nodes:i,edges:l,onNodesChange:a,onEdgesChange:d,onNodeClick:c,onPaneClick:f,nodeTypes:hO,fitView:!0,fitViewOptions:{padding:.2},minZoom:.1,maxZoom:2,defaultEdgeOptions:{type:"smoothstep"},children:[h.jsx(HA,{}),h.jsx(GA,{}),h.jsx(lO,{nodeStrokeColor:"hsl(var(--border))",nodeColor:"hsl(var(--card))",nodeBorderRadius:4}),n&&h.jsx(Ea,{position:"top-right",className:"m-4",children:h.jsxs(be,{className:"w-80",children:[h.jsxs(nt,{className:"pb-2",children:[h.jsx(lt,{className:"text-base",children:n.class_name}),h.jsx("code",{className:"text-xs text-muted-foreground break-all",children:n.full_class_name})]}),h.jsxs(ke,{className:"space-y-3",children:[h.jsxs("div",{className:"flex gap-2 flex-wrap",children:[h.jsxs(mt,{variant:"muted",children:[n.total_count," experiments"]}),n.success_count>0&&h.jsxs(mt,{variant:"success",children:[n.success_count," success"]}),n.running_count>0&&h.jsxs(mt,{variant:"info",children:[n.running_count," running"]}),n.failed_count>0&&h.jsxs(mt,{variant:"destructive",children:[n.failed_count," failed"]})]}),h.jsx("div",{className:"max-h-40 overflow-y-auto space-y-1",children:n.experiments.map(m=>h.jsxs(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:m.namespace,furu_hash:m.furu_hash},className:"flex items-center justify-between p-2 rounded hover:bg-muted text-sm",children:[h.jsxs("code",{className:"text-xs",children:[m.furu_hash.slice(0,12),"..."]}),h.jsx(mt,{variant:m.result_status==="success"?"success":m.result_status==="failed"?"destructive":m.attempt_status==="running"?"info":"muted",className:"text-xs",children:m.attempt_status??m.result_status})]},m.furu_hash))})]})]})})]})})}const gO={default:"border-border",success:"border-emerald-500/40",failed:"border-red-500/40",running:"border-blue-500/40"},yO={default:"text-foreground",success:"text-emerald-300",failed:"text-red-300",running:"text-blue-300"};function Vr({title:e,value:t,loading:n,variant:r="default",icon:s,testId:o}){return h.jsxs(be,{className:ze("p-5",gO[r]),"data-testid":o,children:[h.jsx(nt,{className:"p-0 pb-4",children:h.jsxs("div",{className:"flex items-center justify-between",children:[h.jsx("span",{className:"text-sm text-muted-foreground",children:e}),s?h.jsx(mt,{variant:"secondary",className:"text-base px-2 py-1",children:s}):null]})}),h.jsx(ke,{className:"p-0",children:h.jsx("div",{className:ze("text-3xl font-bold font-mono",yO[r]),"data-testid":o?`${o}-value`:void 0,children:n?"...":t.toLocaleString()})})]})}const xO=_o("/dag")({component:vO});function vO(){const{data:e,isLoading:t,error:n}=ZR();return h.jsxs("div",{className:"max-w-7xl mx-auto",children:[h.jsxs("div",{className:"mb-8",children:[h.jsx("h1",{className:"text-3xl font-bold mb-2",children:"Experiment DAG"}),h.jsx("p",{className:"text-muted-foreground",children:"Visualize the dependency graph of your experiments. Nodes represent experiment classes, edges show dependencies."})]}),e&&h.jsxs("div",{className:"grid grid-cols-3 gap-4 mb-6",children:[h.jsx(Vr,{title:"Classes",value:e.total_nodes,loading:t,icon:"N"}),h.jsx(Vr,{title:"Dependencies",value:e.total_edges,loading:t,icon:"E"}),h.jsx(Vr,{title:"Experiments",value:e.total_experiments,loading:t,icon:"#"})]}),t?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-muted-foreground",children:"Loading experiment graph..."})}):n?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-destructive",children:"Error loading DAG. Is the API running?"})}):(e==null?void 0:e.nodes.length)===0?h.jsx(dw,{title:"No experiments found",description:"Create some experiments to see the dependency graph.",icon:"G"}):e?h.jsxs(be,{children:[h.jsxs(nt,{children:[h.jsx(lt,{children:"Dependency Graph"}),h.jsx("p",{className:"text-sm text-muted-foreground",children:"Click on a node to see details and highlight connected edges. Scroll to zoom, drag to pan."})]}),h.jsx(ke,{className:"p-0",children:h.jsx(mO,{nodes:e.nodes,edges:e.edges})})]}):null,e&&e.nodes.length>0&&h.jsxs(be,{className:"mt-6",children:[h.jsx(nt,{className:"pb-2",children:h.jsx(lt,{className:"text-sm",children:"Legend"})}),h.jsx(ke,{children:h.jsxs("div",{className:"flex flex-wrap gap-6 text-sm",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-green-500 rounded"}),h.jsx("span",{children:"All successful"})]}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-blue-500 rounded"}),h.jsx("span",{children:"Running experiments"})]}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-red-500 rounded"}),h.jsx("span",{children:"Has failures"})]}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-border rounded"}),h.jsx("span",{children:"Default"})]})]})})]})]})}const wO=_o("/")({component:SO});function SO(){const{data:e,isLoading:t}=LR(),{data:n,isLoading:r}=QR(),{data:s,isLoading:o}=cw({limit:5});return h.jsxs("div",{className:"max-w-6xl mx-auto",children:[h.jsxs("div",{className:"mb-8",children:[h.jsx("h1",{className:"text-3xl font-bold mb-2",children:"Dashboard"}),h.jsx("p",{className:"text-muted-foreground",children:"Monitor your Furu experiments in real-time"})]}),h.jsx(be,{className:"mb-8",children:h.jsxs(ke,{className:"flex items-center justify-between p-4",children:[h.jsxs("div",{className:"flex items-center gap-4",children:[h.jsx("span",{className:"text-muted-foreground",children:"API Status:"}),t?h.jsx(mt,{variant:"muted",children:"Checking..."}):(e==null?void 0:e.status)==="healthy"?h.jsxs(mt,{variant:"success",className:"gap-2",children:[h.jsx("span",{className:"h-2 w-2 rounded-full bg-emerald-300 animate-pulse"}),"Healthy"]}):h.jsx(mt,{variant:"destructive",children:"Disconnected"})]}),h.jsxs("span",{className:"text-muted-foreground text-sm font-mono",children:["v",(e==null?void 0:e.version)||"..."]})]})}),h.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-8",children:[h.jsx(Vr,{title:"Total Experiments",value:(n==null?void 0:n.total)??0,loading:r,icon:"📊",testId:"stats-total"}),h.jsx(Vr,{title:"Running",value:(n==null?void 0:n.running_count)??0,loading:r,variant:"running",icon:"🔄",testId:"stats-running"}),h.jsx(Vr,{title:"Successful",value:(n==null?void 0:n.success_count)??0,loading:r,variant:"success",icon:"✓",testId:"stats-success"}),h.jsx(Vr,{title:"Failed",value:(n==null?void 0:n.failed_count)??0,loading:r,variant:"failed",icon:"✗",testId:"stats-failed"})]}),n&&n.by_result_status&&n.by_result_status.length>0&&h.jsxs(be,{className:"mb-8",children:[h.jsx(nt,{className:"pb-3",children:h.jsx(lt,{children:"Result Status Distribution"})}),h.jsx(ke,{children:h.jsx("div",{className:"flex flex-wrap gap-3",children:n.by_result_status.map(i=>h.jsxs("div",{className:"flex items-center gap-2 rounded-lg border bg-muted/40 px-3 py-2",children:[h.jsx(sn,{status:i.status,type:"result"}),h.jsx("span",{className:"font-mono text-sm",children:i.count})]},i.status))})})]}),h.jsxs(be,{className:"overflow-hidden",children:[h.jsxs(nt,{className:"flex-row items-center justify-between space-y-0 border-b",children:[h.jsx(lt,{children:"Recent Experiments"}),h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/experiments",children:"View all →"})})]}),o?h.jsx("div",{className:"p-6 text-muted-foreground",children:"Loading..."}):(s==null?void 0:s.experiments.length)===0?h.jsx("div",{className:"p-6 text-muted-foreground",children:"No experiments yet"}):h.jsxs(Vh,{children:[h.jsx(Wh,{children:h.jsxs(Wi,{children:[h.jsx(Ke,{className:"pl-6",children:"Class"}),h.jsx(Ke,{children:"Namespace"}),h.jsx(Ke,{children:"Result"}),h.jsx(Ke,{children:"Migration"}),h.jsx(Ke,{children:"Attempt"}),h.jsx(Ke,{children:"Updated"})]})}),h.jsx(Kh,{children:s==null?void 0:s.experiments.map(i=>h.jsxs(Wi,{children:[h.jsx(qe,{className:"pl-6",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:i.namespace,furu_hash:i.furu_hash},className:"font-medium hover:text-primary",children:i.class_name})}),h.jsx(qe,{className:"font-mono text-sm text-muted-foreground",children:i.namespace}),h.jsx(qe,{children:h.jsx(sn,{status:i.result_status,type:"result"})}),h.jsx(qe,{children:i.migration_kind?h.jsx("span",{className:"text-xs rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-amber-300",children:i.migration_kind}):h.jsx("span",{className:"text-muted-foreground",children:"—"})}),h.jsx(qe,{children:i.attempt_status?h.jsx(sn,{status:i.attempt_status,type:"attempt"}):h.jsx("span",{className:"text-muted-foreground",children:"—"})}),h.jsx(qe,{className:"text-sm text-muted-foreground",children:i.updated_at?new Date(i.updated_at).toLocaleString():"—"})]},`${i.namespace}-${i.furu_hash}`))})]})]})]})}function _O({metadata:e}){const t=a=>{const l=e[a];return typeof l=="string"?l:null},n=t("git_commit"),r=t("git_branch"),s=t("hostname"),o=t("user"),i=t("furu_python_def");return h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Metadata"})}),h.jsxs(ke,{children:[h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 text-sm",children:[n?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Git Commit"}),h.jsx("code",{className:"font-mono text-xs",children:n})]}):null,r?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Git Branch"}),h.jsx("span",{children:r})]}):null,s?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Hostname"}),h.jsx("span",{children:s})]}):null,o?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"User"}),h.jsx("span",{children:o})]}):null]}),i?h.jsxs("div",{className:"mt-4 border-t pt-4",children:[h.jsx("span",{className:"mb-2 block text-sm text-muted-foreground",children:"Python Definition"}),h.jsx("pre",{className:"rounded-lg bg-muted p-4 text-sm overflow-x-auto",children:h.jsx("code",{className:"text-emerald-300",children:i})})]}):null]})]})}function ta({value:e,depth:t=0}){if(e===null)return h.jsx("span",{className:"text-muted-foreground italic",children:"null"});if(typeof e=="boolean")return h.jsx("span",{className:e?"text-green-400":"text-red-400",children:String(e)});if(typeof e=="number")return h.jsx("span",{className:"text-blue-400",children:e});if(typeof e=="string")return h.jsxs("span",{className:"text-amber-300",children:['"',e,'"']});if(Array.isArray(e))return e.length===0?h.jsx("span",{className:"text-muted-foreground",children:"[]"}):h.jsxs("div",{className:"ml-4",children:[h.jsx("span",{className:"text-muted-foreground",children:"["}),e.map((n,r)=>h.jsxs("div",{className:"ml-4",children:[h.jsx(ta,{value:n,depth:t+1}),r<e.length-1&&h.jsx("span",{className:"text-muted-foreground",children:","})]},r)),h.jsx("span",{className:"text-muted-foreground",children:"]"})]});if(typeof e=="object"){const n=Object.entries(e);return n.length===0?h.jsx("span",{className:"text-muted-foreground",children:"{}"}):h.jsx("div",{className:t>0?"ml-4":"",children:n.map(([r,s],o)=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"text-purple-400 mr-1",children:[r,":"]}),h.jsx(ta,{value:s,depth:t+1}),o<n.length-1&&h.jsx("span",{className:"text-muted-foreground",children:","})]},r))})}return h.jsx("span",{children:String(e)})}function Ey({title:e,children:t,defaultOpen:n=!1}){const[r,s]=R.useState(n);return h.jsxs("div",{className:"border rounded-lg mb-2",children:[h.jsxs("button",{onClick:()=>s(!r),className:"w-full px-4 py-2 text-left flex items-center justify-between hover:bg-muted/50 rounded-lg",children:[h.jsx("span",{className:"font-medium text-sm",children:e}),h.jsx("span",{className:"text-muted-foreground",children:r?"−":"+"})]}),r&&h.jsx("div",{className:"px-4 pb-4 pt-2",children:t})]})}function bO({furuObj:e,parents:t}){const n=[],r=[];for(const[a,l]of Object.entries(e))a!=="__class__"&&(l&&typeof l=="object"&&!Array.isArray(l)&&"__class__"in l?r.push([a,l]):n.push([a,l]));const s=new Map((t==null?void 0:t.map(a=>[a.field_name,a]))??[]),o=n.length>0,i=r.length>0;return!o&&!i?h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Configuration"})}),h.jsx(ke,{children:h.jsx("p",{className:"text-muted-foreground text-sm",children:"No configuration parameters"})})]}):h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Configuration"})}),h.jsxs(ke,{children:[o&&h.jsx(Ey,{title:"Parameters",defaultOpen:!0,children:h.jsx("div",{className:"font-mono text-sm space-y-1",children:n.map(([a,l])=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"text-purple-400 mr-2 min-w-fit",children:[a,":"]}),h.jsx(ta,{value:l})]},a))})}),i&&h.jsx(Ey,{title:"Dependencies (Embedded Config)",children:h.jsx("div",{className:"space-y-3",children:r.map(([a,l])=>{const u=s.get(a),d=(u==null?void 0:u.namespace)&&(u==null?void 0:u.furu_hash);return h.jsxs("div",{className:"border-l-2 border-muted pl-3",children:[h.jsxs("div",{className:"text-sm mb-1 flex items-center justify-between",children:[h.jsxs("div",{className:"flex items-center",children:[h.jsx("span",{className:"text-purple-400 font-medium",children:a}),h.jsx("span",{className:"text-muted-foreground mx-1",children:":"}),d?h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:u.namespace,furu_hash:u.furu_hash},className:"text-cyan-400 hover:underline",children:l.__class__}):h.jsx("span",{className:"text-cyan-400",children:l.__class__})]}),(u==null?void 0:u.result_status)&&h.jsx(sn,{status:u.result_status,type:"result"})]}),h.jsx("div",{className:"font-mono text-xs space-y-0.5 text-muted-foreground",children:Object.entries(l).filter(([c])=>c!=="__class__").map(([c,f])=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"mr-1",children:[c,":"]}),h.jsx(ta,{value:f,depth:1})]},c))})]},a)})})})]})]})}function EO({parents:e}){return e.length===0?null:h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Parent Experiments"})}),h.jsx(ke,{children:h.jsx("div",{className:"space-y-3",children:e.map((t,n)=>h.jsxs("div",{className:"border rounded-lg p-3",children:[h.jsxs("div",{className:"flex items-center justify-between mb-2",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("span",{className:"text-purple-400 font-medium text-sm",children:t.field_name}),h.jsx("span",{className:"text-muted-foreground",children:":"}),h.jsx("span",{className:"text-cyan-400 text-sm",children:t.class_name})]}),t.result_status&&h.jsx(sn,{status:t.result_status,type:"result"})]}),t.namespace&&t.furu_hash?h.jsxs(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:t.namespace,furu_hash:t.furu_hash},className:"text-sm text-primary hover:underline flex items-center gap-1",children:[h.jsx("span",{children:"View experiment"}),h.jsxs("span",{className:"text-muted-foreground font-mono text-xs",children:["(",t.furu_hash.slice(0,8),"...)"]})]}):h.jsx("span",{className:"text-sm text-muted-foreground italic",children:"Experiment not found in storage"}),t.config&&Object.keys(t.config).length>0&&h.jsxs("details",{className:"mt-2",children:[h.jsx("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Show config"}),h.jsx("div",{className:"mt-1 font-mono text-xs pl-2 border-l border-muted",children:Object.entries(t.config).map(([r,s])=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"text-muted-foreground mr-1",children:[r,":"]}),h.jsx(ta,{value:s,depth:1})]},r))})]})]},`${t.field_name}-${n}`))})})]})}function CO({children:e}){return e.length===0?null:h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsxs(lt,{children:["Child Experiments (",e.length,")"]})}),h.jsx(ke,{children:h.jsx("div",{className:"space-y-2",children:e.map((t,n)=>h.jsxs("div",{className:"border rounded-lg p-3 flex items-center justify-between",children:[h.jsx("div",{className:"flex items-center gap-3",children:h.jsxs("div",{children:[h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:t.namespace,furu_hash:t.furu_hash},className:"text-primary hover:underline font-medium",children:t.class_name}),h.jsxs("div",{className:"text-xs text-muted-foreground",children:["via"," ",h.jsx("span",{className:"text-purple-400",children:t.field_name})]})]})}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsxs("code",{className:"text-xs text-muted-foreground font-mono",children:[t.furu_hash.slice(0,8),"..."]}),h.jsx(sn,{status:t.result_status,type:"result"})]})]},`${t.namespace}-${t.furu_hash}-${n}`))})})]})}const Z1=_o("/experiments_/$namespace/$furu_hash")({component:NO});function NO(){var f,m,p;const{namespace:e,furu_hash:t}=Z1.useParams(),[n,r]=R.useState("resolved"),{data:s,isLoading:o,error:i}=VR(e,t,{view:n}),{data:a}=$R(e,t,{view:n}),l=!!(s!=null&&s.migration_kind),u=R.useMemo(()=>s!=null&&s.original_namespace&&(s!=null&&s.original_hash)?{namespace:s.original_namespace,furu_hash:s.original_hash}:s!=null&&s.from_namespace&&(s!=null&&s.from_hash)?{namespace:s.from_namespace,furu_hash:s.from_hash}:null,[s==null?void 0:s.original_namespace,s==null?void 0:s.original_hash,s==null?void 0:s.from_namespace,s==null?void 0:s.from_hash]),d=R.useMemo(()=>!(s!=null&&s.alias_namespaces)||!(s!=null&&s.alias_hashes)?[]:s.alias_namespaces.map((x,w)=>{var g;return{namespace:x,furu_hash:((g=s.alias_hashes)==null?void 0:g[w])??""}}),[s==null?void 0:s.alias_namespaces,s==null?void 0:s.alias_hashes]);if(o)return h.jsx("div",{className:"max-w-5xl mx-auto",children:h.jsx("div",{className:"text-muted-foreground",children:"Loading experiment..."})});if(i||!s)return h.jsx("div",{className:"max-w-5xl mx-auto",children:h.jsx(be,{className:"border-destructive/40",children:h.jsxs(ke,{className:"p-6 text-center",children:[h.jsx("h2",{className:"mb-2 text-xl font-bold text-destructive",children:"Experiment Not Found"}),h.jsx("p",{className:"mb-4 text-muted-foreground",children:"The experiment you're looking for doesn't exist or has been removed."}),h.jsx(wn,{asChild:!0,variant:"ghost",children:h.jsx(Ue,{to:"/experiments",children:"Back to experiments"})})]})})});const c=s.metadata&&typeof s.metadata=="object"&&"furu_obj"in s.metadata?s.metadata.furu_obj:null;return h.jsxs("div",{className:"max-w-5xl mx-auto",children:[h.jsxs("div",{className:"mb-6 text-sm",children:[h.jsx(Ue,{to:"/experiments",className:"text-muted-foreground hover:text-primary",children:"Experiments"}),h.jsx("span",{className:"mx-2 text-muted-foreground",children:"/"}),h.jsx("span",{className:"text-foreground",children:s.class_name})]}),h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{className:"pb-4",children:h.jsxs("div",{className:"flex items-start justify-between",children:[h.jsxs("div",{children:[h.jsx(lt,{className:"text-2xl",children:s.class_name}),h.jsx("p",{className:"text-sm font-mono text-muted-foreground",children:s.namespace})]}),h.jsxs("div",{className:"flex flex-col items-end gap-2",children:[h.jsxs("div",{className:"flex gap-2",children:[h.jsx(sn,{status:s.result_status,type:"result"}),s.attempt_status?h.jsx(sn,{status:s.attempt_status,type:"attempt"}):null]}),l?h.jsx("span",{className:"rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-xs text-amber-300",children:s.migration_kind}):null]})]})}),h.jsxs(ke,{className:"space-y-4",children:[l&&h.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs",children:[h.jsxs("div",{className:"rounded-full border border-muted px-3 py-1 text-muted-foreground",children:["View: ",n]}),h.jsxs("div",{className:"flex rounded-full border border-muted overflow-hidden",children:[h.jsx("button",{className:`px-3 py-1 text-xs ${n==="resolved"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>r("resolved"),children:"Aliased"}),h.jsx("button",{className:`px-3 py-1 text-xs ${n==="original"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>r("original"),disabled:!u,children:"Original"})]}),u?h.jsx(wn,{asChild:!0,size:"sm",variant:"ghost",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:u,children:"View original"})}):null,s.original_result_status?h.jsxs("span",{className:"text-muted-foreground",children:["Original status: ",s.original_result_status]}):null]}),d.length>0&&h.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs",children:[h.jsxs("div",{className:"rounded-full border border-muted px-3 py-1 text-muted-foreground",children:["Aliases: ",d.length]}),h.jsx("div",{className:"flex flex-wrap gap-2",children:d.map(x=>h.jsx(wn,{asChild:!0,size:"sm",variant:"ghost",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:x,"aria-label":"View alias",children:"View alias"})},x.furu_hash))})]}),h.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-sm",children:[h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Hash"}),h.jsx("code",{className:"font-mono",children:s.furu_hash})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Attempt #"}),h.jsx("span",{children:s.attempt_number??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Started"}),h.jsx("span",{children:s.started_at?new Date(s.started_at).toLocaleString():"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Updated"}),h.jsx("span",{children:s.updated_at?new Date(s.updated_at).toLocaleString():"—"})]})]})]})]}),c&&h.jsx(bO,{furuObj:c,parents:a==null?void 0:a.parents}),(a==null?void 0:a.parents)&&a.parents.length>0&&h.jsx(EO,{parents:a.parents}),(a==null?void 0:a.children)&&a.children.length>0&&h.jsx(CO,{children:a.children}),s.attempt&&h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Current Attempt"})}),h.jsxs(ke,{children:[h.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4 text-sm",children:[h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"ID"}),h.jsx("code",{className:"font-mono text-xs",children:s.attempt.id})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Backend"}),h.jsx("span",{children:s.attempt.backend})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Status"}),h.jsx(sn,{status:s.attempt.status,type:"attempt"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Host"}),h.jsx("span",{children:((f=s.attempt.owner)==null?void 0:f.host)??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"PID"}),h.jsx("span",{className:"font-mono",children:((m=s.attempt.owner)==null?void 0:m.pid)??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"User"}),h.jsx("span",{children:((p=s.attempt.owner)==null?void 0:p.user)??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Started At"}),h.jsx("span",{children:new Date(s.attempt.started_at).toLocaleString()})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Last Heartbeat"}),h.jsx("span",{children:new Date(s.attempt.heartbeat_at).toLocaleString()})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Lease Expires"}),h.jsx("span",{children:new Date(s.attempt.lease_expires_at).toLocaleString()})]})]}),s.attempt.reason?h.jsxs("div",{className:"mt-4 border-t pt-4",children:[h.jsx("span",{className:"block text-sm text-muted-foreground",children:"Reason"}),h.jsx("span",{className:"text-amber-300",children:s.attempt.reason})]}):null]})]}),s.metadata&&h.jsx(_O,{metadata:s.metadata}),h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Directory"})}),h.jsx(ke,{children:h.jsx("code",{className:"break-all font-mono text-sm text-muted-foreground",children:s.directory})})]}),h.jsxs("details",{className:"rounded-lg border bg-card",children:[h.jsx("summary",{className:"cursor-pointer px-6 py-4 text-muted-foreground hover:text-foreground",children:"View Raw State JSON"}),h.jsx("div",{className:"px-6 pb-6",children:h.jsx("pre",{className:"max-h-96 overflow-x-auto rounded-lg bg-muted p-4 text-sm",children:h.jsx("code",{className:"text-muted-foreground",children:JSON.stringify(s.state,null,2)})})})]})]})}const kO=ij.update({id:"/experiments",path:"/experiments",getParentRoute:()=>ya}),PO=xO.update({id:"/dag",path:"/dag",getParentRoute:()=>ya}),RO=wO.update({id:"/",path:"/",getParentRoute:()=>ya}),jO=Z1.update({id:"/experiments_/$namespace/$furu_hash",path:"/experiments/$namespace/$furu_hash",getParentRoute:()=>ya}),MO={IndexRoute:RO,DagRoute:PO,ExperimentsRoute:kO,ExperimentsNamespaceFuru_hashRoute:jO},TO=ya._addFileChildren(MO)._addFileTypes(),LO=new ZE({defaultOptions:{queries:{refetchInterval:5e3,staleTime:2e3,retry:(e,t)=>{var n;if(t instanceof DP&&((n=t.response)!=null&&n.status)){const r=t.response.status;if(r>=400&&r<500)return!1}return e<3}}}}),IO=ok({routeTree:TO});Gx(document.getElementById("root")).render(h.jsx(R.StrictMode,{children:h.jsx(eC,{client:LO,children:h.jsx(lk,{router:IO})})}));
|
|
66
|
+
`)),d=u.reduce((c,f)=>c.concat(...f),[]);return[u,d]}return[[],[]]},[e]);return R.useEffect(()=>{const l=(t==null?void 0:t.target)??iy,u=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=m=>{var w,g;if(s.current=m.ctrlKey||m.metaKey||m.shiftKey||m.altKey,(!s.current||s.current&&!u)&&e1(m))return!1;const x=ly(m.code,a);if(o.current.add(m[x]),ay(i,o.current,!1)){const v=((g=(w=m.composedPath)==null?void 0:w.call(m))==null?void 0:g[0])||m.target,y=(v==null?void 0:v.nodeName)==="BUTTON"||(v==null?void 0:v.nodeName)==="A";t.preventDefault!==!1&&(s.current||!y)&&m.preventDefault(),r(!0)}},c=m=>{const p=ly(m.code,a);ay(i,o.current,!0)?(r(!1),o.current.clear()):o.current.delete(m[p]),m.key==="Meta"&&o.current.clear(),s.current=!1},f=()=>{o.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",d),l==null||l.addEventListener("keyup",c),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{l==null||l.removeEventListener("keydown",d),l==null||l.removeEventListener("keyup",c),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,r]),n}function ay(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(s=>t.has(s)))}function ly(e,t){return t.includes(e)?"code":"key"}const hI=()=>{const e=Ce();return R.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,{duration:n==null?void 0:n.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,s,o],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??r,y:t.y??s,zoom:t.zoom??o},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:s,minZoom:o,maxZoom:i,panZoom:a}=e.getState(),l=np(t,r,s,o,i,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:s,snapToGrid:o,domNode:i}=e.getState();if(!i)return t;const{x:a,y:l}=i.getBoundingClientRect(),u={x:t.x-a,y:t.y-l},d=n.snapGrid??s,c=n.snapToGrid??o;return ba(u,r,c,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:s,y:o}=r.getBoundingClientRect(),i=yu(t,n);return{x:i.x+s,y:i.y+o}}}),[])};function _1(e,t){const n=[],r=new Map,s=[];for(const o of e)if(o.type==="add"){s.push(o);continue}else if(o.type==="remove"||o.type==="replace")r.set(o.id,[o]);else{const i=r.get(o.id);i?i.push(o):r.set(o.id,[o])}for(const o of t){const i=r.get(o.id);if(!i){n.push(o);continue}if(i[0].type==="remove")continue;if(i[0].type==="replace"){n.push({...i[0].item});continue}const a={...o};for(const l of i)pI(l,a);n.push(a)}return s.length&&s.forEach(o=>{o.index!==void 0?n.splice(o.index,0,{...o.item}):n.push({...o.item})}),n}function pI(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function b1(e,t){return _1(e,t)}function E1(e,t){return _1(e,t)}function Or(e,t){return{id:e,type:"select",selected:t}}function Hs(e,t=new Set,n=!1){const r=[];for(const[s,o]of e){const i=t.has(s);!(o.selected===void 0&&!i)&&o.selected!==i&&(n&&(o.selected=i),r.push(Or(o.id,i)))}return r}function uy({items:e=[],lookup:t}){var s;const n=[],r=new Map(e.map(o=>[o.id,o]));for(const[o,i]of e.entries()){const a=t.get(i.id),l=((s=a==null?void 0:a.internals)==null?void 0:s.userNode)??a;l!==void 0&&l!==i&&n.push({id:i.id,item:i,type:"replace"}),l===void 0&&n.push({item:i,type:"add",index:o})}for(const[o]of t)r.get(o)===void 0&&n.push({id:o,type:"remove"});return n}function cy(e){return{id:e.id,type:"remove"}}const dy=e=>VT(e),mI=e=>Kw(e);function C1(e){return R.forwardRef(e)}const gI=typeof window<"u"?R.useLayoutEffect:R.useEffect;function fy(e){const[t,n]=R.useState(BigInt(0)),[r]=R.useState(()=>yI(()=>n(s=>s+BigInt(1))));return gI(()=>{const s=r.get();s.length&&(e(s),r.reset())},[t]),r}function yI(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const N1=R.createContext(null);function xI({children:e}){const t=Ce(),n=R.useCallback(a=>{const{nodes:l=[],setNodes:u,hasDefaultNodes:d,onNodesChange:c,nodeLookup:f,fitViewQueued:m,onNodesChangeMiddlewareMap:p}=t.getState();let x=l;for(const g of a)x=typeof g=="function"?g(x):g;let w=uy({items:x,lookup:f});for(const g of p.values())w=g(w);d&&u(x),w.length>0?c==null||c(w):m&&window.requestAnimationFrame(()=>{const{fitViewQueued:g,nodes:v,setNodes:y}=t.getState();g&&y(v)})},[]),r=fy(n),s=R.useCallback(a=>{const{edges:l=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:c,edgeLookup:f}=t.getState();let m=l;for(const p of a)m=typeof p=="function"?p(m):p;d?u(m):c&&c(uy({items:m,lookup:f}))},[]),o=fy(s),i=R.useMemo(()=>({nodeQueue:r,edgeQueue:o}),[]);return h.jsx(N1.Provider,{value:i,children:e})}function vI(){const e=R.useContext(N1);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const wI=e=>!!e.panZoom;function up(){const e=hI(),t=Ce(),n=vI(),r=fe(wI),s=R.useMemo(()=>{const o=c=>t.getState().nodeLookup.get(c),i=c=>{n.nodeQueue.push(c)},a=c=>{n.edgeQueue.push(c)},l=c=>{var g,v;const{nodeLookup:f,nodeOrigin:m}=t.getState(),p=dy(c)?c:f.get(c.id),x=p.parentId?Zw(p.position,p.measured,p.parentId,f,m):p.position,w={...p,position:x,width:((g=p.measured)==null?void 0:g.width)??p.width,height:((v=p.measured)==null?void 0:v.height)??p.height};return Po(w)},u=(c,f,m={replace:!1})=>{i(p=>p.map(x=>{if(x.id===c){const w=typeof f=="function"?f(x):f;return m.replace&&dy(w)?w:{...x,...w}}return x}))},d=(c,f,m={replace:!1})=>{a(p=>p.map(x=>{if(x.id===c){const w=typeof f=="function"?f(x):f;return m.replace&&mI(w)?w:{...x,...w}}return x}))};return{getNodes:()=>t.getState().nodes.map(c=>({...c})),getNode:c=>{var f;return(f=o(c))==null?void 0:f.internals.userNode},getInternalNode:o,getEdges:()=>{const{edges:c=[]}=t.getState();return c.map(f=>({...f}))},getEdge:c=>t.getState().edgeLookup.get(c),setNodes:i,setEdges:a,addNodes:c=>{const f=Array.isArray(c)?c:[c];n.nodeQueue.push(m=>[...m,...f])},addEdges:c=>{const f=Array.isArray(c)?c:[c];n.edgeQueue.push(m=>[...m,...f])},toObject:()=>{const{nodes:c=[],edges:f=[],transform:m}=t.getState(),[p,x,w]=m;return{nodes:c.map(g=>({...g})),edges:f.map(g=>({...g})),viewport:{x:p,y:x,zoom:w}}},deleteElements:async({nodes:c=[],edges:f=[]})=>{const{nodes:m,edges:p,onNodesDelete:x,onEdgesDelete:w,triggerNodeChanges:g,triggerEdgeChanges:v,onDelete:y,onBeforeDelete:S}=t.getState(),{nodes:E,edges:_}=await GT({nodesToRemove:c,edgesToRemove:f,nodes:m,edges:p,onBeforeDelete:S}),b=_.length>0,C=E.length>0;if(b){const L=_.map(cy);w==null||w(_),v(L)}if(C){const L=E.map(cy);x==null||x(E),g(L)}return(C||b)&&(y==null||y({nodes:E,edges:_})),{deletedNodes:E,deletedEdges:_}},getIntersectingNodes:(c,f=!0,m)=>{const p=Bg(c),x=p?c:l(c),w=m!==void 0;return x?(m||t.getState().nodes).filter(g=>{const v=t.getState().nodeLookup.get(g.id);if(v&&!p&&(g.id===c.id||!v.internals.positionAbsolute))return!1;const y=Po(w?g:v),S=Zi(y,x);return f&&S>0||S>=y.width*y.height||S>=x.width*x.height}):[]},isNodeIntersecting:(c,f,m=!0)=>{const x=Bg(c)?c:l(c);if(!x)return!1;const w=Zi(x,f);return m&&w>0||w>=f.width*f.height||w>=x.width*x.height},updateNode:u,updateNodeData:(c,f,m={replace:!1})=>{u(c,p=>{const x=typeof f=="function"?f(p):f;return m.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},m)},updateEdge:d,updateEdgeData:(c,f,m={replace:!1})=>{d(c,p=>{const x=typeof f=="function"?f(p):f;return m.replace?{...p,data:x}:{...p,data:{...p.data,...x}}},m)},getNodesBounds:c=>{const{nodeLookup:f,nodeOrigin:m}=t.getState();return WT(c,{nodeLookup:f,nodeOrigin:m})},getHandleConnections:({type:c,id:f,nodeId:m})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${m}-${c}${f?`-${f}`:""}`))==null?void 0:p.values())??[])},getNodeConnections:({type:c,handleId:f,nodeId:m})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${m}${c?f?`-${c}-${f}`:`-${c}`:""}`))==null?void 0:p.values())??[])},fitView:async c=>{const f=t.getState().fitViewResolver??JT();return t.setState({fitViewQueued:!0,fitViewOptions:c,fitViewResolver:f}),n.nodeQueue.push(m=>[...m]),f.promise}}},[]);return R.useMemo(()=>({...s,...e,viewportInitialized:r}),[r])}const hy=e=>e.selected,SI=typeof window<"u"?window:void 0;function _I({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=Ce(),{deleteElements:r}=up(),s=ea(e,{actInsideInputWithModifier:!1}),o=ea(t,{target:SI});R.useEffect(()=>{if(s){const{edges:i,nodes:a}=n.getState();r({nodes:a.filter(hy),edges:i.filter(hy)}),n.setState({nodesSelectionActive:!1})}},[s]),R.useEffect(()=>{n.setState({multiSelectionActive:o})},[o])}function bI(e){const t=Ce();R.useEffect(()=>{const n=()=>{var s,o,i,a;if(!e.current||!(((o=(s=e.current).checkVisibility)==null?void 0:o.call(s))??!0))return!1;const r=rp(e.current);(r.height===0||r.width===0)&&((a=(i=t.getState()).onError)==null||a.call(i,"004",bn.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const ec={position:"absolute",width:"100%",height:"100%",top:0,left:0},EI=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function CI({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:s=.5,panOnScrollMode:o=as.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:c,zoomActivationKeyCode:f,preventScrolling:m=!0,children:p,noWheelClassName:x,noPanClassName:w,onViewportChange:g,isControlledViewport:v,paneClickDistance:y,selectionOnDrag:S}){const E=Ce(),_=R.useRef(null),{userSelectionActive:b,lib:C,connectionInProgress:L}=fe(EI,Ee),M=ea(f),P=R.useRef();bI(_);const j=R.useCallback(O=>{g==null||g({x:O[0],y:O[1],zoom:O[2]}),v||E.setState({transform:O})},[g,v]);return R.useEffect(()=>{if(_.current){P.current=OL({domNode:_.current,minZoom:d,maxZoom:c,translateExtent:u,viewport:l,onDraggingChange:I=>E.setState({paneDragging:I}),onPanZoomStart:(I,F)=>{const{onViewportChangeStart:N,onMoveStart:T}=E.getState();T==null||T(I,F),N==null||N(F)},onPanZoom:(I,F)=>{const{onViewportChange:N,onMove:T}=E.getState();T==null||T(I,F),N==null||N(F)},onPanZoomEnd:(I,F)=>{const{onViewportChangeEnd:N,onMoveEnd:T}=E.getState();T==null||T(I,F),N==null||N(F)}});const{x:O,y:k,zoom:D}=P.current.getViewport();return E.setState({panZoom:P.current,transform:[O,k,D],domNode:_.current.closest(".react-flow")}),()=>{var I;(I=P.current)==null||I.destroy()}}},[]),R.useEffect(()=>{var O;(O=P.current)==null||O.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:s,panOnScrollMode:o,zoomOnDoubleClick:i,panOnDrag:a,zoomActivationKeyPressed:M,preventScrolling:m,noPanClassName:w,userSelectionActive:b,noWheelClassName:x,lib:C,onTransformChange:j,connectionInProgress:L,selectionOnDrag:S,paneClickDistance:y})},[e,t,n,r,s,o,i,a,M,m,w,b,x,C,j,L,S,y]),h.jsx("div",{className:"react-flow__renderer",ref:_,style:ec,children:p})}const NI=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function kI(){const{userSelectionActive:e,userSelectionRect:t}=fe(NI,Ee);return e&&t?h.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const Zc=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},PI=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function RI({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Yi.Full,panOnDrag:r,paneClickDistance:s,selectionOnDrag:o,onSelectionStart:i,onSelectionEnd:a,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:c,onPaneMouseMove:f,onPaneMouseLeave:m,children:p}){const x=Ce(),{userSelectionActive:w,elementsSelectable:g,dragging:v,connectionInProgress:y}=fe(PI,Ee),S=g&&(e||w),E=R.useRef(null),_=R.useRef(),b=R.useRef(new Set),C=R.useRef(new Set),L=R.useRef(!1),M=N=>{if(L.current||y){L.current=!1;return}l==null||l(N),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},P=N=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){N.preventDefault();return}u==null||u(N)},j=d?N=>d(N):void 0,O=N=>{L.current&&(N.stopPropagation(),L.current=!1)},k=N=>{var X,Q;const{domNode:T}=x.getState();if(_.current=T==null?void 0:T.getBoundingClientRect(),!_.current)return;const z=N.target===E.current;if(!z&&!!N.target.closest(".nokey")||!e||!(o&&z||t)||N.button!==0||!N.isPrimary)return;(Q=(X=N.target)==null?void 0:X.setPointerCapture)==null||Q.call(X,N.pointerId),L.current=!1;const{x:K,y:V}=tn(N.nativeEvent,_.current);x.setState({userSelectionRect:{width:0,height:0,startX:K,startY:V,x:K,y:V}}),z||(N.stopPropagation(),N.preventDefault())},D=N=>{const{userSelectionRect:T,transform:z,nodeLookup:B,edgeLookup:H,connectionLookup:K,triggerNodeChanges:V,triggerEdgeChanges:X,defaultEdgeOptions:Q,resetSelectedElements:Y}=x.getState();if(!_.current||!T)return;const{x:W,y:Z}=tn(N.nativeEvent,_.current),{startX:oe,startY:re}=T;if(!L.current){const ce=t?0:s;if(Math.hypot(W-oe,Z-re)<=ce)return;Y(),i==null||i(N)}L.current=!0;const J={startX:oe,startY:re,x:W<oe?W:oe,y:Z<re?Z:re,width:Math.abs(W-oe),height:Math.abs(Z-re)},te=b.current,he=C.current;b.current=new Set(tp(B,J,z,n===Yi.Partial,!0).map(ce=>ce.id)),C.current=new Set;const ye=(Q==null?void 0:Q.selectable)??!0;for(const ce of b.current){const $e=K.get(ce);if($e)for(const{edgeId:un}of $e.values()){const dt=H.get(un);dt&&(dt.selectable??ye)&&C.current.add(un)}}if(!Hg(te,b.current)){const ce=Hs(B,b.current,!0);V(ce)}if(!Hg(he,C.current)){const ce=Hs(H,C.current);X(ce)}x.setState({userSelectionRect:J,userSelectionActive:!0,nodesSelectionActive:!1})},I=N=>{var T,z;N.button===0&&((z=(T=N.target)==null?void 0:T.releasePointerCapture)==null||z.call(T,N.pointerId),!w&&N.target===E.current&&x.getState().userSelectionRect&&(M==null||M(N)),x.setState({userSelectionActive:!1,userSelectionRect:null}),L.current&&(a==null||a(N),x.setState({nodesSelectionActive:b.current.size>0})))},F=r===!0||Array.isArray(r)&&r.includes(0);return h.jsxs("div",{className:Oe(["react-flow__pane",{draggable:F,dragging:v,selection:e}]),onClick:S?void 0:Zc(M,E),onContextMenu:Zc(P,E),onWheel:Zc(j,E),onPointerEnter:S?void 0:c,onPointerMove:S?D:f,onPointerUp:S?I:void 0,onPointerDownCapture:S?k:void 0,onClickCapture:S?O:void 0,onPointerLeave:m,ref:E,style:ec,children:[p,h.jsx(kI,{})]})}function Pf({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:s,unselectNodesAndEdges:o,multiSelectionActive:i,nodeLookup:a,onError:l}=t.getState(),u=a.get(e);if(!u){l==null||l("012",bn.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&i)&&(o({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):s([e])}function k1({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:s,isSelectable:o,nodeClickDistance:i}){const a=Ce(),[l,u]=R.useState(!1),d=R.useRef();return R.useEffect(()=>{d.current=_L({getStoreItems:()=>a.getState(),onNodeMouseDown:c=>{Pf({id:c,store:a,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),R.useEffect(()=>{var c,f;if(t)(c=d.current)==null||c.destroy();else if(e.current)return(f=d.current)==null||f.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:o,nodeId:s,nodeClickDistance:i}),()=>{var m;(m=d.current)==null||m.destroy()}},[n,r,t,o,e,s]),l}const jI=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function P1(){const e=Ce();return R.useCallback(n=>{const{nodeExtent:r,snapToGrid:s,snapGrid:o,nodesDraggable:i,onError:a,updateNodePositions:l,nodeLookup:u,nodeOrigin:d}=e.getState(),c=new Map,f=jI(i),m=s?o[0]:5,p=s?o[1]:5,x=n.direction.x*m*n.factor,w=n.direction.y*p*n.factor;for(const[,g]of u){if(!f(g))continue;let v={x:g.internals.positionAbsolute.x+x,y:g.internals.positionAbsolute.y+w};s&&(v=_a(v,o));const{position:y,positionAbsolute:S}=qw({nodeId:g.id,nextPosition:v,nodeLookup:u,nodeExtent:r,nodeOrigin:d,onError:a});g.position=y,g.internals.positionAbsolute=S,c.set(g.id,g)}l(c)},[])}const cp=R.createContext(null),MI=cp.Provider;cp.Consumer;const R1=()=>R.useContext(cp),TI=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),LI=(e,t,n)=>r=>{const{connectionClickStartHandle:s,connectionMode:o,connection:i}=r,{fromHandle:a,toHandle:l,isValid:u}=i,d=(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:d,clickConnecting:(s==null?void 0:s.nodeId)===e&&(s==null?void 0:s.id)===t&&(s==null?void 0:s.type)===n,isPossibleEndHandle:o===No.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!s,valid:d&&u}};function II({type:e="source",position:t=ee.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:s=!0,isConnectableEnd:o=!0,id:i,onConnect:a,children:l,className:u,onMouseDown:d,onTouchStart:c,...f},m){var D,I;const p=i||null,x=e==="target",w=Ce(),g=R1(),{connectOnClick:v,noPanClassName:y,rfId:S}=fe(TI,Ee),{connectingFrom:E,connectingTo:_,clickConnecting:b,isPossibleEndHandle:C,connectionInProcess:L,clickConnectionInProcess:M,valid:P}=fe(LI(g,p,e),Ee);g||(I=(D=w.getState()).onError)==null||I.call(D,"010",bn.error010());const j=F=>{const{defaultEdgeOptions:N,onConnect:T,hasDefaultEdges:z}=w.getState(),B={...N,...F};if(z){const{edges:H,setEdges:K}=w.getState();K(iL(B,H))}T==null||T(B),a==null||a(B)},O=F=>{if(!g)return;const N=t1(F.nativeEvent);if(s&&(N&&F.button===0||!N)){const T=w.getState();kf.onPointerDown(F.nativeEvent,{handleDomNode:F.currentTarget,autoPanOnConnect:T.autoPanOnConnect,connectionMode:T.connectionMode,connectionRadius:T.connectionRadius,domNode:T.domNode,nodeLookup:T.nodeLookup,lib:T.lib,isTarget:x,handleId:p,nodeId:g,flowId:T.rfId,panBy:T.panBy,cancelConnection:T.cancelConnection,onConnectStart:T.onConnectStart,onConnectEnd:T.onConnectEnd,updateConnection:T.updateConnection,onConnect:j,isValidConnection:n||T.isValidConnection,getTransform:()=>w.getState().transform,getFromHandle:()=>w.getState().connection.fromHandle,autoPanSpeed:T.autoPanSpeed,dragThreshold:T.connectionDragThreshold})}N?d==null||d(F):c==null||c(F)},k=F=>{const{onClickConnectStart:N,onClickConnectEnd:T,connectionClickStartHandle:z,connectionMode:B,isValidConnection:H,lib:K,rfId:V,nodeLookup:X,connection:Q}=w.getState();if(!g||!z&&!s)return;if(!z){N==null||N(F.nativeEvent,{nodeId:g,handleId:p,handleType:e}),w.setState({connectionClickStartHandle:{nodeId:g,type:e,id:p}});return}const Y=Jw(F.target),W=n||H,{connection:Z,isValid:oe}=kf.isValid(F.nativeEvent,{handle:{nodeId:g,id:p,type:e},connectionMode:B,fromNodeId:z.nodeId,fromHandleId:z.id||null,fromType:z.type,isValidConnection:W,flowId:V,doc:Y,lib:K,nodeLookup:X});oe&&Z&&j(Z);const re=structuredClone(Q);delete re.inProgress,re.toPosition=re.toHandle?re.toHandle.position:null,T==null||T(F,re),w.setState({connectionClickStartHandle:null})};return h.jsx("div",{"data-handleid":p,"data-nodeid":g,"data-handlepos":t,"data-id":`${S}-${g}-${p}-${e}`,className:Oe(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",y,u,{source:!x,target:x,connectable:r,connectablestart:s,connectableend:o,clickconnecting:b,connectingfrom:E,connectingto:_,valid:P,connectionindicator:r&&(!L||C)&&(L||M?o:s)}]),onMouseDown:O,onTouchStart:O,onClick:v?k:void 0,ref:m,...f,children:l})}const Mo=R.memo(C1(II));function AI({data:e,isConnectable:t,sourcePosition:n=ee.Bottom}){return h.jsxs(h.Fragment,{children:[e==null?void 0:e.label,h.jsx(Mo,{type:"source",position:n,isConnectable:t})]})}function OI({data:e,isConnectable:t,targetPosition:n=ee.Top,sourcePosition:r=ee.Bottom}){return h.jsxs(h.Fragment,{children:[h.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,h.jsx(Mo,{type:"source",position:r,isConnectable:t})]})}function FI(){return null}function DI({data:e,isConnectable:t,targetPosition:n=ee.Top}){return h.jsxs(h.Fragment,{children:[h.jsx(Mo,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const xu={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},py={input:AI,default:OI,output:DI,group:FI};function zI(e){var t,n,r,s;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((s=e.style)==null?void 0:s.height)}}const $I=e=>{const{width:t,height:n,x:r,y:s}=Sa(e.nodeLookup,{filter:o=>!!o.selected});return{width:en(t)?t:null,height:en(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${s}px)`}};function BI({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=Ce(),{width:s,height:o,transformString:i,userSelectionActive:a}=fe($I,Ee),l=P1(),u=R.useRef(null);if(R.useEffect(()=>{var f;n||(f=u.current)==null||f.focus({preventScroll:!0})},[n]),k1({nodeRef:u}),a||!s||!o)return null;const d=e?f=>{const m=r.getState().nodes.filter(p=>p.selected);e(f,m)}:void 0,c=f=>{Object.prototype.hasOwnProperty.call(xu,f.key)&&(f.preventDefault(),l({direction:xu[f.key],factor:f.shiftKey?4:1}))};return h.jsx("div",{className:Oe(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:h.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:c,style:{width:s,height:o}})})}const my=typeof window<"u"?window:void 0,HI=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function j1({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:u,selectionOnDrag:d,selectionMode:c,onSelectionStart:f,onSelectionEnd:m,multiSelectionKeyCode:p,panActivationKeyCode:x,zoomActivationKeyCode:w,elementsSelectable:g,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:S,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:b,panOnDrag:C,defaultViewport:L,translateExtent:M,minZoom:P,maxZoom:j,preventScrolling:O,onSelectionContextMenu:k,noWheelClassName:D,noPanClassName:I,disableKeyboardA11y:F,onViewportChange:N,isControlledViewport:T}){const{nodesSelectionActive:z,userSelectionActive:B}=fe(HI,Ee),H=ea(u,{target:my}),K=ea(x,{target:my}),V=K||C,X=K||S,Q=d&&V!==!0,Y=H||B||Q;return _I({deleteKeyCode:l,multiSelectionKeyCode:p}),h.jsx(CI,{onPaneContextMenu:o,elementsSelectable:g,zoomOnScroll:v,zoomOnPinch:y,panOnScroll:X,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:b,panOnDrag:!H&&V,defaultViewport:L,translateExtent:M,minZoom:P,maxZoom:j,zoomActivationKeyCode:w,preventScrolling:O,noWheelClassName:D,noPanClassName:I,onViewportChange:N,isControlledViewport:T,paneClickDistance:a,selectionOnDrag:Q,children:h.jsxs(RI,{onSelectionStart:f,onSelectionEnd:m,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:o,onPaneScroll:i,panOnDrag:V,isSelecting:!!Y,selectionMode:c,selectionKeyPressed:H,paneClickDistance:a,selectionOnDrag:Q,children:[e,z&&h.jsx(BI,{onSelectionContextMenu:k,noPanClassName:I,disableKeyboardA11y:F})]})})}j1.displayName="FlowRenderer";const UI=R.memo(j1),VI=e=>t=>e?tp(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function WI(e){return fe(R.useCallback(VI(e),[e]),Ee)}const KI=e=>e.updateNodeInternals;function qI(){const e=fe(KI),[t]=R.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(s=>{const o=s.target.getAttribute("data-id");r.set(o,{id:o,nodeElement:s.target,force:!0})}),e(r)}));return R.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function QI({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const s=Ce(),o=R.useRef(null),i=R.useRef(null),a=R.useRef(e.sourcePosition),l=R.useRef(e.targetPosition),u=R.useRef(t),d=n&&!!e.internals.handleBounds;return R.useEffect(()=>{o.current&&!e.hidden&&(!d||i.current!==o.current)&&(i.current&&(r==null||r.unobserve(i.current)),r==null||r.observe(o.current),i.current=o.current)},[d,e.hidden]),R.useEffect(()=>()=>{i.current&&(r==null||r.unobserve(i.current),i.current=null)},[]),R.useEffect(()=>{if(o.current){const c=u.current!==t,f=a.current!==e.sourcePosition,m=l.current!==e.targetPosition;(c||f||m)&&(u.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,s.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:o.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),o}function GI({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:s,onContextMenu:o,onDoubleClick:i,nodesDraggable:a,elementsSelectable:l,nodesConnectable:u,nodesFocusable:d,resizeObserver:c,noDragClassName:f,noPanClassName:m,disableKeyboardA11y:p,rfId:x,nodeTypes:w,nodeClickDistance:g,onError:v}){const{node:y,internals:S,isParent:E}=fe(W=>{const Z=W.nodeLookup.get(e),oe=W.parentLookup.has(e);return{node:Z,internals:Z.internals,isParent:oe}},Ee);let _=y.type||"default",b=(w==null?void 0:w[_])||py[_];b===void 0&&(v==null||v("003",bn.error003(_)),_="default",b=(w==null?void 0:w.default)||py.default);const C=!!(y.draggable||a&&typeof y.draggable>"u"),L=!!(y.selectable||l&&typeof y.selectable>"u"),M=!!(y.connectable||u&&typeof y.connectable>"u"),P=!!(y.focusable||d&&typeof y.focusable>"u"),j=Ce(),O=Yw(y),k=QI({node:y,nodeType:_,hasDimensions:O,resizeObserver:c}),D=k1({nodeRef:k,disabled:y.hidden||!C,noDragClassName:f,handleSelector:y.dragHandle,nodeId:e,isSelectable:L,nodeClickDistance:g}),I=P1();if(y.hidden)return null;const F=Vn(y),N=zI(y),T=L||C||t||n||r||s,z=n?W=>n(W,{...S.userNode}):void 0,B=r?W=>r(W,{...S.userNode}):void 0,H=s?W=>s(W,{...S.userNode}):void 0,K=o?W=>o(W,{...S.userNode}):void 0,V=i?W=>i(W,{...S.userNode}):void 0,X=W=>{const{selectNodesOnDrag:Z,nodeDragThreshold:oe}=j.getState();L&&(!Z||!C||oe>0)&&Pf({id:e,store:j,nodeRef:k}),t&&t(W,{...S.userNode})},Q=W=>{if(!(e1(W.nativeEvent)||p)){if(Hw.includes(W.key)&&L){const Z=W.key==="Escape";Pf({id:e,store:j,unselect:Z,nodeRef:k})}else if(C&&y.selected&&Object.prototype.hasOwnProperty.call(xu,W.key)){W.preventDefault();const{ariaLabelConfig:Z}=j.getState();j.setState({ariaLiveMessage:Z["node.a11yDescription.ariaLiveMessage"]({direction:W.key.replace("Arrow","").toLowerCase(),x:~~S.positionAbsolute.x,y:~~S.positionAbsolute.y})}),I({direction:xu[W.key],factor:W.shiftKey?4:1})}}},Y=()=>{var he;if(p||!((he=k.current)!=null&&he.matches(":focus-visible")))return;const{transform:W,width:Z,height:oe,autoPanOnNodeFocus:re,setCenter:J}=j.getState();if(!re)return;tp(new Map([[e,y]]),{x:0,y:0,width:Z,height:oe},W,!0).length>0||J(y.position.x+F.width/2,y.position.y+F.height/2,{zoom:W[2]})};return h.jsx("div",{className:Oe(["react-flow__node",`react-flow__node-${_}`,{[m]:C},y.className,{selected:y.selected,selectable:L,parent:E,draggable:C,dragging:D}]),ref:k,style:{zIndex:S.z,transform:`translate(${S.positionAbsolute.x}px,${S.positionAbsolute.y}px)`,pointerEvents:T?"all":"none",visibility:O?"visible":"hidden",...y.style,...N},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:z,onMouseMove:B,onMouseLeave:H,onContextMenu:K,onClick:X,onDoubleClick:V,onKeyDown:P?Q:void 0,tabIndex:P?0:void 0,onFocus:P?Y:void 0,role:y.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${v1}-${x}`,"aria-label":y.ariaLabel,...y.domAttributes,children:h.jsx(MI,{value:e,children:h.jsx(b,{id:e,data:y.data,type:_,positionAbsoluteX:S.positionAbsolute.x,positionAbsoluteY:S.positionAbsolute.y,selected:y.selected??!1,selectable:L,draggable:C,deletable:y.deletable??!0,isConnectable:M,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:D,dragHandle:y.dragHandle,zIndex:S.z,parentId:y.parentId,...F})})})}var XI=R.memo(GI);const YI=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function M1(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,onError:o}=fe(YI,Ee),i=WI(e.onlyRenderVisibleElements),a=qI();return h.jsx("div",{className:"react-flow__nodes",style:ec,children:i.map(l=>h.jsx(XI,{id:l,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,nodeClickDistance:e.nodeClickDistance,onError:o},l))})}M1.displayName="NodeRenderer";const ZI=R.memo(M1);function JI(e){return fe(R.useCallback(n=>{if(!e)return n.edges.map(s=>s.id);const r=[];if(n.width&&n.height)for(const s of n.edges){const o=n.nodeLookup.get(s.source),i=n.nodeLookup.get(s.target);o&&i&&rL({sourceNode:o,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&r.push(s.id)}return r},[e]),Ee)}const eA=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return h.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},tA=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return h.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},gy={[ws.Arrow]:eA,[ws.ArrowClosed]:tA};function nA(e){const t=Ce();return R.useMemo(()=>{var s,o;return Object.prototype.hasOwnProperty.call(gy,e)?gy[e]:((o=(s=t.getState()).onError)==null||o.call(s,"009",bn.error009(e)),null)},[e])}const rA=({id:e,type:t,color:n,width:r=12.5,height:s=12.5,markerUnits:o="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const l=nA(t);return l?h.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${s}`,viewBox:"-10 -10 20 20",markerUnits:o,orient:a,refX:"0",refY:"0",children:h.jsx(l,{color:n,strokeWidth:i})}):null},T1=({defaultColor:e,rfId:t})=>{const n=fe(o=>o.edges),r=fe(o=>o.defaultEdgeOptions),s=R.useMemo(()=>dL(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return s.length?h.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:h.jsx("defs",{children:s.map(o=>h.jsx(rA,{id:o.id,type:o.type,color:o.color,width:o.width,height:o.height,markerUnits:o.markerUnits,strokeWidth:o.strokeWidth,orient:o.orient},o.id))})}):null};T1.displayName="MarkerDefinitions";var sA=R.memo(T1);function L1({x:e,y:t,label:n,labelStyle:r,labelShowBg:s=!0,labelBgStyle:o,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:l,className:u,...d}){const[c,f]=R.useState({x:1,y:0,width:0,height:0}),m=Oe(["react-flow__edge-textwrapper",u]),p=R.useRef(null);return R.useEffect(()=>{if(p.current){const x=p.current.getBBox();f({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),n?h.jsxs("g",{transform:`translate(${e-c.width/2} ${t-c.height/2})`,className:m,visibility:c.width?"visible":"hidden",...d,children:[s&&h.jsx("rect",{width:c.width+2*i[0],x:-i[0],y:-i[1],height:c.height+2*i[1],className:"react-flow__edge-textbg",style:o,rx:a,ry:a}),h.jsx("text",{className:"react-flow__edge-text",y:c.height/2,dy:"0.3em",ref:p,style:r,children:n}),l]}):null}L1.displayName="EdgeText";const oA=R.memo(L1);function tc({path:e,labelX:t,labelY:n,label:r,labelStyle:s,labelShowBg:o,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:u=20,...d}){return h.jsxs(h.Fragment,{children:[h.jsx("path",{...d,d:e,fill:"none",className:Oe(["react-flow__edge-path",d.className])}),u?h.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,r&&en(t)&&en(n)?h.jsx(oA,{x:t,y:n,label:r,labelStyle:s,labelShowBg:o,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function yy({pos:e,x1:t,y1:n,x2:r,y2:s}){return e===ee.Left||e===ee.Right?[.5*(t+r),n]:[t,.5*(n+s)]}function I1({sourceX:e,sourceY:t,sourcePosition:n=ee.Bottom,targetX:r,targetY:s,targetPosition:o=ee.Top}){const[i,a]=yy({pos:n,x1:e,y1:t,x2:r,y2:s}),[l,u]=yy({pos:o,x1:r,y1:s,x2:e,y2:t}),[d,c,f,m]=n1({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:i,sourceControlY:a,targetControlX:l,targetControlY:u});return[`M${e},${t} C${i},${a} ${l},${u} ${r},${s}`,d,c,f,m]}function A1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,sourcePosition:i,targetPosition:a,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,interactionWidth:g})=>{const[v,y,S]=I1({sourceX:n,sourceY:r,sourcePosition:i,targetX:s,targetY:o,targetPosition:a}),E=e.isInternal?void 0:t;return h.jsx(tc,{id:E,path:v,labelX:y,labelY:S,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,interactionWidth:g})})}const iA=A1({isInternal:!1}),O1=A1({isInternal:!0});iA.displayName="SimpleBezierEdge";O1.displayName="SimpleBezierEdgeInternal";function F1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,sourcePosition:m=ee.Bottom,targetPosition:p=ee.Top,markerEnd:x,markerStart:w,pathOptions:g,interactionWidth:v})=>{const[y,S,E]=Ef({sourceX:n,sourceY:r,sourcePosition:m,targetX:s,targetY:o,targetPosition:p,borderRadius:g==null?void 0:g.borderRadius,offset:g==null?void 0:g.offset,stepPosition:g==null?void 0:g.stepPosition}),_=e.isInternal?void 0:t;return h.jsx(tc,{id:_,path:y,labelX:S,labelY:E,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,markerEnd:x,markerStart:w,interactionWidth:v})})}const D1=F1({isInternal:!1}),z1=F1({isInternal:!0});D1.displayName="SmoothStepEdge";z1.displayName="SmoothStepEdgeInternal";function $1(e){return R.memo(({id:t,...n})=>{var s;const r=e.isInternal?void 0:t;return h.jsx(D1,{...n,id:r,pathOptions:R.useMemo(()=>{var o;return{borderRadius:0,offset:(o=n.pathOptions)==null?void 0:o.offset}},[(s=n.pathOptions)==null?void 0:s.offset])})})}const aA=$1({isInternal:!1}),B1=$1({isInternal:!0});aA.displayName="StepEdge";B1.displayName="StepEdgeInternal";function H1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,markerEnd:m,markerStart:p,interactionWidth:x})=>{const[w,g,v]=o1({sourceX:n,sourceY:r,targetX:s,targetY:o}),y=e.isInternal?void 0:t;return h.jsx(tc,{id:y,path:w,labelX:g,labelY:v,label:i,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:c,style:f,markerEnd:m,markerStart:p,interactionWidth:x})})}const lA=H1({isInternal:!1}),U1=H1({isInternal:!0});lA.displayName="StraightEdge";U1.displayName="StraightEdgeInternal";function V1(e){return R.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:o,sourcePosition:i=ee.Bottom,targetPosition:a=ee.Top,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,pathOptions:g,interactionWidth:v})=>{const[y,S,E]=r1({sourceX:n,sourceY:r,sourcePosition:i,targetX:s,targetY:o,targetPosition:a,curvature:g==null?void 0:g.curvature}),_=e.isInternal?void 0:t;return h.jsx(tc,{id:_,path:y,labelX:S,labelY:E,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:c,labelBgPadding:f,labelBgBorderRadius:m,style:p,markerEnd:x,markerStart:w,interactionWidth:v})})}const uA=V1({isInternal:!1}),W1=V1({isInternal:!0});uA.displayName="BezierEdge";W1.displayName="BezierEdgeInternal";const xy={default:W1,straight:U1,step:B1,smoothstep:z1,simplebezier:O1},vy={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},cA=(e,t,n)=>n===ee.Left?e-t:n===ee.Right?e+t:e,dA=(e,t,n)=>n===ee.Top?e-t:n===ee.Bottom?e+t:e,wy="react-flow__edgeupdater";function Sy({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:s,onMouseEnter:o,onMouseOut:i,type:a}){return h.jsx("circle",{onMouseDown:s,onMouseEnter:o,onMouseOut:i,className:Oe([wy,`${wy}-${a}`]),cx:cA(t,r,e),cy:dA(n,r,e),r,stroke:"transparent",fill:"transparent"})}function fA({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:s,targetX:o,targetY:i,sourcePosition:a,targetPosition:l,onReconnect:u,onReconnectStart:d,onReconnectEnd:c,setReconnecting:f,setUpdateHover:m}){const p=Ce(),x=(S,E)=>{if(S.button!==0)return;const{autoPanOnConnect:_,domNode:b,isValidConnection:C,connectionMode:L,connectionRadius:M,lib:P,onConnectStart:j,onConnectEnd:O,cancelConnection:k,nodeLookup:D,rfId:I,panBy:F,updateConnection:N}=p.getState(),T=E.type==="target",z=(K,V)=>{f(!1),c==null||c(K,n,E.type,V)},B=K=>u==null?void 0:u(n,K),H=(K,V)=>{f(!0),d==null||d(S,n,E.type),j==null||j(K,V)};kf.onPointerDown(S.nativeEvent,{autoPanOnConnect:_,connectionMode:L,connectionRadius:M,domNode:b,handleId:E.id,nodeId:E.nodeId,nodeLookup:D,isTarget:T,edgeUpdaterType:E.type,lib:P,flowId:I,cancelConnection:k,panBy:F,isValidConnection:C,onConnect:B,onConnectStart:H,onConnectEnd:O,onReconnectEnd:z,updateConnection:N,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:S.currentTarget})},w=S=>x(S,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),g=S=>x(S,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),v=()=>m(!0),y=()=>m(!1);return h.jsxs(h.Fragment,{children:[(e===!0||e==="source")&&h.jsx(Sy,{position:a,centerX:r,centerY:s,radius:t,onMouseDown:w,onMouseEnter:v,onMouseOut:y,type:"source"}),(e===!0||e==="target")&&h.jsx(Sy,{position:l,centerX:o,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:y,type:"target"})]})}function hA({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:s,onDoubleClick:o,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,reconnectRadius:d,onReconnect:c,onReconnectStart:f,onReconnectEnd:m,rfId:p,edgeTypes:x,noPanClassName:w,onError:g,disableKeyboardA11y:v}){let y=fe(J=>J.edgeLookup.get(e));const S=fe(J=>J.defaultEdgeOptions);y=S?{...S,...y}:y;let E=y.type||"default",_=(x==null?void 0:x[E])||xy[E];_===void 0&&(g==null||g("011",bn.error011(E)),E="default",_=(x==null?void 0:x.default)||xy.default);const b=!!(y.focusable||t&&typeof y.focusable>"u"),C=typeof c<"u"&&(y.reconnectable||n&&typeof y.reconnectable>"u"),L=!!(y.selectable||r&&typeof y.selectable>"u"),M=R.useRef(null),[P,j]=R.useState(!1),[O,k]=R.useState(!1),D=Ce(),{zIndex:I,sourceX:F,sourceY:N,targetX:T,targetY:z,sourcePosition:B,targetPosition:H}=fe(R.useCallback(J=>{const te=J.nodeLookup.get(y.source),he=J.nodeLookup.get(y.target);if(!te||!he)return{zIndex:y.zIndex,...vy};const ye=cL({id:e,sourceNode:te,targetNode:he,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:J.connectionMode,onError:g});return{zIndex:nL({selected:y.selected,zIndex:y.zIndex,sourceNode:te,targetNode:he,elevateOnSelect:J.elevateEdgesOnSelect,zIndexMode:J.zIndexMode}),...ye||vy}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Ee),K=R.useMemo(()=>y.markerStart?`url('#${Cf(y.markerStart,p)}')`:void 0,[y.markerStart,p]),V=R.useMemo(()=>y.markerEnd?`url('#${Cf(y.markerEnd,p)}')`:void 0,[y.markerEnd,p]);if(y.hidden||F===null||N===null||T===null||z===null)return null;const X=J=>{var ce;const{addSelectedEdges:te,unselectNodesAndEdges:he,multiSelectionActive:ye}=D.getState();L&&(D.setState({nodesSelectionActive:!1}),y.selected&&ye?(he({nodes:[],edges:[y]}),(ce=M.current)==null||ce.blur()):te([e])),s&&s(J,y)},Q=o?J=>{o(J,{...y})}:void 0,Y=i?J=>{i(J,{...y})}:void 0,W=a?J=>{a(J,{...y})}:void 0,Z=l?J=>{l(J,{...y})}:void 0,oe=u?J=>{u(J,{...y})}:void 0,re=J=>{var te;if(!v&&Hw.includes(J.key)&&L){const{unselectNodesAndEdges:he,addSelectedEdges:ye}=D.getState();J.key==="Escape"?((te=M.current)==null||te.blur(),he({edges:[y]})):ye([e])}};return h.jsx("svg",{style:{zIndex:I},children:h.jsxs("g",{className:Oe(["react-flow__edge",`react-flow__edge-${E}`,y.className,w,{selected:y.selected,animated:y.animated,inactive:!L&&!s,updating:P,selectable:L}]),onClick:X,onDoubleClick:Q,onContextMenu:Y,onMouseEnter:W,onMouseMove:Z,onMouseLeave:oe,onKeyDown:b?re:void 0,tabIndex:b?0:void 0,role:y.ariaRole??(b?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":y.ariaLabel===null?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":b?`${w1}-${p}`:void 0,ref:M,...y.domAttributes,children:[!O&&h.jsx(_,{id:e,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:L,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:F,sourceY:N,targetX:T,targetY:z,sourcePosition:B,targetPosition:H,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:K,markerEnd:V,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),C&&h.jsx(fA,{edge:y,isReconnectable:C,reconnectRadius:d,onReconnect:c,onReconnectStart:f,onReconnectEnd:m,sourceX:F,sourceY:N,targetX:T,targetY:z,sourcePosition:B,targetPosition:H,setUpdateHover:j,setReconnecting:k})]})})}var pA=R.memo(hA);const mA=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function K1({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:s,onReconnect:o,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:c,onEdgeDoubleClick:f,onReconnectStart:m,onReconnectEnd:p,disableKeyboardA11y:x}){const{edgesFocusable:w,edgesReconnectable:g,elementsSelectable:v,onError:y}=fe(mA,Ee),S=JI(t);return h.jsxs("div",{className:"react-flow__edges",children:[h.jsx(sA,{defaultColor:e,rfId:n}),S.map(E=>h.jsx(pA,{id:E,edgesFocusable:w,edgesReconnectable:g,elementsSelectable:v,noPanClassName:s,onReconnect:o,onContextMenu:i,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,onClick:d,reconnectRadius:c,onDoubleClick:f,onReconnectStart:m,onReconnectEnd:p,rfId:n,onError:y,edgeTypes:r,disableKeyboardA11y:x},E))]})}K1.displayName="EdgeRenderer";const gA=R.memo(K1),yA=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function xA({children:e}){const t=fe(yA);return h.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function vA(e){const t=up(),n=R.useRef(!1);R.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const wA=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function SA(e){const t=fe(wA),n=Ce();return R.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function _A(e){return e.connection.inProgress?{...e.connection,to:ba(e.connection.to,e.transform)}:{...e.connection}}function bA(e){return _A}function EA(e){const t=bA();return fe(t,Ee)}const CA=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function NA({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:s,width:o,height:i,isValid:a,inProgress:l}=fe(CA,Ee);return!(o&&s&&l)?null:h.jsx("svg",{style:e,width:o,height:i,className:"react-flow__connectionline react-flow__container",children:h.jsx("g",{className:Oe(["react-flow__connection",Ww(a)]),children:h.jsx(q1,{style:t,type:n,CustomComponent:r,isValid:a})})})}const q1=({style:e,type:t=rr.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:s,from:o,fromNode:i,fromHandle:a,fromPosition:l,to:u,toNode:d,toHandle:c,toPosition:f,pointer:m}=EA();if(!s)return;if(n)return h.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:o.x,fromY:o.y,toX:u.x,toY:u.y,fromPosition:l,toPosition:f,connectionStatus:Ww(r),toNode:d,toHandle:c,pointer:m});let p="";const x={sourceX:o.x,sourceY:o.y,sourcePosition:l,targetX:u.x,targetY:u.y,targetPosition:f};switch(t){case rr.Bezier:[p]=r1(x);break;case rr.SimpleBezier:[p]=I1(x);break;case rr.Step:[p]=Ef({...x,borderRadius:0});break;case rr.SmoothStep:[p]=Ef(x);break;default:[p]=o1(x)}return h.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};q1.displayName="ConnectionLine";const kA={};function _y(e=kA){R.useRef(e),Ce(),R.useEffect(()=>{},[e])}function PA(){Ce(),R.useRef(!1),R.useEffect(()=>{},[])}function Q1({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:s,onNodeDoubleClick:o,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:c,onSelectionStart:f,onSelectionEnd:m,connectionLineType:p,connectionLineStyle:x,connectionLineComponent:w,connectionLineContainerStyle:g,selectionKeyCode:v,selectionOnDrag:y,selectionMode:S,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:b,deleteKeyCode:C,onlyRenderVisibleElements:L,elementsSelectable:M,defaultViewport:P,translateExtent:j,minZoom:O,maxZoom:k,preventScrolling:D,defaultMarkerColor:I,zoomOnScroll:F,zoomOnPinch:N,panOnScroll:T,panOnScrollSpeed:z,panOnScrollMode:B,zoomOnDoubleClick:H,panOnDrag:K,onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:Q,onPaneMouseLeave:Y,onPaneScroll:W,onPaneContextMenu:Z,paneClickDistance:oe,nodeClickDistance:re,onEdgeContextMenu:J,onEdgeMouseEnter:te,onEdgeMouseMove:he,onEdgeMouseLeave:ye,reconnectRadius:ce,onReconnect:$e,onReconnectStart:un,onReconnectEnd:dt,noDragClassName:At,noWheelClassName:Wn,noPanClassName:Kn,disableKeyboardA11y:de,nodeExtent:Le,rfId:Ye,viewport:Cn,onViewportChange:$o}){return _y(e),_y(t),PA(),vA(n),SA(Cn),h.jsx(UI,{onPaneClick:V,onPaneMouseEnter:X,onPaneMouseMove:Q,onPaneMouseLeave:Y,onPaneContextMenu:Z,onPaneScroll:W,paneClickDistance:oe,deleteKeyCode:C,selectionKeyCode:v,selectionOnDrag:y,selectionMode:S,onSelectionStart:f,onSelectionEnd:m,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:b,elementsSelectable:M,zoomOnScroll:F,zoomOnPinch:N,zoomOnDoubleClick:H,panOnScroll:T,panOnScrollSpeed:z,panOnScrollMode:B,panOnDrag:K,defaultViewport:P,translateExtent:j,minZoom:O,maxZoom:k,onSelectionContextMenu:c,preventScrolling:D,noDragClassName:At,noWheelClassName:Wn,noPanClassName:Kn,disableKeyboardA11y:de,onViewportChange:$o,isControlledViewport:!!Cn,children:h.jsxs(xA,{children:[h.jsx(gA,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:i,onReconnect:$e,onReconnectStart:un,onReconnectEnd:dt,onlyRenderVisibleElements:L,onEdgeContextMenu:J,onEdgeMouseEnter:te,onEdgeMouseMove:he,onEdgeMouseLeave:ye,reconnectRadius:ce,defaultMarkerColor:I,noPanClassName:Kn,disableKeyboardA11y:de,rfId:Ye}),h.jsx(NA,{style:x,type:p,component:w,containerStyle:g}),h.jsx("div",{className:"react-flow__edgelabel-renderer"}),h.jsx(ZI,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:re,onlyRenderVisibleElements:L,noPanClassName:Kn,noDragClassName:At,disableKeyboardA11y:de,nodeExtent:Le,rfId:Ye}),h.jsx("div",{className:"react-flow__viewport-portal"})]})})}Q1.displayName="GraphView";const RA=R.memo(Q1),by=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l=.5,maxZoom:u=2,nodeOrigin:d,nodeExtent:c,zIndexMode:f="basic"}={})=>{const m=new Map,p=new Map,x=new Map,w=new Map,g=r??t??[],v=n??e??[],y=d??[0,0],S=c??Xi;l1(x,w,g);const E=Nf(v,m,p,{nodeOrigin:y,nodeExtent:S,zIndexMode:f});let _=[0,0,1];if(i&&s&&o){const b=Sa(m,{filter:P=>!!((P.width||P.initialWidth)&&(P.height||P.initialHeight))}),{x:C,y:L,zoom:M}=np(b,s,o,l,u,(a==null?void 0:a.padding)??.1);_=[C,L,M]}return{rfId:"1",width:s??0,height:o??0,transform:_,nodes:v,nodesInitialized:E,nodeLookup:m,parentLookup:p,edges:g,edgeLookup:w,connectionLookup:x,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:l,maxZoom:u,translateExtent:Xi,nodeExtent:S,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:No.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:y,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...Vw},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:XT,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Uw,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},jA=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:c,zIndexMode:f})=>QL((m,p)=>{async function x(){const{nodeLookup:w,panZoom:g,fitViewOptions:v,fitViewResolver:y,width:S,height:E,minZoom:_,maxZoom:b}=p();g&&(await QT({nodes:w,width:S,height:E,panZoom:g,minZoom:_,maxZoom:b},v),y==null||y.resolve(!0),m({fitViewResolver:null}))}return{...by({nodes:e,edges:t,width:s,height:o,fitView:i,fitViewOptions:a,minZoom:l,maxZoom:u,nodeOrigin:d,nodeExtent:c,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:w=>{const{nodeLookup:g,parentLookup:v,nodeOrigin:y,elevateNodesOnSelect:S,fitViewQueued:E,zIndexMode:_}=p(),b=Nf(w,g,v,{nodeOrigin:y,nodeExtent:c,elevateNodesOnSelect:S,checkEquality:!0,zIndexMode:_});E&&b?(x(),m({nodes:w,nodesInitialized:b,fitViewQueued:!1,fitViewOptions:void 0})):m({nodes:w,nodesInitialized:b})},setEdges:w=>{const{connectionLookup:g,edgeLookup:v}=p();l1(g,v,w),m({edges:w})},setDefaultNodesAndEdges:(w,g)=>{if(w){const{setNodes:v}=p();v(w),m({hasDefaultNodes:!0})}if(g){const{setEdges:v}=p();v(g),m({hasDefaultEdges:!0})}},updateNodeInternals:w=>{const{triggerNodeChanges:g,nodeLookup:v,parentLookup:y,domNode:S,nodeOrigin:E,nodeExtent:_,debug:b,fitViewQueued:C,zIndexMode:L}=p(),{changes:M,updatedInternals:P}=xL(w,v,y,S,E,_,L);P&&(pL(v,y,{nodeOrigin:E,nodeExtent:_,zIndexMode:L}),C?(x(),m({fitViewQueued:!1,fitViewOptions:void 0})):m({}),(M==null?void 0:M.length)>0&&(b&&console.log("React Flow: trigger node changes",M),g==null||g(M)))},updateNodePositions:(w,g=!1)=>{const v=[];let y=[];const{nodeLookup:S,triggerNodeChanges:E,connection:_,updateConnection:b,onNodesChangeMiddlewareMap:C}=p();for(const[L,M]of w){const P=S.get(L),j=!!(P!=null&&P.expandParent&&(P!=null&&P.parentId)&&(M!=null&&M.position)),O={id:L,type:"position",position:j?{x:Math.max(0,M.position.x),y:Math.max(0,M.position.y)}:M.position,dragging:g};if(P&&_.inProgress&&_.fromNode.id===P.id){const k=_s(P,_.fromHandle,ee.Left,!0);b({..._,from:k})}j&&P.parentId&&v.push({id:L,parentId:P.parentId,rect:{...M.internals.positionAbsolute,width:M.measured.width??0,height:M.measured.height??0}}),y.push(O)}if(v.length>0){const{parentLookup:L,nodeOrigin:M}=p(),P=lp(v,S,L,M);y.push(...P)}for(const L of C.values())y=L(y);E(y)},triggerNodeChanges:w=>{const{onNodesChange:g,setNodes:v,nodes:y,hasDefaultNodes:S,debug:E}=p();if(w!=null&&w.length){if(S){const _=b1(w,y);v(_)}E&&console.log("React Flow: trigger node changes",w),g==null||g(w)}},triggerEdgeChanges:w=>{const{onEdgesChange:g,setEdges:v,edges:y,hasDefaultEdges:S,debug:E}=p();if(w!=null&&w.length){if(S){const _=E1(w,y);v(_)}E&&console.log("React Flow: trigger edge changes",w),g==null||g(w)}},addSelectedNodes:w=>{const{multiSelectionActive:g,edgeLookup:v,nodeLookup:y,triggerNodeChanges:S,triggerEdgeChanges:E}=p();if(g){const _=w.map(b=>Or(b,!0));S(_);return}S(Hs(y,new Set([...w]),!0)),E(Hs(v))},addSelectedEdges:w=>{const{multiSelectionActive:g,edgeLookup:v,nodeLookup:y,triggerNodeChanges:S,triggerEdgeChanges:E}=p();if(g){const _=w.map(b=>Or(b,!0));E(_);return}E(Hs(v,new Set([...w]))),S(Hs(y,new Set,!0))},unselectNodesAndEdges:({nodes:w,edges:g}={})=>{const{edges:v,nodes:y,nodeLookup:S,triggerNodeChanges:E,triggerEdgeChanges:_}=p(),b=w||y,C=g||v,L=b.map(P=>{const j=S.get(P.id);return j&&(j.selected=!1),Or(P.id,!1)}),M=C.map(P=>Or(P.id,!1));E(L),_(M)},setMinZoom:w=>{const{panZoom:g,maxZoom:v}=p();g==null||g.setScaleExtent([w,v]),m({minZoom:w})},setMaxZoom:w=>{const{panZoom:g,minZoom:v}=p();g==null||g.setScaleExtent([v,w]),m({maxZoom:w})},setTranslateExtent:w=>{var g;(g=p().panZoom)==null||g.setTranslateExtent(w),m({translateExtent:w})},resetSelectedElements:()=>{const{edges:w,nodes:g,triggerNodeChanges:v,triggerEdgeChanges:y,elementsSelectable:S}=p();if(!S)return;const E=g.reduce((b,C)=>C.selected?[...b,Or(C.id,!1)]:b,[]),_=w.reduce((b,C)=>C.selected?[...b,Or(C.id,!1)]:b,[]);v(E),y(_)},setNodeExtent:w=>{const{nodes:g,nodeLookup:v,parentLookup:y,nodeOrigin:S,elevateNodesOnSelect:E,nodeExtent:_,zIndexMode:b}=p();w[0][0]===_[0][0]&&w[0][1]===_[0][1]&&w[1][0]===_[1][0]&&w[1][1]===_[1][1]||(Nf(g,v,y,{nodeOrigin:S,nodeExtent:w,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:b}),m({nodeExtent:w}))},panBy:w=>{const{transform:g,width:v,height:y,panZoom:S,translateExtent:E}=p();return vL({delta:w,panZoom:S,transform:g,translateExtent:E,width:v,height:y})},setCenter:async(w,g,v)=>{const{width:y,height:S,maxZoom:E,panZoom:_}=p();if(!_)return Promise.resolve(!1);const b=typeof(v==null?void 0:v.zoom)<"u"?v.zoom:E;return await _.setViewport({x:y/2-w*b,y:S/2-g*b,zoom:b},{duration:v==null?void 0:v.duration,ease:v==null?void 0:v.ease,interpolate:v==null?void 0:v.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{m({connection:{...Vw}})},updateConnection:w=>{m({connection:w})},reset:()=>m({...by()})}},Object.is);function MA({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:s,initialHeight:o,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:l,fitView:u,nodeOrigin:d,nodeExtent:c,zIndexMode:f,children:m}){const[p]=R.useState(()=>jA({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:o,fitView:u,minZoom:i,maxZoom:a,fitViewOptions:l,nodeOrigin:d,nodeExtent:c,zIndexMode:f}));return h.jsx(GL,{value:p,children:h.jsx(xI,{children:m})})}function TA({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:s,width:o,height:i,fitView:a,fitViewOptions:l,minZoom:u,maxZoom:d,nodeOrigin:c,nodeExtent:f,zIndexMode:m}){return R.useContext(Ju)?h.jsx(h.Fragment,{children:e}):h.jsx(MA,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:s,initialWidth:o,initialHeight:i,fitView:a,initialFitViewOptions:l,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:c,nodeExtent:f,zIndexMode:m,children:e})}const LA={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function IA({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:s,nodeTypes:o,edgeTypes:i,onNodeClick:a,onEdgeClick:l,onInit:u,onMove:d,onMoveStart:c,onMoveEnd:f,onConnect:m,onConnectStart:p,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:g,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:S,onNodeContextMenu:E,onNodeDoubleClick:_,onNodeDragStart:b,onNodeDrag:C,onNodeDragStop:L,onNodesDelete:M,onEdgesDelete:P,onDelete:j,onSelectionChange:O,onSelectionDragStart:k,onSelectionDrag:D,onSelectionDragStop:I,onSelectionContextMenu:F,onSelectionStart:N,onSelectionEnd:T,onBeforeDelete:z,connectionMode:B,connectionLineType:H=rr.Bezier,connectionLineStyle:K,connectionLineComponent:V,connectionLineContainerStyle:X,deleteKeyCode:Q="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:W=!1,selectionMode:Z=Yi.Full,panActivationKeyCode:oe="Space",multiSelectionKeyCode:re=Ji()?"Meta":"Control",zoomActivationKeyCode:J=Ji()?"Meta":"Control",snapToGrid:te,snapGrid:he,onlyRenderVisibleElements:ye=!1,selectNodesOnDrag:ce,nodesDraggable:$e,autoPanOnNodeFocus:un,nodesConnectable:dt,nodesFocusable:At,nodeOrigin:Wn=S1,edgesFocusable:Kn,edgesReconnectable:de,elementsSelectable:Le=!0,defaultViewport:Ye=lI,minZoom:Cn=.5,maxZoom:$o=2,translateExtent:dp=Xi,preventScrolling:J1=!0,nodeExtent:nc,defaultMarkerColor:eS="#b1b1b7",zoomOnScroll:tS=!0,zoomOnPinch:nS=!0,panOnScroll:rS=!1,panOnScrollSpeed:sS=.5,panOnScrollMode:oS=as.Free,zoomOnDoubleClick:iS=!0,panOnDrag:aS=!0,onPaneClick:lS,onPaneMouseEnter:uS,onPaneMouseMove:cS,onPaneMouseLeave:dS,onPaneScroll:fS,onPaneContextMenu:hS,paneClickDistance:pS=1,nodeClickDistance:mS=0,children:gS,onReconnect:yS,onReconnectStart:xS,onReconnectEnd:vS,onEdgeContextMenu:wS,onEdgeDoubleClick:SS,onEdgeMouseEnter:_S,onEdgeMouseMove:bS,onEdgeMouseLeave:ES,reconnectRadius:CS=10,onNodesChange:NS,onEdgesChange:kS,noDragClassName:PS="nodrag",noWheelClassName:RS="nowheel",noPanClassName:fp="nopan",fitView:hp,fitViewOptions:pp,connectOnClick:jS,attributionPosition:MS,proOptions:TS,defaultEdgeOptions:LS,elevateNodesOnSelect:IS=!0,elevateEdgesOnSelect:AS=!1,disableKeyboardA11y:mp=!1,autoPanOnConnect:OS,autoPanOnNodeDrag:FS,autoPanSpeed:DS,connectionRadius:zS,isValidConnection:$S,onError:BS,style:HS,id:gp,nodeDragThreshold:US,connectionDragThreshold:VS,viewport:WS,onViewportChange:KS,width:qS,height:QS,colorMode:GS="light",debug:XS,onScroll:Ca,ariaLabelConfig:YS,zIndexMode:yp="basic",...ZS},JS){const rc=gp||"1",e_=fI(GS),t_=R.useCallback(xp=>{xp.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Ca==null||Ca(xp)},[Ca]);return h.jsx("div",{"data-testid":"rf__wrapper",...ZS,onScroll:t_,style:{...HS,...LA},ref:JS,className:Oe(["react-flow",s,e_]),id:gp,role:"application",children:h.jsxs(TA,{nodes:e,edges:t,width:qS,height:QS,fitView:hp,fitViewOptions:pp,minZoom:Cn,maxZoom:$o,nodeOrigin:Wn,nodeExtent:nc,zIndexMode:yp,children:[h.jsx(RA,{onInit:u,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:v,onNodeMouseMove:y,onNodeMouseLeave:S,onNodeContextMenu:E,onNodeDoubleClick:_,nodeTypes:o,edgeTypes:i,connectionLineType:H,connectionLineStyle:K,connectionLineComponent:V,connectionLineContainerStyle:X,selectionKeyCode:Y,selectionOnDrag:W,selectionMode:Z,deleteKeyCode:Q,multiSelectionKeyCode:re,panActivationKeyCode:oe,zoomActivationKeyCode:J,onlyRenderVisibleElements:ye,defaultViewport:Ye,translateExtent:dp,minZoom:Cn,maxZoom:$o,preventScrolling:J1,zoomOnScroll:tS,zoomOnPinch:nS,zoomOnDoubleClick:iS,panOnScroll:rS,panOnScrollSpeed:sS,panOnScrollMode:oS,panOnDrag:aS,onPaneClick:lS,onPaneMouseEnter:uS,onPaneMouseMove:cS,onPaneMouseLeave:dS,onPaneScroll:fS,onPaneContextMenu:hS,paneClickDistance:pS,nodeClickDistance:mS,onSelectionContextMenu:F,onSelectionStart:N,onSelectionEnd:T,onReconnect:yS,onReconnectStart:xS,onReconnectEnd:vS,onEdgeContextMenu:wS,onEdgeDoubleClick:SS,onEdgeMouseEnter:_S,onEdgeMouseMove:bS,onEdgeMouseLeave:ES,reconnectRadius:CS,defaultMarkerColor:eS,noDragClassName:PS,noWheelClassName:RS,noPanClassName:fp,rfId:rc,disableKeyboardA11y:mp,nodeExtent:nc,viewport:WS,onViewportChange:KS}),h.jsx(dI,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:m,onConnectStart:p,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:g,nodesDraggable:$e,autoPanOnNodeFocus:un,nodesConnectable:dt,nodesFocusable:At,edgesFocusable:Kn,edgesReconnectable:de,elementsSelectable:Le,elevateNodesOnSelect:IS,elevateEdgesOnSelect:AS,minZoom:Cn,maxZoom:$o,nodeExtent:nc,onNodesChange:NS,onEdgesChange:kS,snapToGrid:te,snapGrid:he,connectionMode:B,translateExtent:dp,connectOnClick:jS,defaultEdgeOptions:LS,fitView:hp,fitViewOptions:pp,onNodesDelete:M,onEdgesDelete:P,onDelete:j,onNodeDragStart:b,onNodeDrag:C,onNodeDragStop:L,onSelectionDrag:D,onSelectionDragStart:k,onSelectionDragStop:I,onMove:d,onMoveStart:c,onMoveEnd:f,noPanClassName:fp,nodeOrigin:Wn,rfId:rc,autoPanOnConnect:OS,autoPanOnNodeDrag:FS,autoPanSpeed:DS,onError:BS,connectionRadius:zS,isValidConnection:$S,selectNodesOnDrag:ce,nodeDragThreshold:US,connectionDragThreshold:VS,onBeforeDelete:z,debug:XS,ariaLabelConfig:YS,zIndexMode:yp}),h.jsx(aI,{onSelectionChange:O}),gS,h.jsx(nI,{proOptions:TS,position:MS}),h.jsx(tI,{rfId:rc,disableKeyboardA11y:mp})]})})}var AA=C1(IA);function OA(e){const[t,n]=R.useState(e),r=R.useCallback(s=>n(o=>b1(s,o)),[]);return[t,n,r]}function FA(e){const[t,n]=R.useState(e),r=R.useCallback(s=>n(o=>E1(s,o)),[]);return[t,n,r]}function DA({dimensions:e,lineWidth:t,variant:n,className:r}){return h.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Oe(["react-flow__background-pattern",n,r])})}function zA({radius:e,className:t}){return h.jsx("circle",{cx:e,cy:e,r:e,className:Oe(["react-flow__background-pattern","dots",t])})}var kr;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(kr||(kr={}));const $A={[kr.Dots]:1,[kr.Lines]:1,[kr.Cross]:6},BA=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function G1({id:e,variant:t=kr.Dots,gap:n=20,size:r,lineWidth:s=1,offset:o=0,color:i,bgColor:a,style:l,className:u,patternClassName:d}){const c=R.useRef(null),{transform:f,patternId:m}=fe(BA,Ee),p=r||$A[t],x=t===kr.Dots,w=t===kr.Cross,g=Array.isArray(n)?n:[n,n],v=[g[0]*f[2]||1,g[1]*f[2]||1],y=p*f[2],S=Array.isArray(o)?o:[o,o],E=w?[y,y]:v,_=[S[0]*f[2]||1+E[0]/2,S[1]*f[2]||1+E[1]/2],b=`${m}${e||""}`;return h.jsxs("svg",{className:Oe(["react-flow__background",u]),style:{...l,...ec,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:c,"data-testid":"rf__background",children:[h.jsx("pattern",{id:b,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:x?h.jsx(zA,{radius:y/2,className:d}):h.jsx(DA,{dimensions:E,lineWidth:s,variant:t,className:d})}),h.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${b})`})]})}G1.displayName="Background";const HA=R.memo(G1);function UA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:h.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function VA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:h.jsx("path",{d:"M0 0h32v4.2H0z"})})}function WA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:h.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function KA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:h.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function qA(){return h.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:h.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function sl({children:e,className:t,...n}){return h.jsx("button",{type:"button",className:Oe(["react-flow__controls-button",t]),...n,children:e})}const QA=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function X1({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:s,onZoomIn:o,onZoomOut:i,onFitView:a,onInteractiveChange:l,className:u,children:d,position:c="bottom-left",orientation:f="vertical","aria-label":m}){const p=Ce(),{isInteractive:x,minZoomReached:w,maxZoomReached:g,ariaLabelConfig:v}=fe(QA,Ee),{zoomIn:y,zoomOut:S,fitView:E}=up(),_=()=>{y(),o==null||o()},b=()=>{S(),i==null||i()},C=()=>{E(s),a==null||a()},L=()=>{p.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),l==null||l(!x)},M=f==="horizontal"?"horizontal":"vertical";return h.jsxs(Ea,{className:Oe(["react-flow__controls",M,u]),position:c,style:e,"data-testid":"rf__controls","aria-label":m??v["controls.ariaLabel"],children:[t&&h.jsxs(h.Fragment,{children:[h.jsx(sl,{onClick:_,className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:g,children:h.jsx(UA,{})}),h.jsx(sl,{onClick:b,className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:w,children:h.jsx(VA,{})})]}),n&&h.jsx(sl,{className:"react-flow__controls-fitview",onClick:C,title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:h.jsx(WA,{})}),r&&h.jsx(sl,{className:"react-flow__controls-interactive",onClick:L,title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:x?h.jsx(qA,{}):h.jsx(KA,{})}),d]})}X1.displayName="Controls";const GA=R.memo(X1);function XA({id:e,x:t,y:n,width:r,height:s,style:o,color:i,strokeColor:a,strokeWidth:l,className:u,borderRadius:d,shapeRendering:c,selected:f,onClick:m}){const{background:p,backgroundColor:x}=o||{},w=i||p||x;return h.jsx("rect",{className:Oe(["react-flow__minimap-node",{selected:f},u]),x:t,y:n,rx:d,ry:d,width:r,height:s,style:{fill:w,stroke:a,strokeWidth:l},shapeRendering:c,onClick:m?g=>m(g,e):void 0})}const YA=R.memo(XA),ZA=e=>e.nodes.map(t=>t.id),Jc=e=>e instanceof Function?e:()=>e;function JA({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:s,nodeComponent:o=YA,onClick:i}){const a=fe(ZA,Ee),l=Jc(t),u=Jc(e),d=Jc(n),c=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return h.jsx(h.Fragment,{children:a.map(f=>h.jsx(t3,{id:f,nodeColorFunc:l,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:s,NodeComponent:o,onClick:i,shapeRendering:c},f))})}function e3({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:s,nodeStrokeWidth:o,shapeRendering:i,NodeComponent:a,onClick:l}){const{node:u,x:d,y:c,width:f,height:m}=fe(p=>{const{internals:x}=p.nodeLookup.get(e),w=x.userNode,{x:g,y:v}=x.positionAbsolute,{width:y,height:S}=Vn(w);return{node:w,x:g,y:v,width:y,height:S}},Ee);return!u||u.hidden||!Yw(u)?null:h.jsx(a,{x:d,y:c,width:f,height:m,style:u.style,selected:!!u.selected,className:r(u),color:t(u),borderRadius:s,strokeColor:n(u),strokeWidth:o,shapeRendering:i,onClick:l,id:u.id})}const t3=R.memo(e3);var n3=R.memo(JA);const r3=200,s3=150,o3=e=>!e.hidden,i3=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Xw(Sa(e.nodeLookup,{filter:o3}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},a3="react-flow__minimap-desc";function Y1({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:s="",nodeBorderRadius:o=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:l,maskColor:u,maskStrokeColor:d,maskStrokeWidth:c,position:f="bottom-right",onClick:m,onNodeClick:p,pannable:x=!1,zoomable:w=!1,ariaLabel:g,inversePan:v,zoomStep:y=1,offsetScale:S=5}){const E=Ce(),_=R.useRef(null),{boundingRect:b,viewBB:C,rfId:L,panZoom:M,translateExtent:P,flowWidth:j,flowHeight:O,ariaLabelConfig:k}=fe(i3,Ee),D=(e==null?void 0:e.width)??r3,I=(e==null?void 0:e.height)??s3,F=b.width/D,N=b.height/I,T=Math.max(F,N),z=T*D,B=T*I,H=S*T,K=b.x-(z-b.width)/2-H,V=b.y-(B-b.height)/2-H,X=z+H*2,Q=B+H*2,Y=`${a3}-${L}`,W=R.useRef(0),Z=R.useRef();W.current=T,R.useEffect(()=>{if(_.current&&M)return Z.current=PL({domNode:_.current,panZoom:M,getTransform:()=>E.getState().transform,getViewScale:()=>W.current}),()=>{var te;(te=Z.current)==null||te.destroy()}},[M]),R.useEffect(()=>{var te;(te=Z.current)==null||te.update({translateExtent:P,width:j,height:O,inversePan:v,pannable:x,zoomStep:y,zoomable:w})},[x,w,v,y,P,j,O]);const oe=m?te=>{var ce;const[he,ye]=((ce=Z.current)==null?void 0:ce.pointer(te))||[0,0];m(te,{x:he,y:ye})}:void 0,re=p?R.useCallback((te,he)=>{const ye=E.getState().nodeLookup.get(he).internals.userNode;p(te,ye)},[]):void 0,J=g??k["minimap.ariaLabel"];return h.jsx(Ea,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof c=="number"?c*T:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:Oe(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:h.jsxs("svg",{width:D,height:I,viewBox:`${K} ${V} ${X} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:_,onClick:oe,children:[J&&h.jsx("title",{id:Y,children:J}),h.jsx(n3,{onClick:re,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:o,nodeClassName:s,nodeStrokeWidth:i,nodeComponent:a}),h.jsx("path",{className:"react-flow__minimap-mask",d:`M${K-H},${V-H}h${X+H*2}v${Q+H*2}h${-X-H*2}z
|
|
67
|
+
M${C.x},${C.y}h${C.width}v${C.height}h${-C.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Y1.displayName="MiniMap";const l3=R.memo(Y1),u3=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,c3={[jo.Line]:"right",[jo.Handle]:"bottom-right"};function d3({nodeId:e,position:t,variant:n=jo.Handle,className:r,style:s=void 0,children:o,color:i,minWidth:a=10,minHeight:l=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:c=!1,resizeDirection:f,autoScale:m=!0,shouldResize:p,onResizeStart:x,onResize:w,onResizeEnd:g}){const v=R1(),y=typeof e=="string"?e:v,S=Ce(),E=R.useRef(null),_=n===jo.Handle,b=fe(R.useCallback(u3(_&&m),[_,m]),Ee),C=R.useRef(null),L=t??c3[n];R.useEffect(()=>{if(!(!E.current||!y))return C.current||(C.current=HL({domNode:E.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:P,transform:j,snapGrid:O,snapToGrid:k,nodeOrigin:D,domNode:I}=S.getState();return{nodeLookup:P,transform:j,snapGrid:O,snapToGrid:k,nodeOrigin:D,paneDomNode:I}},onChange:(P,j)=>{const{triggerNodeChanges:O,nodeLookup:k,parentLookup:D,nodeOrigin:I}=S.getState(),F=[],N={x:P.x,y:P.y},T=k.get(y);if(T&&T.expandParent&&T.parentId){const z=T.origin??I,B=P.width??T.measured.width??0,H=P.height??T.measured.height??0,K={id:T.id,parentId:T.parentId,rect:{width:B,height:H,...Zw({x:P.x??T.position.x,y:P.y??T.position.y},{width:B,height:H},T.parentId,k,z)}},V=lp([K],k,D,I);F.push(...V),N.x=P.x?Math.max(z[0]*B,P.x):void 0,N.y=P.y?Math.max(z[1]*H,P.y):void 0}if(N.x!==void 0&&N.y!==void 0){const z={id:y,type:"position",position:{...N}};F.push(z)}if(P.width!==void 0&&P.height!==void 0){const B={id:y,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:P.width,height:P.height}};F.push(B)}for(const z of j){const B={...z,type:"position"};F.push(B)}O(F)},onEnd:({width:P,height:j})=>{const O={id:y,type:"dimensions",resizing:!1,dimensions:{width:P,height:j}};S.getState().triggerNodeChanges([O])}})),C.current.update({controlPosition:L,boundaries:{minWidth:a,minHeight:l,maxWidth:u,maxHeight:d},keepAspectRatio:c,resizeDirection:f,onResizeStart:x,onResize:w,onResizeEnd:g,shouldResize:p}),()=>{var P;(P=C.current)==null||P.destroy()}},[L,a,l,u,d,c,x,w,g,p]);const M=L.split("-");return h.jsx("div",{className:Oe(["react-flow__resize-control","nodrag",...M,n,r]),ref:E,style:{...s,scale:b,...i&&{[_?"backgroundColor":"borderColor"]:i}},children:o})}R.memo(d3);function f3({data:e,selected:t}){const n=e,r=n.failed_count>0,s=n.running_count>0,o=n.success_count===n.total_count&&n.total_count>0;let i="border-border";return t?i="border-primary ring-2 ring-primary/20":r?i="border-red-500":s?i="border-blue-500":o&&(i="border-green-500"),h.jsxs("div",{className:`bg-card rounded-lg border-2 ${i} shadow-md min-w-[180px] transition-all`,children:[h.jsx(Mo,{type:"target",position:ee.Top,className:"!bg-muted-foreground !w-3 !h-3"}),h.jsxs("div",{className:"px-4 py-3",children:[h.jsx("div",{className:"font-semibold text-sm mb-2",children:n.class_name}),h.jsxs("div",{className:"flex flex-wrap gap-1.5 mb-2",children:[h.jsxs(mt,{variant:"muted",className:"text-xs px-1.5 py-0.5",children:[n.total_count," total"]}),n.success_count>0&&h.jsx(mt,{variant:"success",className:"text-xs px-1.5 py-0.5",children:n.success_count}),n.running_count>0&&h.jsx(mt,{variant:"info",className:"text-xs px-1.5 py-0.5",children:n.running_count}),n.failed_count>0&&h.jsx(mt,{variant:"destructive",className:"text-xs px-1.5 py-0.5",children:n.failed_count})]}),h.jsxs("div",{className:"space-y-1",children:[n.experiments.slice(0,3).map(a=>h.jsxs(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:a.namespace,furu_hash:a.furu_hash},className:"block text-xs text-muted-foreground hover:text-primary truncate",title:a.furu_hash,children:[a.furu_hash.slice(0,8),"..."]},a.furu_hash)),n.experiments.length>3&&h.jsxs("div",{className:"text-xs text-muted-foreground",children:["+",n.experiments.length-3," more"]})]})]}),h.jsx(Mo,{type:"source",position:ee.Bottom,className:"!bg-muted-foreground !w-3 !h-3"})]})}const h3={classNode:f3};function p3(e,t){var p;const n=new Map,r=new Map,s=new Map;for(const x of e)n.set(x.id,0),r.set(x.id,[]),s.set(x.id,x);for(const x of t)s.has(x.source)&&s.has(x.target)&&(n.set(x.target,(n.get(x.target)??0)+1),(p=r.get(x.source))==null||p.push(x.target));const o=[],i=new Set,a=new Set(e.map(x=>x.id));for(;a.size>0;){const x=[];for(const w of a)(n.get(w)??0)===0&&x.push(w);if(x.length===0){const w=a.values().next().value;w&&x.push(w)}o.push(x);for(const w of x){a.delete(w),i.add(w);for(const g of r.get(w)??[])i.has(g)||n.set(g,(n.get(g)??1)-1)}}const l=200,u=180,d=40,c=new Map;for(let x=0;x<o.length;x++){const w=o[x],v=-(w.length*l+(w.length-1)*d)/2;for(let y=0;y<w.length;y++){const S=w[y];c.set(S,{x:v+y*(l+d),y:x*u})}}const f=e.map(x=>{const w=c.get(x.id)??{x:0,y:0};return{id:x.id,type:"classNode",position:w,data:x}}),m=t.filter(x=>s.has(x.source)&&s.has(x.target)).map(x=>({id:`${x.source}-${x.target}`,source:x.source,target:x.target,label:x.field_name,labelStyle:{fontSize:10,fill:"hsl(var(--muted-foreground))"},labelBgStyle:{fill:"hsl(var(--background))"},labelBgPadding:[4,2],style:{stroke:"hsl(var(--border))",strokeWidth:2},markerEnd:{type:ws.ArrowClosed,color:"hsl(var(--border))"},animated:!1}));return{nodes:f,edges:m}}function m3({nodes:e,edges:t}){const[n,r]=R.useState(null),{nodes:s,edges:o}=R.useMemo(()=>p3(e,t),[e,t]),[i,,a]=OA(s),[l,u,d]=FA(o),c=R.useCallback((m,p)=>{const x=p.data;r(x);const w=new Set([p.id]);for(const g of t)g.target===p.id&&w.add(g.source),g.source===p.id&&w.add(g.target);u(g=>g.map(v=>{const y=v.source===p.id||v.target===p.id;return{...v,animated:y,style:{...v.style,stroke:y?"hsl(var(--primary))":"hsl(var(--border))",strokeWidth:y?3:2},markerEnd:{type:ws.ArrowClosed,color:y?"hsl(var(--primary))":"hsl(var(--border))"}}}))},[t,u]),f=R.useCallback(()=>{r(null),u(m=>m.map(p=>({...p,animated:!1,style:{...p.style,stroke:"hsl(var(--border))",strokeWidth:2},markerEnd:{type:ws.ArrowClosed,color:"hsl(var(--border))"}})))},[u]);return h.jsx("div",{className:"h-[600px] border rounded-lg bg-background relative",children:h.jsxs(AA,{nodes:i,edges:l,onNodesChange:a,onEdgesChange:d,onNodeClick:c,onPaneClick:f,nodeTypes:h3,fitView:!0,fitViewOptions:{padding:.2},minZoom:.1,maxZoom:2,defaultEdgeOptions:{type:"smoothstep"},children:[h.jsx(HA,{}),h.jsx(GA,{}),h.jsx(l3,{nodeStrokeColor:"hsl(var(--border))",nodeColor:"hsl(var(--card))",nodeBorderRadius:4}),n&&h.jsx(Ea,{position:"top-right",className:"m-4",children:h.jsxs(be,{className:"w-80",children:[h.jsxs(nt,{className:"pb-2",children:[h.jsx(lt,{className:"text-base",children:n.class_name}),h.jsx("code",{className:"text-xs text-muted-foreground break-all",children:n.full_class_name})]}),h.jsxs(ke,{className:"space-y-3",children:[h.jsxs("div",{className:"flex gap-2 flex-wrap",children:[h.jsxs(mt,{variant:"muted",children:[n.total_count," experiments"]}),n.success_count>0&&h.jsxs(mt,{variant:"success",children:[n.success_count," success"]}),n.running_count>0&&h.jsxs(mt,{variant:"info",children:[n.running_count," running"]}),n.failed_count>0&&h.jsxs(mt,{variant:"destructive",children:[n.failed_count," failed"]})]}),h.jsx("div",{className:"max-h-40 overflow-y-auto space-y-1",children:n.experiments.map(m=>h.jsxs(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:m.namespace,furu_hash:m.furu_hash},className:"flex items-center justify-between p-2 rounded hover:bg-muted text-sm",children:[h.jsxs("code",{className:"text-xs",children:[m.furu_hash.slice(0,12),"..."]}),h.jsx(mt,{variant:m.result_status==="success"?"success":m.result_status==="failed"?"destructive":m.attempt_status==="running"?"info":"muted",className:"text-xs",children:m.attempt_status??m.result_status})]},m.furu_hash))})]})]})})]})})}const g3={default:"border-border",success:"border-emerald-500/40",failed:"border-red-500/40",running:"border-blue-500/40"},y3={default:"text-foreground",success:"text-emerald-300",failed:"text-red-300",running:"text-blue-300"};function Vr({title:e,value:t,loading:n,variant:r="default",icon:s,testId:o}){return h.jsxs(be,{className:ze("p-5",g3[r]),"data-testid":o,children:[h.jsx(nt,{className:"p-0 pb-4",children:h.jsxs("div",{className:"flex items-center justify-between",children:[h.jsx("span",{className:"text-sm text-muted-foreground",children:e}),s?h.jsx(mt,{variant:"secondary",className:"text-base px-2 py-1",children:s}):null]})}),h.jsx(ke,{className:"p-0",children:h.jsx("div",{className:ze("text-3xl font-bold font-mono",y3[r]),"data-testid":o?`${o}-value`:void 0,children:n?"...":t.toLocaleString()})})]})}const x3=_o("/dag")({component:v3});function v3(){const{data:e,isLoading:t,error:n}=ZR();return h.jsxs("div",{className:"max-w-7xl mx-auto",children:[h.jsxs("div",{className:"mb-8",children:[h.jsx("h1",{className:"text-3xl font-bold mb-2",children:"Experiment DAG"}),h.jsx("p",{className:"text-muted-foreground",children:"Visualize the dependency graph of your experiments. Nodes represent experiment classes, edges show dependencies."})]}),e&&h.jsxs("div",{className:"grid grid-cols-3 gap-4 mb-6",children:[h.jsx(Vr,{title:"Classes",value:e.total_nodes,loading:t,icon:"N"}),h.jsx(Vr,{title:"Dependencies",value:e.total_edges,loading:t,icon:"E"}),h.jsx(Vr,{title:"Experiments",value:e.total_experiments,loading:t,icon:"#"})]}),t?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-muted-foreground",children:"Loading experiment graph..."})}):n?h.jsx(be,{children:h.jsx(ke,{className:"p-8 text-center text-destructive",children:"Error loading DAG. Is the API running?"})}):(e==null?void 0:e.nodes.length)===0?h.jsx(dw,{title:"No experiments found",description:"Create some experiments to see the dependency graph.",icon:"G"}):e?h.jsxs(be,{children:[h.jsxs(nt,{children:[h.jsx(lt,{children:"Dependency Graph"}),h.jsx("p",{className:"text-sm text-muted-foreground",children:"Click on a node to see details and highlight connected edges. Scroll to zoom, drag to pan."})]}),h.jsx(ke,{className:"p-0",children:h.jsx(m3,{nodes:e.nodes,edges:e.edges})})]}):null,e&&e.nodes.length>0&&h.jsxs(be,{className:"mt-6",children:[h.jsx(nt,{className:"pb-2",children:h.jsx(lt,{className:"text-sm",children:"Legend"})}),h.jsx(ke,{children:h.jsxs("div",{className:"flex flex-wrap gap-6 text-sm",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-green-500 rounded"}),h.jsx("span",{children:"All successful"})]}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-blue-500 rounded"}),h.jsx("span",{children:"Running experiments"})]}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-red-500 rounded"}),h.jsx("span",{children:"Has failures"})]}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("div",{className:"w-4 h-4 border-2 border-border rounded"}),h.jsx("span",{children:"Default"})]})]})})]})]})}const w3=_o("/")({component:S3});function S3(){const{data:e,isLoading:t}=LR(),{data:n,isLoading:r}=QR(),{data:s,isLoading:o}=cw({limit:5});return h.jsxs("div",{className:"max-w-6xl mx-auto",children:[h.jsxs("div",{className:"mb-8",children:[h.jsx("h1",{className:"text-3xl font-bold mb-2",children:"Dashboard"}),h.jsx("p",{className:"text-muted-foreground",children:"Monitor your Furu experiments in real-time"})]}),h.jsx(be,{className:"mb-8",children:h.jsxs(ke,{className:"flex items-center justify-between p-4",children:[h.jsxs("div",{className:"flex items-center gap-4",children:[h.jsx("span",{className:"text-muted-foreground",children:"API Status:"}),t?h.jsx(mt,{variant:"muted",children:"Checking..."}):(e==null?void 0:e.status)==="healthy"?h.jsxs(mt,{variant:"success",className:"gap-2",children:[h.jsx("span",{className:"h-2 w-2 rounded-full bg-emerald-300 animate-pulse"}),"Healthy"]}):h.jsx(mt,{variant:"destructive",children:"Disconnected"})]}),h.jsxs("span",{className:"text-muted-foreground text-sm font-mono",children:["v",(e==null?void 0:e.version)||"..."]})]})}),h.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 mb-8",children:[h.jsx(Vr,{title:"Total Experiments",value:(n==null?void 0:n.total)??0,loading:r,icon:"📊",testId:"stats-total"}),h.jsx(Vr,{title:"Running",value:(n==null?void 0:n.running_count)??0,loading:r,variant:"running",icon:"🔄",testId:"stats-running"}),h.jsx(Vr,{title:"Successful",value:(n==null?void 0:n.success_count)??0,loading:r,variant:"success",icon:"✓",testId:"stats-success"}),h.jsx(Vr,{title:"Failed",value:(n==null?void 0:n.failed_count)??0,loading:r,variant:"failed",icon:"✗",testId:"stats-failed"})]}),n&&n.by_result_status&&n.by_result_status.length>0&&h.jsxs(be,{className:"mb-8",children:[h.jsx(nt,{className:"pb-3",children:h.jsx(lt,{children:"Result Status Distribution"})}),h.jsx(ke,{children:h.jsx("div",{className:"flex flex-wrap gap-3",children:n.by_result_status.map(i=>h.jsxs("div",{className:"flex items-center gap-2 rounded-lg border bg-muted/40 px-3 py-2",children:[h.jsx(sn,{status:i.status,type:"result"}),h.jsx("span",{className:"font-mono text-sm",children:i.count})]},i.status))})})]}),h.jsxs(be,{className:"overflow-hidden",children:[h.jsxs(nt,{className:"flex-row items-center justify-between space-y-0 border-b",children:[h.jsx(lt,{children:"Recent Experiments"}),h.jsx(wn,{asChild:!0,variant:"ghost",size:"sm",children:h.jsx(Ue,{to:"/experiments",children:"View all →"})})]}),o?h.jsx("div",{className:"p-6 text-muted-foreground",children:"Loading..."}):(s==null?void 0:s.experiments.length)===0?h.jsx("div",{className:"p-6 text-muted-foreground",children:"No experiments yet"}):h.jsxs(Vh,{children:[h.jsx(Wh,{children:h.jsxs(Wi,{children:[h.jsx(Ke,{className:"pl-6",children:"Class"}),h.jsx(Ke,{children:"Namespace"}),h.jsx(Ke,{children:"Result"}),h.jsx(Ke,{children:"Migration"}),h.jsx(Ke,{children:"Attempt"}),h.jsx(Ke,{children:"Updated"})]})}),h.jsx(Kh,{children:s==null?void 0:s.experiments.map(i=>h.jsxs(Wi,{children:[h.jsx(qe,{className:"pl-6",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:i.namespace,furu_hash:i.furu_hash},className:"font-medium hover:text-primary",children:i.class_name})}),h.jsx(qe,{className:"font-mono text-sm text-muted-foreground",children:i.namespace}),h.jsx(qe,{children:h.jsx(sn,{status:i.result_status,type:"result"})}),h.jsx(qe,{children:i.migration_kind?h.jsx("span",{className:"text-xs rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-amber-300",children:i.migration_kind}):h.jsx("span",{className:"text-muted-foreground",children:"—"})}),h.jsx(qe,{children:i.attempt_status?h.jsx(sn,{status:i.attempt_status,type:"attempt"}):h.jsx("span",{className:"text-muted-foreground",children:"—"})}),h.jsx(qe,{className:"text-sm text-muted-foreground",children:i.updated_at?new Date(i.updated_at).toLocaleString():"—"})]},`${i.namespace}-${i.furu_hash}`))})]})]})]})}function _3({metadata:e}){const t=a=>{const l=e[a];return typeof l=="string"?l:null},n=t("git_commit"),r=t("git_branch"),s=t("hostname"),o=t("user"),i=t("furu_python_def");return h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Metadata"})}),h.jsxs(ke,{children:[h.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4 text-sm",children:[n?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Git Commit"}),h.jsx("code",{className:"font-mono text-xs",children:n})]}):null,r?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Git Branch"}),h.jsx("span",{children:r})]}):null,s?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Hostname"}),h.jsx("span",{children:s})]}):null,o?h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"User"}),h.jsx("span",{children:o})]}):null]}),i?h.jsxs("div",{className:"mt-4 border-t pt-4",children:[h.jsx("span",{className:"mb-2 block text-sm text-muted-foreground",children:"Python Definition"}),h.jsx("pre",{className:"rounded-lg bg-muted p-4 text-sm overflow-x-auto",children:h.jsx("code",{className:"text-emerald-300",children:i})})]}):null]})]})}function ta({value:e,depth:t=0}){if(e===null)return h.jsx("span",{className:"text-muted-foreground italic",children:"null"});if(typeof e=="boolean")return h.jsx("span",{className:e?"text-green-400":"text-red-400",children:String(e)});if(typeof e=="number")return h.jsx("span",{className:"text-blue-400",children:e});if(typeof e=="string")return h.jsxs("span",{className:"text-amber-300",children:['"',e,'"']});if(Array.isArray(e))return e.length===0?h.jsx("span",{className:"text-muted-foreground",children:"[]"}):h.jsxs("div",{className:"ml-4",children:[h.jsx("span",{className:"text-muted-foreground",children:"["}),e.map((n,r)=>h.jsxs("div",{className:"ml-4",children:[h.jsx(ta,{value:n,depth:t+1}),r<e.length-1&&h.jsx("span",{className:"text-muted-foreground",children:","})]},r)),h.jsx("span",{className:"text-muted-foreground",children:"]"})]});if(typeof e=="object"){const n=Object.entries(e);return n.length===0?h.jsx("span",{className:"text-muted-foreground",children:"{}"}):h.jsx("div",{className:t>0?"ml-4":"",children:n.map(([r,s],o)=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"text-purple-400 mr-1",children:[r,":"]}),h.jsx(ta,{value:s,depth:t+1}),o<n.length-1&&h.jsx("span",{className:"text-muted-foreground",children:","})]},r))})}return h.jsx("span",{children:String(e)})}function Ey({title:e,children:t,defaultOpen:n=!1}){const[r,s]=R.useState(n);return h.jsxs("div",{className:"border rounded-lg mb-2",children:[h.jsxs("button",{onClick:()=>s(!r),className:"w-full px-4 py-2 text-left flex items-center justify-between hover:bg-muted/50 rounded-lg",children:[h.jsx("span",{className:"font-medium text-sm",children:e}),h.jsx("span",{className:"text-muted-foreground",children:r?"−":"+"})]}),r&&h.jsx("div",{className:"px-4 pb-4 pt-2",children:t})]})}function b3({furuObj:e,parents:t}){const n=[],r=[];for(const[a,l]of Object.entries(e))a!=="__class__"&&(l&&typeof l=="object"&&!Array.isArray(l)&&"__class__"in l?r.push([a,l]):n.push([a,l]));const s=new Map((t==null?void 0:t.map(a=>[a.field_name,a]))??[]),o=n.length>0,i=r.length>0;return!o&&!i?h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Configuration"})}),h.jsx(ke,{children:h.jsx("p",{className:"text-muted-foreground text-sm",children:"No configuration parameters"})})]}):h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Configuration"})}),h.jsxs(ke,{children:[o&&h.jsx(Ey,{title:"Parameters",defaultOpen:!0,children:h.jsx("div",{className:"font-mono text-sm space-y-1",children:n.map(([a,l])=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"text-purple-400 mr-2 min-w-fit",children:[a,":"]}),h.jsx(ta,{value:l})]},a))})}),i&&h.jsx(Ey,{title:"Dependencies (Embedded Config)",children:h.jsx("div",{className:"space-y-3",children:r.map(([a,l])=>{const u=s.get(a),d=(u==null?void 0:u.namespace)&&(u==null?void 0:u.furu_hash);return h.jsxs("div",{className:"border-l-2 border-muted pl-3",children:[h.jsxs("div",{className:"text-sm mb-1 flex items-center justify-between",children:[h.jsxs("div",{className:"flex items-center",children:[h.jsx("span",{className:"text-purple-400 font-medium",children:a}),h.jsx("span",{className:"text-muted-foreground mx-1",children:":"}),d?h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:u.namespace,furu_hash:u.furu_hash},className:"text-cyan-400 hover:underline",children:l.__class__}):h.jsx("span",{className:"text-cyan-400",children:l.__class__})]}),(u==null?void 0:u.result_status)&&h.jsx(sn,{status:u.result_status,type:"result"})]}),h.jsx("div",{className:"font-mono text-xs space-y-0.5 text-muted-foreground",children:Object.entries(l).filter(([c])=>c!=="__class__").map(([c,f])=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"mr-1",children:[c,":"]}),h.jsx(ta,{value:f,depth:1})]},c))})]},a)})})})]})]})}function E3({parents:e}){return e.length===0?null:h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Parent Experiments"})}),h.jsx(ke,{children:h.jsx("div",{className:"space-y-3",children:e.map((t,n)=>h.jsxs("div",{className:"border rounded-lg p-3",children:[h.jsxs("div",{className:"flex items-center justify-between mb-2",children:[h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsx("span",{className:"text-purple-400 font-medium text-sm",children:t.field_name}),h.jsx("span",{className:"text-muted-foreground",children:":"}),h.jsx("span",{className:"text-cyan-400 text-sm",children:t.class_name})]}),t.result_status&&h.jsx(sn,{status:t.result_status,type:"result"})]}),t.namespace&&t.furu_hash?h.jsxs(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:t.namespace,furu_hash:t.furu_hash},className:"text-sm text-primary hover:underline flex items-center gap-1",children:[h.jsx("span",{children:"View experiment"}),h.jsxs("span",{className:"text-muted-foreground font-mono text-xs",children:["(",t.furu_hash.slice(0,8),"...)"]})]}):h.jsx("span",{className:"text-sm text-muted-foreground italic",children:"Experiment not found in storage"}),t.config&&Object.keys(t.config).length>0&&h.jsxs("details",{className:"mt-2",children:[h.jsx("summary",{className:"text-xs text-muted-foreground cursor-pointer hover:text-foreground",children:"Show config"}),h.jsx("div",{className:"mt-1 font-mono text-xs pl-2 border-l border-muted",children:Object.entries(t.config).map(([r,s])=>h.jsxs("div",{className:"flex",children:[h.jsxs("span",{className:"text-muted-foreground mr-1",children:[r,":"]}),h.jsx(ta,{value:s,depth:1})]},r))})]})]},`${t.field_name}-${n}`))})})]})}function C3({children:e}){return e.length===0?null:h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsxs(lt,{children:["Child Experiments (",e.length,")"]})}),h.jsx(ke,{children:h.jsx("div",{className:"space-y-2",children:e.map((t,n)=>h.jsxs("div",{className:"border rounded-lg p-3 flex items-center justify-between",children:[h.jsx("div",{className:"flex items-center gap-3",children:h.jsxs("div",{children:[h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:{namespace:t.namespace,furu_hash:t.furu_hash},className:"text-primary hover:underline font-medium",children:t.class_name}),h.jsxs("div",{className:"text-xs text-muted-foreground",children:["via"," ",h.jsx("span",{className:"text-purple-400",children:t.field_name})]})]})}),h.jsxs("div",{className:"flex items-center gap-2",children:[h.jsxs("code",{className:"text-xs text-muted-foreground font-mono",children:[t.furu_hash.slice(0,8),"..."]}),h.jsx(sn,{status:t.result_status,type:"result"})]})]},`${t.namespace}-${t.furu_hash}-${n}`))})})]})}const Z1=_o("/experiments_/$namespace/$furu_hash")({component:N3});function N3(){var f,m,p;const{namespace:e,furu_hash:t}=Z1.useParams(),[n,r]=R.useState("resolved"),{data:s,isLoading:o,error:i}=VR(e,t,{view:n}),{data:a}=$R(e,t,{view:n}),l=!!(s!=null&&s.migration_kind),u=R.useMemo(()=>s!=null&&s.original_namespace&&(s!=null&&s.original_hash)?{namespace:s.original_namespace,furu_hash:s.original_hash}:s!=null&&s.from_namespace&&(s!=null&&s.from_hash)?{namespace:s.from_namespace,furu_hash:s.from_hash}:null,[s==null?void 0:s.original_namespace,s==null?void 0:s.original_hash,s==null?void 0:s.from_namespace,s==null?void 0:s.from_hash]),d=R.useMemo(()=>!(s!=null&&s.alias_namespaces)||!(s!=null&&s.alias_hashes)?[]:s.alias_namespaces.map((x,w)=>{var g;return{namespace:x,furu_hash:((g=s.alias_hashes)==null?void 0:g[w])??""}}),[s==null?void 0:s.alias_namespaces,s==null?void 0:s.alias_hashes]);if(o)return h.jsx("div",{className:"max-w-5xl mx-auto",children:h.jsx("div",{className:"text-muted-foreground",children:"Loading experiment..."})});if(i||!s)return h.jsx("div",{className:"max-w-5xl mx-auto",children:h.jsx(be,{className:"border-destructive/40",children:h.jsxs(ke,{className:"p-6 text-center",children:[h.jsx("h2",{className:"mb-2 text-xl font-bold text-destructive",children:"Experiment Not Found"}),h.jsx("p",{className:"mb-4 text-muted-foreground",children:"The experiment you're looking for doesn't exist or has been removed."}),h.jsx(wn,{asChild:!0,variant:"ghost",children:h.jsx(Ue,{to:"/experiments",children:"Back to experiments"})})]})})});const c=s.metadata&&typeof s.metadata=="object"&&"furu_obj"in s.metadata?s.metadata.furu_obj:null;return h.jsxs("div",{className:"max-w-5xl mx-auto",children:[h.jsxs("div",{className:"mb-6 text-sm",children:[h.jsx(Ue,{to:"/experiments",className:"text-muted-foreground hover:text-primary",children:"Experiments"}),h.jsx("span",{className:"mx-2 text-muted-foreground",children:"/"}),h.jsx("span",{className:"text-foreground",children:s.class_name})]}),h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{className:"pb-4",children:h.jsxs("div",{className:"flex items-start justify-between",children:[h.jsxs("div",{children:[h.jsx(lt,{className:"text-2xl",children:s.class_name}),h.jsx("p",{className:"text-sm font-mono text-muted-foreground",children:s.namespace})]}),h.jsxs("div",{className:"flex flex-col items-end gap-2",children:[h.jsxs("div",{className:"flex gap-2",children:[h.jsx(sn,{status:s.result_status,type:"result"}),s.attempt_status?h.jsx(sn,{status:s.attempt_status,type:"attempt"}):null]}),l?h.jsx("span",{className:"rounded-full border border-amber-500/40 bg-amber-500/10 px-2 py-0.5 text-xs text-amber-300",children:s.migration_kind}):null]})]})}),h.jsxs(ke,{className:"space-y-4",children:[l&&h.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs",children:[h.jsxs("div",{className:"rounded-full border border-muted px-3 py-1 text-muted-foreground",children:["View: ",n]}),h.jsxs("div",{className:"flex rounded-full border border-muted overflow-hidden",children:[h.jsx("button",{className:`px-3 py-1 text-xs ${n==="resolved"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>r("resolved"),children:"Aliased"}),h.jsx("button",{className:`px-3 py-1 text-xs ${n==="original"?"bg-primary text-primary-foreground":"text-muted-foreground"}`,onClick:()=>r("original"),disabled:!u,children:"Original"})]}),u?h.jsx(wn,{asChild:!0,size:"sm",variant:"ghost",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:u,children:"View original"})}):null,s.original_result_status?h.jsxs("span",{className:"text-muted-foreground",children:["Original status: ",s.original_result_status]}):null]}),d.length>0&&h.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs",children:[h.jsxs("div",{className:"rounded-full border border-muted px-3 py-1 text-muted-foreground",children:["Aliases: ",d.length]}),h.jsx("div",{className:"flex flex-wrap gap-2",children:d.map(x=>h.jsx(wn,{asChild:!0,size:"sm",variant:"ghost",children:h.jsx(Ue,{to:"/experiments/$namespace/$furu_hash",params:x,"aria-label":"View alias",children:"View alias"})},x.furu_hash))})]}),h.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-4 text-sm",children:[h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Hash"}),h.jsx("code",{className:"font-mono",children:s.furu_hash})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Attempt #"}),h.jsx("span",{children:s.attempt_number??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Started"}),h.jsx("span",{children:s.started_at?new Date(s.started_at).toLocaleString():"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Updated"}),h.jsx("span",{children:s.updated_at?new Date(s.updated_at).toLocaleString():"—"})]})]})]})]}),c&&h.jsx(b3,{furuObj:c,parents:a==null?void 0:a.parents}),(a==null?void 0:a.parents)&&a.parents.length>0&&h.jsx(E3,{parents:a.parents}),(a==null?void 0:a.children)&&a.children.length>0&&h.jsx(C3,{children:a.children}),s.attempt&&h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Current Attempt"})}),h.jsxs(ke,{children:[h.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-3 gap-4 text-sm",children:[h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"ID"}),h.jsx("code",{className:"font-mono text-xs",children:s.attempt.id})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Backend"}),h.jsx("span",{children:s.attempt.backend})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Status"}),h.jsx(sn,{status:s.attempt.status,type:"attempt"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Host"}),h.jsx("span",{children:((f=s.attempt.owner)==null?void 0:f.host)??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"PID"}),h.jsx("span",{className:"font-mono",children:((m=s.attempt.owner)==null?void 0:m.pid)??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"User"}),h.jsx("span",{children:((p=s.attempt.owner)==null?void 0:p.user)??"—"})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Started At"}),h.jsx("span",{children:new Date(s.attempt.started_at).toLocaleString()})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Last Heartbeat"}),h.jsx("span",{children:new Date(s.attempt.heartbeat_at).toLocaleString()})]}),h.jsxs("div",{children:[h.jsx("span",{className:"text-muted-foreground block",children:"Lease Expires"}),h.jsx("span",{children:new Date(s.attempt.lease_expires_at).toLocaleString()})]})]}),s.attempt.reason?h.jsxs("div",{className:"mt-4 border-t pt-4",children:[h.jsx("span",{className:"block text-sm text-muted-foreground",children:"Reason"}),h.jsx("span",{className:"text-amber-300",children:s.attempt.reason})]}):null,s.attempt.error?h.jsxs("div",{className:"mt-4 border-t pt-4",children:[h.jsx("span",{className:"block text-sm text-muted-foreground",children:"Error"}),h.jsxs("div",{className:"mt-2 rounded-lg border border-destructive/30 bg-destructive/10 p-3",children:[h.jsxs("div",{className:"font-mono text-sm text-destructive",children:[s.attempt.error.type,": ",s.attempt.error.message]}),s.attempt.error.traceback?h.jsxs("details",{className:"mt-3",children:[h.jsx("summary",{className:"cursor-pointer text-xs text-muted-foreground hover:text-foreground",children:"View traceback"}),h.jsx("pre",{className:"mt-2 max-h-96 overflow-auto rounded bg-muted p-3 text-xs",children:h.jsx("code",{className:"text-muted-foreground",children:s.attempt.error.traceback})})]}):null]})]}):null]})]}),s.metadata&&h.jsx(_3,{metadata:s.metadata}),h.jsxs(be,{className:"mb-6",children:[h.jsx(nt,{children:h.jsx(lt,{children:"Directory"})}),h.jsx(ke,{children:h.jsx("code",{className:"break-all font-mono text-sm text-muted-foreground",children:s.directory})})]}),h.jsxs("details",{className:"rounded-lg border bg-card",children:[h.jsx("summary",{className:"cursor-pointer px-6 py-4 text-muted-foreground hover:text-foreground",children:"View Raw State JSON"}),h.jsx("div",{className:"px-6 pb-6",children:h.jsx("pre",{className:"max-h-96 overflow-x-auto rounded-lg bg-muted p-4 text-sm",children:h.jsx("code",{className:"text-muted-foreground",children:JSON.stringify(s.state,null,2)})})})]})]})}const k3=ij.update({id:"/experiments",path:"/experiments",getParentRoute:()=>ya}),P3=x3.update({id:"/dag",path:"/dag",getParentRoute:()=>ya}),R3=w3.update({id:"/",path:"/",getParentRoute:()=>ya}),j3=Z1.update({id:"/experiments_/$namespace/$furu_hash",path:"/experiments/$namespace/$furu_hash",getParentRoute:()=>ya}),M3={IndexRoute:R3,DagRoute:P3,ExperimentsRoute:k3,ExperimentsNamespaceFuru_hashRoute:j3},T3=ya._addFileChildren(M3)._addFileTypes(),L3=new ZE({defaultOptions:{queries:{refetchInterval:5e3,staleTime:2e3,retry:(e,t)=>{var n;if(t instanceof DP&&((n=t.response)!=null&&n.status)){const r=t.response.status;if(r>=400&&r<500)return!1}return e<3}}}}),I3=ok({routeTree:T3});Gx(document.getElementById("root")).render(h.jsx(R.StrictMode,{children:h.jsx(eC,{client:L3,children:h.jsx(lk,{router:I3})})}));
|