@dudousxd/nestjs-durable-dashboard 0.33.0 → 0.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/spa/assets/{index-D3Oc1CoF.js → index-BPj3eN30.js} +9 -9
- package/dist/spa/assets/index-EP2O5ZfT.css +1 -0
- package/dist/spa/assets/{preview-BliW2yHl.js → preview-Da-rD4KB.js} +1 -1
- package/dist/spa/index.html +3 -3
- package/dist/spa/preview.html +3 -3
- package/package.json +2 -2
- package/dist/spa/assets/index-pki5m5-q.css +0 -1
- /package/dist/spa/assets/{index-BBKhxB-y.js → index-vYlHyRGm.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var zr=e=>{throw TypeError(e)};var $n=(e,t,n)=>t.has(e)||zr("Cannot "+n);var ne=(e,t,n)=>($n(e,t,"read from private field"),n?n.call(e):t.get(e)),Be=(e,t,n)=>t.has(e)?zr("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ve=(e,t,n,r)=>($n(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),qe=(e,t,n)=>($n(e,t,"access private method"),n);import{S as La,s as Ha,h as Ir,g as Fa,n as Bs,u as an,r as $,a as Oa,b as Ba,c as Xt,i as Vs,j as c,K as On,X as Ue,B as ar,d as Va,e as we,R as qa,C as qs,f as Xa,k as ie,l as Ya,m as Wa,o as Ka,p as Ga,q as Ua,t as Za,v as cr,P as Qa,w as Mn,x as Ja,Q as ec,y as tc,z as nc}from"./index-BBKhxB-y.js";var Ae,Pe,ae,ye,_e,Ft,Bn,Os,rc=(Os=class extends La{constructor(t,n){super();Be(this,_e);Be(this,Ae);Be(this,Pe);Be(this,ae);Be(this,ye);Ve(this,Ae,t),this.setOptions(n),this.bindMethods(),qe(this,_e,Ft).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){var r;const n=this.options;this.options=ne(this,Ae).defaultMutationOptions(t),Ha(this.options,n)||ne(this,Ae).getMutationCache().notify({type:"observerOptionsUpdated",mutation:ne(this,ae),observer:this}),n!=null&&n.mutationKey&&this.options.mutationKey&&Ir(n.mutationKey)!==Ir(this.options.mutationKey)?this.reset():((r=ne(this,ae))==null?void 0:r.state.status)==="pending"&&ne(this,ae).setOptions(this.options)}onUnsubscribe(){var t;this.hasListeners()||(t=ne(this,ae))==null||t.removeObserver(this)}onMutationUpdate(t){qe(this,_e,Ft).call(this),qe(this,_e,Bn).call(this,t)}getCurrentResult(){return ne(this,Pe)}reset(){var t;(t=ne(this,ae))==null||t.removeObserver(this),Ve(this,ae,void 0),qe(this,_e,Ft).call(this),qe(this,_e,Bn).call(this)}mutate(t,n){var r;return Ve(this,ye,n),(r=ne(this,ae))==null||r.removeObserver(this),Ve(this,ae,ne(this,Ae).getMutationCache().build(ne(this,Ae),this.options)),ne(this,ae).addObserver(this),ne(this,ae).execute(t)}},Ae=new WeakMap,Pe=new WeakMap,ae=new WeakMap,ye=new WeakMap,_e=new WeakSet,Ft=function(){var n;const t=((n=ne(this,ae))==null?void 0:n.state)??Fa();Ve(this,Pe,{...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset})},Bn=function(t){Bs.batch(()=>{var n,r,s,i,o,a,l,u;if(ne(this,ye)&&this.hasListeners()){const d=ne(this,Pe).variables,f=ne(this,Pe).context;(t==null?void 0:t.type)==="success"?((r=(n=ne(this,ye)).onSuccess)==null||r.call(n,t.data,d,f),(i=(s=ne(this,ye)).onSettled)==null||i.call(s,t.data,null,d,f)):(t==null?void 0:t.type)==="error"&&((a=(o=ne(this,ye)).onError)==null||a.call(o,t.error,d,f),(u=(l=ne(this,ye)).onSettled)==null||u.call(l,void 0,t.error,d,f))}this.listeners.forEach(d=>{d(ne(this,Pe))})})},Os);function Xe(e,t){const n=an(),[r]=$.useState(()=>new rc(n,e));$.useEffect(()=>{r.setOptions(e)},[r,e]);const s=$.useSyncExternalStore($.useCallback(o=>r.subscribe(Bs.batchCalls(o)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),i=$.useCallback((o,a)=>{r.mutate(o,a).catch(Oa)},[r]);if(s.error&&Ba(r.options.throwOnError,[s.error]))throw s.error;return{...s,mutate:i,mutateAsync:s.mutate}}const Ar="compensate:";function sc(e){return e.startsWith(Ar)?e.slice(Ar.length):e}function ic(e){const t=[],n=[];for(const r of e)r.seq<0?n.push(r):t.push(r);return n.sort((r,s)=>s.seq-r.seq),{body:t,compensations:n}}function oc(e){let t=0,n=0,r=0;for(const s of e)s.status==="completed"?t++:s.status==="failed"?n++:r++;return{total:e.length,done:t,failed:n,pending:r}}function Yt(e){const t=e.lastIndexOf("@");return t===-1?"default":e.slice(t+1)}function Vn(e){const t=e.lastIndexOf("@");return t===-1?e:e.slice(0,t)}function ac(e){const t=new Map;for(const r of e){const s=Yt(r.group),i=t.get(s);i?i.push(r):t.set(s,[r])}return[...t.entries()].map(([r,s])=>{const i=new Set;let o=0,a=0;for(const l of s){o+=l.depth,l.depth>0&&l.liveWorkers.length===0&&(a+=1);for(const u of l.liveWorkers)i.add(u.instanceId)}return{partition:r,workerCount:i.size,handlerCount:s.length,totalDepth:o,starvedCount:a}}).sort((r,s)=>r.partition==="default"?-1:s.partition==="default"?1:r.partition.localeCompare(s.partition))}function cc(e,t){if(!e)return t;const n=new Map(e.timeline.map(r=>[r.seq,r]));return{...t,timeline:t.timeline.map(r=>{var i,o;if((r.status==="pending"||r.status==="running")&&(((i=r.events)==null?void 0:i.length)??0)===0){const a=(o=n.get(r.seq))==null?void 0:o.events;if(a!=null&&a.length)return{...r,events:a}}return r})}}function lc(e){var n,r;const t=new Map;for(const s of e)for(const i of s.liveWorkers){const o=Vn(i.group),a=t.get(i.instanceId);if(a===void 0){t.set(i.instanceId,{instanceId:i.instanceId,partition:Yt(i.group),runtime:(n=i.status)==null?void 0:n.runtime,handlers:new Set([o]),status:i.status,lastBeatAt:i.lastBeatAt});continue}a.handlers.add(o),i.lastBeatAt>=a.lastBeatAt&&(a.lastBeatAt=i.lastBeatAt,a.partition=Yt(i.group),a.runtime=(r=i.status)==null?void 0:r.runtime,a.status=i.status)}return[...t.values()].map(s=>({instanceId:s.instanceId,partition:s.partition,runtime:s.runtime,handlers:[...s.handlers].sort((i,o)=>i.localeCompare(o)),status:s.status,lastBeatAt:s.lastBeatAt})).sort((s,i)=>s.partition!==i.partition?s.partition==="default"?-1:i.partition==="default"?1:s.partition.localeCompare(i.partition):s.instanceId.localeCompare(i.instanceId))}function uc(e){const t=new Set,n=new Set,r=new Set;for(const i of e){for(const o of i.liveWorkers)t.add(o.instanceId);i.kind==="workflow"?n.add(Vn(i.group)):i.kind==="step"&&r.add(Vn(i.group))}const s=e.filter(i=>i.depth>0&&i.liveWorkers.length===0).sort((i,o)=>o.depth-i.depth);return{queueCount:e.length,workflowCount:n.size,stepCount:r.size,workerCount:t.size,starved:s,allDraining:s.length===0}}function Wt(e){return e<1e3?`${Math.round(e)}ms`:e<6e4?`${(e/1e3).toFixed(2)}s`:`${(e/6e4).toFixed(2)}m`}function Pr(e,t){return Wt(new Date(t).getTime()-new Date(e).getTime())}function Tr(e){return lr(new Date(e).getTime())}function lr(e){return new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})}const Xs={ok:"border-emerald-500/25 bg-emerald-500/10 text-emerald-300",failed:"border-red-500/25 bg-red-500/10 text-red-300",skipped:"border-amber-500/25 bg-amber-500/10 text-amber-300"},dc={debug:"text-zinc-500",info:"text-zinc-300",warn:"text-amber-300",error:"text-red-300"},fc=["ok","failed","skipped"];function Ys({e}){return c.jsxs("div",{className:"flex gap-2 py-0.5",children:[c.jsx("span",{className:"shrink-0 text-zinc-600 tnum",children:lr(e.at)}),c.jsx("span",{className:`shrink-0 uppercase ${dc[e.level]}`,children:e.level}),c.jsx("span",{className:"min-w-0 break-words text-zinc-300",children:e.message})]})}function Dr({sub:e,showGroup:t=!0}){var a,l;const n=((a=e.terminal)==null?void 0:a.message)!==void 0&&e.terminal.message!==e.name,r=e.phases.length>0||e.logs.length>0||n,[s,i]=$.useState(e.status==="failed"),o=e.status?Xs[e.status]:"border-amber-500/25 bg-amber-500/10 text-amber-300";return c.jsxs("li",{className:`rounded-md border ${o}`,children:[c.jsxs("button",{type:"button",disabled:!r,onClick:()=>i(u=>!u),className:"flex w-full items-center justify-between gap-2 px-2.5 py-1.5 text-left text-[11.5px] disabled:cursor-default","aria-expanded":r?s:void 0,children:[c.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[r&&c.jsx("span",{className:`text-[9px] text-zinc-500 transition-transform duration-150 ${s?"":"-rotate-90"}`,children:"▼"}),c.jsx("span",{className:"mono truncate text-zinc-200",children:e.name}),t&&e.group&&c.jsx("span",{className:"mono shrink-0 text-[10px] uppercase tracking-wider text-zinc-500",children:e.group})]}),c.jsxs("span",{className:"mono flex shrink-0 items-center gap-2 text-[10px] uppercase tracking-wider",children:[e.durationMs!==void 0&&c.jsx("span",{className:"tnum text-zinc-400",children:Wt(e.durationMs)}),c.jsx("span",{children:e.status??"running"})]})]}),s&&c.jsxs("div",{className:"border-t border-[var(--line)]/60 px-2.5 py-2",children:[e.phases.length>0&&c.jsx("ul",{className:"mono mb-2 flex flex-col gap-0.5 text-[10.5px]",children:e.phases.map((u,d)=>c.jsxs("li",{className:"flex gap-2",children:[c.jsx("span",{className:"shrink-0 text-zinc-600 tnum",children:lr(u.at)}),c.jsx("span",{className:"text-zinc-400",children:u.phase}),e.startedAt!==void 0&&c.jsxs("span",{className:"text-zinc-600 tnum",children:["+",Wt(u.at-e.startedAt)]})]},`${u.at}-${u.phase}-${d}`))}),((l=e.terminal)==null?void 0:l.message)&&e.terminal.message!==e.name&&c.jsx("div",{className:`mono mb-2 rounded border p-2 text-[11px] ${e.status==="failed"?"border-red-500/25 bg-red-500/10 text-red-200":"border-[var(--line)] bg-black/20 text-zinc-300"}`,children:e.terminal.message}),e.logs.length>0&&c.jsx("div",{className:"mono flex flex-col gap-0.5 text-[11px]",children:e.logs.map((u,d)=>c.jsx(Ys,{e:u},`${u.at}-${d}`))})]})]})}function hc({events:e}){const{subs:t,stepLogs:n}=Va(e),r=fc.map(i=>[i,t.filter(o=>o.status===i).length]).filter(([,i])=>i>0),s=t.some(i=>i.group);return c.jsxs(c.Fragment,{children:[t.length>0&&c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[c.jsxs("span",{className:"mono text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:["sub-processes · ",t.length]}),c.jsx("span",{className:"mono flex gap-2 text-[10px] uppercase tracking-wider",children:r.map(([i,o])=>c.jsxs("span",{className:Xs[i].split(" ").pop(),children:[o," ",i]},i))})]}),s?Object.entries(t.reduce((i,o)=>{const a=o.group??"—";return i[a]===void 0&&(i[a]=[]),i[a].push(o),i},{})).sort(([i],[o])=>i==="—"?1:o==="—"?-1:i.localeCompare(o)).map(([i,o])=>c.jsxs("div",{className:"mb-2",children:[c.jsx("div",{className:"mono mb-1 text-[10px] uppercase tracking-wider text-zinc-500",children:i}),c.jsx("ul",{className:"flex flex-col gap-1",children:o.map(a=>c.jsx(Dr,{sub:a,showGroup:!1},a.id))})]},i)):c.jsx("ul",{className:"flex flex-col gap-1",children:t.map(i=>c.jsx(Dr,{sub:i},i.id))})]}),n.length>0&&c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mono mb-1.5 text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:["logs · ",n.length]}),c.jsx("div",{className:"mono max-h-64 overflow-auto rounded-lg border border-[var(--line)] bg-black/40 p-2.5 text-[11px] leading-relaxed",children:n.map((i,o)=>c.jsx(Ys,{e:i},`${i.at}-${o}`))})]})]})}function pc({value:e}){const[t,n]=$.useState(!1);return c.jsxs("button",{type:"button",className:"flex items-center gap-1 rounded border border-[var(--line)] px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-zinc-500 transition-colors hover:text-zinc-200",onClick:async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1200)}catch{}},children:[t?c.jsx(qs,{width:11,height:11}):c.jsx(Xa,{width:11,height:11}),t?"copied":"copy"]})}function Kt({label:e,value:t}){const n=typeof t=="string"?t:JSON.stringify(t,null,2);return c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[c.jsx("span",{className:"mono text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:e}),c.jsx(pc,{value:n})]}),c.jsx("pre",{className:"mono max-h-64 overflow-auto rounded-lg border border-[var(--line)] bg-black/40 p-3 text-[11.5px] leading-relaxed text-zinc-300",children:n})]})}function Ce({k:e,v:t,mono:n=!0}){return c.jsxs("div",{className:"flex items-baseline justify-between gap-3 py-1.5",children:[c.jsx("span",{className:"mono shrink-0 text-[10px] uppercase tracking-[0.16em] text-zinc-600",children:e}),c.jsx("span",{className:`truncate text-right text-[12px] text-zinc-200 ${n?"mono tnum":""}`,children:t})]})}function gc({id:e,onOpenRun:t}){const{data:n}=we({queryKey:["run",e],queryFn:()=>ie.run(e)}),[r,s]=$.useState(new Set),i=o=>s(a=>{const l=new Set(a);return l.has(o)?l.delete(o):l.add(o),l});return n?n.timeline.length===0?c.jsxs("div",{className:"mono px-2 py-2 text-[10px] text-zinc-600",children:["no steps recorded yet — child ",n.run.status]}):c.jsx("div",{className:"mt-2 max-h-80 space-y-1 overflow-auto rounded-md border border-[var(--line)] bg-black/20 p-1.5",children:c.jsx(qa,{run:n.run,timeline:n.timeline,depth:0,onSelect:()=>{},onOpenRun:t??(()=>{}),expanded:r,onToggleChild:i})}):c.jsx("div",{className:"mono px-2 py-2 text-[10px] text-zinc-600",children:"loading child run…"})}function mc({step:e,run:t,onClose:n,onOpenRun:r}){const s=Xt(e),[i,o]=$.useState(!1),a=e.status==="failed",l=e.status==="pending"||e.status==="running",u=Vs(e.kind),d=Pr(t.createdAt,e.startedAt),f=e.enqueuedAt?new Date(e.startedAt).getTime()-new Date(e.enqueuedAt).getTime():0;return c.jsxs("aside",{className:"absolute inset-y-0 right-0 z-20 flex w-[380px] max-w-[90%] flex-col border-l border-[var(--line)] bg-[var(--panel)]/95 shadow-2xl backdrop-blur-md rise",children:[c.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-[var(--line)] px-5 py-4",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`grid h-6 w-6 shrink-0 place-items-center rounded-md ${a?"bg-red-500/15 text-red-300":l?"bg-amber-500/15 text-amber-300":"bg-emerald-500/15 text-emerald-300"}`,children:c.jsx(u,{width:13,height:13})}),c.jsx("h3",{className:"truncate text-[15px] font-semibold tracking-tight text-zinc-50",children:e.name})]}),c.jsxs("div",{className:`mono mt-1 text-[11px] uppercase tracking-wider s-${e.status}`,children:[e.status," · ",On[e.kind]??e.kind]})]}),c.jsx("button",{type:"button",onClick:n,className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-[var(--line)] text-zinc-500 transition-colors hover:text-zinc-200","aria-label":"Close",children:c.jsx(Ue,{})})]}),c.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-auto px-5 py-4",children:[c.jsxs("div",{className:"rounded-lg border border-[var(--line)] bg-black/20 px-3.5 py-1",children:[c.jsx(Ce,{k:"seq",v:`#${e.seq}`}),f>=1&&c.jsx(Ce,{k:"queued",v:c.jsx("span",{className:"text-sky-300",children:Wt(f)})}),c.jsx(Ce,{k:"duration",v:l?c.jsx("span",{className:"text-amber-300",children:"running…"}):Pr(e.startedAt,e.finishedAt)}),c.jsx(Ce,{k:"attempts",v:c.jsxs("span",{className:e.attempts>1?"text-amber-300":"",children:[e.attempts>1&&c.jsx(ar,{width:11,height:11,className:"mr-1 inline"}),e.attempts]})}),e.workerGroup&&c.jsx(Ce,{k:"worker",v:`@${e.workerGroup}`}),c.jsx(Ce,{k:"started",v:Tr(e.startedAt)}),c.jsx(Ce,{k:"finished",v:Tr(e.finishedAt)}),c.jsx(Ce,{k:"offset",v:`+${d}`})]}),a&&e.error&&c.jsxs("section",{className:"rise",children:[c.jsx("div",{className:"mono mb-1.5 text-[10px] uppercase tracking-[0.18em] text-red-400/80",children:"error"}),c.jsx("div",{className:"mono rounded-lg border border-red-500/25 bg-red-500/10 p-3 text-[11.5px] leading-relaxed text-red-200",children:e.error.message})]}),e.events&&e.events.length>0&&c.jsx(hc,{events:e.events}),s&&c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[c.jsx("span",{className:"mono text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:"child run"}),r&&c.jsx("button",{type:"button",onClick:()=>r(s),className:"mono rounded border border-[var(--line)] px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-zinc-500 transition-colors hover:text-zinc-200",children:"open ↗"})]}),c.jsxs("button",{type:"button",onClick:()=>o(h=>!h),className:"flex w-full items-center gap-2 rounded-md border border-indigo-500/30 bg-indigo-500/10 px-2.5 py-1.5 text-left transition-colors hover:bg-indigo-500/20",title:i?"Collapse child run":"Expand child run inline",children:[c.jsx("span",{className:"inline-block text-[9px] text-indigo-300 transition-transform",style:{transform:i?"rotate(90deg)":"rotate(0deg)"},children:"▸"}),c.jsx("span",{className:"mono truncate text-[11px] text-indigo-300",children:s})]}),i&&c.jsx(gc,{id:s,onOpenRun:r})]}),e.input!==void 0&&c.jsx(Kt,{label:"input",value:e.input}),e.output!==void 0&&c.jsx(Kt,{label:"output",value:e.output})]})]})}function xc({run:e,onClose:t}){const n=e.input===void 0&&e.output===void 0&&!e.error;return c.jsxs("aside",{className:"absolute inset-y-0 right-0 z-30 flex w-[380px] max-w-[90%] flex-col border-l border-[var(--line)] bg-[var(--panel)]/95 shadow-2xl backdrop-blur-md rise",children:[c.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-[var(--line)] px-5 py-4",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsx("h3",{className:"truncate text-[15px] font-semibold tracking-tight text-zinc-50",children:e.workflow}),c.jsxs("div",{className:`mono mt-1 text-[11px] uppercase tracking-wider s-${e.status}`,children:["run · ",e.status]})]}),c.jsx("button",{type:"button",onClick:t,className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-[var(--line)] text-zinc-500 transition-colors hover:text-zinc-200","aria-label":"Close",children:c.jsx(Ue,{})})]}),c.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-auto px-5 py-4",children:[e.error&&c.jsxs("section",{className:"rise",children:[c.jsx("div",{className:"mono mb-1.5 text-[10px] uppercase tracking-[0.18em] text-red-400/80",children:"error"}),c.jsx("div",{className:"mono rounded-lg border border-red-500/25 bg-red-500/10 p-3 text-[11.5px] leading-relaxed text-red-200",children:e.error.message})]}),e.input!==void 0&&c.jsx(Kt,{label:"input",value:e.input}),e.output!==void 0&&c.jsx(Kt,{label:"output",value:e.output}),n&&c.jsx("div",{className:"text-sm text-zinc-600",children:"No input/output recorded."})]})]})}function se(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=se(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var yc={value:()=>{}};function cn(){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 Ot(n)}function Ot(e){this._=e}function wc(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}})}Ot.prototype=cn.prototype={constructor:Ot,on:function(e,t){var n=this._,r=wc(e+"",n),s,i=-1,o=r.length;if(arguments.length<2){for(;++i<o;)if((s=(e=r[i]).type)&&(s=bc(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<o;)if(s=(e=r[i]).type)n[s]=Rr(n[s],e.name,t);else if(t==null)for(s in n)n[s]=Rr(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 Ot(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,i;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,s=i.length;r<s;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,i=r.length;s<i;++s)r[s].value.apply(t,n)}};function bc(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function Rr(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=yc,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var qn="http://www.w3.org/1999/xhtml";const Lr={svg:"http://www.w3.org/2000/svg",xhtml:qn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ln(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Lr.hasOwnProperty(t)?{space:Lr[t],local:e}:e}function vc(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===qn&&t.documentElement.namespaceURI===qn?t.createElement(e):t.createElementNS(n,e)}}function Nc(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Ws(e){var t=ln(e);return(t.local?Nc:vc)(t)}function _c(){}function ur(e){return e==null?_c:function(){return this.querySelector(e)}}function kc(e){typeof e!="function"&&(e=ur(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var i=t[s],o=i.length,a=r[s]=new Array(o),l,u,d=0;d<o;++d)(l=i[d])&&(u=e.call(l,l.__data__,d,i))&&("__data__"in l&&(u.__data__=l.__data__),a[d]=u);return new ue(r,this._parents)}function Sc(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function jc(){return[]}function Ks(e){return e==null?jc:function(){return this.querySelectorAll(e)}}function Ec(e){return function(){return Sc(e.apply(this,arguments))}}function Cc(e){typeof e=="function"?e=Ec(e):e=Ks(e);for(var t=this._groups,n=t.length,r=[],s=[],i=0;i<n;++i)for(var o=t[i],a=o.length,l,u=0;u<a;++u)(l=o[u])&&(r.push(e.call(l,l.__data__,u,o)),s.push(l));return new ue(r,s)}function Gs(e){return function(){return this.matches(e)}}function Us(e){return function(t){return t.matches(e)}}var $c=Array.prototype.find;function Mc(e){return function(){return $c.call(this.children,e)}}function zc(){return this.firstElementChild}function Ic(e){return this.select(e==null?zc:Mc(typeof e=="function"?e:Us(e)))}var Ac=Array.prototype.filter;function Pc(){return Array.from(this.children)}function Tc(e){return function(){return Ac.call(this.children,e)}}function Dc(e){return this.selectAll(e==null?Pc:Tc(typeof e=="function"?e:Us(e)))}function Rc(e){typeof e!="function"&&(e=Gs(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var i=t[s],o=i.length,a=r[s]=[],l,u=0;u<o;++u)(l=i[u])&&e.call(l,l.__data__,u,i)&&a.push(l);return new ue(r,this._parents)}function Zs(e){return new Array(e.length)}function Lc(){return new ue(this._enter||this._groups.map(Zs),this._parents)}function Gt(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Gt.prototype={constructor:Gt,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 Hc(e){return function(){return e}}function Fc(e,t,n,r,s,i){for(var o=0,a,l=t.length,u=i.length;o<u;++o)(a=t[o])?(a.__data__=i[o],r[o]=a):n[o]=new Gt(e,i[o]);for(;o<l;++o)(a=t[o])&&(s[o]=a)}function Oc(e,t,n,r,s,i,o){var a,l,u=new Map,d=t.length,f=i.length,h=new Array(d),p;for(a=0;a<d;++a)(l=t[a])&&(h[a]=p=o.call(l,l.__data__,a,t)+"",u.has(p)?s[a]=l:u.set(p,l));for(a=0;a<f;++a)p=o.call(e,i[a],a,i)+"",(l=u.get(p))?(r[a]=l,l.__data__=i[a],u.delete(p)):n[a]=new Gt(e,i[a]);for(a=0;a<d;++a)(l=t[a])&&u.get(h[a])===l&&(s[a]=l)}function Bc(e){return e.__data__}function Vc(e,t){if(!arguments.length)return Array.from(this,Bc);var n=t?Oc:Fc,r=this._parents,s=this._groups;typeof e!="function"&&(e=Hc(e));for(var i=s.length,o=new Array(i),a=new Array(i),l=new Array(i),u=0;u<i;++u){var d=r[u],f=s[u],h=f.length,p=qc(e.call(d,d&&d.__data__,u,r)),g=p.length,x=a[u]=new Array(g),v=o[u]=new Array(g),y=l[u]=new Array(h);n(d,f,x,v,y,p,t);for(var N=0,b=0,w,C;N<g;++N)if(w=x[N]){for(N>=b&&(b=N+1);!(C=v[b])&&++b<g;);w._next=C||null}}return o=new ue(o,r),o._enter=a,o._exit=l,o}function qc(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Xc(){return new ue(this._exit||this._groups.map(Zs),this._parents)}function Yc(e,t,n){var r=this.enter(),s=this,i=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?i.remove():n(i),r&&s?r.merge(s).order():s}function Wc(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,i=r.length,o=Math.min(s,i),a=new Array(s),l=0;l<o;++l)for(var u=n[l],d=r[l],f=u.length,h=a[l]=new Array(f),p,g=0;g<f;++g)(p=u[g]||d[g])&&(h[g]=p);for(;l<s;++l)a[l]=n[l];return new ue(a,this._parents)}function Kc(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,i=r[s],o;--s>=0;)(o=r[s])&&(i&&o.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(o,i),i=o);return this}function Gc(e){e||(e=Uc);function t(f,h){return f&&h?e(f.__data__,h.__data__):!f-!h}for(var n=this._groups,r=n.length,s=new Array(r),i=0;i<r;++i){for(var o=n[i],a=o.length,l=s[i]=new Array(a),u,d=0;d<a;++d)(u=o[d])&&(l[d]=u);l.sort(t)}return new ue(s,this._parents).order()}function Uc(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Zc(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Qc(){return Array.from(this)}function Jc(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,i=r.length;s<i;++s){var o=r[s];if(o)return o}return null}function el(){let e=0;for(const t of this)++e;return e}function tl(){return!this.node()}function nl(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],i=0,o=s.length,a;i<o;++i)(a=s[i])&&e.call(a,a.__data__,i,s);return this}function rl(e){return function(){this.removeAttribute(e)}}function sl(e){return function(){this.removeAttributeNS(e.space,e.local)}}function il(e,t){return function(){this.setAttribute(e,t)}}function ol(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function al(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function cl(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 ll(e,t){var n=ln(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?sl:rl:typeof t=="function"?n.local?cl:al:n.local?ol:il)(n,t))}function Qs(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function ul(e){return function(){this.style.removeProperty(e)}}function dl(e,t,n){return function(){this.style.setProperty(e,t,n)}}function fl(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function hl(e,t,n){return arguments.length>1?this.each((t==null?ul:typeof t=="function"?fl:dl)(e,t,n??"")):Ze(this.node(),e)}function Ze(e,t){return e.style.getPropertyValue(t)||Qs(e).getComputedStyle(e,null).getPropertyValue(t)}function pl(e){return function(){delete this[e]}}function gl(e,t){return function(){this[e]=t}}function ml(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function xl(e,t){return arguments.length>1?this.each((t==null?pl:typeof t=="function"?ml:gl)(e,t)):this.node()[e]}function Js(e){return e.trim().split(/^|\s+/)}function dr(e){return e.classList||new ei(e)}function ei(e){this._node=e,this._names=Js(e.getAttribute("class")||"")}ei.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 ti(e,t){for(var n=dr(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function ni(e,t){for(var n=dr(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function yl(e){return function(){ti(this,e)}}function wl(e){return function(){ni(this,e)}}function bl(e,t){return function(){(t.apply(this,arguments)?ti:ni)(this,e)}}function vl(e,t){var n=Js(e+"");if(arguments.length<2){for(var r=dr(this.node()),s=-1,i=n.length;++s<i;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?bl:t?yl:wl)(n,t))}function Nl(){this.textContent=""}function _l(e){return function(){this.textContent=e}}function kl(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Sl(e){return arguments.length?this.each(e==null?Nl:(typeof e=="function"?kl:_l)(e)):this.node().textContent}function jl(){this.innerHTML=""}function El(e){return function(){this.innerHTML=e}}function Cl(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function $l(e){return arguments.length?this.each(e==null?jl:(typeof e=="function"?Cl:El)(e)):this.node().innerHTML}function Ml(){this.nextSibling&&this.parentNode.appendChild(this)}function zl(){return this.each(Ml)}function Il(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Al(){return this.each(Il)}function Pl(e){var t=typeof e=="function"?e:Ws(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Tl(){return null}function Dl(e,t){var n=typeof e=="function"?e:Ws(e),r=t==null?Tl:typeof t=="function"?t:ur(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Rl(){var e=this.parentNode;e&&e.removeChild(this)}function Ll(){return this.each(Rl)}function Hl(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Fl(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ol(e){return this.select(e?Fl:Hl)}function Bl(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Vl(e){return function(t){e.call(this,t,this.__data__)}}function ql(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 Xl(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,i;n<s;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function Yl(e,t,n){return function(){var r=this.__on,s,i=Vl(t);if(r){for(var o=0,a=r.length;o<a;++o)if((s=r[o]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=i,s.options=n),s.value=t;return}}this.addEventListener(e.type,i,n),s={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(s):this.__on=[s]}}function Wl(e,t,n){var r=ql(e+""),s,i=r.length,o;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<i;++s)if((o=r[s]).type===d.type&&o.name===d.name)return d.value}return}for(a=t?Yl:Xl,s=0;s<i;++s)this.each(a(r[s],t,n));return this}function ri(e,t,n){var r=Qs(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 Kl(e,t){return function(){return ri(this,e,t)}}function Gl(e,t){return function(){return ri(this,e,t.apply(this,arguments))}}function Ul(e,t){return this.each((typeof t=="function"?Gl:Kl)(e,t))}function*Zl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,i=r.length,o;s<i;++s)(o=r[s])&&(yield o)}var si=[null];function ue(e,t){this._groups=e,this._parents=t}function St(){return new ue([[document.documentElement]],si)}function Ql(){return this}ue.prototype=St.prototype={constructor:ue,select:kc,selectAll:Cc,selectChild:Ic,selectChildren:Dc,filter:Rc,data:Vc,enter:Lc,exit:Xc,join:Yc,merge:Wc,selection:Ql,order:Kc,sort:Gc,call:Zc,nodes:Qc,node:Jc,size:el,empty:tl,each:nl,attr:ll,style:hl,property:xl,classed:vl,text:Sl,html:$l,raise:zl,lower:Al,append:Pl,insert:Dl,remove:Ll,clone:Ol,datum:Bl,on:Wl,dispatch:Ul,[Symbol.iterator]:Zl};function le(e){return typeof e=="string"?new ue([[document.querySelector(e)]],[document.documentElement]):new ue([[e]],si)}function Jl(e){let t;for(;t=e.sourceEvent;)e=t;return e}function de(e,t){if(e=Jl(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 eu={passive:!1},gt={capture:!0,passive:!1};function zn(e){e.stopImmediatePropagation()}function Ke(e){e.preventDefault(),e.stopImmediatePropagation()}function ii(e){var t=e.document.documentElement,n=le(e).on("dragstart.drag",Ke,gt);"onselectstart"in t?n.on("selectstart.drag",Ke,gt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function oi(e,t){var n=e.document.documentElement,r=le(e).on("dragstart.drag",null);t&&(r.on("click.drag",Ke,gt),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 zt=e=>()=>e;function Xn(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:i,x:o,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:i,enumerable:!0,configurable:!0},x:{value:o,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}})}Xn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function tu(e){return!e.ctrlKey&&!e.button}function nu(){return this.parentNode}function ru(e,t){return t??{x:e.x,y:e.y}}function su(){return navigator.maxTouchPoints||"ontouchstart"in this}function ai(){var e=tu,t=nu,n=ru,r=su,s={},i=cn("start","drag","end"),o=0,a,l,u,d,f=0;function h(w){w.on("mousedown.drag",p).filter(r).on("touchstart.drag",v).on("touchmove.drag",y,eu).on("touchend.drag touchcancel.drag",N).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(w,C){if(!(d||!e.call(this,w,C))){var L=b(this,t.call(this,w,C),w,C,"mouse");L&&(le(w.view).on("mousemove.drag",g,gt).on("mouseup.drag",x,gt),ii(w.view),zn(w),u=!1,a=w.clientX,l=w.clientY,L("start",w))}}function g(w){if(Ke(w),!u){var C=w.clientX-a,L=w.clientY-l;u=C*C+L*L>f}s.mouse("drag",w)}function x(w){le(w.view).on("mousemove.drag mouseup.drag",null),oi(w.view,u),Ke(w),s.mouse("end",w)}function v(w,C){if(e.call(this,w,C)){var L=w.changedTouches,E=t.call(this,w,C),R=L.length,D,P;for(D=0;D<R;++D)(P=b(this,E,w,C,L[D].identifier,L[D]))&&(zn(w),P("start",w,L[D]))}}function y(w){var C=w.changedTouches,L=C.length,E,R;for(E=0;E<L;++E)(R=s[C[E].identifier])&&(Ke(w),R("drag",w,C[E]))}function N(w){var C=w.changedTouches,L=C.length,E,R;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),E=0;E<L;++E)(R=s[C[E].identifier])&&(zn(w),R("end",w,C[E]))}function b(w,C,L,E,R,D){var P=i.copy(),T=de(D||L,C),F,A,m;if((m=n.call(w,new Xn("beforestart",{sourceEvent:L,target:h,identifier:R,active:o,x:T[0],y:T[1],dx:0,dy:0,dispatch:P}),E))!=null)return F=m.x-T[0]||0,A=m.y-T[1]||0,function k(_,M,S){var j=T,z;switch(_){case"start":s[R]=k,z=o++;break;case"end":delete s[R],--o;case"drag":T=de(S||M,C),z=o;break}P.call(_,w,new Xn(_,{sourceEvent:M,subject:m,target:h,identifier:R,active:z,x:T[0]+F,y:T[1]+A,dx:T[0]-j[0],dy:T[1]-j[1],dispatch:P}),E)}}return h.filter=function(w){return arguments.length?(e=typeof w=="function"?w:zt(!!w),h):e},h.container=function(w){return arguments.length?(t=typeof w=="function"?w:zt(w),h):t},h.subject=function(w){return arguments.length?(n=typeof w=="function"?w:zt(w),h):n},h.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:zt(!!w),h):r},h.on=function(){var w=i.on.apply(i,arguments);return w===i?h:w},h.clickDistance=function(w){return arguments.length?(f=(w=+w)*w,h):Math.sqrt(f)},h}function fr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ci(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function jt(){}var mt=.7,Ut=1/mt,Ge="\\s*([+-]?\\d+)\\s*",xt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ge="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",iu=/^#([0-9a-f]{3,8})$/,ou=new RegExp(`^rgb\\(${Ge},${Ge},${Ge}\\)$`),au=new RegExp(`^rgb\\(${ge},${ge},${ge}\\)$`),cu=new RegExp(`^rgba\\(${Ge},${Ge},${Ge},${xt}\\)$`),lu=new RegExp(`^rgba\\(${ge},${ge},${ge},${xt}\\)$`),uu=new RegExp(`^hsl\\(${xt},${ge},${ge}\\)$`),du=new RegExp(`^hsla\\(${xt},${ge},${ge},${xt}\\)$`),Hr={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};fr(jt,yt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Fr,formatHex:Fr,formatHex8:fu,formatHsl:hu,formatRgb:Or,toString:Or});function Fr(){return this.rgb().formatHex()}function fu(){return this.rgb().formatHex8()}function hu(){return li(this).formatHsl()}function Or(){return this.rgb().formatRgb()}function yt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=iu.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Br(t):n===3?new ce(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?It(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?It(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=ou.exec(e))?new ce(t[1],t[2],t[3],1):(t=au.exec(e))?new ce(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=cu.exec(e))?It(t[1],t[2],t[3],t[4]):(t=lu.exec(e))?It(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=uu.exec(e))?Xr(t[1],t[2]/100,t[3]/100,1):(t=du.exec(e))?Xr(t[1],t[2]/100,t[3]/100,t[4]):Hr.hasOwnProperty(e)?Br(Hr[e]):e==="transparent"?new ce(NaN,NaN,NaN,0):null}function Br(e){return new ce(e>>16&255,e>>8&255,e&255,1)}function It(e,t,n,r){return r<=0&&(e=t=n=NaN),new ce(e,t,n,r)}function pu(e){return e instanceof jt||(e=yt(e)),e?(e=e.rgb(),new ce(e.r,e.g,e.b,e.opacity)):new ce}function Yn(e,t,n,r){return arguments.length===1?pu(e):new ce(e,t,n,r??1)}function ce(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}fr(ce,Yn,ci(jt,{brighter(e){return e=e==null?Ut:Math.pow(Ut,e),new ce(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?mt:Math.pow(mt,e),new ce(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ce(Le(this.r),Le(this.g),Le(this.b),Zt(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:Vr,formatHex:Vr,formatHex8:gu,formatRgb:qr,toString:qr}));function Vr(){return`#${Re(this.r)}${Re(this.g)}${Re(this.b)}`}function gu(){return`#${Re(this.r)}${Re(this.g)}${Re(this.b)}${Re((isNaN(this.opacity)?1:this.opacity)*255)}`}function qr(){const e=Zt(this.opacity);return`${e===1?"rgb(":"rgba("}${Le(this.r)}, ${Le(this.g)}, ${Le(this.b)}${e===1?")":`, ${e})`}`}function Zt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Le(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Re(e){return e=Le(e),(e<16?"0":"")+e.toString(16)}function Xr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new fe(e,t,n,r)}function li(e){if(e instanceof fe)return new fe(e.h,e.s,e.l,e.opacity);if(e instanceof jt||(e=yt(e)),!e)return new fe;if(e instanceof fe)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),i=Math.max(t,n,r),o=NaN,a=i-s,l=(i+s)/2;return a?(t===i?o=(n-r)/a+(n<r)*6:n===i?o=(r-t)/a+2:o=(t-n)/a+4,a/=l<.5?i+s:2-i-s,o*=60):a=l>0&&l<1?0:o,new fe(o,a,l,e.opacity)}function mu(e,t,n,r){return arguments.length===1?li(e):new fe(e,t,n,r??1)}function fe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}fr(fe,mu,ci(jt,{brighter(e){return e=e==null?Ut:Math.pow(Ut,e),new fe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?mt:Math.pow(mt,e),new fe(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 ce(In(e>=240?e-240:e+120,s,r),In(e,s,r),In(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new fe(Yr(this.h),At(this.s),At(this.l),Zt(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=Zt(this.opacity);return`${e===1?"hsl(":"hsla("}${Yr(this.h)}, ${At(this.s)*100}%, ${At(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Yr(e){return e=(e||0)%360,e<0?e+360:e}function At(e){return Math.max(0,Math.min(1,e||0))}function In(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 ui=e=>()=>e;function xu(e,t){return function(n){return e+n*t}}function yu(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 wu(e){return(e=+e)==1?di:function(t,n){return n-t?yu(t,n,e):ui(isNaN(t)?n:t)}}function di(e,t){var n=t-e;return n?xu(e,n):ui(isNaN(e)?t:e)}const Wr=function e(t){var n=wu(t);function r(s,i){var o=n((s=Yn(s)).r,(i=Yn(i)).r),a=n(s.g,i.g),l=n(s.b,i.b),u=di(s.opacity,i.opacity);return function(d){return s.r=o(d),s.g=a(d),s.b=l(d),s.opacity=u(d),s+""}}return r.gamma=e,r}(1);function ze(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Wn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,An=new RegExp(Wn.source,"g");function bu(e){return function(){return e}}function vu(e){return function(t){return e(t)+""}}function Nu(e,t){var n=Wn.lastIndex=An.lastIndex=0,r,s,i,o=-1,a=[],l=[];for(e=e+"",t=t+"";(r=Wn.exec(e))&&(s=An.exec(t));)(i=s.index)>n&&(i=t.slice(n,i),a[o]?a[o]+=i:a[++o]=i),(r=r[0])===(s=s[0])?a[o]?a[o]+=s:a[++o]=s:(a[++o]=null,l.push({i:o,x:ze(r,s)})),n=An.lastIndex;return n<t.length&&(i=t.slice(n),a[o]?a[o]+=i:a[++o]=i),a.length<2?l[0]?vu(l[0].x):bu(t):(t=l.length,function(u){for(var d=0,f;d<t;++d)a[(f=l[d]).i]=f.x(u);return a.join("")})}var Kr=180/Math.PI,Kn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function fi(e,t,n,r,s,i){var o,a,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(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,o=-o),{translateX:s,translateY:i,rotate:Math.atan2(t,e)*Kr,skewX:Math.atan(l)*Kr,scaleX:o,scaleY:a}}var Pt;function _u(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Kn:fi(t.a,t.b,t.c,t.d,t.e,t.f)}function ku(e){return e==null||(Pt||(Pt=document.createElementNS("http://www.w3.org/2000/svg","g")),Pt.setAttribute("transform",e),!(e=Pt.transform.baseVal.consolidate()))?Kn:(e=e.matrix,fi(e.a,e.b,e.c,e.d,e.e,e.f))}function hi(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function i(u,d,f,h,p,g){if(u!==f||d!==h){var x=p.push("translate(",null,t,null,n);g.push({i:x-4,x:ze(u,f)},{i:x-2,x:ze(d,h)})}else(f||h)&&p.push("translate("+f+t+h+n)}function o(u,d,f,h){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),h.push({i:f.push(s(f)+"rotate(",null,r)-2,x:ze(u,d)})):d&&f.push(s(f)+"rotate("+d+r)}function a(u,d,f,h){u!==d?h.push({i:f.push(s(f)+"skewX(",null,r)-2,x:ze(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function l(u,d,f,h,p,g){if(u!==f||d!==h){var x=p.push(s(p)+"scale(",null,",",null,")");g.push({i:x-4,x:ze(u,f)},{i:x-2,x:ze(d,h)})}else(f!==1||h!==1)&&p.push(s(p)+"scale("+f+","+h+")")}return function(u,d){var f=[],h=[];return u=e(u),d=e(d),i(u.translateX,u.translateY,d.translateX,d.translateY,f,h),o(u.rotate,d.rotate,f,h),a(u.skewX,d.skewX,f,h),l(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,h),u=d=null,function(p){for(var g=-1,x=h.length,v;++g<x;)f[(v=h[g]).i]=v.x(p);return f.join("")}}}var Su=hi(_u,"px, ","px)","deg)"),ju=hi(ku,", ",")",")"),Eu=1e-12;function Gr(e){return((e=Math.exp(e))+1/e)/2}function Cu(e){return((e=Math.exp(e))-1/e)/2}function $u(e){return((e=Math.exp(2*e))-1)/(e+1)}const Mu=function e(t,n,r){function s(i,o){var a=i[0],l=i[1],u=i[2],d=o[0],f=o[1],h=o[2],p=d-a,g=f-l,x=p*p+g*g,v,y;if(x<Eu)y=Math.log(h/u)/t,v=function(E){return[a+E*p,l+E*g,u*Math.exp(t*E*y)]};else{var N=Math.sqrt(x),b=(h*h-u*u+r*x)/(2*u*n*N),w=(h*h-u*u-r*x)/(2*h*n*N),C=Math.log(Math.sqrt(b*b+1)-b),L=Math.log(Math.sqrt(w*w+1)-w);y=(L-C)/t,v=function(E){var R=E*y,D=Gr(C),P=u/(n*N)*(D*$u(t*R+C)-Cu(C));return[a+P*p,l+P*g,u*D/Gr(t*R+C)]}}return v.duration=y*1e3*t/Math.SQRT2,v}return s.rho=function(i){var o=Math.max(.001,+i),a=o*o,l=a*a;return e(o,a,l)},s}(Math.SQRT2,2,4);var Qe=0,dt=0,lt=0,pi=1e3,Qt,ft,Jt=0,Fe=0,un=0,wt=typeof performance=="object"&&performance.now?performance:Date,gi=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function hr(){return Fe||(gi(zu),Fe=wt.now()+un)}function zu(){Fe=0}function en(){this._call=this._time=this._next=null}en.prototype=mi.prototype={constructor:en,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?hr():+n)+(t==null?0:+t),!this._next&&ft!==this&&(ft?ft._next=this:Qt=this,ft=this),this._call=e,this._time=n,Gn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Gn())}};function mi(e,t,n){var r=new en;return r.restart(e,t,n),r}function Iu(){hr(),++Qe;for(var e=Qt,t;e;)(t=Fe-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Qe}function Ur(){Fe=(Jt=wt.now())+un,Qe=dt=0;try{Iu()}finally{Qe=0,Pu(),Fe=0}}function Au(){var e=wt.now(),t=e-Jt;t>pi&&(un-=t,Jt=e)}function Pu(){for(var e,t=Qt,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:Qt=n);ft=e,Gn(r)}function Gn(e){if(!Qe){dt&&(dt=clearTimeout(dt));var t=e-Fe;t>24?(e<1/0&&(dt=setTimeout(Ur,e-wt.now()-un)),lt&&(lt=clearInterval(lt))):(lt||(Jt=wt.now(),lt=setInterval(Au,pi)),Qe=1,gi(Ur))}}function Zr(e,t,n){var r=new en;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var Tu=cn("start","end","cancel","interrupt"),Du=[],xi=0,Qr=1,Un=2,Bt=3,Jr=4,Zn=5,Vt=6;function dn(e,t,n,r,s,i){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Ru(e,n,{name:t,index:r,group:s,on:Tu,tween:Du,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:xi})}function pr(e,t){var n=pe(e,t);if(n.state>xi)throw new Error("too late; already scheduled");return n}function me(e,t){var n=pe(e,t);if(n.state>Bt)throw new Error("too late; already running");return n}function pe(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Ru(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=mi(i,0,n.time);function i(u){n.state=Qr,n.timer.restart(o,n.delay,n.time),n.delay<=u&&o(u-n.delay)}function o(u){var d,f,h,p;if(n.state!==Qr)return l();for(d in r)if(p=r[d],p.name===n.name){if(p.state===Bt)return Zr(o);p.state===Jr?(p.state=Vt,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+d<t&&(p.state=Vt,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[d])}if(Zr(function(){n.state===Bt&&(n.state=Jr,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=Un,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Un){for(n.state=Bt,s=new Array(h=n.tween.length),d=0,f=-1;d<h;++d)(p=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=p);s.length=f+1}}function a(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(l),n.state=Zn,1),f=-1,h=s.length;++f<h;)s[f].call(e,d);n.state===Zn&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Vt,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function qt(e,t){var n=e.__transition,r,s,i=!0,o;if(n){t=t==null?null:t+"";for(o in n){if((r=n[o]).name!==t){i=!1;continue}s=r.state>Un&&r.state<Zn,r.state=Vt,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[o]}i&&delete e.__transition}}function Lu(e){return this.each(function(){qt(this,e)})}function Hu(e,t){var n,r;return function(){var s=me(this,e),i=s.tween;if(i!==n){r=n=i;for(var o=0,a=r.length;o<a;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}s.tween=r}}function Fu(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var i=me(this,e),o=i.tween;if(o!==r){s=(r=o).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)}i.tween=s}}function Ou(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=pe(this.node(),n).tween,s=0,i=r.length,o;s<i;++s)if((o=r[s]).name===e)return o.value;return null}return this.each((t==null?Hu:Fu)(n,e,t))}function gr(e,t,n){var r=e._id;return e.each(function(){var s=me(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return pe(s,r).value[t]}}function yi(e,t){var n;return(typeof t=="number"?ze:t instanceof yt?Wr:(n=yt(t))?(t=n,Wr):Nu)(e,t)}function Bu(e){return function(){this.removeAttribute(e)}}function Vu(e){return function(){this.removeAttributeNS(e.space,e.local)}}function qu(e,t,n){var r,s=n+"",i;return function(){var o=this.getAttribute(e);return o===s?null:o===r?i:i=t(r=o,n)}}function Xu(e,t,n){var r,s=n+"",i;return function(){var o=this.getAttributeNS(e.space,e.local);return o===s?null:o===r?i:i=t(r=o,n)}}function Yu(e,t,n){var r,s,i;return function(){var o,a=n(this),l;return a==null?void this.removeAttribute(e):(o=this.getAttribute(e),l=a+"",o===l?null:o===r&&l===s?i:(s=l,i=t(r=o,a)))}}function Wu(e,t,n){var r,s,i;return function(){var o,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),l=a+"",o===l?null:o===r&&l===s?i:(s=l,i=t(r=o,a)))}}function Ku(e,t){var n=ln(e),r=n==="transform"?ju:yi;return this.attrTween(e,typeof t=="function"?(n.local?Wu:Yu)(n,r,gr(this,"attr."+e,t)):t==null?(n.local?Vu:Bu)(n):(n.local?Xu:qu)(n,r,t))}function Gu(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Uu(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Zu(e,t){var n,r;function s(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Uu(e,i)),n}return s._value=t,s}function Qu(e,t){var n,r;function s(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Gu(e,i)),n}return s._value=t,s}function Ju(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=ln(e);return this.tween(n,(r.local?Zu:Qu)(r,t))}function ed(e,t){return function(){pr(this,e).delay=+t.apply(this,arguments)}}function td(e,t){return t=+t,function(){pr(this,e).delay=t}}function nd(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ed:td)(t,e)):pe(this.node(),t).delay}function rd(e,t){return function(){me(this,e).duration=+t.apply(this,arguments)}}function sd(e,t){return t=+t,function(){me(this,e).duration=t}}function id(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?rd:sd)(t,e)):pe(this.node(),t).duration}function od(e,t){if(typeof t!="function")throw new Error;return function(){me(this,e).ease=t}}function ad(e){var t=this._id;return arguments.length?this.each(od(t,e)):pe(this.node(),t).ease}function cd(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;me(this,e).ease=n}}function ld(e){if(typeof e!="function")throw new Error;return this.each(cd(this._id,e))}function ud(e){typeof e!="function"&&(e=Gs(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var i=t[s],o=i.length,a=r[s]=[],l,u=0;u<o;++u)(l=i[u])&&e.call(l,l.__data__,u,i)&&a.push(l);return new ke(r,this._parents,this._name,this._id)}function dd(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,i=Math.min(r,s),o=new Array(r),a=0;a<i;++a)for(var l=t[a],u=n[a],d=l.length,f=o[a]=new Array(d),h,p=0;p<d;++p)(h=l[p]||u[p])&&(f[p]=h);for(;a<r;++a)o[a]=t[a];return new ke(o,this._parents,this._name,this._id)}function fd(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 hd(e,t,n){var r,s,i=fd(t)?pr:me;return function(){var o=i(this,e),a=o.on;a!==r&&(s=(r=a).copy()).on(t,n),o.on=s}}function pd(e,t){var n=this._id;return arguments.length<2?pe(this.node(),n).on.on(e):this.each(hd(n,e,t))}function gd(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function md(){return this.on("end.remove",gd(this._id))}function xd(e){var t=this._name,n=this._id;typeof e!="function"&&(e=ur(e));for(var r=this._groups,s=r.length,i=new Array(s),o=0;o<s;++o)for(var a=r[o],l=a.length,u=i[o]=new Array(l),d,f,h=0;h<l;++h)(d=a[h])&&(f=e.call(d,d.__data__,h,a))&&("__data__"in d&&(f.__data__=d.__data__),u[h]=f,dn(u[h],t,n,h,u,pe(d,n)));return new ke(i,this._parents,t,n)}function yd(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Ks(e));for(var r=this._groups,s=r.length,i=[],o=[],a=0;a<s;++a)for(var l=r[a],u=l.length,d,f=0;f<u;++f)if(d=l[f]){for(var h=e.call(d,d.__data__,f,l),p,g=pe(d,n),x=0,v=h.length;x<v;++x)(p=h[x])&&dn(p,t,n,x,h,g);i.push(h),o.push(d)}return new ke(i,o,t,n)}var wd=St.prototype.constructor;function bd(){return new wd(this._groups,this._parents)}function vd(e,t){var n,r,s;return function(){var i=Ze(this,e),o=(this.style.removeProperty(e),Ze(this,e));return i===o?null:i===n&&o===r?s:s=t(n=i,r=o)}}function wi(e){return function(){this.style.removeProperty(e)}}function Nd(e,t,n){var r,s=n+"",i;return function(){var o=Ze(this,e);return o===s?null:o===r?i:i=t(r=o,n)}}function _d(e,t,n){var r,s,i;return function(){var o=Ze(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Ze(this,e))),o===l?null:o===r&&l===s?i:(s=l,i=t(r=o,a))}}function kd(e,t){var n,r,s,i="style."+t,o="end."+i,a;return function(){var l=me(this,e),u=l.on,d=l.value[i]==null?a||(a=wi(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(o,s=d),l.on=r}}function Sd(e,t,n){var r=(e+="")=="transform"?Su:yi;return t==null?this.styleTween(e,vd(e,r)).on("end.style."+e,wi(e)):typeof t=="function"?this.styleTween(e,_d(e,r,gr(this,"style."+e,t))).each(kd(this._id,e)):this.styleTween(e,Nd(e,r,t),n).on("end.style."+e,null)}function jd(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Ed(e,t,n){var r,s;function i(){var o=t.apply(this,arguments);return o!==s&&(r=(s=o)&&jd(e,o,n)),r}return i._value=t,i}function Cd(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,Ed(e,t,n??""))}function $d(e){return function(){this.textContent=e}}function Md(e){return function(){var t=e(this);this.textContent=t??""}}function zd(e){return this.tween("text",typeof e=="function"?Md(gr(this,"text",e)):$d(e==null?"":e+""))}function Id(e){return function(t){this.textContent=e.call(this,t)}}function Ad(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&Id(s)),t}return r._value=e,r}function Pd(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,Ad(e))}function Td(){for(var e=this._name,t=this._id,n=bi(),r=this._groups,s=r.length,i=0;i<s;++i)for(var o=r[i],a=o.length,l,u=0;u<a;++u)if(l=o[u]){var d=pe(l,t);dn(l,e,n,u,o,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new ke(r,this._parents,e,n)}function Dd(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(i,o){var a={value:o},l={value:function(){--s===0&&i()}};n.each(function(){var u=me(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&&i()})}var Rd=0;function ke(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function bi(){return++Rd}var xe=St.prototype;ke.prototype={constructor:ke,select:xd,selectAll:yd,selectChild:xe.selectChild,selectChildren:xe.selectChildren,filter:ud,merge:dd,selection:bd,transition:Td,call:xe.call,nodes:xe.nodes,node:xe.node,size:xe.size,empty:xe.empty,each:xe.each,on:pd,attr:Ku,attrTween:Ju,style:Sd,styleTween:Cd,text:zd,textTween:Pd,remove:md,tween:Ou,delay:nd,duration:id,ease:ad,easeVarying:ld,end:Dd,[Symbol.iterator]:xe[Symbol.iterator]};function Ld(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Hd={time:null,delay:0,duration:250,ease:Ld};function Fd(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 Od(e){var t,n;e instanceof ke?(t=e._id,e=e._name):(t=bi(),(n=Hd).time=hr(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,i=0;i<s;++i)for(var o=r[i],a=o.length,l,u=0;u<a;++u)(l=o[u])&&dn(l,e,t,u,o,n||Fd(l,t));return new ke(r,this._parents,e,t)}St.prototype.interrupt=Lu;St.prototype.transition=Od;const Tt=e=>()=>e;function Bd(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 be(e,t,n){this.k=e,this.x=t,this.y=n}be.prototype={constructor:be,scale:function(e){return e===1?this:new be(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new be(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 fn=new be(1,0,0);vi.prototype=be.prototype;function vi(e){for(;!e.__zoom;)if(!(e=e.parentNode))return fn;return e.__zoom}function Pn(e){e.stopImmediatePropagation()}function ut(e){e.preventDefault(),e.stopImmediatePropagation()}function Vd(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function qd(){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 es(){return this.__zoom||fn}function Xd(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Yd(){return navigator.maxTouchPoints||"ontouchstart"in this}function Wd(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function Ni(){var e=Vd,t=qd,n=Wd,r=Xd,s=Yd,i=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Mu,u=cn("start","zoom","end"),d,f,h,p=500,g=150,x=0,v=10;function y(m){m.property("__zoom",es).on("wheel.zoom",R,{passive:!1}).on("mousedown.zoom",D).on("dblclick.zoom",P).filter(s).on("touchstart.zoom",T).on("touchmove.zoom",F).on("touchend.zoom touchcancel.zoom",A).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(m,k,_,M){var S=m.selection?m.selection():m;S.property("__zoom",es),m!==S?C(m,k,_,M):S.interrupt().each(function(){L(this,arguments).event(M).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},y.scaleBy=function(m,k,_,M){y.scaleTo(m,function(){var S=this.__zoom.k,j=typeof k=="function"?k.apply(this,arguments):k;return S*j},_,M)},y.scaleTo=function(m,k,_,M){y.transform(m,function(){var S=t.apply(this,arguments),j=this.__zoom,z=_==null?w(S):typeof _=="function"?_.apply(this,arguments):_,H=j.invert(z),O=typeof k=="function"?k.apply(this,arguments):k;return n(b(N(j,O),z,H),S,o)},_,M)},y.translateBy=function(m,k,_,M){y.transform(m,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof _=="function"?_.apply(this,arguments):_),t.apply(this,arguments),o)},null,M)},y.translateTo=function(m,k,_,M,S){y.transform(m,function(){var j=t.apply(this,arguments),z=this.__zoom,H=M==null?w(j):typeof M=="function"?M.apply(this,arguments):M;return n(fn.translate(H[0],H[1]).scale(z.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof _=="function"?-_.apply(this,arguments):-_),j,o)},M,S)};function N(m,k){return k=Math.max(i[0],Math.min(i[1],k)),k===m.k?m:new be(k,m.x,m.y)}function b(m,k,_){var M=k[0]-_[0]*m.k,S=k[1]-_[1]*m.k;return M===m.x&&S===m.y?m:new be(m.k,M,S)}function w(m){return[(+m[0][0]+ +m[1][0])/2,(+m[0][1]+ +m[1][1])/2]}function C(m,k,_,M){m.on("start.zoom",function(){L(this,arguments).event(M).start()}).on("interrupt.zoom end.zoom",function(){L(this,arguments).event(M).end()}).tween("zoom",function(){var S=this,j=arguments,z=L(S,j).event(M),H=t.apply(S,j),O=_==null?w(H):typeof _=="function"?_.apply(S,j):_,X=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),V=S.__zoom,B=typeof k=="function"?k.apply(S,j):k,Y=l(V.invert(O).concat(X/V.k),B.invert(O).concat(X/B.k));return function(U){if(U===1)U=B;else{var I=Y(U),q=X/I[2];U=new be(q,O[0]-I[0]*q,O[1]-I[1]*q)}z.zoom(null,U)}})}function L(m,k,_){return!_&&m.__zooming||new E(m,k)}function E(m,k){this.that=m,this.args=k,this.active=0,this.sourceEvent=null,this.extent=t.apply(m,k),this.taps=0}E.prototype={event:function(m){return m&&(this.sourceEvent=m),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(m,k){return this.mouse&&m!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&m!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&m!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(m){var k=le(this.that).datum();u.call(m,this.that,new Bd(m,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:u}),k)}};function R(m,...k){if(!e.apply(this,arguments))return;var _=L(this,k).event(m),M=this.__zoom,S=Math.max(i[0],Math.min(i[1],M.k*Math.pow(2,r.apply(this,arguments)))),j=de(m);if(_.wheel)(_.mouse[0][0]!==j[0]||_.mouse[0][1]!==j[1])&&(_.mouse[1]=M.invert(_.mouse[0]=j)),clearTimeout(_.wheel);else{if(M.k===S)return;_.mouse=[j,M.invert(j)],qt(this),_.start()}ut(m),_.wheel=setTimeout(z,g),_.zoom("mouse",n(b(N(M,S),_.mouse[0],_.mouse[1]),_.extent,o));function z(){_.wheel=null,_.end()}}function D(m,...k){if(h||!e.apply(this,arguments))return;var _=m.currentTarget,M=L(this,k,!0).event(m),S=le(m.view).on("mousemove.zoom",O,!0).on("mouseup.zoom",X,!0),j=de(m,_),z=m.clientX,H=m.clientY;ii(m.view),Pn(m),M.mouse=[j,this.__zoom.invert(j)],qt(this),M.start();function O(V){if(ut(V),!M.moved){var B=V.clientX-z,Y=V.clientY-H;M.moved=B*B+Y*Y>x}M.event(V).zoom("mouse",n(b(M.that.__zoom,M.mouse[0]=de(V,_),M.mouse[1]),M.extent,o))}function X(V){S.on("mousemove.zoom mouseup.zoom",null),oi(V.view,M.moved),ut(V),M.event(V).end()}}function P(m,...k){if(e.apply(this,arguments)){var _=this.__zoom,M=de(m.changedTouches?m.changedTouches[0]:m,this),S=_.invert(M),j=_.k*(m.shiftKey?.5:2),z=n(b(N(_,j),M,S),t.apply(this,k),o);ut(m),a>0?le(this).transition().duration(a).call(C,z,M,m):le(this).call(y.transform,z,M,m)}}function T(m,...k){if(e.apply(this,arguments)){var _=m.touches,M=_.length,S=L(this,k,m.changedTouches.length===M).event(m),j,z,H,O;for(Pn(m),z=0;z<M;++z)H=_[z],O=de(H,this),O=[O,this.__zoom.invert(O),H.identifier],S.touch0?!S.touch1&&S.touch0[2]!==O[2]&&(S.touch1=O,S.taps=0):(S.touch0=O,j=!0,S.taps=1+!!d);d&&(d=clearTimeout(d)),j&&(S.taps<2&&(f=O[0],d=setTimeout(function(){d=null},p)),qt(this),S.start())}}function F(m,...k){if(this.__zooming){var _=L(this,k).event(m),M=m.changedTouches,S=M.length,j,z,H,O;for(ut(m),j=0;j<S;++j)z=M[j],H=de(z,this),_.touch0&&_.touch0[2]===z.identifier?_.touch0[0]=H:_.touch1&&_.touch1[2]===z.identifier&&(_.touch1[0]=H);if(z=_.that.__zoom,_.touch1){var X=_.touch0[0],V=_.touch0[1],B=_.touch1[0],Y=_.touch1[1],U=(U=B[0]-X[0])*U+(U=B[1]-X[1])*U,I=(I=Y[0]-V[0])*I+(I=Y[1]-V[1])*I;z=N(z,Math.sqrt(U/I)),H=[(X[0]+B[0])/2,(X[1]+B[1])/2],O=[(V[0]+Y[0])/2,(V[1]+Y[1])/2]}else if(_.touch0)H=_.touch0[0],O=_.touch0[1];else return;_.zoom("touch",n(b(z,H,O),_.extent,o))}}function A(m,...k){if(this.__zooming){var _=L(this,k).event(m),M=m.changedTouches,S=M.length,j,z;for(Pn(m),h&&clearTimeout(h),h=setTimeout(function(){h=null},p),j=0;j<S;++j)z=M[j],_.touch0&&_.touch0[2]===z.identifier?delete _.touch0:_.touch1&&_.touch1[2]===z.identifier&&delete _.touch1;if(_.touch1&&!_.touch0&&(_.touch0=_.touch1,delete _.touch1),_.touch0)_.touch0[1]=this.__zoom.invert(_.touch0[0]);else if(_.end(),_.taps===2&&(z=de(z,this),Math.hypot(f[0]-z[0],f[1]-z[1])<v)){var H=le(this).on("dblclick.zoom");H&&H.apply(this,arguments)}}}return y.wheelDelta=function(m){return arguments.length?(r=typeof m=="function"?m:Tt(+m),y):r},y.filter=function(m){return arguments.length?(e=typeof m=="function"?m:Tt(!!m),y):e},y.touchable=function(m){return arguments.length?(s=typeof m=="function"?m:Tt(!!m),y):s},y.extent=function(m){return arguments.length?(t=typeof m=="function"?m:Tt([[+m[0][0],+m[0][1]],[+m[1][0],+m[1][1]]]),y):t},y.scaleExtent=function(m){return arguments.length?(i[0]=+m[0],i[1]=+m[1],y):[i[0],i[1]]},y.translateExtent=function(m){return arguments.length?(o[0][0]=+m[0][0],o[1][0]=+m[1][0],o[0][1]=+m[0][1],o[1][1]=+m[1][1],y):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},y.constrain=function(m){return arguments.length?(n=m,y):n},y.duration=function(m){return arguments.length?(a=+m,y):a},y.interpolate=function(m){return arguments.length?(l=m,y):l},y.on=function(){var m=u.on.apply(u,arguments);return m===u?y:m},y.clickDistance=function(m){return arguments.length?(x=(m=+m)*m,y):Math.sqrt(x)},y.tapDistance=function(m){return arguments.length?(v=+m,y):v},y}const Se={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.`},bt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],_i=["Enter"," ","Escape"];var Je;(function(e){e.Strict="strict",e.Loose="loose"})(Je||(Je={}));var He;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(He||(He={}));var vt;(function(e){e.Partial="partial",e.Full="full"})(vt||(vt={}));const ki={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null};var Ie;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ie||(Ie={}));var tn;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(tn||(tn={}));var G;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(G||(G={}));const ts={[G.Left]:G.Right,[G.Right]:G.Left,[G.Top]:G.Bottom,[G.Bottom]:G.Top};function Si(e){return e===null?null:e?"valid":"invalid"}const ji=e=>"id"in e&&"source"in e&&"target"in e,Kd=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),mr=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Et=(e,t=[0,0])=>{const{width:n,height:r}=je(e),s=e.origin??t,i=n*s[0],o=r*s[1];return{x:e.position.x-i,y:e.position.y-o}},Gd=(e,t={nodeOrigin:[0,0],nodeLookup:void 0})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const i=typeof s=="string";let o=!t.nodeLookup&&!i?s:void 0;t.nodeLookup&&(o=i?t.nodeLookup.get(s):mr(s)?s:t.nodeLookup.get(s.id));const a=o?nn(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return hn(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return pn(n)},Ct=(e,t={})=>{if(e.size===0)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return e.forEach(r=>{if(t.filter===void 0||t.filter(r)){const s=nn(r);n=hn(n,s)}}),pn(n)},Ei=(e,t,[n,r,s]=[0,0,1],i=!1,o=!1)=>{const a={...$t(t,[n,r,s]),width:t.width/s,height:t.height/s},l=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:h=!1}=u;if(o&&!f||h)continue;const p=d.width??u.width??u.initialWidth??null,g=d.height??u.height??u.initialHeight??null,x=Nt(a,tt(u)),v=(p??0)*(g??0),y=i&&x>0;(!u.internals.handleBounds||y||x>=v||u.dragging)&&l.push(u)}return l},Ud=(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 Qn(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 Jn({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:i},o){if(e.size===0)return Promise.resolve(!1);const a=Ct(e),l=xr(a,t,n,(o==null?void 0:o.minZoom)??s,(o==null?void 0:o.maxZoom)??i,(o==null?void 0:o.padding)??.1);return await r.setViewport(l,{duration:o==null?void 0:o.duration}),Promise.resolve(!0)}function Ci({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:i}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:u}=a?a.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let f=s;if(o.extent==="parent"&&!o.expandParent)if(!a)i==null||i("005",Se.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(f=[[l,u],[l+p,u+g]])}else a&&nt(o.extent)&&(f=[[o.extent[0][0]+l,o.extent[0][1]+u],[o.extent[1][0]+l,o.extent[1][1]+u]]);const h=nt(f)?Oe(t,f,o.measured):t;return{position:{x:h.x-l+o.measured.width*d[0],y:h.y-u+o.measured.height*d[1]},positionAbsolute:h}}async function Zd({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const i=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=i.has(h.id),g=!p&&h.parentId&&o.find(x=>x.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),d=Ud(o,l);for(const h of l)a.has(h.id)&&!d.find(g=>g.id===h.id)&&d.push(h);if(!s)return{edges:d,nodes:o};const f=await s({nodes:o,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:o}:{edges:[],nodes:[]}:f}const et=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Oe=(e={x:0,y:0},t,n)=>({x:et(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:et(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function $i(e,t,n){const{width:r,height:s}=je(n),{x:i,y:o}=n.internals.positionAbsolute;return Oe(e,[[i,o],[i+r,o+s]],t)}const ns=(e,t,n)=>e<t?et(Math.abs(e-t),1,t)/t:e>n?-et(Math.abs(e-n),1,t)/t:0,Mi=(e,t,n=15,r=40)=>{const s=ns(e.x,r,t.width-r)*n,i=ns(e.y,r,t.height-r)*n;return[s,i]},hn=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),er=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),pn=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),tt=(e,t=[0,0])=>{var s,i;const{x:n,y:r}=mr(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:r,width:((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},nn=(e,t=[0,0])=>{var s,i;const{x:n,y:r}=mr(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:r,x2:n+(((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0),y2:r+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},zi=(e,t)=>pn(hn(er(e),er(t))),Nt=(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)},rs=e=>he(e.width)&&he(e.height)&&he(e.x)&&he(e.y),he=e=>!isNaN(e)&&isFinite(e),Qd=(e,t)=>{},gn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),$t=({x:e,y:t},[n,r,s],i=!1,o=[1,1])=>{const a={x:(e-n)/s,y:(t-r)/s};return i?gn(a,o):a},Ii=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r}),xr=(e,t,n,r,s,i)=>{const o=t/(e.width*(1+i)),a=n/(e.height*(1+i)),l=Math.min(o,a),u=et(l,r,s),d=e.x+e.width/2,f=e.y+e.height/2,h=t/2-d*u,p=n/2-f*u;return{x:h,y:p,zoom:u}},rn=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function nt(e){return e!==void 0&&e!=="parent"}function je(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 Ai(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 Pi(e,t={width:0,height:0},n,r,s){const i={...e},o=r.get(n);if(o){const a=o.origin||s;i.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function ht(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:i,y:o}=ve(e),a=$t({x:i-((s==null?void 0:s.left)??0),y:o-((s==null?void 0:s.top)??0)},r),{x:l,y:u}=n?gn(a,t):a;return{xSnapped:l,ySnapped:u,...a}}const mn=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ti=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},Jd=["INPUT","SELECT","TEXTAREA"];function tr(e){var r,s,i;const t=((s=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:s[0])||e.target;return Jd.includes(t==null?void 0:t.nodeName)||((i=t==null?void 0:t.hasAttribute)==null?void 0:i.call(t,"contenteditable"))||!!(t!=null&&t.closest(".nokey"))}const Di=e=>"clientX"in e,ve=(e,t)=>{var i,o;const n=Di(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,s=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:s-((t==null?void 0:t.top)??0)}},ss=(e,t,n,r,s)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:s,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...mn(o)}})};function Ri({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:i,targetControlX:o,targetControlY:a}){const l=e*.125+s*.375+o*.375+n*.125,u=t*.125+i*.375+a*.375+r*.125,d=Math.abs(l-e),f=Math.abs(u-t);return[l,u,d,f]}function Dt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function is({pos:e,x1:t,y1:n,x2:r,y2:s,c:i}){switch(e){case G.Left:return[t-Dt(t-r,i),n];case G.Right:return[t+Dt(r-t,i),n];case G.Top:return[t,n-Dt(n-s,i)];case G.Bottom:return[t,n+Dt(s-n,i)]}}function Li({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:s,targetPosition:i=G.Top,curvature:o=.25}){const[a,l]=is({pos:n,x1:e,y1:t,x2:r,y2:s,c:o}),[u,d]=is({pos:i,x1:r,y1:s,x2:e,y2:t,c:o}),[f,h,p,g]=Ri({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}`,f,h,p,g]}function Hi({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,i=n<e?n+s:n-s,o=Math.abs(r-t)/2,a=r<t?r+o:r-o;return[i,a,s,o]}function ef({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1}){if(!s)return r;const i=n||t.selected||e.selected,o=Math.max(e.internals.z||0,t.internals.z||0,1e3);return r+(i?o:0)}function tf({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const i=hn(nn(e),nn(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const o={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return Nt(o,pn(i))>0}const nf=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,rf=(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)),sf=(e,t)=>{if(!e.source||!e.target)return t;let n;return ji(e)?n={...e}:n={...e,id:nf(e)},rf(n,t)?t:(n.sourceHandle===null&&delete n.sourceHandle,n.targetHandle===null&&delete n.targetHandle,t.concat(n))};function Fi({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,i,o,a]=Hi({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,i,o,a]}const os={[G.Left]:{x:-1,y:0},[G.Right]:{x:1,y:0},[G.Top]:{x:0,y:-1},[G.Bottom]:{x:0,y:1}},of=({source:e,sourcePosition:t=G.Bottom,target:n})=>t===G.Left||t===G.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},as=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function af({source:e,sourcePosition:t=G.Bottom,target:n,targetPosition:r=G.Top,center:s,offset:i}){const o=os[t],a=os[r],l={x:e.x+o.x*i,y:e.y+o.y*i},u={x:n.x+a.x*i,y:n.y+a.y*i},d=of({source:l,sourcePosition:t,target:u}),f=d.x!==0?"x":"y",h=d[f];let p=[],g,x;const v={x:0,y:0},y={x:0,y:0},[N,b,w,C]=Hi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(o[f]*a[f]===-1){g=s.x??N,x=s.y??b;const E=[{x:g,y:l.y},{x:g,y:u.y}],R=[{x:l.x,y:x},{x:u.x,y:x}];o[f]===h?p=f==="x"?E:R:p=f==="x"?R:E}else{const E=[{x:l.x,y:u.y}],R=[{x:u.x,y:l.y}];if(f==="x"?p=o.x===h?R:E:p=o.y===h?E:R,t===r){const A=Math.abs(e[f]-n[f]);if(A<=i){const m=Math.min(i-1,i-A);o[f]===h?v[f]=(l[f]>e[f]?-1:1)*m:y[f]=(u[f]>n[f]?-1:1)*m}}if(t!==r){const A=f==="x"?"y":"x",m=o[f]===a[A],k=l[A]>u[A],_=l[A]<u[A];(o[f]===1&&(!m&&k||m&&_)||o[f]!==1&&(!m&&_||m&&k))&&(p=f==="x"?E:R)}const D={x:l.x+v.x,y:l.y+v.y},P={x:u.x+y.x,y:u.y+y.y},T=Math.max(Math.abs(D.x-p[0].x),Math.abs(P.x-p[0].x)),F=Math.max(Math.abs(D.y-p[0].y),Math.abs(P.y-p[0].y));T>=F?(g=(D.x+P.x)/2,x=p[0].y):(g=p[0].x,x=(D.y+P.y)/2)}return[[e,{x:l.x+v.x,y:l.y+v.y},...p,{x:u.x+y.x,y:u.y+y.y},n],g,x,w,C]}function cf(e,t,n,r){const s=Math.min(as(e,t)/2,as(t,n)/2,r),{x:i,y:o}=t;if(e.x===i&&i===n.x||e.y===o&&o===n.y)return`L${i} ${o}`;if(e.y===o){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${i+s*u},${o}Q ${i},${o} ${i},${o+s*d}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${o+s*l}Q ${i},${o} ${i+s*a},${o}`}function nr({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:s,targetPosition:i=G.Top,borderRadius:o=5,centerX:a,centerY:l,offset:u=20}){const[d,f,h,p,g]=af({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:i,center:{x:a,y:l},offset:u});return[d.reduce((v,y,N)=>{let b="";return N>0&&N<d.length-1?b=cf(d[N-1],y,d[N+1],o):b=`${N===0?"M":"L"}${y.x} ${y.y}`,v+=b,v},""),f,h,p,g]}function cs(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function lf(e){var f;const{sourceNode:t,targetNode:n}=e;if(!cs(t)||!cs(n))return null;const r=t.internals.handleBounds||ls(t.handles),s=n.internals.handleBounds||ls(n.handles),i=us((r==null?void 0:r.source)??[],e.sourceHandle),o=us(e.connectionMode===Je.Strict?(s==null?void 0:s.target)??[]:((s==null?void 0:s.target)??[]).concat((s==null?void 0:s.source)??[]),e.targetHandle);if(!i||!o)return(f=e.onError)==null||f.call(e,"008",Se.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(i==null?void 0:i.position)||G.Bottom,l=(o==null?void 0:o.position)||G.Top,u=_t(t,i,a),d=_t(n,o,l);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:l}}function ls(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 _t(e,t,n=G.Left,r=!1){const s=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:o,height:a}=t??je(e);if(r)return{x:s+o/2,y:i+a/2};switch((t==null?void 0:t.position)??n){case G.Top:return{x:s+o/2,y:i};case G.Right:return{x:s+o,y:i+a/2};case G.Bottom:return{x:s+o/2,y:i+a};case G.Left:return{x:s,y:i+a/2}}}function us(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function rr(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function uf(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const i=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||s].forEach(l=>{if(l&&typeof l=="object"){const u=rr(l,t);i.has(u)||(o.push({id:u,color:l.color||n,...l}),i.add(u))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const yr={nodeOrigin:[0,0],nodeExtent:bt,elevateNodesOnSelect:!0,defaults:{}},df={...yr,checkEquality:!0};function wr(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function ff(e,t,n){const r=wr(yr,n);for(const s of e.values())if(s.parentId)br(s,e,t,r);else{const i=Et(s,r.nodeOrigin),o=nt(s.extent)?s.extent:r.nodeExtent,a=Oe(i,o,je(s));s.internals.positionAbsolute=a}}function sr(e,t,n,r){var a,l;const s=wr(df,r),i=new Map(t),o=s!=null&&s.elevateNodesOnSelect?1e3:0;t.clear(),n.clear();for(const u of e){let d=i.get(u.id);if(s.checkEquality&&u===(d==null?void 0:d.internals.userNode))t.set(u.id,d);else{const f=Et(u,s.nodeOrigin),h=nt(u.extent)?u.extent:s.nodeExtent,p=Oe(f,h,je(u));d={...s.defaults,...u,measured:{width:(a=u.measured)==null?void 0:a.width,height:(l=u.measured)==null?void 0:l.height},internals:{positionAbsolute:p,handleBounds:u.measured?d==null?void 0:d.internals.handleBounds:void 0,z:Oi(u,o),userNode:u}},t.set(u.id,d)}u.parentId&&br(d,t,n,r)}}function hf(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function br(e,t,n,r){const{elevateNodesOnSelect:s,nodeOrigin:i,nodeExtent:o}=wr(yr,r),a=e.parentId,l=t.get(a);if(!l){console.warn(`Parent node ${a} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}hf(e,n);const u=s?1e3:0,{x:d,y:f,z:h}=pf(e,l,i,o,u),{positionAbsolute:p}=e.internals,g=d!==p.x||f!==p.y;(g||h!==e.internals.z)&&(e.internals={...e.internals,positionAbsolute:g?{x:d,y:f}:p,z:h})}function Oi(e,t){return(he(e.zIndex)?e.zIndex:0)+(e.selected?t:0)}function pf(e,t,n,r,s){const{x:i,y:o}=t.internals.positionAbsolute,a=je(e),l=Et(e,n),u=nt(e.extent)?Oe(l,e.extent,a):l;let d=Oe({x:i+u.x,y:o+u.y},r,a);e.extent==="parent"&&(d=$i(d,a,t));const f=Oi(e,s),h=t.internals.z??0;return{x:d.x,y:d.y,z:h>f?h:f}}function vr(e,t,n,r=[0,0]){var o;const s=[],i=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const u=((o=i.get(a.parentId))==null?void 0:o.expandedRect)??tt(l),d=zi(u,a.rect);i.set(a.parentId,{expandedRect:d,parent:l})}return i.size>0&&i.forEach(({expandedRect:a,parent:l},u)=>{var b;const d=l.internals.positionAbsolute,f=je(l),h=l.origin??r,p=a.x<d.x?Math.round(Math.abs(d.x-a.x)):0,g=a.y<d.y?Math.round(Math.abs(d.y-a.y)):0,x=Math.max(f.width,Math.round(a.width)),v=Math.max(f.height,Math.round(a.height)),y=(x-f.width)*h[0],N=(v-f.height)*h[1];(p>0||g>0||y||N)&&(s.push({id:u,type:"position",position:{x:l.position.x-p+y,y:l.position.y-g+N}}),(b=n.get(u))==null||b.forEach(w=>{e.some(C=>C.id===w.id)||s.push({id:w.id,type:"position",position:{x:w.position.x+p,y:w.position.y+g}})})),(f.width<a.width||f.height<a.height||p||g)&&s.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:x+(p?h[0]*p-y:0),height:v+(g?h[1]*g-N:0)}})}),s}function gf(e,t,n,r,s,i){const o=r==null?void 0:r.querySelector(".xyflow__viewport");let a=!1;if(!o)return{changes:[],updatedInternals:a};const l=[],u=window.getComputedStyle(o),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(const h of e.values()){const p=t.get(h.id);if(p)if(p.hidden)p.internals={...p.internals,handleBounds:void 0},a=!0;else{const g=mn(h.nodeElement),x=p.measured.width!==g.width||p.measured.height!==g.height;if(!!(g.width&&g.height&&(x||!p.internals.handleBounds||h.force))){const y=h.nodeElement.getBoundingClientRect(),N=nt(p.extent)?p.extent:i;let{positionAbsolute:b}=p.internals;p.parentId&&p.extent==="parent"?b=$i(b,g,t.get(p.parentId)):N&&(b=Oe(b,N,g)),p.measured=g,p.internals={...p.internals,positionAbsolute:b,handleBounds:{source:ss("source",h.nodeElement,y,d,p.id),target:ss("target",h.nodeElement,y,d,p.id)}},p.parentId&&br(p,t,n,{nodeOrigin:s}),a=!0,x&&(l.push({id:p.id,type:"dimensions",dimensions:g}),p.expandParent&&p.parentId&&f.push({id:p.id,parentId:p.parentId,rect:tt(p,s)}))}}}if(f.length>0){const h=vr(f,t,n,s);l.push(...h)}return{changes:l,updatedInternals:a}}async function mf({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,i]],r),a=!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2]);return Promise.resolve(a)}function Bi(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:i,sourceHandle:o=null,targetHandle:a=null}=r,l=`${s}-source-${o}`,u=`${i}-target-${a}`,d=e.get(l)||new Map,f=e.get(u)||new Map,h={edgeId:r.id,source:s,target:i,sourceHandle:o,targetHandle:a};t.set(r.id,r),e.set(l,d.set(`${i}-${a}`,h)),e.set(u,f.set(`${s}-${o}`,h))}}function Vi(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Vi(n,t):!1}function ds(e,t,n){let r=e;do{if(r!=null&&r.matches(t))return!0;if(r===n)return!1;r=r.parentElement}while(r);return!1}function xf(e,t,n,r){const s=new Map;for(const[i,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Vi(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(i);a&&s.set(i,{id:i,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return s}function Tn({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const s=[];for(const[u,d]of t){const f=(o=n.get(u))==null?void 0:o.internals.userNode;f&&s.push({...f,position:d.position,dragging:r})}if(!e)return[s[0],s];const i=(a=n.get(e))==null?void 0:a.internals.userNode;return[i?{...i,position:((l=t.get(e))==null?void 0:l.position)||i.position,dragging:r}:s[0],s]}function yf({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let i={x:null,y:null},o=0,a=new Map,l=!1,u={x:0,y:0},d=null,f=!1,h=null,p=!1;function g({noDragClassName:v,handleSelector:y,domNode:N,isSelectable:b,nodeId:w,nodeClickDistance:C=0}){h=le(N);function L({x:P,y:T},F){const{nodeLookup:A,nodeExtent:m,snapGrid:k,snapToGrid:_,nodeOrigin:M,onNodeDrag:S,onSelectionDrag:j,onError:z,updateNodePositions:H}=t();i={x:P,y:T};let O=!1,X={x:0,y:0,x2:0,y2:0};if(a.size>1&&m){const V=Ct(a);X=er(V)}for(const[V,B]of a){if(!A.has(V))continue;let Y={x:P-B.distance.x,y:T-B.distance.y};_&&(Y=gn(Y,k));let U=[[m[0][0],m[0][1]],[m[1][0],m[1][1]]];if(a.size>1&&m&&!B.extent){const{positionAbsolute:K}=B.internals,Z=K.x-X.x+m[0][0],W=K.x+B.measured.width-X.x2+m[1][0],J=K.y-X.y+m[0][1],ee=K.y+B.measured.height-X.y2+m[1][1];U=[[Z,J],[W,ee]]}const{position:I,positionAbsolute:q}=Ci({nodeId:V,nextPosition:Y,nodeLookup:A,nodeExtent:U,nodeOrigin:M,onError:z});O=O||B.position.x!==I.x||B.position.y!==I.y,B.position=I,B.internals.positionAbsolute=q}if(O&&(H(a,!0),F&&(r||S||!w&&j))){const[V,B]=Tn({nodeId:w,dragItems:a,nodeLookup:A});r==null||r(F,a,V,B),S==null||S(F,V,B),w||j==null||j(F,B)}}async function E(){if(!d)return;const{transform:P,panBy:T,autoPanSpeed:F}=t(),[A,m]=Mi(u,d,F);(A!==0||m!==0)&&(i.x=(i.x??0)-A/P[2],i.y=(i.y??0)-m/P[2],await T({x:A,y:m})&&L(i,null)),o=requestAnimationFrame(E)}function R(P){var O;const{nodeLookup:T,multiSelectionActive:F,nodesDraggable:A,transform:m,snapGrid:k,snapToGrid:_,selectNodesOnDrag:M,onNodeDragStart:S,onSelectionDragStart:j,unselectNodesAndEdges:z}=t();f=!0,(!M||!b)&&!F&&w&&((O=T.get(w))!=null&&O.selected||z()),b&&M&&w&&(e==null||e(w));const H=ht(P.sourceEvent,{transform:m,snapGrid:k,snapToGrid:_,containerBounds:d});if(i=H,a=xf(T,A,H,w),a.size>0&&(n||S||!w&&j)){const[X,V]=Tn({nodeId:w,dragItems:a,nodeLookup:T});n==null||n(P.sourceEvent,a,X,V),S==null||S(P.sourceEvent,X,V),w||j==null||j(P.sourceEvent,V)}}const D=ai().clickDistance(C).on("start",P=>{const{domNode:T,nodeDragThreshold:F,transform:A,snapGrid:m,snapToGrid:k}=t();d=(T==null?void 0:T.getBoundingClientRect())||null,p=!1,F===0&&R(P),i=ht(P.sourceEvent,{transform:A,snapGrid:m,snapToGrid:k,containerBounds:d}),u=ve(P.sourceEvent,d)}).on("drag",P=>{const{autoPanOnNodeDrag:T,transform:F,snapGrid:A,snapToGrid:m,nodeDragThreshold:k,nodeLookup:_}=t(),M=ht(P.sourceEvent,{transform:F,snapGrid:A,snapToGrid:m,containerBounds:d});if((P.sourceEvent.type==="touchmove"&&P.sourceEvent.touches.length>1||w&&!_.has(w))&&(p=!0),!p){if(!l&&T&&f&&(l=!0,E()),!f){const S=M.xSnapped-(i.x??0),j=M.ySnapped-(i.y??0);Math.sqrt(S*S+j*j)>k&&R(P)}(i.x!==M.xSnapped||i.y!==M.ySnapped)&&a&&f&&(u=ve(P.sourceEvent,d),L(M,P.sourceEvent))}}).on("end",P=>{if(!(!f||p)&&(l=!1,f=!1,cancelAnimationFrame(o),a.size>0)){const{nodeLookup:T,updateNodePositions:F,onNodeDragStop:A,onSelectionDragStop:m}=t();if(F(a,!1),s||A||!w&&m){const[k,_]=Tn({nodeId:w,dragItems:a,nodeLookup:T,dragging:!1});s==null||s(P.sourceEvent,a,k,_),A==null||A(P.sourceEvent,k,_),w||m==null||m(P.sourceEvent,_)}}}).filter(P=>{const T=P.target;return!P.button&&(!v||!ds(T,`.${v}`,N))&&(!y||ds(T,y,N))});h.call(D)}function x(){h==null||h.on(".drag",null)}return{update:g,destroy:x}}function wf(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())Nt(s,tt(i))>0&&r.push(i);return r}const bf=250;function vf(e,t,n,r){var a,l;let s=[],i=1/0;const o=wf(e,n,t+bf);for(const u of o){const d=[...((a=u.internals.handleBounds)==null?void 0:a.source)??[],...((l=u.internals.handleBounds)==null?void 0:l.target)??[]];for(const f of d){if(r.nodeId===f.nodeId&&r.type===f.type&&r.id===f.id)continue;const{x:h,y:p}=_t(u,f,f.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g<i?(s=[{...f,x:h,y:p}],i=g):g===i&&s.push({...f,x:h,y:p}))}}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 qi(e,t,n,r,s,i=!1){var u,d,f;const o=r.get(e);if(!o)return null;const a=s==="strict"?(u=o.internals.handleBounds)==null?void 0:u[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((f=o.internals.handleBounds)==null?void 0:f.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&i?{...l,..._t(o,l,l.position,!0)}:l}function Xi(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Nf(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const Yi=()=>!0;function _f(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:i,isTarget:o,domNode:a,nodeLookup:l,lib:u,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:x,onConnectEnd:v,isValidConnection:y=Yi,onReconnectEnd:N,updateConnection:b,getTransform:w,getFromHandle:C,autoPanSpeed:L}){const E=Ti(e.target);let R=0,D;const{x:P,y:T}=ve(e),F=E==null?void 0:E.elementFromPoint(P,T),A=Xi(i,F),m=a==null?void 0:a.getBoundingClientRect();if(!m||!A)return;const k=qi(s,A,r,l,t);if(!k)return;let _=ve(e,m),M=!1,S=null,j=!1,z=null;function H(){if(!d||!m)return;const[q,K]=Mi(_,m,L);h({x:q,y:K}),R=requestAnimationFrame(H)}const O={...k,nodeId:s,type:A,position:k.position},X=l.get(s),B={inProgress:!0,isValid:null,from:_t(X,O,G.Left,!0),fromHandle:O,fromPosition:O.position,fromNode:X,to:_,toHandle:null,toPosition:ts[O.position],toNode:null};b(B);let Y=B;g==null||g(e,{nodeId:s,handleId:r,handleType:A});function U(q){if(!C()||!O){I(q);return}const K=w();_=ve(q,m),D=vf($t(_,K,!1,[1,1]),n,l,O),M||(H(),M=!0);const Z=Wi(q,{handle:D,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:o?"target":"source",isValidConnection:y,doc:E,lib:u,flowId:f,nodeLookup:l});z=Z.handleDomNode,S=Z.connection,j=Nf(!!D,Z.isValid);const W={...Y,isValid:j,to:D&&j?Ii({x:D.x,y:D.y},K):_,toHandle:Z.toHandle,toPosition:j&&Z.toHandle?Z.toHandle.position:ts[O.position],toNode:Z.toHandle?l.get(Z.toHandle.nodeId):null};j&&D&&Y.toHandle&&W.toHandle&&Y.toHandle.type===W.toHandle.type&&Y.toHandle.nodeId===W.toHandle.nodeId&&Y.toHandle.id===W.toHandle.id&&Y.to.x===W.to.x&&Y.to.y===W.to.y||(b(W),Y=W)}function I(q){(D||z)&&S&&j&&(x==null||x(S));const{inProgress:K,...Z}=Y,W={...Z,toPosition:Y.toHandle?Y.toPosition:null};v==null||v(q,W),i&&(N==null||N(q,W)),p(),cancelAnimationFrame(R),M=!1,j=!1,S=null,z=null,E.removeEventListener("mousemove",U),E.removeEventListener("mouseup",I),E.removeEventListener("touchmove",U),E.removeEventListener("touchend",I)}E.addEventListener("mousemove",U),E.addEventListener("mouseup",I),E.addEventListener("touchmove",U),E.addEventListener("touchend",I)}function Wi(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:i,doc:o,lib:a,flowId:l,isValidConnection:u=Yi,nodeLookup:d}){const f=i==="target",h=t?o.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:p,y:g}=ve(e),x=o.elementFromPoint(p,g),v=x!=null&&x.classList.contains(`${a}-flow__handle`)?x:h,y={handleDomNode:v,isValid:!1,connection:null,toHandle:null};if(v){const N=Xi(void 0,v),b=v.getAttribute("data-nodeid"),w=v.getAttribute("data-handleid"),C=v.classList.contains("connectable"),L=v.classList.contains("connectableend");if(!b||!N)return y;const E={source:f?b:r,sourceHandle:f?w:s,target:f?r:b,targetHandle:f?s:w};y.connection=E;const D=C&&L&&(n===Je.Strict?f&&N==="source"||!f&&N==="target":b!==r||w!==s);y.isValid=D&&u(E),y.toHandle=qi(b,N,w,d,n,!1)}return y}const ir={onPointerDown:_f,isValid:Wi};function kf({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=le(e);function i({translateExtent:a,width:l,height:u,zoomStep:d=10,pannable:f=!0,zoomable:h=!0,inversePan:p=!1}){const g=b=>{const w=n();if(b.sourceEvent.type!=="wheel"||!t)return;const C=-b.sourceEvent.deltaY*(b.sourceEvent.deltaMode===1?.05:b.sourceEvent.deltaMode?1:.002)*d,L=w[2]*Math.pow(2,C);t.scaleTo(L)};let x=[0,0];const v=b=>{(b.sourceEvent.type==="mousedown"||b.sourceEvent.type==="touchstart")&&(x=[b.sourceEvent.clientX??b.sourceEvent.touches[0].clientX,b.sourceEvent.clientY??b.sourceEvent.touches[0].clientY])},y=b=>{const w=n();if(b.sourceEvent.type!=="mousemove"&&b.sourceEvent.type!=="touchmove"||!t)return;const C=[b.sourceEvent.clientX??b.sourceEvent.touches[0].clientX,b.sourceEvent.clientY??b.sourceEvent.touches[0].clientY],L=[C[0]-x[0],C[1]-x[1]];x=C;const E=r()*Math.max(w[2],Math.log(w[2]))*(p?-1:1),R={x:w[0]-L[0]*E,y:w[1]-L[1]*E},D=[[0,0],[l,u]];t.setViewportConstrained({x:R.x,y:R.y,zoom:w[2]},D,a)},N=Ni().on("start",v).on("zoom",f?y:null).on("zoom.wheel",h?g:null);s.call(N,{})}function o(){s.on("zoom",null)}return{update:i,destroy:o,pointer:de}}const Sf=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,xn=e=>({x:e.x,y:e.y,zoom:e.k}),Dn=({x:e,y:t,zoom:n})=>fn.translate(e,t).scale(n),Ye=(e,t)=>e.target.closest(`.${t}`),Ki=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Rn=(e,t=0,n=()=>{})=>{const r=typeof t=="number"&&t>0;return r||n(),r?e.transition().duration(t).on("end",n):e},Gi=e=>{const t=e.ctrlKey&&rn()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function jf({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:i,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(Ye(d,t))return!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&o){const v=de(d),y=Gi(d),N=f*Math.pow(2,y);r.scaleTo(n,N,v,d);return}const h=d.deltaMode===1?20:1;let p=s===He.Vertical?0:d.deltaX*h,g=s===He.Horizontal?0:d.deltaY*h;!rn()&&d.shiftKey&&s!==He.Vertical&&(p=d.deltaY*h,g=0),r.translateBy(n,-(p/f)*i,-(g/f)*i,{internal:!0});const x=xn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling||(e.isPanScrolling=!0,a==null||a(d,x)),e.isPanScrolling&&(l==null||l(d,x),e.panScrollTimeout=setTimeout(()=>{u==null||u(d,x),e.isPanScrolling=!1},150))}}function Ef({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){if(!t&&r.type==="wheel"&&!r.ctrlKey||Ye(r,e))return null;r.preventDefault(),n.call(this,r,s)}}function Cf({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,o,a;if((i=r.sourceEvent)!=null&&i.internal)return;const s=xn(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.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 $f({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return i=>{var o,a;e.usedRightMouseButton=!!(n&&Ki(t,e.mouseButton??0)),(o=i.sourceEvent)!=null&&o.sync||r([i.transform.x,i.transform.y,i.transform.k]),s&&!((a=i.sourceEvent)!=null&&a.internal)&&(s==null||s(i.sourceEvent,xn(i.transform)))}}function Mf({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:i}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,i&&Ki(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&i(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),s&&Sf(e.prevViewport,o.transform))){const l=xn(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s==null||s(o.sourceEvent,l)},n?150:0)}}}function zf({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:i,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:u}){return d=>{var g;const f=e||t,h=n&&d.ctrlKey;if(d.button===1&&d.type==="mousedown"&&(Ye(d,`${u}-flow__node`)||Ye(d,`${u}-flow__edge`)))return!0;if(!r&&!f&&!s&&!i&&!n||o||Ye(d,a)&&d.type==="wheel"||Ye(d,l)&&(d.type!=="wheel"||s&&d.type==="wheel"&&!e)||!n&&d.ctrlKey&&d.type==="wheel")return!1;if(!n&&d.type==="touchstart"&&((g=d.touches)==null?void 0:g.length)>1)return d.preventDefault(),!1;if(!f&&!s&&!h&&d.type==="wheel"||!r&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(r)&&!r.includes(d.button)&&d.type==="mousedown")return!1;const p=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||d.type==="wheel")&&p}}function If({domNode:e,minZoom:t,maxZoom:n,paneClickDistance:r,translateExtent:s,viewport:i,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:l,onDraggingChange:u}){const d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect(),h=Ni().clickDistance(!he(r)||r<0?0:r).scaleExtent([t,n]).translateExtent(s),p=le(e).call(h);b({x:i.x,y:i.y,zoom:et(i.zoom,t,n)},[[0,0],[f.width,f.height]],s);const g=p.on("wheel.zoom"),x=p.on("dblclick.zoom");h.wheelDelta(Gi);function v(F,A){return p?new Promise(m=>{h==null||h.transform(Rn(p,A==null?void 0:A.duration,()=>m(!0)),F)}):Promise.resolve(!1)}function y({noWheelClassName:F,noPanClassName:A,onPaneContextMenu:m,userSelectionActive:k,panOnScroll:_,panOnDrag:M,panOnScrollMode:S,panOnScrollSpeed:j,preventScrolling:z,zoomOnPinch:H,zoomOnScroll:O,zoomOnDoubleClick:X,zoomActivationKeyPressed:V,lib:B,onTransformChange:Y}){k&&!d.isZoomingOrPanning&&N();const I=_&&!V&&!k?jf({zoomPanValues:d,noWheelClassName:F,d3Selection:p,d3Zoom:h,panOnScrollMode:S,panOnScrollSpeed:j,zoomOnPinch:H,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:l}):Ef({noWheelClassName:F,preventScrolling:z,d3ZoomHandler:g});if(p.on("wheel.zoom",I,{passive:!1}),!k){const K=Cf({zoomPanValues:d,onDraggingChange:u,onPanZoomStart:a});h.on("start",K);const Z=$f({zoomPanValues:d,panOnDrag:M,onPaneContextMenu:!!m,onPanZoom:o,onTransformChange:Y});h.on("zoom",Z);const W=Mf({zoomPanValues:d,panOnDrag:M,panOnScroll:_,onPaneContextMenu:m,onPanZoomEnd:l,onDraggingChange:u});h.on("end",W)}const q=zf({zoomActivationKeyPressed:V,panOnDrag:M,zoomOnScroll:O,panOnScroll:_,zoomOnDoubleClick:X,zoomOnPinch:H,userSelectionActive:k,noPanClassName:A,noWheelClassName:F,lib:B});h.filter(q),X?p.on("dblclick.zoom",x):p.on("dblclick.zoom",null)}function N(){h.on("zoom",null)}async function b(F,A,m){const k=Dn(F),_=h==null?void 0:h.constrain()(k,A,m);return _&&await v(_),new Promise(M=>M(_))}async function w(F,A){const m=Dn(F);return await v(m,A),new Promise(k=>k(m))}function C(F){if(p){const A=Dn(F),m=p.property("__zoom");(m.k!==F.zoom||m.x!==F.x||m.y!==F.y)&&(h==null||h.transform(p,A,null,{sync:!0}))}}function L(){const F=p?vi(p.node()):{x:0,y:0,k:1};return{x:F.x,y:F.y,zoom:F.k}}function E(F,A){return p?new Promise(m=>{h==null||h.scaleTo(Rn(p,A==null?void 0:A.duration,()=>m(!0)),F)}):Promise.resolve(!1)}function R(F,A){return p?new Promise(m=>{h==null||h.scaleBy(Rn(p,A==null?void 0:A.duration,()=>m(!0)),F)}):Promise.resolve(!1)}function D(F){h==null||h.scaleExtent(F)}function P(F){h==null||h.translateExtent(F)}function T(F){const A=!he(F)||F<0?0:F;h==null||h.clickDistance(A)}return{update:y,destroy:N,setViewport:w,setViewportConstrained:b,getViewport:L,scaleTo:E,scaleBy:R,setScaleExtent:D,setTranslateExtent:P,syncViewport:C,setClickDistance:T}}var pt;(function(e){e.Line="line",e.Handle="handle"})(pt||(pt={}));function Af({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:i}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&s&&(l[0]=l[0]*-1),a&&i&&(l[1]=l[1]*-1),l}function Pf(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 $e(e,t){return Math.max(0,t-e)}function Me(e,t){return Math.max(0,e-t)}function Rt(e,t,n){return Math.max(0,t-e,e-n)}function fs(e,t){return e?!t:t}function Tf(e,t,n,r,s,i,o,a){let{affectsX:l,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:p,ySnapped:g}=n,{minWidth:x,maxWidth:v,minHeight:y,maxHeight:N}=r,{x:b,y:w,width:C,height:L,aspectRatio:E}=e;let R=Math.floor(d?p-e.pointerX:0),D=Math.floor(f?g-e.pointerY:0);const P=C+(l?-R:R),T=L+(u?-D:D),F=-i[0]*C,A=-i[1]*L;let m=Rt(P,x,v),k=Rt(T,y,N);if(o){let S=0,j=0;l&&R<0?S=$e(b+R+F,o[0][0]):!l&&R>0&&(S=Me(b+P+F,o[1][0])),u&&D<0?j=$e(w+D+A,o[0][1]):!u&&D>0&&(j=Me(w+T+A,o[1][1])),m=Math.max(m,S),k=Math.max(k,j)}if(a){let S=0,j=0;l&&R>0?S=Me(b+R,a[0][0]):!l&&R<0&&(S=$e(b+P,a[1][0])),u&&D>0?j=Me(w+D,a[0][1]):!u&&D<0&&(j=$e(w+T,a[1][1])),m=Math.max(m,S),k=Math.max(k,j)}if(s){if(d){const S=Rt(P/E,y,N)*E;if(m=Math.max(m,S),o){let j=0;!l&&!u||l&&!u&&h?j=Me(w+A+P/E,o[1][1])*E:j=$e(w+A+(l?R:-R)/E,o[0][1])*E,m=Math.max(m,j)}if(a){let j=0;!l&&!u||l&&!u&&h?j=$e(w+P/E,a[1][1])*E:j=Me(w+(l?R:-R)/E,a[0][1])*E,m=Math.max(m,j)}}if(f){const S=Rt(T*E,x,v)/E;if(k=Math.max(k,S),o){let j=0;!l&&!u||u&&!l&&h?j=Me(b+T*E+F,o[1][0])/E:j=$e(b+(u?D:-D)*E+F,o[0][0])/E,k=Math.max(k,j)}if(a){let j=0;!l&&!u||u&&!l&&h?j=$e(b+T*E,a[1][0])/E:j=Me(b+(u?D:-D)*E,a[0][0])/E,k=Math.max(k,j)}}}D=D+(D<0?k:-k),R=R+(R<0?m:-m),s&&(h?P>T*E?D=(fs(l,u)?-R:R)/E:R=(fs(l,u)?-D:D)*E:d?(D=R/E,u=l):(R=D*E,l=u));const _=l?b+R:b,M=u?w+D:w;return{width:C+(l?-R:R),height:L+(u?-D:D),x:i[0]*R*(l?-1:1)+_,y:i[1]*D*(u?-1:1)+M}}const Ui={width:0,height:0,x:0,y:0},Df={...Ui,pointerX:0,pointerY:0,aspectRatio:1};function Rf(e){return[[0,0],[e.measured.width,e.measured.height]]}function Lf(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,i=e.measured.width??0,o=e.measured.height??0,a=n[0]*i,l=n[1]*o;return[[r-a,s-l],[r+i-a,s+o-l]]}function Hf({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const i=le(e);function o({controlPosition:l,boundaries:u,keepAspectRatio:d,onResizeStart:f,onResize:h,onResizeEnd:p,shouldResize:g}){let x={...Ui},v={...Df};const y=Pf(l);let N,b=null,w=[],C,L,E;const R=ai().on("start",D=>{const{nodeLookup:P,transform:T,snapGrid:F,snapToGrid:A,nodeOrigin:m,paneDomNode:k}=n();if(N=P.get(t),!N)return;b=(k==null?void 0:k.getBoundingClientRect())??null;const{xSnapped:_,ySnapped:M}=ht(D.sourceEvent,{transform:T,snapGrid:F,snapToGrid:A,containerBounds:b});x={width:N.measured.width??0,height:N.measured.height??0,x:N.position.x??0,y:N.position.y??0},v={...x,pointerX:_,pointerY:M,aspectRatio:x.width/x.height},C=void 0,N.parentId&&(N.extent==="parent"||N.expandParent)&&(C=P.get(N.parentId),L=C&&N.extent==="parent"?Rf(C):void 0),w=[],E=void 0;for(const[S,j]of P)if(j.parentId===t&&(w.push({id:S,position:{...j.position},extent:j.extent}),j.extent==="parent"||j.expandParent)){const z=Lf(j,N,j.origin??m);E?E=[[Math.min(z[0][0],E[0][0]),Math.min(z[0][1],E[0][1])],[Math.max(z[1][0],E[1][0]),Math.max(z[1][1],E[1][1])]]:E=z}f==null||f(D,{...x})}).on("drag",D=>{const{transform:P,snapGrid:T,snapToGrid:F,nodeOrigin:A}=n(),m=ht(D.sourceEvent,{transform:P,snapGrid:T,snapToGrid:F,containerBounds:b}),k=[];if(!N)return;const{x:_,y:M,width:S,height:j}=x,z={},H=N.origin??A,{width:O,height:X,x:V,y:B}=Tf(v,y,m,u,d,H,L,E),Y=O!==S,U=X!==j,I=V!==_&&Y,q=B!==M&&U;if(!I&&!q&&!Y&&!U)return;if((I||q||H[0]===1||H[1]===1)&&(z.x=I?V:x.x,z.y=q?B:x.y,x.x=z.x,x.y=z.y,w.length>0)){const J=V-_,ee=B-M;for(const oe of w)oe.position={x:oe.position.x-J+H[0]*(O-S),y:oe.position.y-ee+H[1]*(X-j)},k.push(oe)}if((Y||U)&&(z.width=Y?O:x.width,z.height=U?X:x.height,x.width=z.width,x.height=z.height),C&&N.expandParent){const J=H[0]*(z.width??0);z.x&&z.x<J&&(x.x=J,v.x=v.x-(z.x-J));const ee=H[1]*(z.height??0);z.y&&z.y<ee&&(x.y=ee,v.y=v.y-(z.y-ee))}const K=Af({width:x.width,prevWidth:S,height:x.height,prevHeight:j,affectsX:y.affectsX,affectsY:y.affectsY}),Z={...x,direction:K};(g==null?void 0:g(D,Z))!==!1&&(h==null||h(D,Z),r(z,k))}).on("end",D=>{p==null||p(D,{...x}),s==null||s()});i.call(R)}function a(){i.on(".drag",null)}return{update:o,destroy:a}}var Zi={exports:{}},Qi={},Ji={exports:{}},eo={};/**
|
|
1
|
+
var Ar=e=>{throw TypeError(e)};var Mn=(e,t,n)=>t.has(e)||Ar("Cannot "+n);var ne=(e,t,n)=>(Mn(e,t,"read from private field"),n?n.call(e):t.get(e)),Be=(e,t,n)=>t.has(e)?Ar("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),Ve=(e,t,n,r)=>(Mn(e,t,"write to private field"),r?r.call(e,n):t.set(e,n),n),qe=(e,t,n)=>(Mn(e,t,"access private method"),n);import{S as Oa,s as Fa,h as Pr,g as Ba,n as qs,u as cn,r as $,a as Va,b as qa,c as Yt,i as Xs,j as c,K as Vn,X as Ue,B as lr,d as Xa,e as we,R as Ya,C as Ys,f as Wa,k as ie,l as Ka,m as Ga,o as Ua,p as Za,q as Qa,t as Ja,v as ur,P as ec,w as zn,x as tc,Q as nc,y as rc,z as sc}from"./index-vYlHyRGm.js";var Ae,Pe,ae,ye,_e,Ot,qn,Vs,ic=(Vs=class extends Oa{constructor(t,n){super();Be(this,_e);Be(this,Ae);Be(this,Pe);Be(this,ae);Be(this,ye);Ve(this,Ae,t),this.setOptions(n),this.bindMethods(),qe(this,_e,Ot).call(this)}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(t){var r;const n=this.options;this.options=ne(this,Ae).defaultMutationOptions(t),Fa(this.options,n)||ne(this,Ae).getMutationCache().notify({type:"observerOptionsUpdated",mutation:ne(this,ae),observer:this}),n!=null&&n.mutationKey&&this.options.mutationKey&&Pr(n.mutationKey)!==Pr(this.options.mutationKey)?this.reset():((r=ne(this,ae))==null?void 0:r.state.status)==="pending"&&ne(this,ae).setOptions(this.options)}onUnsubscribe(){var t;this.hasListeners()||(t=ne(this,ae))==null||t.removeObserver(this)}onMutationUpdate(t){qe(this,_e,Ot).call(this),qe(this,_e,qn).call(this,t)}getCurrentResult(){return ne(this,Pe)}reset(){var t;(t=ne(this,ae))==null||t.removeObserver(this),Ve(this,ae,void 0),qe(this,_e,Ot).call(this),qe(this,_e,qn).call(this)}mutate(t,n){var r;return Ve(this,ye,n),(r=ne(this,ae))==null||r.removeObserver(this),Ve(this,ae,ne(this,Ae).getMutationCache().build(ne(this,Ae),this.options)),ne(this,ae).addObserver(this),ne(this,ae).execute(t)}},Ae=new WeakMap,Pe=new WeakMap,ae=new WeakMap,ye=new WeakMap,_e=new WeakSet,Ot=function(){var n;const t=((n=ne(this,ae))==null?void 0:n.state)??Ba();Ve(this,Pe,{...t,isPending:t.status==="pending",isSuccess:t.status==="success",isError:t.status==="error",isIdle:t.status==="idle",mutate:this.mutate,reset:this.reset})},qn=function(t){qs.batch(()=>{var n,r,s,i,o,a,l,u;if(ne(this,ye)&&this.hasListeners()){const d=ne(this,Pe).variables,f=ne(this,Pe).context;(t==null?void 0:t.type)==="success"?((r=(n=ne(this,ye)).onSuccess)==null||r.call(n,t.data,d,f),(i=(s=ne(this,ye)).onSettled)==null||i.call(s,t.data,null,d,f)):(t==null?void 0:t.type)==="error"&&((a=(o=ne(this,ye)).onError)==null||a.call(o,t.error,d,f),(u=(l=ne(this,ye)).onSettled)==null||u.call(l,void 0,t.error,d,f))}this.listeners.forEach(d=>{d(ne(this,Pe))})})},Vs);function Xe(e,t){const n=cn(),[r]=$.useState(()=>new ic(n,e));$.useEffect(()=>{r.setOptions(e)},[r,e]);const s=$.useSyncExternalStore($.useCallback(o=>r.subscribe(qs.batchCalls(o)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),i=$.useCallback((o,a)=>{r.mutate(o,a).catch(Va)},[r]);if(s.error&&qa(r.options.throwOnError,[s.error]))throw s.error;return{...s,mutate:i,mutateAsync:s.mutate}}const Tr="compensate:";function oc(e){return e.startsWith(Tr)?e.slice(Tr.length):e}function ac(e){const t=[],n=[];for(const r of e)r.seq<0?n.push(r):t.push(r);return n.sort((r,s)=>s.seq-r.seq),{body:t,compensations:n}}function cc(e){let t=0,n=0,r=0;for(const s of e)s.status==="completed"?t++:s.status==="failed"?n++:r++;return{total:e.length,done:t,failed:n,pending:r}}function Wt(e){const t=e.lastIndexOf("@");return t===-1?"default":e.slice(t+1)}function Xn(e){const t=e.lastIndexOf("@");return t===-1?e:e.slice(0,t)}function lc(e){const t=new Map;for(const r of e){const s=Wt(r.group),i=t.get(s);i?i.push(r):t.set(s,[r])}return[...t.entries()].map(([r,s])=>{const i=new Set;let o=0,a=0;for(const l of s){o+=l.depth,l.depth>0&&l.liveWorkers.length===0&&(a+=1);for(const u of l.liveWorkers)i.add(u.instanceId)}return{partition:r,workerCount:i.size,handlerCount:s.length,totalDepth:o,starvedCount:a}}).sort((r,s)=>r.partition==="default"?-1:s.partition==="default"?1:r.partition.localeCompare(s.partition))}function uc(e,t){if(!e)return t;const n=new Map(e.timeline.map(r=>[r.seq,r]));return{...t,timeline:t.timeline.map(r=>{var i,o;if((r.status==="pending"||r.status==="running")&&(((i=r.events)==null?void 0:i.length)??0)===0){const a=(o=n.get(r.seq))==null?void 0:o.events;if(a!=null&&a.length)return{...r,events:a}}return r})}}function dc(e){var n,r;const t=new Map;for(const s of e)for(const i of s.liveWorkers){const o=Xn(i.group),a=t.get(i.instanceId);if(a===void 0){t.set(i.instanceId,{instanceId:i.instanceId,partition:Wt(i.group),runtime:(n=i.status)==null?void 0:n.runtime,handlers:new Set([o]),status:i.status,lastBeatAt:i.lastBeatAt});continue}a.handlers.add(o),i.lastBeatAt>=a.lastBeatAt&&(a.lastBeatAt=i.lastBeatAt,a.partition=Wt(i.group),a.runtime=(r=i.status)==null?void 0:r.runtime,a.status=i.status)}return[...t.values()].map(s=>({instanceId:s.instanceId,partition:s.partition,runtime:s.runtime,handlers:[...s.handlers].sort((i,o)=>i.localeCompare(o)),status:s.status,lastBeatAt:s.lastBeatAt})).sort((s,i)=>s.partition!==i.partition?s.partition==="default"?-1:i.partition==="default"?1:s.partition.localeCompare(i.partition):s.instanceId.localeCompare(i.instanceId))}function fc(e){const t=new Set,n=new Set,r=new Set;for(const i of e){for(const o of i.liveWorkers)t.add(o.instanceId);i.kind==="workflow"?n.add(Xn(i.group)):i.kind==="step"&&r.add(Xn(i.group))}const s=e.filter(i=>i.depth>0&&i.liveWorkers.length===0).sort((i,o)=>o.depth-i.depth);return{queueCount:e.length,workflowCount:n.size,stepCount:r.size,workerCount:t.size,starved:s,allDraining:s.length===0}}function Kt(e){return e<1e3?`${Math.round(e)}ms`:e<6e4?`${(e/1e3).toFixed(2)}s`:`${(e/6e4).toFixed(2)}m`}function Dr(e,t){return Kt(new Date(t).getTime()-new Date(e).getTime())}function Rr(e){return dr(new Date(e).getTime())}function dr(e){return new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})}const Ws={ok:"border-emerald-500/25 bg-emerald-500/10 text-emerald-300",failed:"border-red-500/25 bg-red-500/10 text-red-300",skipped:"border-amber-500/25 bg-amber-500/10 text-amber-300"},hc={debug:"text-zinc-500",info:"text-zinc-300",warn:"text-amber-300",error:"text-red-300"},pc=["ok","failed","skipped"];function Ks({e}){return c.jsxs("div",{className:"flex gap-2 py-0.5",children:[c.jsx("span",{className:"shrink-0 text-zinc-600 tnum",children:dr(e.at)}),c.jsx("span",{className:`shrink-0 uppercase ${hc[e.level]}`,children:e.level}),c.jsx("span",{className:"min-w-0 break-words text-zinc-300",children:e.message})]})}function Lr({sub:e,showGroup:t=!0}){var a,l;const n=((a=e.terminal)==null?void 0:a.message)!==void 0&&e.terminal.message!==e.name,r=e.phases.length>0||e.logs.length>0||n,[s,i]=$.useState(e.status==="failed"),o=e.status?Ws[e.status]:"border-amber-500/25 bg-amber-500/10 text-amber-300";return c.jsxs("li",{className:`rounded-md border ${o}`,children:[c.jsxs("button",{type:"button",disabled:!r,onClick:()=>i(u=>!u),className:"flex w-full items-center justify-between gap-2 px-2.5 py-1.5 text-left text-[11.5px] disabled:cursor-default","aria-expanded":r?s:void 0,children:[c.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[r&&c.jsx("span",{className:`text-[9px] text-zinc-500 transition-transform duration-150 ${s?"":"-rotate-90"}`,children:"▼"}),c.jsx("span",{className:"mono truncate text-zinc-200",children:e.name}),t&&e.group&&c.jsx("span",{className:"mono shrink-0 text-[10px] uppercase tracking-wider text-zinc-500",children:e.group})]}),c.jsxs("span",{className:"mono flex shrink-0 items-center gap-2 text-[10px] uppercase tracking-wider",children:[e.durationMs!==void 0&&c.jsx("span",{className:"tnum text-zinc-400",children:Kt(e.durationMs)}),c.jsx("span",{children:e.status??"running"})]})]}),s&&c.jsxs("div",{className:"border-t border-[var(--line)]/60 px-2.5 py-2",children:[e.phases.length>0&&c.jsx("ul",{className:"mono mb-2 flex flex-col gap-0.5 text-[10.5px]",children:e.phases.map((u,d)=>c.jsxs("li",{className:"flex gap-2",children:[c.jsx("span",{className:"shrink-0 text-zinc-600 tnum",children:dr(u.at)}),c.jsx("span",{className:"text-zinc-400",children:u.phase}),e.startedAt!==void 0&&c.jsxs("span",{className:"text-zinc-600 tnum",children:["+",Kt(u.at-e.startedAt)]})]},`${u.at}-${u.phase}-${d}`))}),((l=e.terminal)==null?void 0:l.message)&&e.terminal.message!==e.name&&c.jsx("div",{className:`mono mb-2 rounded border p-2 text-[11px] ${e.status==="failed"?"border-red-500/25 bg-red-500/10 text-red-200":"border-[var(--line)] bg-black/20 text-zinc-300"}`,children:e.terminal.message}),e.logs.length>0&&c.jsx("div",{className:"mono flex flex-col gap-0.5 text-[11px]",children:e.logs.map((u,d)=>c.jsx(Ks,{e:u},`${u.at}-${d}`))})]})]})}function gc({events:e}){const{subs:t,stepLogs:n}=Xa(e),r=pc.map(i=>[i,t.filter(o=>o.status===i).length]).filter(([,i])=>i>0),s=t.some(i=>i.group);return c.jsxs(c.Fragment,{children:[t.length>0&&c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[c.jsxs("span",{className:"mono text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:["sub-processes · ",t.length]}),c.jsx("span",{className:"mono flex gap-2 text-[10px] uppercase tracking-wider",children:r.map(([i,o])=>c.jsxs("span",{className:Ws[i].split(" ").pop(),children:[o," ",i]},i))})]}),s?Object.entries(t.reduce((i,o)=>{const a=o.group??"—";return i[a]===void 0&&(i[a]=[]),i[a].push(o),i},{})).sort(([i],[o])=>i==="—"?1:o==="—"?-1:i.localeCompare(o)).map(([i,o])=>c.jsxs("div",{className:"mb-2",children:[c.jsx("div",{className:"mono mb-1 text-[10px] uppercase tracking-wider text-zinc-500",children:i}),c.jsx("ul",{className:"flex flex-col gap-1",children:o.map(a=>c.jsx(Lr,{sub:a,showGroup:!1},a.id))})]},i)):c.jsx("ul",{className:"flex flex-col gap-1",children:t.map(i=>c.jsx(Lr,{sub:i},i.id))})]}),n.length>0&&c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mono mb-1.5 text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:["logs · ",n.length]}),c.jsx("div",{className:"mono max-h-64 overflow-auto rounded-lg border border-[var(--line)] bg-black/40 p-2.5 text-[11px] leading-relaxed",children:n.map((i,o)=>c.jsx(Ks,{e:i},`${i.at}-${o}`))})]})]})}function mc({value:e}){const[t,n]=$.useState(!1);return c.jsxs("button",{type:"button",className:"flex items-center gap-1 rounded border border-[var(--line)] px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-zinc-500 transition-colors hover:text-zinc-200",onClick:async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),1200)}catch{}},children:[t?c.jsx(Ys,{width:11,height:11}):c.jsx(Wa,{width:11,height:11}),t?"copied":"copy"]})}function Gt({label:e,value:t}){const n=typeof t=="string"?t:JSON.stringify(t,null,2);return c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[c.jsx("span",{className:"mono text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:e}),c.jsx(mc,{value:n})]}),c.jsx("pre",{className:"mono max-h-64 overflow-auto rounded-lg border border-[var(--line)] bg-black/40 p-3 text-[11.5px] leading-relaxed text-zinc-300",children:n})]})}function Ce({k:e,v:t,mono:n=!0}){return c.jsxs("div",{className:"flex items-baseline justify-between gap-3 py-1.5",children:[c.jsx("span",{className:"mono shrink-0 text-[10px] uppercase tracking-[0.16em] text-zinc-600",children:e}),c.jsx("span",{className:`truncate text-right text-[12px] text-zinc-200 ${n?"mono tnum":""}`,children:t})]})}function xc({id:e,onOpenRun:t}){const{data:n}=we({queryKey:["run",e],queryFn:()=>ie.run(e)}),[r,s]=$.useState(new Set),i=o=>s(a=>{const l=new Set(a);return l.has(o)?l.delete(o):l.add(o),l});return n?n.timeline.length===0?c.jsxs("div",{className:"mono px-2 py-2 text-[10px] text-zinc-600",children:["no steps recorded yet — child ",n.run.status]}):c.jsx("div",{className:"mt-2 max-h-80 space-y-1 overflow-auto rounded-md border border-[var(--line)] bg-black/20 p-1.5",children:c.jsx(Ya,{run:n.run,timeline:n.timeline,depth:0,onSelect:()=>{},onOpenRun:t??(()=>{}),expanded:r,onToggleChild:i})}):c.jsx("div",{className:"mono px-2 py-2 text-[10px] text-zinc-600",children:"loading child run…"})}function yc({step:e,run:t,onClose:n,onOpenRun:r}){const s=Yt(e),[i,o]=$.useState(!1),a=e.status==="failed",l=e.status==="pending"||e.status==="running",u=Xs(e.kind),d=Dr(t.createdAt,e.startedAt),f=e.enqueuedAt?new Date(e.startedAt).getTime()-new Date(e.enqueuedAt).getTime():0;return c.jsxs("aside",{className:"absolute inset-y-0 right-0 z-20 flex w-[380px] max-w-[90%] flex-col border-l border-[var(--line)] bg-[var(--panel)]/95 shadow-2xl backdrop-blur-md rise",children:[c.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-[var(--line)] px-5 py-4",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`grid h-6 w-6 shrink-0 place-items-center rounded-md ${a?"bg-red-500/15 text-red-300":l?"bg-amber-500/15 text-amber-300":"bg-emerald-500/15 text-emerald-300"}`,children:c.jsx(u,{width:13,height:13})}),c.jsx("h3",{className:"truncate text-[15px] font-semibold tracking-tight text-zinc-50",children:e.name})]}),c.jsxs("div",{className:`mono mt-1 text-[11px] uppercase tracking-wider s-${e.status}`,children:[e.status," · ",Vn[e.kind]??e.kind]})]}),c.jsx("button",{type:"button",onClick:n,className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-[var(--line)] text-zinc-500 transition-colors hover:text-zinc-200","aria-label":"Close",children:c.jsx(Ue,{})})]}),c.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-auto px-5 py-4",children:[c.jsxs("div",{className:"rounded-lg border border-[var(--line)] bg-black/20 px-3.5 py-1",children:[c.jsx(Ce,{k:"seq",v:`#${e.seq}`}),f>=1&&c.jsx(Ce,{k:"queued",v:c.jsx("span",{className:"text-sky-300",children:Kt(f)})}),c.jsx(Ce,{k:"duration",v:l?c.jsx("span",{className:"text-amber-300",children:"running…"}):Dr(e.startedAt,e.finishedAt)}),c.jsx(Ce,{k:"attempts",v:c.jsxs("span",{className:e.attempts>1?"text-amber-300":"",children:[e.attempts>1&&c.jsx(lr,{width:11,height:11,className:"mr-1 inline"}),e.attempts]})}),e.workerGroup&&c.jsx(Ce,{k:"worker",v:`@${e.workerGroup}`}),c.jsx(Ce,{k:"started",v:Rr(e.startedAt)}),c.jsx(Ce,{k:"finished",v:Rr(e.finishedAt)}),c.jsx(Ce,{k:"offset",v:`+${d}`})]}),a&&e.error&&c.jsxs("section",{className:"rise",children:[c.jsx("div",{className:"mono mb-1.5 text-[10px] uppercase tracking-[0.18em] text-red-400/80",children:"error"}),c.jsx("div",{className:"mono rounded-lg border border-red-500/25 bg-red-500/10 p-3 text-[11.5px] leading-relaxed text-red-200",children:e.error.message})]}),e.events&&e.events.length>0&&c.jsx(gc,{events:e.events}),s&&c.jsxs("section",{className:"rise",children:[c.jsxs("div",{className:"mb-1.5 flex items-center justify-between",children:[c.jsx("span",{className:"mono text-[10px] uppercase tracking-[0.18em] text-zinc-500",children:"child run"}),r&&c.jsx("button",{type:"button",onClick:()=>r(s),className:"mono rounded border border-[var(--line)] px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-zinc-500 transition-colors hover:text-zinc-200",children:"open ↗"})]}),c.jsxs("button",{type:"button",onClick:()=>o(h=>!h),className:"flex w-full items-center gap-2 rounded-md border border-indigo-500/30 bg-indigo-500/10 px-2.5 py-1.5 text-left transition-colors hover:bg-indigo-500/20",title:i?"Collapse child run":"Expand child run inline",children:[c.jsx("span",{className:"inline-block text-[9px] text-indigo-300 transition-transform",style:{transform:i?"rotate(90deg)":"rotate(0deg)"},children:"▸"}),c.jsx("span",{className:"mono truncate text-[11px] text-indigo-300",children:s})]}),i&&c.jsx(xc,{id:s,onOpenRun:r})]}),e.input!==void 0&&c.jsx(Gt,{label:"input",value:e.input}),e.output!==void 0&&c.jsx(Gt,{label:"output",value:e.output})]})]})}function wc({run:e,onClose:t}){const n=e.input===void 0&&e.output===void 0&&!e.error;return c.jsxs("aside",{className:"absolute inset-y-0 right-0 z-30 flex w-[380px] max-w-[90%] flex-col border-l border-[var(--line)] bg-[var(--panel)]/95 shadow-2xl backdrop-blur-md rise",children:[c.jsxs("div",{className:"flex items-start justify-between gap-3 border-b border-[var(--line)] px-5 py-4",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsx("h3",{className:"truncate text-[15px] font-semibold tracking-tight text-zinc-50",children:e.workflow}),c.jsxs("div",{className:`mono mt-1 text-[11px] uppercase tracking-wider s-${e.status}`,children:["run · ",e.status]})]}),c.jsx("button",{type:"button",onClick:t,className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-[var(--line)] text-zinc-500 transition-colors hover:text-zinc-200","aria-label":"Close",children:c.jsx(Ue,{})})]}),c.jsxs("div",{className:"flex min-h-0 flex-1 flex-col gap-4 overflow-auto px-5 py-4",children:[e.error&&c.jsxs("section",{className:"rise",children:[c.jsx("div",{className:"mono mb-1.5 text-[10px] uppercase tracking-[0.18em] text-red-400/80",children:"error"}),c.jsx("div",{className:"mono rounded-lg border border-red-500/25 bg-red-500/10 p-3 text-[11.5px] leading-relaxed text-red-200",children:e.error.message})]}),e.input!==void 0&&c.jsx(Gt,{label:"input",value:e.input}),e.output!==void 0&&c.jsx(Gt,{label:"output",value:e.output}),n&&c.jsx("div",{className:"text-sm text-zinc-600",children:"No input/output recorded."})]})]})}function se(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=se(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var bc={value:()=>{}};function ln(){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 Ft(n)}function Ft(e){this._=e}function vc(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}})}Ft.prototype=ln.prototype={constructor:Ft,on:function(e,t){var n=this._,r=vc(e+"",n),s,i=-1,o=r.length;if(arguments.length<2){for(;++i<o;)if((s=(e=r[i]).type)&&(s=Nc(n[s],e.name)))return s;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<o;)if(s=(e=r[i]).type)n[s]=Hr(n[s],e.name,t);else if(t==null)for(s in n)n[s]=Hr(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 Ft(e)},call:function(e,t){if((s=arguments.length-2)>0)for(var n=new Array(s),r=0,s,i;r<s;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,s=i.length;r<s;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],s=0,i=r.length;s<i;++s)r[s].value.apply(t,n)}};function Nc(e,t){for(var n=0,r=e.length,s;n<r;++n)if((s=e[n]).name===t)return s.value}function Hr(e,t,n){for(var r=0,s=e.length;r<s;++r)if(e[r].name===t){e[r]=bc,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var Yn="http://www.w3.org/1999/xhtml";const Or={svg:"http://www.w3.org/2000/svg",xhtml:Yn,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function un(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Or.hasOwnProperty(t)?{space:Or[t],local:e}:e}function _c(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Yn&&t.documentElement.namespaceURI===Yn?t.createElement(e):t.createElementNS(n,e)}}function kc(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Gs(e){var t=un(e);return(t.local?kc:_c)(t)}function Sc(){}function fr(e){return e==null?Sc:function(){return this.querySelector(e)}}function jc(e){typeof e!="function"&&(e=fr(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var i=t[s],o=i.length,a=r[s]=new Array(o),l,u,d=0;d<o;++d)(l=i[d])&&(u=e.call(l,l.__data__,d,i))&&("__data__"in l&&(u.__data__=l.__data__),a[d]=u);return new ue(r,this._parents)}function Ec(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function Cc(){return[]}function Us(e){return e==null?Cc:function(){return this.querySelectorAll(e)}}function $c(e){return function(){return Ec(e.apply(this,arguments))}}function Mc(e){typeof e=="function"?e=$c(e):e=Us(e);for(var t=this._groups,n=t.length,r=[],s=[],i=0;i<n;++i)for(var o=t[i],a=o.length,l,u=0;u<a;++u)(l=o[u])&&(r.push(e.call(l,l.__data__,u,o)),s.push(l));return new ue(r,s)}function Zs(e){return function(){return this.matches(e)}}function Qs(e){return function(t){return t.matches(e)}}var zc=Array.prototype.find;function Ic(e){return function(){return zc.call(this.children,e)}}function Ac(){return this.firstElementChild}function Pc(e){return this.select(e==null?Ac:Ic(typeof e=="function"?e:Qs(e)))}var Tc=Array.prototype.filter;function Dc(){return Array.from(this.children)}function Rc(e){return function(){return Tc.call(this.children,e)}}function Lc(e){return this.selectAll(e==null?Dc:Rc(typeof e=="function"?e:Qs(e)))}function Hc(e){typeof e!="function"&&(e=Zs(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var i=t[s],o=i.length,a=r[s]=[],l,u=0;u<o;++u)(l=i[u])&&e.call(l,l.__data__,u,i)&&a.push(l);return new ue(r,this._parents)}function Js(e){return new Array(e.length)}function Oc(){return new ue(this._enter||this._groups.map(Js),this._parents)}function Ut(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ut.prototype={constructor:Ut,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 Fc(e){return function(){return e}}function Bc(e,t,n,r,s,i){for(var o=0,a,l=t.length,u=i.length;o<u;++o)(a=t[o])?(a.__data__=i[o],r[o]=a):n[o]=new Ut(e,i[o]);for(;o<l;++o)(a=t[o])&&(s[o]=a)}function Vc(e,t,n,r,s,i,o){var a,l,u=new Map,d=t.length,f=i.length,h=new Array(d),p;for(a=0;a<d;++a)(l=t[a])&&(h[a]=p=o.call(l,l.__data__,a,t)+"",u.has(p)?s[a]=l:u.set(p,l));for(a=0;a<f;++a)p=o.call(e,i[a],a,i)+"",(l=u.get(p))?(r[a]=l,l.__data__=i[a],u.delete(p)):n[a]=new Ut(e,i[a]);for(a=0;a<d;++a)(l=t[a])&&u.get(h[a])===l&&(s[a]=l)}function qc(e){return e.__data__}function Xc(e,t){if(!arguments.length)return Array.from(this,qc);var n=t?Vc:Bc,r=this._parents,s=this._groups;typeof e!="function"&&(e=Fc(e));for(var i=s.length,o=new Array(i),a=new Array(i),l=new Array(i),u=0;u<i;++u){var d=r[u],f=s[u],h=f.length,p=Yc(e.call(d,d&&d.__data__,u,r)),g=p.length,x=a[u]=new Array(g),v=o[u]=new Array(g),y=l[u]=new Array(h);n(d,f,x,v,y,p,t);for(var N=0,b=0,w,C;N<g;++N)if(w=x[N]){for(N>=b&&(b=N+1);!(C=v[b])&&++b<g;);w._next=C||null}}return o=new ue(o,r),o._enter=a,o._exit=l,o}function Yc(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Wc(){return new ue(this._exit||this._groups.map(Js),this._parents)}function Kc(e,t,n){var r=this.enter(),s=this,i=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?i.remove():n(i),r&&s?r.merge(s).order():s}function Gc(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,s=n.length,i=r.length,o=Math.min(s,i),a=new Array(s),l=0;l<o;++l)for(var u=n[l],d=r[l],f=u.length,h=a[l]=new Array(f),p,g=0;g<f;++g)(p=u[g]||d[g])&&(h[g]=p);for(;l<s;++l)a[l]=n[l];return new ue(a,this._parents)}function Uc(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],s=r.length-1,i=r[s],o;--s>=0;)(o=r[s])&&(i&&o.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(o,i),i=o);return this}function Zc(e){e||(e=Qc);function t(f,h){return f&&h?e(f.__data__,h.__data__):!f-!h}for(var n=this._groups,r=n.length,s=new Array(r),i=0;i<r;++i){for(var o=n[i],a=o.length,l=s[i]=new Array(a),u,d=0;d<a;++d)(u=o[d])&&(l[d]=u);l.sort(t)}return new ue(s,this._parents).order()}function Qc(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Jc(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function el(){return Array.from(this)}function tl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,i=r.length;s<i;++s){var o=r[s];if(o)return o}return null}function nl(){let e=0;for(const t of this)++e;return e}function rl(){return!this.node()}function sl(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var s=t[n],i=0,o=s.length,a;i<o;++i)(a=s[i])&&e.call(a,a.__data__,i,s);return this}function il(e){return function(){this.removeAttribute(e)}}function ol(e){return function(){this.removeAttributeNS(e.space,e.local)}}function al(e,t){return function(){this.setAttribute(e,t)}}function cl(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function ll(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function ul(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 dl(e,t){var n=un(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?ol:il:typeof t=="function"?n.local?ul:ll:n.local?cl:al)(n,t))}function ei(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function fl(e){return function(){this.style.removeProperty(e)}}function hl(e,t,n){return function(){this.style.setProperty(e,t,n)}}function pl(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function gl(e,t,n){return arguments.length>1?this.each((t==null?fl:typeof t=="function"?pl:hl)(e,t,n??"")):Ze(this.node(),e)}function Ze(e,t){return e.style.getPropertyValue(t)||ei(e).getComputedStyle(e,null).getPropertyValue(t)}function ml(e){return function(){delete this[e]}}function xl(e,t){return function(){this[e]=t}}function yl(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function wl(e,t){return arguments.length>1?this.each((t==null?ml:typeof t=="function"?yl:xl)(e,t)):this.node()[e]}function ti(e){return e.trim().split(/^|\s+/)}function hr(e){return e.classList||new ni(e)}function ni(e){this._node=e,this._names=ti(e.getAttribute("class")||"")}ni.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 ri(e,t){for(var n=hr(e),r=-1,s=t.length;++r<s;)n.add(t[r])}function si(e,t){for(var n=hr(e),r=-1,s=t.length;++r<s;)n.remove(t[r])}function bl(e){return function(){ri(this,e)}}function vl(e){return function(){si(this,e)}}function Nl(e,t){return function(){(t.apply(this,arguments)?ri:si)(this,e)}}function _l(e,t){var n=ti(e+"");if(arguments.length<2){for(var r=hr(this.node()),s=-1,i=n.length;++s<i;)if(!r.contains(n[s]))return!1;return!0}return this.each((typeof t=="function"?Nl:t?bl:vl)(n,t))}function kl(){this.textContent=""}function Sl(e){return function(){this.textContent=e}}function jl(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function El(e){return arguments.length?this.each(e==null?kl:(typeof e=="function"?jl:Sl)(e)):this.node().textContent}function Cl(){this.innerHTML=""}function $l(e){return function(){this.innerHTML=e}}function Ml(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function zl(e){return arguments.length?this.each(e==null?Cl:(typeof e=="function"?Ml:$l)(e)):this.node().innerHTML}function Il(){this.nextSibling&&this.parentNode.appendChild(this)}function Al(){return this.each(Il)}function Pl(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Tl(){return this.each(Pl)}function Dl(e){var t=typeof e=="function"?e:Gs(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Rl(){return null}function Ll(e,t){var n=typeof e=="function"?e:Gs(e),r=t==null?Rl:typeof t=="function"?t:fr(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Hl(){var e=this.parentNode;e&&e.removeChild(this)}function Ol(){return this.each(Hl)}function Fl(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Bl(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Vl(e){return this.select(e?Bl:Fl)}function ql(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Xl(e){return function(t){e.call(this,t,this.__data__)}}function Yl(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 Wl(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,s=t.length,i;n<s;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function Kl(e,t,n){return function(){var r=this.__on,s,i=Xl(t);if(r){for(var o=0,a=r.length;o<a;++o)if((s=r[o]).type===e.type&&s.name===e.name){this.removeEventListener(s.type,s.listener,s.options),this.addEventListener(s.type,s.listener=i,s.options=n),s.value=t;return}}this.addEventListener(e.type,i,n),s={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(s):this.__on=[s]}}function Gl(e,t,n){var r=Yl(e+""),s,i=r.length,o;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<i;++s)if((o=r[s]).type===d.type&&o.name===d.name)return d.value}return}for(a=t?Kl:Wl,s=0;s<i;++s)this.each(a(r[s],t,n));return this}function ii(e,t,n){var r=ei(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 Ul(e,t){return function(){return ii(this,e,t)}}function Zl(e,t){return function(){return ii(this,e,t.apply(this,arguments))}}function Ql(e,t){return this.each((typeof t=="function"?Zl:Ul)(e,t))}function*Jl(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],s=0,i=r.length,o;s<i;++s)(o=r[s])&&(yield o)}var oi=[null];function ue(e,t){this._groups=e,this._parents=t}function St(){return new ue([[document.documentElement]],oi)}function eu(){return this}ue.prototype=St.prototype={constructor:ue,select:jc,selectAll:Mc,selectChild:Pc,selectChildren:Lc,filter:Hc,data:Xc,enter:Oc,exit:Wc,join:Kc,merge:Gc,selection:eu,order:Uc,sort:Zc,call:Jc,nodes:el,node:tl,size:nl,empty:rl,each:sl,attr:dl,style:gl,property:wl,classed:_l,text:El,html:zl,raise:Al,lower:Tl,append:Dl,insert:Ll,remove:Ol,clone:Vl,datum:ql,on:Gl,dispatch:Ql,[Symbol.iterator]:Jl};function le(e){return typeof e=="string"?new ue([[document.querySelector(e)]],[document.documentElement]):new ue([[e]],oi)}function tu(e){let t;for(;t=e.sourceEvent;)e=t;return e}function de(e,t){if(e=tu(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 nu={passive:!1},gt={capture:!0,passive:!1};function In(e){e.stopImmediatePropagation()}function Ke(e){e.preventDefault(),e.stopImmediatePropagation()}function ai(e){var t=e.document.documentElement,n=le(e).on("dragstart.drag",Ke,gt);"onselectstart"in t?n.on("selectstart.drag",Ke,gt):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function ci(e,t){var n=e.document.documentElement,r=le(e).on("dragstart.drag",null);t&&(r.on("click.drag",Ke,gt),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 zt=e=>()=>e;function Wn(e,{sourceEvent:t,subject:n,target:r,identifier:s,active:i,x:o,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:i,enumerable:!0,configurable:!0},x:{value:o,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}})}Wn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function ru(e){return!e.ctrlKey&&!e.button}function su(){return this.parentNode}function iu(e,t){return t??{x:e.x,y:e.y}}function ou(){return navigator.maxTouchPoints||"ontouchstart"in this}function li(){var e=ru,t=su,n=iu,r=ou,s={},i=ln("start","drag","end"),o=0,a,l,u,d,f=0;function h(w){w.on("mousedown.drag",p).filter(r).on("touchstart.drag",v).on("touchmove.drag",y,nu).on("touchend.drag touchcancel.drag",N).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function p(w,C){if(!(d||!e.call(this,w,C))){var L=b(this,t.call(this,w,C),w,C,"mouse");L&&(le(w.view).on("mousemove.drag",g,gt).on("mouseup.drag",x,gt),ai(w.view),In(w),u=!1,a=w.clientX,l=w.clientY,L("start",w))}}function g(w){if(Ke(w),!u){var C=w.clientX-a,L=w.clientY-l;u=C*C+L*L>f}s.mouse("drag",w)}function x(w){le(w.view).on("mousemove.drag mouseup.drag",null),ci(w.view,u),Ke(w),s.mouse("end",w)}function v(w,C){if(e.call(this,w,C)){var L=w.changedTouches,E=t.call(this,w,C),R=L.length,D,T;for(D=0;D<R;++D)(T=b(this,E,w,C,L[D].identifier,L[D]))&&(In(w),T("start",w,L[D]))}}function y(w){var C=w.changedTouches,L=C.length,E,R;for(E=0;E<L;++E)(R=s[C[E].identifier])&&(Ke(w),R("drag",w,C[E]))}function N(w){var C=w.changedTouches,L=C.length,E,R;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),E=0;E<L;++E)(R=s[C[E].identifier])&&(In(w),R("end",w,C[E]))}function b(w,C,L,E,R,D){var T=i.copy(),z=de(D||L,C),O,P,m;if((m=n.call(w,new Wn("beforestart",{sourceEvent:L,target:h,identifier:R,active:o,x:z[0],y:z[1],dx:0,dy:0,dispatch:T}),E))!=null)return O=m.x-z[0]||0,P=m.y-z[1]||0,function k(_,M,S){var j=z,I;switch(_){case"start":s[R]=k,I=o++;break;case"end":delete s[R],--o;case"drag":z=de(S||M,C),I=o;break}T.call(_,w,new Wn(_,{sourceEvent:M,subject:m,target:h,identifier:R,active:I,x:z[0]+O,y:z[1]+P,dx:z[0]-j[0],dy:z[1]-j[1],dispatch:T}),E)}}return h.filter=function(w){return arguments.length?(e=typeof w=="function"?w:zt(!!w),h):e},h.container=function(w){return arguments.length?(t=typeof w=="function"?w:zt(w),h):t},h.subject=function(w){return arguments.length?(n=typeof w=="function"?w:zt(w),h):n},h.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:zt(!!w),h):r},h.on=function(){var w=i.on.apply(i,arguments);return w===i?h:w},h.clickDistance=function(w){return arguments.length?(f=(w=+w)*w,h):Math.sqrt(f)},h}function pr(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function ui(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function jt(){}var mt=.7,Zt=1/mt,Ge="\\s*([+-]?\\d+)\\s*",xt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",ge="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",au=/^#([0-9a-f]{3,8})$/,cu=new RegExp(`^rgb\\(${Ge},${Ge},${Ge}\\)$`),lu=new RegExp(`^rgb\\(${ge},${ge},${ge}\\)$`),uu=new RegExp(`^rgba\\(${Ge},${Ge},${Ge},${xt}\\)$`),du=new RegExp(`^rgba\\(${ge},${ge},${ge},${xt}\\)$`),fu=new RegExp(`^hsl\\(${xt},${ge},${ge}\\)$`),hu=new RegExp(`^hsla\\(${xt},${ge},${ge},${xt}\\)$`),Fr={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};pr(jt,yt,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Br,formatHex:Br,formatHex8:pu,formatHsl:gu,formatRgb:Vr,toString:Vr});function Br(){return this.rgb().formatHex()}function pu(){return this.rgb().formatHex8()}function gu(){return di(this).formatHsl()}function Vr(){return this.rgb().formatRgb()}function yt(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=au.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?qr(t):n===3?new ce(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?It(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?It(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=cu.exec(e))?new ce(t[1],t[2],t[3],1):(t=lu.exec(e))?new ce(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=uu.exec(e))?It(t[1],t[2],t[3],t[4]):(t=du.exec(e))?It(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=fu.exec(e))?Wr(t[1],t[2]/100,t[3]/100,1):(t=hu.exec(e))?Wr(t[1],t[2]/100,t[3]/100,t[4]):Fr.hasOwnProperty(e)?qr(Fr[e]):e==="transparent"?new ce(NaN,NaN,NaN,0):null}function qr(e){return new ce(e>>16&255,e>>8&255,e&255,1)}function It(e,t,n,r){return r<=0&&(e=t=n=NaN),new ce(e,t,n,r)}function mu(e){return e instanceof jt||(e=yt(e)),e?(e=e.rgb(),new ce(e.r,e.g,e.b,e.opacity)):new ce}function Kn(e,t,n,r){return arguments.length===1?mu(e):new ce(e,t,n,r??1)}function ce(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}pr(ce,Kn,ui(jt,{brighter(e){return e=e==null?Zt:Math.pow(Zt,e),new ce(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?mt:Math.pow(mt,e),new ce(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ce(Le(this.r),Le(this.g),Le(this.b),Qt(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:Xr,formatHex:Xr,formatHex8:xu,formatRgb:Yr,toString:Yr}));function Xr(){return`#${Re(this.r)}${Re(this.g)}${Re(this.b)}`}function xu(){return`#${Re(this.r)}${Re(this.g)}${Re(this.b)}${Re((isNaN(this.opacity)?1:this.opacity)*255)}`}function Yr(){const e=Qt(this.opacity);return`${e===1?"rgb(":"rgba("}${Le(this.r)}, ${Le(this.g)}, ${Le(this.b)}${e===1?")":`, ${e})`}`}function Qt(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Le(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Re(e){return e=Le(e),(e<16?"0":"")+e.toString(16)}function Wr(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new fe(e,t,n,r)}function di(e){if(e instanceof fe)return new fe(e.h,e.s,e.l,e.opacity);if(e instanceof jt||(e=yt(e)),!e)return new fe;if(e instanceof fe)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,s=Math.min(t,n,r),i=Math.max(t,n,r),o=NaN,a=i-s,l=(i+s)/2;return a?(t===i?o=(n-r)/a+(n<r)*6:n===i?o=(r-t)/a+2:o=(t-n)/a+4,a/=l<.5?i+s:2-i-s,o*=60):a=l>0&&l<1?0:o,new fe(o,a,l,e.opacity)}function yu(e,t,n,r){return arguments.length===1?di(e):new fe(e,t,n,r??1)}function fe(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}pr(fe,yu,ui(jt,{brighter(e){return e=e==null?Zt:Math.pow(Zt,e),new fe(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?mt:Math.pow(mt,e),new fe(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 ce(An(e>=240?e-240:e+120,s,r),An(e,s,r),An(e<120?e+240:e-120,s,r),this.opacity)},clamp(){return new fe(Kr(this.h),At(this.s),At(this.l),Qt(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=Qt(this.opacity);return`${e===1?"hsl(":"hsla("}${Kr(this.h)}, ${At(this.s)*100}%, ${At(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Kr(e){return e=(e||0)%360,e<0?e+360:e}function At(e){return Math.max(0,Math.min(1,e||0))}function An(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 fi=e=>()=>e;function wu(e,t){return function(n){return e+n*t}}function bu(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 vu(e){return(e=+e)==1?hi:function(t,n){return n-t?bu(t,n,e):fi(isNaN(t)?n:t)}}function hi(e,t){var n=t-e;return n?wu(e,n):fi(isNaN(e)?t:e)}const Gr=function e(t){var n=vu(t);function r(s,i){var o=n((s=Kn(s)).r,(i=Kn(i)).r),a=n(s.g,i.g),l=n(s.b,i.b),u=hi(s.opacity,i.opacity);return function(d){return s.r=o(d),s.g=a(d),s.b=l(d),s.opacity=u(d),s+""}}return r.gamma=e,r}(1);function ze(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}var Gn=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Pn=new RegExp(Gn.source,"g");function Nu(e){return function(){return e}}function _u(e){return function(t){return e(t)+""}}function ku(e,t){var n=Gn.lastIndex=Pn.lastIndex=0,r,s,i,o=-1,a=[],l=[];for(e=e+"",t=t+"";(r=Gn.exec(e))&&(s=Pn.exec(t));)(i=s.index)>n&&(i=t.slice(n,i),a[o]?a[o]+=i:a[++o]=i),(r=r[0])===(s=s[0])?a[o]?a[o]+=s:a[++o]=s:(a[++o]=null,l.push({i:o,x:ze(r,s)})),n=Pn.lastIndex;return n<t.length&&(i=t.slice(n),a[o]?a[o]+=i:a[++o]=i),a.length<2?l[0]?_u(l[0].x):Nu(t):(t=l.length,function(u){for(var d=0,f;d<t;++d)a[(f=l[d]).i]=f.x(u);return a.join("")})}var Ur=180/Math.PI,Un={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function pi(e,t,n,r,s,i){var o,a,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(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,o=-o),{translateX:s,translateY:i,rotate:Math.atan2(t,e)*Ur,skewX:Math.atan(l)*Ur,scaleX:o,scaleY:a}}var Pt;function Su(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Un:pi(t.a,t.b,t.c,t.d,t.e,t.f)}function ju(e){return e==null||(Pt||(Pt=document.createElementNS("http://www.w3.org/2000/svg","g")),Pt.setAttribute("transform",e),!(e=Pt.transform.baseVal.consolidate()))?Un:(e=e.matrix,pi(e.a,e.b,e.c,e.d,e.e,e.f))}function gi(e,t,n,r){function s(u){return u.length?u.pop()+" ":""}function i(u,d,f,h,p,g){if(u!==f||d!==h){var x=p.push("translate(",null,t,null,n);g.push({i:x-4,x:ze(u,f)},{i:x-2,x:ze(d,h)})}else(f||h)&&p.push("translate("+f+t+h+n)}function o(u,d,f,h){u!==d?(u-d>180?d+=360:d-u>180&&(u+=360),h.push({i:f.push(s(f)+"rotate(",null,r)-2,x:ze(u,d)})):d&&f.push(s(f)+"rotate("+d+r)}function a(u,d,f,h){u!==d?h.push({i:f.push(s(f)+"skewX(",null,r)-2,x:ze(u,d)}):d&&f.push(s(f)+"skewX("+d+r)}function l(u,d,f,h,p,g){if(u!==f||d!==h){var x=p.push(s(p)+"scale(",null,",",null,")");g.push({i:x-4,x:ze(u,f)},{i:x-2,x:ze(d,h)})}else(f!==1||h!==1)&&p.push(s(p)+"scale("+f+","+h+")")}return function(u,d){var f=[],h=[];return u=e(u),d=e(d),i(u.translateX,u.translateY,d.translateX,d.translateY,f,h),o(u.rotate,d.rotate,f,h),a(u.skewX,d.skewX,f,h),l(u.scaleX,u.scaleY,d.scaleX,d.scaleY,f,h),u=d=null,function(p){for(var g=-1,x=h.length,v;++g<x;)f[(v=h[g]).i]=v.x(p);return f.join("")}}}var Eu=gi(Su,"px, ","px)","deg)"),Cu=gi(ju,", ",")",")"),$u=1e-12;function Zr(e){return((e=Math.exp(e))+1/e)/2}function Mu(e){return((e=Math.exp(e))-1/e)/2}function zu(e){return((e=Math.exp(2*e))-1)/(e+1)}const Iu=function e(t,n,r){function s(i,o){var a=i[0],l=i[1],u=i[2],d=o[0],f=o[1],h=o[2],p=d-a,g=f-l,x=p*p+g*g,v,y;if(x<$u)y=Math.log(h/u)/t,v=function(E){return[a+E*p,l+E*g,u*Math.exp(t*E*y)]};else{var N=Math.sqrt(x),b=(h*h-u*u+r*x)/(2*u*n*N),w=(h*h-u*u-r*x)/(2*h*n*N),C=Math.log(Math.sqrt(b*b+1)-b),L=Math.log(Math.sqrt(w*w+1)-w);y=(L-C)/t,v=function(E){var R=E*y,D=Zr(C),T=u/(n*N)*(D*zu(t*R+C)-Mu(C));return[a+T*p,l+T*g,u*D/Zr(t*R+C)]}}return v.duration=y*1e3*t/Math.SQRT2,v}return s.rho=function(i){var o=Math.max(.001,+i),a=o*o,l=a*a;return e(o,a,l)},s}(Math.SQRT2,2,4);var Qe=0,dt=0,lt=0,mi=1e3,Jt,ft,en=0,Oe=0,dn=0,wt=typeof performance=="object"&&performance.now?performance:Date,xi=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function gr(){return Oe||(xi(Au),Oe=wt.now()+dn)}function Au(){Oe=0}function tn(){this._call=this._time=this._next=null}tn.prototype=yi.prototype={constructor:tn,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?gr():+n)+(t==null?0:+t),!this._next&&ft!==this&&(ft?ft._next=this:Jt=this,ft=this),this._call=e,this._time=n,Zn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Zn())}};function yi(e,t,n){var r=new tn;return r.restart(e,t,n),r}function Pu(){gr(),++Qe;for(var e=Jt,t;e;)(t=Oe-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Qe}function Qr(){Oe=(en=wt.now())+dn,Qe=dt=0;try{Pu()}finally{Qe=0,Du(),Oe=0}}function Tu(){var e=wt.now(),t=e-en;t>mi&&(dn-=t,en=e)}function Du(){for(var e,t=Jt,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:Jt=n);ft=e,Zn(r)}function Zn(e){if(!Qe){dt&&(dt=clearTimeout(dt));var t=e-Oe;t>24?(e<1/0&&(dt=setTimeout(Qr,e-wt.now()-dn)),lt&&(lt=clearInterval(lt))):(lt||(en=wt.now(),lt=setInterval(Tu,mi)),Qe=1,xi(Qr))}}function Jr(e,t,n){var r=new tn;return t=t==null?0:+t,r.restart(s=>{r.stop(),e(s+t)},t,n),r}var Ru=ln("start","end","cancel","interrupt"),Lu=[],wi=0,es=1,Qn=2,Bt=3,ts=4,Jn=5,Vt=6;function fn(e,t,n,r,s,i){var o=e.__transition;if(!o)e.__transition={};else if(n in o)return;Hu(e,n,{name:t,index:r,group:s,on:Ru,tween:Lu,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:wi})}function mr(e,t){var n=pe(e,t);if(n.state>wi)throw new Error("too late; already scheduled");return n}function me(e,t){var n=pe(e,t);if(n.state>Bt)throw new Error("too late; already running");return n}function pe(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Hu(e,t,n){var r=e.__transition,s;r[t]=n,n.timer=yi(i,0,n.time);function i(u){n.state=es,n.timer.restart(o,n.delay,n.time),n.delay<=u&&o(u-n.delay)}function o(u){var d,f,h,p;if(n.state!==es)return l();for(d in r)if(p=r[d],p.name===n.name){if(p.state===Bt)return Jr(o);p.state===ts?(p.state=Vt,p.timer.stop(),p.on.call("interrupt",e,e.__data__,p.index,p.group),delete r[d]):+d<t&&(p.state=Vt,p.timer.stop(),p.on.call("cancel",e,e.__data__,p.index,p.group),delete r[d])}if(Jr(function(){n.state===Bt&&(n.state=ts,n.timer.restart(a,n.delay,n.time),a(u))}),n.state=Qn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Qn){for(n.state=Bt,s=new Array(h=n.tween.length),d=0,f=-1;d<h;++d)(p=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(s[++f]=p);s.length=f+1}}function a(u){for(var d=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(l),n.state=Jn,1),f=-1,h=s.length;++f<h;)s[f].call(e,d);n.state===Jn&&(n.on.call("end",e,e.__data__,n.index,n.group),l())}function l(){n.state=Vt,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function qt(e,t){var n=e.__transition,r,s,i=!0,o;if(n){t=t==null?null:t+"";for(o in n){if((r=n[o]).name!==t){i=!1;continue}s=r.state>Qn&&r.state<Jn,r.state=Vt,r.timer.stop(),r.on.call(s?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[o]}i&&delete e.__transition}}function Ou(e){return this.each(function(){qt(this,e)})}function Fu(e,t){var n,r;return function(){var s=me(this,e),i=s.tween;if(i!==n){r=n=i;for(var o=0,a=r.length;o<a;++o)if(r[o].name===t){r=r.slice(),r.splice(o,1);break}}s.tween=r}}function Bu(e,t,n){var r,s;if(typeof n!="function")throw new Error;return function(){var i=me(this,e),o=i.tween;if(o!==r){s=(r=o).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)}i.tween=s}}function Vu(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=pe(this.node(),n).tween,s=0,i=r.length,o;s<i;++s)if((o=r[s]).name===e)return o.value;return null}return this.each((t==null?Fu:Bu)(n,e,t))}function xr(e,t,n){var r=e._id;return e.each(function(){var s=me(this,r);(s.value||(s.value={}))[t]=n.apply(this,arguments)}),function(s){return pe(s,r).value[t]}}function bi(e,t){var n;return(typeof t=="number"?ze:t instanceof yt?Gr:(n=yt(t))?(t=n,Gr):ku)(e,t)}function qu(e){return function(){this.removeAttribute(e)}}function Xu(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Yu(e,t,n){var r,s=n+"",i;return function(){var o=this.getAttribute(e);return o===s?null:o===r?i:i=t(r=o,n)}}function Wu(e,t,n){var r,s=n+"",i;return function(){var o=this.getAttributeNS(e.space,e.local);return o===s?null:o===r?i:i=t(r=o,n)}}function Ku(e,t,n){var r,s,i;return function(){var o,a=n(this),l;return a==null?void this.removeAttribute(e):(o=this.getAttribute(e),l=a+"",o===l?null:o===r&&l===s?i:(s=l,i=t(r=o,a)))}}function Gu(e,t,n){var r,s,i;return function(){var o,a=n(this),l;return a==null?void this.removeAttributeNS(e.space,e.local):(o=this.getAttributeNS(e.space,e.local),l=a+"",o===l?null:o===r&&l===s?i:(s=l,i=t(r=o,a)))}}function Uu(e,t){var n=un(e),r=n==="transform"?Cu:bi;return this.attrTween(e,typeof t=="function"?(n.local?Gu:Ku)(n,r,xr(this,"attr."+e,t)):t==null?(n.local?Xu:qu)(n):(n.local?Wu:Yu)(n,r,t))}function Zu(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function Qu(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function Ju(e,t){var n,r;function s(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Qu(e,i)),n}return s._value=t,s}function ed(e,t){var n,r;function s(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&Zu(e,i)),n}return s._value=t,s}function td(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=un(e);return this.tween(n,(r.local?Ju:ed)(r,t))}function nd(e,t){return function(){mr(this,e).delay=+t.apply(this,arguments)}}function rd(e,t){return t=+t,function(){mr(this,e).delay=t}}function sd(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?nd:rd)(t,e)):pe(this.node(),t).delay}function id(e,t){return function(){me(this,e).duration=+t.apply(this,arguments)}}function od(e,t){return t=+t,function(){me(this,e).duration=t}}function ad(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?id:od)(t,e)):pe(this.node(),t).duration}function cd(e,t){if(typeof t!="function")throw new Error;return function(){me(this,e).ease=t}}function ld(e){var t=this._id;return arguments.length?this.each(cd(t,e)):pe(this.node(),t).ease}function ud(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;me(this,e).ease=n}}function dd(e){if(typeof e!="function")throw new Error;return this.each(ud(this._id,e))}function fd(e){typeof e!="function"&&(e=Zs(e));for(var t=this._groups,n=t.length,r=new Array(n),s=0;s<n;++s)for(var i=t[s],o=i.length,a=r[s]=[],l,u=0;u<o;++u)(l=i[u])&&e.call(l,l.__data__,u,i)&&a.push(l);return new ke(r,this._parents,this._name,this._id)}function hd(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,s=n.length,i=Math.min(r,s),o=new Array(r),a=0;a<i;++a)for(var l=t[a],u=n[a],d=l.length,f=o[a]=new Array(d),h,p=0;p<d;++p)(h=l[p]||u[p])&&(f[p]=h);for(;a<r;++a)o[a]=t[a];return new ke(o,this._parents,this._name,this._id)}function pd(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 gd(e,t,n){var r,s,i=pd(t)?mr:me;return function(){var o=i(this,e),a=o.on;a!==r&&(s=(r=a).copy()).on(t,n),o.on=s}}function md(e,t){var n=this._id;return arguments.length<2?pe(this.node(),n).on.on(e):this.each(gd(n,e,t))}function xd(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function yd(){return this.on("end.remove",xd(this._id))}function wd(e){var t=this._name,n=this._id;typeof e!="function"&&(e=fr(e));for(var r=this._groups,s=r.length,i=new Array(s),o=0;o<s;++o)for(var a=r[o],l=a.length,u=i[o]=new Array(l),d,f,h=0;h<l;++h)(d=a[h])&&(f=e.call(d,d.__data__,h,a))&&("__data__"in d&&(f.__data__=d.__data__),u[h]=f,fn(u[h],t,n,h,u,pe(d,n)));return new ke(i,this._parents,t,n)}function bd(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Us(e));for(var r=this._groups,s=r.length,i=[],o=[],a=0;a<s;++a)for(var l=r[a],u=l.length,d,f=0;f<u;++f)if(d=l[f]){for(var h=e.call(d,d.__data__,f,l),p,g=pe(d,n),x=0,v=h.length;x<v;++x)(p=h[x])&&fn(p,t,n,x,h,g);i.push(h),o.push(d)}return new ke(i,o,t,n)}var vd=St.prototype.constructor;function Nd(){return new vd(this._groups,this._parents)}function _d(e,t){var n,r,s;return function(){var i=Ze(this,e),o=(this.style.removeProperty(e),Ze(this,e));return i===o?null:i===n&&o===r?s:s=t(n=i,r=o)}}function vi(e){return function(){this.style.removeProperty(e)}}function kd(e,t,n){var r,s=n+"",i;return function(){var o=Ze(this,e);return o===s?null:o===r?i:i=t(r=o,n)}}function Sd(e,t,n){var r,s,i;return function(){var o=Ze(this,e),a=n(this),l=a+"";return a==null&&(l=a=(this.style.removeProperty(e),Ze(this,e))),o===l?null:o===r&&l===s?i:(s=l,i=t(r=o,a))}}function jd(e,t){var n,r,s,i="style."+t,o="end."+i,a;return function(){var l=me(this,e),u=l.on,d=l.value[i]==null?a||(a=vi(t)):void 0;(u!==n||s!==d)&&(r=(n=u).copy()).on(o,s=d),l.on=r}}function Ed(e,t,n){var r=(e+="")=="transform"?Eu:bi;return t==null?this.styleTween(e,_d(e,r)).on("end.style."+e,vi(e)):typeof t=="function"?this.styleTween(e,Sd(e,r,xr(this,"style."+e,t))).each(jd(this._id,e)):this.styleTween(e,kd(e,r,t),n).on("end.style."+e,null)}function Cd(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function $d(e,t,n){var r,s;function i(){var o=t.apply(this,arguments);return o!==s&&(r=(s=o)&&Cd(e,o,n)),r}return i._value=t,i}function Md(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,$d(e,t,n??""))}function zd(e){return function(){this.textContent=e}}function Id(e){return function(){var t=e(this);this.textContent=t??""}}function Ad(e){return this.tween("text",typeof e=="function"?Id(xr(this,"text",e)):zd(e==null?"":e+""))}function Pd(e){return function(t){this.textContent=e.call(this,t)}}function Td(e){var t,n;function r(){var s=e.apply(this,arguments);return s!==n&&(t=(n=s)&&Pd(s)),t}return r._value=e,r}function Dd(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,Td(e))}function Rd(){for(var e=this._name,t=this._id,n=Ni(),r=this._groups,s=r.length,i=0;i<s;++i)for(var o=r[i],a=o.length,l,u=0;u<a;++u)if(l=o[u]){var d=pe(l,t);fn(l,e,n,u,o,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new ke(r,this._parents,e,n)}function Ld(){var e,t,n=this,r=n._id,s=n.size();return new Promise(function(i,o){var a={value:o},l={value:function(){--s===0&&i()}};n.each(function(){var u=me(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&&i()})}var Hd=0;function ke(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Ni(){return++Hd}var xe=St.prototype;ke.prototype={constructor:ke,select:wd,selectAll:bd,selectChild:xe.selectChild,selectChildren:xe.selectChildren,filter:fd,merge:hd,selection:Nd,transition:Rd,call:xe.call,nodes:xe.nodes,node:xe.node,size:xe.size,empty:xe.empty,each:xe.each,on:md,attr:Uu,attrTween:td,style:Ed,styleTween:Md,text:Ad,textTween:Dd,remove:yd,tween:Vu,delay:sd,duration:ad,ease:ld,easeVarying:dd,end:Ld,[Symbol.iterator]:xe[Symbol.iterator]};function Od(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var Fd={time:null,delay:0,duration:250,ease:Od};function Bd(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 Vd(e){var t,n;e instanceof ke?(t=e._id,e=e._name):(t=Ni(),(n=Fd).time=gr(),e=e==null?null:e+"");for(var r=this._groups,s=r.length,i=0;i<s;++i)for(var o=r[i],a=o.length,l,u=0;u<a;++u)(l=o[u])&&fn(l,e,t,u,o,n||Bd(l,t));return new ke(r,this._parents,e,t)}St.prototype.interrupt=Ou;St.prototype.transition=Vd;const Tt=e=>()=>e;function qd(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 be(e,t,n){this.k=e,this.x=t,this.y=n}be.prototype={constructor:be,scale:function(e){return e===1?this:new be(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new be(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 hn=new be(1,0,0);_i.prototype=be.prototype;function _i(e){for(;!e.__zoom;)if(!(e=e.parentNode))return hn;return e.__zoom}function Tn(e){e.stopImmediatePropagation()}function ut(e){e.preventDefault(),e.stopImmediatePropagation()}function Xd(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Yd(){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 ns(){return this.__zoom||hn}function Wd(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Kd(){return navigator.maxTouchPoints||"ontouchstart"in this}function Gd(e,t,n){var r=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],o=e.invertY(t[1][1])-n[1][1];return e.translate(s>r?(r+s)/2:Math.min(0,r)||Math.max(0,s),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function ki(){var e=Xd,t=Yd,n=Gd,r=Wd,s=Kd,i=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],a=250,l=Iu,u=ln("start","zoom","end"),d,f,h,p=500,g=150,x=0,v=10;function y(m){m.property("__zoom",ns).on("wheel.zoom",R,{passive:!1}).on("mousedown.zoom",D).on("dblclick.zoom",T).filter(s).on("touchstart.zoom",z).on("touchmove.zoom",O).on("touchend.zoom touchcancel.zoom",P).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(m,k,_,M){var S=m.selection?m.selection():m;S.property("__zoom",ns),m!==S?C(m,k,_,M):S.interrupt().each(function(){L(this,arguments).event(M).start().zoom(null,typeof k=="function"?k.apply(this,arguments):k).end()})},y.scaleBy=function(m,k,_,M){y.scaleTo(m,function(){var S=this.__zoom.k,j=typeof k=="function"?k.apply(this,arguments):k;return S*j},_,M)},y.scaleTo=function(m,k,_,M){y.transform(m,function(){var S=t.apply(this,arguments),j=this.__zoom,I=_==null?w(S):typeof _=="function"?_.apply(this,arguments):_,H=j.invert(I),F=typeof k=="function"?k.apply(this,arguments):k;return n(b(N(j,F),I,H),S,o)},_,M)},y.translateBy=function(m,k,_,M){y.transform(m,function(){return n(this.__zoom.translate(typeof k=="function"?k.apply(this,arguments):k,typeof _=="function"?_.apply(this,arguments):_),t.apply(this,arguments),o)},null,M)},y.translateTo=function(m,k,_,M,S){y.transform(m,function(){var j=t.apply(this,arguments),I=this.__zoom,H=M==null?w(j):typeof M=="function"?M.apply(this,arguments):M;return n(hn.translate(H[0],H[1]).scale(I.k).translate(typeof k=="function"?-k.apply(this,arguments):-k,typeof _=="function"?-_.apply(this,arguments):-_),j,o)},M,S)};function N(m,k){return k=Math.max(i[0],Math.min(i[1],k)),k===m.k?m:new be(k,m.x,m.y)}function b(m,k,_){var M=k[0]-_[0]*m.k,S=k[1]-_[1]*m.k;return M===m.x&&S===m.y?m:new be(m.k,M,S)}function w(m){return[(+m[0][0]+ +m[1][0])/2,(+m[0][1]+ +m[1][1])/2]}function C(m,k,_,M){m.on("start.zoom",function(){L(this,arguments).event(M).start()}).on("interrupt.zoom end.zoom",function(){L(this,arguments).event(M).end()}).tween("zoom",function(){var S=this,j=arguments,I=L(S,j).event(M),H=t.apply(S,j),F=_==null?w(H):typeof _=="function"?_.apply(S,j):_,X=Math.max(H[1][0]-H[0][0],H[1][1]-H[0][1]),V=S.__zoom,B=typeof k=="function"?k.apply(S,j):k,Y=l(V.invert(F).concat(X/V.k),B.invert(F).concat(X/B.k));return function(U){if(U===1)U=B;else{var A=Y(U),q=X/A[2];U=new be(q,F[0]-A[0]*q,F[1]-A[1]*q)}I.zoom(null,U)}})}function L(m,k,_){return!_&&m.__zooming||new E(m,k)}function E(m,k){this.that=m,this.args=k,this.active=0,this.sourceEvent=null,this.extent=t.apply(m,k),this.taps=0}E.prototype={event:function(m){return m&&(this.sourceEvent=m),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(m,k){return this.mouse&&m!=="mouse"&&(this.mouse[1]=k.invert(this.mouse[0])),this.touch0&&m!=="touch"&&(this.touch0[1]=k.invert(this.touch0[0])),this.touch1&&m!=="touch"&&(this.touch1[1]=k.invert(this.touch1[0])),this.that.__zoom=k,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(m){var k=le(this.that).datum();u.call(m,this.that,new qd(m,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:u}),k)}};function R(m,...k){if(!e.apply(this,arguments))return;var _=L(this,k).event(m),M=this.__zoom,S=Math.max(i[0],Math.min(i[1],M.k*Math.pow(2,r.apply(this,arguments)))),j=de(m);if(_.wheel)(_.mouse[0][0]!==j[0]||_.mouse[0][1]!==j[1])&&(_.mouse[1]=M.invert(_.mouse[0]=j)),clearTimeout(_.wheel);else{if(M.k===S)return;_.mouse=[j,M.invert(j)],qt(this),_.start()}ut(m),_.wheel=setTimeout(I,g),_.zoom("mouse",n(b(N(M,S),_.mouse[0],_.mouse[1]),_.extent,o));function I(){_.wheel=null,_.end()}}function D(m,...k){if(h||!e.apply(this,arguments))return;var _=m.currentTarget,M=L(this,k,!0).event(m),S=le(m.view).on("mousemove.zoom",F,!0).on("mouseup.zoom",X,!0),j=de(m,_),I=m.clientX,H=m.clientY;ai(m.view),Tn(m),M.mouse=[j,this.__zoom.invert(j)],qt(this),M.start();function F(V){if(ut(V),!M.moved){var B=V.clientX-I,Y=V.clientY-H;M.moved=B*B+Y*Y>x}M.event(V).zoom("mouse",n(b(M.that.__zoom,M.mouse[0]=de(V,_),M.mouse[1]),M.extent,o))}function X(V){S.on("mousemove.zoom mouseup.zoom",null),ci(V.view,M.moved),ut(V),M.event(V).end()}}function T(m,...k){if(e.apply(this,arguments)){var _=this.__zoom,M=de(m.changedTouches?m.changedTouches[0]:m,this),S=_.invert(M),j=_.k*(m.shiftKey?.5:2),I=n(b(N(_,j),M,S),t.apply(this,k),o);ut(m),a>0?le(this).transition().duration(a).call(C,I,M,m):le(this).call(y.transform,I,M,m)}}function z(m,...k){if(e.apply(this,arguments)){var _=m.touches,M=_.length,S=L(this,k,m.changedTouches.length===M).event(m),j,I,H,F;for(Tn(m),I=0;I<M;++I)H=_[I],F=de(H,this),F=[F,this.__zoom.invert(F),H.identifier],S.touch0?!S.touch1&&S.touch0[2]!==F[2]&&(S.touch1=F,S.taps=0):(S.touch0=F,j=!0,S.taps=1+!!d);d&&(d=clearTimeout(d)),j&&(S.taps<2&&(f=F[0],d=setTimeout(function(){d=null},p)),qt(this),S.start())}}function O(m,...k){if(this.__zooming){var _=L(this,k).event(m),M=m.changedTouches,S=M.length,j,I,H,F;for(ut(m),j=0;j<S;++j)I=M[j],H=de(I,this),_.touch0&&_.touch0[2]===I.identifier?_.touch0[0]=H:_.touch1&&_.touch1[2]===I.identifier&&(_.touch1[0]=H);if(I=_.that.__zoom,_.touch1){var X=_.touch0[0],V=_.touch0[1],B=_.touch1[0],Y=_.touch1[1],U=(U=B[0]-X[0])*U+(U=B[1]-X[1])*U,A=(A=Y[0]-V[0])*A+(A=Y[1]-V[1])*A;I=N(I,Math.sqrt(U/A)),H=[(X[0]+B[0])/2,(X[1]+B[1])/2],F=[(V[0]+Y[0])/2,(V[1]+Y[1])/2]}else if(_.touch0)H=_.touch0[0],F=_.touch0[1];else return;_.zoom("touch",n(b(I,H,F),_.extent,o))}}function P(m,...k){if(this.__zooming){var _=L(this,k).event(m),M=m.changedTouches,S=M.length,j,I;for(Tn(m),h&&clearTimeout(h),h=setTimeout(function(){h=null},p),j=0;j<S;++j)I=M[j],_.touch0&&_.touch0[2]===I.identifier?delete _.touch0:_.touch1&&_.touch1[2]===I.identifier&&delete _.touch1;if(_.touch1&&!_.touch0&&(_.touch0=_.touch1,delete _.touch1),_.touch0)_.touch0[1]=this.__zoom.invert(_.touch0[0]);else if(_.end(),_.taps===2&&(I=de(I,this),Math.hypot(f[0]-I[0],f[1]-I[1])<v)){var H=le(this).on("dblclick.zoom");H&&H.apply(this,arguments)}}}return y.wheelDelta=function(m){return arguments.length?(r=typeof m=="function"?m:Tt(+m),y):r},y.filter=function(m){return arguments.length?(e=typeof m=="function"?m:Tt(!!m),y):e},y.touchable=function(m){return arguments.length?(s=typeof m=="function"?m:Tt(!!m),y):s},y.extent=function(m){return arguments.length?(t=typeof m=="function"?m:Tt([[+m[0][0],+m[0][1]],[+m[1][0],+m[1][1]]]),y):t},y.scaleExtent=function(m){return arguments.length?(i[0]=+m[0],i[1]=+m[1],y):[i[0],i[1]]},y.translateExtent=function(m){return arguments.length?(o[0][0]=+m[0][0],o[1][0]=+m[1][0],o[0][1]=+m[0][1],o[1][1]=+m[1][1],y):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},y.constrain=function(m){return arguments.length?(n=m,y):n},y.duration=function(m){return arguments.length?(a=+m,y):a},y.interpolate=function(m){return arguments.length?(l=m,y):l},y.on=function(){var m=u.on.apply(u,arguments);return m===u?y:m},y.clickDistance=function(m){return arguments.length?(x=(m=+m)*m,y):Math.sqrt(x)},y.tapDistance=function(m){return arguments.length?(v=+m,y):v},y}const Se={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.`},bt=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Si=["Enter"," ","Escape"];var Je;(function(e){e.Strict="strict",e.Loose="loose"})(Je||(Je={}));var He;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(He||(He={}));var vt;(function(e){e.Partial="partial",e.Full="full"})(vt||(vt={}));const ji={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null};var Ie;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ie||(Ie={}));var nn;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(nn||(nn={}));var G;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(G||(G={}));const rs={[G.Left]:G.Right,[G.Right]:G.Left,[G.Top]:G.Bottom,[G.Bottom]:G.Top};function Ei(e){return e===null?null:e?"valid":"invalid"}const Ci=e=>"id"in e&&"source"in e&&"target"in e,Ud=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),yr=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Et=(e,t=[0,0])=>{const{width:n,height:r}=je(e),s=e.origin??t,i=n*s[0],o=r*s[1];return{x:e.position.x-i,y:e.position.y-o}},Zd=(e,t={nodeOrigin:[0,0],nodeLookup:void 0})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,s)=>{const i=typeof s=="string";let o=!t.nodeLookup&&!i?s:void 0;t.nodeLookup&&(o=i?t.nodeLookup.get(s):yr(s)?s:t.nodeLookup.get(s.id));const a=o?rn(o,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return pn(r,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return gn(n)},Ct=(e,t={})=>{if(e.size===0)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return e.forEach(r=>{if(t.filter===void 0||t.filter(r)){const s=rn(r);n=pn(n,s)}}),gn(n)},$i=(e,t,[n,r,s]=[0,0,1],i=!1,o=!1)=>{const a={...$t(t,[n,r,s]),width:t.width/s,height:t.height/s},l=[];for(const u of e.values()){const{measured:d,selectable:f=!0,hidden:h=!1}=u;if(o&&!f||h)continue;const p=d.width??u.width??u.initialWidth??null,g=d.height??u.height??u.initialHeight??null,x=Nt(a,tt(u)),v=(p??0)*(g??0),y=i&&x>0;(!u.internals.handleBounds||y||x>=v||u.dragging)&&l.push(u)}return l},Qd=(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 er(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 tr({nodes:e,width:t,height:n,panZoom:r,minZoom:s,maxZoom:i},o){if(e.size===0)return Promise.resolve(!1);const a=Ct(e),l=wr(a,t,n,(o==null?void 0:o.minZoom)??s,(o==null?void 0:o.maxZoom)??i,(o==null?void 0:o.padding)??.1);return await r.setViewport(l,{duration:o==null?void 0:o.duration}),Promise.resolve(!0)}function Mi({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:s,onError:i}){const o=n.get(e),a=o.parentId?n.get(o.parentId):void 0,{x:l,y:u}=a?a.internals.positionAbsolute:{x:0,y:0},d=o.origin??r;let f=s;if(o.extent==="parent"&&!o.expandParent)if(!a)i==null||i("005",Se.error005());else{const p=a.measured.width,g=a.measured.height;p&&g&&(f=[[l,u],[l+p,u+g]])}else a&&nt(o.extent)&&(f=[[o.extent[0][0]+l,o.extent[0][1]+u],[o.extent[1][0]+l,o.extent[1][1]+u]]);const h=nt(f)?Fe(t,f,o.measured):t;return{position:{x:h.x-l+o.measured.width*d[0],y:h.y-u+o.measured.height*d[1]},positionAbsolute:h}}async function Jd({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:s}){const i=new Set(e.map(h=>h.id)),o=[];for(const h of n){if(h.deletable===!1)continue;const p=i.has(h.id),g=!p&&h.parentId&&o.find(x=>x.id===h.parentId);(p||g)&&o.push(h)}const a=new Set(t.map(h=>h.id)),l=r.filter(h=>h.deletable!==!1),d=Qd(o,l);for(const h of l)a.has(h.id)&&!d.find(g=>g.id===h.id)&&d.push(h);if(!s)return{edges:d,nodes:o};const f=await s({nodes:o,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:o}:{edges:[],nodes:[]}:f}const et=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Fe=(e={x:0,y:0},t,n)=>({x:et(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:et(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function zi(e,t,n){const{width:r,height:s}=je(n),{x:i,y:o}=n.internals.positionAbsolute;return Fe(e,[[i,o],[i+r,o+s]],t)}const ss=(e,t,n)=>e<t?et(Math.abs(e-t),1,t)/t:e>n?-et(Math.abs(e-n),1,t)/t:0,Ii=(e,t,n=15,r=40)=>{const s=ss(e.x,r,t.width-r)*n,i=ss(e.y,r,t.height-r)*n;return[s,i]},pn=(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)}),nr=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),gn=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),tt=(e,t=[0,0])=>{var s,i;const{x:n,y:r}=yr(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:r,width:((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},rn=(e,t=[0,0])=>{var s,i;const{x:n,y:r}=yr(e)?e.internals.positionAbsolute:Et(e,t);return{x:n,y:r,x2:n+(((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0),y2:r+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},Ai=(e,t)=>gn(pn(nr(e),nr(t))),Nt=(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)},is=e=>he(e.width)&&he(e.height)&&he(e.x)&&he(e.y),he=e=>!isNaN(e)&&isFinite(e),ef=(e,t)=>{},mn=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),$t=({x:e,y:t},[n,r,s],i=!1,o=[1,1])=>{const a={x:(e-n)/s,y:(t-r)/s};return i?mn(a,o):a},Pi=({x:e,y:t},[n,r,s])=>({x:e*s+n,y:t*s+r}),wr=(e,t,n,r,s,i)=>{const o=t/(e.width*(1+i)),a=n/(e.height*(1+i)),l=Math.min(o,a),u=et(l,r,s),d=e.x+e.width/2,f=e.y+e.height/2,h=t/2-d*u,p=n/2-f*u;return{x:h,y:p,zoom:u}},sn=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function nt(e){return e!==void 0&&e!=="parent"}function je(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 Ti(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 Di(e,t={width:0,height:0},n,r,s){const i={...e},o=r.get(n);if(o){const a=o.origin||s;i.x+=o.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=o.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function ht(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:s}){const{x:i,y:o}=ve(e),a=$t({x:i-((s==null?void 0:s.left)??0),y:o-((s==null?void 0:s.top)??0)},r),{x:l,y:u}=n?mn(a,t):a;return{xSnapped:l,ySnapped:u,...a}}const xn=e=>({width:e.offsetWidth,height:e.offsetHeight}),Ri=e=>{var t;return((t=e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},tf=["INPUT","SELECT","TEXTAREA"];function rr(e){var r,s,i;const t=((s=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:s[0])||e.target;return tf.includes(t==null?void 0:t.nodeName)||((i=t==null?void 0:t.hasAttribute)==null?void 0:i.call(t,"contenteditable"))||!!(t!=null&&t.closest(".nokey"))}const Li=e=>"clientX"in e,ve=(e,t)=>{var i,o;const n=Li(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,s=n?e.clientY:(o=e.touches)==null?void 0:o[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:s-((t==null?void 0:t.top)??0)}},os=(e,t,n,r,s)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(o=>{const a=o.getBoundingClientRect();return{id:o.getAttribute("data-handleid"),type:e,nodeId:s,position:o.getAttribute("data-handlepos"),x:(a.left-n.left)/r,y:(a.top-n.top)/r,...xn(o)}})};function Hi({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:s,sourceControlY:i,targetControlX:o,targetControlY:a}){const l=e*.125+s*.375+o*.375+n*.125,u=t*.125+i*.375+a*.375+r*.125,d=Math.abs(l-e),f=Math.abs(u-t);return[l,u,d,f]}function Dt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function as({pos:e,x1:t,y1:n,x2:r,y2:s,c:i}){switch(e){case G.Left:return[t-Dt(t-r,i),n];case G.Right:return[t+Dt(r-t,i),n];case G.Top:return[t,n-Dt(n-s,i)];case G.Bottom:return[t,n+Dt(s-n,i)]}}function Oi({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:s,targetPosition:i=G.Top,curvature:o=.25}){const[a,l]=as({pos:n,x1:e,y1:t,x2:r,y2:s,c:o}),[u,d]=as({pos:i,x1:r,y1:s,x2:e,y2:t,c:o}),[f,h,p,g]=Hi({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}`,f,h,p,g]}function Fi({sourceX:e,sourceY:t,targetX:n,targetY:r}){const s=Math.abs(n-e)/2,i=n<e?n+s:n-s,o=Math.abs(r-t)/2,a=r<t?r+o:r-o;return[i,a,s,o]}function nf({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:s=!1}){if(!s)return r;const i=n||t.selected||e.selected,o=Math.max(e.internals.z||0,t.internals.z||0,1e3);return r+(i?o:0)}function rf({sourceNode:e,targetNode:t,width:n,height:r,transform:s}){const i=pn(rn(e),rn(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const o={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:r/s[2]};return Nt(o,gn(i))>0}const sf=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,of=(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)),af=(e,t)=>{if(!e.source||!e.target)return t;let n;return Ci(e)?n={...e}:n={...e,id:sf(e)},of(n,t)?t:(n.sourceHandle===null&&delete n.sourceHandle,n.targetHandle===null&&delete n.targetHandle,t.concat(n))};function Bi({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[s,i,o,a]=Fi({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,s,i,o,a]}const cs={[G.Left]:{x:-1,y:0},[G.Right]:{x:1,y:0},[G.Top]:{x:0,y:-1},[G.Bottom]:{x:0,y:1}},cf=({source:e,sourcePosition:t=G.Bottom,target:n})=>t===G.Left||t===G.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},ls=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function lf({source:e,sourcePosition:t=G.Bottom,target:n,targetPosition:r=G.Top,center:s,offset:i}){const o=cs[t],a=cs[r],l={x:e.x+o.x*i,y:e.y+o.y*i},u={x:n.x+a.x*i,y:n.y+a.y*i},d=cf({source:l,sourcePosition:t,target:u}),f=d.x!==0?"x":"y",h=d[f];let p=[],g,x;const v={x:0,y:0},y={x:0,y:0},[N,b,w,C]=Fi({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(o[f]*a[f]===-1){g=s.x??N,x=s.y??b;const E=[{x:g,y:l.y},{x:g,y:u.y}],R=[{x:l.x,y:x},{x:u.x,y:x}];o[f]===h?p=f==="x"?E:R:p=f==="x"?R:E}else{const E=[{x:l.x,y:u.y}],R=[{x:u.x,y:l.y}];if(f==="x"?p=o.x===h?R:E:p=o.y===h?E:R,t===r){const P=Math.abs(e[f]-n[f]);if(P<=i){const m=Math.min(i-1,i-P);o[f]===h?v[f]=(l[f]>e[f]?-1:1)*m:y[f]=(u[f]>n[f]?-1:1)*m}}if(t!==r){const P=f==="x"?"y":"x",m=o[f]===a[P],k=l[P]>u[P],_=l[P]<u[P];(o[f]===1&&(!m&&k||m&&_)||o[f]!==1&&(!m&&_||m&&k))&&(p=f==="x"?E:R)}const D={x:l.x+v.x,y:l.y+v.y},T={x:u.x+y.x,y:u.y+y.y},z=Math.max(Math.abs(D.x-p[0].x),Math.abs(T.x-p[0].x)),O=Math.max(Math.abs(D.y-p[0].y),Math.abs(T.y-p[0].y));z>=O?(g=(D.x+T.x)/2,x=p[0].y):(g=p[0].x,x=(D.y+T.y)/2)}return[[e,{x:l.x+v.x,y:l.y+v.y},...p,{x:u.x+y.x,y:u.y+y.y},n],g,x,w,C]}function uf(e,t,n,r){const s=Math.min(ls(e,t)/2,ls(t,n)/2,r),{x:i,y:o}=t;if(e.x===i&&i===n.x||e.y===o&&o===n.y)return`L${i} ${o}`;if(e.y===o){const u=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${i+s*u},${o}Q ${i},${o} ${i},${o+s*d}`}const a=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${o+s*l}Q ${i},${o} ${i+s*a},${o}`}function sr({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:s,targetPosition:i=G.Top,borderRadius:o=5,centerX:a,centerY:l,offset:u=20}){const[d,f,h,p,g]=lf({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:s},targetPosition:i,center:{x:a,y:l},offset:u});return[d.reduce((v,y,N)=>{let b="";return N>0&&N<d.length-1?b=uf(d[N-1],y,d[N+1],o):b=`${N===0?"M":"L"}${y.x} ${y.y}`,v+=b,v},""),f,h,p,g]}function us(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function df(e){var f;const{sourceNode:t,targetNode:n}=e;if(!us(t)||!us(n))return null;const r=t.internals.handleBounds||ds(t.handles),s=n.internals.handleBounds||ds(n.handles),i=fs((r==null?void 0:r.source)??[],e.sourceHandle),o=fs(e.connectionMode===Je.Strict?(s==null?void 0:s.target)??[]:((s==null?void 0:s.target)??[]).concat((s==null?void 0:s.source)??[]),e.targetHandle);if(!i||!o)return(f=e.onError)==null||f.call(e,"008",Se.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(i==null?void 0:i.position)||G.Bottom,l=(o==null?void 0:o.position)||G.Top,u=_t(t,i,a),d=_t(n,o,l);return{sourceX:u.x,sourceY:u.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:l}}function ds(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 _t(e,t,n=G.Left,r=!1){const s=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:o,height:a}=t??je(e);if(r)return{x:s+o/2,y:i+a/2};switch((t==null?void 0:t.position)??n){case G.Top:return{x:s+o/2,y:i};case G.Right:return{x:s+o,y:i+a/2};case G.Bottom:return{x:s+o/2,y:i+a};case G.Left:return{x:s,y:i+a/2}}}function fs(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function ir(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function ff(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:s}){const i=new Set;return e.reduce((o,a)=>([a.markerStart||r,a.markerEnd||s].forEach(l=>{if(l&&typeof l=="object"){const u=ir(l,t);i.has(u)||(o.push({id:u,color:l.color||n,...l}),i.add(u))}}),o),[]).sort((o,a)=>o.id.localeCompare(a.id))}const br={nodeOrigin:[0,0],nodeExtent:bt,elevateNodesOnSelect:!0,defaults:{}},hf={...br,checkEquality:!0};function vr(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function pf(e,t,n){const r=vr(br,n);for(const s of e.values())if(s.parentId)Nr(s,e,t,r);else{const i=Et(s,r.nodeOrigin),o=nt(s.extent)?s.extent:r.nodeExtent,a=Fe(i,o,je(s));s.internals.positionAbsolute=a}}function or(e,t,n,r){var a,l;const s=vr(hf,r),i=new Map(t),o=s!=null&&s.elevateNodesOnSelect?1e3:0;t.clear(),n.clear();for(const u of e){let d=i.get(u.id);if(s.checkEquality&&u===(d==null?void 0:d.internals.userNode))t.set(u.id,d);else{const f=Et(u,s.nodeOrigin),h=nt(u.extent)?u.extent:s.nodeExtent,p=Fe(f,h,je(u));d={...s.defaults,...u,measured:{width:(a=u.measured)==null?void 0:a.width,height:(l=u.measured)==null?void 0:l.height},internals:{positionAbsolute:p,handleBounds:u.measured?d==null?void 0:d.internals.handleBounds:void 0,z:Vi(u,o),userNode:u}},t.set(u.id,d)}u.parentId&&Nr(d,t,n,r)}}function gf(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 Nr(e,t,n,r){const{elevateNodesOnSelect:s,nodeOrigin:i,nodeExtent:o}=vr(br,r),a=e.parentId,l=t.get(a);if(!l){console.warn(`Parent node ${a} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}gf(e,n);const u=s?1e3:0,{x:d,y:f,z:h}=mf(e,l,i,o,u),{positionAbsolute:p}=e.internals,g=d!==p.x||f!==p.y;(g||h!==e.internals.z)&&(e.internals={...e.internals,positionAbsolute:g?{x:d,y:f}:p,z:h})}function Vi(e,t){return(he(e.zIndex)?e.zIndex:0)+(e.selected?t:0)}function mf(e,t,n,r,s){const{x:i,y:o}=t.internals.positionAbsolute,a=je(e),l=Et(e,n),u=nt(e.extent)?Fe(l,e.extent,a):l;let d=Fe({x:i+u.x,y:o+u.y},r,a);e.extent==="parent"&&(d=zi(d,a,t));const f=Vi(e,s),h=t.internals.z??0;return{x:d.x,y:d.y,z:h>f?h:f}}function _r(e,t,n,r=[0,0]){var o;const s=[],i=new Map;for(const a of e){const l=t.get(a.parentId);if(!l)continue;const u=((o=i.get(a.parentId))==null?void 0:o.expandedRect)??tt(l),d=Ai(u,a.rect);i.set(a.parentId,{expandedRect:d,parent:l})}return i.size>0&&i.forEach(({expandedRect:a,parent:l},u)=>{var b;const d=l.internals.positionAbsolute,f=je(l),h=l.origin??r,p=a.x<d.x?Math.round(Math.abs(d.x-a.x)):0,g=a.y<d.y?Math.round(Math.abs(d.y-a.y)):0,x=Math.max(f.width,Math.round(a.width)),v=Math.max(f.height,Math.round(a.height)),y=(x-f.width)*h[0],N=(v-f.height)*h[1];(p>0||g>0||y||N)&&(s.push({id:u,type:"position",position:{x:l.position.x-p+y,y:l.position.y-g+N}}),(b=n.get(u))==null||b.forEach(w=>{e.some(C=>C.id===w.id)||s.push({id:w.id,type:"position",position:{x:w.position.x+p,y:w.position.y+g}})})),(f.width<a.width||f.height<a.height||p||g)&&s.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:x+(p?h[0]*p-y:0),height:v+(g?h[1]*g-N:0)}})}),s}function xf(e,t,n,r,s,i){const o=r==null?void 0:r.querySelector(".xyflow__viewport");let a=!1;if(!o)return{changes:[],updatedInternals:a};const l=[],u=window.getComputedStyle(o),{m22:d}=new window.DOMMatrixReadOnly(u.transform),f=[];for(const h of e.values()){const p=t.get(h.id);if(p)if(p.hidden)p.internals={...p.internals,handleBounds:void 0},a=!0;else{const g=xn(h.nodeElement),x=p.measured.width!==g.width||p.measured.height!==g.height;if(!!(g.width&&g.height&&(x||!p.internals.handleBounds||h.force))){const y=h.nodeElement.getBoundingClientRect(),N=nt(p.extent)?p.extent:i;let{positionAbsolute:b}=p.internals;p.parentId&&p.extent==="parent"?b=zi(b,g,t.get(p.parentId)):N&&(b=Fe(b,N,g)),p.measured=g,p.internals={...p.internals,positionAbsolute:b,handleBounds:{source:os("source",h.nodeElement,y,d,p.id),target:os("target",h.nodeElement,y,d,p.id)}},p.parentId&&Nr(p,t,n,{nodeOrigin:s}),a=!0,x&&(l.push({id:p.id,type:"dimensions",dimensions:g}),p.expandParent&&p.parentId&&f.push({id:p.id,parentId:p.parentId,rect:tt(p,s)}))}}}if(f.length>0){const h=_r(f,t,n,s);l.push(...h)}return{changes:l,updatedInternals:a}}async function yf({delta:e,panZoom:t,transform:n,translateExtent:r,width:s,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const o=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,i]],r),a=!!o&&(o.x!==n[0]||o.y!==n[1]||o.k!==n[2]);return Promise.resolve(a)}function qi(e,t,n){e.clear(),t.clear();for(const r of n){const{source:s,target:i,sourceHandle:o=null,targetHandle:a=null}=r,l=`${s}-source-${o}`,u=`${i}-target-${a}`,d=e.get(l)||new Map,f=e.get(u)||new Map,h={edgeId:r.id,source:s,target:i,sourceHandle:o,targetHandle:a};t.set(r.id,r),e.set(l,d.set(`${i}-${a}`,h)),e.set(u,f.set(`${s}-${o}`,h))}}function Xi(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Xi(n,t):!1}function hs(e,t,n){let r=e;do{if(r!=null&&r.matches(t))return!0;if(r===n)return!1;r=r.parentElement}while(r);return!1}function wf(e,t,n,r){const s=new Map;for(const[i,o]of e)if((o.selected||o.id===r)&&(!o.parentId||!Xi(o,e))&&(o.draggable||t&&typeof o.draggable>"u")){const a=e.get(i);a&&s.set(i,{id:i,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return s}function Dn({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var o,a,l;const s=[];for(const[u,d]of t){const f=(o=n.get(u))==null?void 0:o.internals.userNode;f&&s.push({...f,position:d.position,dragging:r})}if(!e)return[s[0],s];const i=(a=n.get(e))==null?void 0:a.internals.userNode;return[i?{...i,position:((l=t.get(e))==null?void 0:l.position)||i.position,dragging:r}:s[0],s]}function bf({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:s}){let i={x:null,y:null},o=0,a=new Map,l=!1,u={x:0,y:0},d=null,f=!1,h=null,p=!1;function g({noDragClassName:v,handleSelector:y,domNode:N,isSelectable:b,nodeId:w,nodeClickDistance:C=0}){h=le(N);function L({x:T,y:z},O){const{nodeLookup:P,nodeExtent:m,snapGrid:k,snapToGrid:_,nodeOrigin:M,onNodeDrag:S,onSelectionDrag:j,onError:I,updateNodePositions:H}=t();i={x:T,y:z};let F=!1,X={x:0,y:0,x2:0,y2:0};if(a.size>1&&m){const V=Ct(a);X=nr(V)}for(const[V,B]of a){if(!P.has(V))continue;let Y={x:T-B.distance.x,y:z-B.distance.y};_&&(Y=mn(Y,k));let U=[[m[0][0],m[0][1]],[m[1][0],m[1][1]]];if(a.size>1&&m&&!B.extent){const{positionAbsolute:K}=B.internals,Z=K.x-X.x+m[0][0],W=K.x+B.measured.width-X.x2+m[1][0],J=K.y-X.y+m[0][1],ee=K.y+B.measured.height-X.y2+m[1][1];U=[[Z,J],[W,ee]]}const{position:A,positionAbsolute:q}=Mi({nodeId:V,nextPosition:Y,nodeLookup:P,nodeExtent:U,nodeOrigin:M,onError:I});F=F||B.position.x!==A.x||B.position.y!==A.y,B.position=A,B.internals.positionAbsolute=q}if(F&&(H(a,!0),O&&(r||S||!w&&j))){const[V,B]=Dn({nodeId:w,dragItems:a,nodeLookup:P});r==null||r(O,a,V,B),S==null||S(O,V,B),w||j==null||j(O,B)}}async function E(){if(!d)return;const{transform:T,panBy:z,autoPanSpeed:O}=t(),[P,m]=Ii(u,d,O);(P!==0||m!==0)&&(i.x=(i.x??0)-P/T[2],i.y=(i.y??0)-m/T[2],await z({x:P,y:m})&&L(i,null)),o=requestAnimationFrame(E)}function R(T){var F;const{nodeLookup:z,multiSelectionActive:O,nodesDraggable:P,transform:m,snapGrid:k,snapToGrid:_,selectNodesOnDrag:M,onNodeDragStart:S,onSelectionDragStart:j,unselectNodesAndEdges:I}=t();f=!0,(!M||!b)&&!O&&w&&((F=z.get(w))!=null&&F.selected||I()),b&&M&&w&&(e==null||e(w));const H=ht(T.sourceEvent,{transform:m,snapGrid:k,snapToGrid:_,containerBounds:d});if(i=H,a=wf(z,P,H,w),a.size>0&&(n||S||!w&&j)){const[X,V]=Dn({nodeId:w,dragItems:a,nodeLookup:z});n==null||n(T.sourceEvent,a,X,V),S==null||S(T.sourceEvent,X,V),w||j==null||j(T.sourceEvent,V)}}const D=li().clickDistance(C).on("start",T=>{const{domNode:z,nodeDragThreshold:O,transform:P,snapGrid:m,snapToGrid:k}=t();d=(z==null?void 0:z.getBoundingClientRect())||null,p=!1,O===0&&R(T),i=ht(T.sourceEvent,{transform:P,snapGrid:m,snapToGrid:k,containerBounds:d}),u=ve(T.sourceEvent,d)}).on("drag",T=>{const{autoPanOnNodeDrag:z,transform:O,snapGrid:P,snapToGrid:m,nodeDragThreshold:k,nodeLookup:_}=t(),M=ht(T.sourceEvent,{transform:O,snapGrid:P,snapToGrid:m,containerBounds:d});if((T.sourceEvent.type==="touchmove"&&T.sourceEvent.touches.length>1||w&&!_.has(w))&&(p=!0),!p){if(!l&&z&&f&&(l=!0,E()),!f){const S=M.xSnapped-(i.x??0),j=M.ySnapped-(i.y??0);Math.sqrt(S*S+j*j)>k&&R(T)}(i.x!==M.xSnapped||i.y!==M.ySnapped)&&a&&f&&(u=ve(T.sourceEvent,d),L(M,T.sourceEvent))}}).on("end",T=>{if(!(!f||p)&&(l=!1,f=!1,cancelAnimationFrame(o),a.size>0)){const{nodeLookup:z,updateNodePositions:O,onNodeDragStop:P,onSelectionDragStop:m}=t();if(O(a,!1),s||P||!w&&m){const[k,_]=Dn({nodeId:w,dragItems:a,nodeLookup:z,dragging:!1});s==null||s(T.sourceEvent,a,k,_),P==null||P(T.sourceEvent,k,_),w||m==null||m(T.sourceEvent,_)}}}).filter(T=>{const z=T.target;return!T.button&&(!v||!hs(z,`.${v}`,N))&&(!y||hs(z,y,N))});h.call(D)}function x(){h==null||h.on(".drag",null)}return{update:g,destroy:x}}function vf(e,t,n){const r=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())Nt(s,tt(i))>0&&r.push(i);return r}const Nf=250;function _f(e,t,n,r){var a,l;let s=[],i=1/0;const o=vf(e,n,t+Nf);for(const u of o){const d=[...((a=u.internals.handleBounds)==null?void 0:a.source)??[],...((l=u.internals.handleBounds)==null?void 0:l.target)??[]];for(const f of d){if(r.nodeId===f.nodeId&&r.type===f.type&&r.id===f.id)continue;const{x:h,y:p}=_t(u,f,f.position,!0),g=Math.sqrt(Math.pow(h-e.x,2)+Math.pow(p-e.y,2));g>t||(g<i?(s=[{...f,x:h,y:p}],i=g):g===i&&s.push({...f,x:h,y:p}))}}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 Yi(e,t,n,r,s,i=!1){var u,d,f;const o=r.get(e);if(!o)return null;const a=s==="strict"?(u=o.internals.handleBounds)==null?void 0:u[t]:[...((d=o.internals.handleBounds)==null?void 0:d.source)??[],...((f=o.internals.handleBounds)==null?void 0:f.target)??[]],l=(n?a==null?void 0:a.find(h=>h.id===n):a==null?void 0:a[0])??null;return l&&i?{...l,..._t(o,l,l.position,!0)}:l}function Wi(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function kf(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const Ki=()=>!0;function Sf(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:s,edgeUpdaterType:i,isTarget:o,domNode:a,nodeLookup:l,lib:u,autoPanOnConnect:d,flowId:f,panBy:h,cancelConnection:p,onConnectStart:g,onConnect:x,onConnectEnd:v,isValidConnection:y=Ki,onReconnectEnd:N,updateConnection:b,getTransform:w,getFromHandle:C,autoPanSpeed:L}){const E=Ri(e.target);let R=0,D;const{x:T,y:z}=ve(e),O=E==null?void 0:E.elementFromPoint(T,z),P=Wi(i,O),m=a==null?void 0:a.getBoundingClientRect();if(!m||!P)return;const k=Yi(s,P,r,l,t);if(!k)return;let _=ve(e,m),M=!1,S=null,j=!1,I=null;function H(){if(!d||!m)return;const[q,K]=Ii(_,m,L);h({x:q,y:K}),R=requestAnimationFrame(H)}const F={...k,nodeId:s,type:P,position:k.position},X=l.get(s),B={inProgress:!0,isValid:null,from:_t(X,F,G.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:X,to:_,toHandle:null,toPosition:rs[F.position],toNode:null};b(B);let Y=B;g==null||g(e,{nodeId:s,handleId:r,handleType:P});function U(q){if(!C()||!F){A(q);return}const K=w();_=ve(q,m),D=_f($t(_,K,!1,[1,1]),n,l,F),M||(H(),M=!0);const Z=Gi(q,{handle:D,connectionMode:t,fromNodeId:s,fromHandleId:r,fromType:o?"target":"source",isValidConnection:y,doc:E,lib:u,flowId:f,nodeLookup:l});I=Z.handleDomNode,S=Z.connection,j=kf(!!D,Z.isValid);const W={...Y,isValid:j,to:D&&j?Pi({x:D.x,y:D.y},K):_,toHandle:Z.toHandle,toPosition:j&&Z.toHandle?Z.toHandle.position:rs[F.position],toNode:Z.toHandle?l.get(Z.toHandle.nodeId):null};j&&D&&Y.toHandle&&W.toHandle&&Y.toHandle.type===W.toHandle.type&&Y.toHandle.nodeId===W.toHandle.nodeId&&Y.toHandle.id===W.toHandle.id&&Y.to.x===W.to.x&&Y.to.y===W.to.y||(b(W),Y=W)}function A(q){(D||I)&&S&&j&&(x==null||x(S));const{inProgress:K,...Z}=Y,W={...Z,toPosition:Y.toHandle?Y.toPosition:null};v==null||v(q,W),i&&(N==null||N(q,W)),p(),cancelAnimationFrame(R),M=!1,j=!1,S=null,I=null,E.removeEventListener("mousemove",U),E.removeEventListener("mouseup",A),E.removeEventListener("touchmove",U),E.removeEventListener("touchend",A)}E.addEventListener("mousemove",U),E.addEventListener("mouseup",A),E.addEventListener("touchmove",U),E.addEventListener("touchend",A)}function Gi(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:s,fromType:i,doc:o,lib:a,flowId:l,isValidConnection:u=Ki,nodeLookup:d}){const f=i==="target",h=t?o.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:p,y:g}=ve(e),x=o.elementFromPoint(p,g),v=x!=null&&x.classList.contains(`${a}-flow__handle`)?x:h,y={handleDomNode:v,isValid:!1,connection:null,toHandle:null};if(v){const N=Wi(void 0,v),b=v.getAttribute("data-nodeid"),w=v.getAttribute("data-handleid"),C=v.classList.contains("connectable"),L=v.classList.contains("connectableend");if(!b||!N)return y;const E={source:f?b:r,sourceHandle:f?w:s,target:f?r:b,targetHandle:f?s:w};y.connection=E;const D=C&&L&&(n===Je.Strict?f&&N==="source"||!f&&N==="target":b!==r||w!==s);y.isValid=D&&u(E),y.toHandle=Yi(b,N,w,d,n,!1)}return y}const ar={onPointerDown:Sf,isValid:Gi};function jf({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const s=le(e);function i({translateExtent:a,width:l,height:u,zoomStep:d=10,pannable:f=!0,zoomable:h=!0,inversePan:p=!1}){const g=b=>{const w=n();if(b.sourceEvent.type!=="wheel"||!t)return;const C=-b.sourceEvent.deltaY*(b.sourceEvent.deltaMode===1?.05:b.sourceEvent.deltaMode?1:.002)*d,L=w[2]*Math.pow(2,C);t.scaleTo(L)};let x=[0,0];const v=b=>{(b.sourceEvent.type==="mousedown"||b.sourceEvent.type==="touchstart")&&(x=[b.sourceEvent.clientX??b.sourceEvent.touches[0].clientX,b.sourceEvent.clientY??b.sourceEvent.touches[0].clientY])},y=b=>{const w=n();if(b.sourceEvent.type!=="mousemove"&&b.sourceEvent.type!=="touchmove"||!t)return;const C=[b.sourceEvent.clientX??b.sourceEvent.touches[0].clientX,b.sourceEvent.clientY??b.sourceEvent.touches[0].clientY],L=[C[0]-x[0],C[1]-x[1]];x=C;const E=r()*Math.max(w[2],Math.log(w[2]))*(p?-1:1),R={x:w[0]-L[0]*E,y:w[1]-L[1]*E},D=[[0,0],[l,u]];t.setViewportConstrained({x:R.x,y:R.y,zoom:w[2]},D,a)},N=ki().on("start",v).on("zoom",f?y:null).on("zoom.wheel",h?g:null);s.call(N,{})}function o(){s.on("zoom",null)}return{update:i,destroy:o,pointer:de}}const Ef=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,yn=e=>({x:e.x,y:e.y,zoom:e.k}),Rn=({x:e,y:t,zoom:n})=>hn.translate(e,t).scale(n),Ye=(e,t)=>e.target.closest(`.${t}`),Ui=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Ln=(e,t=0,n=()=>{})=>{const r=typeof t=="number"&&t>0;return r||n(),r?e.transition().duration(t).on("end",n):e},Zi=e=>{const t=e.ctrlKey&&sn()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Cf({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:s,panOnScrollSpeed:i,zoomOnPinch:o,onPanZoomStart:a,onPanZoom:l,onPanZoomEnd:u}){return d=>{if(Ye(d,t))return!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&o){const v=de(d),y=Zi(d),N=f*Math.pow(2,y);r.scaleTo(n,N,v,d);return}const h=d.deltaMode===1?20:1;let p=s===He.Vertical?0:d.deltaX*h,g=s===He.Horizontal?0:d.deltaY*h;!sn()&&d.shiftKey&&s!==He.Vertical&&(p=d.deltaY*h,g=0),r.translateBy(n,-(p/f)*i,-(g/f)*i,{internal:!0});const x=yn(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling||(e.isPanScrolling=!0,a==null||a(d,x)),e.isPanScrolling&&(l==null||l(d,x),e.panScrollTimeout=setTimeout(()=>{u==null||u(d,x),e.isPanScrolling=!1},150))}}function $f({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,s){if(!t&&r.type==="wheel"&&!r.ctrlKey||Ye(r,e))return null;r.preventDefault(),n.call(this,r,s)}}function Mf({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,o,a;if((i=r.sourceEvent)!=null&&i.internal)return;const s=yn(r.transform);e.mouseButton=((o=r.sourceEvent)==null?void 0:o.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 zf({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:s}){return i=>{var o,a;e.usedRightMouseButton=!!(n&&Ui(t,e.mouseButton??0)),(o=i.sourceEvent)!=null&&o.sync||r([i.transform.x,i.transform.y,i.transform.k]),s&&!((a=i.sourceEvent)!=null&&a.internal)&&(s==null||s(i.sourceEvent,yn(i.transform)))}}function If({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:s,onPaneContextMenu:i}){return o=>{var a;if(!((a=o.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,i&&Ui(t,e.mouseButton??0)&&!e.usedRightMouseButton&&o.sourceEvent&&i(o.sourceEvent),e.usedRightMouseButton=!1,r(!1),s&&Ef(e.prevViewport,o.transform))){const l=yn(o.transform);e.prevViewport=l,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s==null||s(o.sourceEvent,l)},n?150:0)}}}function Af({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:s,zoomOnDoubleClick:i,userSelectionActive:o,noWheelClassName:a,noPanClassName:l,lib:u}){return d=>{var g;const f=e||t,h=n&&d.ctrlKey;if(d.button===1&&d.type==="mousedown"&&(Ye(d,`${u}-flow__node`)||Ye(d,`${u}-flow__edge`)))return!0;if(!r&&!f&&!s&&!i&&!n||o||Ye(d,a)&&d.type==="wheel"||Ye(d,l)&&(d.type!=="wheel"||s&&d.type==="wheel"&&!e)||!n&&d.ctrlKey&&d.type==="wheel")return!1;if(!n&&d.type==="touchstart"&&((g=d.touches)==null?void 0:g.length)>1)return d.preventDefault(),!1;if(!f&&!s&&!h&&d.type==="wheel"||!r&&(d.type==="mousedown"||d.type==="touchstart")||Array.isArray(r)&&!r.includes(d.button)&&d.type==="mousedown")return!1;const p=Array.isArray(r)&&r.includes(d.button)||!d.button||d.button<=1;return(!d.ctrlKey||d.type==="wheel")&&p}}function Pf({domNode:e,minZoom:t,maxZoom:n,paneClickDistance:r,translateExtent:s,viewport:i,onPanZoom:o,onPanZoomStart:a,onPanZoomEnd:l,onDraggingChange:u}){const d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect(),h=ki().clickDistance(!he(r)||r<0?0:r).scaleExtent([t,n]).translateExtent(s),p=le(e).call(h);b({x:i.x,y:i.y,zoom:et(i.zoom,t,n)},[[0,0],[f.width,f.height]],s);const g=p.on("wheel.zoom"),x=p.on("dblclick.zoom");h.wheelDelta(Zi);function v(O,P){return p?new Promise(m=>{h==null||h.transform(Ln(p,P==null?void 0:P.duration,()=>m(!0)),O)}):Promise.resolve(!1)}function y({noWheelClassName:O,noPanClassName:P,onPaneContextMenu:m,userSelectionActive:k,panOnScroll:_,panOnDrag:M,panOnScrollMode:S,panOnScrollSpeed:j,preventScrolling:I,zoomOnPinch:H,zoomOnScroll:F,zoomOnDoubleClick:X,zoomActivationKeyPressed:V,lib:B,onTransformChange:Y}){k&&!d.isZoomingOrPanning&&N();const A=_&&!V&&!k?Cf({zoomPanValues:d,noWheelClassName:O,d3Selection:p,d3Zoom:h,panOnScrollMode:S,panOnScrollSpeed:j,zoomOnPinch:H,onPanZoomStart:a,onPanZoom:o,onPanZoomEnd:l}):$f({noWheelClassName:O,preventScrolling:I,d3ZoomHandler:g});if(p.on("wheel.zoom",A,{passive:!1}),!k){const K=Mf({zoomPanValues:d,onDraggingChange:u,onPanZoomStart:a});h.on("start",K);const Z=zf({zoomPanValues:d,panOnDrag:M,onPaneContextMenu:!!m,onPanZoom:o,onTransformChange:Y});h.on("zoom",Z);const W=If({zoomPanValues:d,panOnDrag:M,panOnScroll:_,onPaneContextMenu:m,onPanZoomEnd:l,onDraggingChange:u});h.on("end",W)}const q=Af({zoomActivationKeyPressed:V,panOnDrag:M,zoomOnScroll:F,panOnScroll:_,zoomOnDoubleClick:X,zoomOnPinch:H,userSelectionActive:k,noPanClassName:P,noWheelClassName:O,lib:B});h.filter(q),X?p.on("dblclick.zoom",x):p.on("dblclick.zoom",null)}function N(){h.on("zoom",null)}async function b(O,P,m){const k=Rn(O),_=h==null?void 0:h.constrain()(k,P,m);return _&&await v(_),new Promise(M=>M(_))}async function w(O,P){const m=Rn(O);return await v(m,P),new Promise(k=>k(m))}function C(O){if(p){const P=Rn(O),m=p.property("__zoom");(m.k!==O.zoom||m.x!==O.x||m.y!==O.y)&&(h==null||h.transform(p,P,null,{sync:!0}))}}function L(){const O=p?_i(p.node()):{x:0,y:0,k:1};return{x:O.x,y:O.y,zoom:O.k}}function E(O,P){return p?new Promise(m=>{h==null||h.scaleTo(Ln(p,P==null?void 0:P.duration,()=>m(!0)),O)}):Promise.resolve(!1)}function R(O,P){return p?new Promise(m=>{h==null||h.scaleBy(Ln(p,P==null?void 0:P.duration,()=>m(!0)),O)}):Promise.resolve(!1)}function D(O){h==null||h.scaleExtent(O)}function T(O){h==null||h.translateExtent(O)}function z(O){const P=!he(O)||O<0?0:O;h==null||h.clickDistance(P)}return{update:y,destroy:N,setViewport:w,setViewportConstrained:b,getViewport:L,scaleTo:E,scaleBy:R,setScaleExtent:D,setTranslateExtent:T,syncViewport:C,setClickDistance:z}}var pt;(function(e){e.Line="line",e.Handle="handle"})(pt||(pt={}));function Tf({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:s,affectsY:i}){const o=e-t,a=n-r,l=[o>0?1:o<0?-1:0,a>0?1:a<0?-1:0];return o&&s&&(l[0]=l[0]*-1),a&&i&&(l[1]=l[1]*-1),l}function Df(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 $e(e,t){return Math.max(0,t-e)}function Me(e,t){return Math.max(0,e-t)}function Rt(e,t,n){return Math.max(0,t-e,e-n)}function ps(e,t){return e?!t:t}function Rf(e,t,n,r,s,i,o,a){let{affectsX:l,affectsY:u}=t;const{isHorizontal:d,isVertical:f}=t,h=d&&f,{xSnapped:p,ySnapped:g}=n,{minWidth:x,maxWidth:v,minHeight:y,maxHeight:N}=r,{x:b,y:w,width:C,height:L,aspectRatio:E}=e;let R=Math.floor(d?p-e.pointerX:0),D=Math.floor(f?g-e.pointerY:0);const T=C+(l?-R:R),z=L+(u?-D:D),O=-i[0]*C,P=-i[1]*L;let m=Rt(T,x,v),k=Rt(z,y,N);if(o){let S=0,j=0;l&&R<0?S=$e(b+R+O,o[0][0]):!l&&R>0&&(S=Me(b+T+O,o[1][0])),u&&D<0?j=$e(w+D+P,o[0][1]):!u&&D>0&&(j=Me(w+z+P,o[1][1])),m=Math.max(m,S),k=Math.max(k,j)}if(a){let S=0,j=0;l&&R>0?S=Me(b+R,a[0][0]):!l&&R<0&&(S=$e(b+T,a[1][0])),u&&D>0?j=Me(w+D,a[0][1]):!u&&D<0&&(j=$e(w+z,a[1][1])),m=Math.max(m,S),k=Math.max(k,j)}if(s){if(d){const S=Rt(T/E,y,N)*E;if(m=Math.max(m,S),o){let j=0;!l&&!u||l&&!u&&h?j=Me(w+P+T/E,o[1][1])*E:j=$e(w+P+(l?R:-R)/E,o[0][1])*E,m=Math.max(m,j)}if(a){let j=0;!l&&!u||l&&!u&&h?j=$e(w+T/E,a[1][1])*E:j=Me(w+(l?R:-R)/E,a[0][1])*E,m=Math.max(m,j)}}if(f){const S=Rt(z*E,x,v)/E;if(k=Math.max(k,S),o){let j=0;!l&&!u||u&&!l&&h?j=Me(b+z*E+O,o[1][0])/E:j=$e(b+(u?D:-D)*E+O,o[0][0])/E,k=Math.max(k,j)}if(a){let j=0;!l&&!u||u&&!l&&h?j=$e(b+z*E,a[1][0])/E:j=Me(b+(u?D:-D)*E,a[0][0])/E,k=Math.max(k,j)}}}D=D+(D<0?k:-k),R=R+(R<0?m:-m),s&&(h?T>z*E?D=(ps(l,u)?-R:R)/E:R=(ps(l,u)?-D:D)*E:d?(D=R/E,u=l):(R=D*E,l=u));const _=l?b+R:b,M=u?w+D:w;return{width:C+(l?-R:R),height:L+(u?-D:D),x:i[0]*R*(l?-1:1)+_,y:i[1]*D*(u?-1:1)+M}}const Qi={width:0,height:0,x:0,y:0},Lf={...Qi,pointerX:0,pointerY:0,aspectRatio:1};function Hf(e){return[[0,0],[e.measured.width,e.measured.height]]}function Of(e,t,n){const r=t.position.x+e.position.x,s=t.position.y+e.position.y,i=e.measured.width??0,o=e.measured.height??0,a=n[0]*i,l=n[1]*o;return[[r-a,s-l],[r+i-a,s+o-l]]}function Ff({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:s}){const i=le(e);function o({controlPosition:l,boundaries:u,keepAspectRatio:d,onResizeStart:f,onResize:h,onResizeEnd:p,shouldResize:g}){let x={...Qi},v={...Lf};const y=Df(l);let N,b=null,w=[],C,L,E;const R=li().on("start",D=>{const{nodeLookup:T,transform:z,snapGrid:O,snapToGrid:P,nodeOrigin:m,paneDomNode:k}=n();if(N=T.get(t),!N)return;b=(k==null?void 0:k.getBoundingClientRect())??null;const{xSnapped:_,ySnapped:M}=ht(D.sourceEvent,{transform:z,snapGrid:O,snapToGrid:P,containerBounds:b});x={width:N.measured.width??0,height:N.measured.height??0,x:N.position.x??0,y:N.position.y??0},v={...x,pointerX:_,pointerY:M,aspectRatio:x.width/x.height},C=void 0,N.parentId&&(N.extent==="parent"||N.expandParent)&&(C=T.get(N.parentId),L=C&&N.extent==="parent"?Hf(C):void 0),w=[],E=void 0;for(const[S,j]of T)if(j.parentId===t&&(w.push({id:S,position:{...j.position},extent:j.extent}),j.extent==="parent"||j.expandParent)){const I=Of(j,N,j.origin??m);E?E=[[Math.min(I[0][0],E[0][0]),Math.min(I[0][1],E[0][1])],[Math.max(I[1][0],E[1][0]),Math.max(I[1][1],E[1][1])]]:E=I}f==null||f(D,{...x})}).on("drag",D=>{const{transform:T,snapGrid:z,snapToGrid:O,nodeOrigin:P}=n(),m=ht(D.sourceEvent,{transform:T,snapGrid:z,snapToGrid:O,containerBounds:b}),k=[];if(!N)return;const{x:_,y:M,width:S,height:j}=x,I={},H=N.origin??P,{width:F,height:X,x:V,y:B}=Rf(v,y,m,u,d,H,L,E),Y=F!==S,U=X!==j,A=V!==_&&Y,q=B!==M&&U;if(!A&&!q&&!Y&&!U)return;if((A||q||H[0]===1||H[1]===1)&&(I.x=A?V:x.x,I.y=q?B:x.y,x.x=I.x,x.y=I.y,w.length>0)){const J=V-_,ee=B-M;for(const oe of w)oe.position={x:oe.position.x-J+H[0]*(F-S),y:oe.position.y-ee+H[1]*(X-j)},k.push(oe)}if((Y||U)&&(I.width=Y?F:x.width,I.height=U?X:x.height,x.width=I.width,x.height=I.height),C&&N.expandParent){const J=H[0]*(I.width??0);I.x&&I.x<J&&(x.x=J,v.x=v.x-(I.x-J));const ee=H[1]*(I.height??0);I.y&&I.y<ee&&(x.y=ee,v.y=v.y-(I.y-ee))}const K=Tf({width:x.width,prevWidth:S,height:x.height,prevHeight:j,affectsX:y.affectsX,affectsY:y.affectsY}),Z={...x,direction:K};(g==null?void 0:g(D,Z))!==!1&&(h==null||h(D,Z),r(I,k))}).on("end",D=>{p==null||p(D,{...x}),s==null||s()});i.call(R)}function a(){i.on(".drag",null)}return{update:o,destroy:a}}var Ji={exports:{}},eo={},to={exports:{}},no={};/**
|
|
2
2
|
* @license React
|
|
3
3
|
* use-sync-external-store-shim.production.js
|
|
4
4
|
*
|
|
@@ -6,7 +6,7 @@ var zr=e=>{throw TypeError(e)};var $n=(e,t,n)=>t.has(e)||zr("Cannot "+n);var ne=
|
|
|
6
6
|
*
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
|
9
|
-
*/var rt=$;function
|
|
9
|
+
*/var rt=$;function Bf(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Vf=typeof Object.is=="function"?Object.is:Bf,qf=rt.useState,Xf=rt.useEffect,Yf=rt.useLayoutEffect,Wf=rt.useDebugValue;function Kf(e,t){var n=t(),r=qf({inst:{value:n,getSnapshot:t}}),s=r[0].inst,i=r[1];return Yf(function(){s.value=n,s.getSnapshot=t,Hn(s)&&i({inst:s})},[e,n,t]),Xf(function(){return Hn(s)&&i({inst:s}),e(function(){Hn(s)&&i({inst:s})})},[e]),Wf(n),n}function Hn(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Vf(e,n)}catch{return!0}}function Gf(e,t){return t()}var Uf=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Gf:Kf;no.useSyncExternalStore=rt.useSyncExternalStore!==void 0?rt.useSyncExternalStore:Uf;to.exports=no;var Zf=to.exports;/**
|
|
10
10
|
* @license React
|
|
11
11
|
* use-sync-external-store-shim/with-selector.production.js
|
|
12
12
|
*
|
|
@@ -14,14 +14,14 @@ var zr=e=>{throw TypeError(e)};var $n=(e,t,n)=>t.has(e)||zr("Cannot "+n);var ne=
|
|
|
14
14
|
*
|
|
15
15
|
* This source code is licensed under the MIT license found in the
|
|
16
16
|
* LICENSE file in the root directory of this source tree.
|
|
17
|
-
*/var
|
|
17
|
+
*/var wn=$,Qf=Zf;function Jf(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var eh=typeof Object.is=="function"?Object.is:Jf,th=Qf.useSyncExternalStore,nh=wn.useRef,rh=wn.useEffect,sh=wn.useMemo,ih=wn.useDebugValue;eo.useSyncExternalStoreWithSelector=function(e,t,n,r,s){var i=nh(null);if(i.current===null){var o={hasValue:!1,value:null};i.current=o}else o=i.current;i=sh(function(){function l(p){if(!u){if(u=!0,d=p,p=r(p),s!==void 0&&o.hasValue){var g=o.value;if(s(g,p))return f=g}return f=p}if(g=f,eh(d,p))return g;var x=r(p);return s!==void 0&&s(g,x)?(d=p,g):(d=p,f=x)}var u=!1,d,f,h=n===void 0?null:n;return[function(){return l(t())},h===null?void 0:function(){return l(h())}]},[t,n,r,s]);var a=th(e,i[0],i[1]);return rh(function(){o.hasValue=!0,o.value=a},[a]),ih(a),a};Ji.exports=eo;var oh=Ji.exports;const ah=Ka(oh),ch={},gs=e=>{let t;const n=new Set,r=(d,f)=>{const h=typeof d=="function"?d(t):d;if(!Object.is(h,t)){const p=t;t=f??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(g=>g(t,p))}},s=()=>t,l={setState:r,getState:s,getInitialState:()=>u,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(ch?"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},lh=e=>e?gs(e):gs,{useDebugValue:uh}=Ga,{useSyncExternalStoreWithSelector:dh}=ah,fh=e=>e;function ro(e,t=fh,n){const r=dh(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return uh(r),r}const ms=(e,t)=>{const n=lh(e),r=(s,i=t)=>ro(n,s,i);return Object.assign(r,n),r},hh=(e,t)=>e?ms(e,t):ms;function re(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 bn=$.createContext(null),ph=bn.Provider,so=Se.error001();function Q(e,t){const n=$.useContext(bn);if(n===null)throw new Error(so);return ro(n,e,t)}function te(){const e=$.useContext(bn);if(e===null)throw new Error(so);return $.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const xs={display:"none"},gh={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},io="react-flow__node-desc",oo="react-flow__edge-desc",mh="react-flow__aria-live",xh=e=>e.ariaLiveMessage;function yh({rfId:e}){const t=Q(xh);return c.jsx("div",{id:`${mh}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:gh,children:t})}function wh({rfId:e,disableKeyboardA11y:t}){return c.jsxs(c.Fragment,{children:[c.jsxs("div",{id:`${io}-${e}`,style:xs,children:["Press enter or space to select a node.",!t&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "]}),c.jsx("div",{id:`${oo}-${e}`,style:xs,children:"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."}),!t&&c.jsx(yh,{rfId:e})]})}const bh=e=>e.userSelectionActive?"none":"all",kr=$.forwardRef(({position:e="top-left",children:t,className:n,style:r,...s},i)=>{const o=Q(bh),a=`${e}`.split("-");return c.jsx("div",{className:se(["react-flow__panel",n,...a]),style:{...r,pointerEvents:o},ref:i,...s,children:t})});function vh({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:c.jsx(kr,{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:c.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Nh=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}},Lt=e=>e.id;function _h(e,t){return re(e.selectedNodes.map(Lt),t.selectedNodes.map(Lt))&&re(e.selectedEdges.map(Lt),t.selectedEdges.map(Lt))}function kh({onSelectionChange:e}){const t=te(),{selectedNodes:n,selectedEdges:r}=Q(Nh,_h);return $.useEffect(()=>{const s={nodes:n,edges:r};e==null||e(s),t.getState().onSelectionChangeHandlers.forEach(i=>i(s))},[n,r,e]),null}const Sh=e=>!!e.onSelectionChangeHandlers;function jh({onSelectionChange:e}){const t=Q(Sh);return e||t?c.jsx(kh,{onSelectionChange:e}):null}const ao=[0,0],Eh={x:0,y:0,zoom:1},Ch=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","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","onBeforeDelete","debug","autoPanSpeed","paneClickDistance"],ys=[...Ch,"rfId"],$h=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,setPaneClickDistance:e.setPaneClickDistance}),ws={translateExtent:bt,nodeOrigin:ao,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1",paneClickDistance:0};function Mh(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:s,setTranslateExtent:i,setNodeExtent:o,reset:a,setDefaultNodesAndEdges:l,setPaneClickDistance:u}=Q($h,re),d=te();$.useEffect(()=>(l(e.defaultNodes,e.defaultEdges),()=>{f.current=ws,a()}),[]);const f=$.useRef(ws);return $.useEffect(()=>{for(const h of ys){const p=e[h],g=f.current[h];p!==g&&(typeof e[h]>"u"||(h==="nodes"?t(p):h==="edges"?n(p):h==="minZoom"?r(p):h==="maxZoom"?s(p):h==="translateExtent"?i(p):h==="nodeExtent"?o(p):h==="paneClickDistance"?u(p):h==="fitView"?d.setState({fitViewOnInit:p}):h==="fitViewOptions"?d.setState({fitViewOnInitOptions:p}):d.setState({[h]:p})))}f.current=e},ys.map(h=>e[h])),null}function bs(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function zh(e){var r;const[t,n]=$.useState(e==="system"?null:e);return $.useEffect(()=>{if(e!=="system"){n(e);return}const s=bs(),i=()=>n(s!=null&&s.matches?"dark":"light");return i(),s==null||s.addEventListener("change",i),()=>{s==null||s.removeEventListener("change",i)}},[e]),t!==null?t:(r=bs())!=null&&r.matches?"dark":"light"}const vs=typeof document<"u"?document:null;function kt(e=null,t={target:vs,actInsideInputWithModifier:!0}){const[n,r]=$.useState(!1),s=$.useRef(!1),i=$.useRef(new Set([])),[o,a]=$.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
|
|
18
18
|
`).replace(`
|
|
19
19
|
|
|
20
20
|
`,`
|
|
21
21
|
+`).split(`
|
|
22
|
-
`)),d=u.reduce((f,h)=>f.concat(...h),[]);return[u,d]}return[[],[]]},[e]);return $.useEffect(()=>{const l=(t==null?void 0:t.target)||ws;if(e!==null){const u=h=>{if(s.current=h.ctrlKey||h.metaKey||h.shiftKey,(!s.current||s.current&&!t.actInsideInputWithModifier)&&tr(h))return!1;const g=vs(h.code,a);i.current.add(h[g]),bs(o,i.current,!1)&&(h.preventDefault(),r(!0))},d=h=>{if((!s.current||s.current&&!t.actInsideInputWithModifier)&&tr(h))return!1;const g=vs(h.code,a);bs(o,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[g]),h.key==="Meta"&&i.current.clear(),s.current=!1},f=()=>{i.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",u),l==null||l.addEventListener("keyup",d),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{l==null||l.removeEventListener("keydown",u),l==null||l.removeEventListener("keyup",d),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,r]),n}function bs(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(s=>t.has(s)))}function vs(e,t){return t.includes(e)?"code":"key"}const Mh=()=>{const e=te();return $.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,i],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??s,zoom:t.zoom??i},{duration:n==null?void 0:n.duration}),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},fitView:t=>{const{nodeLookup:n,minZoom:r,maxZoom:s,panZoom:i,domNode:o}=e.getState();if(!i||!o)return Promise.resolve(!1);const a=Qn(n,t),{width:l,height:u}=mn(o);return Jn({nodes:a,width:l,height:u,minZoom:r,maxZoom:s,panZoom:i},t)},setCenter:async(t,n,r)=>{const{width:s,height:i,maxZoom:o,panZoom:a}=e.getState(),l=typeof(r==null?void 0:r.zoom)<"u"?r.zoom:o,u=s/2-t*l,d=i/2-n*l;return a?(await a.setViewport({x:u,y:d,zoom:l},{duration:r==null?void 0:r.duration}),Promise.resolve(!0)):Promise.resolve(!1)},fitBounds:async(t,n)=>{const{width:r,height:s,minZoom:i,maxZoom:o,panZoom:a}=e.getState(),l=xr(t,r,s,i,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={snapToGrid:!0})=>{const{transform:r,snapGrid:s,domNode:i}=e.getState();if(!i)return t;const{x:o,y:a}=i.getBoundingClientRect(),l={x:t.x-o,y:t.y-a};return $t(l,r,n.snapToGrid,s)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:s,y:i}=r.getBoundingClientRect(),o=Ii(t,n);return{x:o.x+s,y:o.y+i}}}),[])};function oo(e,t){const n=[],r=new Map,s=[];for(const i of e)if(i.type==="add"){s.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const o=r.get(i.id);o?o.push(i):r.set(i.id,[i])}for(const i of t){const o=r.get(i.id);if(!o){n.push(i);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...i};for(const l of o)zh(l,a);n.push(a)}return s.length&&s.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function zh(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??(t.measured={}),t.measured.width=e.dimensions.width,t.measured.height=e.dimensions.height,e.setAttributes&&(t.width=e.dimensions.width,t.height=e.dimensions.height)),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function Ih(e,t){return oo(e,t)}function Ah(e,t){return oo(e,t)}function De(e,t){return{id:e,type:"select",selected:t}}function We(e,t=new Set,n=!1){const r=[];for(const[s,i]of e){const o=t.has(s);!(i.selected===void 0&&!o)&&i.selected!==o&&(n&&(i.selected=o),r.push(De(i.id,o)))}return r}function Ns({items:e=[],lookup:t}){var s;const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,o]of e.entries()){const a=t.get(o.id),l=((s=a==null?void 0:a.internals)==null?void 0:s.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function _s(e){return{id:e.id,type:"remove"}}const ks=e=>Kd(e),Ph=e=>ji(e);function ao(e){return $.forwardRef(e)}const Th=typeof window<"u"?$.useLayoutEffect:$.useEffect;function Ss(e){const[t,n]=$.useState(BigInt(0)),[r]=$.useState(()=>Dh(()=>n(s=>s+BigInt(1))));return Th(()=>{const s=r.get();s.length&&(e(s),r.reset())},[t]),r}function Dh(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const co=$.createContext(null);function Rh({children:e}){const t=te(),n=$.useCallback(a=>{const{nodes:l=[],setNodes:u,hasDefaultNodes:d,onNodesChange:f,nodeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?u(p):f&&f(Ns({items:p,lookup:h}))},[]),r=Ss(n),s=$.useCallback(a=>{const{edges:l=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:f,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?u(p):f&&f(Ns({items:p,lookup:h}))},[]),i=Ss(s),o=$.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return c.jsx(co.Provider,{value:o,children:e})}function Lh(){const e=$.useContext(co);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Hh=e=>!!e.panZoom;function _r(){const e=Mh(),t=te(),n=Lh(),r=Q(Hh),s=$.useMemo(()=>{const i=f=>t.getState().nodeLookup.get(f),o=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},l=f=>{var y,N;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=ks(f)?f:h.get(f.id),x=g.parentId?Pi(g.position,g.measured,g.parentId,h,p):g.position,v={...g,position:x,width:((y=g.measured)==null?void 0:y.width)??g.width,height:((N=g.measured)==null?void 0:N.height)??g.height};return tt(v)},u=(f,h,p={replace:!1})=>{o(g=>g.map(x=>{if(x.id===f){const v=typeof h=="function"?h(x):h;return p.replace&&ks(v)?v:{...x,...v}}return x}))},d=(f,h,p={replace:!1})=>{a(g=>g.map(x=>{if(x.id===f){const v=typeof h=="function"?h(x):h;return p.replace&&Ph(v)?v:{...x,...v}}return x}))};return{getNodes:()=>t.getState().nodes.map(f=>({...f})),getNode:f=>{var h;return(h=i(f))==null?void 0:h.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:f=[]}=t.getState();return f.map(h=>({...h}))},getEdge:f=>t.getState().edgeLookup.get(f),setNodes:o,setEdges:a,addNodes:f=>{const h=Array.isArray(f)?f:[f];n.nodeQueue.push(p=>[...p,...h])},addEdges:f=>{const h=Array.isArray(f)?f:[f];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:f=[],edges:h=[],transform:p}=t.getState(),[g,x,v]=p;return{nodes:f.map(y=>({...y})),edges:h.map(y=>({...y})),viewport:{x:g,y:x,zoom:v}}},deleteElements:async({nodes:f=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:x,onEdgesDelete:v,triggerNodeChanges:y,triggerEdgeChanges:N,onDelete:b,onBeforeDelete:w}=t.getState(),{nodes:C,edges:L}=await Zd({nodesToRemove:f,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:w}),E=L.length>0,R=C.length>0;if(E){const D=L.map(_s);v==null||v(L),N(D)}if(R){const D=C.map(_s);x==null||x(C),y(D)}return(R||E)&&(b==null||b({nodes:C,edges:L})),{deletedNodes:C,deletedEdges:L}},getIntersectingNodes:(f,h=!0,p)=>{const g=rs(f),x=g?f:l(f),v=p!==void 0;return x?(p||t.getState().nodes).filter(y=>{const N=t.getState().nodeLookup.get(y.id);if(N&&!g&&(y.id===f.id||!N.internals.positionAbsolute))return!1;const b=tt(v?y:N),w=Nt(b,x);return h&&w>0||w>=x.width*x.height}):[]},isNodeIntersecting:(f,h,p=!0)=>{const x=rs(f)?f:l(f);if(!x)return!1;const v=Nt(x,h);return p&&v>0||v>=x.width*x.height},updateNode:u,updateNodeData:(f,h,p={replace:!1})=>{u(f,g=>{const x=typeof h=="function"?h(g):h;return p.replace?{...g,data:x}:{...g,data:{...g.data,...x}}},p)},updateEdge:d,updateEdgeData:(f,h,p={replace:!1})=>{d(f,g=>{const x=typeof h=="function"?h(g):h;return p.replace?{...g,data:x}:{...g,data:{...g.data,...x}}},p)},getNodesBounds:f=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return Gd(f,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:f,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${f}-${h??null}`))==null?void 0:g.values())??[])}}},[]);return $.useMemo(()=>({...s,...e,viewportInitialized:r}),[r])}const js=e=>e.selected,Fh={actInsideInputWithModifier:!1},Oh=typeof window<"u"?window:void 0;function Bh({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=te(),{deleteElements:r}=_r(),s=kt(e,Fh),i=kt(t,{target:Oh});$.useEffect(()=>{if(s){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(js),edges:o.filter(js)}),n.setState({nodesSelectionActive:!1})}},[s]),$.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Vh(e){const t=te();$.useEffect(()=>{const n=()=>{var s,i;if(!e.current)return!1;const r=mn(e.current);(r.height===0||r.width===0)&&((i=(s=t.getState()).onError)==null||i.call(s,"004",Se.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 bn={position:"absolute",width:"100%",height:"100%",top:0,left:0},qh=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib});function Xh({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:s=.5,panOnScrollMode:i=He.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:x,noPanClassName:v,onViewportChange:y,isControlledViewport:N,paneClickDistance:b}){const w=te(),C=$.useRef(null),{userSelectionActive:L,lib:E}=Q(qh,re),R=kt(h),D=$.useRef();Vh(C);const P=$.useCallback(T=>{y==null||y({x:T[0],y:T[1],zoom:T[2]}),N||w.setState({transform:T})},[y,N]);return $.useEffect(()=>{if(C.current){D.current=If({domNode:C.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,paneClickDistance:b,onDraggingChange:m=>w.setState({paneDragging:m}),onPanZoomStart:(m,k)=>{const{onViewportChangeStart:_,onMoveStart:M}=w.getState();M==null||M(m,k),_==null||_(k)},onPanZoom:(m,k)=>{const{onViewportChange:_,onMove:M}=w.getState();M==null||M(m,k),_==null||_(k)},onPanZoomEnd:(m,k)=>{const{onViewportChangeEnd:_,onMoveEnd:M}=w.getState();M==null||M(m,k),_==null||_(k)}});const{x:T,y:F,zoom:A}=D.current.getViewport();return w.setState({panZoom:D.current,transform:[T,F,A],domNode:C.current.closest(".react-flow")}),()=>{var m;(m=D.current)==null||m.destroy()}}},[]),$.useEffect(()=>{var T;(T=D.current)==null||T.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:s,panOnScrollMode:i,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:R,preventScrolling:p,noPanClassName:v,userSelectionActive:L,noWheelClassName:x,lib:E,onTransformChange:P})},[e,t,n,r,s,i,o,a,R,p,v,L,x,E,P]),c.jsx("div",{className:"react-flow__renderer",ref:C,style:bn,children:g})}const Yh=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Wh(){const{userSelectionActive:e,userSelectionRect:t}=Q(Yh,re);return e&&t?c.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 Hn=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},Kh=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging});function Gh({isSelecting:e,selectionKeyPressed:t,selectionMode:n=vt.Full,panOnDrag:r,selectionOnDrag:s,onSelectionStart:i,onSelectionEnd:o,onPaneClick:a,onPaneContextMenu:l,onPaneScroll:u,onPaneMouseEnter:d,onPaneMouseMove:f,onPaneMouseLeave:h,children:p}){const g=$.useRef(null),x=te(),v=$.useRef(0),y=$.useRef(0),N=$.useRef(),b=$.useRef(new Map),{userSelectionActive:w,elementsSelectable:C,dragging:L}=Q(Kh,re),E=C&&(e||w),R=$.useRef(!1),D=$.useRef(!1),P=()=>{x.setState({userSelectionActive:!1,userSelectionRect:null}),v.current=0,y.current=0},T=S=>{if(R.current){R.current=!1;return}a==null||a(S),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},F=S=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){S.preventDefault();return}l==null||l(S)},A=u?S=>u(S):void 0,m=S=>{var V,B,Y,U;const{resetSelectedElements:j,domNode:z,edgeLookup:H}=x.getState();if(N.current=z==null?void 0:z.getBoundingClientRect(),!C||!e||S.button!==0||S.target!==g.current||!N.current)return;(B=(V=S.target)==null?void 0:V.setPointerCapture)==null||B.call(V,S.pointerId),D.current=!0,R.current=!1,b.current=new Map;for(const[I,q]of H)b.current.set(q.source,((Y=b.current.get(q.source))==null?void 0:Y.add(I))||new Set([I])),b.current.set(q.target,((U=b.current.get(q.target))==null?void 0:U.add(I))||new Set([I]));const{x:O,y:X}=ve(S.nativeEvent,N.current);j(),x.setState({userSelectionRect:{width:0,height:0,startX:O,startY:X,x:O,y:X}}),i==null||i(S)},k=S=>{const{userSelectionRect:j,edgeLookup:z,transform:H,nodeLookup:O,triggerNodeChanges:X,triggerEdgeChanges:V}=x.getState();if(!N.current||!j)return;R.current=!0;const{x:B,y:Y}=ve(S.nativeEvent,N.current),{startX:U,startY:I}=j,q={startX:U,startY:I,x:B<U?B:U,y:Y<I?Y:I,width:Math.abs(B-U),height:Math.abs(Y-I)},K=Ei(O,q,H,n===vt.Partial,!0),Z=new Set,W=new Set;for(const J of K){W.add(J.id);const ee=b.current.get(J.id);if(ee)for(const oe of ee)Z.add(oe)}if(v.current!==W.size){v.current=W.size;const J=We(O,W,!0);X(J)}if(y.current!==Z.size){y.current=Z.size;const J=We(z,Z);V(J)}x.setState({userSelectionRect:q,userSelectionActive:!0,nodesSelectionActive:!1})},_=S=>{var z,H;if(S.button!==0||!D.current)return;(H=(z=S.target)==null?void 0:z.releasePointerCapture)==null||H.call(z,S.pointerId);const{userSelectionRect:j}=x.getState();!w&&j&&S.target===g.current&&(T==null||T(S)),v.current>0&&x.setState({nodesSelectionActive:!0}),P(),o==null||o(S),(t||s)&&(R.current=!1),D.current=!1},M=r===!0||Array.isArray(r)&&r.includes(0);return c.jsxs("div",{className:se(["react-flow__pane",{draggable:M,dragging:L,selection:e}]),onClick:E?void 0:Hn(T,g),onContextMenu:Hn(F,g),onWheel:Hn(A,g),onPointerEnter:E?void 0:d,onPointerDown:E?m:f,onPointerMove:E?k:f,onPointerUp:E?_:void 0,onPointerLeave:h,ref:g,style:bn,children:[p,c.jsx(Wh,{})]})}function or({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:s,unselectNodesAndEdges:i,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),u=a.get(e);if(!u){l==null||l("012",Se.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&o)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):s([e])}function lo({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:s,isSelectable:i,nodeClickDistance:o}){const a=te(),[l,u]=$.useState(!1),d=$.useRef();return $.useEffect(()=>{d.current=yf({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{or({id:f,store:a,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),$.useEffect(()=>{var f,h;if(t)(f=d.current)==null||f.destroy();else if(e.current)return(h=d.current)==null||h.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:s,nodeClickDistance:o}),()=>{var p;(p=d.current)==null||p.destroy()}},[n,r,t,i,e,s]),l}const Uh=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function uo(){const e=te();return $.useCallback(n=>{const{nodeExtent:r,snapToGrid:s,snapGrid:i,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:u,nodeOrigin:d}=e.getState(),f=new Map,h=Uh(o),p=s?i[0]:5,g=s?i[1]:5,x=n.direction.x*p*n.factor,v=n.direction.y*g*n.factor;for(const[,y]of u){if(!h(y))continue;let N={x:y.internals.positionAbsolute.x+x,y:y.internals.positionAbsolute.y+v};s&&(N=gn(N,i));const{position:b,positionAbsolute:w}=Ci({nodeId:y.id,nextPosition:N,nodeLookup:u,nodeExtent:r,nodeOrigin:d,onError:a});y.position=b,y.internals.positionAbsolute=w,f.set(y.id,y)}l(f)},[])}const kr=$.createContext(null),Zh=kr.Provider;kr.Consumer;const fo=()=>$.useContext(kr),Qh=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Jh=(e,t,n)=>r=>{const{connectionClickStartHandle:s,connectionMode:i,connection:o}=r,{fromHandle:a,toHandle:l,isValid:u}=o,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:i===Je.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,valid:d&&u}};function e0({type:e="source",position:t=G.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:s=!0,isConnectableEnd:i=!0,id:o,onConnect:a,children:l,className:u,onMouseDown:d,onTouchStart:f,...h},p){var m,k;const g=o||null,x=e==="target",v=te(),y=fo(),{connectOnClick:N,noPanClassName:b,rfId:w}=Q(Qh,re),{connectingFrom:C,connectingTo:L,clickConnecting:E,isPossibleEndHandle:R,connectionInProcess:D,valid:P}=Q(Jh(y,g,e),re);y||(k=(m=v.getState()).onError)==null||k.call(m,"010",Se.error010());const T=_=>{const{defaultEdgeOptions:M,onConnect:S,hasDefaultEdges:j}=v.getState(),z={...M,..._};if(j){const{edges:H,setEdges:O}=v.getState();O(sf(z,H))}S==null||S(z),a==null||a(z)},F=_=>{if(!y)return;const M=Di(_.nativeEvent);if(s&&(M&&_.button===0||!M)){const S=v.getState();ir.onPointerDown(_.nativeEvent,{autoPanOnConnect:S.autoPanOnConnect,connectionMode:S.connectionMode,connectionRadius:S.connectionRadius,domNode:S.domNode,nodeLookup:S.nodeLookup,lib:S.lib,isTarget:x,handleId:g,nodeId:y,flowId:S.rfId,panBy:S.panBy,cancelConnection:S.cancelConnection,onConnectStart:S.onConnectStart,onConnectEnd:S.onConnectEnd,updateConnection:S.updateConnection,onConnect:T,isValidConnection:n||S.isValidConnection,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,autoPanSpeed:S.autoPanSpeed})}M?d==null||d(_):f==null||f(_)},A=_=>{const{onClickConnectStart:M,onClickConnectEnd:S,connectionClickStartHandle:j,connectionMode:z,isValidConnection:H,lib:O,rfId:X,nodeLookup:V,connection:B}=v.getState();if(!y||!j&&!s)return;if(!j){M==null||M(_.nativeEvent,{nodeId:y,handleId:g,handleType:e}),v.setState({connectionClickStartHandle:{nodeId:y,type:e,id:g}});return}const Y=Ti(_.target),U=n||H,{connection:I,isValid:q}=ir.isValid(_.nativeEvent,{handle:{nodeId:y,id:g,type:e},connectionMode:z,fromNodeId:j.nodeId,fromHandleId:j.id||null,fromType:j.type,isValidConnection:U,flowId:X,doc:Y,lib:O,nodeLookup:V});q&&I&&T(I);const K=structuredClone(B);delete K.inProgress,K.toPosition=K.toHandle?K.toHandle.position:null,S==null||S(_,K),v.setState({connectionClickStartHandle:null})};return c.jsx("div",{"data-handleid":g,"data-nodeid":y,"data-handlepos":t,"data-id":`${w}-${y}-${g}-${e}`,className:se(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",b,u,{source:!x,target:x,connectable:r,connectablestart:s,connectableend:i,clickconnecting:E,connectingfrom:C,connectingto:L,valid:P,connectionindicator:r&&(!D||R)&&(D?i:s)}]),onMouseDown:F,onTouchStart:F,onClick:N?A:void 0,ref:p,...h,children:l})}const Te=$.memo(ao(e0));function t0({data:e,isConnectable:t,sourcePosition:n=G.Bottom}){return c.jsxs(c.Fragment,{children:[e==null?void 0:e.label,c.jsx(Te,{type:"source",position:n,isConnectable:t})]})}function n0({data:e,isConnectable:t,targetPosition:n=G.Top,sourcePosition:r=G.Bottom}){return c.jsxs(c.Fragment,{children:[c.jsx(Te,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,c.jsx(Te,{type:"source",position:r,isConnectable:t})]})}function r0(){return null}function s0({data:e,isConnectable:t,targetPosition:n=G.Top}){return c.jsxs(c.Fragment,{children:[c.jsx(Te,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const sn={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Es={input:t0,default:n0,output:s0,group:r0};function i0(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 o0=e=>{const{width:t,height:n,x:r,y:s}=Ct(e.nodeLookup,{filter:i=>!!i.selected});return{width:he(t)?t:null,height:he(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 a0({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=te(),{width:s,height:i,transformString:o,userSelectionActive:a}=Q(o0,re),l=uo(),u=$.useRef(null);if($.useEffect(()=>{var h;n||(h=u.current)==null||h.focus({preventScroll:!0})},[n]),lo({nodeRef:u}),a||!s||!i)return null;const d=e?h=>{const p=r.getState().nodes.filter(g=>g.selected);e(h,p)}:void 0,f=h=>{Object.prototype.hasOwnProperty.call(sn,h.key)&&(h.preventDefault(),l({direction:sn[h.key],factor:h.shiftKey?4:1}))};return c.jsx("div",{className:se(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:c.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:s,height:i}})})}const Cs=typeof window<"u"?window:void 0,c0=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function ho({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:i,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:u,selectionOnDrag:d,selectionMode:f,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:x,zoomActivationKeyCode:v,elementsSelectable:y,zoomOnScroll:N,zoomOnPinch:b,panOnScroll:w,panOnScrollSpeed:C,panOnScrollMode:L,zoomOnDoubleClick:E,panOnDrag:R,defaultViewport:D,translateExtent:P,minZoom:T,maxZoom:F,preventScrolling:A,onSelectionContextMenu:m,noWheelClassName:k,noPanClassName:_,disableKeyboardA11y:M,onViewportChange:S,isControlledViewport:j}){const{nodesSelectionActive:z,userSelectionActive:H}=Q(c0),O=kt(u,{target:Cs}),X=kt(x,{target:Cs}),V=X||R,B=X||w,Y=d&&V!==!0,U=O||H||Y;return Bh({deleteKeyCode:l,multiSelectionKeyCode:g}),c.jsx(Xh,{onPaneContextMenu:i,elementsSelectable:y,zoomOnScroll:N,zoomOnPinch:b,panOnScroll:B,panOnScrollSpeed:C,panOnScrollMode:L,zoomOnDoubleClick:E,panOnDrag:!O&&V,defaultViewport:D,translateExtent:P,minZoom:T,maxZoom:F,zoomActivationKeyCode:v,preventScrolling:A,noWheelClassName:k,noPanClassName:_,onViewportChange:S,isControlledViewport:j,paneClickDistance:a,children:c.jsxs(Gh,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:i,onPaneScroll:o,panOnDrag:V,isSelecting:!!U,selectionMode:f,selectionKeyPressed:O,selectionOnDrag:Y,children:[e,z&&c.jsx(a0,{onSelectionContextMenu:m,noPanClassName:_,disableKeyboardA11y:M})]})})}ho.displayName="FlowRenderer";const l0=$.memo(ho),u0=e=>t=>e?Ei(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 d0(e){return Q($.useCallback(u0(e),[e]),re)}const f0=e=>e.updateNodeInternals;function h0(){const e=Q(f0),[t]=$.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(s=>{const i=s.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:s.target,force:!0})}),e(r)}));return $.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function p0({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const s=te(),i=$.useRef(null),o=$.useRef(null),a=$.useRef(e.sourcePosition),l=$.useRef(e.targetPosition),u=$.useRef(t),d=n&&!!e.internals.handleBounds;return $.useEffect(()=>{i.current&&!e.hidden&&(!d||o.current!==i.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(i.current),o.current=i.current)},[d,e.hidden]),$.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),$.useEffect(()=>{if(i.current){const f=u.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(f||h||p)&&(u.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,s.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function g0({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:s,onContextMenu:i,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:u,nodesFocusable:d,resizeObserver:f,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:x,nodeTypes:v,nodeExtent:y,nodeClickDistance:N,onError:b}){const{node:w,internals:C,isParent:L}=Q(I=>{const q=I.nodeLookup.get(e),K=I.parentLookup.has(e);return{node:q,internals:q.internals,isParent:K}},re);let E=w.type||"default",R=(v==null?void 0:v[E])||Es[E];R===void 0&&(b==null||b("003",Se.error003(E)),E="default",R=Es.default);const D=!!(w.draggable||a&&typeof w.draggable>"u"),P=!!(w.selectable||l&&typeof w.selectable>"u"),T=!!(w.connectable||u&&typeof w.connectable>"u"),F=!!(w.focusable||d&&typeof w.focusable>"u"),A=te(),m=Ai(w),k=p0({node:w,nodeType:E,hasDimensions:m,resizeObserver:f}),_=lo({nodeRef:k,disabled:w.hidden||!D,noDragClassName:h,handleSelector:w.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:N}),M=uo();if(w.hidden)return null;const S=je(w),j=i0(w),z=P||D||t||n||r||s,H=n?I=>n(I,{...C.userNode}):void 0,O=r?I=>r(I,{...C.userNode}):void 0,X=s?I=>s(I,{...C.userNode}):void 0,V=i?I=>i(I,{...C.userNode}):void 0,B=o?I=>o(I,{...C.userNode}):void 0,Y=I=>{const{selectNodesOnDrag:q,nodeDragThreshold:K}=A.getState();P&&(!q||!D||K>0)&&or({id:e,store:A,nodeRef:k}),t&&t(I,{...C.userNode})},U=I=>{if(!(tr(I.nativeEvent)||g))if(_i.includes(I.key)&&P){const q=I.key==="Escape";or({id:e,store:A,unselect:q,nodeRef:k})}else D&&w.selected&&Object.prototype.hasOwnProperty.call(sn,I.key)&&(I.preventDefault(),A.setState({ariaLiveMessage:`Moved selected node ${I.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~C.positionAbsolute.x}, y: ${~~C.positionAbsolute.y}`}),M({direction:sn[I.key],factor:I.shiftKey?4:1}))};return c.jsx("div",{className:se(["react-flow__node",`react-flow__node-${E}`,{[p]:D},w.className,{selected:w.selected,selectable:P,parent:L,draggable:D,dragging:_}]),ref:k,style:{zIndex:C.z,transform:`translate(${C.positionAbsolute.x}px,${C.positionAbsolute.y}px)`,pointerEvents:z?"all":"none",visibility:m?"visible":"hidden",...w.style,...j},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:O,onMouseLeave:X,onContextMenu:V,onClick:Y,onDoubleClick:B,onKeyDown:F?U:void 0,tabIndex:F?0:void 0,role:F?"button":void 0,"aria-describedby":g?void 0:`${ro}-${x}`,"aria-label":w.ariaLabel,children:c.jsx(Zh,{value:e,children:c.jsx(R,{id:e,data:w.data,type:E,positionAbsoluteX:C.positionAbsolute.x,positionAbsoluteY:C.positionAbsolute.y,selected:w.selected,selectable:P,draggable:D,deletable:w.deletable??!0,isConnectable:T,sourcePosition:w.sourcePosition,targetPosition:w.targetPosition,dragging:_,dragHandle:w.dragHandle,zIndex:C.z,parentId:w.parentId,...S})})})}const m0=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function po(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,onError:i}=Q(m0,re),o=d0(e.onlyRenderVisibleElements),a=h0();return c.jsx("div",{className:"react-flow__nodes",style:bn,children:o.map(l=>c.jsx(g0,{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:i},l))})}po.displayName="NodeRenderer";const x0=$.memo(po);function y0(e){return Q($.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 i=n.nodeLookup.get(s.source),o=n.nodeLookup.get(s.target);i&&o&&tf({sourceNode:i,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(s.id)}return r},[e]),re)}const w0=({color:e="none",strokeWidth:t=1})=>c.jsx("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),b0=({color:e="none",strokeWidth:t=1})=>c.jsx("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),$s={[tn.Arrow]:w0,[tn.ArrowClosed]:b0};function v0(e){const t=te();return $.useMemo(()=>{var s,i;return Object.prototype.hasOwnProperty.call($s,e)?$s[e]:((i=(s=t.getState()).onError)==null||i.call(s,"009",Se.error009(e)),null)},[e])}const N0=({id:e,type:t,color:n,width:r=12.5,height:s=12.5,markerUnits:i="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=v0(t);return l?c.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${s}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:c.jsx(l,{color:n,strokeWidth:o})}):null},go=({defaultColor:e,rfId:t})=>{const n=Q(i=>i.edges),r=Q(i=>i.defaultEdgeOptions),s=$.useMemo(()=>uf(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?c.jsx("svg",{className:"react-flow__marker",children:c.jsx("defs",{children:s.map(i=>c.jsx(N0,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};go.displayName="MarkerDefinitions";var _0=$.memo(go);function mo({x:e,y:t,label:n,labelStyle:r={},labelShowBg:s=!0,labelBgStyle:i={},labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:u,...d}){const[f,h]=$.useState({x:1,y:0,width:0,height:0}),p=se(["react-flow__edge-textwrapper",u]),g=$.useRef(null);return $.useEffect(()=>{if(g.current){const x=g.current.getBBox();h({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),typeof n>"u"||!n?null:c.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:p,visibility:f.width?"visible":"hidden",...d,children:[s&&c.jsx("rect",{width:f.width+2*o[0],x:-o[0],y:-o[1],height:f.height+2*o[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),c.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]})}mo.displayName="EdgeText";const k0=$.memo(mo);function vn({path:e,labelX:t,labelY:n,label:r,labelStyle:s,labelShowBg:i,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:u=20,...d}){return c.jsxs(c.Fragment,{children:[c.jsx("path",{...d,d:e,fill:"none",className:se(["react-flow__edge-path",d.className])}),u&&c.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}),r&&he(t)&&he(n)?c.jsx(k0,{x:t,y:n,label:r,labelStyle:s,labelShowBg:i,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function Ms({pos:e,x1:t,y1:n,x2:r,y2:s}){return e===G.Left||e===G.Right?[.5*(t+r),n]:[t,.5*(n+s)]}function xo({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:s,targetPosition:i=G.Top}){const[o,a]=Ms({pos:n,x1:e,y1:t,x2:r,y2:s}),[l,u]=Ms({pos:i,x1:r,y1:s,x2:e,y2:t}),[d,f,h,p]=Ri({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:u});return[`M${e},${t} C${o},${a} ${l},${u} ${r},${s}`,d,f,h,p]}function yo(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,sourcePosition:o=G.Bottom,targetPosition:a=G.Top,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:y})=>{const[N,b,w]=xo({sourceX:n,sourceY:r,sourcePosition:o,targetX:s,targetY:i,targetPosition:a}),C=e.isInternal?void 0:t;return c.jsx(vn,{id:C,path:N,labelX:b,labelY:w,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:y})})}const S0=yo({isInternal:!1}),wo=yo({isInternal:!0});S0.displayName="SimpleBezierEdge";wo.displayName="SimpleBezierEdgeInternal";function bo(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,sourcePosition:p=G.Bottom,targetPosition:g=G.Top,markerEnd:x,markerStart:v,pathOptions:y,interactionWidth:N})=>{const[b,w,C]=nr({sourceX:n,sourceY:r,sourcePosition:p,targetX:s,targetY:i,targetPosition:g,borderRadius:y==null?void 0:y.borderRadius,offset:y==null?void 0:y.offset}),L=e.isInternal?void 0:t;return c.jsx(vn,{id:L,path:b,labelX:w,labelY:C,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:x,markerStart:v,interactionWidth:N})})}const vo=bo({isInternal:!1}),No=bo({isInternal:!0});vo.displayName="SmoothStepEdge";No.displayName="SmoothStepEdgeInternal";function _o(e){return $.memo(({id:t,...n})=>{var s;const r=e.isInternal?void 0:t;return c.jsx(vo,{...n,id:r,pathOptions:$.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(s=n.pathOptions)==null?void 0:s.offset])})})}const j0=_o({isInternal:!1}),ko=_o({isInternal:!0});j0.displayName="StepEdge";ko.displayName="StepEdgeInternal";function So(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,interactionWidth:x})=>{const[v,y,N]=Fi({sourceX:n,sourceY:r,targetX:s,targetY:i}),b=e.isInternal?void 0:t;return c.jsx(vn,{id:b,path:v,labelX:y,labelY:N,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,interactionWidth:x})})}const E0=So({isInternal:!1}),jo=So({isInternal:!0});E0.displayName="StraightEdge";jo.displayName="StraightEdgeInternal";function Eo(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,sourcePosition:o=G.Bottom,targetPosition:a=G.Top,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,pathOptions:y,interactionWidth:N})=>{const[b,w,C]=Li({sourceX:n,sourceY:r,sourcePosition:o,targetX:s,targetY:i,targetPosition:a,curvature:y==null?void 0:y.curvature}),L=e.isInternal?void 0:t;return c.jsx(vn,{id:L,path:b,labelX:w,labelY:C,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:N})})}const C0=Eo({isInternal:!1}),Co=Eo({isInternal:!0});C0.displayName="BezierEdge";Co.displayName="BezierEdgeInternal";const zs={default:Co,straight:jo,step:ko,smoothstep:No,simplebezier:wo},Is={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},$0=(e,t,n)=>n===G.Left?e-t:n===G.Right?e+t:e,M0=(e,t,n)=>n===G.Top?e-t:n===G.Bottom?e+t:e,As="react-flow__edgeupdater";function Ps({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:s,onMouseEnter:i,onMouseOut:o,type:a}){return c.jsx("circle",{onMouseDown:s,onMouseEnter:i,onMouseOut:o,className:se([As,`${As}-${a}`]),cx:$0(t,r,e),cy:M0(n,r,e),r,stroke:"transparent",fill:"transparent"})}function z0({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:s,targetX:i,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:u,onReconnectStart:d,onReconnectEnd:f,setReconnecting:h,setUpdateHover:p}){const g=te(),x=(w,C)=>{if(w.button!==0)return;const{autoPanOnConnect:L,domNode:E,isValidConnection:R,connectionMode:D,connectionRadius:P,lib:T,onConnectStart:F,onConnectEnd:A,cancelConnection:m,nodeLookup:k,rfId:_,panBy:M,updateConnection:S}=g.getState(),j=C.type==="target";h(!0),d==null||d(w,n,C.type);const z=(O,X)=>{h(!1),f==null||f(O,n,C.type,X)},H=O=>u==null?void 0:u(n,O);ir.onPointerDown(w.nativeEvent,{autoPanOnConnect:L,connectionMode:D,connectionRadius:P,domNode:E,handleId:C.id,nodeId:C.nodeId,nodeLookup:k,isTarget:j,edgeUpdaterType:C.type,lib:T,flowId:_,cancelConnection:m,panBy:M,isValidConnection:R,onConnect:H,onConnectStart:F,onConnectEnd:A,onReconnectEnd:z,updateConnection:S,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle})},v=w=>x(w,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),y=w=>x(w,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),N=()=>p(!0),b=()=>p(!1);return c.jsxs(c.Fragment,{children:[(e===!0||e==="source")&&c.jsx(Ps,{position:a,centerX:r,centerY:s,radius:t,onMouseDown:v,onMouseEnter:N,onMouseOut:b,type:"source"}),(e===!0||e==="target")&&c.jsx(Ps,{position:l,centerX:i,centerY:o,radius:t,onMouseDown:y,onMouseEnter:N,onMouseOut:b,type:"target"})]})}function I0({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:s,onDoubleClick:i,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:x,noPanClassName:v,onError:y,disableKeyboardA11y:N}){let b=Q(W=>W.edgeLookup.get(e));const w=Q(W=>W.defaultEdgeOptions);b=w?{...w,...b}:b;let C=b.type||"default",L=(x==null?void 0:x[C])||zs[C];L===void 0&&(y==null||y("011",Se.error011(C)),C="default",L=zs.default);const E=!!(b.focusable||t&&typeof b.focusable>"u"),R=typeof f<"u"&&(b.reconnectable||n&&typeof b.reconnectable>"u"),D=!!(b.selectable||r&&typeof b.selectable>"u"),P=$.useRef(null),[T,F]=$.useState(!1),[A,m]=$.useState(!1),k=te(),{zIndex:_,sourceX:M,sourceY:S,targetX:j,targetY:z,sourcePosition:H,targetPosition:O}=Q($.useCallback(W=>{const J=W.nodeLookup.get(b.source),ee=W.nodeLookup.get(b.target);if(!J||!ee)return{zIndex:b.zIndex,...Is};const oe=lf({id:e,sourceNode:J,targetNode:ee,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:W.connectionMode,onError:y});return{zIndex:ef({selected:b.selected,zIndex:b.zIndex,sourceNode:J,targetNode:ee,elevateOnSelect:W.elevateEdgesOnSelect}),...oe||Is}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex]),re),X=$.useMemo(()=>b.markerStart?`url('#${rr(b.markerStart,g)}')`:void 0,[b.markerStart,g]),V=$.useMemo(()=>b.markerEnd?`url('#${rr(b.markerEnd,g)}')`:void 0,[b.markerEnd,g]);if(b.hidden||M===null||S===null||j===null||z===null)return null;const B=W=>{var Ee;const{addSelectedEdges:J,unselectNodesAndEdges:ee,multiSelectionActive:oe}=k.getState();D&&(k.setState({nodesSelectionActive:!1}),b.selected&&oe?(ee({nodes:[],edges:[b]}),(Ee=P.current)==null||Ee.blur()):J([e])),s&&s(W,b)},Y=i?W=>{i(W,{...b})}:void 0,U=o?W=>{o(W,{...b})}:void 0,I=a?W=>{a(W,{...b})}:void 0,q=l?W=>{l(W,{...b})}:void 0,K=u?W=>{u(W,{...b})}:void 0,Z=W=>{var J;if(!N&&_i.includes(W.key)&&D){const{unselectNodesAndEdges:ee,addSelectedEdges:oe}=k.getState();W.key==="Escape"?((J=P.current)==null||J.blur(),ee({edges:[b]})):oe([e])}};return c.jsx("svg",{style:{zIndex:_},children:c.jsxs("g",{className:se(["react-flow__edge",`react-flow__edge-${C}`,b.className,v,{selected:b.selected,animated:b.animated,inactive:!D&&!s,updating:T,selectable:D}]),onClick:B,onDoubleClick:Y,onContextMenu:U,onMouseEnter:I,onMouseMove:q,onMouseLeave:K,onKeyDown:E?Z:void 0,tabIndex:E?0:void 0,role:E?"button":"img","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":E?`${so}-${g}`:void 0,ref:P,children:[!A&&c.jsx(L,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:D,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:M,sourceY:S,targetX:j,targetY:z,sourcePosition:H,targetPosition:O,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:X,markerEnd:V,pathOptions:"pathOptions"in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),R&&c.jsx(z0,{edge:b,isReconnectable:R,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,sourceX:M,sourceY:S,targetX:j,targetY:z,sourcePosition:H,targetPosition:O,setUpdateHover:F,setReconnecting:m})]})})}const A0=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function $o({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:s,onReconnect:i,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:f,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:x}){const{edgesFocusable:v,edgesReconnectable:y,elementsSelectable:N,onError:b}=Q(A0,re),w=y0(t);return c.jsxs("div",{className:"react-flow__edges",children:[c.jsx(_0,{defaultColor:e,rfId:n}),w.map(C=>c.jsx(I0,{id:C,edgesFocusable:v,edgesReconnectable:y,elementsSelectable:N,noPanClassName:s,onReconnect:i,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,onClick:d,reconnectRadius:f,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:b,edgeTypes:r,disableKeyboardA11y:x},C))]})}$o.displayName="EdgeRenderer";const P0=$.memo($o),T0=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function D0({children:e}){const t=Q(T0);return c.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function R0(e){const t=_r(),n=$.useRef(!1);$.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const L0=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function H0(e){const t=Q(L0),n=te();return $.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function F0(e){return e.connection.inProgress?{...e.connection,to:$t(e.connection.to,e.transform)}:{...e.connection}}function O0(e){return F0}function B0(e){const t=O0();return Q(t,re)}const V0=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function q0({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:s,width:i,height:o,isValid:a,inProgress:l}=Q(V0,re);return!(i&&s&&l)?null:c.jsx("svg",{style:e,width:i,height:o,className:"react-flow__connectionline react-flow__container",children:c.jsx("g",{className:se(["react-flow__connection",Si(a)]),children:c.jsx(Mo,{style:t,type:n,CustomComponent:r,isValid:a})})})}const Mo=({style:e,type:t=Ie.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:s,from:i,fromNode:o,fromHandle:a,fromPosition:l,to:u,toNode:d,toHandle:f,toPosition:h}=B0();if(!s)return;if(n)return c.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:l,toPosition:h,connectionStatus:Si(r),toNode:d,toHandle:f});let p="";const g={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:u.x,targetY:u.y,targetPosition:h};switch(t){case Ie.Bezier:[p]=Li(g);break;case Ie.SimpleBezier:[p]=xo(g);break;case Ie.Step:[p]=nr({...g,borderRadius:0});break;case Ie.SmoothStep:[p]=nr(g);break;default:[p]=Fi(g)}return c.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};Mo.displayName="ConnectionLine";const X0={};function Ts(e=X0){$.useRef(e),te(),$.useEffect(()=>{},[e])}function Y0(){te(),$.useRef(!1),$.useEffect(()=>{},[])}function zo({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:s,onNodeDoubleClick:i,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:f,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:x,connectionLineComponent:v,connectionLineContainerStyle:y,selectionKeyCode:N,selectionOnDrag:b,selectionMode:w,multiSelectionKeyCode:C,panActivationKeyCode:L,zoomActivationKeyCode:E,deleteKeyCode:R,onlyRenderVisibleElements:D,elementsSelectable:P,defaultViewport:T,translateExtent:F,minZoom:A,maxZoom:m,preventScrolling:k,defaultMarkerColor:_,zoomOnScroll:M,zoomOnPinch:S,panOnScroll:j,panOnScrollSpeed:z,panOnScrollMode:H,zoomOnDoubleClick:O,panOnDrag:X,onPaneClick:V,onPaneMouseEnter:B,onPaneMouseMove:Y,onPaneMouseLeave:U,onPaneScroll:I,onPaneContextMenu:q,paneClickDistance:K,nodeClickDistance:Z,onEdgeContextMenu:W,onEdgeMouseEnter:J,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:Ee,onReconnect:Nn,onReconnectStart:_n,onReconnectEnd:kn,noDragClassName:st,noWheelClassName:Sn,noPanClassName:it,disableKeyboardA11y:ot,nodeExtent:jn,rfId:at,viewport:ct,onViewportChange:Mt}){return Ts(e),Ts(t),Y0(),R0(n),H0(ct),c.jsx(l0,{onPaneClick:V,onPaneMouseEnter:B,onPaneMouseMove:Y,onPaneMouseLeave:U,onPaneContextMenu:q,onPaneScroll:I,paneClickDistance:K,deleteKeyCode:R,selectionKeyCode:N,selectionOnDrag:b,selectionMode:w,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:C,panActivationKeyCode:L,zoomActivationKeyCode:E,elementsSelectable:P,zoomOnScroll:M,zoomOnPinch:S,zoomOnDoubleClick:O,panOnScroll:j,panOnScrollSpeed:z,panOnScrollMode:H,panOnDrag:X,defaultViewport:T,translateExtent:F,minZoom:A,maxZoom:m,onSelectionContextMenu:f,preventScrolling:k,noDragClassName:st,noWheelClassName:Sn,noPanClassName:it,disableKeyboardA11y:ot,onViewportChange:Mt,isControlledViewport:!!ct,children:c.jsxs(D0,{children:[c.jsx(P0,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:o,onReconnect:Nn,onReconnectStart:_n,onReconnectEnd:kn,onlyRenderVisibleElements:D,onEdgeContextMenu:W,onEdgeMouseEnter:J,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:Ee,defaultMarkerColor:_,noPanClassName:it,disableKeyboardA11y:ot,rfId:at}),c.jsx(q0,{style:x,type:g,component:v,containerStyle:y}),c.jsx("div",{className:"react-flow__edgelabel-renderer"}),c.jsx(x0,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:Z,onlyRenderVisibleElements:D,noPanClassName:it,noDragClassName:st,disableKeyboardA11y:ot,nodeExtent:jn,rfId:at}),c.jsx("div",{className:"react-flow__viewport-portal"})]})})}zo.displayName="GraphView";const W0=$.memo(zo),Ds=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l}={})=>{const u=new Map,d=new Map,f=new Map,h=new Map,p=r??t??[],g=n??e??[],x=a??[0,0],v=l??bt;Bi(f,h,p),sr(g,u,d,{nodeOrigin:x,nodeExtent:v,elevateNodesOnSelect:!1});let y=[0,0,1];if(o&&s&&i){const N=Ct(u,{filter:L=>!!((L.width||L.initialWidth)&&(L.height||L.initialHeight))}),{x:b,y:w,zoom:C}=xr(N,s,i,.5,2,.1);y=[b,w,C]}return{rfId:"1",width:0,height:0,transform:y,nodes:g,nodeLookup:u,parentLookup:d,edges:p,edgeLookup:h,connectionLookup:f,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:.5,maxZoom:2,translateExtent:bt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Je.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:x,nodeDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,fitViewOnInit:!1,fitViewDone:!1,fitViewOnInitOptions:void 0,selectNodesOnDrag:!0,multiSelectionActive:!1,connection:{...ki},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanSpeed:15,connectionRadius:20,onError:Qd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1}},K0=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l})=>dh((u,d)=>({...Ds({nodes:e,edges:t,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l,defaultNodes:n,defaultEdges:r}),setNodes:f=>{const{nodeLookup:h,parentLookup:p,nodeOrigin:g,elevateNodesOnSelect:x}=d();sr(f,h,p,{nodeOrigin:g,nodeExtent:l,elevateNodesOnSelect:x,checkEquality:!0}),u({nodes:f})},setEdges:f=>{const{connectionLookup:h,edgeLookup:p}=d();Bi(h,p,f),u({edges:f})},setDefaultNodesAndEdges:(f,h)=>{if(f){const{setNodes:p}=d();p(f),u({hasDefaultNodes:!0})}if(h){const{setEdges:p}=d();p(h),u({hasDefaultEdges:!0})}},updateNodeInternals:(f,h={triggerFitView:!0})=>{const{triggerNodeChanges:p,nodeLookup:g,parentLookup:x,fitViewOnInit:v,fitViewDone:y,fitViewOnInitOptions:N,domNode:b,nodeOrigin:w,nodeExtent:C,debug:L,fitViewSync:E}=d(),{changes:R,updatedInternals:D}=gf(f,g,x,b,w,C);if(D){if(ff(g,x,{nodeOrigin:w,nodeExtent:C}),h.triggerFitView){let P=y;!y&&v&&(P=E({...N,nodes:N==null?void 0:N.nodes})),u({fitViewDone:P})}else u({});(R==null?void 0:R.length)>0&&(L&&console.log("React Flow: trigger node changes",R),p==null||p(R))}},updateNodePositions:(f,h=!1)=>{const p=[],g=[];for(const[x,v]of f){const y=!!(v!=null&&v.expandParent&&(v!=null&&v.parentId)&&(v!=null&&v.position)),N={id:x,type:"position",position:y?{x:Math.max(0,v.position.x),y:Math.max(0,v.position.y)}:v.position,dragging:h};y&&p.push({id:x,parentId:v.parentId,rect:{...v.internals.positionAbsolute,width:v.measured.width,height:v.measured.height}}),g.push(N)}if(p.length>0){const{nodeLookup:x,parentLookup:v,nodeOrigin:y}=d(),N=vr(p,x,v,y);g.push(...N)}d().triggerNodeChanges(g)},triggerNodeChanges:f=>{const{onNodesChange:h,setNodes:p,nodes:g,hasDefaultNodes:x,debug:v}=d();if(f!=null&&f.length){if(x){const y=Ih(f,g);p(y)}v&&console.log("React Flow: trigger node changes",f),h==null||h(f)}},triggerEdgeChanges:f=>{const{onEdgesChange:h,setEdges:p,edges:g,hasDefaultEdges:x,debug:v}=d();if(f!=null&&f.length){if(x){const y=Ah(f,g);p(y)}v&&console.log("React Flow: trigger edge changes",f),h==null||h(f)}},addSelectedNodes:f=>{const{multiSelectionActive:h,edgeLookup:p,nodeLookup:g,triggerNodeChanges:x,triggerEdgeChanges:v}=d();if(h){const y=f.map(N=>De(N,!0));x(y);return}x(We(g,new Set([...f]),!0)),v(We(p))},addSelectedEdges:f=>{const{multiSelectionActive:h,edgeLookup:p,nodeLookup:g,triggerNodeChanges:x,triggerEdgeChanges:v}=d();if(h){const y=f.map(N=>De(N,!0));v(y);return}v(We(p,new Set([...f]))),x(We(g,new Set,!0))},unselectNodesAndEdges:({nodes:f,edges:h}={})=>{const{edges:p,nodes:g,nodeLookup:x,triggerNodeChanges:v,triggerEdgeChanges:y}=d(),N=f||g,b=h||p,w=N.map(L=>{const E=x.get(L.id);return E&&(E.selected=!1),De(L.id,!1)}),C=b.map(L=>De(L.id,!1));v(w),y(C)},setMinZoom:f=>{const{panZoom:h,maxZoom:p}=d();h==null||h.setScaleExtent([f,p]),u({minZoom:f})},setMaxZoom:f=>{const{panZoom:h,minZoom:p}=d();h==null||h.setScaleExtent([p,f]),u({maxZoom:f})},setTranslateExtent:f=>{var h;(h=d().panZoom)==null||h.setTranslateExtent(f),u({translateExtent:f})},setPaneClickDistance:f=>{var h;(h=d().panZoom)==null||h.setClickDistance(f)},resetSelectedElements:()=>{const{edges:f,nodes:h,triggerNodeChanges:p,triggerEdgeChanges:g}=d(),x=h.reduce((y,N)=>N.selected?[...y,De(N.id,!1)]:y,[]),v=f.reduce((y,N)=>N.selected?[...y,De(N.id,!1)]:y,[]);p(x),g(v)},setNodeExtent:f=>{const{nodes:h,nodeLookup:p,parentLookup:g,nodeOrigin:x,elevateNodesOnSelect:v,nodeExtent:y}=d();f[0][0]===y[0][0]&&f[0][1]===y[0][1]&&f[1][0]===y[1][0]&&f[1][1]===y[1][1]||(sr(h,p,g,{nodeOrigin:x,nodeExtent:f,elevateNodesOnSelect:v,checkEquality:!1}),u({nodeExtent:f}))},panBy:f=>{const{transform:h,width:p,height:g,panZoom:x,translateExtent:v}=d();return mf({delta:f,panZoom:x,transform:h,translateExtent:v,width:p,height:g})},fitView:f=>{const{panZoom:h,width:p,height:g,minZoom:x,maxZoom:v,nodeLookup:y}=d();if(!h)return Promise.resolve(!1);const N=Qn(y,f);return Jn({nodes:N,width:p,height:g,panZoom:h,minZoom:x,maxZoom:v},f)},fitViewSync:f=>{const{panZoom:h,width:p,height:g,minZoom:x,maxZoom:v,nodeLookup:y}=d();if(!h)return!1;const N=Qn(y,f);return Jn({nodes:N,width:p,height:g,panZoom:h,minZoom:x,maxZoom:v},f),N.size>0},cancelConnection:()=>{u({connection:{...ki}})},updateConnection:f=>{u({connection:f})},reset:()=>u({...Ds()})}),Object.is);function G0({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:s,initialHeight:i,fitView:o,nodeOrigin:a,nodeExtent:l,children:u}){const[d]=$.useState(()=>K0({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l}));return c.jsx(fh,{value:d,children:c.jsx(Rh,{children:u})})}function U0({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:s,width:i,height:o,fitView:a,nodeOrigin:l,nodeExtent:u}){return $.useContext(wn)?c.jsx(c.Fragment,{children:e}):c.jsx(G0,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:s,initialWidth:i,initialHeight:o,fitView:a,nodeOrigin:l,nodeExtent:u,children:e})}const Z0={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Q0({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:s,nodeTypes:i,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:u,onMove:d,onMoveStart:f,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:x,onClickConnectStart:v,onClickConnectEnd:y,onNodeMouseEnter:N,onNodeMouseMove:b,onNodeMouseLeave:w,onNodeContextMenu:C,onNodeDoubleClick:L,onNodeDragStart:E,onNodeDrag:R,onNodeDragStop:D,onNodesDelete:P,onEdgesDelete:T,onDelete:F,onSelectionChange:A,onSelectionDragStart:m,onSelectionDrag:k,onSelectionDragStop:_,onSelectionContextMenu:M,onSelectionStart:S,onSelectionEnd:j,onBeforeDelete:z,connectionMode:H,connectionLineType:O=Ie.Bezier,connectionLineStyle:X,connectionLineComponent:V,connectionLineContainerStyle:B,deleteKeyCode:Y="Backspace",selectionKeyCode:U="Shift",selectionOnDrag:I=!1,selectionMode:q=vt.Full,panActivationKeyCode:K="Space",multiSelectionKeyCode:Z=rn()?"Meta":"Control",zoomActivationKeyCode:W=rn()?"Meta":"Control",snapToGrid:J,snapGrid:ee,onlyRenderVisibleElements:oe=!1,selectNodesOnDrag:Ee,nodesDraggable:Nn,nodesConnectable:_n,nodesFocusable:kn,nodeOrigin:st=io,edgesFocusable:Sn,edgesReconnectable:it,elementsSelectable:ot=!0,defaultViewport:jn=Sh,minZoom:at=.5,maxZoom:ct=2,translateExtent:Mt=bt,preventScrolling:Lo=!0,nodeExtent:En,defaultMarkerColor:Ho="#b1b1b7",zoomOnScroll:Fo=!0,zoomOnPinch:Oo=!0,panOnScroll:Bo=!1,panOnScrollSpeed:Vo=.5,panOnScrollMode:qo=He.Free,zoomOnDoubleClick:Xo=!0,panOnDrag:Yo=!0,onPaneClick:Wo,onPaneMouseEnter:Ko,onPaneMouseMove:Go,onPaneMouseLeave:Uo,onPaneScroll:Zo,onPaneContextMenu:Qo,paneClickDistance:jr=0,nodeClickDistance:Jo=0,children:ea,onReconnect:ta,onReconnectStart:na,onReconnectEnd:ra,onEdgeContextMenu:sa,onEdgeDoubleClick:ia,onEdgeMouseEnter:oa,onEdgeMouseMove:aa,onEdgeMouseLeave:ca,reconnectRadius:la=10,onNodesChange:ua,onEdgesChange:da,noDragClassName:fa="nodrag",noWheelClassName:ha="nowheel",noPanClassName:Er="nopan",fitView:Cr,fitViewOptions:pa,connectOnClick:ga,attributionPosition:ma,proOptions:xa,defaultEdgeOptions:ya,elevateNodesOnSelect:wa,elevateEdgesOnSelect:ba,disableKeyboardA11y:$r=!1,autoPanOnConnect:va,autoPanOnNodeDrag:Na,autoPanSpeed:_a,connectionRadius:ka,isValidConnection:Sa,onError:ja,style:Ea,id:Mr,nodeDragThreshold:Ca,viewport:$a,onViewportChange:Ma,width:za,height:Ia,colorMode:Aa="light",debug:Pa,...Ta},Da){const Cn=Mr||"1",Ra=$h(Aa);return c.jsx("div",{"data-testid":"rf__wrapper",...Ta,style:{...Ea,...Z0},ref:Da,className:se(["react-flow",s,Ra]),id:Mr,children:c.jsxs(U0,{nodes:e,edges:t,width:za,height:Ia,fitView:Cr,nodeOrigin:st,nodeExtent:En,children:[c.jsx(W0,{onInit:u,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:N,onNodeMouseMove:b,onNodeMouseLeave:w,onNodeContextMenu:C,onNodeDoubleClick:L,nodeTypes:i,edgeTypes:o,connectionLineType:O,connectionLineStyle:X,connectionLineComponent:V,connectionLineContainerStyle:B,selectionKeyCode:U,selectionOnDrag:I,selectionMode:q,deleteKeyCode:Y,multiSelectionKeyCode:Z,panActivationKeyCode:K,zoomActivationKeyCode:W,onlyRenderVisibleElements:oe,defaultViewport:jn,translateExtent:Mt,minZoom:at,maxZoom:ct,preventScrolling:Lo,zoomOnScroll:Fo,zoomOnPinch:Oo,zoomOnDoubleClick:Xo,panOnScroll:Bo,panOnScrollSpeed:Vo,panOnScrollMode:qo,panOnDrag:Yo,onPaneClick:Wo,onPaneMouseEnter:Ko,onPaneMouseMove:Go,onPaneMouseLeave:Uo,onPaneScroll:Zo,onPaneContextMenu:Qo,paneClickDistance:jr,nodeClickDistance:Jo,onSelectionContextMenu:M,onSelectionStart:S,onSelectionEnd:j,onReconnect:ta,onReconnectStart:na,onReconnectEnd:ra,onEdgeContextMenu:sa,onEdgeDoubleClick:ia,onEdgeMouseEnter:oa,onEdgeMouseMove:aa,onEdgeMouseLeave:ca,reconnectRadius:la,defaultMarkerColor:Ho,noDragClassName:fa,noWheelClassName:ha,noPanClassName:Er,rfId:Cn,disableKeyboardA11y:$r,nodeExtent:En,viewport:$a,onViewportChange:Ma}),c.jsx(Ch,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:x,onClickConnectStart:v,onClickConnectEnd:y,nodesDraggable:Nn,nodesConnectable:_n,nodesFocusable:kn,edgesFocusable:Sn,edgesReconnectable:it,elementsSelectable:ot,elevateNodesOnSelect:wa,elevateEdgesOnSelect:ba,minZoom:at,maxZoom:ct,nodeExtent:En,onNodesChange:ua,onEdgesChange:da,snapToGrid:J,snapGrid:ee,connectionMode:H,translateExtent:Mt,connectOnClick:ga,defaultEdgeOptions:ya,fitView:Cr,fitViewOptions:pa,onNodesDelete:P,onEdgesDelete:T,onDelete:F,onNodeDragStart:E,onNodeDrag:R,onNodeDragStop:D,onSelectionDrag:k,onSelectionDragStart:m,onSelectionDragStop:_,onMove:d,onMoveStart:f,onMoveEnd:h,noPanClassName:Er,nodeOrigin:st,rfId:Cn,autoPanOnConnect:va,autoPanOnNodeDrag:Na,autoPanSpeed:_a,onError:ja,connectionRadius:ka,isValidConnection:Sa,selectNodesOnDrag:Ee,nodeDragThreshold:Ca,onBeforeDelete:z,paneClickDistance:jr,debug:Pa}),c.jsx(kh,{onSelectionChange:A}),ea,c.jsx(wh,{proOptions:xa,position:ma}),c.jsx(xh,{rfId:Cn,disableKeyboardA11y:$r})]})})}var J0=ao(Q0);function ep({dimensions:e,lineWidth:t,variant:n,className:r}){return c.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:se(["react-flow__background-pattern",n,r])})}function tp({radius:e,className:t}){return c.jsx("circle",{cx:e,cy:e,r:e,className:se(["react-flow__background-pattern","dots",t])})}var Ne;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Ne||(Ne={}));const np={[Ne.Dots]:1,[Ne.Lines]:1,[Ne.Cross]:6},rp=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Io({id:e,variant:t=Ne.Dots,gap:n=20,size:r,lineWidth:s=1,offset:i=0,color:o,bgColor:a,style:l,className:u,patternClassName:d}){const f=$.useRef(null),{transform:h,patternId:p}=Q(rp,re),g=r||np[t],x=t===Ne.Dots,v=t===Ne.Cross,y=Array.isArray(n)?n:[n,n],N=[y[0]*h[2]||1,y[1]*h[2]||1],b=g*h[2],w=Array.isArray(i)?i:[i,i],C=v?[b,b]:N,L=[w[0]*h[2]||1+C[0]/2,w[1]*h[2]||1+C[1]/2],E=`${p}${e||""}`;return c.jsxs("svg",{className:se(["react-flow__background",u]),style:{...l,...bn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:f,"data-testid":"rf__background",children:[c.jsx("pattern",{id:E,x:h[0]%N[0],y:h[1]%N[1],width:N[0],height:N[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${L[0]},-${L[1]})`,children:x?c.jsx(tp,{radius:b/2,className:d}):c.jsx(ep,{dimensions:C,lineWidth:s,variant:t,className:d})}),c.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${E})`})]})}Io.displayName="Background";const sp=$.memo(Io);function ip(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:c.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function op(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:c.jsx("path",{d:"M0 0h32v4.2H0z"})})}function ap(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:c.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 cp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 lp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 Ht({children:e,className:t,...n}){return c.jsx("button",{type:"button",className:se(["react-flow__controls-button",t]),...n,children:e})}const up=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom});function Ao({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:s,onZoomIn:i,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:u,children:d,position:f="bottom-left",orientation:h="vertical","aria-label":p="React Flow controls"}){const g=te(),{isInteractive:x,minZoomReached:v,maxZoomReached:y}=Q(up,re),{zoomIn:N,zoomOut:b,fitView:w}=_r(),C=()=>{N(),i==null||i()},L=()=>{b(),o==null||o()},E=()=>{w(s),a==null||a()},R=()=>{g.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),l==null||l(!x)},D=h==="horizontal"?"horizontal":"vertical";return c.jsxs(Nr,{className:se(["react-flow__controls",D,u]),position:f,style:e,"data-testid":"rf__controls","aria-label":p,children:[t&&c.jsxs(c.Fragment,{children:[c.jsx(Ht,{onClick:C,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:y,children:c.jsx(ip,{})}),c.jsx(Ht,{onClick:L,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:v,children:c.jsx(op,{})})]}),n&&c.jsx(Ht,{className:"react-flow__controls-fitview",onClick:E,title:"fit view","aria-label":"fit view",children:c.jsx(ap,{})}),r&&c.jsx(Ht,{className:"react-flow__controls-interactive",onClick:R,title:"toggle interactivity","aria-label":"toggle interactivity",children:x?c.jsx(lp,{}):c.jsx(cp,{})}),d]})}Ao.displayName="Controls";const dp=$.memo(Ao);function fp({id:e,x:t,y:n,width:r,height:s,style:i,color:o,strokeColor:a,strokeWidth:l,className:u,borderRadius:d,shapeRendering:f,selected:h,onClick:p}){const{background:g,backgroundColor:x}=i||{},v=o||g||x;return c.jsx("rect",{className:se(["react-flow__minimap-node",{selected:h},u]),x:t,y:n,rx:d,ry:d,width:r,height:s,style:{fill:v,stroke:a,strokeWidth:l},shapeRendering:f,onClick:p?y=>p(y,e):void 0})}const hp=$.memo(fp),pp=e=>e.nodes.map(t=>t.id),Fn=e=>e instanceof Function?e:()=>e;function gp({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:s,nodeComponent:i=hp,onClick:o}){const a=Q(pp,re),l=Fn(t),u=Fn(e),d=Fn(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return c.jsx(c.Fragment,{children:a.map(h=>c.jsx(xp,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:s,NodeComponent:i,onClick:o,shapeRendering:f},h))})}function mp({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:s,nodeStrokeWidth:i,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:u,x:d,y:f,width:h,height:p}=Q(g=>{const x=g.nodeLookup.get(e),{x:v,y}=x.internals.positionAbsolute,{width:N,height:b}=je(x);return{node:x,x:v,y,width:N,height:b}},re);return!u||u.hidden||!Ai(u)?null:c.jsx(a,{x:d,y:f,width:h,height:p,style:u.style,selected:!!u.selected,className:r(u),color:t(u),borderRadius:s,strokeColor:n(u),strokeWidth:i,shapeRendering:o,onClick:l,id:u.id})}const xp=$.memo(mp);var yp=$.memo(gp);const wp=200,bp=150,vp=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?zi(Ct(e.nodeLookup),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height}},Np="react-flow__minimap-desc";function Po({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:s="",nodeBorderRadius:i=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:u,maskStrokeColor:d,maskStrokeWidth:f,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:x=!1,zoomable:v=!1,ariaLabel:y="React Flow mini map",inversePan:N,zoomStep:b=10,offsetScale:w=5}){const C=te(),L=$.useRef(null),{boundingRect:E,viewBB:R,rfId:D,panZoom:P,translateExtent:T,flowWidth:F,flowHeight:A}=Q(vp,re),m=(e==null?void 0:e.width)??wp,k=(e==null?void 0:e.height)??bp,_=E.width/m,M=E.height/k,S=Math.max(_,M),j=S*m,z=S*k,H=w*S,O=E.x-(j-E.width)/2-H,X=E.y-(z-E.height)/2-H,V=j+H*2,B=z+H*2,Y=`${Np}-${D}`,U=$.useRef(0),I=$.useRef();U.current=S,$.useEffect(()=>{if(L.current&&P)return I.current=kf({domNode:L.current,panZoom:P,getTransform:()=>C.getState().transform,getViewScale:()=>U.current}),()=>{var Z;(Z=I.current)==null||Z.destroy()}},[P]),$.useEffect(()=>{var Z;(Z=I.current)==null||Z.update({translateExtent:T,width:F,height:A,inversePan:N,pannable:x,zoomStep:b,zoomable:v})},[x,v,N,b,T,F,A]);const q=p?Z=>{var ee;const[W,J]=((ee=I.current)==null?void 0:ee.pointer(Z))||[0,0];p(Z,{x:W,y:J})}:void 0,K=g?$.useCallback((Z,W)=>{const J=C.getState().nodeLookup.get(W);g(Z,J)},[]):void 0;return c.jsx(Nr,{position:h,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 f=="number"?f*S: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 o=="string"?o:void 0},className:se(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:c.jsxs("svg",{width:m,height:k,viewBox:`${O} ${X} ${V} ${B}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:L,onClick:q,children:[y&&c.jsx("title",{id:Y,children:y}),c.jsx(yp,{onClick:K,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:s,nodeStrokeWidth:o,nodeComponent:a}),c.jsx("path",{className:"react-flow__minimap-mask",d:`M${O-H},${X-H}h${V+H*2}v${B+H*2}h${-V-H*2}z
|
|
23
|
-
M${R.x},${R.y}h${R.width}v${R.height}h${-R.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Po.displayName="MiniMap";$.memo(Po);function _p({nodeId:e,position:t,variant:n=pt.Handle,className:r,style:s={},children:i,color:o,minWidth:a=10,minHeight:l=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,shouldResize:h,onResizeStart:p,onResize:g,onResizeEnd:x}){const v=fo(),y=typeof e=="string"?e:v,N=te(),b=$.useRef(null),w=n===pt.Line?"right":"bottom-right",C=t??w,L=$.useRef(null);$.useEffect(()=>{if(!(!b.current||!y))return L.current||(L.current=Hf({domNode:b.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:P,transform:T,snapGrid:F,snapToGrid:A,nodeOrigin:m,domNode:k}=N.getState();return{nodeLookup:P,transform:T,snapGrid:F,snapToGrid:A,nodeOrigin:m,paneDomNode:k}},onChange:(P,T)=>{const{triggerNodeChanges:F,nodeLookup:A,parentLookup:m,nodeOrigin:k}=N.getState(),_=[],M={x:P.x,y:P.y},S=A.get(y);if(S&&S.expandParent&&S.parentId){const j=S.origin??k,z=P.width??S.measured.width,H=P.height??S.measured.height,O={id:S.id,parentId:S.parentId,rect:{width:z,height:H,...Pi({x:P.x??S.position.x,y:P.y??S.position.y},{width:z,height:H},S.parentId,A,j)}},X=vr([O],A,m,k);_.push(...X),M.x=P.x?Math.max(j[0]*z,P.x):void 0,M.y=P.y?Math.max(j[1]*H,P.y):void 0}if(M.x!==void 0&&M.y!==void 0){const j={id:y,type:"position",position:{...M}};_.push(j)}if(P.width!==void 0&&P.height!==void 0){const j={id:y,type:"dimensions",resizing:!0,setAttributes:!0,dimensions:{width:P.width,height:P.height}};_.push(j)}for(const j of T){const z={...j,type:"position"};_.push(z)}F(_)},onEnd:()=>{const P={id:y,type:"dimensions",resizing:!1};N.getState().triggerNodeChanges([P])}})),L.current.update({controlPosition:C,boundaries:{minWidth:a,minHeight:l,maxWidth:u,maxHeight:d},keepAspectRatio:f,onResizeStart:p,onResize:g,onResizeEnd:x,shouldResize:h}),()=>{var P;(P=L.current)==null||P.destroy()}},[C,a,l,u,d,f,p,g,x,h]);const E=C.split("-"),R=n===pt.Line?"borderColor":"backgroundColor",D=o?{...s,[R]:o}:s;return c.jsx("div",{className:se(["react-flow__resize-control","nodrag",...E,n,r]),ref:b,style:D,children:i})}$.memo(_p);const kp=new Set;function Sp(e){return e.startsWith("signal:child:")}function jp(e){const t=an(),n=(()=>{const i=new Set(e),o=[...e];for(;o.length>0;){const a=o.shift();if(a===void 0)continue;const l=t.getQueryData(["run",a]);if(l!==void 0)for(const u of l.timeline){const d=Xt(u);d!==void 0&&!i.has(d)&&(i.add(d),o.push(d))}}return[...i].sort()})(),r=Ga({queries:n.map(i=>({queryKey:["run",i],queryFn:()=>ie.run(i)}))}),s={};return n.forEach((i,o)=>{var l;const a=(l=r[o])==null?void 0:l.data;a&&(s[i]=a)}),s}function Ep({data:e}){const t=e.status==="failed",n=e.status==="pending"||e.status==="running",r=!!e.childRunId,s=!!e.collapsed,i=r&&!s,o=i?Za:Vs(e.kind),a=t?{rail:"bg-red-400",badge:"bg-red-500/15 text-red-300",pill:"bg-red-500/20 text-red-300"}:n?{rail:"bg-amber-400",badge:"bg-amber-500/15 text-amber-300",pill:"bg-amber-500/20 text-amber-300"}:{rail:"bg-emerald-400",badge:"bg-emerald-500/15 text-emerald-300",pill:"bg-emerald-500/20 text-emerald-300"};return c.jsxs("div",{title:i?On.child:On[e.kind]??e.kind,className:`group relative w-[208px] cursor-pointer overflow-hidden rounded-xl border bg-[var(--panel)]/95 shadow-lg backdrop-blur transition-all duration-150 hover:-translate-y-0.5 ${e.selected?"border-emerald-400/60 ring-2 ring-emerald-400/30":t?"border-red-500/40 hover:border-red-400/60":i?"border-indigo-500/40 hover:border-indigo-400/60":"border-[var(--line)] hover:border-zinc-600"}`,children:[c.jsx("span",{className:`absolute inset-y-0 left-0 w-[3px] ${a.rail} ${n?"animate-pulse":""}`}),c.jsx(Te,{type:"target",position:G.Left,className:"!border-0 !bg-zinc-600"}),c.jsxs("div",{className:"py-2.5 pl-3.5 pr-3",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`grid h-5 w-5 shrink-0 place-items-center rounded ${a.badge}`,children:c.jsx(o,{width:12,height:12})}),c.jsx("span",{className:"truncate text-[13px] font-medium text-zinc-100",children:e.name}),c.jsx("span",{className:`ml-auto grid h-4 w-4 shrink-0 place-items-center rounded-full ${a.pill} ${n?"animate-pulse":""}`,children:t?c.jsx(Ue,{width:9,height:9}):n?c.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-current"}):c.jsx(qs,{width:9,height:9})})]}),c.jsxs("div",{className:"mono mt-1.5 flex items-center gap-1.5 text-[10px] text-zinc-500",children:[r?c.jsxs("span",{className:"flex items-center gap-1",children:[!s&&c.jsx("button",{type:"button",onClick:l=>{var u;l.stopPropagation(),e.childRunId&&((u=e.onToggleChild)==null||u.call(e,e.childRunId))},title:e.childExpanded?"Collapse child flow":"Expand child flow inline",className:"grid h-4 w-4 place-items-center rounded border border-indigo-500/30 bg-indigo-500/10 text-indigo-300 transition-colors hover:border-indigo-400/60 hover:bg-indigo-500/20 hover:text-indigo-200",children:c.jsx("span",{className:"inline-block text-[9px] transition-transform",style:{transform:e.childExpanded?"rotate(90deg)":"rotate(0deg)"},children:"▸"})}),c.jsx("button",{type:"button",onClick:l=>{var u;l.stopPropagation(),e.childRunId&&((u=e.onOpenRun)==null||u.call(e,e.childRunId))},title:"Open the child run",className:"rounded border border-indigo-500/30 bg-indigo-500/10 px-1 text-indigo-300 transition-colors hover:border-indigo-400/60 hover:bg-indigo-500/20 hover:text-indigo-200",children:"child ↗"})]}):c.jsx("span",{className:"rounded border border-[var(--line)] px-1 text-zinc-400",children:e.kind}),e.attempts>1&&c.jsxs("span",{className:"flex items-center gap-0.5 text-amber-300",children:[c.jsx(ar,{width:9,height:9}),e.attempts]}),e.workerGroup&&c.jsxs("span",{className:"truncate",children:["@",e.workerGroup]}),c.jsxs("span",{className:"tnum ml-auto text-zinc-400",children:["#",e.seq,e.duration&&c.jsxs("span",{className:"text-zinc-600",children:[" · ",e.duration]})]})]}),e.subs&&c.jsxs("div",{className:"mono mt-1.5 flex items-center gap-2 border-t border-[var(--line)] pt-1.5 text-[10px]",children:[e.subs.ok>0&&c.jsxs("span",{className:"text-emerald-300",children:[e.subs.ok," ok"]}),e.subs.failed>0&&c.jsxs("span",{className:"text-red-300",children:[e.subs.failed," failed"]}),e.subs.skipped>0&&c.jsxs("span",{className:"text-amber-300",children:[e.subs.skipped," skipped"]})]})]}),c.jsx(Te,{type:"source",position:G.Right,className:"!border-0 !bg-zinc-600"})]})}function Cp({data:e}){const t=e.status==="running"||e.status==="awaiting";return c.jsxs("div",{className:`s-${e.status} flex items-center gap-2 rounded-full border border-current/30 bg-[var(--panel)] px-3.5 py-1.5`,children:[c.jsx(Te,{type:"target",position:G.Left,className:"!border-0 !bg-zinc-600"}),c.jsx("span",{className:`dot ${t?"pulse":""}`}),c.jsx("span",{className:"mono text-[11px] uppercase tracking-wider",children:e.label}),c.jsx(Te,{type:"source",position:G.Right,className:"!border-0 !bg-zinc-600"})]})}const $p={step:Ep,terminal:Cp};function Mp(e){var n;const t=(n=e.events)==null?void 0:n.filter(r=>r.status);if(!(!t||t.length===0))return{ok:t.filter(r=>r.status==="ok").length,failed:t.filter(r=>r.status==="failed").length,skipped:t.filter(r=>r.status==="skipped").length}}function zp({run:e,timeline:t,endStatus:n,selectedKey:r,onSelect:s,onOpenRun:i,fmtDuration:o,expanded:a,onToggleChild:l}){const u=a??kp,d=$.useMemo(()=>{const x=new Set(u);for(const v of t){const y=Xt(v);y!==void 0&&x.add(y)}return x},[u,t]),f=jp(d),{nodes:h,edges:p}=(()=>{const N=[],b=[],w=e.status==="running"||e.status==="suspended",C=(A,m,k)=>({id:`${A}->${m}`,source:A,target:m,style:{stroke:k?"#f87171":"var(--line)",strokeWidth:1.5}}),L=(A,m)=>({id:`${A}=>${m}`,source:A,target:m,style:{stroke:"#818cf8",strokeWidth:1.5,strokeDasharray:"4 3"}});function E(A,m,k,_,M,S){const j=`${M}s${A.seq}`,z=Xt(A),H=z!==void 0?f[z]:void 0,O=H!==void 0&&H.timeline.length===1&&H.timeline[0]?{step:H.timeline[0],run:H.run}:void 0,X=O!==void 0,V=!X&&z!==void 0&&u.has(z),B=O?O.step:A,Y=O?O.run:S,U=O?O.step.name:z!==void 0?(H==null?void 0:H.run.workflow)??"child workflow":A.name,I=B.status==="failed";N.push({id:j,type:"step",draggable:!1,position:{x:m,y:k},data:{seq:B.seq,name:U,kind:B.kind,status:B.status,workerGroup:B.workerGroup,attempts:B.attempts,duration:o(B.startedAt,B.finishedAt),subs:Mp(B),selected:r===`${B.runId}#${B.seq}`,childRunId:z,onOpenRun:i,childExpanded:V,onToggleChild:l,collapsed:X,depth:_,step:B,laneRun:Y}});const q=V?H:void 0;if(q){const K=R(q.timeline,_+1,m+248,k+150,`${z}:`,q.run);for(const W of K.firstIds)b.push(L(j,W));const Z=Sp(A.name)&&K.connectors.length>0?K.connectors:[{id:j,failed:I}];return{id:j,exits:Z,nextX:Math.max(m+248,K.nextX),bottomY:Math.max(k,K.bottomY)}}return{id:j,exits:[{id:j,failed:I}],nextX:m+248,bottomY:k}}function R(A,m,k,_,M,S){let j=k;const z=[];let H=[],O=_;for(const X of Ua(A)){const V=X.kind==="single"?[X.step]:X.steps,B=z.length===0,Y=[];let U=_,I=j;for(const q of V){const K=E(q,j,U,m,M,S);B&&z.push(K.id);for(const Z of H)b.push(C(Z.id,K.id,Z.failed));Y.push(...K.exits),I=Math.max(I,K.nextX),U=K.bottomY+96}H=Y,j=I,O=Math.max(O,U-96)}return{firstIds:z,connectors:H,nextX:j,bottomY:O}}const D=248;N.push({id:"start",type:"terminal",position:{x:0,y:0},draggable:!1,data:{status:"running",label:e.workflow}});const P=R(t,0,D,0,"",e);for(const A of P.firstIds)b.push({id:`start->${A}`,source:"start",target:A});const T=n??Ka(e,t);N.push({id:"end",type:"terminal",position:{x:Math.max(P.nextX,D),y:0},draggable:!1,data:{status:T,label:T}});const F=P.connectors.length>0?P.connectors:[{id:"start",failed:!1}];for(const A of F)b.push({id:`${A.id}->end`,source:A.id,target:"end",animated:w,style:{stroke:w?"var(--accent)":"var(--line)",strokeWidth:w?2:1.5}});return{nodes:N,edges:b}})(),g=$.useCallback((x,v)=>{if(v.type!=="step")return;const y=v.data;y.step&&y.laneRun&&s(y.step,y.laneRun)},[s]);return c.jsxs(J0,{nodes:h,edges:p,nodeTypes:$p,onNodeClick:g,fitView:!0,fitViewOptions:{padding:.3,maxZoom:1.1},proOptions:{hideAttribution:!0},nodesConnectable:!1,nodesDraggable:!1,panOnScroll:!0,minZoom:.3,children:[c.jsx(sp,{variant:Ne.Dots,gap:22,size:1,color:"#1c1c22"}),c.jsx(dp,{showInteractive:!1,position:"bottom-right"})]})}function To({className:e}){return c.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round",className:e,role:"img","aria-label":"durable",children:[c.jsx("title",{children:"durable"}),c.jsx("path",{d:"M12 2.5 21.5 12 12 21.5 2.5 12z",opacity:.35}),c.jsx("circle",{cx:"6.4",cy:"12",r:"1.7",fill:"currentColor",stroke:"none"}),c.jsx("circle",{cx:"12",cy:"12",r:"1.7",fill:"currentColor",stroke:"none"}),c.jsx("circle",{cx:"17.6",cy:"12",r:"1.7",fill:"currentColor",stroke:"none"}),c.jsx("path",{d:"M8.1 12h2.2M13.7 12h2.2"})]})}const Ip=["pending","running","suspended","completed","failed","cancelling","cancelled","dead"];function Ap(e){const t=Date.now()-new Date(e).getTime(),n=Math.round(t/1e3);if(n<60)return`${n}s ago`;const r=Math.round(n/60);if(r<60)return`${r}m ago`;const s=Math.round(r/60);return s<24?`${s}h ago`:`${Math.round(s/24)}d ago`}function Pp(e,t){const n=new Date(t).getTime()-new Date(e).getTime();return n<1e3?`${n}ms`:n<6e4?`${(n/1e3).toFixed(1)}s`:`${(n/6e4).toFixed(1)}m`}function Sr({status:e}){const t=e==="running"||e==="awaiting"||e==="cancelling";return c.jsx("span",{className:`dot s-${e} ${t?"pulse":""}`,"aria-hidden":!0})}function Do({status:e}){return c.jsxs("span",{className:`s-${e} inline-flex items-center gap-1.5 text-[11px] uppercase tracking-wider`,children:[c.jsx(Sr,{status:e}),e]})}function Tp({counts:e,filter:t,onFilter:n}){const r=Object.values(e).reduce((l,u)=>l+u,0),s=(l,u,d)=>c.jsxs("button",{type:"button",onClick:()=>n(l),className:`group flex items-center gap-2 rounded-md border px-2.5 py-1 text-xs transition-colors ${t===l?"border-zinc-600 bg-zinc-900 text-zinc-100":"border-transparent text-zinc-500 hover:text-zinc-300"}`,children:[l!=="all"&&c.jsx(Sr,{status:l}),c.jsx("span",{className:"uppercase tracking-wide",children:u}),c.jsx("span",{className:"mono tnum text-zinc-600",children:d})]},l),{data:i}=we({queryKey:["topology"],queryFn:()=>ie.topology(),staleTime:Number.POSITIVE_INFINITY}),o=(i==null?void 0:i.role)==="tenant",a=i?o?i.tenant?`tenant · ${i.tenant}`:"tenant":"control plane":"";return c.jsxs("header",{className:"z-10 flex items-center gap-4 border-b border-[var(--line)] px-5 py-3",children:[c.jsxs("div",{className:"flex items-center gap-2.5",children:[c.jsx("div",{className:"grid h-7 w-7 place-items-center rounded-md border border-emerald-500/30 bg-emerald-500/10",children:c.jsx(To,{className:"h-4 w-4 text-emerald-400"})}),c.jsxs("div",{className:"leading-none",children:[c.jsx("div",{className:"text-sm font-semibold tracking-tight",children:"durable"}),c.jsx("div",{className:`mono text-[10px] uppercase tracking-[0.2em] ${o?"text-amber-400/80":"text-zinc-600"}`,title:o?`Tenant deployment — partition ${(i==null?void 0:i.tenant)??"(unnamed)"}`:"Control-plane deployment",children:a})]})]}),c.jsxs("div",{className:"ml-2 flex flex-wrap items-center gap-1",children:[s("all","all",r),Ip.map(l=>s(l,l,e[l]??0))]}),c.jsx(Lp,{}),c.jsxs("div",{className:"flex items-center gap-2 text-xs text-zinc-500",children:[c.jsx("span",{className:"dot s-completed pulse","aria-hidden":!0}),"live"]})]})}function Dp(e){const t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<60)return`${t}s ago`;const n=Math.round(t/60);if(n<60)return`${n}m ago`;const r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`}function Ro({status:e}){const t=e==null?void 0:e.concurrency;if(!e||!t)return c.jsx("span",{className:"mono text-[9px] text-zinc-600",children:"no status"});const n=t.limit>0&&e.inFlight>=t.limit*.8;return c.jsxs("div",{className:"flex flex-col gap-1",children:[c.jsxs("div",{className:"mono flex flex-wrap items-center gap-x-3 gap-y-0.5 text-[10px] text-zinc-500",children:[c.jsx("span",{className:`shrink-0 rounded border px-1 text-[9px] uppercase tracking-wider ${t.mode==="adaptive"?"border-sky-500/40 bg-sky-500/10 text-sky-300":"border-zinc-600/50 bg-zinc-800/60 text-zinc-400"}`,children:t.mode==="adaptive"?`adaptive ${t.min??1}–${t.max??32}`:"fixed"}),c.jsxs("span",{className:n?"text-amber-300":"text-zinc-400",children:["in-flight"," ",c.jsxs("span",{className:"tnum",children:[e.inFlight,"/",t.limit]})]}),typeof e.rssPct=="number"&&c.jsxs("span",{className:e.rssPct>=85?"text-rose-300":"",children:["ram ",c.jsxs("span",{className:"tnum",children:[Math.round(e.rssPct),"%"]})]}),typeof e.cpuPct=="number"&&c.jsxs("span",{children:["cpu ",c.jsxs("span",{className:"tnum",children:[Math.round(e.cpuPct),"%"]})]}),typeof e.throughputPerMin=="number"&&c.jsxs("span",{children:[c.jsx("span",{className:"tnum",children:Math.round(e.throughputPerMin)}),"/min"]}),typeof e.p95Ms=="number"&&c.jsxs("span",{children:["p95 ",c.jsxs("span",{className:"tnum",children:[Math.round(e.p95Ms),"ms"]})]})]}),e.lastAdjust&&c.jsxs("div",{className:"mono text-[10px] text-zinc-500",children:[e.lastAdjust.reason," ",c.jsxs("span",{className:"tnum text-zinc-400",children:[e.lastAdjust.from,"→",e.lastAdjust.to]})," ",Dp(e.lastAdjust.at)]})]})}function on({label:e,suppressed:t,children:n}){const[r,s]=$.useState(!1);return c.jsxs("span",{className:"relative inline-flex",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[n,r&&!t&&c.jsx("span",{role:"tooltip",className:"pointer-events-none absolute right-0 top-full z-30 mt-1 max-w-[280px] whitespace-pre-line rounded-md border border-[var(--line)] bg-zinc-950/95 px-2 py-1 text-left text-[10px] leading-relaxed text-zinc-300 shadow-xl backdrop-blur",children:e})]})}function Rp({workers:e}){return c.jsx("div",{className:"flex flex-col divide-y divide-[var(--line-soft)]",children:e.map(t=>c.jsxs("div",{className:"flex flex-col gap-1 px-2.5 py-2",children:[c.jsx("span",{className:"mono truncate text-[10px] text-zinc-400",children:t.instanceId}),c.jsx(Ro,{status:t.status})]},t.instanceId))})}function Lp(){const{data:e}=we({queryKey:["workers"],queryFn:()=>ie.workers(),refetchInterval:1e4}),[t,n]=$.useState("workers");if(!e||e.length===0)return null;const r=uc(e);return c.jsxs("div",{className:"ml-auto flex flex-nowrap items-center gap-1.5",children:[c.jsx("div",{className:"flex items-center gap-0.5 rounded border border-[var(--line)] bg-zinc-900/60 p-0.5",children:["workers","partitions","alerts"].map(s=>c.jsxs("button",{type:"button",onClick:()=>n(s),className:`mono rounded px-1.5 py-0.5 text-[10px] ${t===s?"bg-zinc-700 text-zinc-100":"text-zinc-500 hover:text-zinc-300"}`,children:[s==="workers"?"pods":s==="partitions"?"parts":"alerts",s==="alerts"&&r.starved.length>0&&c.jsx("span",{className:"tnum ml-1 rounded bg-rose-500/80 px-1 text-[9px] text-white",children:r.starved.length})]},s))}),c.jsxs("div",{className:"flex w-[300px] flex-nowrap items-center justify-end gap-1.5",children:[t==="workers"&&c.jsx(Hp,{workers:lc(e)}),t==="partitions"&&c.jsx(Fp,{groups:e}),t==="alerts"&&c.jsx(Op,{summary:r})]})]})}const Rs="__overflow__";function Ls(e){var n;const t=(n=e.status)==null?void 0:n.concurrency;return e.status&&t?`${e.status.inFlight}/${t.limit}`:void 0}function Hs({w:e}){return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"px-2.5 py-2",children:c.jsx(Ro,{status:e.status})}),c.jsxs("div",{className:"max-h-48 overflow-auto border-t border-[var(--line-soft)] px-2.5 py-1.5",children:[c.jsxs("div",{className:"mono mb-1 text-[9px] uppercase tracking-wider text-zinc-600",children:[e.handlers.length," handlers"]}),e.handlers.map(t=>c.jsx("div",{className:"mono truncate text-[10px] text-zinc-400",children:t},t))]})]})}function Hp({workers:e}){const[t,n]=$.useState(void 0),[r,s]=$.useState(void 0),i=2,o=e.slice(0,i),a=e.slice(i),l=t===Rs;return c.jsxs(c.Fragment,{children:[o.map(u=>{const d=t===u.instanceId,f=Ls(u);return c.jsx(on,{suppressed:d,label:`${u.instanceId}
|
|
24
|
-
${u.handlers.length} handlers · ${u.partition}${f?` · ${f} in-flight`:""}`,children:c.jsxs("div",{className:"relative",children:[c.jsxs("button",{type:"button",onClick:()=>n(d?void 0:u.instanceId),className:`mono flex max-w-[120px] items-center gap-1 rounded border px-1.5 py-0.5 text-[10px] hover:border-zinc-500 ${d?"border-zinc-500 bg-zinc-800 text-zinc-200":"border-[var(--line)] bg-zinc-800/40 text-zinc-400"}`,children:[c.jsx("span",{className:`dot ${u.status?"s-completed":""}`,"aria-hidden":!0}),c.jsx("span",{className:"truncate",children:u.instanceId}),u.partition!=="default"&&c.jsxs("span",{className:"shrink-0 text-zinc-500",children:["@",u.partition]}),c.jsxs("span",{className:"tnum shrink-0 text-zinc-500",children:[u.handlers.length,"h",f?` · ${f}`:""]})]}),d&&c.jsxs("div",{className:"absolute right-0 top-full z-20 mt-1 w-72 rounded-md border border-[var(--line)] bg-zinc-950/95 shadow-xl backdrop-blur",children:[c.jsxs("div",{className:"mono flex items-center justify-between gap-2 border-b border-[var(--line)] px-2.5 py-1.5 text-[10px] text-zinc-500",children:[c.jsx("span",{className:"truncate text-zinc-300",children:u.instanceId}),c.jsxs("span",{className:"shrink-0",children:[u.runtime??"node"," · ",u.partition]})]}),c.jsx(
|
|
25
|
-
${i.workerCount} workers · ${i.handlerCount} handlers · ${i.totalDepth} queued${o?` · ${i.starvedCount} starved`:""}`,children:c.jsxs("div",{className:"relative",children:[c.jsxs("button",{type:"button",disabled:i.workerCount===0,onClick:()=>n(a?void 0:i.partition),className:`mono flex items-center gap-1 rounded border px-1.5 py-0.5 text-[10px] ${o?"border-rose-500/50 bg-rose-500/15 text-rose-300":a?"border-zinc-500 bg-zinc-800 text-zinc-200":"border-[var(--line)] bg-zinc-800/40 text-zinc-400"} ${i.workerCount>0?"cursor-pointer hover:border-zinc-500":"cursor-default"}`,children:[c.jsx("span",{className:`dot ${o?"s-failed":i.workerCount>0?"s-completed":""}`,"aria-hidden":!0}),i.partition,c.jsxs("span",{className:"tnum text-zinc-500",children:[i.workerCount,"w ",i.handlerCount,"h",i.totalDepth>0?` ${i.totalDepth}q`:"",o?` ${i.starvedCount}!`:""]})]}),a&&i.workerCount>0&&c.jsxs("div",{className:"absolute right-0 top-full z-20 mt-1 w-72 rounded-md border border-[var(--line)] bg-zinc-950/95 shadow-xl backdrop-blur",children:[c.jsxs("div",{className:"mono flex items-center justify-between border-b border-[var(--line)] px-2.5 py-1.5 text-[10px] text-zinc-500",children:[c.jsx("span",{className:"text-zinc-300",children:i.partition}),c.jsxs("span",{className:"tnum",children:[i.workerCount," worker(s) · ",i.totalDepth," queued"]})]}),c.jsx(
|
|
26
|
-
${e.queueCount} queues across ${t(e.workerCount,"worker")}.`,children:c.jsxs("span",{className:"mono tnum text-[10px] text-zinc-500",children:[t(e.workflowCount,"workflow")," · ",t(e.stepCount,"step")," ·"," ",t(e.workerCount,"worker")," ·"," ",e.allDraining?c.jsx("span",{className:"text-emerald-400",children:"all draining"}):c.jsxs("span",{className:"text-rose-300",children:[e.starved.length," starved"]})]})}),e.starved.map(n=>c.jsx(
|
|
27
|
-
${n.depth} queued, no worker consuming`,children:c.jsxs("span",{className:"mono flex items-center gap-1 rounded border border-rose-500/50 bg-rose-500/15 px-1.5 py-0.5 text-[10px] text-rose-300",children:[c.jsx("span",{className:"dot s-failed","aria-hidden":!0}),c.jsx("span",{className:"max-w-[180px] truncate",children:n.group}),c.jsxs("span",{className:"tnum shrink-0",children:[n.depth,"q · 0w"]})]})},n.group))]})}function Bp(){return c.jsx("ul",{className:"divide-y divide-[var(--line-soft)]","aria-hidden":!0,children:[0,1,2,3,4,5].map(e=>c.jsxs("li",{className:"flex flex-col gap-2 px-4 py-3",children:[c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsx("div",{className:"h-3.5 w-32 animate-pulse rounded bg-zinc-800"}),c.jsx("div",{className:"h-3 w-16 animate-pulse rounded bg-zinc-800/70"})]}),c.jsx("div",{className:"h-2.5 w-48 animate-pulse rounded bg-zinc-800/50"})]},e))})}function Vp({runs:e,allRuns:t,health:n,loading:r,selected:s,onSelect:i,onSelectTag:o}){return r&&e.length===0?c.jsx(Bp,{}):e.length===0?c.jsx("div",{className:"p-6 text-sm text-zinc-600",children:"No runs yet."}):c.jsx("ul",{className:"divide-y divide-[var(--line-soft)]",children:e.map(a=>{const l=cr(a,{runs:t,health:n});return c.jsx("li",{children:c.jsxs("button",{type:"button",onClick:()=>i(a.id),className:`flex w-full flex-col gap-1 px-4 py-3 text-left transition-colors ${s===a.id?"bg-zinc-900":"hover:bg-zinc-900/50"}`,children:[c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[c.jsx("span",{className:"truncate text-sm font-medium text-zinc-200",children:a.workflow}),a.namespace&&a.namespace!=="default"&&c.jsx("span",{className:"mono shrink-0 rounded border border-sky-500/30 bg-sky-500/10 px-1 text-[9px] text-sky-300",title:"Tenant / worker-pool partition",children:a.namespace}),a.id.startsWith("dlq:")&&c.jsx("span",{className:"mono shrink-0 rounded border border-rose-500/40 bg-rose-500/10 px-1 text-[9px] uppercase tracking-wider text-rose-300",children:"dlq"})]}),c.jsx(Do,{status:l.status})]}),l.detail&&c.jsx("div",{className:`mono truncate text-[11px] s-${l.status}`,children:l.detail}),c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsx("span",{className:"mono truncate text-[11px] text-zinc-600",children:a.id}),c.jsx("span",{className:"shrink-0 text-[11px] text-zinc-600",children:Ap(a.updatedAt)})]}),a.tags&&a.tags.length>0&&c.jsx("div",{className:"flex flex-wrap gap-1",children:a.tags.map(u=>c.jsxs("span",{onClick:d=>{d.stopPropagation(),o(u)},className:"mono cursor-pointer rounded border border-[var(--line)] bg-zinc-800/40 px-1.5 text-[10px] text-zinc-400 hover:border-zinc-500 hover:text-zinc-200",children:["#",u]},u))})]})},a.id)})})}function qp({compensations:e,selKey:t,onSelect:n}){return c.jsxs("div",{className:"shrink-0 border-t border-amber-500/20 bg-black/20 px-7 py-3",children:[c.jsx("div",{className:"mono mb-2 text-[10px] uppercase tracking-[0.18em] text-amber-400/80",children:"compensation · unwind order"}),c.jsx("ul",{className:"flex flex-col gap-1",children:e.map(r=>{const s=`${r.runId}#${r.seq}`;return c.jsx("li",{children:c.jsxs("button",{type:"button",onClick:()=>n(r),className:`mono flex w-full items-center gap-2 rounded-md border px-2.5 py-1.5 text-left text-[11.5px] transition-colors ${s===t?"border-amber-500/50 bg-amber-500/15":"border-amber-500/20 bg-amber-500/5 hover:border-amber-500/40"}`,children:[c.jsx(Sr,{status:r.status}),c.jsx("span",{className:"truncate text-amber-100",children:sc(r.name)}),c.jsx("span",{className:"ml-auto shrink-0 text-[10px] uppercase tracking-wider text-amber-400/70",children:r.status})]})},s)})})]})}function Xp({id:e,onOpenRun:t}){var Y,U;const n=an(),{data:r}=we({queryKey:["run",e],queryFn:async()=>cc(n.getQueryData(["run",e]),await ie.run(e)),refetchInterval:I=>{var K;const q=(K=I.state.data)==null?void 0:K.run.status;return q==="running"||q==="suspended"?1500:!1}}),{data:s=[]}=we({queryKey:["workers"],queryFn:()=>ie.workers(),refetchInterval:5e3}),{data:i=[]}=we({queryKey:["runs","",""],queryFn:()=>ie.runs(),refetchInterval:3e3}),o=(r==null?void 0:r.run.status)==="dead"?`dlq:${e}`:void 0,{data:a}=we({queryKey:["run",o],queryFn:()=>ie.run(o),enabled:!!o,retry:!1}),l=()=>{n.invalidateQueries({queryKey:["run",e]}),n.invalidateQueries({queryKey:["runs"]})},u=r==null?void 0:r.run.status,d=u==="running"||u==="suspended";$.useEffect(()=>{if(d)return ie.streamRun(e,I=>{if(I.type==="step.progress"&&I.event&&I.seq!=null){const q=I.seq,K=I.event;n.setQueryData(["run",e],Z=>Z&&{...Z,timeline:Z.timeline.map(W=>W.seq===q?{...W,events:[...W.events??[],K]}:W)});return}n.invalidateQueries({queryKey:["run",e]})})},[e,d,n]);const f=Xe({mutationFn:()=>ie.retry(e),onSuccess:l}),h=Xe({mutationFn:I=>ie.cancel(e,I!==void 0?{compensate:I}:{}),onSuccess:l}),p=Xe({mutationFn:()=>ie.continue(e),onSuccess:l}),g=Xe({mutationFn:()=>ie.redispatch(e),onSuccess:l}),x=Xe({mutationFn:I=>ie.retryWithInput(e,I),onSuccess:I=>{n.invalidateQueries({queryKey:["runs"]}),t(I.runId)}}),v=()=>{const I=JSON.stringify((r==null?void 0:r.run.input)??{},null,2),q=window.prompt("Fix the input, then replay as a fresh run:",I);if(q!=null)try{x.mutate(JSON.parse(q))}catch{window.alert("Invalid JSON")}},[y,N]=$.useState(),[b,w]=$.useState(!1),[C,L]=$.useState(new Set),[E,R]=$.useState(240);function D(I){I.preventDefault(),I.currentTarget.setPointerCapture(I.pointerId);const q=Z=>R(W=>Math.max(120,Math.min(720,W-Z.movementY))),K=()=>{window.removeEventListener("pointermove",q),window.removeEventListener("pointerup",K)};window.addEventListener("pointermove",q),window.addEventListener("pointerup",K)}function P(I){L(q=>{const K=new Set(q);return K.has(I)?K.delete(I):K.add(I),K})}if(!r)return c.jsx("div",{className:"p-8 text-sm text-zinc-600",children:"Loading run…"});const{run:T,timeline:F}=r,{body:A,compensations:m}=ic(F),k=oc(m),_=T.id.startsWith("dlq:"),M=_?{id:T.id.slice(4),title:"Dead-letter handler",subtitle:`started because run ${T.id.slice(4)} was dead-lettered`,cta:"open dead run →"}:a?{id:`dlq:${T.id}`,title:"Dead-lettered",subtitle:"this run exceeded recovery and was routed to a DLQ handler",cta:"open DLQ handler →"}:void 0,S=m.length>0?(()=>{const I=k.failed>0?` ${k.failed} undo${k.failed===1?"":"s"} failed after retries — check ${k.failed===1?"it":"them"} below.`:"";return k.pending>0?{title:"Compensating",subtitle:`undoing completed steps in reverse (${k.done} of ${k.total} done).${I}`}:T.status==="cancelled"?{title:"Cancelled with compensation",subtitle:`completed steps were undone before cancelling.${I}`}:{title:"Saga compensated",subtitle:`the run failed and its ${k.total} completed step${k.total===1?"":"s"} were undone in reverse.${I}`}})():void 0,j=T.status==="failed"||T.status==="suspended",z=T.status==="running"||T.status==="suspended",H=T.status==="suspended"||T.status==="running",O=A.some(I=>I.status==="pending"&&I.kind==="signal"&&I.name.startsWith("breakpoint")),X=y?`${y.step.runId}#${y.step.seq}`:void 0,V=cr(T,{runs:i,health:s,timeline:A}),B=T.namespace&&T.namespace!=="default"?T.namespace:void 0;return c.jsxs("div",{className:"flex h-full flex-col",children:[c.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--line)] px-7 py-5",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("h2",{className:"text-lg font-semibold tracking-tight",children:T.workflow}),_&&c.jsx("span",{className:"mono rounded border border-rose-500/40 bg-rose-500/10 px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-rose-300",children:"dlq"}),c.jsx(Do,{status:V.status}),V.detail&&c.jsx("span",{className:`mono text-[11px] s-${V.status}`,children:V.detail}),B&&c.jsx("span",{className:"mono rounded border border-sky-500/30 bg-sky-500/10 px-1.5 py-0.5 text-[10px] text-sky-300",title:"Tenant / worker-pool partition this run belongs to",children:B}),m.length>0&&c.jsx("span",{className:`mono rounded border border-amber-500/40 bg-amber-500/10 px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-amber-300 ${k.pending>0?"pulse":""}`,title:k.pending>0?`compensating: ${k.done} of ${k.total} undone`:`${k.total} step${k.total===1?"":"s"} compensated`,children:k.pending>0?"compensating":"compensated"}),c.jsxs("span",{className:"mono rounded border border-[var(--line)] px-1.5 py-0.5 text-[10px] text-zinc-500",children:["v",T.workflowVersion]}),c.jsxs("span",{className:"mono tnum text-[11px] text-zinc-600",children:[A.length," ",A.length===1?"step":"steps"]})]}),c.jsx("div",{className:"mono mt-1 truncate text-[11px] text-zinc-600",children:T.id}),T.tags&&T.tags.length>0&&c.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:T.tags.map(I=>c.jsxs("span",{className:"mono rounded border border-[var(--line)] bg-zinc-800/40 px-1.5 text-[10px] text-zinc-400",children:["#",I]},I))}),T.searchAttributes&&Object.keys(T.searchAttributes).length>0&&c.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Object.entries(T.searchAttributes).map(([I,q])=>c.jsxs("span",{className:"mono rounded border border-indigo-500/30 bg-indigo-500/10 px-1.5 text-[10px] text-indigo-300",title:"search attribute",children:[I,"=",String(q)]},I))}),(Y=r==null?void 0:r.children)!=null&&Y.length?c.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1",children:[c.jsx("span",{className:"text-[10px] text-zinc-600",children:"children:"}),(U=r.children)==null?void 0:U.map(I=>c.jsx("span",{onClick:()=>t(I),className:"mono cursor-pointer rounded border border-[var(--line)] bg-zinc-800/40 px-1.5 text-[10px] text-zinc-400 hover:border-zinc-500 hover:text-zinc-200",children:I},I))]}):null]}),c.jsxs("div",{className:"flex shrink-0 gap-2",children:[c.jsx("button",{type:"button",onClick:()=>w(!0),className:"mono rounded-md border border-[var(--line)] px-2.5 py-1.5 text-xs text-zinc-400 transition-colors hover:bg-zinc-800 hover:text-zinc-100",title:"Run input / output",children:"{ }"}),O&&c.jsxs("button",{type:"button",disabled:p.isPending,onClick:()=>p.mutate(),className:"flex items-center gap-1.5 rounded-md border border-amber-500/40 bg-amber-500/15 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-amber-200 transition-colors enabled:hover:bg-amber-500/25 disabled:opacity-30",children:[c.jsx(Qa,{width:12,height:12}),"Continue"]}),c.jsxs("button",{type:"button",disabled:!j||f.isPending,onClick:()=>f.mutate(),className:"flex items-center gap-1.5 rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-emerald-300 transition-colors enabled:hover:bg-emerald-500/20 disabled:opacity-30",children:[c.jsx(Mn,{width:12,height:12}),"Retry"]}),H&&c.jsxs("button",{type:"button",disabled:g.isPending,onClick:()=>g.mutate(),title:"Re-dispatch stuck `pending` remote steps — recovery for a lost step dispatch (crashed worker or dropped job)",className:"flex items-center gap-1.5 rounded-md border border-sky-500/30 bg-sky-500/10 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-sky-300 transition-colors enabled:hover:bg-sky-500/20 disabled:opacity-30",children:[c.jsx(ar,{width:12,height:12}),"Re-dispatch"]}),(T.status==="dead"||T.status==="failed")&&c.jsxs("button",{type:"button",disabled:x.isPending,onClick:v,title:"Edit the input and re-run as a fresh linked run",className:"flex items-center gap-1.5 rounded-md border border-indigo-500/30 bg-indigo-500/10 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-indigo-300 transition-colors enabled:hover:bg-indigo-500/20 disabled:opacity-30",children:[c.jsx(Mn,{width:12,height:12}),"Fix & replay"]}),z&&c.jsxs("button",{type:"button",disabled:h.isPending,onClick:()=>h.mutate(!0),title:"Cancel and run saga compensations (undo completed steps in reverse)",className:"flex items-center gap-1.5 rounded-md border border-amber-600/30 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-amber-300/90 transition-colors enabled:hover:bg-amber-900/20 disabled:opacity-30",children:[c.jsx(Mn,{width:12,height:12}),"Cancel + Undo"]}),c.jsxs("button",{type:"button",disabled:!z||h.isPending,onClick:()=>h.mutate(!1),className:"flex items-center gap-1.5 rounded-md border border-zinc-700 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-zinc-300 transition-colors enabled:hover:bg-zinc-800 disabled:opacity-30",children:[c.jsx(Ue,{width:12,height:12}),"Cancel"]})]})]}),M&&c.jsxs("div",{className:"flex items-center gap-3 border-b border-rose-500/30 bg-rose-500/10 px-7 py-3",children:[c.jsx("span",{className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-rose-500/40 bg-rose-500/15 text-sm text-rose-300","aria-hidden":!0,children:"⚠"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"text-[13px] font-medium text-rose-200",children:M.title}),c.jsx("div",{className:"mono truncate text-[11px] text-rose-300/70",children:M.subtitle})]}),c.jsx("button",{type:"button",onClick:()=>t(M.id),className:"mono shrink-0 rounded-md border border-rose-500/40 bg-rose-500/15 px-2.5 py-1.5 text-[11px] text-rose-200 transition-colors hover:bg-rose-500/25",children:M.cta})]}),S&&c.jsxs("div",{className:"flex items-center gap-3 border-b border-amber-500/30 bg-amber-500/10 px-7 py-3",children:[c.jsx("span",{className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-amber-500/40 bg-amber-500/15 text-sm text-amber-300","aria-hidden":!0,children:"↺"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"text-[13px] font-medium text-amber-200",children:S.title}),c.jsx("div",{className:"mono truncate text-[11px] text-amber-300/70",children:S.subtitle})]})]}),c.jsxs("div",{className:"relative grid min-h-0 flex-1",style:{gridTemplateRows:A.length>0?`1fr ${E}px`:"1fr"},children:[c.jsxs("div",{className:"relative min-h-0",children:[A.length===0?c.jsx("div",{className:"grid h-full place-items-center text-sm text-zinc-600",children:"No steps recorded yet."}):c.jsx(zp,{run:T,timeline:A,endStatus:V.status,selectedKey:X,onSelect:(I,q)=>N({step:I,run:q}),onOpenRun:t,fmtDuration:Pp,expanded:C,onToggleChild:P}),(T.status==="failed"||T.status==="cancelled")&&T.error&&c.jsx("div",{className:"mono absolute inset-x-6 bottom-6 rounded-lg border border-red-500/20 bg-red-500/10 px-3 py-2 text-xs text-red-300 backdrop-blur",children:T.error.message})]}),A.length>0&&c.jsxs("div",{className:"relative min-h-0 overflow-hidden border-t border-[var(--line)] bg-black/20",children:[c.jsx("div",{onPointerDown:D,className:"absolute inset-x-0 top-0 z-10 h-1.5 -translate-y-1/2 cursor-row-resize hover:bg-emerald-500/40",title:"Drag to resize"}),c.jsx(Ja,{run:T,timeline:A,selectedKey:X,onSelect:(I,q)=>N({step:I,run:q}),onOpenRun:t,expanded:C,onToggleChild:P})]}),y&&c.jsx(mc,{step:y.step,run:y.run,onClose:()=>N(void 0),onOpenRun:t}),b&&c.jsx(xc,{run:T,onClose:()=>w(!1)})]}),m.length>0&&c.jsx(qp,{compensations:m,selKey:X,onSelect:I=>N({step:I,run:T})})]})}function Fs(){if(typeof window>"u")return;const e=window.location.hash.match(/^#\/run\/(.+)$/),t=e==null?void 0:e[1];return t?decodeURIComponent(t):void 0}function Yp(){const[e,t]=$.useState("all"),[n,r]=$.useState(""),[s,i]=$.useState(""),[o,a]=$.useState(()=>Fs()),l=$.useCallback(N=>{if(a(N),typeof window>"u")return;const b=N?`#/run/${encodeURIComponent(N)}`:"",w=b||window.location.pathname+window.location.search;window.location.hash!==b&&window.history.pushState(null,"",w)},[]);$.useEffect(()=>{const N=()=>a(Fs());return window.addEventListener("hashchange",N),window.addEventListener("popstate",N),()=>{window.removeEventListener("hashchange",N),window.removeEventListener("popstate",N)}},[]);const u=an(),d=s.split(",").map(N=>N.trim()).filter(Boolean),{data:f=[],isPending:h}=we({queryKey:["runs",n,d.join("|")],queryFn:()=>ie.runs(void 0,n||void 0,d.length?d:void 0),refetchInterval:3e3}),{data:p=[]}=we({queryKey:["workers"],queryFn:()=>ie.workers(),refetchInterval:5e3}),g=Xe({mutationFn:N=>ie.bulk(N,{status:e!=="all"?e:void 0,tag:n||void 0,attr:d.length?d:void 0}),onSuccess:()=>u.invalidateQueries({queryKey:["runs"]})}),x=f.reduce((N,b)=>(N[b.status]=(N[b.status]??0)+1,N),{}),v=e==="all"?f:f.filter(N=>N.status===e),y=[...new Set(f.filter(N=>cr(N,{runs:f,health:p}).status==="no-worker").map(N=>N.workflow))];return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"app-bg"}),c.jsxs("div",{className:"relative z-10 flex h-full flex-col",children:[c.jsx(Tp,{counts:x,filter:e,onFilter:t}),y.length>0&&c.jsxs("div",{className:"flex items-center gap-2 border-b border-amber-500/30 bg-amber-500/10 px-4 py-1.5 text-[11px] text-amber-200",children:[c.jsx("span",{className:"s-no-worker inline-flex items-center gap-1.5",children:c.jsx("span",{className:"dot s-no-worker","aria-hidden":!0})}),c.jsxs("span",{children:["Runs waiting on handlers with no live worker:"," ",c.jsx("span",{className:"mono text-amber-100",children:y.join(", ")}),". Start a worker to unblock."]})]}),c.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-[minmax(300px,360px)_1fr]",children:[c.jsxs("aside",{className:"flex min-h-0 flex-col border-r border-[var(--line)]",children:[c.jsxs("div",{className:"border-b border-[var(--line)] p-2",children:[c.jsxs("div",{className:"flex items-center gap-1.5 rounded-md border border-[var(--line)] px-2",children:[c.jsx("span",{className:"text-zinc-600",children:"#"}),c.jsx("input",{value:n,onChange:N=>r(N.target.value),placeholder:"filter by tag…",className:"mono w-full bg-transparent py-1.5 text-xs text-zinc-200 placeholder:text-zinc-600 focus:outline-none"}),n&&c.jsx("button",{type:"button",onClick:()=>r(""),className:"text-zinc-600 hover:text-zinc-300",title:"clear tag filter",children:c.jsx(Ue,{width:12,height:12})})]}),c.jsxs("div",{className:"mt-1.5 flex items-center gap-1.5 rounded-md border border-[var(--line)] px-2",children:[c.jsx("span",{className:"text-zinc-600",children:"⛃"}),c.jsx("input",{value:s,onChange:N=>i(N.target.value),placeholder:"attrs e.g. amount:gte:200, tier:eq:pro",title:"Typed search attributes: comma-separated key:op:value (ops eq ne gt gte lt lte)",className:"mono w-full bg-transparent py-1.5 text-xs text-zinc-200 placeholder:text-zinc-600 focus:outline-none"}),s&&c.jsx("button",{type:"button",onClick:()=>i(""),className:"text-zinc-600 hover:text-zinc-300",title:"clear attribute filter",children:c.jsx(Ue,{width:12,height:12})})]})]}),(e!=="all"||n||d.length>0)&&v.length>0&&c.jsxs("div",{className:"flex items-center gap-2 border-b border-[var(--line)] px-3 py-1.5",children:[c.jsxs("span",{className:"mono text-[10px] text-zinc-500",children:[v.length," ",e!=="all"?e:""," ",n&&`#${n}`,d.length>0&&` ⛃${d.length}`]}),c.jsx("button",{type:"button",disabled:g.isPending,onClick:()=>g.mutate("retry"),className:"mono ml-auto rounded border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 text-[10px] text-emerald-300 transition-colors hover:bg-emerald-500/20 disabled:opacity-40",children:"retry all"}),c.jsx("button",{type:"button",disabled:g.isPending,onClick:()=>g.mutate("cancel"),className:"mono rounded border border-rose-500/30 bg-rose-500/10 px-1.5 py-0.5 text-[10px] text-rose-300 transition-colors hover:bg-rose-500/20 disabled:opacity-40",children:"cancel all"})]}),c.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:c.jsx(Vp,{runs:v,allRuns:f,health:p,loading:h,selected:o,onSelect:l,onSelectTag:r})})]}),c.jsx("main",{className:"min-h-0",children:o?c.jsx(Xp,{id:o,onOpenRun:l},o):c.jsx("div",{className:"grid h-full place-items-center text-center",children:c.jsxs("div",{className:"flex flex-col items-center",children:[c.jsx(To,{className:"h-10 w-10 text-zinc-800"}),c.jsx("p",{className:"mt-3 text-sm text-zinc-600",children:"Select a run to see its timeline."})]})})})]})]})]})}const Wp=new ec({defaultOptions:{queries:{refetchInterval:2e3,refetchOnWindowFocus:!1}}});tc(document.getElementById("root")).render(c.jsx($.StrictMode,{children:c.jsx(nc,{client:Wp,children:c.jsx(Yp,{})})}));
|
|
22
|
+
`)),d=u.reduce((f,h)=>f.concat(...h),[]);return[u,d]}return[[],[]]},[e]);return $.useEffect(()=>{const l=(t==null?void 0:t.target)||vs;if(e!==null){const u=h=>{if(s.current=h.ctrlKey||h.metaKey||h.shiftKey,(!s.current||s.current&&!t.actInsideInputWithModifier)&&rr(h))return!1;const g=_s(h.code,a);i.current.add(h[g]),Ns(o,i.current,!1)&&(h.preventDefault(),r(!0))},d=h=>{if((!s.current||s.current&&!t.actInsideInputWithModifier)&&rr(h))return!1;const g=_s(h.code,a);Ns(o,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[g]),h.key==="Meta"&&i.current.clear(),s.current=!1},f=()=>{i.current.clear(),r(!1)};return l==null||l.addEventListener("keydown",u),l==null||l.addEventListener("keyup",d),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{l==null||l.removeEventListener("keydown",u),l==null||l.removeEventListener("keyup",d),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,r]),n}function Ns(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(s=>t.has(s)))}function _s(e,t){return t.includes(e)?"code":"key"}const Ih=()=>{const e=te();return $.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,i],panZoom:o}=e.getState();return o?(await o.setViewport({x:t.x??r,y:t.y??s,zoom:t.zoom??i},{duration:n==null?void 0:n.duration}),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},fitView:t=>{const{nodeLookup:n,minZoom:r,maxZoom:s,panZoom:i,domNode:o}=e.getState();if(!i||!o)return Promise.resolve(!1);const a=er(n,t),{width:l,height:u}=xn(o);return tr({nodes:a,width:l,height:u,minZoom:r,maxZoom:s,panZoom:i},t)},setCenter:async(t,n,r)=>{const{width:s,height:i,maxZoom:o,panZoom:a}=e.getState(),l=typeof(r==null?void 0:r.zoom)<"u"?r.zoom:o,u=s/2-t*l,d=i/2-n*l;return a?(await a.setViewport({x:u,y:d,zoom:l},{duration:r==null?void 0:r.duration}),Promise.resolve(!0)):Promise.resolve(!1)},fitBounds:async(t,n)=>{const{width:r,height:s,minZoom:i,maxZoom:o,panZoom:a}=e.getState(),l=wr(t,r,s,i,o,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(l,{duration:n==null?void 0:n.duration}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={snapToGrid:!0})=>{const{transform:r,snapGrid:s,domNode:i}=e.getState();if(!i)return t;const{x:o,y:a}=i.getBoundingClientRect(),l={x:t.x-o,y:t.y-a};return $t(l,r,n.snapToGrid,s)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:s,y:i}=r.getBoundingClientRect(),o=Pi(t,n);return{x:o.x+s,y:o.y+i}}}),[])};function co(e,t){const n=[],r=new Map,s=[];for(const i of e)if(i.type==="add"){s.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const o=r.get(i.id);o?o.push(i):r.set(i.id,[i])}for(const i of t){const o=r.get(i.id);if(!o){n.push(i);continue}if(o[0].type==="remove")continue;if(o[0].type==="replace"){n.push({...o[0].item});continue}const a={...i};for(const l of o)Ah(l,a);n.push(a)}return s.length&&s.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Ah(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??(t.measured={}),t.measured.width=e.dimensions.width,t.measured.height=e.dimensions.height,e.setAttributes&&(t.width=e.dimensions.width,t.height=e.dimensions.height)),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function Ph(e,t){return co(e,t)}function Th(e,t){return co(e,t)}function De(e,t){return{id:e,type:"select",selected:t}}function We(e,t=new Set,n=!1){const r=[];for(const[s,i]of e){const o=t.has(s);!(i.selected===void 0&&!o)&&i.selected!==o&&(n&&(i.selected=o),r.push(De(i.id,o)))}return r}function ks({items:e=[],lookup:t}){var s;const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,o]of e.entries()){const a=t.get(o.id),l=((s=a==null?void 0:a.internals)==null?void 0:s.userNode)??a;l!==void 0&&l!==o&&n.push({id:o.id,item:o,type:"replace"}),l===void 0&&n.push({item:o,type:"add",index:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function Ss(e){return{id:e.id,type:"remove"}}const js=e=>Ud(e),Dh=e=>Ci(e);function lo(e){return $.forwardRef(e)}const Rh=typeof window<"u"?$.useLayoutEffect:$.useEffect;function Es(e){const[t,n]=$.useState(BigInt(0)),[r]=$.useState(()=>Lh(()=>n(s=>s+BigInt(1))));return Rh(()=>{const s=r.get();s.length&&(e(s),r.reset())},[t]),r}function Lh(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const uo=$.createContext(null);function Hh({children:e}){const t=te(),n=$.useCallback(a=>{const{nodes:l=[],setNodes:u,hasDefaultNodes:d,onNodesChange:f,nodeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?u(p):f&&f(ks({items:p,lookup:h}))},[]),r=Es(n),s=$.useCallback(a=>{const{edges:l=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:f,edgeLookup:h}=t.getState();let p=l;for(const g of a)p=typeof g=="function"?g(p):g;d?u(p):f&&f(ks({items:p,lookup:h}))},[]),i=Es(s),o=$.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return c.jsx(uo.Provider,{value:o,children:e})}function Oh(){const e=$.useContext(uo);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Fh=e=>!!e.panZoom;function Sr(){const e=Ih(),t=te(),n=Oh(),r=Q(Fh),s=$.useMemo(()=>{const i=f=>t.getState().nodeLookup.get(f),o=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},l=f=>{var y,N;const{nodeLookup:h,nodeOrigin:p}=t.getState(),g=js(f)?f:h.get(f.id),x=g.parentId?Di(g.position,g.measured,g.parentId,h,p):g.position,v={...g,position:x,width:((y=g.measured)==null?void 0:y.width)??g.width,height:((N=g.measured)==null?void 0:N.height)??g.height};return tt(v)},u=(f,h,p={replace:!1})=>{o(g=>g.map(x=>{if(x.id===f){const v=typeof h=="function"?h(x):h;return p.replace&&js(v)?v:{...x,...v}}return x}))},d=(f,h,p={replace:!1})=>{a(g=>g.map(x=>{if(x.id===f){const v=typeof h=="function"?h(x):h;return p.replace&&Dh(v)?v:{...x,...v}}return x}))};return{getNodes:()=>t.getState().nodes.map(f=>({...f})),getNode:f=>{var h;return(h=i(f))==null?void 0:h.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:f=[]}=t.getState();return f.map(h=>({...h}))},getEdge:f=>t.getState().edgeLookup.get(f),setNodes:o,setEdges:a,addNodes:f=>{const h=Array.isArray(f)?f:[f];n.nodeQueue.push(p=>[...p,...h])},addEdges:f=>{const h=Array.isArray(f)?f:[f];n.edgeQueue.push(p=>[...p,...h])},toObject:()=>{const{nodes:f=[],edges:h=[],transform:p}=t.getState(),[g,x,v]=p;return{nodes:f.map(y=>({...y})),edges:h.map(y=>({...y})),viewport:{x:g,y:x,zoom:v}}},deleteElements:async({nodes:f=[],edges:h=[]})=>{const{nodes:p,edges:g,onNodesDelete:x,onEdgesDelete:v,triggerNodeChanges:y,triggerEdgeChanges:N,onDelete:b,onBeforeDelete:w}=t.getState(),{nodes:C,edges:L}=await Jd({nodesToRemove:f,edgesToRemove:h,nodes:p,edges:g,onBeforeDelete:w}),E=L.length>0,R=C.length>0;if(E){const D=L.map(Ss);v==null||v(L),N(D)}if(R){const D=C.map(Ss);x==null||x(C),y(D)}return(R||E)&&(b==null||b({nodes:C,edges:L})),{deletedNodes:C,deletedEdges:L}},getIntersectingNodes:(f,h=!0,p)=>{const g=is(f),x=g?f:l(f),v=p!==void 0;return x?(p||t.getState().nodes).filter(y=>{const N=t.getState().nodeLookup.get(y.id);if(N&&!g&&(y.id===f.id||!N.internals.positionAbsolute))return!1;const b=tt(v?y:N),w=Nt(b,x);return h&&w>0||w>=x.width*x.height}):[]},isNodeIntersecting:(f,h,p=!0)=>{const x=is(f)?f:l(f);if(!x)return!1;const v=Nt(x,h);return p&&v>0||v>=x.width*x.height},updateNode:u,updateNodeData:(f,h,p={replace:!1})=>{u(f,g=>{const x=typeof h=="function"?h(g):h;return p.replace?{...g,data:x}:{...g,data:{...g.data,...x}}},p)},updateEdge:d,updateEdgeData:(f,h,p={replace:!1})=>{d(f,g=>{const x=typeof h=="function"?h(g):h;return p.replace?{...g,data:x}:{...g,data:{...g.data,...x}}},p)},getNodesBounds:f=>{const{nodeLookup:h,nodeOrigin:p}=t.getState();return Zd(f,{nodeLookup:h,nodeOrigin:p})},getHandleConnections:({type:f,id:h,nodeId:p})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${p}-${f}-${h??null}`))==null?void 0:g.values())??[])}}},[]);return $.useMemo(()=>({...s,...e,viewportInitialized:r}),[r])}const Cs=e=>e.selected,Bh={actInsideInputWithModifier:!1},Vh=typeof window<"u"?window:void 0;function qh({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=te(),{deleteElements:r}=Sr(),s=kt(e,Bh),i=kt(t,{target:Vh});$.useEffect(()=>{if(s){const{edges:o,nodes:a}=n.getState();r({nodes:a.filter(Cs),edges:o.filter(Cs)}),n.setState({nodesSelectionActive:!1})}},[s]),$.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Xh(e){const t=te();$.useEffect(()=>{const n=()=>{var s,i;if(!e.current)return!1;const r=xn(e.current);(r.height===0||r.width===0)&&((i=(s=t.getState()).onError)==null||i.call(s,"004",Se.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 vn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Yh=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib});function Wh({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:s=.5,panOnScrollMode:i=He.Free,zoomOnDoubleClick:o=!0,panOnDrag:a=!0,defaultViewport:l,translateExtent:u,minZoom:d,maxZoom:f,zoomActivationKeyCode:h,preventScrolling:p=!0,children:g,noWheelClassName:x,noPanClassName:v,onViewportChange:y,isControlledViewport:N,paneClickDistance:b}){const w=te(),C=$.useRef(null),{userSelectionActive:L,lib:E}=Q(Yh,re),R=kt(h),D=$.useRef();Xh(C);const T=$.useCallback(z=>{y==null||y({x:z[0],y:z[1],zoom:z[2]}),N||w.setState({transform:z})},[y,N]);return $.useEffect(()=>{if(C.current){D.current=Pf({domNode:C.current,minZoom:d,maxZoom:f,translateExtent:u,viewport:l,paneClickDistance:b,onDraggingChange:m=>w.setState({paneDragging:m}),onPanZoomStart:(m,k)=>{const{onViewportChangeStart:_,onMoveStart:M}=w.getState();M==null||M(m,k),_==null||_(k)},onPanZoom:(m,k)=>{const{onViewportChange:_,onMove:M}=w.getState();M==null||M(m,k),_==null||_(k)},onPanZoomEnd:(m,k)=>{const{onViewportChangeEnd:_,onMoveEnd:M}=w.getState();M==null||M(m,k),_==null||_(k)}});const{x:z,y:O,zoom:P}=D.current.getViewport();return w.setState({panZoom:D.current,transform:[z,O,P],domNode:C.current.closest(".react-flow")}),()=>{var m;(m=D.current)==null||m.destroy()}}},[]),$.useEffect(()=>{var z;(z=D.current)==null||z.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:s,panOnScrollMode:i,zoomOnDoubleClick:o,panOnDrag:a,zoomActivationKeyPressed:R,preventScrolling:p,noPanClassName:v,userSelectionActive:L,noWheelClassName:x,lib:E,onTransformChange:T})},[e,t,n,r,s,i,o,a,R,p,v,L,x,E,T]),c.jsx("div",{className:"react-flow__renderer",ref:C,style:vn,children:g})}const Kh=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Gh(){const{userSelectionActive:e,userSelectionRect:t}=Q(Kh,re);return e&&t?c.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 On=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},Uh=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging});function Zh({isSelecting:e,selectionKeyPressed:t,selectionMode:n=vt.Full,panOnDrag:r,selectionOnDrag:s,onSelectionStart:i,onSelectionEnd:o,onPaneClick:a,onPaneContextMenu:l,onPaneScroll:u,onPaneMouseEnter:d,onPaneMouseMove:f,onPaneMouseLeave:h,children:p}){const g=$.useRef(null),x=te(),v=$.useRef(0),y=$.useRef(0),N=$.useRef(),b=$.useRef(new Map),{userSelectionActive:w,elementsSelectable:C,dragging:L}=Q(Uh,re),E=C&&(e||w),R=$.useRef(!1),D=$.useRef(!1),T=()=>{x.setState({userSelectionActive:!1,userSelectionRect:null}),v.current=0,y.current=0},z=S=>{if(R.current){R.current=!1;return}a==null||a(S),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},O=S=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){S.preventDefault();return}l==null||l(S)},P=u?S=>u(S):void 0,m=S=>{var V,B,Y,U;const{resetSelectedElements:j,domNode:I,edgeLookup:H}=x.getState();if(N.current=I==null?void 0:I.getBoundingClientRect(),!C||!e||S.button!==0||S.target!==g.current||!N.current)return;(B=(V=S.target)==null?void 0:V.setPointerCapture)==null||B.call(V,S.pointerId),D.current=!0,R.current=!1,b.current=new Map;for(const[A,q]of H)b.current.set(q.source,((Y=b.current.get(q.source))==null?void 0:Y.add(A))||new Set([A])),b.current.set(q.target,((U=b.current.get(q.target))==null?void 0:U.add(A))||new Set([A]));const{x:F,y:X}=ve(S.nativeEvent,N.current);j(),x.setState({userSelectionRect:{width:0,height:0,startX:F,startY:X,x:F,y:X}}),i==null||i(S)},k=S=>{const{userSelectionRect:j,edgeLookup:I,transform:H,nodeLookup:F,triggerNodeChanges:X,triggerEdgeChanges:V}=x.getState();if(!N.current||!j)return;R.current=!0;const{x:B,y:Y}=ve(S.nativeEvent,N.current),{startX:U,startY:A}=j,q={startX:U,startY:A,x:B<U?B:U,y:Y<A?Y:A,width:Math.abs(B-U),height:Math.abs(Y-A)},K=$i(F,q,H,n===vt.Partial,!0),Z=new Set,W=new Set;for(const J of K){W.add(J.id);const ee=b.current.get(J.id);if(ee)for(const oe of ee)Z.add(oe)}if(v.current!==W.size){v.current=W.size;const J=We(F,W,!0);X(J)}if(y.current!==Z.size){y.current=Z.size;const J=We(I,Z);V(J)}x.setState({userSelectionRect:q,userSelectionActive:!0,nodesSelectionActive:!1})},_=S=>{var I,H;if(S.button!==0||!D.current)return;(H=(I=S.target)==null?void 0:I.releasePointerCapture)==null||H.call(I,S.pointerId);const{userSelectionRect:j}=x.getState();!w&&j&&S.target===g.current&&(z==null||z(S)),v.current>0&&x.setState({nodesSelectionActive:!0}),T(),o==null||o(S),(t||s)&&(R.current=!1),D.current=!1},M=r===!0||Array.isArray(r)&&r.includes(0);return c.jsxs("div",{className:se(["react-flow__pane",{draggable:M,dragging:L,selection:e}]),onClick:E?void 0:On(z,g),onContextMenu:On(O,g),onWheel:On(P,g),onPointerEnter:E?void 0:d,onPointerDown:E?m:f,onPointerMove:E?k:f,onPointerUp:E?_:void 0,onPointerLeave:h,ref:g,style:vn,children:[p,c.jsx(Gh,{})]})}function cr({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:s,unselectNodesAndEdges:i,multiSelectionActive:o,nodeLookup:a,onError:l}=t.getState(),u=a.get(e);if(!u){l==null||l("012",Se.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&o)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):s([e])}function fo({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:s,isSelectable:i,nodeClickDistance:o}){const a=te(),[l,u]=$.useState(!1),d=$.useRef();return $.useEffect(()=>{d.current=bf({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{cr({id:f,store:a,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),$.useEffect(()=>{var f,h;if(t)(f=d.current)==null||f.destroy();else if(e.current)return(h=d.current)==null||h.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:s,nodeClickDistance:o}),()=>{var p;(p=d.current)==null||p.destroy()}},[n,r,t,i,e,s]),l}const Qh=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function ho(){const e=te();return $.useCallback(n=>{const{nodeExtent:r,snapToGrid:s,snapGrid:i,nodesDraggable:o,onError:a,updateNodePositions:l,nodeLookup:u,nodeOrigin:d}=e.getState(),f=new Map,h=Qh(o),p=s?i[0]:5,g=s?i[1]:5,x=n.direction.x*p*n.factor,v=n.direction.y*g*n.factor;for(const[,y]of u){if(!h(y))continue;let N={x:y.internals.positionAbsolute.x+x,y:y.internals.positionAbsolute.y+v};s&&(N=mn(N,i));const{position:b,positionAbsolute:w}=Mi({nodeId:y.id,nextPosition:N,nodeLookup:u,nodeExtent:r,nodeOrigin:d,onError:a});y.position=b,y.internals.positionAbsolute=w,f.set(y.id,y)}l(f)},[])}const jr=$.createContext(null),Jh=jr.Provider;jr.Consumer;const po=()=>$.useContext(jr),e0=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),t0=(e,t,n)=>r=>{const{connectionClickStartHandle:s,connectionMode:i,connection:o}=r,{fromHandle:a,toHandle:l,isValid:u}=o,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:i===Je.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,valid:d&&u}};function n0({type:e="source",position:t=G.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:s=!0,isConnectableEnd:i=!0,id:o,onConnect:a,children:l,className:u,onMouseDown:d,onTouchStart:f,...h},p){var m,k;const g=o||null,x=e==="target",v=te(),y=po(),{connectOnClick:N,noPanClassName:b,rfId:w}=Q(e0,re),{connectingFrom:C,connectingTo:L,clickConnecting:E,isPossibleEndHandle:R,connectionInProcess:D,valid:T}=Q(t0(y,g,e),re);y||(k=(m=v.getState()).onError)==null||k.call(m,"010",Se.error010());const z=_=>{const{defaultEdgeOptions:M,onConnect:S,hasDefaultEdges:j}=v.getState(),I={...M,..._};if(j){const{edges:H,setEdges:F}=v.getState();F(af(I,H))}S==null||S(I),a==null||a(I)},O=_=>{if(!y)return;const M=Li(_.nativeEvent);if(s&&(M&&_.button===0||!M)){const S=v.getState();ar.onPointerDown(_.nativeEvent,{autoPanOnConnect:S.autoPanOnConnect,connectionMode:S.connectionMode,connectionRadius:S.connectionRadius,domNode:S.domNode,nodeLookup:S.nodeLookup,lib:S.lib,isTarget:x,handleId:g,nodeId:y,flowId:S.rfId,panBy:S.panBy,cancelConnection:S.cancelConnection,onConnectStart:S.onConnectStart,onConnectEnd:S.onConnectEnd,updateConnection:S.updateConnection,onConnect:z,isValidConnection:n||S.isValidConnection,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,autoPanSpeed:S.autoPanSpeed})}M?d==null||d(_):f==null||f(_)},P=_=>{const{onClickConnectStart:M,onClickConnectEnd:S,connectionClickStartHandle:j,connectionMode:I,isValidConnection:H,lib:F,rfId:X,nodeLookup:V,connection:B}=v.getState();if(!y||!j&&!s)return;if(!j){M==null||M(_.nativeEvent,{nodeId:y,handleId:g,handleType:e}),v.setState({connectionClickStartHandle:{nodeId:y,type:e,id:g}});return}const Y=Ri(_.target),U=n||H,{connection:A,isValid:q}=ar.isValid(_.nativeEvent,{handle:{nodeId:y,id:g,type:e},connectionMode:I,fromNodeId:j.nodeId,fromHandleId:j.id||null,fromType:j.type,isValidConnection:U,flowId:X,doc:Y,lib:F,nodeLookup:V});q&&A&&z(A);const K=structuredClone(B);delete K.inProgress,K.toPosition=K.toHandle?K.toHandle.position:null,S==null||S(_,K),v.setState({connectionClickStartHandle:null})};return c.jsx("div",{"data-handleid":g,"data-nodeid":y,"data-handlepos":t,"data-id":`${w}-${y}-${g}-${e}`,className:se(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",b,u,{source:!x,target:x,connectable:r,connectablestart:s,connectableend:i,clickconnecting:E,connectingfrom:C,connectingto:L,valid:T,connectionindicator:r&&(!D||R)&&(D?i:s)}]),onMouseDown:O,onTouchStart:O,onClick:N?P:void 0,ref:p,...h,children:l})}const Te=$.memo(lo(n0));function r0({data:e,isConnectable:t,sourcePosition:n=G.Bottom}){return c.jsxs(c.Fragment,{children:[e==null?void 0:e.label,c.jsx(Te,{type:"source",position:n,isConnectable:t})]})}function s0({data:e,isConnectable:t,targetPosition:n=G.Top,sourcePosition:r=G.Bottom}){return c.jsxs(c.Fragment,{children:[c.jsx(Te,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,c.jsx(Te,{type:"source",position:r,isConnectable:t})]})}function i0(){return null}function o0({data:e,isConnectable:t,targetPosition:n=G.Top}){return c.jsxs(c.Fragment,{children:[c.jsx(Te,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const on={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},$s={input:r0,default:s0,output:o0,group:i0};function a0(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 c0=e=>{const{width:t,height:n,x:r,y:s}=Ct(e.nodeLookup,{filter:i=>!!i.selected});return{width:he(t)?t:null,height:he(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 l0({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=te(),{width:s,height:i,transformString:o,userSelectionActive:a}=Q(c0,re),l=ho(),u=$.useRef(null);if($.useEffect(()=>{var h;n||(h=u.current)==null||h.focus({preventScroll:!0})},[n]),fo({nodeRef:u}),a||!s||!i)return null;const d=e?h=>{const p=r.getState().nodes.filter(g=>g.selected);e(h,p)}:void 0,f=h=>{Object.prototype.hasOwnProperty.call(on,h.key)&&(h.preventDefault(),l({direction:on[h.key],factor:h.shiftKey?4:1}))};return c.jsx("div",{className:se(["react-flow__nodesselection","react-flow__container",t]),style:{transform:o},children:c.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:s,height:i}})})}const Ms=typeof window<"u"?window:void 0,u0=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function go({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:i,onPaneScroll:o,paneClickDistance:a,deleteKeyCode:l,selectionKeyCode:u,selectionOnDrag:d,selectionMode:f,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:g,panActivationKeyCode:x,zoomActivationKeyCode:v,elementsSelectable:y,zoomOnScroll:N,zoomOnPinch:b,panOnScroll:w,panOnScrollSpeed:C,panOnScrollMode:L,zoomOnDoubleClick:E,panOnDrag:R,defaultViewport:D,translateExtent:T,minZoom:z,maxZoom:O,preventScrolling:P,onSelectionContextMenu:m,noWheelClassName:k,noPanClassName:_,disableKeyboardA11y:M,onViewportChange:S,isControlledViewport:j}){const{nodesSelectionActive:I,userSelectionActive:H}=Q(u0),F=kt(u,{target:Ms}),X=kt(x,{target:Ms}),V=X||R,B=X||w,Y=d&&V!==!0,U=F||H||Y;return qh({deleteKeyCode:l,multiSelectionKeyCode:g}),c.jsx(Wh,{onPaneContextMenu:i,elementsSelectable:y,zoomOnScroll:N,zoomOnPinch:b,panOnScroll:B,panOnScrollSpeed:C,panOnScrollMode:L,zoomOnDoubleClick:E,panOnDrag:!F&&V,defaultViewport:D,translateExtent:T,minZoom:z,maxZoom:O,zoomActivationKeyCode:v,preventScrolling:P,noWheelClassName:k,noPanClassName:_,onViewportChange:S,isControlledViewport:j,paneClickDistance:a,children:c.jsxs(Zh,{onSelectionStart:h,onSelectionEnd:p,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:s,onPaneContextMenu:i,onPaneScroll:o,panOnDrag:V,isSelecting:!!U,selectionMode:f,selectionKeyPressed:F,selectionOnDrag:Y,children:[e,I&&c.jsx(l0,{onSelectionContextMenu:m,noPanClassName:_,disableKeyboardA11y:M})]})})}go.displayName="FlowRenderer";const d0=$.memo(go),f0=e=>t=>e?$i(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 h0(e){return Q($.useCallback(f0(e),[e]),re)}const p0=e=>e.updateNodeInternals;function g0(){const e=Q(p0),[t]=$.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(s=>{const i=s.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:s.target,force:!0})}),e(r)}));return $.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function m0({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const s=te(),i=$.useRef(null),o=$.useRef(null),a=$.useRef(e.sourcePosition),l=$.useRef(e.targetPosition),u=$.useRef(t),d=n&&!!e.internals.handleBounds;return $.useEffect(()=>{i.current&&!e.hidden&&(!d||o.current!==i.current)&&(o.current&&(r==null||r.unobserve(o.current)),r==null||r.observe(i.current),o.current=i.current)},[d,e.hidden]),$.useEffect(()=>()=>{o.current&&(r==null||r.unobserve(o.current),o.current=null)},[]),$.useEffect(()=>{if(i.current){const f=u.current!==t,h=a.current!==e.sourcePosition,p=l.current!==e.targetPosition;(f||h||p)&&(u.current=t,a.current=e.sourcePosition,l.current=e.targetPosition,s.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function x0({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:s,onContextMenu:i,onDoubleClick:o,nodesDraggable:a,elementsSelectable:l,nodesConnectable:u,nodesFocusable:d,resizeObserver:f,noDragClassName:h,noPanClassName:p,disableKeyboardA11y:g,rfId:x,nodeTypes:v,nodeExtent:y,nodeClickDistance:N,onError:b}){const{node:w,internals:C,isParent:L}=Q(A=>{const q=A.nodeLookup.get(e),K=A.parentLookup.has(e);return{node:q,internals:q.internals,isParent:K}},re);let E=w.type||"default",R=(v==null?void 0:v[E])||$s[E];R===void 0&&(b==null||b("003",Se.error003(E)),E="default",R=$s.default);const D=!!(w.draggable||a&&typeof w.draggable>"u"),T=!!(w.selectable||l&&typeof w.selectable>"u"),z=!!(w.connectable||u&&typeof w.connectable>"u"),O=!!(w.focusable||d&&typeof w.focusable>"u"),P=te(),m=Ti(w),k=m0({node:w,nodeType:E,hasDimensions:m,resizeObserver:f}),_=fo({nodeRef:k,disabled:w.hidden||!D,noDragClassName:h,handleSelector:w.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:N}),M=ho();if(w.hidden)return null;const S=je(w),j=a0(w),I=T||D||t||n||r||s,H=n?A=>n(A,{...C.userNode}):void 0,F=r?A=>r(A,{...C.userNode}):void 0,X=s?A=>s(A,{...C.userNode}):void 0,V=i?A=>i(A,{...C.userNode}):void 0,B=o?A=>o(A,{...C.userNode}):void 0,Y=A=>{const{selectNodesOnDrag:q,nodeDragThreshold:K}=P.getState();T&&(!q||!D||K>0)&&cr({id:e,store:P,nodeRef:k}),t&&t(A,{...C.userNode})},U=A=>{if(!(rr(A.nativeEvent)||g))if(Si.includes(A.key)&&T){const q=A.key==="Escape";cr({id:e,store:P,unselect:q,nodeRef:k})}else D&&w.selected&&Object.prototype.hasOwnProperty.call(on,A.key)&&(A.preventDefault(),P.setState({ariaLiveMessage:`Moved selected node ${A.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~C.positionAbsolute.x}, y: ${~~C.positionAbsolute.y}`}),M({direction:on[A.key],factor:A.shiftKey?4:1}))};return c.jsx("div",{className:se(["react-flow__node",`react-flow__node-${E}`,{[p]:D},w.className,{selected:w.selected,selectable:T,parent:L,draggable:D,dragging:_}]),ref:k,style:{zIndex:C.z,transform:`translate(${C.positionAbsolute.x}px,${C.positionAbsolute.y}px)`,pointerEvents:I?"all":"none",visibility:m?"visible":"hidden",...w.style,...j},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:F,onMouseLeave:X,onContextMenu:V,onClick:Y,onDoubleClick:B,onKeyDown:O?U:void 0,tabIndex:O?0:void 0,role:O?"button":void 0,"aria-describedby":g?void 0:`${io}-${x}`,"aria-label":w.ariaLabel,children:c.jsx(Jh,{value:e,children:c.jsx(R,{id:e,data:w.data,type:E,positionAbsoluteX:C.positionAbsolute.x,positionAbsoluteY:C.positionAbsolute.y,selected:w.selected,selectable:T,draggable:D,deletable:w.deletable??!0,isConnectable:z,sourcePosition:w.sourcePosition,targetPosition:w.targetPosition,dragging:_,dragHandle:w.dragHandle,zIndex:C.z,parentId:w.parentId,...S})})})}const y0=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function mo(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:s,onError:i}=Q(y0,re),o=h0(e.onlyRenderVisibleElements),a=g0();return c.jsx("div",{className:"react-flow__nodes",style:vn,children:o.map(l=>c.jsx(x0,{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:i},l))})}mo.displayName="NodeRenderer";const w0=$.memo(mo);function b0(e){return Q($.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 i=n.nodeLookup.get(s.source),o=n.nodeLookup.get(s.target);i&&o&&rf({sourceNode:i,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&r.push(s.id)}return r},[e]),re)}const v0=({color:e="none",strokeWidth:t=1})=>c.jsx("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),N0=({color:e="none",strokeWidth:t=1})=>c.jsx("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),zs={[nn.Arrow]:v0,[nn.ArrowClosed]:N0};function _0(e){const t=te();return $.useMemo(()=>{var s,i;return Object.prototype.hasOwnProperty.call(zs,e)?zs[e]:((i=(s=t.getState()).onError)==null||i.call(s,"009",Se.error009(e)),null)},[e])}const k0=({id:e,type:t,color:n,width:r=12.5,height:s=12.5,markerUnits:i="strokeWidth",strokeWidth:o,orient:a="auto-start-reverse"})=>{const l=_0(t);return l?c.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${s}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:c.jsx(l,{color:n,strokeWidth:o})}):null},xo=({defaultColor:e,rfId:t})=>{const n=Q(i=>i.edges),r=Q(i=>i.defaultEdgeOptions),s=$.useMemo(()=>ff(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?c.jsx("svg",{className:"react-flow__marker",children:c.jsx("defs",{children:s.map(i=>c.jsx(k0,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};xo.displayName="MarkerDefinitions";var S0=$.memo(xo);function yo({x:e,y:t,label:n,labelStyle:r={},labelShowBg:s=!0,labelBgStyle:i={},labelBgPadding:o=[2,4],labelBgBorderRadius:a=2,children:l,className:u,...d}){const[f,h]=$.useState({x:1,y:0,width:0,height:0}),p=se(["react-flow__edge-textwrapper",u]),g=$.useRef(null);return $.useEffect(()=>{if(g.current){const x=g.current.getBBox();h({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),typeof n>"u"||!n?null:c.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:p,visibility:f.width?"visible":"hidden",...d,children:[s&&c.jsx("rect",{width:f.width+2*o[0],x:-o[0],y:-o[1],height:f.height+2*o[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),c.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:g,style:r,children:n}),l]})}yo.displayName="EdgeText";const j0=$.memo(yo);function Nn({path:e,labelX:t,labelY:n,label:r,labelStyle:s,labelShowBg:i,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l,interactionWidth:u=20,...d}){return c.jsxs(c.Fragment,{children:[c.jsx("path",{...d,d:e,fill:"none",className:se(["react-flow__edge-path",d.className])}),u&&c.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}),r&&he(t)&&he(n)?c.jsx(j0,{x:t,y:n,label:r,labelStyle:s,labelShowBg:i,labelBgStyle:o,labelBgPadding:a,labelBgBorderRadius:l}):null]})}function Is({pos:e,x1:t,y1:n,x2:r,y2:s}){return e===G.Left||e===G.Right?[.5*(t+r),n]:[t,.5*(n+s)]}function wo({sourceX:e,sourceY:t,sourcePosition:n=G.Bottom,targetX:r,targetY:s,targetPosition:i=G.Top}){const[o,a]=Is({pos:n,x1:e,y1:t,x2:r,y2:s}),[l,u]=Is({pos:i,x1:r,y1:s,x2:e,y2:t}),[d,f,h,p]=Hi({sourceX:e,sourceY:t,targetX:r,targetY:s,sourceControlX:o,sourceControlY:a,targetControlX:l,targetControlY:u});return[`M${e},${t} C${o},${a} ${l},${u} ${r},${s}`,d,f,h,p]}function bo(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,sourcePosition:o=G.Bottom,targetPosition:a=G.Top,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:y})=>{const[N,b,w]=wo({sourceX:n,sourceY:r,sourcePosition:o,targetX:s,targetY:i,targetPosition:a}),C=e.isInternal?void 0:t;return c.jsx(Nn,{id:C,path:N,labelX:b,labelY:w,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:y})})}const E0=bo({isInternal:!1}),vo=bo({isInternal:!0});E0.displayName="SimpleBezierEdge";vo.displayName="SimpleBezierEdgeInternal";function No(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,sourcePosition:p=G.Bottom,targetPosition:g=G.Top,markerEnd:x,markerStart:v,pathOptions:y,interactionWidth:N})=>{const[b,w,C]=sr({sourceX:n,sourceY:r,sourcePosition:p,targetX:s,targetY:i,targetPosition:g,borderRadius:y==null?void 0:y.borderRadius,offset:y==null?void 0:y.offset}),L=e.isInternal?void 0:t;return c.jsx(Nn,{id:L,path:b,labelX:w,labelY:C,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:x,markerStart:v,interactionWidth:N})})}const _o=No({isInternal:!1}),ko=No({isInternal:!0});_o.displayName="SmoothStepEdge";ko.displayName="SmoothStepEdgeInternal";function So(e){return $.memo(({id:t,...n})=>{var s;const r=e.isInternal?void 0:t;return c.jsx(_o,{...n,id:r,pathOptions:$.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(s=n.pathOptions)==null?void 0:s.offset])})})}const C0=So({isInternal:!1}),jo=So({isInternal:!0});C0.displayName="StepEdge";jo.displayName="StepEdgeInternal";function Eo(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,interactionWidth:x})=>{const[v,y,N]=Bi({sourceX:n,sourceY:r,targetX:s,targetY:i}),b=e.isInternal?void 0:t;return c.jsx(Nn,{id:b,path:v,labelX:y,labelY:N,label:o,labelStyle:a,labelShowBg:l,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:f,style:h,markerEnd:p,markerStart:g,interactionWidth:x})})}const $0=Eo({isInternal:!1}),Co=Eo({isInternal:!0});$0.displayName="StraightEdge";Co.displayName="StraightEdgeInternal";function $o(e){return $.memo(({id:t,sourceX:n,sourceY:r,targetX:s,targetY:i,sourcePosition:o=G.Bottom,targetPosition:a=G.Top,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,pathOptions:y,interactionWidth:N})=>{const[b,w,C]=Oi({sourceX:n,sourceY:r,sourcePosition:o,targetX:s,targetY:i,targetPosition:a,curvature:y==null?void 0:y.curvature}),L=e.isInternal?void 0:t;return c.jsx(Nn,{id:L,path:b,labelX:w,labelY:C,label:l,labelStyle:u,labelShowBg:d,labelBgStyle:f,labelBgPadding:h,labelBgBorderRadius:p,style:g,markerEnd:x,markerStart:v,interactionWidth:N})})}const M0=$o({isInternal:!1}),Mo=$o({isInternal:!0});M0.displayName="BezierEdge";Mo.displayName="BezierEdgeInternal";const As={default:Mo,straight:Co,step:jo,smoothstep:ko,simplebezier:vo},Ps={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},z0=(e,t,n)=>n===G.Left?e-t:n===G.Right?e+t:e,I0=(e,t,n)=>n===G.Top?e-t:n===G.Bottom?e+t:e,Ts="react-flow__edgeupdater";function Ds({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:s,onMouseEnter:i,onMouseOut:o,type:a}){return c.jsx("circle",{onMouseDown:s,onMouseEnter:i,onMouseOut:o,className:se([Ts,`${Ts}-${a}`]),cx:z0(t,r,e),cy:I0(n,r,e),r,stroke:"transparent",fill:"transparent"})}function A0({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:s,targetX:i,targetY:o,sourcePosition:a,targetPosition:l,onReconnect:u,onReconnectStart:d,onReconnectEnd:f,setReconnecting:h,setUpdateHover:p}){const g=te(),x=(w,C)=>{if(w.button!==0)return;const{autoPanOnConnect:L,domNode:E,isValidConnection:R,connectionMode:D,connectionRadius:T,lib:z,onConnectStart:O,onConnectEnd:P,cancelConnection:m,nodeLookup:k,rfId:_,panBy:M,updateConnection:S}=g.getState(),j=C.type==="target";h(!0),d==null||d(w,n,C.type);const I=(F,X)=>{h(!1),f==null||f(F,n,C.type,X)},H=F=>u==null?void 0:u(n,F);ar.onPointerDown(w.nativeEvent,{autoPanOnConnect:L,connectionMode:D,connectionRadius:T,domNode:E,handleId:C.id,nodeId:C.nodeId,nodeLookup:k,isTarget:j,edgeUpdaterType:C.type,lib:z,flowId:_,cancelConnection:m,panBy:M,isValidConnection:R,onConnect:H,onConnectStart:O,onConnectEnd:P,onReconnectEnd:I,updateConnection:S,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle})},v=w=>x(w,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),y=w=>x(w,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),N=()=>p(!0),b=()=>p(!1);return c.jsxs(c.Fragment,{children:[(e===!0||e==="source")&&c.jsx(Ds,{position:a,centerX:r,centerY:s,radius:t,onMouseDown:v,onMouseEnter:N,onMouseOut:b,type:"source"}),(e===!0||e==="target")&&c.jsx(Ds,{position:l,centerX:i,centerY:o,radius:t,onMouseDown:y,onMouseEnter:N,onMouseOut:b,type:"target"})]})}function P0({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:s,onDoubleClick:i,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,rfId:g,edgeTypes:x,noPanClassName:v,onError:y,disableKeyboardA11y:N}){let b=Q(W=>W.edgeLookup.get(e));const w=Q(W=>W.defaultEdgeOptions);b=w?{...w,...b}:b;let C=b.type||"default",L=(x==null?void 0:x[C])||As[C];L===void 0&&(y==null||y("011",Se.error011(C)),C="default",L=As.default);const E=!!(b.focusable||t&&typeof b.focusable>"u"),R=typeof f<"u"&&(b.reconnectable||n&&typeof b.reconnectable>"u"),D=!!(b.selectable||r&&typeof b.selectable>"u"),T=$.useRef(null),[z,O]=$.useState(!1),[P,m]=$.useState(!1),k=te(),{zIndex:_,sourceX:M,sourceY:S,targetX:j,targetY:I,sourcePosition:H,targetPosition:F}=Q($.useCallback(W=>{const J=W.nodeLookup.get(b.source),ee=W.nodeLookup.get(b.target);if(!J||!ee)return{zIndex:b.zIndex,...Ps};const oe=df({id:e,sourceNode:J,targetNode:ee,sourceHandle:b.sourceHandle||null,targetHandle:b.targetHandle||null,connectionMode:W.connectionMode,onError:y});return{zIndex:nf({selected:b.selected,zIndex:b.zIndex,sourceNode:J,targetNode:ee,elevateOnSelect:W.elevateEdgesOnSelect}),...oe||Ps}},[b.source,b.target,b.sourceHandle,b.targetHandle,b.selected,b.zIndex]),re),X=$.useMemo(()=>b.markerStart?`url('#${ir(b.markerStart,g)}')`:void 0,[b.markerStart,g]),V=$.useMemo(()=>b.markerEnd?`url('#${ir(b.markerEnd,g)}')`:void 0,[b.markerEnd,g]);if(b.hidden||M===null||S===null||j===null||I===null)return null;const B=W=>{var Ee;const{addSelectedEdges:J,unselectNodesAndEdges:ee,multiSelectionActive:oe}=k.getState();D&&(k.setState({nodesSelectionActive:!1}),b.selected&&oe?(ee({nodes:[],edges:[b]}),(Ee=T.current)==null||Ee.blur()):J([e])),s&&s(W,b)},Y=i?W=>{i(W,{...b})}:void 0,U=o?W=>{o(W,{...b})}:void 0,A=a?W=>{a(W,{...b})}:void 0,q=l?W=>{l(W,{...b})}:void 0,K=u?W=>{u(W,{...b})}:void 0,Z=W=>{var J;if(!N&&Si.includes(W.key)&&D){const{unselectNodesAndEdges:ee,addSelectedEdges:oe}=k.getState();W.key==="Escape"?((J=T.current)==null||J.blur(),ee({edges:[b]})):oe([e])}};return c.jsx("svg",{style:{zIndex:_},children:c.jsxs("g",{className:se(["react-flow__edge",`react-flow__edge-${C}`,b.className,v,{selected:b.selected,animated:b.animated,inactive:!D&&!s,updating:z,selectable:D}]),onClick:B,onDoubleClick:Y,onContextMenu:U,onMouseEnter:A,onMouseMove:q,onMouseLeave:K,onKeyDown:E?Z:void 0,tabIndex:E?0:void 0,role:E?"button":"img","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":b.ariaLabel===null?void 0:b.ariaLabel||`Edge from ${b.source} to ${b.target}`,"aria-describedby":E?`${oo}-${g}`:void 0,ref:T,children:[!P&&c.jsx(L,{id:e,source:b.source,target:b.target,type:b.type,selected:b.selected,animated:b.animated,selectable:D,deletable:b.deletable??!0,label:b.label,labelStyle:b.labelStyle,labelShowBg:b.labelShowBg,labelBgStyle:b.labelBgStyle,labelBgPadding:b.labelBgPadding,labelBgBorderRadius:b.labelBgBorderRadius,sourceX:M,sourceY:S,targetX:j,targetY:I,sourcePosition:H,targetPosition:F,data:b.data,style:b.style,sourceHandleId:b.sourceHandle,targetHandleId:b.targetHandle,markerStart:X,markerEnd:V,pathOptions:"pathOptions"in b?b.pathOptions:void 0,interactionWidth:b.interactionWidth}),R&&c.jsx(A0,{edge:b,isReconnectable:R,reconnectRadius:d,onReconnect:f,onReconnectStart:h,onReconnectEnd:p,sourceX:M,sourceY:S,targetX:j,targetY:I,sourcePosition:H,targetPosition:F,setUpdateHover:O,setReconnecting:m})]})})}const T0=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function zo({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:s,onReconnect:i,onEdgeContextMenu:o,onEdgeMouseEnter:a,onEdgeMouseMove:l,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:f,onEdgeDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,disableKeyboardA11y:x}){const{edgesFocusable:v,edgesReconnectable:y,elementsSelectable:N,onError:b}=Q(T0,re),w=b0(t);return c.jsxs("div",{className:"react-flow__edges",children:[c.jsx(S0,{defaultColor:e,rfId:n}),w.map(C=>c.jsx(P0,{id:C,edgesFocusable:v,edgesReconnectable:y,elementsSelectable:N,noPanClassName:s,onReconnect:i,onContextMenu:o,onMouseEnter:a,onMouseMove:l,onMouseLeave:u,onClick:d,reconnectRadius:f,onDoubleClick:h,onReconnectStart:p,onReconnectEnd:g,rfId:n,onError:b,edgeTypes:r,disableKeyboardA11y:x},C))]})}zo.displayName="EdgeRenderer";const D0=$.memo(zo),R0=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function L0({children:e}){const t=Q(R0);return c.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function H0(e){const t=Sr(),n=$.useRef(!1);$.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const O0=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function F0(e){const t=Q(O0),n=te();return $.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function B0(e){return e.connection.inProgress?{...e.connection,to:$t(e.connection.to,e.transform)}:{...e.connection}}function V0(e){return B0}function q0(e){const t=V0();return Q(t,re)}const X0=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Y0({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:s,width:i,height:o,isValid:a,inProgress:l}=Q(X0,re);return!(i&&s&&l)?null:c.jsx("svg",{style:e,width:i,height:o,className:"react-flow__connectionline react-flow__container",children:c.jsx("g",{className:se(["react-flow__connection",Ei(a)]),children:c.jsx(Io,{style:t,type:n,CustomComponent:r,isValid:a})})})}const Io=({style:e,type:t=Ie.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:s,from:i,fromNode:o,fromHandle:a,fromPosition:l,to:u,toNode:d,toHandle:f,toPosition:h}=q0();if(!s)return;if(n)return c.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:o,fromHandle:a,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:l,toPosition:h,connectionStatus:Ei(r),toNode:d,toHandle:f});let p="";const g={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:u.x,targetY:u.y,targetPosition:h};switch(t){case Ie.Bezier:[p]=Oi(g);break;case Ie.SimpleBezier:[p]=wo(g);break;case Ie.Step:[p]=sr({...g,borderRadius:0});break;case Ie.SmoothStep:[p]=sr(g);break;default:[p]=Bi(g)}return c.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};Io.displayName="ConnectionLine";const W0={};function Rs(e=W0){$.useRef(e),te(),$.useEffect(()=>{},[e])}function K0(){te(),$.useRef(!1),$.useEffect(()=>{},[])}function Ao({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:s,onNodeDoubleClick:i,onEdgeDoubleClick:o,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:f,onSelectionStart:h,onSelectionEnd:p,connectionLineType:g,connectionLineStyle:x,connectionLineComponent:v,connectionLineContainerStyle:y,selectionKeyCode:N,selectionOnDrag:b,selectionMode:w,multiSelectionKeyCode:C,panActivationKeyCode:L,zoomActivationKeyCode:E,deleteKeyCode:R,onlyRenderVisibleElements:D,elementsSelectable:T,defaultViewport:z,translateExtent:O,minZoom:P,maxZoom:m,preventScrolling:k,defaultMarkerColor:_,zoomOnScroll:M,zoomOnPinch:S,panOnScroll:j,panOnScrollSpeed:I,panOnScrollMode:H,zoomOnDoubleClick:F,panOnDrag:X,onPaneClick:V,onPaneMouseEnter:B,onPaneMouseMove:Y,onPaneMouseLeave:U,onPaneScroll:A,onPaneContextMenu:q,paneClickDistance:K,nodeClickDistance:Z,onEdgeContextMenu:W,onEdgeMouseEnter:J,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:Ee,onReconnect:_n,onReconnectStart:kn,onReconnectEnd:Sn,noDragClassName:st,noWheelClassName:jn,noPanClassName:it,disableKeyboardA11y:ot,nodeExtent:En,rfId:at,viewport:ct,onViewportChange:Mt}){return Rs(e),Rs(t),K0(),H0(n),F0(ct),c.jsx(d0,{onPaneClick:V,onPaneMouseEnter:B,onPaneMouseMove:Y,onPaneMouseLeave:U,onPaneContextMenu:q,onPaneScroll:A,paneClickDistance:K,deleteKeyCode:R,selectionKeyCode:N,selectionOnDrag:b,selectionMode:w,onSelectionStart:h,onSelectionEnd:p,multiSelectionKeyCode:C,panActivationKeyCode:L,zoomActivationKeyCode:E,elementsSelectable:T,zoomOnScroll:M,zoomOnPinch:S,zoomOnDoubleClick:F,panOnScroll:j,panOnScrollSpeed:I,panOnScrollMode:H,panOnDrag:X,defaultViewport:z,translateExtent:O,minZoom:P,maxZoom:m,onSelectionContextMenu:f,preventScrolling:k,noDragClassName:st,noWheelClassName:jn,noPanClassName:it,disableKeyboardA11y:ot,onViewportChange:Mt,isControlledViewport:!!ct,children:c.jsxs(L0,{children:[c.jsx(D0,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:o,onReconnect:_n,onReconnectStart:kn,onReconnectEnd:Sn,onlyRenderVisibleElements:D,onEdgeContextMenu:W,onEdgeMouseEnter:J,onEdgeMouseMove:ee,onEdgeMouseLeave:oe,reconnectRadius:Ee,defaultMarkerColor:_,noPanClassName:it,disableKeyboardA11y:ot,rfId:at}),c.jsx(Y0,{style:x,type:g,component:v,containerStyle:y}),c.jsx("div",{className:"react-flow__edgelabel-renderer"}),c.jsx(w0,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:l,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:Z,onlyRenderVisibleElements:D,noPanClassName:it,noDragClassName:st,disableKeyboardA11y:ot,nodeExtent:En,rfId:at}),c.jsx("div",{className:"react-flow__viewport-portal"})]})})}Ao.displayName="GraphView";const G0=$.memo(Ao),Ls=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l}={})=>{const u=new Map,d=new Map,f=new Map,h=new Map,p=r??t??[],g=n??e??[],x=a??[0,0],v=l??bt;qi(f,h,p),or(g,u,d,{nodeOrigin:x,nodeExtent:v,elevateNodesOnSelect:!1});let y=[0,0,1];if(o&&s&&i){const N=Ct(u,{filter:L=>!!((L.width||L.initialWidth)&&(L.height||L.initialHeight))}),{x:b,y:w,zoom:C}=wr(N,s,i,.5,2,.1);y=[b,w,C]}return{rfId:"1",width:0,height:0,transform:y,nodes:g,nodeLookup:u,parentLookup:d,edges:p,edgeLookup:h,connectionLookup:f,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:.5,maxZoom:2,translateExtent:bt,nodeExtent:v,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Je.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:x,nodeDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,fitViewOnInit:!1,fitViewDone:!1,fitViewOnInitOptions:void 0,selectNodesOnDrag:!0,multiSelectionActive:!1,connection:{...ji},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanSpeed:15,connectionRadius:20,onError:ef,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1}},U0=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l})=>hh((u,d)=>({...Ls({nodes:e,edges:t,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l,defaultNodes:n,defaultEdges:r}),setNodes:f=>{const{nodeLookup:h,parentLookup:p,nodeOrigin:g,elevateNodesOnSelect:x}=d();or(f,h,p,{nodeOrigin:g,nodeExtent:l,elevateNodesOnSelect:x,checkEquality:!0}),u({nodes:f})},setEdges:f=>{const{connectionLookup:h,edgeLookup:p}=d();qi(h,p,f),u({edges:f})},setDefaultNodesAndEdges:(f,h)=>{if(f){const{setNodes:p}=d();p(f),u({hasDefaultNodes:!0})}if(h){const{setEdges:p}=d();p(h),u({hasDefaultEdges:!0})}},updateNodeInternals:(f,h={triggerFitView:!0})=>{const{triggerNodeChanges:p,nodeLookup:g,parentLookup:x,fitViewOnInit:v,fitViewDone:y,fitViewOnInitOptions:N,domNode:b,nodeOrigin:w,nodeExtent:C,debug:L,fitViewSync:E}=d(),{changes:R,updatedInternals:D}=xf(f,g,x,b,w,C);if(D){if(pf(g,x,{nodeOrigin:w,nodeExtent:C}),h.triggerFitView){let T=y;!y&&v&&(T=E({...N,nodes:N==null?void 0:N.nodes})),u({fitViewDone:T})}else u({});(R==null?void 0:R.length)>0&&(L&&console.log("React Flow: trigger node changes",R),p==null||p(R))}},updateNodePositions:(f,h=!1)=>{const p=[],g=[];for(const[x,v]of f){const y=!!(v!=null&&v.expandParent&&(v!=null&&v.parentId)&&(v!=null&&v.position)),N={id:x,type:"position",position:y?{x:Math.max(0,v.position.x),y:Math.max(0,v.position.y)}:v.position,dragging:h};y&&p.push({id:x,parentId:v.parentId,rect:{...v.internals.positionAbsolute,width:v.measured.width,height:v.measured.height}}),g.push(N)}if(p.length>0){const{nodeLookup:x,parentLookup:v,nodeOrigin:y}=d(),N=_r(p,x,v,y);g.push(...N)}d().triggerNodeChanges(g)},triggerNodeChanges:f=>{const{onNodesChange:h,setNodes:p,nodes:g,hasDefaultNodes:x,debug:v}=d();if(f!=null&&f.length){if(x){const y=Ph(f,g);p(y)}v&&console.log("React Flow: trigger node changes",f),h==null||h(f)}},triggerEdgeChanges:f=>{const{onEdgesChange:h,setEdges:p,edges:g,hasDefaultEdges:x,debug:v}=d();if(f!=null&&f.length){if(x){const y=Th(f,g);p(y)}v&&console.log("React Flow: trigger edge changes",f),h==null||h(f)}},addSelectedNodes:f=>{const{multiSelectionActive:h,edgeLookup:p,nodeLookup:g,triggerNodeChanges:x,triggerEdgeChanges:v}=d();if(h){const y=f.map(N=>De(N,!0));x(y);return}x(We(g,new Set([...f]),!0)),v(We(p))},addSelectedEdges:f=>{const{multiSelectionActive:h,edgeLookup:p,nodeLookup:g,triggerNodeChanges:x,triggerEdgeChanges:v}=d();if(h){const y=f.map(N=>De(N,!0));v(y);return}v(We(p,new Set([...f]))),x(We(g,new Set,!0))},unselectNodesAndEdges:({nodes:f,edges:h}={})=>{const{edges:p,nodes:g,nodeLookup:x,triggerNodeChanges:v,triggerEdgeChanges:y}=d(),N=f||g,b=h||p,w=N.map(L=>{const E=x.get(L.id);return E&&(E.selected=!1),De(L.id,!1)}),C=b.map(L=>De(L.id,!1));v(w),y(C)},setMinZoom:f=>{const{panZoom:h,maxZoom:p}=d();h==null||h.setScaleExtent([f,p]),u({minZoom:f})},setMaxZoom:f=>{const{panZoom:h,minZoom:p}=d();h==null||h.setScaleExtent([p,f]),u({maxZoom:f})},setTranslateExtent:f=>{var h;(h=d().panZoom)==null||h.setTranslateExtent(f),u({translateExtent:f})},setPaneClickDistance:f=>{var h;(h=d().panZoom)==null||h.setClickDistance(f)},resetSelectedElements:()=>{const{edges:f,nodes:h,triggerNodeChanges:p,triggerEdgeChanges:g}=d(),x=h.reduce((y,N)=>N.selected?[...y,De(N.id,!1)]:y,[]),v=f.reduce((y,N)=>N.selected?[...y,De(N.id,!1)]:y,[]);p(x),g(v)},setNodeExtent:f=>{const{nodes:h,nodeLookup:p,parentLookup:g,nodeOrigin:x,elevateNodesOnSelect:v,nodeExtent:y}=d();f[0][0]===y[0][0]&&f[0][1]===y[0][1]&&f[1][0]===y[1][0]&&f[1][1]===y[1][1]||(or(h,p,g,{nodeOrigin:x,nodeExtent:f,elevateNodesOnSelect:v,checkEquality:!1}),u({nodeExtent:f}))},panBy:f=>{const{transform:h,width:p,height:g,panZoom:x,translateExtent:v}=d();return yf({delta:f,panZoom:x,transform:h,translateExtent:v,width:p,height:g})},fitView:f=>{const{panZoom:h,width:p,height:g,minZoom:x,maxZoom:v,nodeLookup:y}=d();if(!h)return Promise.resolve(!1);const N=er(y,f);return tr({nodes:N,width:p,height:g,panZoom:h,minZoom:x,maxZoom:v},f)},fitViewSync:f=>{const{panZoom:h,width:p,height:g,minZoom:x,maxZoom:v,nodeLookup:y}=d();if(!h)return!1;const N=er(y,f);return tr({nodes:N,width:p,height:g,panZoom:h,minZoom:x,maxZoom:v},f),N.size>0},cancelConnection:()=>{u({connection:{...ji}})},updateConnection:f=>{u({connection:f})},reset:()=>u({...Ls()})}),Object.is);function Z0({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:s,initialHeight:i,fitView:o,nodeOrigin:a,nodeExtent:l,children:u}){const[d]=$.useState(()=>U0({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:s,height:i,fitView:o,nodeOrigin:a,nodeExtent:l}));return c.jsx(ph,{value:d,children:c.jsx(Hh,{children:u})})}function Q0({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:s,width:i,height:o,fitView:a,nodeOrigin:l,nodeExtent:u}){return $.useContext(bn)?c.jsx(c.Fragment,{children:e}):c.jsx(Z0,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:s,initialWidth:i,initialHeight:o,fitView:a,nodeOrigin:l,nodeExtent:u,children:e})}const J0={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function ep({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:s,nodeTypes:i,edgeTypes:o,onNodeClick:a,onEdgeClick:l,onInit:u,onMove:d,onMoveStart:f,onMoveEnd:h,onConnect:p,onConnectStart:g,onConnectEnd:x,onClickConnectStart:v,onClickConnectEnd:y,onNodeMouseEnter:N,onNodeMouseMove:b,onNodeMouseLeave:w,onNodeContextMenu:C,onNodeDoubleClick:L,onNodeDragStart:E,onNodeDrag:R,onNodeDragStop:D,onNodesDelete:T,onEdgesDelete:z,onDelete:O,onSelectionChange:P,onSelectionDragStart:m,onSelectionDrag:k,onSelectionDragStop:_,onSelectionContextMenu:M,onSelectionStart:S,onSelectionEnd:j,onBeforeDelete:I,connectionMode:H,connectionLineType:F=Ie.Bezier,connectionLineStyle:X,connectionLineComponent:V,connectionLineContainerStyle:B,deleteKeyCode:Y="Backspace",selectionKeyCode:U="Shift",selectionOnDrag:A=!1,selectionMode:q=vt.Full,panActivationKeyCode:K="Space",multiSelectionKeyCode:Z=sn()?"Meta":"Control",zoomActivationKeyCode:W=sn()?"Meta":"Control",snapToGrid:J,snapGrid:ee,onlyRenderVisibleElements:oe=!1,selectNodesOnDrag:Ee,nodesDraggable:_n,nodesConnectable:kn,nodesFocusable:Sn,nodeOrigin:st=ao,edgesFocusable:jn,edgesReconnectable:it,elementsSelectable:ot=!0,defaultViewport:En=Eh,minZoom:at=.5,maxZoom:ct=2,translateExtent:Mt=bt,preventScrolling:Oo=!0,nodeExtent:Cn,defaultMarkerColor:Fo="#b1b1b7",zoomOnScroll:Bo=!0,zoomOnPinch:Vo=!0,panOnScroll:qo=!1,panOnScrollSpeed:Xo=.5,panOnScrollMode:Yo=He.Free,zoomOnDoubleClick:Wo=!0,panOnDrag:Ko=!0,onPaneClick:Go,onPaneMouseEnter:Uo,onPaneMouseMove:Zo,onPaneMouseLeave:Qo,onPaneScroll:Jo,onPaneContextMenu:ea,paneClickDistance:Cr=0,nodeClickDistance:ta=0,children:na,onReconnect:ra,onReconnectStart:sa,onReconnectEnd:ia,onEdgeContextMenu:oa,onEdgeDoubleClick:aa,onEdgeMouseEnter:ca,onEdgeMouseMove:la,onEdgeMouseLeave:ua,reconnectRadius:da=10,onNodesChange:fa,onEdgesChange:ha,noDragClassName:pa="nodrag",noWheelClassName:ga="nowheel",noPanClassName:$r="nopan",fitView:Mr,fitViewOptions:ma,connectOnClick:xa,attributionPosition:ya,proOptions:wa,defaultEdgeOptions:ba,elevateNodesOnSelect:va,elevateEdgesOnSelect:Na,disableKeyboardA11y:zr=!1,autoPanOnConnect:_a,autoPanOnNodeDrag:ka,autoPanSpeed:Sa,connectionRadius:ja,isValidConnection:Ea,onError:Ca,style:$a,id:Ir,nodeDragThreshold:Ma,viewport:za,onViewportChange:Ia,width:Aa,height:Pa,colorMode:Ta="light",debug:Da,...Ra},La){const $n=Ir||"1",Ha=zh(Ta);return c.jsx("div",{"data-testid":"rf__wrapper",...Ra,style:{...$a,...J0},ref:La,className:se(["react-flow",s,Ha]),id:Ir,children:c.jsxs(Q0,{nodes:e,edges:t,width:Aa,height:Pa,fitView:Mr,nodeOrigin:st,nodeExtent:Cn,children:[c.jsx(G0,{onInit:u,onNodeClick:a,onEdgeClick:l,onNodeMouseEnter:N,onNodeMouseMove:b,onNodeMouseLeave:w,onNodeContextMenu:C,onNodeDoubleClick:L,nodeTypes:i,edgeTypes:o,connectionLineType:F,connectionLineStyle:X,connectionLineComponent:V,connectionLineContainerStyle:B,selectionKeyCode:U,selectionOnDrag:A,selectionMode:q,deleteKeyCode:Y,multiSelectionKeyCode:Z,panActivationKeyCode:K,zoomActivationKeyCode:W,onlyRenderVisibleElements:oe,defaultViewport:En,translateExtent:Mt,minZoom:at,maxZoom:ct,preventScrolling:Oo,zoomOnScroll:Bo,zoomOnPinch:Vo,zoomOnDoubleClick:Wo,panOnScroll:qo,panOnScrollSpeed:Xo,panOnScrollMode:Yo,panOnDrag:Ko,onPaneClick:Go,onPaneMouseEnter:Uo,onPaneMouseMove:Zo,onPaneMouseLeave:Qo,onPaneScroll:Jo,onPaneContextMenu:ea,paneClickDistance:Cr,nodeClickDistance:ta,onSelectionContextMenu:M,onSelectionStart:S,onSelectionEnd:j,onReconnect:ra,onReconnectStart:sa,onReconnectEnd:ia,onEdgeContextMenu:oa,onEdgeDoubleClick:aa,onEdgeMouseEnter:ca,onEdgeMouseMove:la,onEdgeMouseLeave:ua,reconnectRadius:da,defaultMarkerColor:Fo,noDragClassName:pa,noWheelClassName:ga,noPanClassName:$r,rfId:$n,disableKeyboardA11y:zr,nodeExtent:Cn,viewport:za,onViewportChange:Ia}),c.jsx(Mh,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:p,onConnectStart:g,onConnectEnd:x,onClickConnectStart:v,onClickConnectEnd:y,nodesDraggable:_n,nodesConnectable:kn,nodesFocusable:Sn,edgesFocusable:jn,edgesReconnectable:it,elementsSelectable:ot,elevateNodesOnSelect:va,elevateEdgesOnSelect:Na,minZoom:at,maxZoom:ct,nodeExtent:Cn,onNodesChange:fa,onEdgesChange:ha,snapToGrid:J,snapGrid:ee,connectionMode:H,translateExtent:Mt,connectOnClick:xa,defaultEdgeOptions:ba,fitView:Mr,fitViewOptions:ma,onNodesDelete:T,onEdgesDelete:z,onDelete:O,onNodeDragStart:E,onNodeDrag:R,onNodeDragStop:D,onSelectionDrag:k,onSelectionDragStart:m,onSelectionDragStop:_,onMove:d,onMoveStart:f,onMoveEnd:h,noPanClassName:$r,nodeOrigin:st,rfId:$n,autoPanOnConnect:_a,autoPanOnNodeDrag:ka,autoPanSpeed:Sa,onError:Ca,connectionRadius:ja,isValidConnection:Ea,selectNodesOnDrag:Ee,nodeDragThreshold:Ma,onBeforeDelete:I,paneClickDistance:Cr,debug:Da}),c.jsx(jh,{onSelectionChange:P}),na,c.jsx(vh,{proOptions:wa,position:ya}),c.jsx(wh,{rfId:$n,disableKeyboardA11y:zr})]})})}var tp=lo(ep);function np({dimensions:e,lineWidth:t,variant:n,className:r}){return c.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:se(["react-flow__background-pattern",n,r])})}function rp({radius:e,className:t}){return c.jsx("circle",{cx:e,cy:e,r:e,className:se(["react-flow__background-pattern","dots",t])})}var Ne;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Ne||(Ne={}));const sp={[Ne.Dots]:1,[Ne.Lines]:1,[Ne.Cross]:6},ip=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Po({id:e,variant:t=Ne.Dots,gap:n=20,size:r,lineWidth:s=1,offset:i=0,color:o,bgColor:a,style:l,className:u,patternClassName:d}){const f=$.useRef(null),{transform:h,patternId:p}=Q(ip,re),g=r||sp[t],x=t===Ne.Dots,v=t===Ne.Cross,y=Array.isArray(n)?n:[n,n],N=[y[0]*h[2]||1,y[1]*h[2]||1],b=g*h[2],w=Array.isArray(i)?i:[i,i],C=v?[b,b]:N,L=[w[0]*h[2]||1+C[0]/2,w[1]*h[2]||1+C[1]/2],E=`${p}${e||""}`;return c.jsxs("svg",{className:se(["react-flow__background",u]),style:{...l,...vn,"--xy-background-color-props":a,"--xy-background-pattern-color-props":o},ref:f,"data-testid":"rf__background",children:[c.jsx("pattern",{id:E,x:h[0]%N[0],y:h[1]%N[1],width:N[0],height:N[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${L[0]},-${L[1]})`,children:x?c.jsx(rp,{radius:b/2,className:d}):c.jsx(np,{dimensions:C,lineWidth:s,variant:t,className:d})}),c.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${E})`})]})}Po.displayName="Background";const op=$.memo(Po);function ap(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:c.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function cp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:c.jsx("path",{d:"M0 0h32v4.2H0z"})})}function lp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:c.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 up(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 dp(){return c.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:c.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 Ht({children:e,className:t,...n}){return c.jsx("button",{type:"button",className:se(["react-flow__controls-button",t]),...n,children:e})}const fp=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom});function To({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:s,onZoomIn:i,onZoomOut:o,onFitView:a,onInteractiveChange:l,className:u,children:d,position:f="bottom-left",orientation:h="vertical","aria-label":p="React Flow controls"}){const g=te(),{isInteractive:x,minZoomReached:v,maxZoomReached:y}=Q(fp,re),{zoomIn:N,zoomOut:b,fitView:w}=Sr(),C=()=>{N(),i==null||i()},L=()=>{b(),o==null||o()},E=()=>{w(s),a==null||a()},R=()=>{g.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),l==null||l(!x)},D=h==="horizontal"?"horizontal":"vertical";return c.jsxs(kr,{className:se(["react-flow__controls",D,u]),position:f,style:e,"data-testid":"rf__controls","aria-label":p,children:[t&&c.jsxs(c.Fragment,{children:[c.jsx(Ht,{onClick:C,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:y,children:c.jsx(ap,{})}),c.jsx(Ht,{onClick:L,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:v,children:c.jsx(cp,{})})]}),n&&c.jsx(Ht,{className:"react-flow__controls-fitview",onClick:E,title:"fit view","aria-label":"fit view",children:c.jsx(lp,{})}),r&&c.jsx(Ht,{className:"react-flow__controls-interactive",onClick:R,title:"toggle interactivity","aria-label":"toggle interactivity",children:x?c.jsx(dp,{}):c.jsx(up,{})}),d]})}To.displayName="Controls";const hp=$.memo(To);function pp({id:e,x:t,y:n,width:r,height:s,style:i,color:o,strokeColor:a,strokeWidth:l,className:u,borderRadius:d,shapeRendering:f,selected:h,onClick:p}){const{background:g,backgroundColor:x}=i||{},v=o||g||x;return c.jsx("rect",{className:se(["react-flow__minimap-node",{selected:h},u]),x:t,y:n,rx:d,ry:d,width:r,height:s,style:{fill:v,stroke:a,strokeWidth:l},shapeRendering:f,onClick:p?y=>p(y,e):void 0})}const gp=$.memo(pp),mp=e=>e.nodes.map(t=>t.id),Fn=e=>e instanceof Function?e:()=>e;function xp({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:s,nodeComponent:i=gp,onClick:o}){const a=Q(mp,re),l=Fn(t),u=Fn(e),d=Fn(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return c.jsx(c.Fragment,{children:a.map(h=>c.jsx(wp,{id:h,nodeColorFunc:l,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:s,NodeComponent:i,onClick:o,shapeRendering:f},h))})}function yp({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:s,nodeStrokeWidth:i,shapeRendering:o,NodeComponent:a,onClick:l}){const{node:u,x:d,y:f,width:h,height:p}=Q(g=>{const x=g.nodeLookup.get(e),{x:v,y}=x.internals.positionAbsolute,{width:N,height:b}=je(x);return{node:x,x:v,y,width:N,height:b}},re);return!u||u.hidden||!Ti(u)?null:c.jsx(a,{x:d,y:f,width:h,height:p,style:u.style,selected:!!u.selected,className:r(u),color:t(u),borderRadius:s,strokeColor:n(u),strokeWidth:i,shapeRendering:o,onClick:l,id:u.id})}const wp=$.memo(yp);var bp=$.memo(xp);const vp=200,Np=150,_p=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Ai(Ct(e.nodeLookup),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height}},kp="react-flow__minimap-desc";function Do({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:s="",nodeBorderRadius:i=5,nodeStrokeWidth:o,nodeComponent:a,bgColor:l,maskColor:u,maskStrokeColor:d,maskStrokeWidth:f,position:h="bottom-right",onClick:p,onNodeClick:g,pannable:x=!1,zoomable:v=!1,ariaLabel:y="React Flow mini map",inversePan:N,zoomStep:b=10,offsetScale:w=5}){const C=te(),L=$.useRef(null),{boundingRect:E,viewBB:R,rfId:D,panZoom:T,translateExtent:z,flowWidth:O,flowHeight:P}=Q(_p,re),m=(e==null?void 0:e.width)??vp,k=(e==null?void 0:e.height)??Np,_=E.width/m,M=E.height/k,S=Math.max(_,M),j=S*m,I=S*k,H=w*S,F=E.x-(j-E.width)/2-H,X=E.y-(I-E.height)/2-H,V=j+H*2,B=I+H*2,Y=`${kp}-${D}`,U=$.useRef(0),A=$.useRef();U.current=S,$.useEffect(()=>{if(L.current&&T)return A.current=jf({domNode:L.current,panZoom:T,getTransform:()=>C.getState().transform,getViewScale:()=>U.current}),()=>{var Z;(Z=A.current)==null||Z.destroy()}},[T]),$.useEffect(()=>{var Z;(Z=A.current)==null||Z.update({translateExtent:z,width:O,height:P,inversePan:N,pannable:x,zoomStep:b,zoomable:v})},[x,v,N,b,z,O,P]);const q=p?Z=>{var ee;const[W,J]=((ee=A.current)==null?void 0:ee.pointer(Z))||[0,0];p(Z,{x:W,y:J})}:void 0,K=g?$.useCallback((Z,W)=>{const J=C.getState().nodeLookup.get(W);g(Z,J)},[]):void 0;return c.jsx(kr,{position:h,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 f=="number"?f*S: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 o=="string"?o:void 0},className:se(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:c.jsxs("svg",{width:m,height:k,viewBox:`${F} ${X} ${V} ${B}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:L,onClick:q,children:[y&&c.jsx("title",{id:Y,children:y}),c.jsx(bp,{onClick:K,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:s,nodeStrokeWidth:o,nodeComponent:a}),c.jsx("path",{className:"react-flow__minimap-mask",d:`M${F-H},${X-H}h${V+H*2}v${B+H*2}h${-V-H*2}z
|
|
23
|
+
M${R.x},${R.y}h${R.width}v${R.height}h${-R.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Do.displayName="MiniMap";$.memo(Do);function Sp({nodeId:e,position:t,variant:n=pt.Handle,className:r,style:s={},children:i,color:o,minWidth:a=10,minHeight:l=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,shouldResize:h,onResizeStart:p,onResize:g,onResizeEnd:x}){const v=po(),y=typeof e=="string"?e:v,N=te(),b=$.useRef(null),w=n===pt.Line?"right":"bottom-right",C=t??w,L=$.useRef(null);$.useEffect(()=>{if(!(!b.current||!y))return L.current||(L.current=Ff({domNode:b.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:T,transform:z,snapGrid:O,snapToGrid:P,nodeOrigin:m,domNode:k}=N.getState();return{nodeLookup:T,transform:z,snapGrid:O,snapToGrid:P,nodeOrigin:m,paneDomNode:k}},onChange:(T,z)=>{const{triggerNodeChanges:O,nodeLookup:P,parentLookup:m,nodeOrigin:k}=N.getState(),_=[],M={x:T.x,y:T.y},S=P.get(y);if(S&&S.expandParent&&S.parentId){const j=S.origin??k,I=T.width??S.measured.width,H=T.height??S.measured.height,F={id:S.id,parentId:S.parentId,rect:{width:I,height:H,...Di({x:T.x??S.position.x,y:T.y??S.position.y},{width:I,height:H},S.parentId,P,j)}},X=_r([F],P,m,k);_.push(...X),M.x=T.x?Math.max(j[0]*I,T.x):void 0,M.y=T.y?Math.max(j[1]*H,T.y):void 0}if(M.x!==void 0&&M.y!==void 0){const j={id:y,type:"position",position:{...M}};_.push(j)}if(T.width!==void 0&&T.height!==void 0){const j={id:y,type:"dimensions",resizing:!0,setAttributes:!0,dimensions:{width:T.width,height:T.height}};_.push(j)}for(const j of z){const I={...j,type:"position"};_.push(I)}O(_)},onEnd:()=>{const T={id:y,type:"dimensions",resizing:!1};N.getState().triggerNodeChanges([T])}})),L.current.update({controlPosition:C,boundaries:{minWidth:a,minHeight:l,maxWidth:u,maxHeight:d},keepAspectRatio:f,onResizeStart:p,onResize:g,onResizeEnd:x,shouldResize:h}),()=>{var T;(T=L.current)==null||T.destroy()}},[C,a,l,u,d,f,p,g,x,h]);const E=C.split("-"),R=n===pt.Line?"borderColor":"backgroundColor",D=o?{...s,[R]:o}:s;return c.jsx("div",{className:se(["react-flow__resize-control","nodrag",...E,n,r]),ref:b,style:D,children:i})}$.memo(Sp);const jp=new Set;function Ep(e){return e.startsWith("signal:child:")}function Cp(e){const t=cn(),n=(()=>{const i=new Set(e),o=[...e];for(;o.length>0;){const a=o.shift();if(a===void 0)continue;const l=t.getQueryData(["run",a]);if(l!==void 0)for(const u of l.timeline){const d=Yt(u);d!==void 0&&!i.has(d)&&(i.add(d),o.push(d))}}return[...i].sort()})(),r=Za({queries:n.map(i=>({queryKey:["run",i],queryFn:()=>ie.run(i)}))}),s={};return n.forEach((i,o)=>{var l;const a=(l=r[o])==null?void 0:l.data;a&&(s[i]=a)}),s}function $p({data:e}){const t=e.status==="failed",n=e.status==="pending"||e.status==="running",r=!!e.childRunId,s=!!e.collapsed,i=r&&!s,o=i?Ja:Xs(e.kind),a=t?{rail:"bg-red-400",badge:"bg-red-500/15 text-red-300",pill:"bg-red-500/20 text-red-300"}:n?{rail:"bg-amber-400",badge:"bg-amber-500/15 text-amber-300",pill:"bg-amber-500/20 text-amber-300"}:{rail:"bg-emerald-400",badge:"bg-emerald-500/15 text-emerald-300",pill:"bg-emerald-500/20 text-emerald-300"};return c.jsxs("div",{title:i?Vn.child:Vn[e.kind]??e.kind,className:`group relative w-[208px] cursor-pointer overflow-hidden rounded-xl border bg-[var(--panel)]/95 shadow-lg backdrop-blur transition-all duration-150 hover:-translate-y-0.5 ${e.selected?"border-emerald-400/60 ring-2 ring-emerald-400/30":t?"border-red-500/40 hover:border-red-400/60":i?"border-indigo-500/40 hover:border-indigo-400/60":"border-[var(--line)] hover:border-zinc-600"}`,children:[c.jsx("span",{className:`absolute inset-y-0 left-0 w-[3px] ${a.rail} ${n?"animate-pulse":""}`}),c.jsx(Te,{type:"target",position:G.Left,className:"!border-0 !bg-zinc-600"}),c.jsxs("div",{className:"py-2.5 pl-3.5 pr-3",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx("span",{className:`grid h-5 w-5 shrink-0 place-items-center rounded ${a.badge}`,children:c.jsx(o,{width:12,height:12})}),c.jsx("span",{className:"truncate text-[13px] font-medium text-zinc-100",children:e.name}),c.jsx("span",{className:`ml-auto grid h-4 w-4 shrink-0 place-items-center rounded-full ${a.pill} ${n?"animate-pulse":""}`,children:t?c.jsx(Ue,{width:9,height:9}):n?c.jsx("span",{className:"h-1.5 w-1.5 rounded-full bg-current"}):c.jsx(Ys,{width:9,height:9})})]}),c.jsxs("div",{className:"mono mt-1.5 flex items-center gap-1.5 text-[10px] text-zinc-500",children:[r?c.jsxs("span",{className:"flex items-center gap-1",children:[!s&&c.jsx("button",{type:"button",onClick:l=>{var u;l.stopPropagation(),e.childRunId&&((u=e.onToggleChild)==null||u.call(e,e.childRunId))},title:e.childExpanded?"Collapse child flow":"Expand child flow inline",className:"grid h-4 w-4 place-items-center rounded border border-indigo-500/30 bg-indigo-500/10 text-indigo-300 transition-colors hover:border-indigo-400/60 hover:bg-indigo-500/20 hover:text-indigo-200",children:c.jsx("span",{className:"inline-block text-[9px] transition-transform",style:{transform:e.childExpanded?"rotate(90deg)":"rotate(0deg)"},children:"▸"})}),c.jsx("button",{type:"button",onClick:l=>{var u;l.stopPropagation(),e.childRunId&&((u=e.onOpenRun)==null||u.call(e,e.childRunId))},title:"Open the child run",className:"rounded border border-indigo-500/30 bg-indigo-500/10 px-1 text-indigo-300 transition-colors hover:border-indigo-400/60 hover:bg-indigo-500/20 hover:text-indigo-200",children:"child ↗"})]}):c.jsx("span",{className:"rounded border border-[var(--line)] px-1 text-zinc-400",children:e.kind}),e.attempts>1&&c.jsxs("span",{className:"flex items-center gap-0.5 text-amber-300",children:[c.jsx(lr,{width:9,height:9}),e.attempts]}),e.workerGroup&&c.jsxs("span",{className:"truncate",children:["@",e.workerGroup]}),c.jsxs("span",{className:"tnum ml-auto text-zinc-400",children:["#",e.seq,e.duration&&c.jsxs("span",{className:"text-zinc-600",children:[" · ",e.duration]})]})]}),e.subs&&c.jsxs("div",{className:"mono mt-1.5 flex items-center gap-2 border-t border-[var(--line)] pt-1.5 text-[10px]",children:[e.subs.ok>0&&c.jsxs("span",{className:"text-emerald-300",children:[e.subs.ok," ok"]}),e.subs.failed>0&&c.jsxs("span",{className:"text-red-300",children:[e.subs.failed," failed"]}),e.subs.skipped>0&&c.jsxs("span",{className:"text-amber-300",children:[e.subs.skipped," skipped"]})]})]}),c.jsx(Te,{type:"source",position:G.Right,className:"!border-0 !bg-zinc-600"})]})}function Mp({data:e}){const t=e.status==="running"||e.status==="awaiting";return c.jsxs("div",{className:`s-${e.status} flex items-center gap-2 rounded-full border border-current/30 bg-[var(--panel)] px-3.5 py-1.5`,children:[c.jsx(Te,{type:"target",position:G.Left,className:"!border-0 !bg-zinc-600"}),c.jsx("span",{className:`dot ${t?"pulse":""}`}),c.jsx("span",{className:"mono text-[11px] uppercase tracking-wider",children:e.label}),c.jsx(Te,{type:"source",position:G.Right,className:"!border-0 !bg-zinc-600"})]})}const zp={step:$p,terminal:Mp};function Ip(e){var n;const t=(n=e.events)==null?void 0:n.filter(r=>r.status);if(!(!t||t.length===0))return{ok:t.filter(r=>r.status==="ok").length,failed:t.filter(r=>r.status==="failed").length,skipped:t.filter(r=>r.status==="skipped").length}}function Ap({run:e,timeline:t,endStatus:n,selectedKey:r,onSelect:s,onOpenRun:i,fmtDuration:o,expanded:a,onToggleChild:l}){const u=a??jp,d=$.useMemo(()=>{const x=new Set(u);for(const v of t){const y=Yt(v);y!==void 0&&x.add(y)}return x},[u,t]),f=Cp(d),{nodes:h,edges:p}=(()=>{const N=[],b=[],w=e.status==="running"||e.status==="suspended",C=(P,m,k)=>({id:`${P}->${m}`,source:P,target:m,style:{stroke:k?"#f87171":"var(--line)",strokeWidth:1.5}}),L=(P,m)=>({id:`${P}=>${m}`,source:P,target:m,style:{stroke:"#818cf8",strokeWidth:1.5,strokeDasharray:"4 3"}});function E(P,m,k,_,M,S){const j=`${M}s${P.seq}`,I=Yt(P),H=I!==void 0?f[I]:void 0,F=H!==void 0&&H.timeline.length===1&&H.timeline[0]?{step:H.timeline[0],run:H.run}:void 0,X=F!==void 0,V=!X&&I!==void 0&&u.has(I),B=F?F.step:P,Y=F?F.run:S,U=F?F.step.name:I!==void 0?(H==null?void 0:H.run.workflow)??"child workflow":P.name,A=B.status==="failed";N.push({id:j,type:"step",draggable:!1,position:{x:m,y:k},data:{seq:B.seq,name:U,kind:B.kind,status:B.status,workerGroup:B.workerGroup,attempts:B.attempts,duration:o(B.startedAt,B.finishedAt),subs:Ip(B),selected:r===`${B.runId}#${B.seq}`,childRunId:I,onOpenRun:i,childExpanded:V,onToggleChild:l,collapsed:X,depth:_,step:B,laneRun:Y}});const q=V?H:void 0;if(q){const K=R(q.timeline,_+1,m+248,k+150,`${I}:`,q.run);for(const W of K.firstIds)b.push(L(j,W));const Z=Ep(P.name)&&K.connectors.length>0?K.connectors:[{id:j,failed:A}];return{id:j,exits:Z,nextX:Math.max(m+248,K.nextX),bottomY:Math.max(k,K.bottomY)}}return{id:j,exits:[{id:j,failed:A}],nextX:m+248,bottomY:k}}function R(P,m,k,_,M,S){let j=k;const I=[];let H=[],F=_;for(const X of Qa(P)){const V=X.kind==="single"?[X.step]:X.steps,B=I.length===0,Y=[];let U=_,A=j;for(const q of V){const K=E(q,j,U,m,M,S);B&&I.push(K.id);for(const Z of H)b.push(C(Z.id,K.id,Z.failed));Y.push(...K.exits),A=Math.max(A,K.nextX),U=K.bottomY+96}H=Y,j=A,F=Math.max(F,U-96)}return{firstIds:I,connectors:H,nextX:j,bottomY:F}}const D=248;N.push({id:"start",type:"terminal",position:{x:0,y:0},draggable:!1,data:{status:"running",label:e.workflow}});const T=R(t,0,D,0,"",e);for(const P of T.firstIds)b.push({id:`start->${P}`,source:"start",target:P});const z=n??Ua(e,t);N.push({id:"end",type:"terminal",position:{x:Math.max(T.nextX,D),y:0},draggable:!1,data:{status:z,label:z}});const O=T.connectors.length>0?T.connectors:[{id:"start",failed:!1}];for(const P of O)b.push({id:`${P.id}->end`,source:P.id,target:"end",animated:w,style:{stroke:w?"var(--accent)":"var(--line)",strokeWidth:w?2:1.5}});return{nodes:N,edges:b}})(),g=$.useCallback((x,v)=>{if(v.type!=="step")return;const y=v.data;y.step&&y.laneRun&&s(y.step,y.laneRun)},[s]);return c.jsxs(tp,{nodes:h,edges:p,nodeTypes:zp,onNodeClick:g,fitView:!0,fitViewOptions:{padding:.3,maxZoom:1.1},proOptions:{hideAttribution:!0},nodesConnectable:!1,nodesDraggable:!1,panOnScroll:!0,minZoom:.3,children:[c.jsx(op,{variant:Ne.Dots,gap:22,size:1,color:"#1c1c22"}),c.jsx(hp,{showInteractive:!1,position:"bottom-right"})]})}function Xt(e){const t=e.lastIndexOf("~retry~");return t===-1?void 0:e.slice(0,t)}function Bn(e){const n=(Xt(e)??e).match(/^(.*)\.child\.\d+$/);return(n==null?void 0:n[1])||void 0}function Ro({className:e}){return c.jsxs("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.8,strokeLinecap:"round",strokeLinejoin:"round",className:e,role:"img","aria-label":"durable",children:[c.jsx("title",{children:"durable"}),c.jsx("path",{d:"M12 2.5 21.5 12 12 21.5 2.5 12z",opacity:.35}),c.jsx("circle",{cx:"6.4",cy:"12",r:"1.7",fill:"currentColor",stroke:"none"}),c.jsx("circle",{cx:"12",cy:"12",r:"1.7",fill:"currentColor",stroke:"none"}),c.jsx("circle",{cx:"17.6",cy:"12",r:"1.7",fill:"currentColor",stroke:"none"}),c.jsx("path",{d:"M8.1 12h2.2M13.7 12h2.2"})]})}const Pp=["pending","running","suspended","completed","failed","cancelling","cancelled","dead"];function Tp(e){const t=Date.now()-new Date(e).getTime(),n=Math.round(t/1e3);if(n<60)return`${n}s ago`;const r=Math.round(n/60);if(r<60)return`${r}m ago`;const s=Math.round(r/60);return s<24?`${s}h ago`:`${Math.round(s/24)}d ago`}function Dp(e,t){const n=new Date(t).getTime()-new Date(e).getTime();return n<1e3?`${n}ms`:n<6e4?`${(n/1e3).toFixed(1)}s`:`${(n/6e4).toFixed(1)}m`}function Er({status:e}){const t=e==="running"||e==="awaiting"||e==="cancelling";return c.jsx("span",{className:`dot s-${e} ${t?"pulse":""}`,"aria-hidden":!0})}function Lo({status:e}){return c.jsxs("span",{className:`s-${e} inline-flex items-center gap-1.5 text-[11px] uppercase tracking-wider`,children:[c.jsx(Er,{status:e}),e]})}function Rp({counts:e,filter:t,onFilter:n}){const r=Object.values(e).reduce((l,u)=>l+u,0),s=(l,u,d)=>c.jsxs("button",{type:"button",onClick:()=>n(l),className:`group flex items-center gap-2 rounded-md border px-2.5 py-1 text-xs transition-colors ${t===l?"border-zinc-600 bg-zinc-900 text-zinc-100":"border-transparent text-zinc-500 hover:text-zinc-300"}`,children:[l!=="all"&&c.jsx(Er,{status:l}),c.jsx("span",{className:"uppercase tracking-wide",children:u}),c.jsx("span",{className:"mono tnum text-zinc-600",children:d})]},l),{data:i}=we({queryKey:["topology"],queryFn:()=>ie.topology(),staleTime:Number.POSITIVE_INFINITY}),o=(i==null?void 0:i.role)==="tenant",a=i?o?i.tenant?`tenant · ${i.tenant}`:"tenant":"control plane":"";return c.jsxs("header",{className:"z-10 flex items-center gap-4 border-b border-[var(--line)] px-5 py-3",children:[c.jsxs("div",{className:"flex items-center gap-2.5",children:[c.jsx("div",{className:"grid h-7 w-7 place-items-center rounded-md border border-emerald-500/30 bg-emerald-500/10",children:c.jsx(Ro,{className:"h-4 w-4 text-emerald-400"})}),c.jsxs("div",{className:"leading-none",children:[c.jsx("div",{className:"text-sm font-semibold tracking-tight",children:"durable"}),c.jsx("div",{className:`mono text-[10px] uppercase tracking-[0.2em] ${o?"text-amber-400/80":"text-zinc-600"}`,title:o?`Tenant deployment — partition ${(i==null?void 0:i.tenant)??"(unnamed)"}`:"Control-plane deployment",children:a})]})]}),c.jsxs("div",{className:"ml-2 flex flex-wrap items-center gap-1",children:[s("all","all",r),Pp.map(l=>s(l,l,e[l]??0))]}),c.jsx(Op,{}),c.jsxs("div",{className:"flex items-center gap-2 text-xs text-zinc-500",children:[c.jsx("span",{className:"dot s-completed pulse","aria-hidden":!0}),"live"]})]})}function Lp(e){const t=Math.max(0,Math.round((Date.now()-e)/1e3));if(t<60)return`${t}s ago`;const n=Math.round(t/60);if(n<60)return`${n}m ago`;const r=Math.round(n/60);return r<24?`${r}h ago`:`${Math.round(r/24)}d ago`}function Ho({status:e}){const t=e==null?void 0:e.concurrency;if(!e||!t)return c.jsx("span",{className:"mono text-[9px] text-zinc-600",children:"no status"});const n=t.limit>0&&e.inFlight>=t.limit*.8;return c.jsxs("div",{className:"flex flex-col gap-1",children:[c.jsxs("div",{className:"mono flex flex-wrap items-center gap-x-3 gap-y-0.5 text-[10px] text-zinc-500",children:[c.jsx("span",{className:`shrink-0 rounded border px-1 text-[9px] uppercase tracking-wider ${t.mode==="adaptive"?"border-sky-500/40 bg-sky-500/10 text-sky-300":"border-zinc-600/50 bg-zinc-800/60 text-zinc-400"}`,children:t.mode==="adaptive"?`adaptive ${t.min??1}–${t.max??32}`:"fixed"}),c.jsxs("span",{className:n?"text-amber-300":"text-zinc-400",children:["in-flight"," ",c.jsxs("span",{className:"tnum",children:[e.inFlight,"/",t.limit]})]}),typeof e.rssPct=="number"&&c.jsxs("span",{className:e.rssPct>=85?"text-rose-300":"",children:["ram ",c.jsxs("span",{className:"tnum",children:[Math.round(e.rssPct),"%"]})]}),typeof e.cpuPct=="number"&&c.jsxs("span",{children:["cpu ",c.jsxs("span",{className:"tnum",children:[Math.round(e.cpuPct),"%"]})]}),typeof e.throughputPerMin=="number"&&c.jsxs("span",{children:[c.jsx("span",{className:"tnum",children:Math.round(e.throughputPerMin)}),"/min"]}),typeof e.p95Ms=="number"&&c.jsxs("span",{children:["p95 ",c.jsxs("span",{className:"tnum",children:[Math.round(e.p95Ms),"ms"]})]})]}),e.lastAdjust&&c.jsxs("div",{className:"mono text-[10px] text-zinc-500",children:[e.lastAdjust.reason," ",c.jsxs("span",{className:"tnum text-zinc-400",children:[e.lastAdjust.from,"→",e.lastAdjust.to]})," ",Lp(e.lastAdjust.at)]})]})}function an({label:e,suppressed:t,children:n}){const[r,s]=$.useState(!1);return c.jsxs("span",{className:"relative inline-flex",onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[n,r&&!t&&c.jsx("span",{role:"tooltip",className:"pointer-events-none absolute right-0 top-full z-30 mt-1 max-w-[280px] whitespace-pre-line rounded-md border border-[var(--line)] bg-zinc-950/95 px-2 py-1 text-left text-[10px] leading-relaxed text-zinc-300 shadow-xl backdrop-blur",children:e})]})}function Hp({workers:e}){return c.jsx("div",{className:"flex flex-col divide-y divide-[var(--line-soft)]",children:e.map(t=>c.jsxs("div",{className:"flex flex-col gap-1 px-2.5 py-2",children:[c.jsx("span",{className:"mono truncate text-[10px] text-zinc-400",children:t.instanceId}),c.jsx(Ho,{status:t.status})]},t.instanceId))})}function Op(){const{data:e}=we({queryKey:["workers"],queryFn:()=>ie.workers(),refetchInterval:1e4}),[t,n]=$.useState("workers");if(!e||e.length===0)return null;const r=fc(e);return c.jsxs("div",{className:"ml-auto flex flex-nowrap items-center gap-1.5",children:[c.jsx("div",{className:"flex items-center gap-0.5 rounded border border-[var(--line)] bg-zinc-900/60 p-0.5",children:["workers","partitions","alerts"].map(s=>c.jsxs("button",{type:"button",onClick:()=>n(s),className:`mono rounded px-1.5 py-0.5 text-[10px] ${t===s?"bg-zinc-700 text-zinc-100":"text-zinc-500 hover:text-zinc-300"}`,children:[s==="workers"?"pods":s==="partitions"?"parts":"alerts",s==="alerts"&&r.starved.length>0&&c.jsx("span",{className:"tnum ml-1 rounded bg-rose-500/80 px-1 text-[9px] text-white",children:r.starved.length})]},s))}),c.jsxs("div",{className:"flex w-[300px] flex-nowrap items-center justify-end gap-1.5",children:[t==="workers"&&c.jsx(Fp,{workers:dc(e)}),t==="partitions"&&c.jsx(Bp,{groups:e}),t==="alerts"&&c.jsx(Vp,{summary:r})]})]})}const Hs="__overflow__";function Os(e){var n;const t=(n=e.status)==null?void 0:n.concurrency;return e.status&&t?`${e.status.inFlight}/${t.limit}`:void 0}function Fs({w:e}){return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"px-2.5 py-2",children:c.jsx(Ho,{status:e.status})}),c.jsxs("div",{className:"max-h-48 overflow-auto border-t border-[var(--line-soft)] px-2.5 py-1.5",children:[c.jsxs("div",{className:"mono mb-1 text-[9px] uppercase tracking-wider text-zinc-600",children:[e.handlers.length," handlers"]}),e.handlers.map(t=>c.jsx("div",{className:"mono truncate text-[10px] text-zinc-400",children:t},t))]})]})}function Fp({workers:e}){const[t,n]=$.useState(void 0),[r,s]=$.useState(void 0),i=2,o=e.slice(0,i),a=e.slice(i),l=t===Hs;return c.jsxs(c.Fragment,{children:[o.map(u=>{const d=t===u.instanceId,f=Os(u);return c.jsx(an,{suppressed:d,label:`${u.instanceId}
|
|
24
|
+
${u.handlers.length} handlers · ${u.partition}${f?` · ${f} in-flight`:""}`,children:c.jsxs("div",{className:"relative",children:[c.jsxs("button",{type:"button",onClick:()=>n(d?void 0:u.instanceId),className:`mono flex max-w-[120px] items-center gap-1 rounded border px-1.5 py-0.5 text-[10px] hover:border-zinc-500 ${d?"border-zinc-500 bg-zinc-800 text-zinc-200":"border-[var(--line)] bg-zinc-800/40 text-zinc-400"}`,children:[c.jsx("span",{className:`dot ${u.status?"s-completed":""}`,"aria-hidden":!0}),c.jsx("span",{className:"truncate",children:u.instanceId}),u.partition!=="default"&&c.jsxs("span",{className:"shrink-0 text-zinc-500",children:["@",u.partition]}),c.jsxs("span",{className:"tnum shrink-0 text-zinc-500",children:[u.handlers.length,"h",f?` · ${f}`:""]})]}),d&&c.jsxs("div",{className:"absolute right-0 top-full z-20 mt-1 w-72 rounded-md border border-[var(--line)] bg-zinc-950/95 shadow-xl backdrop-blur",children:[c.jsxs("div",{className:"mono flex items-center justify-between gap-2 border-b border-[var(--line)] px-2.5 py-1.5 text-[10px] text-zinc-500",children:[c.jsx("span",{className:"truncate text-zinc-300",children:u.instanceId}),c.jsxs("span",{className:"shrink-0",children:[u.runtime??"node"," · ",u.partition]})]}),c.jsx(Fs,{w:u})]})]})},u.instanceId)}),a.length>0&&c.jsxs("div",{className:"relative",children:[c.jsxs("button",{type:"button",onClick:()=>{n(l?void 0:Hs),s(void 0)},className:`mono shrink-0 rounded border px-1.5 py-0.5 text-[10px] hover:border-zinc-500 ${l?"border-zinc-500 bg-zinc-800 text-zinc-200":"border-[var(--line)] bg-zinc-800/40 text-zinc-400"}`,children:["+",a.length]}),l&&c.jsxs("div",{className:"absolute right-0 top-full z-20 mt-1 w-72 rounded-md border border-[var(--line)] bg-zinc-950/95 shadow-xl backdrop-blur",children:[c.jsxs("div",{className:"mono border-b border-[var(--line)] px-2.5 py-1.5 text-[9px] uppercase tracking-wider text-zinc-600",children:[a.length," more ",a.length===1?"pod":"pods"]}),c.jsx("div",{className:"max-h-80 overflow-auto divide-y divide-[var(--line-soft)]",children:a.map(u=>{const d=Os(u),f=r===u.instanceId;return c.jsxs("div",{children:[c.jsxs("button",{type:"button",onClick:()=>s(f?void 0:u.instanceId),className:`mono flex w-full items-center justify-between gap-2 px-2.5 py-1.5 text-left text-[10px] hover:bg-zinc-800/50 ${f?"bg-zinc-800/40 text-zinc-200":"text-zinc-300"}`,children:[c.jsxs("span",{className:"flex min-w-0 items-center gap-1",children:[c.jsx("span",{className:`dot ${u.status?"s-completed":""}`,"aria-hidden":!0}),c.jsx("span",{className:"truncate",children:u.instanceId})]}),c.jsxs("span",{className:"tnum shrink-0 text-zinc-500",children:[u.partition!=="default"?`@${u.partition} · `:"",u.handlers.length,"h",d?` · ${d}`:""]})]}),f&&c.jsx("div",{className:"border-t border-[var(--line-soft)] bg-zinc-900/40",children:c.jsx(Fs,{w:u})})]},u.instanceId)})})]})]})]})}function Bp({groups:e}){const[t,n]=$.useState(void 0),r=lc(e);function s(i){const o=new Map;for(const a of e)if(Wt(a.group)===i)for(const l of a.liveWorkers)o.has(l.instanceId)||o.set(l.instanceId,l);return[...o.values()]}return c.jsx(c.Fragment,{children:r.map(i=>{const o=i.starvedCount>0,a=t===i.partition;return c.jsx(an,{suppressed:a,label:`${i.partition}
|
|
25
|
+
${i.workerCount} workers · ${i.handlerCount} handlers · ${i.totalDepth} queued${o?` · ${i.starvedCount} starved`:""}`,children:c.jsxs("div",{className:"relative",children:[c.jsxs("button",{type:"button",disabled:i.workerCount===0,onClick:()=>n(a?void 0:i.partition),className:`mono flex items-center gap-1 rounded border px-1.5 py-0.5 text-[10px] ${o?"border-rose-500/50 bg-rose-500/15 text-rose-300":a?"border-zinc-500 bg-zinc-800 text-zinc-200":"border-[var(--line)] bg-zinc-800/40 text-zinc-400"} ${i.workerCount>0?"cursor-pointer hover:border-zinc-500":"cursor-default"}`,children:[c.jsx("span",{className:`dot ${o?"s-failed":i.workerCount>0?"s-completed":""}`,"aria-hidden":!0}),i.partition,c.jsxs("span",{className:"tnum text-zinc-500",children:[i.workerCount,"w ",i.handlerCount,"h",i.totalDepth>0?` ${i.totalDepth}q`:"",o?` ${i.starvedCount}!`:""]})]}),a&&i.workerCount>0&&c.jsxs("div",{className:"absolute right-0 top-full z-20 mt-1 w-72 rounded-md border border-[var(--line)] bg-zinc-950/95 shadow-xl backdrop-blur",children:[c.jsxs("div",{className:"mono flex items-center justify-between border-b border-[var(--line)] px-2.5 py-1.5 text-[10px] text-zinc-500",children:[c.jsx("span",{className:"text-zinc-300",children:i.partition}),c.jsxs("span",{className:"tnum",children:[i.workerCount," worker(s) · ",i.totalDepth," queued"]})]}),c.jsx(Hp,{workers:s(i.partition)})]})]})},i.partition)})})}function Vp({summary:e}){const t=(n,r)=>`${n} ${n===1?r:`${r}s`}`;return c.jsxs(c.Fragment,{children:[c.jsx(an,{label:`Route-by-handler: each @Workflow & @Step is served as its own queue.
|
|
26
|
+
${e.queueCount} queues across ${t(e.workerCount,"worker")}.`,children:c.jsxs("span",{className:"mono tnum text-[10px] text-zinc-500",children:[t(e.workflowCount,"workflow")," · ",t(e.stepCount,"step")," ·"," ",t(e.workerCount,"worker")," ·"," ",e.allDraining?c.jsx("span",{className:"text-emerald-400",children:"all draining"}):c.jsxs("span",{className:"text-rose-300",children:[e.starved.length," starved"]})]})}),e.starved.map(n=>c.jsx(an,{label:`${n.group}
|
|
27
|
+
${n.depth} queued, no worker consuming`,children:c.jsxs("span",{className:"mono flex items-center gap-1 rounded border border-rose-500/50 bg-rose-500/15 px-1.5 py-0.5 text-[10px] text-rose-300",children:[c.jsx("span",{className:"dot s-failed","aria-hidden":!0}),c.jsx("span",{className:"max-w-[180px] truncate",children:n.group}),c.jsxs("span",{className:"tnum shrink-0",children:[n.depth,"q · 0w"]})]})},n.group))]})}function qp(){return c.jsx("ul",{className:"divide-y divide-[var(--line-soft)]","aria-hidden":!0,children:[0,1,2,3,4,5].map(e=>c.jsxs("li",{className:"flex flex-col gap-2 px-4 py-3",children:[c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsx("div",{className:"h-3.5 w-32 animate-pulse rounded bg-zinc-800"}),c.jsx("div",{className:"h-3 w-16 animate-pulse rounded bg-zinc-800/70"})]}),c.jsx("div",{className:"h-2.5 w-48 animate-pulse rounded bg-zinc-800/50"})]},e))})}function Xp({runs:e,allRuns:t,health:n,loading:r,selected:s,onSelect:i,onSelectTag:o}){return r&&e.length===0?c.jsx(qp,{}):e.length===0?c.jsx("div",{className:"p-6 text-sm text-zinc-600",children:"No runs yet."}):c.jsx("ul",{className:"divide-y divide-[var(--line-soft)]",children:e.map(a=>{const l=ur(a,{runs:t,health:n});return c.jsx("li",{children:c.jsxs("button",{type:"button",onClick:()=>i(a.id),className:`flex w-full flex-col gap-1 px-4 py-3 text-left transition-colors ${s===a.id?"bg-zinc-900":"hover:bg-zinc-900/50"}`,children:[c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[c.jsx("span",{className:"truncate text-sm font-medium text-zinc-200",children:a.workflow}),a.namespace&&a.namespace!=="default"&&c.jsx("span",{className:"mono shrink-0 rounded border border-sky-500/30 bg-sky-500/10 px-1 text-[9px] text-sky-300",title:"Tenant / worker-pool partition",children:a.namespace}),a.id.startsWith("dlq:")&&c.jsx("span",{className:"mono shrink-0 rounded border border-rose-500/40 bg-rose-500/10 px-1 text-[9px] uppercase tracking-wider text-rose-300",children:"dlq"})]}),c.jsx(Lo,{status:l.status})]}),l.detail&&c.jsx("div",{className:`mono truncate text-[11px] s-${l.status}`,children:l.detail}),c.jsxs("div",{className:"flex items-center justify-between gap-2",children:[c.jsx("span",{className:"mono truncate text-[11px] text-zinc-600",children:a.id}),c.jsx("span",{className:"shrink-0 text-[11px] text-zinc-600",children:Tp(a.updatedAt)})]}),a.tags&&a.tags.length>0&&c.jsx("div",{className:"flex flex-wrap gap-1",children:a.tags.map(u=>c.jsxs("span",{onClick:d=>{d.stopPropagation(),o(u)},className:"mono cursor-pointer rounded border border-[var(--line)] bg-zinc-800/40 px-1.5 text-[10px] text-zinc-400 hover:border-zinc-500 hover:text-zinc-200",children:["#",u]},u))})]})},a.id)})})}function Yp({compensations:e,selKey:t,onSelect:n}){return c.jsxs("div",{className:"shrink-0 border-t border-amber-500/20 bg-black/20 px-7 py-3",children:[c.jsx("div",{className:"mono mb-2 text-[10px] uppercase tracking-[0.18em] text-amber-400/80",children:"compensation · unwind order"}),c.jsx("ul",{className:"flex flex-col gap-1",children:e.map(r=>{const s=`${r.runId}#${r.seq}`;return c.jsx("li",{children:c.jsxs("button",{type:"button",onClick:()=>n(r),className:`mono flex w-full items-center gap-2 rounded-md border px-2.5 py-1.5 text-left text-[11.5px] transition-colors ${s===t?"border-amber-500/50 bg-amber-500/15":"border-amber-500/20 bg-amber-500/5 hover:border-amber-500/40"}`,children:[c.jsx(Er,{status:r.status}),c.jsx("span",{className:"truncate text-amber-100",children:oc(r.name)}),c.jsx("span",{className:"ml-auto shrink-0 text-[10px] uppercase tracking-wider text-amber-400/70",children:r.status})]})},s)})})]})}function Wp({id:e,onOpenRun:t}){var Y,U;const n=cn(),{data:r}=we({queryKey:["run",e],queryFn:async()=>uc(n.getQueryData(["run",e]),await ie.run(e)),refetchInterval:A=>{var K;const q=(K=A.state.data)==null?void 0:K.run.status;return q==="running"||q==="suspended"?1500:!1}}),{data:s=[]}=we({queryKey:["workers"],queryFn:()=>ie.workers(),refetchInterval:5e3}),{data:i=[]}=we({queryKey:["runs","",""],queryFn:()=>ie.runs(),refetchInterval:3e3}),o=(r==null?void 0:r.run.status)==="dead"?`dlq:${e}`:void 0,{data:a}=we({queryKey:["run",o],queryFn:()=>ie.run(o),enabled:!!o,retry:!1}),l=()=>{n.invalidateQueries({queryKey:["run",e]}),n.invalidateQueries({queryKey:["runs"]})},u=r==null?void 0:r.run.status,d=u==="running"||u==="suspended";$.useEffect(()=>{if(d)return ie.streamRun(e,A=>{if(A.type==="step.progress"&&A.event&&A.seq!=null){const q=A.seq,K=A.event;n.setQueryData(["run",e],Z=>Z&&{...Z,timeline:Z.timeline.map(W=>W.seq===q?{...W,events:[...W.events??[],K]}:W)});return}n.invalidateQueries({queryKey:["run",e]})})},[e,d,n]);const f=Xe({mutationFn:()=>ie.retry(e),onSuccess:l}),h=Xe({mutationFn:A=>ie.cancel(e,A!==void 0?{compensate:A}:{}),onSuccess:l}),p=Xe({mutationFn:()=>ie.continue(e),onSuccess:l}),g=Xe({mutationFn:()=>ie.redispatch(e),onSuccess:l}),x=Xe({mutationFn:A=>ie.retryWithInput(e,A),onSuccess:A=>{n.invalidateQueries({queryKey:["runs"]}),t(A.runId)}}),v=()=>{const A=JSON.stringify((r==null?void 0:r.run.input)??{},null,2),q=window.prompt("Fix the input, then replay as a fresh run:",A);if(q!=null)try{x.mutate(JSON.parse(q))}catch{window.alert("Invalid JSON")}},[y,N]=$.useState(),[b,w]=$.useState(!1),[C,L]=$.useState(new Set),[E,R]=$.useState(240);function D(A){A.preventDefault(),A.currentTarget.setPointerCapture(A.pointerId);const q=Z=>R(W=>Math.max(120,Math.min(720,W-Z.movementY))),K=()=>{window.removeEventListener("pointermove",q),window.removeEventListener("pointerup",K)};window.addEventListener("pointermove",q),window.addEventListener("pointerup",K)}function T(A){L(q=>{const K=new Set(q);return K.has(A)?K.delete(A):K.add(A),K})}if(!r)return c.jsx("div",{className:"p-8 text-sm text-zinc-600",children:"Loading run…"});const{run:z,timeline:O}=r,{body:P,compensations:m}=ac(O),k=cc(m),_=z.id.startsWith("dlq:"),M=_?{id:z.id.slice(4),title:"Dead-letter handler",subtitle:`started because run ${z.id.slice(4)} was dead-lettered`,cta:"open dead run →"}:a?{id:`dlq:${z.id}`,title:"Dead-lettered",subtitle:"this run exceeded recovery and was routed to a DLQ handler",cta:"open DLQ handler →"}:void 0,S=m.length>0?(()=>{const A=k.failed>0?` ${k.failed} undo${k.failed===1?"":"s"} failed after retries — check ${k.failed===1?"it":"them"} below.`:"";return k.pending>0?{title:"Compensating",subtitle:`undoing completed steps in reverse (${k.done} of ${k.total} done).${A}`}:z.status==="cancelled"?{title:"Cancelled with compensation",subtitle:`completed steps were undone before cancelling.${A}`}:{title:"Saga compensated",subtitle:`the run failed and its ${k.total} completed step${k.total===1?"":"s"} were undone in reverse.${A}`}})():void 0,j=z.status==="failed"||z.status==="suspended",I=z.status==="running"||z.status==="suspended",H=z.status==="suspended"||z.status==="running",F=P.some(A=>A.status==="pending"&&A.kind==="signal"&&A.name.startsWith("breakpoint")),X=y?`${y.step.runId}#${y.step.seq}`:void 0,V=ur(z,{runs:i,health:s,timeline:P}),B=z.namespace&&z.namespace!=="default"?z.namespace:void 0;return c.jsxs("div",{className:"flex h-full flex-col",children:[c.jsxs("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--line)] px-7 py-5",children:[c.jsxs("div",{className:"min-w-0",children:[c.jsxs("div",{className:"flex items-center gap-3",children:[c.jsx("h2",{className:"text-lg font-semibold tracking-tight",children:z.workflow}),Bn(z.id)!==void 0&&c.jsx("button",{type:"button",onClick:()=>t(Bn(z.id)),className:"mono rounded border border-indigo-500/40 bg-indigo-500/10 px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-indigo-300 hover:bg-indigo-500/20",title:`Open the parent run (${Bn(z.id)}) — the macro view this child belongs to`,children:"↑ parent"}),Xt(z.id)!==void 0&&c.jsx("button",{type:"button",onClick:()=>t(Xt(z.id)),className:"mono rounded border border-zinc-500/40 bg-zinc-500/10 px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-zinc-300 hover:bg-zinc-500/20",title:`This is a retry-with-input of ${Xt(z.id)} — open the original run`,children:"↩ original"}),_&&c.jsx("span",{className:"mono rounded border border-rose-500/40 bg-rose-500/10 px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-rose-300",children:"dlq"}),c.jsx(Lo,{status:V.status}),V.detail&&c.jsx("span",{className:`mono text-[11px] s-${V.status}`,children:V.detail}),B&&c.jsx("span",{className:"mono rounded border border-sky-500/30 bg-sky-500/10 px-1.5 py-0.5 text-[10px] text-sky-300",title:"Tenant / worker-pool partition this run belongs to",children:B}),m.length>0&&c.jsx("span",{className:`mono rounded border border-amber-500/40 bg-amber-500/10 px-1.5 py-0.5 text-[10px] uppercase tracking-wider text-amber-300 ${k.pending>0?"pulse":""}`,title:k.pending>0?`compensating: ${k.done} of ${k.total} undone`:`${k.total} step${k.total===1?"":"s"} compensated`,children:k.pending>0?"compensating":"compensated"}),c.jsxs("span",{className:"mono rounded border border-[var(--line)] px-1.5 py-0.5 text-[10px] text-zinc-500",children:["v",z.workflowVersion]}),c.jsxs("span",{className:"mono tnum text-[11px] text-zinc-600",children:[P.length," ",P.length===1?"step":"steps"]})]}),c.jsx("div",{className:"mono mt-1 truncate text-[11px] text-zinc-600",children:z.id}),z.tags&&z.tags.length>0&&c.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:z.tags.map(A=>c.jsxs("span",{className:"mono rounded border border-[var(--line)] bg-zinc-800/40 px-1.5 text-[10px] text-zinc-400",children:["#",A]},A))}),z.searchAttributes&&Object.keys(z.searchAttributes).length>0&&c.jsx("div",{className:"mt-1.5 flex flex-wrap gap-1",children:Object.entries(z.searchAttributes).map(([A,q])=>c.jsxs("span",{className:"mono rounded border border-indigo-500/30 bg-indigo-500/10 px-1.5 text-[10px] text-indigo-300",title:"search attribute",children:[A,"=",String(q)]},A))}),(Y=r==null?void 0:r.children)!=null&&Y.length?c.jsxs("div",{className:"mt-1.5 flex flex-wrap items-center gap-1",children:[c.jsx("span",{className:"text-[10px] text-zinc-600",children:"children:"}),(U=r.children)==null?void 0:U.map(A=>c.jsx("span",{onClick:()=>t(A),className:"mono cursor-pointer rounded border border-[var(--line)] bg-zinc-800/40 px-1.5 text-[10px] text-zinc-400 hover:border-zinc-500 hover:text-zinc-200",children:A},A))]}):null]}),c.jsxs("div",{className:"flex shrink-0 gap-2",children:[c.jsx("button",{type:"button",onClick:()=>w(!0),className:"mono rounded-md border border-[var(--line)] px-2.5 py-1.5 text-xs text-zinc-400 transition-colors hover:bg-zinc-800 hover:text-zinc-100",title:"Run input / output",children:"{ }"}),F&&c.jsxs("button",{type:"button",disabled:p.isPending,onClick:()=>p.mutate(),className:"flex items-center gap-1.5 rounded-md border border-amber-500/40 bg-amber-500/15 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-amber-200 transition-colors enabled:hover:bg-amber-500/25 disabled:opacity-30",children:[c.jsx(ec,{width:12,height:12}),"Continue"]}),c.jsxs("button",{type:"button",disabled:!j||f.isPending,onClick:()=>f.mutate(),className:"flex items-center gap-1.5 rounded-md border border-emerald-500/30 bg-emerald-500/10 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-emerald-300 transition-colors enabled:hover:bg-emerald-500/20 disabled:opacity-30",children:[c.jsx(zn,{width:12,height:12}),"Retry"]}),H&&c.jsxs("button",{type:"button",disabled:g.isPending,onClick:()=>g.mutate(),title:"Re-dispatch stuck `pending` remote steps — recovery for a lost step dispatch (crashed worker or dropped job)",className:"flex items-center gap-1.5 rounded-md border border-sky-500/30 bg-sky-500/10 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-sky-300 transition-colors enabled:hover:bg-sky-500/20 disabled:opacity-30",children:[c.jsx(lr,{width:12,height:12}),"Re-dispatch"]}),(z.status==="dead"||z.status==="failed")&&c.jsxs("button",{type:"button",disabled:x.isPending,onClick:v,title:"Edit the input and re-run as a fresh linked run",className:"flex items-center gap-1.5 rounded-md border border-indigo-500/30 bg-indigo-500/10 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-indigo-300 transition-colors enabled:hover:bg-indigo-500/20 disabled:opacity-30",children:[c.jsx(zn,{width:12,height:12}),"Fix & replay"]}),I&&c.jsxs("button",{type:"button",disabled:h.isPending,onClick:()=>h.mutate(!0),title:"Cancel and run saga compensations (undo completed steps in reverse)",className:"flex items-center gap-1.5 rounded-md border border-amber-600/30 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-amber-300/90 transition-colors enabled:hover:bg-amber-900/20 disabled:opacity-30",children:[c.jsx(zn,{width:12,height:12}),"Cancel + Undo"]}),c.jsxs("button",{type:"button",disabled:!I||h.isPending,onClick:()=>h.mutate(!1),className:"flex items-center gap-1.5 rounded-md border border-zinc-700 px-3 py-1.5 text-xs font-medium uppercase tracking-wide text-zinc-300 transition-colors enabled:hover:bg-zinc-800 disabled:opacity-30",children:[c.jsx(Ue,{width:12,height:12}),"Cancel"]})]})]}),M&&c.jsxs("div",{className:"flex items-center gap-3 border-b border-rose-500/30 bg-rose-500/10 px-7 py-3",children:[c.jsx("span",{className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-rose-500/40 bg-rose-500/15 text-sm text-rose-300","aria-hidden":!0,children:"⚠"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"text-[13px] font-medium text-rose-200",children:M.title}),c.jsx("div",{className:"mono truncate text-[11px] text-rose-300/70",children:M.subtitle})]}),c.jsx("button",{type:"button",onClick:()=>t(M.id),className:"mono shrink-0 rounded-md border border-rose-500/40 bg-rose-500/15 px-2.5 py-1.5 text-[11px] text-rose-200 transition-colors hover:bg-rose-500/25",children:M.cta})]}),S&&c.jsxs("div",{className:"flex items-center gap-3 border-b border-amber-500/30 bg-amber-500/10 px-7 py-3",children:[c.jsx("span",{className:"grid h-7 w-7 shrink-0 place-items-center rounded-md border border-amber-500/40 bg-amber-500/15 text-sm text-amber-300","aria-hidden":!0,children:"↺"}),c.jsxs("div",{className:"min-w-0 flex-1",children:[c.jsx("div",{className:"text-[13px] font-medium text-amber-200",children:S.title}),c.jsx("div",{className:"mono truncate text-[11px] text-amber-300/70",children:S.subtitle})]})]}),c.jsxs("div",{className:"relative grid min-h-0 flex-1",style:{gridTemplateRows:P.length>0?`1fr ${E}px`:"1fr"},children:[c.jsxs("div",{className:"relative min-h-0",children:[P.length===0?c.jsx("div",{className:"grid h-full place-items-center text-sm text-zinc-600",children:"No steps recorded yet."}):c.jsx(Ap,{run:z,timeline:P,endStatus:V.status,selectedKey:X,onSelect:(A,q)=>N({step:A,run:q}),onOpenRun:t,fmtDuration:Dp,expanded:C,onToggleChild:T}),(z.status==="failed"||z.status==="cancelled")&&z.error&&c.jsx("div",{className:"mono absolute inset-x-6 bottom-6 rounded-lg border border-red-500/20 bg-red-500/10 px-3 py-2 text-xs text-red-300 backdrop-blur",children:z.error.message})]}),P.length>0&&c.jsxs("div",{className:"relative min-h-0 overflow-hidden border-t border-[var(--line)] bg-black/20",children:[c.jsx("div",{onPointerDown:D,className:"absolute inset-x-0 top-0 z-10 h-1.5 -translate-y-1/2 cursor-row-resize hover:bg-emerald-500/40",title:"Drag to resize"}),c.jsx(tc,{run:z,timeline:P,selectedKey:X,onSelect:(A,q)=>N({step:A,run:q}),onOpenRun:t,expanded:C,onToggleChild:T})]}),y&&c.jsx(yc,{step:y.step,run:y.run,onClose:()=>N(void 0),onOpenRun:t}),b&&c.jsx(wc,{run:z,onClose:()=>w(!1)})]}),m.length>0&&c.jsx(Yp,{compensations:m,selKey:X,onSelect:A=>N({step:A,run:z})})]})}function Bs(){if(typeof window>"u")return;const e=window.location.hash.match(/^#\/run\/(.+)$/),t=e==null?void 0:e[1];return t?decodeURIComponent(t):void 0}function Kp(){const[e,t]=$.useState("all"),[n,r]=$.useState(""),[s,i]=$.useState(""),[o,a]=$.useState(()=>Bs()),l=$.useCallback(N=>{if(a(N),typeof window>"u")return;const b=N?`#/run/${encodeURIComponent(N)}`:"",w=b||window.location.pathname+window.location.search;window.location.hash!==b&&window.history.pushState(null,"",w)},[]);$.useEffect(()=>{const N=()=>a(Bs());return window.addEventListener("hashchange",N),window.addEventListener("popstate",N),()=>{window.removeEventListener("hashchange",N),window.removeEventListener("popstate",N)}},[]);const u=cn(),d=s.split(",").map(N=>N.trim()).filter(Boolean),{data:f=[],isPending:h}=we({queryKey:["runs",n,d.join("|")],queryFn:()=>ie.runs(void 0,n||void 0,d.length?d:void 0),refetchInterval:3e3}),{data:p=[]}=we({queryKey:["workers"],queryFn:()=>ie.workers(),refetchInterval:5e3}),g=Xe({mutationFn:N=>ie.bulk(N,{status:e!=="all"?e:void 0,tag:n||void 0,attr:d.length?d:void 0}),onSuccess:()=>u.invalidateQueries({queryKey:["runs"]})}),x=f.reduce((N,b)=>(N[b.status]=(N[b.status]??0)+1,N),{}),v=e==="all"?f:f.filter(N=>N.status===e),y=[...new Set(f.filter(N=>ur(N,{runs:f,health:p}).status==="no-worker").map(N=>N.workflow))];return c.jsxs(c.Fragment,{children:[c.jsx("div",{className:"app-bg"}),c.jsxs("div",{className:"relative z-10 flex h-full flex-col",children:[c.jsx(Rp,{counts:x,filter:e,onFilter:t}),y.length>0&&c.jsxs("div",{className:"flex items-center gap-2 border-b border-amber-500/30 bg-amber-500/10 px-4 py-1.5 text-[11px] text-amber-200",children:[c.jsx("span",{className:"s-no-worker inline-flex items-center gap-1.5",children:c.jsx("span",{className:"dot s-no-worker","aria-hidden":!0})}),c.jsxs("span",{children:["Runs waiting on handlers with no live worker:"," ",c.jsx("span",{className:"mono text-amber-100",children:y.join(", ")}),". Start a worker to unblock."]})]}),c.jsxs("div",{className:"grid min-h-0 flex-1 grid-cols-[minmax(300px,360px)_1fr]",children:[c.jsxs("aside",{className:"flex min-h-0 flex-col border-r border-[var(--line)]",children:[c.jsxs("div",{className:"border-b border-[var(--line)] p-2",children:[c.jsxs("div",{className:"flex items-center gap-1.5 rounded-md border border-[var(--line)] px-2",children:[c.jsx("span",{className:"text-zinc-600",children:"#"}),c.jsx("input",{value:n,onChange:N=>r(N.target.value),placeholder:"filter by tag…",className:"mono w-full bg-transparent py-1.5 text-xs text-zinc-200 placeholder:text-zinc-600 focus:outline-none"}),n&&c.jsx("button",{type:"button",onClick:()=>r(""),className:"text-zinc-600 hover:text-zinc-300",title:"clear tag filter",children:c.jsx(Ue,{width:12,height:12})})]}),c.jsxs("div",{className:"mt-1.5 flex items-center gap-1.5 rounded-md border border-[var(--line)] px-2",children:[c.jsx("span",{className:"text-zinc-600",children:"⛃"}),c.jsx("input",{value:s,onChange:N=>i(N.target.value),placeholder:"attrs e.g. amount:gte:200, tier:eq:pro",title:"Typed search attributes: comma-separated key:op:value (ops eq ne gt gte lt lte)",className:"mono w-full bg-transparent py-1.5 text-xs text-zinc-200 placeholder:text-zinc-600 focus:outline-none"}),s&&c.jsx("button",{type:"button",onClick:()=>i(""),className:"text-zinc-600 hover:text-zinc-300",title:"clear attribute filter",children:c.jsx(Ue,{width:12,height:12})})]})]}),(e!=="all"||n||d.length>0)&&v.length>0&&c.jsxs("div",{className:"flex items-center gap-2 border-b border-[var(--line)] px-3 py-1.5",children:[c.jsxs("span",{className:"mono text-[10px] text-zinc-500",children:[v.length," ",e!=="all"?e:""," ",n&&`#${n}`,d.length>0&&` ⛃${d.length}`]}),c.jsx("button",{type:"button",disabled:g.isPending,onClick:()=>g.mutate("retry"),className:"mono ml-auto rounded border border-emerald-500/30 bg-emerald-500/10 px-1.5 py-0.5 text-[10px] text-emerald-300 transition-colors hover:bg-emerald-500/20 disabled:opacity-40",children:"retry all"}),c.jsx("button",{type:"button",disabled:g.isPending,onClick:()=>g.mutate("cancel"),className:"mono rounded border border-rose-500/30 bg-rose-500/10 px-1.5 py-0.5 text-[10px] text-rose-300 transition-colors hover:bg-rose-500/20 disabled:opacity-40",children:"cancel all"})]}),c.jsx("div",{className:"min-h-0 flex-1 overflow-auto",children:c.jsx(Xp,{runs:v,allRuns:f,health:p,loading:h,selected:o,onSelect:l,onSelectTag:r})})]}),c.jsx("main",{className:"min-h-0",children:o?c.jsx(Wp,{id:o,onOpenRun:l},o):c.jsx("div",{className:"grid h-full place-items-center text-center",children:c.jsxs("div",{className:"flex flex-col items-center",children:[c.jsx(Ro,{className:"h-10 w-10 text-zinc-800"}),c.jsx("p",{className:"mt-3 text-sm text-zinc-600",children:"Select a run to see its timeline."})]})})})]})]})]})}const Gp=new nc({defaultOptions:{queries:{refetchInterval:2e3,refetchOnWindowFocus:!1}}});rc(document.getElementById("root")).render(c.jsx($.StrictMode,{children:c.jsx(sc,{client:Gp,children:c.jsx(Kp,{})})}));
|