@dudousxd/nestjs-durable-dashboard 0.34.0 → 0.35.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.
|
@@ -1,4 +1,4 @@
|
|
|
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={};/**
|
|
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)}),!l&&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
|
*
|
package/dist/spa/index.html
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
rel="stylesheet"
|
|
11
11
|
/>
|
|
12
12
|
<title>durable · control plane</title>
|
|
13
|
-
<script type="module" crossorigin src="/durable/assets/index-
|
|
13
|
+
<script type="module" crossorigin src="/durable/assets/index-DwESVU5p.js"></script>
|
|
14
14
|
<link rel="modulepreload" crossorigin href="/durable/assets/index-vYlHyRGm.js">
|
|
15
15
|
<link rel="stylesheet" crossorigin href="/durable/assets/index-EP2O5ZfT.css">
|
|
16
16
|
<link rel="stylesheet" crossorigin href="/durable/assets/index-B2Kz5wtG.css">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dudousxd/nestjs-durable-dashboard",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "Embedded control plane (runs, step timeline, retry/cancel) for nestjs-durable — bundled React SPA served by NestJS",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Davide Carvalho",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"tsup": "8.3.5",
|
|
57
57
|
"typescript": "5.9.3",
|
|
58
58
|
"vite": "5.4.21",
|
|
59
|
-
"@dudousxd/nestjs-durable-core": "^0.
|
|
59
|
+
"@dudousxd/nestjs-durable-core": "^0.60.0"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "vite build && tsup && tsc -p tsconfig.client.json",
|