@opentrust/dashboard 7.3.3 → 7.3.4

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.
@@ -158,7 +158,7 @@ Please change the parent <Route path="${m}"> to <Route path="${m==="/"?"*":`${m}
158
158
  *
159
159
  * This source code is licensed under the ISC license.
160
160
  * See the LICENSE file in the root directory of this source tree.
161
- */const i2=Pe("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]),s2=[{label:"Discovery",items:[{to:"/inventory/agents",label:"Agents",icon:cg},{to:"/inventory/identities",label:"Identities",icon:dg},{to:"/inventory/permissions",label:"Permissions",icon:JS}]},{label:"Secure",items:[{to:"/secure/risk",label:"Risk",icon:pg},{to:"/secure/graph",label:"Graph",icon:n2}]}];function l2(){const e=It();return g.jsxs("aside",{className:"flex w-56 flex-col border-r border-border bg-card",children:[g.jsxs("div",{className:"flex h-14 items-center gap-2 border-b border-border px-4",children:[g.jsx(hg,{className:"h-5 w-5 text-foreground"}),g.jsx("span",{className:"text-sm font-semibold tracking-tight text-foreground",children:"OpenTrust"})]}),g.jsx("nav",{className:"flex-1 space-y-6 px-3 py-4",children:s2.map(t=>g.jsxs("div",{children:[g.jsx("p",{className:"mb-2 px-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:t.label}),g.jsx("div",{className:"space-y-0.5",children:t.items.map(n=>g.jsxs(Jm,{to:n.to,className:Tt("flex items-center gap-2.5 rounded-md px-2 py-1.5 text-sm transition-colors",e.pathname.startsWith(n.to)?"bg-accent text-accent-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:[g.jsx(n.icon,{className:"h-4 w-4 shrink-0"}),n.label]},n.to))})]},t.label))}),g.jsx("div",{className:"border-t border-border px-4 py-3",children:g.jsx("p",{className:"text-[11px] text-muted-foreground",children:"v7.0.0"})})]})}function a2(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function u2(...e){return t=>e.forEach(n=>a2(n,t))}var mg=k.forwardRef((e,t)=>{const{children:n,...r}=e,o=k.Children.toArray(n),i=o.find(d2);if(i){const s=i.props.children,l=o.map(a=>a===i?k.Children.count(s)>1?k.Children.only(null):k.isValidElement(s)?s.props.children:null:a);return g.jsx(yu,{...r,ref:t,children:k.isValidElement(s)?k.cloneElement(s,void 0,l):null})}return g.jsx(yu,{...r,ref:t,children:n})});mg.displayName="Slot";var yu=k.forwardRef((e,t)=>{const{children:n,...r}=e;if(k.isValidElement(n)){const o=h2(n);return k.cloneElement(n,{...f2(r,n.props),ref:t?u2(t,o):o})}return k.Children.count(n)>1?k.Children.only(null):null});yu.displayName="SlotClone";var c2=({children:e})=>g.jsx(g.Fragment,{children:e});function d2(e){return k.isValidElement(e)&&e.type===c2}function f2(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...l)=>{i(...l),o(...l)}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function h2(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function gg(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=gg(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function p2(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=gg(e))&&(r&&(r+=" "),r+=t);return r}const Nf=e=>typeof e=="boolean"?"".concat(e):e===0?"0":e,Cf=p2,m2=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Cf(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:o,defaultVariants:i}=t,s=Object.keys(o).map(u=>{const f=n==null?void 0:n[u],c=i==null?void 0:i[u];if(f===null)return null;const d=Nf(f)||Nf(c);return o[u][d]}),l=n&&Object.entries(n).reduce((u,f)=>{let[c,d]=f;return d===void 0||(u[c]=d),u},{}),a=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,f)=>{let{class:c,className:d,...y}=f;return Object.entries(y).every(v=>{let[x,S]=v;return Array.isArray(S)?S.includes({...i,...l}[x]):{...i,...l}[x]===S})?[...u,c,d]:u},[]);return Cf(e,s,a,n==null?void 0:n.class,n==null?void 0:n.className)},g2=m2("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-border bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Qo=k.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...o},i)=>{const s=r?mg:"button";return g.jsx(s,{className:Tt(g2({variant:t,size:n,className:e})),ref:i,...o})});Qo.displayName="Button";function y2(){const{user:e,logout:t}=Ic(),{theme:n,setTheme:r}=aS();return g.jsxs("header",{className:"flex h-14 items-center justify-between border-b border-border bg-card px-6",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("div",{className:"h-2 w-2 rounded-full bg-success"}),g.jsx("span",{className:"text-xs text-muted-foreground",children:"Connected"})]}),g.jsxs("div",{className:"flex items-center gap-2",children:[(e==null?void 0:e.email)&&g.jsx("span",{className:"text-xs text-muted-foreground",children:e.email}),g.jsx(Qo,{variant:"ghost",size:"icon",onClick:()=>r(n==="dark"?"light":"dark"),className:"h-8 w-8",children:n==="dark"?g.jsx(o2,{className:"h-4 w-4"}):g.jsx(t2,{className:"h-4 w-4"})}),g.jsx(Qo,{variant:"ghost",size:"icon",onClick:t,className:"h-8 w-8",children:g.jsx(e2,{className:"h-4 w-4"})})]})]})}function v2(){return g.jsxs("div",{className:"flex h-screen overflow-hidden bg-background",children:[g.jsx(l2,{}),g.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[g.jsx(y2,{}),g.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:g.jsx(N1,{})})]})]})}const Zo=k.forwardRef(({className:e,type:t,...n},r)=>g.jsx("input",{type:t,className:Tt("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors","file:border-0 file:bg-transparent file:text-sm file:font-medium","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring","disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));Zo.displayName="Input";function x2(){const[e]=tS(),[t,n]=k.useState(e.get("email")??""),[r,o]=k.useState(e.get("key")??""),[i,s]=k.useState(""),[l,a]=k.useState(!1),{login:u,isAuthenticated:f,isLoading:c}=Ic(),d=ml();if(k.useEffect(()=>{f&&d("/inventory/agents",{replace:!0})},[f,d]),c)return g.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:g.jsx("div",{className:"text-muted-foreground text-sm",children:"Loading..."})});const y=async v=>{v.preventDefault(),s(""),a(!0);try{await u(t,r),d("/inventory/agents",{replace:!0})}catch(x){s(x instanceof Error?x.message:"Login failed")}finally{a(!1)}};return g.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:g.jsxs("div",{className:"w-full max-w-sm space-y-8 px-4",children:[g.jsxs("div",{className:"flex flex-col items-center gap-3",children:[g.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl border border-border bg-card",children:g.jsx(hg,{className:"h-6 w-6 text-foreground"})}),g.jsxs("div",{className:"text-center",children:[g.jsx("h1",{className:"text-lg font-semibold tracking-tight text-foreground",children:"OpenTrust"}),g.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Sign in to your dashboard"})]})]}),g.jsxs("form",{onSubmit:y,className:"space-y-4",children:[g.jsxs("div",{className:"space-y-2",children:[g.jsx("label",{className:"text-sm font-medium text-foreground",children:"Email"}),g.jsx(Zo,{type:"email",placeholder:"you@example.com",value:t,onChange:v=>n(v.target.value),required:!0})]}),g.jsxs("div",{className:"space-y-2",children:[g.jsx("label",{className:"text-sm font-medium text-foreground",children:"API Key"}),g.jsx(Zo,{type:"password",placeholder:"sk-og-...",value:r,onChange:v=>o(v.target.value),required:!0})]}),i&&g.jsx("p",{className:"rounded-md bg-destructive/10 px-3 py-2 text-sm text-destructive",children:i}),g.jsx(Qo,{type:"submit",className:"w-full",disabled:l,children:l?"Signing in...":"Sign in"})]}),g.jsx("p",{className:"text-center text-xs text-muted-foreground",children:"API Key is generated when registering an agent with the Core API."})]})})}const w2="/api";async function Me(e,t){const n=localStorage.getItem("opentrust_user"),r=n?JSON.parse(n).apiKey:null,o=await fetch(`${w2}${e}`,{...t,headers:{"Content-Type":"application/json",...r&&{Authorization:`Bearer ${r}`},...t==null?void 0:t.headers}});if(!o.ok)throw new Error(`API ${o.status}: ${await o.text()}`);return o.json()}const bn={agents:{list:()=>Me("/agents"),get:e=>Me(`/agents/${e}`),create:e=>Me("/agents",{method:"POST",body:JSON.stringify(e)}),update:(e,t)=>Me(`/agents/${e}`,{method:"PUT",body:JSON.stringify(t)}),delete:e=>Me(`/agents/${e}`,{method:"DELETE"})},discovery:{agents:()=>Me("/discovery/agents"),profile:e=>Me(`/discovery/agents/${e}/profile`)},observations:{recent:(e=50)=>Me(`/observations?limit=${e}`),permissions:()=>Me("/observations/permissions"),anomalies:()=>Me("/observations/anomalies"),summary:()=>Me("/observations/summary"),agentPermissions:e=>Me(`/observations/agents/${e}/permissions`)},detect:e=>Me("/detect",{method:"POST",body:JSON.stringify(e)}),usage:{summary:(e=30)=>Me(`/usage/summary?days=${e}`),daily:(e=30)=>Me(`/usage/daily?days=${e}`)},settings:{get:()=>Me("/settings"),update:e=>Me("/settings",{method:"PUT",body:JSON.stringify(e)})}};function Ge({className:e,variant:t="default",...n}){return g.jsx("div",{className:Tt("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{"border-transparent bg-primary text-primary-foreground shadow":t==="default","border-transparent bg-secondary text-secondary-foreground":t==="secondary","border-transparent bg-destructive text-destructive-foreground shadow":t==="destructive","text-foreground":t==="outline","border-transparent bg-success/15 text-success":t==="success","border-transparent bg-warning/15 text-warning":t==="warning"},e),...n})}function S2(){const[e,t]=k.useState([]),[n,r]=k.useState(""),[o,i]=k.useState(!0),s=async()=>{i(!0);try{const u=await bn.discovery.agents();t(u.data??[])}catch{}i(!1)};k.useEffect(()=>{s()},[]);const l=e.filter(u=>{var f;return!n||((f=u.name)==null?void 0:f.toLowerCase().includes(n.toLowerCase()))}),a=u=>u==="active"?"success":u==="inactive"?"secondary":"warning";return g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Agents"}),g.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:[e.length," agent",e.length!==1?"s":""," discovered"]})]}),g.jsxs(Qo,{variant:"outline",size:"sm",onClick:s,children:[g.jsx(r2,{className:"h-3.5 w-3.5"}),"Scan"]})]}),g.jsxs("div",{className:"relative max-w-sm",children:[g.jsx(fg,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),g.jsx(Zo,{placeholder:"Search agents...",className:"pl-9",value:n,onChange:u=>r(u.target.value)})]}),o?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):l.length===0?g.jsxs("div",{className:"flex h-40 flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-border",children:[g.jsx(cg,{className:"h-8 w-8 text-muted-foreground/50"}),g.jsx("p",{className:"text-sm text-muted-foreground",children:"No agents found"})]}):g.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:l.map(u=>{var f;return g.jsxs(yl,{to:`/inventory/agents/${u.id}`,className:"group flex flex-col gap-3 rounded-lg border border-border bg-card p-4 transition-colors hover:border-muted-foreground/30",children:[g.jsxs("div",{className:"flex items-start justify-between",children:[g.jsxs("div",{className:"flex items-center gap-2.5",children:[g.jsx("span",{className:"text-xl",children:u.emoji||"🤖"}),g.jsxs("div",{children:[g.jsx("p",{className:"text-sm font-medium text-foreground group-hover:text-foreground",children:u.name}),g.jsxs("p",{className:"text-xs text-muted-foreground",children:[u.provider||"unknown",u.model?` · ${u.model}`:""]})]})]}),g.jsx(Ge,{variant:a(u.status??"inactive"),className:"text-[10px]",children:u.status??"inactive"})]}),((f=u.skills)==null?void 0:f.length)>0&&g.jsxs("div",{className:"flex flex-wrap gap-1",children:[u.skills.slice(0,4).map(c=>g.jsx("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:typeof c=="string"?c:c.name},c.name??c)),u.skills.length>4&&g.jsxs("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:["+",u.skills.length-4]})]})]},u.id)})})]})}const hn=k.forwardRef(({className:e,...t},n)=>g.jsx("div",{ref:n,className:Tt("rounded-lg border border-border bg-card text-card-foreground shadow-sm",e),...t}));hn.displayName="Card";const On=k.forwardRef(({className:e,...t},n)=>g.jsx("div",{ref:n,className:Tt("flex flex-col space-y-1.5 p-6",e),...t}));On.displayName="CardHeader";const Fn=k.forwardRef(({className:e,...t},n)=>g.jsx("h3",{ref:n,className:Tt("font-semibold leading-none tracking-tight",e),...t}));Fn.displayName="CardTitle";const k2=k.forwardRef(({className:e,...t},n)=>g.jsx("p",{ref:n,className:Tt("text-sm text-muted-foreground",e),...t}));k2.displayName="CardDescription";const pn=k.forwardRef(({className:e,...t},n)=>g.jsx("div",{ref:n,className:Tt("p-6 pt-0",e),...t}));pn.displayName="CardContent";const E2=["Profile","Tasks","Identities","Permissions"];function N2(){const{id:e}=c1(),[t,n]=k.useState(null),[r,o]=k.useState([]),[i,s]=k.useState("Profile"),[l,a]=k.useState(!0);return k.useEffect(()=>{e&&(a(!0),Promise.all([bn.discovery.profile(e).catch(()=>null),bn.observations.agentPermissions(e).catch(()=>({data:[]}))]).then(([u,f])=>{n((u==null?void 0:u.data)??null),o((f==null?void 0:f.data)??[]),a(!1)}))},[e]),l?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):t?g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{className:"flex items-center gap-3",children:[g.jsx(yl,{to:"/inventory/agents",className:"rounded-md p-1.5 hover:bg-accent",children:g.jsx(XS,{className:"h-4 w-4"})}),g.jsxs("div",{className:"flex items-center gap-3",children:[g.jsx("span",{className:"text-2xl",children:t.emoji||"🤖"}),g.jsxs("div",{children:[g.jsx("h1",{className:"text-lg font-semibold",children:t.name||e}),g.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.provider||"unknown",t.model?` / ${t.model}`:""]})]})]})]}),g.jsx("div",{className:"flex gap-1 border-b border-border",children:E2.map(u=>g.jsx("button",{onClick:()=>s(u),className:Tt("border-b-2 px-4 py-2 text-sm font-medium transition-colors",i===u?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:u},u))}),i==="Profile"&&g.jsx(C2,{profile:t}),i==="Tasks"&&g.jsx(_2,{profile:t}),i==="Identities"&&g.jsx(b2,{profile:t}),i==="Permissions"&&g.jsx(P2,{permissions:r})]}):g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Agent not found"})}function C2({profile:e}){const t=e.skills??[];return g.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[g.jsxs(hn,{children:[g.jsx(On,{children:g.jsx(Fn,{className:"text-sm",children:"Info"})}),g.jsxs(pn,{className:"space-y-2 text-sm",children:[g.jsx(fo,{label:"Owner",value:e.ownerName||"—"}),g.jsx(fo,{label:"Creature",value:e.creature||"—"}),g.jsx(fo,{label:"Vibe",value:e.vibe||"—"}),g.jsx(fo,{label:"Sessions",value:String(e.sessionCount??0)}),g.jsx(fo,{label:"Last Active",value:e.lastActive??"never"})]})]}),g.jsxs(hn,{children:[g.jsx(On,{children:g.jsxs(Fn,{className:"flex items-center gap-2 text-sm",children:[g.jsx(i2,{className:"h-4 w-4"})," Skills (",t.length,")"]})}),g.jsx(pn,{children:t.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No skills installed"}):g.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.map(n=>g.jsx(Ge,{variant:"secondary",className:"text-xs font-normal",children:n.name},n.name))})})]}),g.jsxs(hn,{children:[g.jsx(On,{children:g.jsx(Fn,{className:"text-sm",children:"Plugins"})}),g.jsx(pn,{children:(e.plugins??[]).length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No plugins"}):g.jsx("div",{className:"space-y-1.5",children:(e.plugins??[]).map(n=>g.jsxs("div",{className:"flex items-center justify-between text-sm",children:[g.jsx("span",{children:n.name}),g.jsx(Ge,{variant:n.enabled?"success":"secondary",className:"text-[10px]",children:n.enabled?"on":"off"})]},n.name))})})]}),g.jsxs(hn,{children:[g.jsx(On,{children:g.jsx(Fn,{className:"text-sm",children:"Connected Systems"})}),g.jsx(pn,{children:(e.connectedSystems??[]).length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"None"}):g.jsx("div",{className:"flex flex-wrap gap-1.5",children:(e.connectedSystems??[]).map(n=>g.jsx(Ge,{variant:"outline",className:"text-xs",children:n},n))})})]})]})}function _2({profile:e}){const t=e.cronJobs??[];return g.jsxs(hn,{children:[g.jsx(On,{children:g.jsxs(Fn,{className:"flex items-center gap-2 text-sm",children:[g.jsx(ZS,{className:"h-4 w-4"})," Scheduled Tasks (",t.length,")"]})}),g.jsx(pn,{children:t.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No scheduled tasks"}):g.jsx("div",{className:"space-y-2",children:t.map((n,r)=>g.jsxs("div",{className:"flex items-center justify-between rounded-md border border-border px-3 py-2 text-sm",children:[g.jsxs("div",{children:[g.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:n.schedule}),g.jsx("span",{className:"ml-2",children:n.task??n.id})]}),g.jsx(Ge,{variant:n.enabled!==!1?"success":"secondary",className:"text-[10px]",children:n.enabled!==!1?"active":"paused"})]},r))})})]})}function b2({profile:e}){const t=e.workspaceFiles??{},n=[{label:"SOUL.md",content:t.soul},{label:"IDENTITY.md",content:t.identity},{label:"USER.md",content:t.user}].filter(r=>r.content);return g.jsx("div",{className:"space-y-4",children:n.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No identity files found"}):n.map(r=>g.jsxs(hn,{children:[g.jsx(On,{children:g.jsxs(Fn,{className:"flex items-center gap-2 text-sm",children:[g.jsx(qS,{className:"h-4 w-4"})," ",r.label]})}),g.jsx(pn,{children:g.jsx("pre",{className:"max-h-60 overflow-auto whitespace-pre-wrap rounded-md bg-muted p-3 font-mono text-xs text-muted-foreground",children:r.content})})]},r.label))})}function P2({permissions:e}){return e.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No observed permissions"}):g.jsx("div",{className:"overflow-x-auto rounded-lg border border-border",children:g.jsxs("table",{className:"w-full text-sm",children:[g.jsx("thead",{children:g.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Tool"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Category"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Access"}),g.jsx("th",{className:"px-4 py-2.5 text-right font-medium text-muted-foreground",children:"Calls"}),g.jsx("th",{className:"px-4 py-2.5 text-right font-medium text-muted-foreground",children:"Errors"})]})}),g.jsx("tbody",{children:e.map(t=>g.jsxs("tr",{className:"border-b border-border last:border-0",children:[g.jsx("td",{className:"px-4 py-2.5 font-mono text-xs",children:t.toolName}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:t.category??"—"})}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:t.accessPattern==="write"?"warning":t.accessPattern==="admin"?"destructive":"secondary",className:"text-[10px]",children:t.accessPattern??"read"})}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs",children:t.callCount}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs text-destructive",children:t.errorCount||"—"})]},t.id))})]})})}function fo({label:e,value:t}){return g.jsxs("div",{className:"flex justify-between",children:[g.jsx("span",{className:"text-muted-foreground",children:e}),g.jsx("span",{className:"font-medium",children:t})]})}function M2(){const[e,t]=k.useState([]),[n,r]=k.useState(!0),[o,i]=k.useState(new Set);k.useEffect(()=>{bn.discovery.agents().then(a=>{t(a.data??[]),r(!1)}).catch(()=>r(!1))},[]);const s=[{category:"Agents",items:e.map(a=>({id:a.id,name:a.name,emoji:a.emoji,provider:a.provider,status:a.status}))},{category:"Owners",items:[...new Set(e.map(a=>a.ownerName).filter(Boolean))].map(a=>({id:a,name:a,type:"owner"}))},{category:"Connected Systems",items:[...new Set(e.flatMap(a=>a.connectedSystems??[]))].map(a=>({id:a,name:a,type:"system"}))}],l=a=>{i(u=>{const f=new Set(u);return f.has(a)?f.delete(a):f.add(a),f})};return n?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Identities"}),g.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Agents, owners, and connected systems"})]}),g.jsx("div",{className:"space-y-3",children:s.map(a=>g.jsxs(hn,{children:[g.jsxs("button",{onClick:()=>l(a.category),className:"flex w-full items-center justify-between p-4 text-left",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(dg,{className:"h-4 w-4 text-muted-foreground"}),g.jsx("span",{className:"text-sm font-medium",children:a.category}),g.jsx(Ge,{variant:"secondary",className:"text-[10px]",children:a.items.length})]}),o.has(a.category)?g.jsx(KS,{className:"h-4 w-4 text-muted-foreground"}):g.jsx(QS,{className:"h-4 w-4 text-muted-foreground"})]}),o.has(a.category)&&g.jsx(pn,{className:"border-t border-border pt-3",children:a.items.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"None"}):g.jsx("div",{className:"space-y-1.5",children:a.items.map(u=>g.jsxs("div",{className:"flex items-center justify-between rounded-md px-3 py-2 text-sm hover:bg-muted/50",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[u.emoji&&g.jsx("span",{className:"text-base",children:u.emoji}),g.jsx("span",{children:u.name})]}),u.status&&g.jsx(Ge,{variant:u.status==="active"?"success":"secondary",className:"text-[10px]",children:u.status}),u.type&&g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:u.type})]},u.id))})})]},a.category))})]})}function j2(){const[e,t]=k.useState([]),[n,r]=k.useState(""),[o,i]=k.useState("callCount"),[s,l]=k.useState(!1),[a,u]=k.useState(!0);k.useEffect(()=>{bn.observations.permissions().then(d=>{t(d.data??[]),u(!1)}).catch(()=>u(!1))},[]);const f=k.useMemo(()=>{let d=e;if(n){const y=n.toLowerCase();d=d.filter(v=>{var x,S;return((x=v.toolName)==null?void 0:x.toLowerCase().includes(y))||((S=v.category)==null?void 0:S.toLowerCase().includes(y))})}return[...d].sort((y,v)=>{const x=y[o]??0,S=v[o]??0;return typeof x=="string"?s?x.localeCompare(S):S.localeCompare(x):s?x-S:S-x})},[e,n,o,s]),c=d=>{o===d?l(!s):(i(d),l(!1))};return a?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Permissions"}),g.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:[e.length," observed tool permission",e.length!==1?"s":""]})]}),g.jsxs("div",{className:"relative max-w-sm",children:[g.jsx(fg,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),g.jsx(Zo,{placeholder:"Filter by tool or category...",className:"pl-9",value:n,onChange:d=>r(d.target.value)})]}),g.jsx("div",{className:"overflow-x-auto rounded-lg border border-border",children:g.jsxs("table",{className:"w-full text-sm",children:[g.jsx("thead",{children:g.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[g.jsx(aa,{label:"Tool",sortKey:"toolName",current:o,asc:s,onSort:c}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Category"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Access"}),g.jsx(aa,{label:"Calls",sortKey:"callCount",current:o,asc:s,onSort:c,align:"right"}),g.jsx(aa,{label:"Errors",sortKey:"errorCount",current:o,asc:s,onSort:c,align:"right"})]})}),g.jsx("tbody",{children:f.length===0?g.jsx("tr",{children:g.jsx("td",{colSpan:5,className:"px-4 py-8 text-center text-muted-foreground",children:"No permissions"})}):f.map(d=>g.jsxs("tr",{className:"border-b border-border last:border-0 hover:bg-muted/30",children:[g.jsx("td",{className:"px-4 py-2.5 font-mono text-xs",children:d.toolName}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:d.category??"—"})}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:d.accessPattern==="write"?"warning":d.accessPattern==="admin"?"destructive":"secondary",className:"text-[10px]",children:d.accessPattern??"read"})}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs",children:d.callCount}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs text-destructive",children:d.errorCount||"—"})]},d.id))})]})})]})}function aa({label:e,sortKey:t,current:n,asc:r,onSort:o,align:i="left"}){return g.jsx("th",{className:`cursor-pointer px-4 py-2.5 font-medium text-muted-foreground hover:text-foreground ${i==="right"?"text-right":"text-left"}`,onClick:()=>o(t),children:g.jsxs("span",{className:"inline-flex items-center gap-1",children:[e,n===t&&g.jsx(GS,{className:"h-3 w-3"})]})})}function L2(){const[e,t]=k.useState([]),[n,r]=k.useState(!0);k.useEffect(()=>{bn.observations.anomalies().then(s=>{t(s.data??[]),r(!1)}).catch(()=>r(!1))},[]);const o=s=>s.blocked||s.errorCount>3?"high":s.callCount===1||s.errorCount>0?"medium":"low",i=s=>s==="high"?"destructive":s==="medium"?"warning":"secondary";return n?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Risk Overview"}),g.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:[e.length," anomal",e.length!==1?"ies":"y"," detected"]})]}),e.length===0?g.jsxs("div",{className:"flex h-40 flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-border",children:[g.jsx(pg,{className:"h-8 w-8 text-muted-foreground/50"}),g.jsx("p",{className:"text-sm text-muted-foreground",children:"No anomalies detected"})]}):g.jsx("div",{className:"overflow-x-auto rounded-lg border border-border",children:g.jsxs("table",{className:"w-full text-sm",children:[g.jsx("thead",{children:g.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Tool"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Agent"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Risk"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Category"}),g.jsx("th",{className:"px-4 py-2.5 text-right font-medium text-muted-foreground",children:"First Seen"})]})}),g.jsx("tbody",{children:e.map(s=>{var a;const l=o(s);return g.jsxs("tr",{className:"border-b border-border last:border-0 hover:bg-muted/30",children:[g.jsx("td",{className:"px-4 py-2.5 font-mono text-xs",children:s.toolName}),g.jsx("td",{className:"px-4 py-2.5 text-xs text-muted-foreground",children:((a=s.agentId)==null?void 0:a.slice(0,8))??"—"}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:i(l),className:"text-[10px]",children:l})}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:s.category??"—"})}),g.jsx("td",{className:"px-4 py-2.5 text-right text-xs text-muted-foreground",children:s.firstSeen?new Date(s.firstSeen).toLocaleDateString():"—"})]},s.id)})})]})})]})}function Ee(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=Ee(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var R2={value:()=>{}};function vl(){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 cs(n)}function cs(e){this._=e}function I2(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}cs.prototype=vl.prototype={constructor:cs,on:function(e,t){var n=this._,r=I2(e+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(e=r[i]).type)&&(o=T2(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(o=(e=r[i]).type)n[o]=_f(n[o],e.name,t);else if(t==null)for(o in n)n[o]=_f(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new cs(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};function T2(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function _f(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=R2,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var vu="http://www.w3.org/1999/xhtml";const bf={svg:"http://www.w3.org/2000/svg",xhtml:vu,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function xl(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),bf.hasOwnProperty(t)?{space:bf[t],local:e}:e}function z2(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===vu&&t.documentElement.namespaceURI===vu?t.createElement(e):t.createElementNS(n,e)}}function A2(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function yg(e){var t=xl(e);return(t.local?A2:z2)(t)}function $2(){}function zc(e){return e==null?$2:function(){return this.querySelector(e)}}function D2(e){typeof e!="function"&&(e=zc(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,l=r[o]=new Array(s),a,u,f=0;f<s;++f)(a=i[f])&&(u=e.call(a,a.__data__,f,i))&&("__data__"in a&&(u.__data__=a.__data__),l[f]=u);return new et(r,this._parents)}function O2(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function F2(){return[]}function vg(e){return e==null?F2:function(){return this.querySelectorAll(e)}}function H2(e){return function(){return O2(e.apply(this,arguments))}}function V2(e){typeof e=="function"?e=H2(e):e=vg(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var s=t[i],l=s.length,a,u=0;u<l;++u)(a=s[u])&&(r.push(e.call(a,a.__data__,u,s)),o.push(a));return new et(r,o)}function xg(e){return function(){return this.matches(e)}}function wg(e){return function(t){return t.matches(e)}}var B2=Array.prototype.find;function U2(e){return function(){return B2.call(this.children,e)}}function W2(){return this.firstElementChild}function Y2(e){return this.select(e==null?W2:U2(typeof e=="function"?e:wg(e)))}var X2=Array.prototype.filter;function G2(){return Array.from(this.children)}function K2(e){return function(){return X2.call(this.children,e)}}function Q2(e){return this.selectAll(e==null?G2:K2(typeof e=="function"?e:wg(e)))}function Z2(e){typeof e!="function"&&(e=xg(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,l=r[o]=[],a,u=0;u<s;++u)(a=i[u])&&e.call(a,a.__data__,u,i)&&l.push(a);return new et(r,this._parents)}function Sg(e){return new Array(e.length)}function q2(){return new et(this._enter||this._groups.map(Sg),this._parents)}function Fs(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Fs.prototype={constructor:Fs,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 J2(e){return function(){return e}}function ek(e,t,n,r,o,i){for(var s=0,l,a=t.length,u=i.length;s<u;++s)(l=t[s])?(l.__data__=i[s],r[s]=l):n[s]=new Fs(e,i[s]);for(;s<a;++s)(l=t[s])&&(o[s]=l)}function tk(e,t,n,r,o,i,s){var l,a,u=new Map,f=t.length,c=i.length,d=new Array(f),y;for(l=0;l<f;++l)(a=t[l])&&(d[l]=y=s.call(a,a.__data__,l,t)+"",u.has(y)?o[l]=a:u.set(y,a));for(l=0;l<c;++l)y=s.call(e,i[l],l,i)+"",(a=u.get(y))?(r[l]=a,a.__data__=i[l],u.delete(y)):n[l]=new Fs(e,i[l]);for(l=0;l<f;++l)(a=t[l])&&u.get(d[l])===a&&(o[l]=a)}function nk(e){return e.__data__}function rk(e,t){if(!arguments.length)return Array.from(this,nk);var n=t?tk:ek,r=this._parents,o=this._groups;typeof e!="function"&&(e=J2(e));for(var i=o.length,s=new Array(i),l=new Array(i),a=new Array(i),u=0;u<i;++u){var f=r[u],c=o[u],d=c.length,y=ok(e.call(f,f&&f.__data__,u,r)),v=y.length,x=l[u]=new Array(v),S=s[u]=new Array(v),h=a[u]=new Array(d);n(f,c,x,S,h,y,t);for(var m=0,p=0,w,E;m<v;++m)if(w=x[m]){for(m>=p&&(p=m+1);!(E=S[p])&&++p<v;);w._next=E||null}}return s=new et(s,r),s._enter=l,s._exit=a,s}function ok(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ik(){return new et(this._exit||this._groups.map(Sg),this._parents)}function sk(e,t,n){var r=this.enter(),o=this,i=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function lk(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,s=Math.min(o,i),l=new Array(o),a=0;a<s;++a)for(var u=n[a],f=r[a],c=u.length,d=l[a]=new Array(c),y,v=0;v<c;++v)(y=u[v]||f[v])&&(d[v]=y);for(;a<o;++a)l[a]=n[a];return new et(l,this._parents)}function ak(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function uk(e){e||(e=ck);function t(c,d){return c&&d?e(c.__data__,d.__data__):!c-!d}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],l=s.length,a=o[i]=new Array(l),u,f=0;f<l;++f)(u=s[f])&&(a[f]=u);a.sort(t)}return new et(o,this._parents).order()}function ck(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function dk(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function fk(){return Array.from(this)}function hk(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function pk(){let e=0;for(const t of this)++e;return e}function mk(){return!this.node()}function gk(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],i=0,s=o.length,l;i<s;++i)(l=o[i])&&e.call(l,l.__data__,i,o);return this}function yk(e){return function(){this.removeAttribute(e)}}function vk(e){return function(){this.removeAttributeNS(e.space,e.local)}}function xk(e,t){return function(){this.setAttribute(e,t)}}function wk(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Sk(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function kk(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 Ek(e,t){var n=xl(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?vk:yk:typeof t=="function"?n.local?kk:Sk:n.local?wk:xk)(n,t))}function kg(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Nk(e){return function(){this.style.removeProperty(e)}}function Ck(e,t,n){return function(){this.style.setProperty(e,t,n)}}function _k(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function bk(e,t,n){return arguments.length>1?this.each((t==null?Nk:typeof t=="function"?_k:Ck)(e,t,n??"")):zr(this.node(),e)}function zr(e,t){return e.style.getPropertyValue(t)||kg(e).getComputedStyle(e,null).getPropertyValue(t)}function Pk(e){return function(){delete this[e]}}function Mk(e,t){return function(){this[e]=t}}function jk(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Lk(e,t){return arguments.length>1?this.each((t==null?Pk:typeof t=="function"?jk:Mk)(e,t)):this.node()[e]}function Eg(e){return e.trim().split(/^|\s+/)}function Ac(e){return e.classList||new Ng(e)}function Ng(e){this._node=e,this._names=Eg(e.getAttribute("class")||"")}Ng.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 Cg(e,t){for(var n=Ac(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function _g(e,t){for(var n=Ac(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Rk(e){return function(){Cg(this,e)}}function Ik(e){return function(){_g(this,e)}}function Tk(e,t){return function(){(t.apply(this,arguments)?Cg:_g)(this,e)}}function zk(e,t){var n=Eg(e+"");if(arguments.length<2){for(var r=Ac(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?Tk:t?Rk:Ik)(n,t))}function Ak(){this.textContent=""}function $k(e){return function(){this.textContent=e}}function Dk(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Ok(e){return arguments.length?this.each(e==null?Ak:(typeof e=="function"?Dk:$k)(e)):this.node().textContent}function Fk(){this.innerHTML=""}function Hk(e){return function(){this.innerHTML=e}}function Vk(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Bk(e){return arguments.length?this.each(e==null?Fk:(typeof e=="function"?Vk:Hk)(e)):this.node().innerHTML}function Uk(){this.nextSibling&&this.parentNode.appendChild(this)}function Wk(){return this.each(Uk)}function Yk(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Xk(){return this.each(Yk)}function Gk(e){var t=typeof e=="function"?e:yg(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Kk(){return null}function Qk(e,t){var n=typeof e=="function"?e:yg(e),r=t==null?Kk:typeof t=="function"?t:zc(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Zk(){var e=this.parentNode;e&&e.removeChild(this)}function qk(){return this.each(Zk)}function Jk(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function eE(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function tE(e){return this.select(e?eE:Jk)}function nE(e){return arguments.length?this.property("__data__",e):this.node().__data__}function rE(e){return function(t){e.call(this,t,this.__data__)}}function oE(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 iE(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,i;n<o;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function sE(e,t,n){return function(){var r=this.__on,o,i=rE(t);if(r){for(var s=0,l=r.length;s<l;++s)if((o=r[s]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=t;return}}this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function lE(e,t,n){var r=oE(e+""),o,i=r.length,s;if(arguments.length<2){var l=this.node().__on;if(l){for(var a=0,u=l.length,f;a<u;++a)for(o=0,f=l[a];o<i;++o)if((s=r[o]).type===f.type&&s.name===f.name)return f.value}return}for(l=t?sE:iE,o=0;o<i;++o)this.each(l(r[o],t,n));return this}function bg(e,t,n){var r=kg(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function aE(e,t){return function(){return bg(this,e,t)}}function uE(e,t){return function(){return bg(this,e,t.apply(this,arguments))}}function cE(e,t){return this.each((typeof t=="function"?uE:aE)(e,t))}function*dE(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var Pg=[null];function et(e,t){this._groups=e,this._parents=t}function pi(){return new et([[document.documentElement]],Pg)}function fE(){return this}et.prototype=pi.prototype={constructor:et,select:D2,selectAll:V2,selectChild:Y2,selectChildren:Q2,filter:Z2,data:rk,enter:q2,exit:ik,join:sk,merge:lk,selection:fE,order:ak,sort:uk,call:dk,nodes:fk,node:hk,size:pk,empty:mk,each:gk,attr:Ek,style:bk,property:Lk,classed:zk,text:Ok,html:Bk,raise:Wk,lower:Xk,append:Gk,insert:Qk,remove:qk,clone:tE,datum:nE,on:lE,dispatch:cE,[Symbol.iterator]:dE};function Qe(e){return typeof e=="string"?new et([[document.querySelector(e)]],[document.documentElement]):new et([[e]],Pg)}function hE(e){let t;for(;t=e.sourceEvent;)e=t;return e}function mt(e,t){if(e=hE(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const pE={passive:!1},qo={capture:!0,passive:!1};function ua(e){e.stopImmediatePropagation()}function _r(e){e.preventDefault(),e.stopImmediatePropagation()}function Mg(e){var t=e.document.documentElement,n=Qe(e).on("dragstart.drag",_r,qo);"onselectstart"in t?n.on("selectstart.drag",_r,qo):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function jg(e,t){var n=e.document.documentElement,r=Qe(e).on("dragstart.drag",null);t&&(r.on("click.drag",_r,qo),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 Hi=e=>()=>e;function xu(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:s,y:l,dx:a,dy:u,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:a,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:f}})}xu.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function mE(e){return!e.ctrlKey&&!e.button}function gE(){return this.parentNode}function yE(e,t){return t??{x:e.x,y:e.y}}function vE(){return navigator.maxTouchPoints||"ontouchstart"in this}function Lg(){var e=mE,t=gE,n=yE,r=vE,o={},i=vl("start","drag","end"),s=0,l,a,u,f,c=0;function d(w){w.on("mousedown.drag",y).filter(r).on("touchstart.drag",S).on("touchmove.drag",h,pE).on("touchend.drag touchcancel.drag",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(w,E){if(!(f||!e.call(this,w,E))){var N=p(this,t.call(this,w,E),w,E,"mouse");N&&(Qe(w.view).on("mousemove.drag",v,qo).on("mouseup.drag",x,qo),Mg(w.view),ua(w),u=!1,l=w.clientX,a=w.clientY,N("start",w))}}function v(w){if(_r(w),!u){var E=w.clientX-l,N=w.clientY-a;u=E*E+N*N>c}o.mouse("drag",w)}function x(w){Qe(w.view).on("mousemove.drag mouseup.drag",null),jg(w.view,u),_r(w),o.mouse("end",w)}function S(w,E){if(e.call(this,w,E)){var N=w.changedTouches,_=t.call(this,w,E),M=N.length,R,$;for(R=0;R<M;++R)($=p(this,_,w,E,N[R].identifier,N[R]))&&(ua(w),$("start",w,N[R]))}}function h(w){var E=w.changedTouches,N=E.length,_,M;for(_=0;_<N;++_)(M=o[E[_].identifier])&&(_r(w),M("drag",w,E[_]))}function m(w){var E=w.changedTouches,N=E.length,_,M;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),_=0;_<N;++_)(M=o[E[_].identifier])&&(ua(w),M("end",w,E[_]))}function p(w,E,N,_,M,R){var $=i.copy(),I=mt(R||N,E),L,F,b;if((b=n.call(w,new xu("beforestart",{sourceEvent:N,target:d,identifier:M,active:s,x:I[0],y:I[1],dx:0,dy:0,dispatch:$}),_))!=null)return L=b.x-I[0]||0,F=b.y-I[1]||0,function z(j,A,C){var P=I,T;switch(j){case"start":o[M]=z,T=s++;break;case"end":delete o[M],--s;case"drag":I=mt(C||A,E),T=s;break}$.call(j,w,new xu(j,{sourceEvent:A,subject:b,target:d,identifier:M,active:T,x:I[0]+L,y:I[1]+F,dx:I[0]-P[0],dy:I[1]-P[1],dispatch:$}),_)}}return d.filter=function(w){return arguments.length?(e=typeof w=="function"?w:Hi(!!w),d):e},d.container=function(w){return arguments.length?(t=typeof w=="function"?w:Hi(w),d):t},d.subject=function(w){return arguments.length?(n=typeof w=="function"?w:Hi(w),d):n},d.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:Hi(!!w),d):r},d.on=function(){var w=i.on.apply(i,arguments);return w===i?d:w},d.clickDistance=function(w){return arguments.length?(c=(w=+w)*w,d):Math.sqrt(c)},d}function $c(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Rg(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function mi(){}var Jo=.7,Hs=1/Jo,br="\\s*([+-]?\\d+)\\s*",ei="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Lt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",xE=/^#([0-9a-f]{3,8})$/,wE=new RegExp(`^rgb\\(${br},${br},${br}\\)$`),SE=new RegExp(`^rgb\\(${Lt},${Lt},${Lt}\\)$`),kE=new RegExp(`^rgba\\(${br},${br},${br},${ei}\\)$`),EE=new RegExp(`^rgba\\(${Lt},${Lt},${Lt},${ei}\\)$`),NE=new RegExp(`^hsl\\(${ei},${Lt},${Lt}\\)$`),CE=new RegExp(`^hsla\\(${ei},${Lt},${Lt},${ei}\\)$`),Pf={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};$c(mi,Zn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Mf,formatHex:Mf,formatHex8:_E,formatHsl:bE,formatRgb:jf,toString:jf});function Mf(){return this.rgb().formatHex()}function _E(){return this.rgb().formatHex8()}function bE(){return Ig(this).formatHsl()}function jf(){return this.rgb().formatRgb()}function Zn(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=xE.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Lf(t):n===3?new Ue(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Vi(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Vi(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=wE.exec(e))?new Ue(t[1],t[2],t[3],1):(t=SE.exec(e))?new Ue(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kE.exec(e))?Vi(t[1],t[2],t[3],t[4]):(t=EE.exec(e))?Vi(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=NE.exec(e))?Tf(t[1],t[2]/100,t[3]/100,1):(t=CE.exec(e))?Tf(t[1],t[2]/100,t[3]/100,t[4]):Pf.hasOwnProperty(e)?Lf(Pf[e]):e==="transparent"?new Ue(NaN,NaN,NaN,0):null}function Lf(e){return new Ue(e>>16&255,e>>8&255,e&255,1)}function Vi(e,t,n,r){return r<=0&&(e=t=n=NaN),new Ue(e,t,n,r)}function PE(e){return e instanceof mi||(e=Zn(e)),e?(e=e.rgb(),new Ue(e.r,e.g,e.b,e.opacity)):new Ue}function wu(e,t,n,r){return arguments.length===1?PE(e):new Ue(e,t,n,r??1)}function Ue(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}$c(Ue,wu,Rg(mi,{brighter(e){return e=e==null?Hs:Math.pow(Hs,e),new Ue(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Jo:Math.pow(Jo,e),new Ue(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ue(Un(this.r),Un(this.g),Un(this.b),Vs(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:Rf,formatHex:Rf,formatHex8:ME,formatRgb:If,toString:If}));function Rf(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}`}function ME(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}${Hn((isNaN(this.opacity)?1:this.opacity)*255)}`}function If(){const e=Vs(this.opacity);return`${e===1?"rgb(":"rgba("}${Un(this.r)}, ${Un(this.g)}, ${Un(this.b)}${e===1?")":`, ${e})`}`}function Vs(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Un(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Hn(e){return e=Un(e),(e<16?"0":"")+e.toString(16)}function Tf(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yt(e,t,n,r)}function Ig(e){if(e instanceof yt)return new yt(e.h,e.s,e.l,e.opacity);if(e instanceof mi||(e=Zn(e)),!e)return new yt;if(e instanceof yt)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),s=NaN,l=i-o,a=(i+o)/2;return l?(t===i?s=(n-r)/l+(n<r)*6:n===i?s=(r-t)/l+2:s=(t-n)/l+4,l/=a<.5?i+o:2-i-o,s*=60):l=a>0&&a<1?0:s,new yt(s,l,a,e.opacity)}function jE(e,t,n,r){return arguments.length===1?Ig(e):new yt(e,t,n,r??1)}function yt(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}$c(yt,jE,Rg(mi,{brighter(e){return e=e==null?Hs:Math.pow(Hs,e),new yt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Jo:Math.pow(Jo,e),new yt(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new Ue(ca(e>=240?e-240:e+120,o,r),ca(e,o,r),ca(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new yt(zf(this.h),Bi(this.s),Bi(this.l),Vs(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=Vs(this.opacity);return`${e===1?"hsl(":"hsla("}${zf(this.h)}, ${Bi(this.s)*100}%, ${Bi(this.l)*100}%${e===1?")":`, ${e})`}`}}));function zf(e){return e=(e||0)%360,e<0?e+360:e}function Bi(e){return Math.max(0,Math.min(1,e||0))}function ca(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 Dc=e=>()=>e;function LE(e,t){return function(n){return e+n*t}}function RE(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 IE(e){return(e=+e)==1?Tg:function(t,n){return n-t?RE(t,n,e):Dc(isNaN(t)?n:t)}}function Tg(e,t){var n=t-e;return n?LE(e,n):Dc(isNaN(e)?t:e)}const Bs=function e(t){var n=IE(t);function r(o,i){var s=n((o=wu(o)).r,(i=wu(i)).r),l=n(o.g,i.g),a=n(o.b,i.b),u=Tg(o.opacity,i.opacity);return function(f){return o.r=s(f),o.g=l(f),o.b=a(f),o.opacity=u(f),o+""}}return r.gamma=e,r}(1);function TE(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=e[o]*(1-i)+t[o]*i;return r}}function zE(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function AE(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),i=new Array(n),s;for(s=0;s<r;++s)o[s]=jo(e[s],t[s]);for(;s<n;++s)i[s]=t[s];return function(l){for(s=0;s<r;++s)i[s]=o[s](l);return i}}function $E(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function bt(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function DE(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=jo(e[o],t[o]):r[o]=t[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var Su=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,da=new RegExp(Su.source,"g");function OE(e){return function(){return e}}function FE(e){return function(t){return e(t)+""}}function zg(e,t){var n=Su.lastIndex=da.lastIndex=0,r,o,i,s=-1,l=[],a=[];for(e=e+"",t=t+"";(r=Su.exec(e))&&(o=da.exec(t));)(i=o.index)>n&&(i=t.slice(n,i),l[s]?l[s]+=i:l[++s]=i),(r=r[0])===(o=o[0])?l[s]?l[s]+=o:l[++s]=o:(l[++s]=null,a.push({i:s,x:bt(r,o)})),n=da.lastIndex;return n<t.length&&(i=t.slice(n),l[s]?l[s]+=i:l[++s]=i),l.length<2?a[0]?FE(a[0].x):OE(t):(t=a.length,function(u){for(var f=0,c;f<t;++f)l[(c=a[f]).i]=c.x(u);return l.join("")})}function jo(e,t){var n=typeof t,r;return t==null||n==="boolean"?Dc(t):(n==="number"?bt:n==="string"?(r=Zn(t))?(t=r,Bs):zg:t instanceof Zn?Bs:t instanceof Date?$E:zE(t)?TE:Array.isArray(t)?AE:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?DE:bt)(e,t)}var Af=180/Math.PI,ku={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ag(e,t,n,r,o,i){var s,l,a;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(a=e*n+t*r)&&(n-=e*a,r-=t*a),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,a/=l),e*r<t*n&&(e=-e,t=-t,a=-a,s=-s),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*Af,skewX:Math.atan(a)*Af,scaleX:s,scaleY:l}}var Ui;function HE(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?ku:Ag(t.a,t.b,t.c,t.d,t.e,t.f)}function VE(e){return e==null||(Ui||(Ui=document.createElementNS("http://www.w3.org/2000/svg","g")),Ui.setAttribute("transform",e),!(e=Ui.transform.baseVal.consolidate()))?ku:(e=e.matrix,Ag(e.a,e.b,e.c,e.d,e.e,e.f))}function $g(e,t,n,r){function o(u){return u.length?u.pop()+" ":""}function i(u,f,c,d,y,v){if(u!==c||f!==d){var x=y.push("translate(",null,t,null,n);v.push({i:x-4,x:bt(u,c)},{i:x-2,x:bt(f,d)})}else(c||d)&&y.push("translate("+c+t+d+n)}function s(u,f,c,d){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),d.push({i:c.push(o(c)+"rotate(",null,r)-2,x:bt(u,f)})):f&&c.push(o(c)+"rotate("+f+r)}function l(u,f,c,d){u!==f?d.push({i:c.push(o(c)+"skewX(",null,r)-2,x:bt(u,f)}):f&&c.push(o(c)+"skewX("+f+r)}function a(u,f,c,d,y,v){if(u!==c||f!==d){var x=y.push(o(y)+"scale(",null,",",null,")");v.push({i:x-4,x:bt(u,c)},{i:x-2,x:bt(f,d)})}else(c!==1||d!==1)&&y.push(o(y)+"scale("+c+","+d+")")}return function(u,f){var c=[],d=[];return u=e(u),f=e(f),i(u.translateX,u.translateY,f.translateX,f.translateY,c,d),s(u.rotate,f.rotate,c,d),l(u.skewX,f.skewX,c,d),a(u.scaleX,u.scaleY,f.scaleX,f.scaleY,c,d),u=f=null,function(y){for(var v=-1,x=d.length,S;++v<x;)c[(S=d[v]).i]=S.x(y);return c.join("")}}}var BE=$g(HE,"px, ","px)","deg)"),UE=$g(VE,", ",")",")"),WE=1e-12;function $f(e){return((e=Math.exp(e))+1/e)/2}function YE(e){return((e=Math.exp(e))-1/e)/2}function XE(e){return((e=Math.exp(2*e))-1)/(e+1)}const ds=function e(t,n,r){function o(i,s){var l=i[0],a=i[1],u=i[2],f=s[0],c=s[1],d=s[2],y=f-l,v=c-a,x=y*y+v*v,S,h;if(x<WE)h=Math.log(d/u)/t,S=function(_){return[l+_*y,a+_*v,u*Math.exp(t*_*h)]};else{var m=Math.sqrt(x),p=(d*d-u*u+r*x)/(2*u*n*m),w=(d*d-u*u-r*x)/(2*d*n*m),E=Math.log(Math.sqrt(p*p+1)-p),N=Math.log(Math.sqrt(w*w+1)-w);h=(N-E)/t,S=function(_){var M=_*h,R=$f(E),$=u/(n*m)*(R*XE(t*M+E)-YE(E));return[l+$*y,a+$*v,u*R/$f(t*M+E)]}}return S.duration=h*1e3*t/Math.SQRT2,S}return o.rho=function(i){var s=Math.max(.001,+i),l=s*s,a=l*l;return e(s,l,a)},o}(Math.SQRT2,2,4);var Ar=0,xo=0,ho=0,Dg=1e3,Us,wo,Ws=0,qn=0,wl=0,ti=typeof performance=="object"&&performance.now?performance:Date,Og=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Oc(){return qn||(Og(GE),qn=ti.now()+wl)}function GE(){qn=0}function Ys(){this._call=this._time=this._next=null}Ys.prototype=Fg.prototype={constructor:Ys,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Oc():+n)+(t==null?0:+t),!this._next&&wo!==this&&(wo?wo._next=this:Us=this,wo=this),this._call=e,this._time=n,Eu()},stop:function(){this._call&&(this._call=null,this._time=1/0,Eu())}};function Fg(e,t,n){var r=new Ys;return r.restart(e,t,n),r}function KE(){Oc(),++Ar;for(var e=Us,t;e;)(t=qn-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Ar}function Df(){qn=(Ws=ti.now())+wl,Ar=xo=0;try{KE()}finally{Ar=0,ZE(),qn=0}}function QE(){var e=ti.now(),t=e-Ws;t>Dg&&(wl-=t,Ws=e)}function ZE(){for(var e,t=Us,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:Us=n);wo=e,Eu(r)}function Eu(e){if(!Ar){xo&&(xo=clearTimeout(xo));var t=e-qn;t>24?(e<1/0&&(xo=setTimeout(Df,e-ti.now()-wl)),ho&&(ho=clearInterval(ho))):(ho||(Ws=ti.now(),ho=setInterval(QE,Dg)),Ar=1,Og(Df))}}function Of(e,t,n){var r=new Ys;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var qE=vl("start","end","cancel","interrupt"),JE=[],Hg=0,Ff=1,Nu=2,fs=3,Hf=4,Cu=5,hs=6;function Sl(e,t,n,r,o,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;eN(e,n,{name:t,index:r,group:o,on:qE,tween:JE,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Hg})}function Fc(e,t){var n=Nt(e,t);if(n.state>Hg)throw new Error("too late; already scheduled");return n}function zt(e,t){var n=Nt(e,t);if(n.state>fs)throw new Error("too late; already running");return n}function Nt(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function eN(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=Fg(i,0,n.time);function i(u){n.state=Ff,n.timer.restart(s,n.delay,n.time),n.delay<=u&&s(u-n.delay)}function s(u){var f,c,d,y;if(n.state!==Ff)return a();for(f in r)if(y=r[f],y.name===n.name){if(y.state===fs)return Of(s);y.state===Hf?(y.state=hs,y.timer.stop(),y.on.call("interrupt",e,e.__data__,y.index,y.group),delete r[f]):+f<t&&(y.state=hs,y.timer.stop(),y.on.call("cancel",e,e.__data__,y.index,y.group),delete r[f])}if(Of(function(){n.state===fs&&(n.state=Hf,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Nu,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Nu){for(n.state=fs,o=new Array(d=n.tween.length),f=0,c=-1;f<d;++f)(y=n.tween[f].value.call(e,e.__data__,n.index,n.group))&&(o[++c]=y);o.length=c+1}}function l(u){for(var f=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(a),n.state=Cu,1),c=-1,d=o.length;++c<d;)o[c].call(e,f);n.state===Cu&&(n.on.call("end",e,e.__data__,n.index,n.group),a())}function a(){n.state=hs,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function ps(e,t){var n=e.__transition,r,o,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((r=n[s]).name!==t){i=!1;continue}o=r.state>Nu&&r.state<Cu,r.state=hs,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[s]}i&&delete e.__transition}}function tN(e){return this.each(function(){ps(this,e)})}function nN(e,t){var n,r;return function(){var o=zt(this,e),i=o.tween;if(i!==n){r=n=i;for(var s=0,l=r.length;s<l;++s)if(r[s].name===t){r=r.slice(),r.splice(s,1);break}}o.tween=r}}function rN(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=zt(this,e),s=i.tween;if(s!==r){o=(r=s).slice();for(var l={name:t,value:n},a=0,u=o.length;a<u;++a)if(o[a].name===t){o[a]=l;break}a===u&&o.push(l)}i.tween=o}}function oN(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Nt(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===e)return s.value;return null}return this.each((t==null?nN:rN)(n,e,t))}function Hc(e,t,n){var r=e._id;return e.each(function(){var o=zt(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Nt(o,r).value[t]}}function Vg(e,t){var n;return(typeof t=="number"?bt:t instanceof Zn?Bs:(n=Zn(t))?(t=n,Bs):zg)(e,t)}function iN(e){return function(){this.removeAttribute(e)}}function sN(e){return function(){this.removeAttributeNS(e.space,e.local)}}function lN(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttribute(e);return s===o?null:s===r?i:i=t(r=s,n)}}function aN(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===o?null:s===r?i:i=t(r=s,n)}}function uN(e,t,n){var r,o,i;return function(){var s,l=n(this),a;return l==null?void this.removeAttribute(e):(s=this.getAttribute(e),a=l+"",s===a?null:s===r&&a===o?i:(o=a,i=t(r=s,l)))}}function cN(e,t,n){var r,o,i;return function(){var s,l=n(this),a;return l==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),a=l+"",s===a?null:s===r&&a===o?i:(o=a,i=t(r=s,l)))}}function dN(e,t){var n=xl(e),r=n==="transform"?UE:Vg;return this.attrTween(e,typeof t=="function"?(n.local?cN:uN)(n,r,Hc(this,"attr."+e,t)):t==null?(n.local?sN:iN)(n):(n.local?aN:lN)(n,r,t))}function fN(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function hN(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function pN(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&hN(e,i)),n}return o._value=t,o}function mN(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&fN(e,i)),n}return o._value=t,o}function gN(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=xl(e);return this.tween(n,(r.local?pN:mN)(r,t))}function yN(e,t){return function(){Fc(this,e).delay=+t.apply(this,arguments)}}function vN(e,t){return t=+t,function(){Fc(this,e).delay=t}}function xN(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?yN:vN)(t,e)):Nt(this.node(),t).delay}function wN(e,t){return function(){zt(this,e).duration=+t.apply(this,arguments)}}function SN(e,t){return t=+t,function(){zt(this,e).duration=t}}function kN(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?wN:SN)(t,e)):Nt(this.node(),t).duration}function EN(e,t){if(typeof t!="function")throw new Error;return function(){zt(this,e).ease=t}}function NN(e){var t=this._id;return arguments.length?this.each(EN(t,e)):Nt(this.node(),t).ease}function CN(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;zt(this,e).ease=n}}function _N(e){if(typeof e!="function")throw new Error;return this.each(CN(this._id,e))}function bN(e){typeof e!="function"&&(e=xg(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,l=r[o]=[],a,u=0;u<s;++u)(a=i[u])&&e.call(a,a.__data__,u,i)&&l.push(a);return new Qt(r,this._parents,this._name,this._id)}function PN(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),s=new Array(r),l=0;l<i;++l)for(var a=t[l],u=n[l],f=a.length,c=s[l]=new Array(f),d,y=0;y<f;++y)(d=a[y]||u[y])&&(c[y]=d);for(;l<r;++l)s[l]=t[l];return new Qt(s,this._parents,this._name,this._id)}function MN(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 jN(e,t,n){var r,o,i=MN(t)?Fc:zt;return function(){var s=i(this,e),l=s.on;l!==r&&(o=(r=l).copy()).on(t,n),s.on=o}}function LN(e,t){var n=this._id;return arguments.length<2?Nt(this.node(),n).on.on(e):this.each(jN(n,e,t))}function RN(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function IN(){return this.on("end.remove",RN(this._id))}function TN(e){var t=this._name,n=this._id;typeof e!="function"&&(e=zc(e));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var l=r[s],a=l.length,u=i[s]=new Array(a),f,c,d=0;d<a;++d)(f=l[d])&&(c=e.call(f,f.__data__,d,l))&&("__data__"in f&&(c.__data__=f.__data__),u[d]=c,Sl(u[d],t,n,d,u,Nt(f,n)));return new Qt(i,this._parents,t,n)}function zN(e){var t=this._name,n=this._id;typeof e!="function"&&(e=vg(e));for(var r=this._groups,o=r.length,i=[],s=[],l=0;l<o;++l)for(var a=r[l],u=a.length,f,c=0;c<u;++c)if(f=a[c]){for(var d=e.call(f,f.__data__,c,a),y,v=Nt(f,n),x=0,S=d.length;x<S;++x)(y=d[x])&&Sl(y,t,n,x,d,v);i.push(d),s.push(f)}return new Qt(i,s,t,n)}var AN=pi.prototype.constructor;function $N(){return new AN(this._groups,this._parents)}function DN(e,t){var n,r,o;return function(){var i=zr(this,e),s=(this.style.removeProperty(e),zr(this,e));return i===s?null:i===n&&s===r?o:o=t(n=i,r=s)}}function Bg(e){return function(){this.style.removeProperty(e)}}function ON(e,t,n){var r,o=n+"",i;return function(){var s=zr(this,e);return s===o?null:s===r?i:i=t(r=s,n)}}function FN(e,t,n){var r,o,i;return function(){var s=zr(this,e),l=n(this),a=l+"";return l==null&&(a=l=(this.style.removeProperty(e),zr(this,e))),s===a?null:s===r&&a===o?i:(o=a,i=t(r=s,l))}}function HN(e,t){var n,r,o,i="style."+t,s="end."+i,l;return function(){var a=zt(this,e),u=a.on,f=a.value[i]==null?l||(l=Bg(t)):void 0;(u!==n||o!==f)&&(r=(n=u).copy()).on(s,o=f),a.on=r}}function VN(e,t,n){var r=(e+="")=="transform"?BE:Vg;return t==null?this.styleTween(e,DN(e,r)).on("end.style."+e,Bg(e)):typeof t=="function"?this.styleTween(e,FN(e,r,Hc(this,"style."+e,t))).each(HN(this._id,e)):this.styleTween(e,ON(e,r,t),n).on("end.style."+e,null)}function BN(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function UN(e,t,n){var r,o;function i(){var s=t.apply(this,arguments);return s!==o&&(r=(o=s)&&BN(e,s,n)),r}return i._value=t,i}function WN(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,UN(e,t,n??""))}function YN(e){return function(){this.textContent=e}}function XN(e){return function(){var t=e(this);this.textContent=t??""}}function GN(e){return this.tween("text",typeof e=="function"?XN(Hc(this,"text",e)):YN(e==null?"":e+""))}function KN(e){return function(t){this.textContent=e.call(this,t)}}function QN(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&KN(o)),t}return r._value=e,r}function ZN(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,QN(e))}function qN(){for(var e=this._name,t=this._id,n=Ug(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],l=s.length,a,u=0;u<l;++u)if(a=s[u]){var f=Nt(a,t);Sl(a,e,n,u,s,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Qt(r,this._parents,e,n)}function JN(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var l={value:s},a={value:function(){--o===0&&i()}};n.each(function(){var u=zt(this,r),f=u.on;f!==e&&(t=(e=f).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(a)),u.on=t}),o===0&&i()})}var eC=0;function Qt(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Ug(){return++eC}var Dt=pi.prototype;Qt.prototype={constructor:Qt,select:TN,selectAll:zN,selectChild:Dt.selectChild,selectChildren:Dt.selectChildren,filter:bN,merge:PN,selection:$N,transition:qN,call:Dt.call,nodes:Dt.nodes,node:Dt.node,size:Dt.size,empty:Dt.empty,each:Dt.each,on:LN,attr:dN,attrTween:gN,style:VN,styleTween:WN,text:GN,textTween:ZN,remove:IN,tween:oN,delay:xN,duration:kN,ease:NN,easeVarying:_N,end:JN,[Symbol.iterator]:Dt[Symbol.iterator]};function tC(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var nC={time:null,delay:0,duration:250,ease:tC};function rC(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 oC(e){var t,n;e instanceof Qt?(t=e._id,e=e._name):(t=Ug(),(n=nC).time=Oc(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],l=s.length,a,u=0;u<l;++u)(a=s[u])&&Sl(a,e,t,u,s,n||rC(a,t));return new Qt(r,this._parents,e,t)}pi.prototype.interrupt=tN;pi.prototype.transition=oC;const Wi=e=>()=>e;function iC(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Bt(e,t,n){this.k=e,this.x=t,this.y=n}Bt.prototype={constructor:Bt,scale:function(e){return e===1?this:new Bt(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Bt(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 kl=new Bt(1,0,0);Wg.prototype=Bt.prototype;function Wg(e){for(;!e.__zoom;)if(!(e=e.parentNode))return kl;return e.__zoom}function fa(e){e.stopImmediatePropagation()}function po(e){e.preventDefault(),e.stopImmediatePropagation()}function sC(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function lC(){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 Vf(){return this.__zoom||kl}function aC(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function uC(){return navigator.maxTouchPoints||"ontouchstart"in this}function cC(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function Yg(){var e=sC,t=lC,n=cC,r=aC,o=uC,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],l=250,a=ds,u=vl("start","zoom","end"),f,c,d,y=500,v=150,x=0,S=10;function h(b){b.property("__zoom",Vf).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",R).on("dblclick.zoom",$).filter(o).on("touchstart.zoom",I).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}h.transform=function(b,z,j,A){var C=b.selection?b.selection():b;C.property("__zoom",Vf),b!==C?E(b,z,j,A):C.interrupt().each(function(){N(this,arguments).event(A).start().zoom(null,typeof z=="function"?z.apply(this,arguments):z).end()})},h.scaleBy=function(b,z,j,A){h.scaleTo(b,function(){var C=this.__zoom.k,P=typeof z=="function"?z.apply(this,arguments):z;return C*P},j,A)},h.scaleTo=function(b,z,j,A){h.transform(b,function(){var C=t.apply(this,arguments),P=this.__zoom,T=j==null?w(C):typeof j=="function"?j.apply(this,arguments):j,O=P.invert(T),D=typeof z=="function"?z.apply(this,arguments):z;return n(p(m(P,D),T,O),C,s)},j,A)},h.translateBy=function(b,z,j,A){h.transform(b,function(){return n(this.__zoom.translate(typeof z=="function"?z.apply(this,arguments):z,typeof j=="function"?j.apply(this,arguments):j),t.apply(this,arguments),s)},null,A)},h.translateTo=function(b,z,j,A,C){h.transform(b,function(){var P=t.apply(this,arguments),T=this.__zoom,O=A==null?w(P):typeof A=="function"?A.apply(this,arguments):A;return n(kl.translate(O[0],O[1]).scale(T.k).translate(typeof z=="function"?-z.apply(this,arguments):-z,typeof j=="function"?-j.apply(this,arguments):-j),P,s)},A,C)};function m(b,z){return z=Math.max(i[0],Math.min(i[1],z)),z===b.k?b:new Bt(z,b.x,b.y)}function p(b,z,j){var A=z[0]-j[0]*b.k,C=z[1]-j[1]*b.k;return A===b.x&&C===b.y?b:new Bt(b.k,A,C)}function w(b){return[(+b[0][0]+ +b[1][0])/2,(+b[0][1]+ +b[1][1])/2]}function E(b,z,j,A){b.on("start.zoom",function(){N(this,arguments).event(A).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(A).end()}).tween("zoom",function(){var C=this,P=arguments,T=N(C,P).event(A),O=t.apply(C,P),D=j==null?w(O):typeof j=="function"?j.apply(C,P):j,U=Math.max(O[1][0]-O[0][0],O[1][1]-O[0][1]),B=C.__zoom,Y=typeof z=="function"?z.apply(C,P):z,X=a(B.invert(D).concat(U/B.k),Y.invert(D).concat(U/Y.k));return function(G){if(G===1)G=Y;else{var V=X(G),Q=U/V[2];G=new Bt(Q,D[0]-V[0]*Q,D[1]-V[1]*Q)}T.zoom(null,G)}})}function N(b,z,j){return!j&&b.__zooming||new _(b,z)}function _(b,z){this.that=b,this.args=z,this.active=0,this.sourceEvent=null,this.extent=t.apply(b,z),this.taps=0}_.prototype={event:function(b){return b&&(this.sourceEvent=b),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(b,z){return this.mouse&&b!=="mouse"&&(this.mouse[1]=z.invert(this.mouse[0])),this.touch0&&b!=="touch"&&(this.touch0[1]=z.invert(this.touch0[0])),this.touch1&&b!=="touch"&&(this.touch1[1]=z.invert(this.touch1[0])),this.that.__zoom=z,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(b){var z=Qe(this.that).datum();u.call(b,this.that,new iC(b,{sourceEvent:this.sourceEvent,target:h,transform:this.that.__zoom,dispatch:u}),z)}};function M(b,...z){if(!e.apply(this,arguments))return;var j=N(this,z).event(b),A=this.__zoom,C=Math.max(i[0],Math.min(i[1],A.k*Math.pow(2,r.apply(this,arguments)))),P=mt(b);if(j.wheel)(j.mouse[0][0]!==P[0]||j.mouse[0][1]!==P[1])&&(j.mouse[1]=A.invert(j.mouse[0]=P)),clearTimeout(j.wheel);else{if(A.k===C)return;j.mouse=[P,A.invert(P)],ps(this),j.start()}po(b),j.wheel=setTimeout(T,v),j.zoom("mouse",n(p(m(A,C),j.mouse[0],j.mouse[1]),j.extent,s));function T(){j.wheel=null,j.end()}}function R(b,...z){if(d||!e.apply(this,arguments))return;var j=b.currentTarget,A=N(this,z,!0).event(b),C=Qe(b.view).on("mousemove.zoom",D,!0).on("mouseup.zoom",U,!0),P=mt(b,j),T=b.clientX,O=b.clientY;Mg(b.view),fa(b),A.mouse=[P,this.__zoom.invert(P)],ps(this),A.start();function D(B){if(po(B),!A.moved){var Y=B.clientX-T,X=B.clientY-O;A.moved=Y*Y+X*X>x}A.event(B).zoom("mouse",n(p(A.that.__zoom,A.mouse[0]=mt(B,j),A.mouse[1]),A.extent,s))}function U(B){C.on("mousemove.zoom mouseup.zoom",null),jg(B.view,A.moved),po(B),A.event(B).end()}}function $(b,...z){if(e.apply(this,arguments)){var j=this.__zoom,A=mt(b.changedTouches?b.changedTouches[0]:b,this),C=j.invert(A),P=j.k*(b.shiftKey?.5:2),T=n(p(m(j,P),A,C),t.apply(this,z),s);po(b),l>0?Qe(this).transition().duration(l).call(E,T,A,b):Qe(this).call(h.transform,T,A,b)}}function I(b,...z){if(e.apply(this,arguments)){var j=b.touches,A=j.length,C=N(this,z,b.changedTouches.length===A).event(b),P,T,O,D;for(fa(b),T=0;T<A;++T)O=j[T],D=mt(O,this),D=[D,this.__zoom.invert(D),O.identifier],C.touch0?!C.touch1&&C.touch0[2]!==D[2]&&(C.touch1=D,C.taps=0):(C.touch0=D,P=!0,C.taps=1+!!f);f&&(f=clearTimeout(f)),P&&(C.taps<2&&(c=D[0],f=setTimeout(function(){f=null},y)),ps(this),C.start())}}function L(b,...z){if(this.__zooming){var j=N(this,z).event(b),A=b.changedTouches,C=A.length,P,T,O,D;for(po(b),P=0;P<C;++P)T=A[P],O=mt(T,this),j.touch0&&j.touch0[2]===T.identifier?j.touch0[0]=O:j.touch1&&j.touch1[2]===T.identifier&&(j.touch1[0]=O);if(T=j.that.__zoom,j.touch1){var U=j.touch0[0],B=j.touch0[1],Y=j.touch1[0],X=j.touch1[1],G=(G=Y[0]-U[0])*G+(G=Y[1]-U[1])*G,V=(V=X[0]-B[0])*V+(V=X[1]-B[1])*V;T=m(T,Math.sqrt(G/V)),O=[(U[0]+Y[0])/2,(U[1]+Y[1])/2],D=[(B[0]+X[0])/2,(B[1]+X[1])/2]}else if(j.touch0)O=j.touch0[0],D=j.touch0[1];else return;j.zoom("touch",n(p(T,O,D),j.extent,s))}}function F(b,...z){if(this.__zooming){var j=N(this,z).event(b),A=b.changedTouches,C=A.length,P,T;for(fa(b),d&&clearTimeout(d),d=setTimeout(function(){d=null},y),P=0;P<C;++P)T=A[P],j.touch0&&j.touch0[2]===T.identifier?delete j.touch0:j.touch1&&j.touch1[2]===T.identifier&&delete j.touch1;if(j.touch1&&!j.touch0&&(j.touch0=j.touch1,delete j.touch1),j.touch0)j.touch0[1]=this.__zoom.invert(j.touch0[0]);else if(j.end(),j.taps===2&&(T=mt(T,this),Math.hypot(c[0]-T[0],c[1]-T[1])<S)){var O=Qe(this).on("dblclick.zoom");O&&O.apply(this,arguments)}}}return h.wheelDelta=function(b){return arguments.length?(r=typeof b=="function"?b:Wi(+b),h):r},h.filter=function(b){return arguments.length?(e=typeof b=="function"?b:Wi(!!b),h):e},h.touchable=function(b){return arguments.length?(o=typeof b=="function"?b:Wi(!!b),h):o},h.extent=function(b){return arguments.length?(t=typeof b=="function"?b:Wi([[+b[0][0],+b[0][1]],[+b[1][0],+b[1][1]]]),h):t},h.scaleExtent=function(b){return arguments.length?(i[0]=+b[0],i[1]=+b[1],h):[i[0],i[1]]},h.translateExtent=function(b){return arguments.length?(s[0][0]=+b[0][0],s[1][0]=+b[1][0],s[0][1]=+b[0][1],s[1][1]=+b[1][1],h):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},h.constrain=function(b){return arguments.length?(n=b,h):n},h.duration=function(b){return arguments.length?(l=+b,h):l},h.interpolate=function(b){return arguments.length?(a=b,h):a},h.on=function(){var b=u.on.apply(u,arguments);return b===u?h:b},h.clickDistance=function(b){return arguments.length?(x=(b=+b)*b,h):Math.sqrt(x)},h.tapDistance=function(b){return arguments.length?(S=+b,h):S},h}const Rt={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},ni=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Xg=["Enter"," ","Escape"],Gg={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var $r;(function(e){e.Strict="strict",e.Loose="loose"})($r||($r={}));var Wn;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Wn||(Wn={}));var ri;(function(e){e.Partial="partial",e.Full="full"})(ri||(ri={}));const Kg={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var cn;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(cn||(cn={}));var Xs;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Xs||(Xs={}));var K;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(K||(K={}));const Bf={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top};function Qg(e){return e===null?null:e?"valid":"invalid"}const Zg=e=>"id"in e&&"source"in e&&"target"in e,dC=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Vc=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),gi=(e,t=[0,0])=>{const{width:n,height:r}=qt(e),o=e.origin??t,i=n*o[0],s=r*o[1];return{x:e.position.x-i,y:e.position.y-s}},fC=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const i=typeof o=="string";let s=!t.nodeLookup&&!i?o:void 0;t.nodeLookup&&(s=i?t.nodeLookup.get(o):Vc(o)?o:t.nodeLookup.get(o.id));const l=s?Gs(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return El(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Nl(n)},yi=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(o=>{(t.filter===void 0||t.filter(o))&&(n=El(n,Gs(o)),r=!0)}),r?Nl(n):{x:0,y:0,width:0,height:0}},Bc=(e,t,[n,r,o]=[0,0,1],i=!1,s=!1)=>{const l={...xi(t,[n,r,o]),width:t.width/o,height:t.height/o},a=[];for(const u of e.values()){const{measured:f,selectable:c=!0,hidden:d=!1}=u;if(s&&!c||d)continue;const y=f.width??u.width??u.initialWidth??null,v=f.height??u.height??u.initialHeight??null,x=oi(l,Or(u)),S=(y??0)*(v??0),h=i&&x>0;(!u.internals.handleBounds||h||x>=S||u.dragging)&&a.push(u)}return a},hC=(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 pC(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(o=>o.id)):null;return e.forEach(o=>{o.measured.width&&o.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!o.hidden)&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function mC({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:i},s){if(e.size===0)return Promise.resolve(!0);const l=pC(e,s),a=yi(l),u=Uc(a,t,n,(s==null?void 0:s.minZoom)??o,(s==null?void 0:s.maxZoom)??i,(s==null?void 0:s.padding)??.1);return await r.setViewport(u,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),Promise.resolve(!0)}function qg({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){const s=n.get(e),l=s.parentId?n.get(s.parentId):void 0,{x:a,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},f=s.origin??r;let c=s.extent||o;if(s.extent==="parent"&&!s.expandParent)if(!l)i==null||i("005",Rt.error005());else{const y=l.measured.width,v=l.measured.height;y&&v&&(c=[[a,u],[a+y,u+v]])}else l&&Fr(s.extent)&&(c=[[s.extent[0][0]+a,s.extent[0][1]+u],[s.extent[1][0]+a,s.extent[1][1]+u]]);const d=Fr(c)?Jn(t,c,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&(i==null||i("015",Rt.error015())),{position:{x:d.x-a+(s.measured.width??0)*f[0],y:d.y-u+(s.measured.height??0)*f[1]},positionAbsolute:d}}async function gC({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){const i=new Set(e.map(d=>d.id)),s=[];for(const d of n){if(d.deletable===!1)continue;const y=i.has(d.id),v=!y&&d.parentId&&s.find(x=>x.id===d.parentId);(y||v)&&s.push(d)}const l=new Set(t.map(d=>d.id)),a=r.filter(d=>d.deletable!==!1),f=hC(s,a);for(const d of a)l.has(d.id)&&!f.find(v=>v.id===d.id)&&f.push(d);if(!o)return{edges:f,nodes:s};const c=await o({nodes:s,edges:f});return typeof c=="boolean"?c?{edges:f,nodes:s}:{edges:[],nodes:[]}:c}const Dr=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Jn=(e={x:0,y:0},t,n)=>({x:Dr(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:Dr(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Jg(e,t,n){const{width:r,height:o}=qt(n),{x:i,y:s}=n.internals.positionAbsolute;return Jn(e,[[i,s],[i+r,s+o]],t)}const Uf=(e,t,n)=>e<t?Dr(Math.abs(e-t),1,t)/t:e>n?-Dr(Math.abs(e-n),1,t)/t:0,ey=(e,t,n=15,r=40)=>{const o=Uf(e.x,r,t.width-r)*n,i=Uf(e.y,r,t.height-r)*n;return[o,i]},El=(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)}),_u=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Nl=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Or=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=Vc(e)?e.internals.positionAbsolute:gi(e,t);return{x:n,y:r,width:((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},Gs=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=Vc(e)?e.internals.positionAbsolute:gi(e,t);return{x:n,y:r,x2:n+(((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0),y2:r+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},ty=(e,t)=>Nl(El(_u(e),_u(t))),oi=(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)},Wf=e=>vt(e.width)&&vt(e.height)&&vt(e.x)&&vt(e.y),vt=e=>!isNaN(e)&&isFinite(e),yC=(e,t)=>{},vi=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),xi=({x:e,y:t},[n,r,o],i=!1,s=[1,1])=>{const l={x:(e-n)/o,y:(t-r)/o};return i?vi(l,s):l},Ks=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function ir(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function vC(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=ir(e,n),o=ir(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=ir(e.top??e.y??0,n),o=ir(e.bottom??e.y??0,n),i=ir(e.left??e.x??0,t),s=ir(e.right??e.x??0,t);return{top:r,right:s,bottom:o,left:i,x:i+s,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function xC(e,t,n,r,o,i){const{x:s,y:l}=Ks(e,[t,n,r]),{x:a,y:u}=Ks({x:e.x+e.width,y:e.y+e.height},[t,n,r]),f=o-a,c=i-u;return{left:Math.floor(s),top:Math.floor(l),right:Math.floor(f),bottom:Math.floor(c)}}const Uc=(e,t,n,r,o,i)=>{const s=vC(i,t,n),l=(t-s.x)/e.width,a=(n-s.y)/e.height,u=Math.min(l,a),f=Dr(u,r,o),c=e.x+e.width/2,d=e.y+e.height/2,y=t/2-c*f,v=n/2-d*f,x=xC(e,y,v,f,t,n),S={left:Math.min(x.left-s.left,0),top:Math.min(x.top-s.top,0),right:Math.min(x.right-s.right,0),bottom:Math.min(x.bottom-s.bottom,0)};return{x:y-S.left+S.right,y:v-S.top+S.bottom,zoom:f}},ii=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Fr(e){return e!=null&&e!=="parent"}function qt(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 ny(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 ry(e,t={width:0,height:0},n,r,o){const i={...e},s=r.get(n);if(s){const l=s.origin||o;i.x+=s.internals.positionAbsolute.x-(t.width??0)*l[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*l[1]}return i}function Yf(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function wC(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function SC(e){return{...Gg,...e||{}}}function Lo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:s}=xt(e),l=xi({x:i-((o==null?void 0:o.left)??0),y:s-((o==null?void 0:o.top)??0)},r),{x:a,y:u}=n?vi(l,t):l;return{xSnapped:a,ySnapped:u,...l}}const Wc=e=>({width:e.offsetWidth,height:e.offsetHeight}),oy=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},kC=["INPUT","SELECT","TEXTAREA"];function iy(e){var r,o;const t=((o=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:o[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:kC.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const sy=e=>"clientX"in e,xt=(e,t)=>{var i,s;const n=sy(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,o=n?e.clientY:(s=e.touches)==null?void 0:s[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}},Xf=(e,t,n,r,o)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const l=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:o,position:s.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...Wc(s)}})};function ly({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:l}){const a=e*.125+o*.375+s*.375+n*.125,u=t*.125+i*.375+l*.375+r*.125,f=Math.abs(a-e),c=Math.abs(u-t);return[a,u,f,c]}function Yi(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Gf({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case K.Left:return[t-Yi(t-r,i),n];case K.Right:return[t+Yi(r-t,i),n];case K.Top:return[t,n-Yi(n-o,i)];case K.Bottom:return[t,n+Yi(o-n,i)]}}function ay({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:o,targetPosition:i=K.Top,curvature:s=.25}){const[l,a]=Gf({pos:n,x1:e,y1:t,x2:r,y2:o,c:s}),[u,f]=Gf({pos:i,x1:r,y1:o,x2:e,y2:t,c:s}),[c,d,y,v]=ly({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:l,sourceControlY:a,targetControlX:u,targetControlY:f});return[`M${e},${t} C${l},${a} ${u},${f} ${r},${o}`,c,d,y,v]}function uy({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,s=Math.abs(r-t)/2,l=r<t?r+s:r-s;return[i,l,o,s]}function EC({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if(i==="manual")return r;const s=o&&n?r+1e3:r,l=Math.max(e.parentId||o&&e.selected?e.internals.z:0,t.parentId||o&&t.selected?t.internals.z:0);return s+l}function NC({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const i=El(Gs(e),Gs(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return oi(s,Nl(i))>0}const CC=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,_C=(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)),bC=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||CC;let o;return Zg(e)?o={...e}:o={...e,id:r(e)},_C(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function cy({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,s,l]=uy({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,s,l]}const Kf={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},PC=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.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},Qf=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function MC({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:r=K.Top,center:o,offset:i,stepPosition:s}){const l=Kf[t],a=Kf[r],u={x:e.x+l.x*i,y:e.y+l.y*i},f={x:n.x+a.x*i,y:n.y+a.y*i},c=PC({source:u,sourcePosition:t,target:f}),d=c.x!==0?"x":"y",y=c[d];let v=[],x,S;const h={x:0,y:0},m={x:0,y:0},[,,p,w]=uy({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[d]*a[d]===-1){d==="x"?(x=o.x??u.x+(f.x-u.x)*s,S=o.y??(u.y+f.y)/2):(x=o.x??(u.x+f.x)/2,S=o.y??u.y+(f.y-u.y)*s);const N=[{x,y:u.y},{x,y:f.y}],_=[{x:u.x,y:S},{x:f.x,y:S}];l[d]===y?v=d==="x"?N:_:v=d==="x"?_:N}else{const N=[{x:u.x,y:f.y}],_=[{x:f.x,y:u.y}];if(d==="x"?v=l.x===y?_:N:v=l.y===y?N:_,t===r){const L=Math.abs(e[d]-n[d]);if(L<=i){const F=Math.min(i-1,i-L);l[d]===y?h[d]=(u[d]>e[d]?-1:1)*F:m[d]=(f[d]>n[d]?-1:1)*F}}if(t!==r){const L=d==="x"?"y":"x",F=l[d]===a[L],b=u[L]>f[L],z=u[L]<f[L];(l[d]===1&&(!F&&b||F&&z)||l[d]!==1&&(!F&&z||F&&b))&&(v=d==="x"?N:_)}const M={x:u.x+h.x,y:u.y+h.y},R={x:f.x+m.x,y:f.y+m.y},$=Math.max(Math.abs(M.x-v[0].x),Math.abs(R.x-v[0].x)),I=Math.max(Math.abs(M.y-v[0].y),Math.abs(R.y-v[0].y));$>=I?(x=(M.x+R.x)/2,S=v[0].y):(x=v[0].x,S=(M.y+R.y)/2)}return[[e,{x:u.x+h.x,y:u.y+h.y},...v,{x:f.x+m.x,y:f.y+m.y},n],x,S,p,w]}function jC(e,t,n,r){const o=Math.min(Qf(e,t)/2,Qf(t,n)/2,r),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const u=e.x<n.x?-1:1,f=e.y<n.y?1:-1;return`L ${i+o*u},${s}Q ${i},${s} ${i},${s+o*f}`}const l=e.x<n.x?1:-1,a=e.y<n.y?-1:1;return`L ${i},${s+o*a}Q ${i},${s} ${i+o*l},${s}`}function bu({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:o,targetPosition:i=K.Top,borderRadius:s=5,centerX:l,centerY:a,offset:u=20,stepPosition:f=.5}){const[c,d,y,v,x]=MC({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:l,y:a},offset:u,stepPosition:f});return[c.reduce((h,m,p)=>{let w="";return p>0&&p<c.length-1?w=jC(c[p-1],m,c[p+1],s):w=`${p===0?"M":"L"}${m.x} ${m.y}`,h+=w,h},""),d,y,v,x]}function Zf(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function LC(e){var c;const{sourceNode:t,targetNode:n}=e;if(!Zf(t)||!Zf(n))return null;const r=t.internals.handleBounds||qf(t.handles),o=n.internals.handleBounds||qf(n.handles),i=Jf((r==null?void 0:r.source)??[],e.sourceHandle),s=Jf(e.connectionMode===$r.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),e.targetHandle);if(!i||!s)return(c=e.onError)==null||c.call(e,"008",Rt.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=(i==null?void 0:i.position)||K.Bottom,a=(s==null?void 0:s.position)||K.Top,u=er(t,i,l),f=er(n,s,a);return{sourceX:u.x,sourceY:u.y,targetX:f.x,targetY:f.y,sourcePosition:l,targetPosition:a}}function qf(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 er(e,t,n=K.Left,r=!1){const o=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:s,height:l}=t??qt(e);if(r)return{x:o+s/2,y:i+l/2};switch((t==null?void 0:t.position)??n){case K.Top:return{x:o+s/2,y:i};case K.Right:return{x:o+s,y:i+l/2};case K.Bottom:return{x:o+s/2,y:i+l};case K.Left:return{x:o,y:i+l/2}}}function Jf(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Pu(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function RC(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const i=new Set;return e.reduce((s,l)=>([l.markerStart||r,l.markerEnd||o].forEach(a=>{if(a&&typeof a=="object"){const u=Pu(a,t);i.has(u)||(s.push({id:u,color:a.color||n,...a}),i.add(u))}}),s),[]).sort((s,l)=>s.id.localeCompare(l.id))}const dy=1e3,IC=10,Yc={nodeOrigin:[0,0],nodeExtent:ni,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},TC={...Yc,checkEquality:!0};function Xc(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function zC(e,t,n){const r=Xc(Yc,n);for(const o of e.values())if(o.parentId)Kc(o,e,t,r);else{const i=gi(o,r.nodeOrigin),s=Fr(o.extent)?o.extent:r.nodeExtent,l=Jn(i,s,qt(o));o.internals.positionAbsolute=l}}function AC(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const o of e.handles){const i={id:o.id,width:o.width??1,height:o.height??1,nodeId:e.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(i):o.type==="target"&&r.push(i)}return{source:n,target:r}}function Gc(e){return e==="manual"}function Mu(e,t,n,r={}){var u,f;const o=Xc(TC,r),i={i:0},s=new Map(t),l=o!=null&&o.elevateNodesOnSelect&&!Gc(o.zIndexMode)?dy:0;let a=e.length>0;t.clear(),n.clear();for(const c of e){let d=s.get(c.id);if(o.checkEquality&&c===(d==null?void 0:d.internals.userNode))t.set(c.id,d);else{const y=gi(c,o.nodeOrigin),v=Fr(c.extent)?c.extent:o.nodeExtent,x=Jn(y,v,qt(c));d={...o.defaults,...c,measured:{width:(u=c.measured)==null?void 0:u.width,height:(f=c.measured)==null?void 0:f.height},internals:{positionAbsolute:x,handleBounds:AC(c,d),z:fy(c,l,o.zIndexMode),userNode:c}},t.set(c.id,d)}(d.measured===void 0||d.measured.width===void 0||d.measured.height===void 0)&&!d.hidden&&(a=!1),c.parentId&&Kc(d,t,n,r,i)}return a}function $C(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 Kc(e,t,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:l,zIndexMode:a}=Xc(Yc,r),u=e.parentId,f=t.get(u);if(!f){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}$C(e,n),o&&!f.parentId&&f.internals.rootParentIndex===void 0&&a==="auto"&&(f.internals.rootParentIndex=++o.i,f.internals.z=f.internals.z+o.i*IC),o&&f.internals.rootParentIndex!==void 0&&(o.i=f.internals.rootParentIndex);const c=i&&!Gc(a)?dy:0,{x:d,y,z:v}=DC(e,f,s,l,c,a),{positionAbsolute:x}=e.internals,S=d!==x.x||y!==x.y;(S||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:d,y}:x,z:v}})}function fy(e,t,n){const r=vt(e.zIndex)?e.zIndex:0;return Gc(n)?r:r+(e.selected?t:0)}function DC(e,t,n,r,o,i){const{x:s,y:l}=t.internals.positionAbsolute,a=qt(e),u=gi(e,n),f=Fr(e.extent)?Jn(u,e.extent,a):u;let c=Jn({x:s+f.x,y:l+f.y},r,a);e.extent==="parent"&&(c=Jg(c,a,t));const d=fy(e,o,i),y=t.internals.z??0;return{x:c.x,y:c.y,z:y>=d?y+1:d}}function Qc(e,t,n,r=[0,0]){var s;const o=[],i=new Map;for(const l of e){const a=t.get(l.parentId);if(!a)continue;const u=((s=i.get(l.parentId))==null?void 0:s.expandedRect)??Or(a),f=ty(u,l.rect);i.set(l.parentId,{expandedRect:f,parent:a})}return i.size>0&&i.forEach(({expandedRect:l,parent:a},u)=>{var p;const f=a.internals.positionAbsolute,c=qt(a),d=a.origin??r,y=l.x<f.x?Math.round(Math.abs(f.x-l.x)):0,v=l.y<f.y?Math.round(Math.abs(f.y-l.y)):0,x=Math.max(c.width,Math.round(l.width)),S=Math.max(c.height,Math.round(l.height)),h=(x-c.width)*d[0],m=(S-c.height)*d[1];(y>0||v>0||h||m)&&(o.push({id:u,type:"position",position:{x:a.position.x-y+h,y:a.position.y-v+m}}),(p=n.get(u))==null||p.forEach(w=>{e.some(E=>E.id===w.id)||o.push({id:w.id,type:"position",position:{x:w.position.x+y,y:w.position.y+v}})})),(c.width<l.width||c.height<l.height||y||v)&&o.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:x+(y?d[0]*y-h:0),height:S+(v?d[1]*v-m:0)}})}),o}function OC(e,t,n,r,o,i,s){const l=r==null?void 0:r.querySelector(".xyflow__viewport");let a=!1;if(!l)return{changes:[],updatedInternals:a};const u=[],f=window.getComputedStyle(l),{m22:c}=new window.DOMMatrixReadOnly(f.transform),d=[];for(const y of e.values()){const v=t.get(y.id);if(!v)continue;if(v.hidden){t.set(v.id,{...v,internals:{...v.internals,handleBounds:void 0}}),a=!0;continue}const x=Wc(y.nodeElement),S=v.measured.width!==x.width||v.measured.height!==x.height;if(!!(x.width&&x.height&&(S||!v.internals.handleBounds||y.force))){const m=y.nodeElement.getBoundingClientRect(),p=Fr(v.extent)?v.extent:i;let{positionAbsolute:w}=v.internals;v.parentId&&v.extent==="parent"?w=Jg(w,x,t.get(v.parentId)):p&&(w=Jn(w,p,x));const E={...v,measured:x,internals:{...v.internals,positionAbsolute:w,handleBounds:{source:Xf("source",y.nodeElement,m,c,v.id),target:Xf("target",y.nodeElement,m,c,v.id)}}};t.set(v.id,E),v.parentId&&Kc(E,t,n,{nodeOrigin:o,zIndexMode:s}),a=!0,S&&(u.push({id:v.id,type:"dimensions",dimensions:x}),v.expandParent&&v.parentId&&d.push({id:v.id,parentId:v.parentId,rect:Or(E,o)}))}}if(d.length>0){const y=Qc(d,t,n,o);u.push(...y)}return{changes:u,updatedInternals:a}}async function FC({delta:e,panZoom:t,transform:n,translateExtent:r,width:o,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[o,i]],r),l=!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2]);return Promise.resolve(l)}function eh(e,t,n,r,o,i){let s=o;const l=r.get(s)||new Map;r.set(s,l.set(n,t)),s=`${o}-${e}`;const a=r.get(s)||new Map;if(r.set(s,a.set(n,t)),i){s=`${o}-${e}-${i}`;const u=r.get(s)||new Map;r.set(s,u.set(n,t))}}function hy(e,t,n){e.clear(),t.clear();for(const r of n){const{source:o,target:i,sourceHandle:s=null,targetHandle:l=null}=r,a={edgeId:r.id,source:o,target:i,sourceHandle:s,targetHandle:l},u=`${o}-${s}--${i}-${l}`,f=`${i}-${l}--${o}-${s}`;eh("source",a,f,e,o,s),eh("target",a,u,e,i,l),t.set(r.id,r)}}function py(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:py(n,t):!1}function th(e,t,n){var o;let r=e;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function HC(e,t,n,r){const o=new Map;for(const[i,s]of e)if((s.selected||s.id===r)&&(!s.parentId||!py(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const l=e.get(i);l&&o.set(i,{id:i,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return o}function ha({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var s,l,a;const o=[];for(const[u,f]of t){const c=(s=n.get(u))==null?void 0:s.internals.userNode;c&&o.push({...c,position:f.position,dragging:r})}if(!e)return[o[0],o];const i=(l=n.get(e))==null?void 0:l.internals.userNode;return[i?{...i,position:((a=t.get(e))==null?void 0:a.position)||i.position,dragging:r}:o[0],o]}function VC({dragItems:e,snapGrid:t,x:n,y:r}){const o=e.values().next().value;if(!o)return null;const i={x:n-o.distance.x,y:r-o.distance.y},s=vi(i,t);return{x:s.x-i.x,y:s.y-i.y}}function BC({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},s=0,l=new Map,a=!1,u={x:0,y:0},f=null,c=!1,d=null,y=!1,v=!1,x=null;function S({noDragClassName:m,handleSelector:p,domNode:w,isSelectable:E,nodeId:N,nodeClickDistance:_=0}){d=Qe(w);function M({x:L,y:F}){const{nodeLookup:b,nodeExtent:z,snapGrid:j,snapToGrid:A,nodeOrigin:C,onNodeDrag:P,onSelectionDrag:T,onError:O,updateNodePositions:D}=t();i={x:L,y:F};let U=!1;const B=l.size>1,Y=B&&z?_u(yi(l)):null,X=B&&A?VC({dragItems:l,snapGrid:j,x:L,y:F}):null;for(const[G,V]of l){if(!b.has(G))continue;let Q={x:L-V.distance.x,y:F-V.distance.y};A&&(Q=X?{x:Math.round(Q.x+X.x),y:Math.round(Q.y+X.y)}:vi(Q,j));let te=null;if(B&&z&&!V.extent&&Y){const{positionAbsolute:Z}=V.internals,se=Z.x-Y.x+z[0][0],ue=Z.x+V.measured.width-Y.x2+z[1][0],ie=Z.y-Y.y+z[0][1],Ie=Z.y+V.measured.height-Y.y2+z[1][1];te=[[se,ie],[ue,Ie]]}const{position:J,positionAbsolute:q}=qg({nodeId:G,nextPosition:Q,nodeLookup:b,nodeExtent:te||z,nodeOrigin:C,onError:O});U=U||V.position.x!==J.x||V.position.y!==J.y,V.position=J,V.internals.positionAbsolute=q}if(v=v||U,!!U&&(D(l,!0),x&&(r||P||!N&&T))){const[G,V]=ha({nodeId:N,dragItems:l,nodeLookup:b});r==null||r(x,l,G,V),P==null||P(x,G,V),N||T==null||T(x,V)}}async function R(){if(!f)return;const{transform:L,panBy:F,autoPanSpeed:b,autoPanOnNodeDrag:z}=t();if(!z){a=!1,cancelAnimationFrame(s);return}const[j,A]=ey(u,f,b);(j!==0||A!==0)&&(i.x=(i.x??0)-j/L[2],i.y=(i.y??0)-A/L[2],await F({x:j,y:A})&&M(i)),s=requestAnimationFrame(R)}function $(L){var B;const{nodeLookup:F,multiSelectionActive:b,nodesDraggable:z,transform:j,snapGrid:A,snapToGrid:C,selectNodesOnDrag:P,onNodeDragStart:T,onSelectionDragStart:O,unselectNodesAndEdges:D}=t();c=!0,(!P||!E)&&!b&&N&&((B=F.get(N))!=null&&B.selected||D()),E&&P&&N&&(e==null||e(N));const U=Lo(L.sourceEvent,{transform:j,snapGrid:A,snapToGrid:C,containerBounds:f});if(i=U,l=HC(F,z,U,N),l.size>0&&(n||T||!N&&O)){const[Y,X]=ha({nodeId:N,dragItems:l,nodeLookup:F});n==null||n(L.sourceEvent,l,Y,X),T==null||T(L.sourceEvent,Y,X),N||O==null||O(L.sourceEvent,X)}}const I=Lg().clickDistance(_).on("start",L=>{const{domNode:F,nodeDragThreshold:b,transform:z,snapGrid:j,snapToGrid:A}=t();f=(F==null?void 0:F.getBoundingClientRect())||null,y=!1,v=!1,x=L.sourceEvent,b===0&&$(L),i=Lo(L.sourceEvent,{transform:z,snapGrid:j,snapToGrid:A,containerBounds:f}),u=xt(L.sourceEvent,f)}).on("drag",L=>{const{autoPanOnNodeDrag:F,transform:b,snapGrid:z,snapToGrid:j,nodeDragThreshold:A,nodeLookup:C}=t(),P=Lo(L.sourceEvent,{transform:b,snapGrid:z,snapToGrid:j,containerBounds:f});if(x=L.sourceEvent,(L.sourceEvent.type==="touchmove"&&L.sourceEvent.touches.length>1||N&&!C.has(N))&&(y=!0),!y){if(!a&&F&&c&&(a=!0,R()),!c){const T=xt(L.sourceEvent,f),O=T.x-u.x,D=T.y-u.y;Math.sqrt(O*O+D*D)>A&&$(L)}(i.x!==P.xSnapped||i.y!==P.ySnapped)&&l&&c&&(u=xt(L.sourceEvent,f),M(P))}}).on("end",L=>{if(!(!c||y)&&(a=!1,c=!1,cancelAnimationFrame(s),l.size>0)){const{nodeLookup:F,updateNodePositions:b,onNodeDragStop:z,onSelectionDragStop:j}=t();if(v&&(b(l,!1),v=!1),o||z||!N&&j){const[A,C]=ha({nodeId:N,dragItems:l,nodeLookup:F,dragging:!1});o==null||o(L.sourceEvent,l,A,C),z==null||z(L.sourceEvent,A,C),N||j==null||j(L.sourceEvent,C)}}}).filter(L=>{const F=L.target;return!L.button&&(!m||!th(F,`.${m}`,w))&&(!p||th(F,p,w))});d.call(I)}function h(){d==null||d.on(".drag",null)}return{update:S,destroy:h}}function UC(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())oi(o,Or(i))>0&&r.push(i);return r}const WC=250;function YC(e,t,n,r){var l,a;let o=[],i=1/0;const s=UC(e,n,t+WC);for(const u of s){const f=[...((l=u.internals.handleBounds)==null?void 0:l.source)??[],...((a=u.internals.handleBounds)==null?void 0:a.target)??[]];for(const c of f){if(r.nodeId===c.nodeId&&r.type===c.type&&r.id===c.id)continue;const{x:d,y}=er(u,c,c.position,!0),v=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(y-e.y,2));v>t||(v<i?(o=[{...c,x:d,y}],i=v):v===i&&o.push({...c,x:d,y}))}}if(!o.length)return null;if(o.length>1){const u=r.type==="source"?"target":"source";return o.find(f=>f.type===u)??o[0]}return o[0]}function my(e,t,n,r,o,i=!1){var u,f,c;const s=r.get(e);if(!s)return null;const l=o==="strict"?(u=s.internals.handleBounds)==null?void 0:u[t]:[...((f=s.internals.handleBounds)==null?void 0:f.source)??[],...((c=s.internals.handleBounds)==null?void 0:c.target)??[]],a=(n?l==null?void 0:l.find(d=>d.id===n):l==null?void 0:l[0])??null;return a&&i?{...a,...er(s,a,a.position,!0)}:a}function gy(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function XC(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const yy=()=>!0;function GC(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:s,domNode:l,nodeLookup:a,lib:u,autoPanOnConnect:f,flowId:c,panBy:d,cancelConnection:y,onConnectStart:v,onConnect:x,onConnectEnd:S,isValidConnection:h=yy,onReconnectEnd:m,updateConnection:p,getTransform:w,getFromHandle:E,autoPanSpeed:N,dragThreshold:_=1,handleDomNode:M}){const R=oy(e.target);let $=0,I;const{x:L,y:F}=xt(e),b=gy(i,M),z=l==null?void 0:l.getBoundingClientRect();let j=!1;if(!z||!b)return;const A=my(o,b,r,a,t);if(!A)return;let C=xt(e,z),P=!1,T=null,O=!1,D=null;function U(){if(!f||!z)return;const[J,q]=ey(C,z,N);d({x:J,y:q}),$=requestAnimationFrame(U)}const B={...A,nodeId:o,type:b,position:A.position},Y=a.get(o);let G={inProgress:!0,isValid:null,from:er(Y,B,K.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:Y,to:C,toHandle:null,toPosition:Bf[B.position],toNode:null,pointer:C};function V(){j=!0,p(G),v==null||v(e,{nodeId:o,handleId:r,handleType:b})}_===0&&V();function Q(J){if(!j){const{x:Ie,y:Jt}=xt(J),At=Ie-L,Ln=Jt-F;if(!(At*At+Ln*Ln>_*_))return;V()}if(!E()||!B){te(J);return}const q=w();C=xt(J,z),I=YC(xi(C,q,!1,[1,1]),n,a,B),P||(U(),P=!0);const Z=vy(J,{handle:I,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:s?"target":"source",isValidConnection:h,doc:R,lib:u,flowId:c,nodeLookup:a});D=Z.handleDomNode,T=Z.connection,O=XC(!!I,Z.isValid);const se=a.get(o),ue=se?er(se,B,K.Left,!0):G.from,ie={...G,from:ue,isValid:O,to:Z.toHandle&&O?Ks({x:Z.toHandle.x,y:Z.toHandle.y},q):C,toHandle:Z.toHandle,toPosition:O&&Z.toHandle?Z.toHandle.position:Bf[B.position],toNode:Z.toHandle?a.get(Z.toHandle.nodeId):null,pointer:C};p(ie),G=ie}function te(J){if(!("touches"in J&&J.touches.length>0)){if(j){(I||D)&&T&&O&&(x==null||x(T));const{inProgress:q,...Z}=G,se={...Z,toPosition:G.toHandle?G.toPosition:null};S==null||S(J,se),i&&(m==null||m(J,se))}y(),cancelAnimationFrame($),P=!1,O=!1,T=null,D=null,R.removeEventListener("mousemove",Q),R.removeEventListener("mouseup",te),R.removeEventListener("touchmove",Q),R.removeEventListener("touchend",te)}}R.addEventListener("mousemove",Q),R.addEventListener("mouseup",te),R.addEventListener("touchmove",Q),R.addEventListener("touchend",te)}function vy(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:s,lib:l,flowId:a,isValidConnection:u=yy,nodeLookup:f}){const c=i==="target",d=t?s.querySelector(`.${l}-flow__handle[data-id="${a}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:y,y:v}=xt(e),x=s.elementFromPoint(y,v),S=x!=null&&x.classList.contains(`${l}-flow__handle`)?x:d,h={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const m=gy(void 0,S),p=S.getAttribute("data-nodeid"),w=S.getAttribute("data-handleid"),E=S.classList.contains("connectable"),N=S.classList.contains("connectableend");if(!p||!m)return h;const _={source:c?p:r,sourceHandle:c?w:o,target:c?r:p,targetHandle:c?o:w};h.connection=_;const R=E&&N&&(n===$r.Strict?c&&m==="source"||!c&&m==="target":p!==r||w!==o);h.isValid=R&&u(_),h.toHandle=my(p,m,w,f,n,!0)}return h}const ju={onPointerDown:GC,isValid:vy};function KC({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=Qe(e);function i({translateExtent:l,width:a,height:u,zoomStep:f=1,pannable:c=!0,zoomable:d=!0,inversePan:y=!1}){const v=p=>{if(p.sourceEvent.type!=="wheel"||!t)return;const w=n(),E=p.sourceEvent.ctrlKey&&ii()?10:1,N=-p.sourceEvent.deltaY*(p.sourceEvent.deltaMode===1?.05:p.sourceEvent.deltaMode?1:.002)*f,_=w[2]*Math.pow(2,N*E);t.scaleTo(_)};let x=[0,0];const S=p=>{(p.sourceEvent.type==="mousedown"||p.sourceEvent.type==="touchstart")&&(x=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY])},h=p=>{const w=n();if(p.sourceEvent.type!=="mousemove"&&p.sourceEvent.type!=="touchmove"||!t)return;const E=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY],N=[E[0]-x[0],E[1]-x[1]];x=E;const _=r()*Math.max(w[2],Math.log(w[2]))*(y?-1:1),M={x:w[0]-N[0]*_,y:w[1]-N[1]*_},R=[[0,0],[a,u]];t.setViewportConstrained({x:M.x,y:M.y,zoom:w[2]},R,l)},m=Yg().on("start",S).on("zoom",c?h:null).on("zoom.wheel",d?v:null);o.call(m,{})}function s(){o.on("zoom",null)}return{update:i,destroy:s,pointer:mt}}const Cl=e=>({x:e.x,y:e.y,zoom:e.k}),pa=({x:e,y:t,zoom:n})=>kl.translate(e,t).scale(n),vr=(e,t)=>e.target.closest(`.${t}`),xy=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),QC=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ma=(e,t=0,n=QC,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},wy=e=>{const t=e.ctrlKey&&ii()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function ZC({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:l,onPanZoom:a,onPanZoomEnd:u}){return f=>{if(vr(f,t))return f.ctrlKey&&f.preventDefault(),!1;f.preventDefault(),f.stopImmediatePropagation();const c=n.property("__zoom").k||1;if(f.ctrlKey&&s){const S=mt(f),h=wy(f),m=c*Math.pow(2,h);r.scaleTo(n,m,S,f);return}const d=f.deltaMode===1?20:1;let y=o===Wn.Vertical?0:f.deltaX*d,v=o===Wn.Horizontal?0:f.deltaY*d;!ii()&&f.shiftKey&&o!==Wn.Vertical&&(y=f.deltaY*d,v=0),r.translateBy(n,-(y/c)*i,-(v/c)*i,{internal:!0});const x=Cl(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(a==null||a(f,x),e.panScrollTimeout=setTimeout(()=>{u==null||u(f,x),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l==null||l(f,x))}}function qC({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",s=!t&&i&&!r.ctrlKey,l=vr(r,e);if(r.ctrlKey&&i&&l&&r.preventDefault(),s||l)return null;r.preventDefault(),n.call(this,r,o)}}function JC({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,s,l;if((i=r.sourceEvent)!=null&&i.internal)return;const o=Cl(r.transform);e.mouseButton=((s=r.sourceEvent)==null?void 0:s.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=o,((l=r.sourceEvent)==null?void 0:l.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,o))}}function e_({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var s,l;e.usedRightMouseButton=!!(n&&xy(t,e.mouseButton??0)),(s=i.sourceEvent)!=null&&s.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!((l=i.sourceEvent)!=null&&l.internal)&&(o==null||o(i.sourceEvent,Cl(i.transform)))}}function t_({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return s=>{var l;if(!((l=s.sourceEvent)!=null&&l.internal)&&(e.isZoomingOrPanning=!1,i&&xy(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){const a=Cl(s.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o==null||o(s.sourceEvent,a)},n?150:0)}}}function n_({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:l,noPanClassName:a,lib:u,connectionInProgress:f}){return c=>{var S;const d=e||t,y=n&&c.ctrlKey,v=c.type==="wheel";if(c.button===1&&c.type==="mousedown"&&(vr(c,`${u}-flow__node`)||vr(c,`${u}-flow__edge`)))return!0;if(!r&&!d&&!o&&!i&&!n||s||f&&!v||vr(c,l)&&v||vr(c,a)&&(!v||o&&v&&!e)||!n&&c.ctrlKey&&v)return!1;if(!n&&c.type==="touchstart"&&((S=c.touches)==null?void 0:S.length)>1)return c.preventDefault(),!1;if(!d&&!o&&!y&&v||!r&&(c.type==="mousedown"||c.type==="touchstart")||Array.isArray(r)&&!r.includes(c.button)&&c.type==="mousedown")return!1;const x=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||v)&&x}}function r_({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:l,onDraggingChange:a}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect(),c=Yg().scaleExtent([t,n]).translateExtent(r),d=Qe(e).call(c);m({x:o.x,y:o.y,zoom:Dr(o.zoom,t,n)},[[0,0],[f.width,f.height]],r);const y=d.on("wheel.zoom"),v=d.on("dblclick.zoom");c.wheelDelta(wy);function x(I,L){return d?new Promise(F=>{c==null||c.interpolate((L==null?void 0:L.interpolate)==="linear"?jo:ds).transform(ma(d,L==null?void 0:L.duration,L==null?void 0:L.ease,()=>F(!0)),I)}):Promise.resolve(!1)}function S({noWheelClassName:I,noPanClassName:L,onPaneContextMenu:F,userSelectionActive:b,panOnScroll:z,panOnDrag:j,panOnScrollMode:A,panOnScrollSpeed:C,preventScrolling:P,zoomOnPinch:T,zoomOnScroll:O,zoomOnDoubleClick:D,zoomActivationKeyPressed:U,lib:B,onTransformChange:Y,connectionInProgress:X,paneClickDistance:G,selectionOnDrag:V}){b&&!u.isZoomingOrPanning&&h();const Q=z&&!U&&!b;c.clickDistance(V?1/0:!vt(G)||G<0?0:G);const te=Q?ZC({zoomPanValues:u,noWheelClassName:I,d3Selection:d,d3Zoom:c,panOnScrollMode:A,panOnScrollSpeed:C,zoomOnPinch:T,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:l}):qC({noWheelClassName:I,preventScrolling:P,d3ZoomHandler:y});if(d.on("wheel.zoom",te,{passive:!1}),!b){const q=JC({zoomPanValues:u,onDraggingChange:a,onPanZoomStart:s});c.on("start",q);const Z=e_({zoomPanValues:u,panOnDrag:j,onPaneContextMenu:!!F,onPanZoom:i,onTransformChange:Y});c.on("zoom",Z);const se=t_({zoomPanValues:u,panOnDrag:j,panOnScroll:z,onPaneContextMenu:F,onPanZoomEnd:l,onDraggingChange:a});c.on("end",se)}const J=n_({zoomActivationKeyPressed:U,panOnDrag:j,zoomOnScroll:O,panOnScroll:z,zoomOnDoubleClick:D,zoomOnPinch:T,userSelectionActive:b,noPanClassName:L,noWheelClassName:I,lib:B,connectionInProgress:X});c.filter(J),D?d.on("dblclick.zoom",v):d.on("dblclick.zoom",null)}function h(){c.on("zoom",null)}async function m(I,L,F){const b=pa(I),z=c==null?void 0:c.constrain()(b,L,F);return z&&await x(z),new Promise(j=>j(z))}async function p(I,L){const F=pa(I);return await x(F,L),new Promise(b=>b(F))}function w(I){if(d){const L=pa(I),F=d.property("__zoom");(F.k!==I.zoom||F.x!==I.x||F.y!==I.y)&&(c==null||c.transform(d,L,null,{sync:!0}))}}function E(){const I=d?Wg(d.node()):{x:0,y:0,k:1};return{x:I.x,y:I.y,zoom:I.k}}function N(I,L){return d?new Promise(F=>{c==null||c.interpolate((L==null?void 0:L.interpolate)==="linear"?jo:ds).scaleTo(ma(d,L==null?void 0:L.duration,L==null?void 0:L.ease,()=>F(!0)),I)}):Promise.resolve(!1)}function _(I,L){return d?new Promise(F=>{c==null||c.interpolate((L==null?void 0:L.interpolate)==="linear"?jo:ds).scaleBy(ma(d,L==null?void 0:L.duration,L==null?void 0:L.ease,()=>F(!0)),I)}):Promise.resolve(!1)}function M(I){c==null||c.scaleExtent(I)}function R(I){c==null||c.translateExtent(I)}function $(I){const L=!vt(I)||I<0?0:I;c==null||c.clickDistance(L)}return{update:S,destroy:h,setViewport:p,setViewportConstrained:m,getViewport:E,scaleTo:N,scaleBy:_,setScaleExtent:M,setTranslateExtent:R,syncViewport:w,setClickDistance:$}}var Hr;(function(e){e.Line="line",e.Handle="handle"})(Hr||(Hr={}));function o_({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:o,affectsY:i}){const s=e-t,l=n-r,a=[s>0?1:s<0?-1:0,l>0?1:l<0?-1:0];return s&&o&&(a[0]=a[0]*-1),l&&i&&(a[1]=a[1]*-1),a}function nh(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),o=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:o}}function rn(e,t){return Math.max(0,t-e)}function on(e,t){return Math.max(0,e-t)}function Xi(e,t,n){return Math.max(0,t-e,e-n)}function rh(e,t){return e?!t:t}function i_(e,t,n,r,o,i,s,l){let{affectsX:a,affectsY:u}=t;const{isHorizontal:f,isVertical:c}=t,d=f&&c,{xSnapped:y,ySnapped:v}=n,{minWidth:x,maxWidth:S,minHeight:h,maxHeight:m}=r,{x:p,y:w,width:E,height:N,aspectRatio:_}=e;let M=Math.floor(f?y-e.pointerX:0),R=Math.floor(c?v-e.pointerY:0);const $=E+(a?-M:M),I=N+(u?-R:R),L=-i[0]*E,F=-i[1]*N;let b=Xi($,x,S),z=Xi(I,h,m);if(s){let C=0,P=0;a&&M<0?C=rn(p+M+L,s[0][0]):!a&&M>0&&(C=on(p+$+L,s[1][0])),u&&R<0?P=rn(w+R+F,s[0][1]):!u&&R>0&&(P=on(w+I+F,s[1][1])),b=Math.max(b,C),z=Math.max(z,P)}if(l){let C=0,P=0;a&&M>0?C=on(p+M,l[0][0]):!a&&M<0&&(C=rn(p+$,l[1][0])),u&&R>0?P=on(w+R,l[0][1]):!u&&R<0&&(P=rn(w+I,l[1][1])),b=Math.max(b,C),z=Math.max(z,P)}if(o){if(f){const C=Xi($/_,h,m)*_;if(b=Math.max(b,C),s){let P=0;!a&&!u||a&&!u&&d?P=on(w+F+$/_,s[1][1])*_:P=rn(w+F+(a?M:-M)/_,s[0][1])*_,b=Math.max(b,P)}if(l){let P=0;!a&&!u||a&&!u&&d?P=rn(w+$/_,l[1][1])*_:P=on(w+(a?M:-M)/_,l[0][1])*_,b=Math.max(b,P)}}if(c){const C=Xi(I*_,x,S)/_;if(z=Math.max(z,C),s){let P=0;!a&&!u||u&&!a&&d?P=on(p+I*_+L,s[1][0])/_:P=rn(p+(u?R:-R)*_+L,s[0][0])/_,z=Math.max(z,P)}if(l){let P=0;!a&&!u||u&&!a&&d?P=rn(p+I*_,l[1][0])/_:P=on(p+(u?R:-R)*_,l[0][0])/_,z=Math.max(z,P)}}}R=R+(R<0?z:-z),M=M+(M<0?b:-b),o&&(d?$>I*_?R=(rh(a,u)?-M:M)/_:M=(rh(a,u)?-R:R)*_:f?(R=M/_,u=a):(M=R*_,a=u));const j=a?p+M:p,A=u?w+R:w;return{width:E+(a?-M:M),height:N+(u?-R:R),x:i[0]*M*(a?-1:1)+j,y:i[1]*R*(u?-1:1)+A}}const Sy={width:0,height:0,x:0,y:0},s_={...Sy,pointerX:0,pointerY:0,aspectRatio:1};function l_(e){return[[0,0],[e.measured.width,e.measured.height]]}function a_(e,t,n){const r=t.position.x+e.position.x,o=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,l=n[0]*i,a=n[1]*s;return[[r-l,o-a],[r+i-l,o+s-a]]}function u_({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const i=Qe(e);let s={controlDirection:nh("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:f,keepAspectRatio:c,resizeDirection:d,onResizeStart:y,onResize:v,onResizeEnd:x,shouldResize:S}){let h={...Sy},m={...s_};s={boundaries:f,resizeDirection:d,keepAspectRatio:c,controlDirection:nh(u)};let p,w=null,E=[],N,_,M,R=!1;const $=Lg().on("start",I=>{const{nodeLookup:L,transform:F,snapGrid:b,snapToGrid:z,nodeOrigin:j,paneDomNode:A}=n();if(p=L.get(t),!p)return;w=(A==null?void 0:A.getBoundingClientRect())??null;const{xSnapped:C,ySnapped:P}=Lo(I.sourceEvent,{transform:F,snapGrid:b,snapToGrid:z,containerBounds:w});h={width:p.measured.width??0,height:p.measured.height??0,x:p.position.x??0,y:p.position.y??0},m={...h,pointerX:C,pointerY:P,aspectRatio:h.width/h.height},N=void 0,p.parentId&&(p.extent==="parent"||p.expandParent)&&(N=L.get(p.parentId),_=N&&p.extent==="parent"?l_(N):void 0),E=[],M=void 0;for(const[T,O]of L)if(O.parentId===t&&(E.push({id:T,position:{...O.position},extent:O.extent}),O.extent==="parent"||O.expandParent)){const D=a_(O,p,O.origin??j);M?M=[[Math.min(D[0][0],M[0][0]),Math.min(D[0][1],M[0][1])],[Math.max(D[1][0],M[1][0]),Math.max(D[1][1],M[1][1])]]:M=D}y==null||y(I,{...h})}).on("drag",I=>{const{transform:L,snapGrid:F,snapToGrid:b,nodeOrigin:z}=n(),j=Lo(I.sourceEvent,{transform:L,snapGrid:F,snapToGrid:b,containerBounds:w}),A=[];if(!p)return;const{x:C,y:P,width:T,height:O}=h,D={},U=p.origin??z,{width:B,height:Y,x:X,y:G}=i_(m,s.controlDirection,j,s.boundaries,s.keepAspectRatio,U,_,M),V=B!==T,Q=Y!==O,te=X!==C&&V,J=G!==P&&Q;if(!te&&!J&&!V&&!Q)return;if((te||J||U[0]===1||U[1]===1)&&(D.x=te?X:h.x,D.y=J?G:h.y,h.x=D.x,h.y=D.y,E.length>0)){const ue=X-C,ie=G-P;for(const Ie of E)Ie.position={x:Ie.position.x-ue+U[0]*(B-T),y:Ie.position.y-ie+U[1]*(Y-O)},A.push(Ie)}if((V||Q)&&(D.width=V&&(!s.resizeDirection||s.resizeDirection==="horizontal")?B:h.width,D.height=Q&&(!s.resizeDirection||s.resizeDirection==="vertical")?Y:h.height,h.width=D.width,h.height=D.height),N&&p.expandParent){const ue=U[0]*(D.width??0);D.x&&D.x<ue&&(h.x=ue,m.x=m.x-(D.x-ue));const ie=U[1]*(D.height??0);D.y&&D.y<ie&&(h.y=ie,m.y=m.y-(D.y-ie))}const q=o_({width:h.width,prevWidth:T,height:h.height,prevHeight:O,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),Z={...h,direction:q};(S==null?void 0:S(I,Z))!==!1&&(R=!0,v==null||v(I,Z),r(D,A))}).on("end",I=>{R&&(x==null||x(I,{...h}),o==null||o({...h}),R=!1)});i.call($)}function a(){i.on(".drag",null)}return{update:l,destroy:a}}var ky={exports:{}},Ey={},Ny={exports:{}},Cy={};/**
161
+ */const i2=Pe("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]),s2=[{label:"Discovery",items:[{to:"/inventory/agents",label:"Agents",icon:cg},{to:"/inventory/identities",label:"Identities",icon:dg},{to:"/inventory/permissions",label:"Permissions",icon:JS}]},{label:"Secure",items:[{to:"/secure/risk",label:"Risk",icon:pg},{to:"/secure/graph",label:"Graph",icon:n2}]}];function l2(){const e=It();return g.jsxs("aside",{className:"flex w-56 flex-col border-r border-border bg-card",children:[g.jsxs("div",{className:"flex h-14 items-center gap-2 border-b border-border px-4",children:[g.jsx(hg,{className:"h-5 w-5 text-foreground"}),g.jsx("span",{className:"text-sm font-semibold tracking-tight text-foreground",children:"OpenTrust"})]}),g.jsx("nav",{className:"flex-1 space-y-6 px-3 py-4",children:s2.map(t=>g.jsxs("div",{children:[g.jsx("p",{className:"mb-2 px-2 text-[11px] font-medium uppercase tracking-wider text-muted-foreground",children:t.label}),g.jsx("div",{className:"space-y-0.5",children:t.items.map(n=>g.jsxs(Jm,{to:n.to,className:Tt("flex items-center gap-2.5 rounded-md px-2 py-1.5 text-sm transition-colors",e.pathname.startsWith(n.to)?"bg-accent text-accent-foreground font-medium":"text-muted-foreground hover:bg-accent/50 hover:text-foreground"),children:[g.jsx(n.icon,{className:"h-4 w-4 shrink-0"}),n.label]},n.to))})]},t.label))}),g.jsx("div",{className:"border-t border-border px-4 py-3",children:g.jsx("p",{className:"text-[11px] text-muted-foreground",children:"v7.0.0"})})]})}function a2(e,t){typeof e=="function"?e(t):e!=null&&(e.current=t)}function u2(...e){return t=>e.forEach(n=>a2(n,t))}var mg=k.forwardRef((e,t)=>{const{children:n,...r}=e,o=k.Children.toArray(n),i=o.find(d2);if(i){const s=i.props.children,l=o.map(a=>a===i?k.Children.count(s)>1?k.Children.only(null):k.isValidElement(s)?s.props.children:null:a);return g.jsx(yu,{...r,ref:t,children:k.isValidElement(s)?k.cloneElement(s,void 0,l):null})}return g.jsx(yu,{...r,ref:t,children:n})});mg.displayName="Slot";var yu=k.forwardRef((e,t)=>{const{children:n,...r}=e;if(k.isValidElement(n)){const o=h2(n);return k.cloneElement(n,{...f2(r,n.props),ref:t?u2(t,o):o})}return k.Children.count(n)>1?k.Children.only(null):null});yu.displayName="SlotClone";var c2=({children:e})=>g.jsx(g.Fragment,{children:e});function d2(e){return k.isValidElement(e)&&e.type===c2}function f2(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...l)=>{i(...l),o(...l)}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function h2(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function gg(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=gg(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function p2(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=gg(e))&&(r&&(r+=" "),r+=t);return r}const Nf=e=>typeof e=="boolean"?"".concat(e):e===0?"0":e,Cf=p2,m2=(e,t)=>n=>{var r;if((t==null?void 0:t.variants)==null)return Cf(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:o,defaultVariants:i}=t,s=Object.keys(o).map(u=>{const f=n==null?void 0:n[u],c=i==null?void 0:i[u];if(f===null)return null;const d=Nf(f)||Nf(c);return o[u][d]}),l=n&&Object.entries(n).reduce((u,f)=>{let[c,d]=f;return d===void 0||(u[c]=d),u},{}),a=t==null||(r=t.compoundVariants)===null||r===void 0?void 0:r.reduce((u,f)=>{let{class:c,className:d,...y}=f;return Object.entries(y).every(v=>{let[x,S]=v;return Array.isArray(S)?S.includes({...i,...l}[x]):{...i,...l}[x]===S})?[...u,c,d]:u},[]);return Cf(e,s,a,n==null?void 0:n.class,n==null?void 0:n.className)},g2=m2("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-border bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),Qo=k.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...o},i)=>{const s=r?mg:"button";return g.jsx(s,{className:Tt(g2({variant:t,size:n,className:e})),ref:i,...o})});Qo.displayName="Button";function y2(){const{user:e,logout:t}=Ic(),{theme:n,setTheme:r}=aS();return g.jsxs("header",{className:"flex h-14 items-center justify-between border-b border-border bg-card px-6",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx("div",{className:"h-2 w-2 rounded-full bg-success"}),g.jsx("span",{className:"text-xs text-muted-foreground",children:"Connected"})]}),g.jsxs("div",{className:"flex items-center gap-2",children:[(e==null?void 0:e.email)&&g.jsx("span",{className:"text-xs text-muted-foreground",children:e.email}),g.jsx(Qo,{variant:"ghost",size:"icon",onClick:()=>r(n==="dark"?"light":"dark"),className:"h-8 w-8",children:n==="dark"?g.jsx(o2,{className:"h-4 w-4"}):g.jsx(t2,{className:"h-4 w-4"})}),g.jsx(Qo,{variant:"ghost",size:"icon",onClick:t,className:"h-8 w-8",children:g.jsx(e2,{className:"h-4 w-4"})})]})]})}function v2(){return g.jsxs("div",{className:"flex h-screen overflow-hidden bg-background",children:[g.jsx(l2,{}),g.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[g.jsx(y2,{}),g.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:g.jsx(N1,{})})]})]})}const Zo=k.forwardRef(({className:e,type:t,...n},r)=>g.jsx("input",{type:t,className:Tt("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors","file:border-0 file:bg-transparent file:text-sm file:font-medium","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring","disabled:cursor-not-allowed disabled:opacity-50",e),ref:r,...n}));Zo.displayName="Input";function x2(){const[e]=tS(),[t,n]=k.useState(e.get("email")??""),[r,o]=k.useState(e.get("key")??""),[i,s]=k.useState(""),[l,a]=k.useState(!1),{login:u,isAuthenticated:f,isLoading:c}=Ic(),d=ml();if(k.useEffect(()=>{f&&d("/inventory/agents",{replace:!0})},[f,d]),c)return g.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:g.jsx("div",{className:"text-muted-foreground text-sm",children:"Loading..."})});const y=async v=>{v.preventDefault(),s(""),a(!0);try{await u(t,r),d("/inventory/agents",{replace:!0})}catch(x){s(x instanceof Error?x.message:"Login failed")}finally{a(!1)}};return g.jsx("div",{className:"flex min-h-screen items-center justify-center bg-background",children:g.jsxs("div",{className:"w-full max-w-sm space-y-8 px-4",children:[g.jsxs("div",{className:"flex flex-col items-center gap-3",children:[g.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-xl border border-border bg-card",children:g.jsx(hg,{className:"h-6 w-6 text-foreground"})}),g.jsxs("div",{className:"text-center",children:[g.jsx("h1",{className:"text-lg font-semibold tracking-tight text-foreground",children:"OpenTrust"}),g.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Sign in to your dashboard"})]})]}),g.jsxs("form",{onSubmit:y,className:"space-y-4",children:[g.jsxs("div",{className:"space-y-2",children:[g.jsx("label",{className:"text-sm font-medium text-foreground",children:"Email"}),g.jsx(Zo,{type:"email",placeholder:"you@example.com",value:t,onChange:v=>n(v.target.value),required:!0})]}),g.jsxs("div",{className:"space-y-2",children:[g.jsx("label",{className:"text-sm font-medium text-foreground",children:"API Key"}),g.jsx(Zo,{type:"password",placeholder:"sk-og-...",value:r,onChange:v=>o(v.target.value),required:!0})]}),i&&g.jsx("p",{className:"rounded-md bg-destructive/10 px-3 py-2 text-sm text-destructive",children:i}),g.jsx(Qo,{type:"submit",className:"w-full",disabled:l,children:l?"Signing in...":"Sign in"})]}),g.jsx("p",{className:"text-center text-xs text-muted-foreground",children:"API Key is generated when registering an agent with the Core API."})]})})}const w2="/api";async function Me(e,t){const n=localStorage.getItem("opentrust_user"),r=n?JSON.parse(n).apiKey:null,o=await fetch(`${w2}${e}`,{...t,headers:{"Content-Type":"application/json",...r&&{Authorization:`Bearer ${r}`},...t==null?void 0:t.headers}});if(!o.ok)throw new Error(`API ${o.status}: ${await o.text()}`);return o.json()}const bn={agents:{list:()=>Me("/agents"),get:e=>Me(`/agents/${e}`),create:e=>Me("/agents",{method:"POST",body:JSON.stringify(e)}),update:(e,t)=>Me(`/agents/${e}`,{method:"PUT",body:JSON.stringify(t)}),delete:e=>Me(`/agents/${e}`,{method:"DELETE"})},discovery:{agents:()=>Me("/discovery/agents"),profile:e=>Me(`/discovery/agents/${e}/profile`)},observations:{recent:(e=50)=>Me(`/observations?limit=${e}`),permissions:()=>Me("/observations/permissions"),anomalies:()=>Me("/observations/anomalies"),summary:()=>Me("/observations/summary"),agentPermissions:e=>Me(`/observations/agents/${e}/permissions`)},detect:e=>Me("/detect",{method:"POST",body:JSON.stringify(e)}),usage:{summary:(e=30)=>Me(`/usage/summary?days=${e}`),daily:(e=30)=>Me(`/usage/daily?days=${e}`)},settings:{get:()=>Me("/settings"),update:e=>Me("/settings",{method:"PUT",body:JSON.stringify(e)})}};function Ge({className:e,variant:t="default",...n}){return g.jsx("div",{className:Tt("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{"border-transparent bg-primary text-primary-foreground shadow":t==="default","border-transparent bg-secondary text-secondary-foreground":t==="secondary","border-transparent bg-destructive text-destructive-foreground shadow":t==="destructive","text-foreground":t==="outline","border-transparent bg-success/15 text-success":t==="success","border-transparent bg-warning/15 text-warning":t==="warning"},e),...n})}function S2(){const[e,t]=k.useState([]),[n,r]=k.useState(""),[o,i]=k.useState(!0),s=async()=>{i(!0);try{const u=await bn.discovery.agents();t(u.data??[])}catch{}i(!1)};k.useEffect(()=>{s()},[]);const l=e.filter(u=>{var f;return!n||((f=u.name)==null?void 0:f.toLowerCase().includes(n.toLowerCase()))}),a=u=>u==="active"?"success":u==="inactive"?"secondary":"warning";return g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{className:"flex items-center justify-between",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Agents"}),g.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:[e.length," agent",e.length!==1?"s":""," discovered"]})]}),g.jsxs(Qo,{variant:"outline",size:"sm",onClick:s,children:[g.jsx(r2,{className:"h-3.5 w-3.5"}),"Scan"]})]}),g.jsxs("div",{className:"relative max-w-sm",children:[g.jsx(fg,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),g.jsx(Zo,{placeholder:"Search agents...",className:"pl-9",value:n,onChange:u=>r(u.target.value)})]}),o?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):l.length===0?g.jsxs("div",{className:"flex h-40 flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-border",children:[g.jsx(cg,{className:"h-8 w-8 text-muted-foreground/50"}),g.jsx("p",{className:"text-sm text-muted-foreground",children:"No agents found"})]}):g.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:l.map(u=>{var f;return g.jsxs(yl,{to:`/inventory/agents/${u.id}`,className:"group flex flex-col gap-3 rounded-lg border border-border bg-card p-4 transition-colors hover:border-muted-foreground/30",children:[g.jsxs("div",{className:"flex items-start justify-between",children:[g.jsxs("div",{className:"flex items-center gap-2.5",children:[g.jsx("span",{className:"text-xl",children:u.emoji||"🤖"}),g.jsxs("div",{children:[g.jsx("p",{className:"text-sm font-medium text-foreground group-hover:text-foreground",children:u.name}),g.jsxs("p",{className:"text-xs text-muted-foreground",children:[u.provider||"unknown",u.model?` · ${u.model}`:""]})]})]}),g.jsx(Ge,{variant:a(u.status??"inactive"),className:"text-[10px]",children:u.status??"inactive"})]}),((f=u.skills)==null?void 0:f.length)>0&&g.jsxs("div",{className:"flex flex-wrap gap-1",children:[u.skills.slice(0,4).map(c=>g.jsx("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:typeof c=="string"?c:c.name},c.name??c)),u.skills.length>4&&g.jsxs("span",{className:"rounded-md bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:["+",u.skills.length-4]})]})]},u.id)})})]})}const hn=k.forwardRef(({className:e,...t},n)=>g.jsx("div",{ref:n,className:Tt("rounded-lg border border-border bg-card text-card-foreground shadow-sm",e),...t}));hn.displayName="Card";const On=k.forwardRef(({className:e,...t},n)=>g.jsx("div",{ref:n,className:Tt("flex flex-col space-y-1.5 p-6",e),...t}));On.displayName="CardHeader";const Fn=k.forwardRef(({className:e,...t},n)=>g.jsx("h3",{ref:n,className:Tt("font-semibold leading-none tracking-tight",e),...t}));Fn.displayName="CardTitle";const k2=k.forwardRef(({className:e,...t},n)=>g.jsx("p",{ref:n,className:Tt("text-sm text-muted-foreground",e),...t}));k2.displayName="CardDescription";const pn=k.forwardRef(({className:e,...t},n)=>g.jsx("div",{ref:n,className:Tt("p-6 pt-0",e),...t}));pn.displayName="CardContent";const E2=["Profile","Tasks","Identities","Permissions"];function N2(){const{id:e}=c1(),[t,n]=k.useState(null),[r,o]=k.useState([]),[i,s]=k.useState("Profile"),[l,a]=k.useState(!0);return k.useEffect(()=>{e&&(a(!0),(async()=>{const u=await bn.discovery.profile(e).catch(()=>null),f=(u==null?void 0:u.data)??null;n(f);const c=(f==null?void 0:f.registeredAgentId)??e,d=await bn.observations.agentPermissions(c).catch(()=>({data:[]}));o((d==null?void 0:d.data)??[]),a(!1)})())},[e]),l?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):t?g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{className:"flex items-center gap-3",children:[g.jsx(yl,{to:"/inventory/agents",className:"rounded-md p-1.5 hover:bg-accent",children:g.jsx(XS,{className:"h-4 w-4"})}),g.jsxs("div",{className:"flex items-center gap-3",children:[g.jsx("span",{className:"text-2xl",children:t.emoji||"🤖"}),g.jsxs("div",{children:[g.jsx("h1",{className:"text-lg font-semibold",children:t.name||e}),g.jsxs("p",{className:"text-sm text-muted-foreground",children:[t.provider||"unknown",t.model?` / ${t.model}`:""]})]})]})]}),g.jsx("div",{className:"flex gap-1 border-b border-border",children:E2.map(u=>g.jsx("button",{onClick:()=>s(u),className:Tt("border-b-2 px-4 py-2 text-sm font-medium transition-colors",i===u?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"),children:u},u))}),i==="Profile"&&g.jsx(C2,{profile:t}),i==="Tasks"&&g.jsx(_2,{profile:t}),i==="Identities"&&g.jsx(b2,{profile:t}),i==="Permissions"&&g.jsx(P2,{permissions:r})]}):g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Agent not found"})}function C2({profile:e}){const t=e.skills??[];return g.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[g.jsxs(hn,{children:[g.jsx(On,{children:g.jsx(Fn,{className:"text-sm",children:"Info"})}),g.jsxs(pn,{className:"space-y-2 text-sm",children:[g.jsx(fo,{label:"Owner",value:e.ownerName||"—"}),g.jsx(fo,{label:"Creature",value:e.creature||"—"}),g.jsx(fo,{label:"Vibe",value:e.vibe||"—"}),g.jsx(fo,{label:"Sessions",value:String(e.sessionCount??0)}),g.jsx(fo,{label:"Last Active",value:e.lastActive??"never"})]})]}),g.jsxs(hn,{children:[g.jsx(On,{children:g.jsxs(Fn,{className:"flex items-center gap-2 text-sm",children:[g.jsx(i2,{className:"h-4 w-4"})," Skills (",t.length,")"]})}),g.jsx(pn,{children:t.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No skills installed"}):g.jsx("div",{className:"flex flex-wrap gap-1.5",children:t.map(n=>g.jsx(Ge,{variant:"secondary",className:"text-xs font-normal",children:n.name},n.name))})})]}),g.jsxs(hn,{children:[g.jsx(On,{children:g.jsx(Fn,{className:"text-sm",children:"Plugins"})}),g.jsx(pn,{children:(e.plugins??[]).length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No plugins"}):g.jsx("div",{className:"space-y-1.5",children:(e.plugins??[]).map(n=>g.jsxs("div",{className:"flex items-center justify-between text-sm",children:[g.jsx("span",{children:n.name}),g.jsx(Ge,{variant:n.enabled?"success":"secondary",className:"text-[10px]",children:n.enabled?"on":"off"})]},n.name))})})]}),g.jsxs(hn,{children:[g.jsx(On,{children:g.jsx(Fn,{className:"text-sm",children:"Connected Systems"})}),g.jsx(pn,{children:(e.connectedSystems??[]).length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"None"}):g.jsx("div",{className:"flex flex-wrap gap-1.5",children:(e.connectedSystems??[]).map(n=>g.jsx(Ge,{variant:"outline",className:"text-xs",children:n},n))})})]})]})}function _2({profile:e}){const t=e.cronJobs??[];return g.jsxs(hn,{children:[g.jsx(On,{children:g.jsxs(Fn,{className:"flex items-center gap-2 text-sm",children:[g.jsx(ZS,{className:"h-4 w-4"})," Scheduled Tasks (",t.length,")"]})}),g.jsx(pn,{children:t.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No scheduled tasks"}):g.jsx("div",{className:"space-y-2",children:t.map((n,r)=>g.jsxs("div",{className:"flex items-center justify-between rounded-md border border-border px-3 py-2 text-sm",children:[g.jsxs("div",{children:[g.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:n.schedule}),g.jsx("span",{className:"ml-2",children:n.task??n.id})]}),g.jsx(Ge,{variant:n.enabled!==!1?"success":"secondary",className:"text-[10px]",children:n.enabled!==!1?"active":"paused"})]},r))})})]})}function b2({profile:e}){const t=e.workspaceFiles??{},n=[{label:"SOUL.md",content:t.soul},{label:"IDENTITY.md",content:t.identity},{label:"USER.md",content:t.user}].filter(r=>r.content);return g.jsx("div",{className:"space-y-4",children:n.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No identity files found"}):n.map(r=>g.jsxs(hn,{children:[g.jsx(On,{children:g.jsxs(Fn,{className:"flex items-center gap-2 text-sm",children:[g.jsx(qS,{className:"h-4 w-4"})," ",r.label]})}),g.jsx(pn,{children:g.jsx("pre",{className:"max-h-60 overflow-auto whitespace-pre-wrap rounded-md bg-muted p-3 font-mono text-xs text-muted-foreground",children:r.content})})]},r.label))})}function P2({permissions:e}){return e.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"No observed permissions"}):g.jsx("div",{className:"overflow-x-auto rounded-lg border border-border",children:g.jsxs("table",{className:"w-full text-sm",children:[g.jsx("thead",{children:g.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Tool"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Category"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Access"}),g.jsx("th",{className:"px-4 py-2.5 text-right font-medium text-muted-foreground",children:"Calls"}),g.jsx("th",{className:"px-4 py-2.5 text-right font-medium text-muted-foreground",children:"Errors"})]})}),g.jsx("tbody",{children:e.map(t=>g.jsxs("tr",{className:"border-b border-border last:border-0",children:[g.jsx("td",{className:"px-4 py-2.5 font-mono text-xs",children:t.toolName}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:t.category??"—"})}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:t.accessPattern==="write"?"warning":t.accessPattern==="admin"?"destructive":"secondary",className:"text-[10px]",children:t.accessPattern??"read"})}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs",children:t.callCount}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs text-destructive",children:t.errorCount||"—"})]},t.id))})]})})}function fo({label:e,value:t}){return g.jsxs("div",{className:"flex justify-between",children:[g.jsx("span",{className:"text-muted-foreground",children:e}),g.jsx("span",{className:"font-medium",children:t})]})}function M2(){const[e,t]=k.useState([]),[n,r]=k.useState(!0),[o,i]=k.useState(new Set);k.useEffect(()=>{bn.discovery.agents().then(a=>{t(a.data??[]),r(!1)}).catch(()=>r(!1))},[]);const s=[{category:"Agents",items:e.map(a=>({id:a.id,name:a.name,emoji:a.emoji,provider:a.provider,status:a.status}))},{category:"Owners",items:[...new Set(e.map(a=>a.ownerName).filter(Boolean))].map(a=>({id:a,name:a,type:"owner"}))},{category:"Connected Systems",items:[...new Set(e.flatMap(a=>a.connectedSystems??[]))].map(a=>({id:a,name:a,type:"system"}))}],l=a=>{i(u=>{const f=new Set(u);return f.has(a)?f.delete(a):f.add(a),f})};return n?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Identities"}),g.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Agents, owners, and connected systems"})]}),g.jsx("div",{className:"space-y-3",children:s.map(a=>g.jsxs(hn,{children:[g.jsxs("button",{onClick:()=>l(a.category),className:"flex w-full items-center justify-between p-4 text-left",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[g.jsx(dg,{className:"h-4 w-4 text-muted-foreground"}),g.jsx("span",{className:"text-sm font-medium",children:a.category}),g.jsx(Ge,{variant:"secondary",className:"text-[10px]",children:a.items.length})]}),o.has(a.category)?g.jsx(KS,{className:"h-4 w-4 text-muted-foreground"}):g.jsx(QS,{className:"h-4 w-4 text-muted-foreground"})]}),o.has(a.category)&&g.jsx(pn,{className:"border-t border-border pt-3",children:a.items.length===0?g.jsx("p",{className:"text-sm text-muted-foreground",children:"None"}):g.jsx("div",{className:"space-y-1.5",children:a.items.map(u=>g.jsxs("div",{className:"flex items-center justify-between rounded-md px-3 py-2 text-sm hover:bg-muted/50",children:[g.jsxs("div",{className:"flex items-center gap-2",children:[u.emoji&&g.jsx("span",{className:"text-base",children:u.emoji}),g.jsx("span",{children:u.name})]}),u.status&&g.jsx(Ge,{variant:u.status==="active"?"success":"secondary",className:"text-[10px]",children:u.status}),u.type&&g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:u.type})]},u.id))})})]},a.category))})]})}function j2(){const[e,t]=k.useState([]),[n,r]=k.useState(""),[o,i]=k.useState("callCount"),[s,l]=k.useState(!1),[a,u]=k.useState(!0);k.useEffect(()=>{bn.observations.permissions().then(d=>{t(d.data??[]),u(!1)}).catch(()=>u(!1))},[]);const f=k.useMemo(()=>{let d=e;if(n){const y=n.toLowerCase();d=d.filter(v=>{var x,S;return((x=v.toolName)==null?void 0:x.toLowerCase().includes(y))||((S=v.category)==null?void 0:S.toLowerCase().includes(y))})}return[...d].sort((y,v)=>{const x=y[o]??0,S=v[o]??0;return typeof x=="string"?s?x.localeCompare(S):S.localeCompare(x):s?x-S:S-x})},[e,n,o,s]),c=d=>{o===d?l(!s):(i(d),l(!1))};return a?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Permissions"}),g.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:[e.length," observed tool permission",e.length!==1?"s":""]})]}),g.jsxs("div",{className:"relative max-w-sm",children:[g.jsx(fg,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),g.jsx(Zo,{placeholder:"Filter by tool or category...",className:"pl-9",value:n,onChange:d=>r(d.target.value)})]}),g.jsx("div",{className:"overflow-x-auto rounded-lg border border-border",children:g.jsxs("table",{className:"w-full text-sm",children:[g.jsx("thead",{children:g.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[g.jsx(aa,{label:"Tool",sortKey:"toolName",current:o,asc:s,onSort:c}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Category"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Access"}),g.jsx(aa,{label:"Calls",sortKey:"callCount",current:o,asc:s,onSort:c,align:"right"}),g.jsx(aa,{label:"Errors",sortKey:"errorCount",current:o,asc:s,onSort:c,align:"right"})]})}),g.jsx("tbody",{children:f.length===0?g.jsx("tr",{children:g.jsx("td",{colSpan:5,className:"px-4 py-8 text-center text-muted-foreground",children:"No permissions"})}):f.map(d=>g.jsxs("tr",{className:"border-b border-border last:border-0 hover:bg-muted/30",children:[g.jsx("td",{className:"px-4 py-2.5 font-mono text-xs",children:d.toolName}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:d.category??"—"})}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:d.accessPattern==="write"?"warning":d.accessPattern==="admin"?"destructive":"secondary",className:"text-[10px]",children:d.accessPattern??"read"})}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs",children:d.callCount}),g.jsx("td",{className:"px-4 py-2.5 text-right font-mono text-xs text-destructive",children:d.errorCount||"—"})]},d.id))})]})})]})}function aa({label:e,sortKey:t,current:n,asc:r,onSort:o,align:i="left"}){return g.jsx("th",{className:`cursor-pointer px-4 py-2.5 font-medium text-muted-foreground hover:text-foreground ${i==="right"?"text-right":"text-left"}`,onClick:()=>o(t),children:g.jsxs("span",{className:"inline-flex items-center gap-1",children:[e,n===t&&g.jsx(GS,{className:"h-3 w-3"})]})})}function L2(){const[e,t]=k.useState([]),[n,r]=k.useState(!0);k.useEffect(()=>{bn.observations.anomalies().then(s=>{t(s.data??[]),r(!1)}).catch(()=>r(!1))},[]);const o=s=>s.blocked||s.errorCount>3?"high":s.callCount===1||s.errorCount>0?"medium":"low",i=s=>s==="high"?"destructive":s==="medium"?"warning":"secondary";return n?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Risk Overview"}),g.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:[e.length," anomal",e.length!==1?"ies":"y"," detected"]})]}),e.length===0?g.jsxs("div",{className:"flex h-40 flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-border",children:[g.jsx(pg,{className:"h-8 w-8 text-muted-foreground/50"}),g.jsx("p",{className:"text-sm text-muted-foreground",children:"No anomalies detected"})]}):g.jsx("div",{className:"overflow-x-auto rounded-lg border border-border",children:g.jsxs("table",{className:"w-full text-sm",children:[g.jsx("thead",{children:g.jsxs("tr",{className:"border-b border-border bg-muted/50",children:[g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Tool"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Agent"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Risk"}),g.jsx("th",{className:"px-4 py-2.5 text-left font-medium text-muted-foreground",children:"Category"}),g.jsx("th",{className:"px-4 py-2.5 text-right font-medium text-muted-foreground",children:"First Seen"})]})}),g.jsx("tbody",{children:e.map(s=>{var a;const l=o(s);return g.jsxs("tr",{className:"border-b border-border last:border-0 hover:bg-muted/30",children:[g.jsx("td",{className:"px-4 py-2.5 font-mono text-xs",children:s.toolName}),g.jsx("td",{className:"px-4 py-2.5 text-xs text-muted-foreground",children:((a=s.agentId)==null?void 0:a.slice(0,8))??"—"}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:i(l),className:"text-[10px]",children:l})}),g.jsx("td",{className:"px-4 py-2.5",children:g.jsx(Ge,{variant:"outline",className:"text-[10px]",children:s.category??"—"})}),g.jsx("td",{className:"px-4 py-2.5 text-right text-xs text-muted-foreground",children:s.firstSeen?new Date(s.firstSeen).toLocaleDateString():"—"})]},s.id)})})]})})]})}function Ee(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=Ee(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var R2={value:()=>{}};function vl(){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 cs(n)}function cs(e){this._=e}function I2(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}cs.prototype=vl.prototype={constructor:cs,on:function(e,t){var n=this._,r=I2(e+"",n),o,i=-1,s=r.length;if(arguments.length<2){for(;++i<s;)if((o=(e=r[i]).type)&&(o=T2(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(o=(e=r[i]).type)n[o]=_f(n[o],e.name,t);else if(t==null)for(o in n)n[o]=_f(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new cs(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};function T2(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function _f(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=R2,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var vu="http://www.w3.org/1999/xhtml";const bf={svg:"http://www.w3.org/2000/svg",xhtml:vu,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function xl(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),bf.hasOwnProperty(t)?{space:bf[t],local:e}:e}function z2(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===vu&&t.documentElement.namespaceURI===vu?t.createElement(e):t.createElementNS(n,e)}}function A2(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function yg(e){var t=xl(e);return(t.local?A2:z2)(t)}function $2(){}function zc(e){return e==null?$2:function(){return this.querySelector(e)}}function D2(e){typeof e!="function"&&(e=zc(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,l=r[o]=new Array(s),a,u,f=0;f<s;++f)(a=i[f])&&(u=e.call(a,a.__data__,f,i))&&("__data__"in a&&(u.__data__=a.__data__),l[f]=u);return new et(r,this._parents)}function O2(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function F2(){return[]}function vg(e){return e==null?F2:function(){return this.querySelectorAll(e)}}function H2(e){return function(){return O2(e.apply(this,arguments))}}function V2(e){typeof e=="function"?e=H2(e):e=vg(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var s=t[i],l=s.length,a,u=0;u<l;++u)(a=s[u])&&(r.push(e.call(a,a.__data__,u,s)),o.push(a));return new et(r,o)}function xg(e){return function(){return this.matches(e)}}function wg(e){return function(t){return t.matches(e)}}var B2=Array.prototype.find;function U2(e){return function(){return B2.call(this.children,e)}}function W2(){return this.firstElementChild}function Y2(e){return this.select(e==null?W2:U2(typeof e=="function"?e:wg(e)))}var X2=Array.prototype.filter;function G2(){return Array.from(this.children)}function K2(e){return function(){return X2.call(this.children,e)}}function Q2(e){return this.selectAll(e==null?G2:K2(typeof e=="function"?e:wg(e)))}function Z2(e){typeof e!="function"&&(e=xg(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,l=r[o]=[],a,u=0;u<s;++u)(a=i[u])&&e.call(a,a.__data__,u,i)&&l.push(a);return new et(r,this._parents)}function Sg(e){return new Array(e.length)}function q2(){return new et(this._enter||this._groups.map(Sg),this._parents)}function Fs(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Fs.prototype={constructor:Fs,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 J2(e){return function(){return e}}function ek(e,t,n,r,o,i){for(var s=0,l,a=t.length,u=i.length;s<u;++s)(l=t[s])?(l.__data__=i[s],r[s]=l):n[s]=new Fs(e,i[s]);for(;s<a;++s)(l=t[s])&&(o[s]=l)}function tk(e,t,n,r,o,i,s){var l,a,u=new Map,f=t.length,c=i.length,d=new Array(f),y;for(l=0;l<f;++l)(a=t[l])&&(d[l]=y=s.call(a,a.__data__,l,t)+"",u.has(y)?o[l]=a:u.set(y,a));for(l=0;l<c;++l)y=s.call(e,i[l],l,i)+"",(a=u.get(y))?(r[l]=a,a.__data__=i[l],u.delete(y)):n[l]=new Fs(e,i[l]);for(l=0;l<f;++l)(a=t[l])&&u.get(d[l])===a&&(o[l]=a)}function nk(e){return e.__data__}function rk(e,t){if(!arguments.length)return Array.from(this,nk);var n=t?tk:ek,r=this._parents,o=this._groups;typeof e!="function"&&(e=J2(e));for(var i=o.length,s=new Array(i),l=new Array(i),a=new Array(i),u=0;u<i;++u){var f=r[u],c=o[u],d=c.length,y=ok(e.call(f,f&&f.__data__,u,r)),v=y.length,x=l[u]=new Array(v),S=s[u]=new Array(v),h=a[u]=new Array(d);n(f,c,x,S,h,y,t);for(var m=0,p=0,w,E;m<v;++m)if(w=x[m]){for(m>=p&&(p=m+1);!(E=S[p])&&++p<v;);w._next=E||null}}return s=new et(s,r),s._enter=l,s._exit=a,s}function ok(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ik(){return new et(this._exit||this._groups.map(Sg),this._parents)}function sk(e,t,n){var r=this.enter(),o=this,i=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function lk(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,s=Math.min(o,i),l=new Array(o),a=0;a<s;++a)for(var u=n[a],f=r[a],c=u.length,d=l[a]=new Array(c),y,v=0;v<c;++v)(y=u[v]||f[v])&&(d[v]=y);for(;a<o;++a)l[a]=n[a];return new et(l,this._parents)}function ak(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,i=r[o],s;--o>=0;)(s=r[o])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function uk(e){e||(e=ck);function t(c,d){return c&&d?e(c.__data__,d.__data__):!c-!d}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var s=n[i],l=s.length,a=o[i]=new Array(l),u,f=0;f<l;++f)(u=s[f])&&(a[f]=u);a.sort(t)}return new et(o,this._parents).order()}function ck(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function dk(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function fk(){return Array.from(this)}function hk(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var s=r[o];if(s)return s}return null}function pk(){let e=0;for(const t of this)++e;return e}function mk(){return!this.node()}function gk(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],i=0,s=o.length,l;i<s;++i)(l=o[i])&&e.call(l,l.__data__,i,o);return this}function yk(e){return function(){this.removeAttribute(e)}}function vk(e){return function(){this.removeAttributeNS(e.space,e.local)}}function xk(e,t){return function(){this.setAttribute(e,t)}}function wk(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function Sk(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function kk(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 Ek(e,t){var n=xl(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?vk:yk:typeof t=="function"?n.local?kk:Sk:n.local?wk:xk)(n,t))}function kg(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Nk(e){return function(){this.style.removeProperty(e)}}function Ck(e,t,n){return function(){this.style.setProperty(e,t,n)}}function _k(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function bk(e,t,n){return arguments.length>1?this.each((t==null?Nk:typeof t=="function"?_k:Ck)(e,t,n??"")):zr(this.node(),e)}function zr(e,t){return e.style.getPropertyValue(t)||kg(e).getComputedStyle(e,null).getPropertyValue(t)}function Pk(e){return function(){delete this[e]}}function Mk(e,t){return function(){this[e]=t}}function jk(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function Lk(e,t){return arguments.length>1?this.each((t==null?Pk:typeof t=="function"?jk:Mk)(e,t)):this.node()[e]}function Eg(e){return e.trim().split(/^|\s+/)}function Ac(e){return e.classList||new Ng(e)}function Ng(e){this._node=e,this._names=Eg(e.getAttribute("class")||"")}Ng.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 Cg(e,t){for(var n=Ac(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function _g(e,t){for(var n=Ac(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function Rk(e){return function(){Cg(this,e)}}function Ik(e){return function(){_g(this,e)}}function Tk(e,t){return function(){(t.apply(this,arguments)?Cg:_g)(this,e)}}function zk(e,t){var n=Eg(e+"");if(arguments.length<2){for(var r=Ac(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?Tk:t?Rk:Ik)(n,t))}function Ak(){this.textContent=""}function $k(e){return function(){this.textContent=e}}function Dk(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function Ok(e){return arguments.length?this.each(e==null?Ak:(typeof e=="function"?Dk:$k)(e)):this.node().textContent}function Fk(){this.innerHTML=""}function Hk(e){return function(){this.innerHTML=e}}function Vk(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function Bk(e){return arguments.length?this.each(e==null?Fk:(typeof e=="function"?Vk:Hk)(e)):this.node().innerHTML}function Uk(){this.nextSibling&&this.parentNode.appendChild(this)}function Wk(){return this.each(Uk)}function Yk(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Xk(){return this.each(Yk)}function Gk(e){var t=typeof e=="function"?e:yg(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Kk(){return null}function Qk(e,t){var n=typeof e=="function"?e:yg(e),r=t==null?Kk:typeof t=="function"?t:zc(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function Zk(){var e=this.parentNode;e&&e.removeChild(this)}function qk(){return this.each(Zk)}function Jk(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function eE(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function tE(e){return this.select(e?eE:Jk)}function nE(e){return arguments.length?this.property("__data__",e):this.node().__data__}function rE(e){return function(t){e.call(this,t,this.__data__)}}function oE(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 iE(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,i;n<o;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function sE(e,t,n){return function(){var r=this.__on,o,i=rE(t);if(r){for(var s=0,l=r.length;s<l;++s)if((o=r[s]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=t;return}}this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function lE(e,t,n){var r=oE(e+""),o,i=r.length,s;if(arguments.length<2){var l=this.node().__on;if(l){for(var a=0,u=l.length,f;a<u;++a)for(o=0,f=l[a];o<i;++o)if((s=r[o]).type===f.type&&s.name===f.name)return f.value}return}for(l=t?sE:iE,o=0;o<i;++o)this.each(l(r[o],t,n));return this}function bg(e,t,n){var r=kg(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function aE(e,t){return function(){return bg(this,e,t)}}function uE(e,t){return function(){return bg(this,e,t.apply(this,arguments))}}function cE(e,t){return this.each((typeof t=="function"?uE:aE)(e,t))}function*dE(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length,s;o<i;++o)(s=r[o])&&(yield s)}var Pg=[null];function et(e,t){this._groups=e,this._parents=t}function pi(){return new et([[document.documentElement]],Pg)}function fE(){return this}et.prototype=pi.prototype={constructor:et,select:D2,selectAll:V2,selectChild:Y2,selectChildren:Q2,filter:Z2,data:rk,enter:q2,exit:ik,join:sk,merge:lk,selection:fE,order:ak,sort:uk,call:dk,nodes:fk,node:hk,size:pk,empty:mk,each:gk,attr:Ek,style:bk,property:Lk,classed:zk,text:Ok,html:Bk,raise:Wk,lower:Xk,append:Gk,insert:Qk,remove:qk,clone:tE,datum:nE,on:lE,dispatch:cE,[Symbol.iterator]:dE};function Qe(e){return typeof e=="string"?new et([[document.querySelector(e)]],[document.documentElement]):new et([[e]],Pg)}function hE(e){let t;for(;t=e.sourceEvent;)e=t;return e}function mt(e,t){if(e=hE(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const pE={passive:!1},qo={capture:!0,passive:!1};function ua(e){e.stopImmediatePropagation()}function _r(e){e.preventDefault(),e.stopImmediatePropagation()}function Mg(e){var t=e.document.documentElement,n=Qe(e).on("dragstart.drag",_r,qo);"onselectstart"in t?n.on("selectstart.drag",_r,qo):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function jg(e,t){var n=e.document.documentElement,r=Qe(e).on("dragstart.drag",null);t&&(r.on("click.drag",_r,qo),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 Hi=e=>()=>e;function xu(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:s,y:l,dx:a,dy:u,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:a,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:f}})}xu.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function mE(e){return!e.ctrlKey&&!e.button}function gE(){return this.parentNode}function yE(e,t){return t??{x:e.x,y:e.y}}function vE(){return navigator.maxTouchPoints||"ontouchstart"in this}function Lg(){var e=mE,t=gE,n=yE,r=vE,o={},i=vl("start","drag","end"),s=0,l,a,u,f,c=0;function d(w){w.on("mousedown.drag",y).filter(r).on("touchstart.drag",S).on("touchmove.drag",h,pE).on("touchend.drag touchcancel.drag",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(w,E){if(!(f||!e.call(this,w,E))){var N=p(this,t.call(this,w,E),w,E,"mouse");N&&(Qe(w.view).on("mousemove.drag",v,qo).on("mouseup.drag",x,qo),Mg(w.view),ua(w),u=!1,l=w.clientX,a=w.clientY,N("start",w))}}function v(w){if(_r(w),!u){var E=w.clientX-l,N=w.clientY-a;u=E*E+N*N>c}o.mouse("drag",w)}function x(w){Qe(w.view).on("mousemove.drag mouseup.drag",null),jg(w.view,u),_r(w),o.mouse("end",w)}function S(w,E){if(e.call(this,w,E)){var N=w.changedTouches,_=t.call(this,w,E),M=N.length,R,$;for(R=0;R<M;++R)($=p(this,_,w,E,N[R].identifier,N[R]))&&(ua(w),$("start",w,N[R]))}}function h(w){var E=w.changedTouches,N=E.length,_,M;for(_=0;_<N;++_)(M=o[E[_].identifier])&&(_r(w),M("drag",w,E[_]))}function m(w){var E=w.changedTouches,N=E.length,_,M;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),_=0;_<N;++_)(M=o[E[_].identifier])&&(ua(w),M("end",w,E[_]))}function p(w,E,N,_,M,R){var $=i.copy(),I=mt(R||N,E),L,F,b;if((b=n.call(w,new xu("beforestart",{sourceEvent:N,target:d,identifier:M,active:s,x:I[0],y:I[1],dx:0,dy:0,dispatch:$}),_))!=null)return L=b.x-I[0]||0,F=b.y-I[1]||0,function z(j,A,C){var P=I,T;switch(j){case"start":o[M]=z,T=s++;break;case"end":delete o[M],--s;case"drag":I=mt(C||A,E),T=s;break}$.call(j,w,new xu(j,{sourceEvent:A,subject:b,target:d,identifier:M,active:T,x:I[0]+L,y:I[1]+F,dx:I[0]-P[0],dy:I[1]-P[1],dispatch:$}),_)}}return d.filter=function(w){return arguments.length?(e=typeof w=="function"?w:Hi(!!w),d):e},d.container=function(w){return arguments.length?(t=typeof w=="function"?w:Hi(w),d):t},d.subject=function(w){return arguments.length?(n=typeof w=="function"?w:Hi(w),d):n},d.touchable=function(w){return arguments.length?(r=typeof w=="function"?w:Hi(!!w),d):r},d.on=function(){var w=i.on.apply(i,arguments);return w===i?d:w},d.clickDistance=function(w){return arguments.length?(c=(w=+w)*w,d):Math.sqrt(c)},d}function $c(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function Rg(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function mi(){}var Jo=.7,Hs=1/Jo,br="\\s*([+-]?\\d+)\\s*",ei="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Lt="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",xE=/^#([0-9a-f]{3,8})$/,wE=new RegExp(`^rgb\\(${br},${br},${br}\\)$`),SE=new RegExp(`^rgb\\(${Lt},${Lt},${Lt}\\)$`),kE=new RegExp(`^rgba\\(${br},${br},${br},${ei}\\)$`),EE=new RegExp(`^rgba\\(${Lt},${Lt},${Lt},${ei}\\)$`),NE=new RegExp(`^hsl\\(${ei},${Lt},${Lt}\\)$`),CE=new RegExp(`^hsla\\(${ei},${Lt},${Lt},${ei}\\)$`),Pf={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};$c(mi,Zn,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:Mf,formatHex:Mf,formatHex8:_E,formatHsl:bE,formatRgb:jf,toString:jf});function Mf(){return this.rgb().formatHex()}function _E(){return this.rgb().formatHex8()}function bE(){return Ig(this).formatHsl()}function jf(){return this.rgb().formatRgb()}function Zn(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=xE.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?Lf(t):n===3?new Ue(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Vi(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Vi(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=wE.exec(e))?new Ue(t[1],t[2],t[3],1):(t=SE.exec(e))?new Ue(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=kE.exec(e))?Vi(t[1],t[2],t[3],t[4]):(t=EE.exec(e))?Vi(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=NE.exec(e))?Tf(t[1],t[2]/100,t[3]/100,1):(t=CE.exec(e))?Tf(t[1],t[2]/100,t[3]/100,t[4]):Pf.hasOwnProperty(e)?Lf(Pf[e]):e==="transparent"?new Ue(NaN,NaN,NaN,0):null}function Lf(e){return new Ue(e>>16&255,e>>8&255,e&255,1)}function Vi(e,t,n,r){return r<=0&&(e=t=n=NaN),new Ue(e,t,n,r)}function PE(e){return e instanceof mi||(e=Zn(e)),e?(e=e.rgb(),new Ue(e.r,e.g,e.b,e.opacity)):new Ue}function wu(e,t,n,r){return arguments.length===1?PE(e):new Ue(e,t,n,r??1)}function Ue(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}$c(Ue,wu,Rg(mi,{brighter(e){return e=e==null?Hs:Math.pow(Hs,e),new Ue(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Jo:Math.pow(Jo,e),new Ue(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Ue(Un(this.r),Un(this.g),Un(this.b),Vs(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:Rf,formatHex:Rf,formatHex8:ME,formatRgb:If,toString:If}));function Rf(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}`}function ME(){return`#${Hn(this.r)}${Hn(this.g)}${Hn(this.b)}${Hn((isNaN(this.opacity)?1:this.opacity)*255)}`}function If(){const e=Vs(this.opacity);return`${e===1?"rgb(":"rgba("}${Un(this.r)}, ${Un(this.g)}, ${Un(this.b)}${e===1?")":`, ${e})`}`}function Vs(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Un(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Hn(e){return e=Un(e),(e<16?"0":"")+e.toString(16)}function Tf(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new yt(e,t,n,r)}function Ig(e){if(e instanceof yt)return new yt(e.h,e.s,e.l,e.opacity);if(e instanceof mi||(e=Zn(e)),!e)return new yt;if(e instanceof yt)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),s=NaN,l=i-o,a=(i+o)/2;return l?(t===i?s=(n-r)/l+(n<r)*6:n===i?s=(r-t)/l+2:s=(t-n)/l+4,l/=a<.5?i+o:2-i-o,s*=60):l=a>0&&a<1?0:s,new yt(s,l,a,e.opacity)}function jE(e,t,n,r){return arguments.length===1?Ig(e):new yt(e,t,n,r??1)}function yt(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}$c(yt,jE,Rg(mi,{brighter(e){return e=e==null?Hs:Math.pow(Hs,e),new yt(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Jo:Math.pow(Jo,e),new yt(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new Ue(ca(e>=240?e-240:e+120,o,r),ca(e,o,r),ca(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new yt(zf(this.h),Bi(this.s),Bi(this.l),Vs(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=Vs(this.opacity);return`${e===1?"hsl(":"hsla("}${zf(this.h)}, ${Bi(this.s)*100}%, ${Bi(this.l)*100}%${e===1?")":`, ${e})`}`}}));function zf(e){return e=(e||0)%360,e<0?e+360:e}function Bi(e){return Math.max(0,Math.min(1,e||0))}function ca(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 Dc=e=>()=>e;function LE(e,t){return function(n){return e+n*t}}function RE(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 IE(e){return(e=+e)==1?Tg:function(t,n){return n-t?RE(t,n,e):Dc(isNaN(t)?n:t)}}function Tg(e,t){var n=t-e;return n?LE(e,n):Dc(isNaN(e)?t:e)}const Bs=function e(t){var n=IE(t);function r(o,i){var s=n((o=wu(o)).r,(i=wu(i)).r),l=n(o.g,i.g),a=n(o.b,i.b),u=Tg(o.opacity,i.opacity);return function(f){return o.r=s(f),o.g=l(f),o.b=a(f),o.opacity=u(f),o+""}}return r.gamma=e,r}(1);function TE(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=e[o]*(1-i)+t[o]*i;return r}}function zE(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function AE(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),i=new Array(n),s;for(s=0;s<r;++s)o[s]=jo(e[s],t[s]);for(;s<n;++s)i[s]=t[s];return function(l){for(s=0;s<r;++s)i[s]=o[s](l);return i}}function $E(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function bt(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function DE(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=jo(e[o],t[o]):r[o]=t[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var Su=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,da=new RegExp(Su.source,"g");function OE(e){return function(){return e}}function FE(e){return function(t){return e(t)+""}}function zg(e,t){var n=Su.lastIndex=da.lastIndex=0,r,o,i,s=-1,l=[],a=[];for(e=e+"",t=t+"";(r=Su.exec(e))&&(o=da.exec(t));)(i=o.index)>n&&(i=t.slice(n,i),l[s]?l[s]+=i:l[++s]=i),(r=r[0])===(o=o[0])?l[s]?l[s]+=o:l[++s]=o:(l[++s]=null,a.push({i:s,x:bt(r,o)})),n=da.lastIndex;return n<t.length&&(i=t.slice(n),l[s]?l[s]+=i:l[++s]=i),l.length<2?a[0]?FE(a[0].x):OE(t):(t=a.length,function(u){for(var f=0,c;f<t;++f)l[(c=a[f]).i]=c.x(u);return l.join("")})}function jo(e,t){var n=typeof t,r;return t==null||n==="boolean"?Dc(t):(n==="number"?bt:n==="string"?(r=Zn(t))?(t=r,Bs):zg:t instanceof Zn?Bs:t instanceof Date?$E:zE(t)?TE:Array.isArray(t)?AE:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?DE:bt)(e,t)}var Af=180/Math.PI,ku={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Ag(e,t,n,r,o,i){var s,l,a;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(a=e*n+t*r)&&(n-=e*a,r-=t*a),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,a/=l),e*r<t*n&&(e=-e,t=-t,a=-a,s=-s),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*Af,skewX:Math.atan(a)*Af,scaleX:s,scaleY:l}}var Ui;function HE(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?ku:Ag(t.a,t.b,t.c,t.d,t.e,t.f)}function VE(e){return e==null||(Ui||(Ui=document.createElementNS("http://www.w3.org/2000/svg","g")),Ui.setAttribute("transform",e),!(e=Ui.transform.baseVal.consolidate()))?ku:(e=e.matrix,Ag(e.a,e.b,e.c,e.d,e.e,e.f))}function $g(e,t,n,r){function o(u){return u.length?u.pop()+" ":""}function i(u,f,c,d,y,v){if(u!==c||f!==d){var x=y.push("translate(",null,t,null,n);v.push({i:x-4,x:bt(u,c)},{i:x-2,x:bt(f,d)})}else(c||d)&&y.push("translate("+c+t+d+n)}function s(u,f,c,d){u!==f?(u-f>180?f+=360:f-u>180&&(u+=360),d.push({i:c.push(o(c)+"rotate(",null,r)-2,x:bt(u,f)})):f&&c.push(o(c)+"rotate("+f+r)}function l(u,f,c,d){u!==f?d.push({i:c.push(o(c)+"skewX(",null,r)-2,x:bt(u,f)}):f&&c.push(o(c)+"skewX("+f+r)}function a(u,f,c,d,y,v){if(u!==c||f!==d){var x=y.push(o(y)+"scale(",null,",",null,")");v.push({i:x-4,x:bt(u,c)},{i:x-2,x:bt(f,d)})}else(c!==1||d!==1)&&y.push(o(y)+"scale("+c+","+d+")")}return function(u,f){var c=[],d=[];return u=e(u),f=e(f),i(u.translateX,u.translateY,f.translateX,f.translateY,c,d),s(u.rotate,f.rotate,c,d),l(u.skewX,f.skewX,c,d),a(u.scaleX,u.scaleY,f.scaleX,f.scaleY,c,d),u=f=null,function(y){for(var v=-1,x=d.length,S;++v<x;)c[(S=d[v]).i]=S.x(y);return c.join("")}}}var BE=$g(HE,"px, ","px)","deg)"),UE=$g(VE,", ",")",")"),WE=1e-12;function $f(e){return((e=Math.exp(e))+1/e)/2}function YE(e){return((e=Math.exp(e))-1/e)/2}function XE(e){return((e=Math.exp(2*e))-1)/(e+1)}const ds=function e(t,n,r){function o(i,s){var l=i[0],a=i[1],u=i[2],f=s[0],c=s[1],d=s[2],y=f-l,v=c-a,x=y*y+v*v,S,h;if(x<WE)h=Math.log(d/u)/t,S=function(_){return[l+_*y,a+_*v,u*Math.exp(t*_*h)]};else{var m=Math.sqrt(x),p=(d*d-u*u+r*x)/(2*u*n*m),w=(d*d-u*u-r*x)/(2*d*n*m),E=Math.log(Math.sqrt(p*p+1)-p),N=Math.log(Math.sqrt(w*w+1)-w);h=(N-E)/t,S=function(_){var M=_*h,R=$f(E),$=u/(n*m)*(R*XE(t*M+E)-YE(E));return[l+$*y,a+$*v,u*R/$f(t*M+E)]}}return S.duration=h*1e3*t/Math.SQRT2,S}return o.rho=function(i){var s=Math.max(.001,+i),l=s*s,a=l*l;return e(s,l,a)},o}(Math.SQRT2,2,4);var Ar=0,xo=0,ho=0,Dg=1e3,Us,wo,Ws=0,qn=0,wl=0,ti=typeof performance=="object"&&performance.now?performance:Date,Og=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function Oc(){return qn||(Og(GE),qn=ti.now()+wl)}function GE(){qn=0}function Ys(){this._call=this._time=this._next=null}Ys.prototype=Fg.prototype={constructor:Ys,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?Oc():+n)+(t==null?0:+t),!this._next&&wo!==this&&(wo?wo._next=this:Us=this,wo=this),this._call=e,this._time=n,Eu()},stop:function(){this._call&&(this._call=null,this._time=1/0,Eu())}};function Fg(e,t,n){var r=new Ys;return r.restart(e,t,n),r}function KE(){Oc(),++Ar;for(var e=Us,t;e;)(t=qn-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Ar}function Df(){qn=(Ws=ti.now())+wl,Ar=xo=0;try{KE()}finally{Ar=0,ZE(),qn=0}}function QE(){var e=ti.now(),t=e-Ws;t>Dg&&(wl-=t,Ws=e)}function ZE(){for(var e,t=Us,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:Us=n);wo=e,Eu(r)}function Eu(e){if(!Ar){xo&&(xo=clearTimeout(xo));var t=e-qn;t>24?(e<1/0&&(xo=setTimeout(Df,e-ti.now()-wl)),ho&&(ho=clearInterval(ho))):(ho||(Ws=ti.now(),ho=setInterval(QE,Dg)),Ar=1,Og(Df))}}function Of(e,t,n){var r=new Ys;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var qE=vl("start","end","cancel","interrupt"),JE=[],Hg=0,Ff=1,Nu=2,fs=3,Hf=4,Cu=5,hs=6;function Sl(e,t,n,r,o,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;eN(e,n,{name:t,index:r,group:o,on:qE,tween:JE,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Hg})}function Fc(e,t){var n=Nt(e,t);if(n.state>Hg)throw new Error("too late; already scheduled");return n}function zt(e,t){var n=Nt(e,t);if(n.state>fs)throw new Error("too late; already running");return n}function Nt(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function eN(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=Fg(i,0,n.time);function i(u){n.state=Ff,n.timer.restart(s,n.delay,n.time),n.delay<=u&&s(u-n.delay)}function s(u){var f,c,d,y;if(n.state!==Ff)return a();for(f in r)if(y=r[f],y.name===n.name){if(y.state===fs)return Of(s);y.state===Hf?(y.state=hs,y.timer.stop(),y.on.call("interrupt",e,e.__data__,y.index,y.group),delete r[f]):+f<t&&(y.state=hs,y.timer.stop(),y.on.call("cancel",e,e.__data__,y.index,y.group),delete r[f])}if(Of(function(){n.state===fs&&(n.state=Hf,n.timer.restart(l,n.delay,n.time),l(u))}),n.state=Nu,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Nu){for(n.state=fs,o=new Array(d=n.tween.length),f=0,c=-1;f<d;++f)(y=n.tween[f].value.call(e,e.__data__,n.index,n.group))&&(o[++c]=y);o.length=c+1}}function l(u){for(var f=u<n.duration?n.ease.call(null,u/n.duration):(n.timer.restart(a),n.state=Cu,1),c=-1,d=o.length;++c<d;)o[c].call(e,f);n.state===Cu&&(n.on.call("end",e,e.__data__,n.index,n.group),a())}function a(){n.state=hs,n.timer.stop(),delete r[t];for(var u in r)return;delete e.__transition}}function ps(e,t){var n=e.__transition,r,o,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((r=n[s]).name!==t){i=!1;continue}o=r.state>Nu&&r.state<Cu,r.state=hs,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[s]}i&&delete e.__transition}}function tN(e){return this.each(function(){ps(this,e)})}function nN(e,t){var n,r;return function(){var o=zt(this,e),i=o.tween;if(i!==n){r=n=i;for(var s=0,l=r.length;s<l;++s)if(r[s].name===t){r=r.slice(),r.splice(s,1);break}}o.tween=r}}function rN(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=zt(this,e),s=i.tween;if(s!==r){o=(r=s).slice();for(var l={name:t,value:n},a=0,u=o.length;a<u;++a)if(o[a].name===t){o[a]=l;break}a===u&&o.push(l)}i.tween=o}}function oN(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Nt(this.node(),n).tween,o=0,i=r.length,s;o<i;++o)if((s=r[o]).name===e)return s.value;return null}return this.each((t==null?nN:rN)(n,e,t))}function Hc(e,t,n){var r=e._id;return e.each(function(){var o=zt(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Nt(o,r).value[t]}}function Vg(e,t){var n;return(typeof t=="number"?bt:t instanceof Zn?Bs:(n=Zn(t))?(t=n,Bs):zg)(e,t)}function iN(e){return function(){this.removeAttribute(e)}}function sN(e){return function(){this.removeAttributeNS(e.space,e.local)}}function lN(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttribute(e);return s===o?null:s===r?i:i=t(r=s,n)}}function aN(e,t,n){var r,o=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===o?null:s===r?i:i=t(r=s,n)}}function uN(e,t,n){var r,o,i;return function(){var s,l=n(this),a;return l==null?void this.removeAttribute(e):(s=this.getAttribute(e),a=l+"",s===a?null:s===r&&a===o?i:(o=a,i=t(r=s,l)))}}function cN(e,t,n){var r,o,i;return function(){var s,l=n(this),a;return l==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),a=l+"",s===a?null:s===r&&a===o?i:(o=a,i=t(r=s,l)))}}function dN(e,t){var n=xl(e),r=n==="transform"?UE:Vg;return this.attrTween(e,typeof t=="function"?(n.local?cN:uN)(n,r,Hc(this,"attr."+e,t)):t==null?(n.local?sN:iN)(n):(n.local?aN:lN)(n,r,t))}function fN(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function hN(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function pN(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&hN(e,i)),n}return o._value=t,o}function mN(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&fN(e,i)),n}return o._value=t,o}function gN(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=xl(e);return this.tween(n,(r.local?pN:mN)(r,t))}function yN(e,t){return function(){Fc(this,e).delay=+t.apply(this,arguments)}}function vN(e,t){return t=+t,function(){Fc(this,e).delay=t}}function xN(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?yN:vN)(t,e)):Nt(this.node(),t).delay}function wN(e,t){return function(){zt(this,e).duration=+t.apply(this,arguments)}}function SN(e,t){return t=+t,function(){zt(this,e).duration=t}}function kN(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?wN:SN)(t,e)):Nt(this.node(),t).duration}function EN(e,t){if(typeof t!="function")throw new Error;return function(){zt(this,e).ease=t}}function NN(e){var t=this._id;return arguments.length?this.each(EN(t,e)):Nt(this.node(),t).ease}function CN(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;zt(this,e).ease=n}}function _N(e){if(typeof e!="function")throw new Error;return this.each(CN(this._id,e))}function bN(e){typeof e!="function"&&(e=xg(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],s=i.length,l=r[o]=[],a,u=0;u<s;++u)(a=i[u])&&e.call(a,a.__data__,u,i)&&l.push(a);return new Qt(r,this._parents,this._name,this._id)}function PN(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),s=new Array(r),l=0;l<i;++l)for(var a=t[l],u=n[l],f=a.length,c=s[l]=new Array(f),d,y=0;y<f;++y)(d=a[y]||u[y])&&(c[y]=d);for(;l<r;++l)s[l]=t[l];return new Qt(s,this._parents,this._name,this._id)}function MN(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 jN(e,t,n){var r,o,i=MN(t)?Fc:zt;return function(){var s=i(this,e),l=s.on;l!==r&&(o=(r=l).copy()).on(t,n),s.on=o}}function LN(e,t){var n=this._id;return arguments.length<2?Nt(this.node(),n).on.on(e):this.each(jN(n,e,t))}function RN(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function IN(){return this.on("end.remove",RN(this._id))}function TN(e){var t=this._name,n=this._id;typeof e!="function"&&(e=zc(e));for(var r=this._groups,o=r.length,i=new Array(o),s=0;s<o;++s)for(var l=r[s],a=l.length,u=i[s]=new Array(a),f,c,d=0;d<a;++d)(f=l[d])&&(c=e.call(f,f.__data__,d,l))&&("__data__"in f&&(c.__data__=f.__data__),u[d]=c,Sl(u[d],t,n,d,u,Nt(f,n)));return new Qt(i,this._parents,t,n)}function zN(e){var t=this._name,n=this._id;typeof e!="function"&&(e=vg(e));for(var r=this._groups,o=r.length,i=[],s=[],l=0;l<o;++l)for(var a=r[l],u=a.length,f,c=0;c<u;++c)if(f=a[c]){for(var d=e.call(f,f.__data__,c,a),y,v=Nt(f,n),x=0,S=d.length;x<S;++x)(y=d[x])&&Sl(y,t,n,x,d,v);i.push(d),s.push(f)}return new Qt(i,s,t,n)}var AN=pi.prototype.constructor;function $N(){return new AN(this._groups,this._parents)}function DN(e,t){var n,r,o;return function(){var i=zr(this,e),s=(this.style.removeProperty(e),zr(this,e));return i===s?null:i===n&&s===r?o:o=t(n=i,r=s)}}function Bg(e){return function(){this.style.removeProperty(e)}}function ON(e,t,n){var r,o=n+"",i;return function(){var s=zr(this,e);return s===o?null:s===r?i:i=t(r=s,n)}}function FN(e,t,n){var r,o,i;return function(){var s=zr(this,e),l=n(this),a=l+"";return l==null&&(a=l=(this.style.removeProperty(e),zr(this,e))),s===a?null:s===r&&a===o?i:(o=a,i=t(r=s,l))}}function HN(e,t){var n,r,o,i="style."+t,s="end."+i,l;return function(){var a=zt(this,e),u=a.on,f=a.value[i]==null?l||(l=Bg(t)):void 0;(u!==n||o!==f)&&(r=(n=u).copy()).on(s,o=f),a.on=r}}function VN(e,t,n){var r=(e+="")=="transform"?BE:Vg;return t==null?this.styleTween(e,DN(e,r)).on("end.style."+e,Bg(e)):typeof t=="function"?this.styleTween(e,FN(e,r,Hc(this,"style."+e,t))).each(HN(this._id,e)):this.styleTween(e,ON(e,r,t),n).on("end.style."+e,null)}function BN(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function UN(e,t,n){var r,o;function i(){var s=t.apply(this,arguments);return s!==o&&(r=(o=s)&&BN(e,s,n)),r}return i._value=t,i}function WN(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,UN(e,t,n??""))}function YN(e){return function(){this.textContent=e}}function XN(e){return function(){var t=e(this);this.textContent=t??""}}function GN(e){return this.tween("text",typeof e=="function"?XN(Hc(this,"text",e)):YN(e==null?"":e+""))}function KN(e){return function(t){this.textContent=e.call(this,t)}}function QN(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&KN(o)),t}return r._value=e,r}function ZN(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,QN(e))}function qN(){for(var e=this._name,t=this._id,n=Ug(),r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],l=s.length,a,u=0;u<l;++u)if(a=s[u]){var f=Nt(a,t);Sl(a,e,n,u,s,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Qt(r,this._parents,e,n)}function JN(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,s){var l={value:s},a={value:function(){--o===0&&i()}};n.each(function(){var u=zt(this,r),f=u.on;f!==e&&(t=(e=f).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(a)),u.on=t}),o===0&&i()})}var eC=0;function Qt(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function Ug(){return++eC}var Dt=pi.prototype;Qt.prototype={constructor:Qt,select:TN,selectAll:zN,selectChild:Dt.selectChild,selectChildren:Dt.selectChildren,filter:bN,merge:PN,selection:$N,transition:qN,call:Dt.call,nodes:Dt.nodes,node:Dt.node,size:Dt.size,empty:Dt.empty,each:Dt.each,on:LN,attr:dN,attrTween:gN,style:VN,styleTween:WN,text:GN,textTween:ZN,remove:IN,tween:oN,delay:xN,duration:kN,ease:NN,easeVarying:_N,end:JN,[Symbol.iterator]:Dt[Symbol.iterator]};function tC(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var nC={time:null,delay:0,duration:250,ease:tC};function rC(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 oC(e){var t,n;e instanceof Qt?(t=e._id,e=e._name):(t=Ug(),(n=nC).time=Oc(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var s=r[i],l=s.length,a,u=0;u<l;++u)(a=s[u])&&Sl(a,e,t,u,s,n||rC(a,t));return new Qt(r,this._parents,e,t)}pi.prototype.interrupt=tN;pi.prototype.transition=oC;const Wi=e=>()=>e;function iC(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Bt(e,t,n){this.k=e,this.x=t,this.y=n}Bt.prototype={constructor:Bt,scale:function(e){return e===1?this:new Bt(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Bt(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 kl=new Bt(1,0,0);Wg.prototype=Bt.prototype;function Wg(e){for(;!e.__zoom;)if(!(e=e.parentNode))return kl;return e.__zoom}function fa(e){e.stopImmediatePropagation()}function po(e){e.preventDefault(),e.stopImmediatePropagation()}function sC(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function lC(){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 Vf(){return this.__zoom||kl}function aC(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function uC(){return navigator.maxTouchPoints||"ontouchstart"in this}function cC(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function Yg(){var e=sC,t=lC,n=cC,r=aC,o=uC,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],l=250,a=ds,u=vl("start","zoom","end"),f,c,d,y=500,v=150,x=0,S=10;function h(b){b.property("__zoom",Vf).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",R).on("dblclick.zoom",$).filter(o).on("touchstart.zoom",I).on("touchmove.zoom",L).on("touchend.zoom touchcancel.zoom",F).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}h.transform=function(b,z,j,A){var C=b.selection?b.selection():b;C.property("__zoom",Vf),b!==C?E(b,z,j,A):C.interrupt().each(function(){N(this,arguments).event(A).start().zoom(null,typeof z=="function"?z.apply(this,arguments):z).end()})},h.scaleBy=function(b,z,j,A){h.scaleTo(b,function(){var C=this.__zoom.k,P=typeof z=="function"?z.apply(this,arguments):z;return C*P},j,A)},h.scaleTo=function(b,z,j,A){h.transform(b,function(){var C=t.apply(this,arguments),P=this.__zoom,T=j==null?w(C):typeof j=="function"?j.apply(this,arguments):j,O=P.invert(T),D=typeof z=="function"?z.apply(this,arguments):z;return n(p(m(P,D),T,O),C,s)},j,A)},h.translateBy=function(b,z,j,A){h.transform(b,function(){return n(this.__zoom.translate(typeof z=="function"?z.apply(this,arguments):z,typeof j=="function"?j.apply(this,arguments):j),t.apply(this,arguments),s)},null,A)},h.translateTo=function(b,z,j,A,C){h.transform(b,function(){var P=t.apply(this,arguments),T=this.__zoom,O=A==null?w(P):typeof A=="function"?A.apply(this,arguments):A;return n(kl.translate(O[0],O[1]).scale(T.k).translate(typeof z=="function"?-z.apply(this,arguments):-z,typeof j=="function"?-j.apply(this,arguments):-j),P,s)},A,C)};function m(b,z){return z=Math.max(i[0],Math.min(i[1],z)),z===b.k?b:new Bt(z,b.x,b.y)}function p(b,z,j){var A=z[0]-j[0]*b.k,C=z[1]-j[1]*b.k;return A===b.x&&C===b.y?b:new Bt(b.k,A,C)}function w(b){return[(+b[0][0]+ +b[1][0])/2,(+b[0][1]+ +b[1][1])/2]}function E(b,z,j,A){b.on("start.zoom",function(){N(this,arguments).event(A).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(A).end()}).tween("zoom",function(){var C=this,P=arguments,T=N(C,P).event(A),O=t.apply(C,P),D=j==null?w(O):typeof j=="function"?j.apply(C,P):j,U=Math.max(O[1][0]-O[0][0],O[1][1]-O[0][1]),B=C.__zoom,Y=typeof z=="function"?z.apply(C,P):z,X=a(B.invert(D).concat(U/B.k),Y.invert(D).concat(U/Y.k));return function(G){if(G===1)G=Y;else{var V=X(G),Q=U/V[2];G=new Bt(Q,D[0]-V[0]*Q,D[1]-V[1]*Q)}T.zoom(null,G)}})}function N(b,z,j){return!j&&b.__zooming||new _(b,z)}function _(b,z){this.that=b,this.args=z,this.active=0,this.sourceEvent=null,this.extent=t.apply(b,z),this.taps=0}_.prototype={event:function(b){return b&&(this.sourceEvent=b),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(b,z){return this.mouse&&b!=="mouse"&&(this.mouse[1]=z.invert(this.mouse[0])),this.touch0&&b!=="touch"&&(this.touch0[1]=z.invert(this.touch0[0])),this.touch1&&b!=="touch"&&(this.touch1[1]=z.invert(this.touch1[0])),this.that.__zoom=z,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(b){var z=Qe(this.that).datum();u.call(b,this.that,new iC(b,{sourceEvent:this.sourceEvent,target:h,transform:this.that.__zoom,dispatch:u}),z)}};function M(b,...z){if(!e.apply(this,arguments))return;var j=N(this,z).event(b),A=this.__zoom,C=Math.max(i[0],Math.min(i[1],A.k*Math.pow(2,r.apply(this,arguments)))),P=mt(b);if(j.wheel)(j.mouse[0][0]!==P[0]||j.mouse[0][1]!==P[1])&&(j.mouse[1]=A.invert(j.mouse[0]=P)),clearTimeout(j.wheel);else{if(A.k===C)return;j.mouse=[P,A.invert(P)],ps(this),j.start()}po(b),j.wheel=setTimeout(T,v),j.zoom("mouse",n(p(m(A,C),j.mouse[0],j.mouse[1]),j.extent,s));function T(){j.wheel=null,j.end()}}function R(b,...z){if(d||!e.apply(this,arguments))return;var j=b.currentTarget,A=N(this,z,!0).event(b),C=Qe(b.view).on("mousemove.zoom",D,!0).on("mouseup.zoom",U,!0),P=mt(b,j),T=b.clientX,O=b.clientY;Mg(b.view),fa(b),A.mouse=[P,this.__zoom.invert(P)],ps(this),A.start();function D(B){if(po(B),!A.moved){var Y=B.clientX-T,X=B.clientY-O;A.moved=Y*Y+X*X>x}A.event(B).zoom("mouse",n(p(A.that.__zoom,A.mouse[0]=mt(B,j),A.mouse[1]),A.extent,s))}function U(B){C.on("mousemove.zoom mouseup.zoom",null),jg(B.view,A.moved),po(B),A.event(B).end()}}function $(b,...z){if(e.apply(this,arguments)){var j=this.__zoom,A=mt(b.changedTouches?b.changedTouches[0]:b,this),C=j.invert(A),P=j.k*(b.shiftKey?.5:2),T=n(p(m(j,P),A,C),t.apply(this,z),s);po(b),l>0?Qe(this).transition().duration(l).call(E,T,A,b):Qe(this).call(h.transform,T,A,b)}}function I(b,...z){if(e.apply(this,arguments)){var j=b.touches,A=j.length,C=N(this,z,b.changedTouches.length===A).event(b),P,T,O,D;for(fa(b),T=0;T<A;++T)O=j[T],D=mt(O,this),D=[D,this.__zoom.invert(D),O.identifier],C.touch0?!C.touch1&&C.touch0[2]!==D[2]&&(C.touch1=D,C.taps=0):(C.touch0=D,P=!0,C.taps=1+!!f);f&&(f=clearTimeout(f)),P&&(C.taps<2&&(c=D[0],f=setTimeout(function(){f=null},y)),ps(this),C.start())}}function L(b,...z){if(this.__zooming){var j=N(this,z).event(b),A=b.changedTouches,C=A.length,P,T,O,D;for(po(b),P=0;P<C;++P)T=A[P],O=mt(T,this),j.touch0&&j.touch0[2]===T.identifier?j.touch0[0]=O:j.touch1&&j.touch1[2]===T.identifier&&(j.touch1[0]=O);if(T=j.that.__zoom,j.touch1){var U=j.touch0[0],B=j.touch0[1],Y=j.touch1[0],X=j.touch1[1],G=(G=Y[0]-U[0])*G+(G=Y[1]-U[1])*G,V=(V=X[0]-B[0])*V+(V=X[1]-B[1])*V;T=m(T,Math.sqrt(G/V)),O=[(U[0]+Y[0])/2,(U[1]+Y[1])/2],D=[(B[0]+X[0])/2,(B[1]+X[1])/2]}else if(j.touch0)O=j.touch0[0],D=j.touch0[1];else return;j.zoom("touch",n(p(T,O,D),j.extent,s))}}function F(b,...z){if(this.__zooming){var j=N(this,z).event(b),A=b.changedTouches,C=A.length,P,T;for(fa(b),d&&clearTimeout(d),d=setTimeout(function(){d=null},y),P=0;P<C;++P)T=A[P],j.touch0&&j.touch0[2]===T.identifier?delete j.touch0:j.touch1&&j.touch1[2]===T.identifier&&delete j.touch1;if(j.touch1&&!j.touch0&&(j.touch0=j.touch1,delete j.touch1),j.touch0)j.touch0[1]=this.__zoom.invert(j.touch0[0]);else if(j.end(),j.taps===2&&(T=mt(T,this),Math.hypot(c[0]-T[0],c[1]-T[1])<S)){var O=Qe(this).on("dblclick.zoom");O&&O.apply(this,arguments)}}}return h.wheelDelta=function(b){return arguments.length?(r=typeof b=="function"?b:Wi(+b),h):r},h.filter=function(b){return arguments.length?(e=typeof b=="function"?b:Wi(!!b),h):e},h.touchable=function(b){return arguments.length?(o=typeof b=="function"?b:Wi(!!b),h):o},h.extent=function(b){return arguments.length?(t=typeof b=="function"?b:Wi([[+b[0][0],+b[0][1]],[+b[1][0],+b[1][1]]]),h):t},h.scaleExtent=function(b){return arguments.length?(i[0]=+b[0],i[1]=+b[1],h):[i[0],i[1]]},h.translateExtent=function(b){return arguments.length?(s[0][0]=+b[0][0],s[1][0]=+b[1][0],s[0][1]=+b[0][1],s[1][1]=+b[1][1],h):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},h.constrain=function(b){return arguments.length?(n=b,h):n},h.duration=function(b){return arguments.length?(l=+b,h):l},h.interpolate=function(b){return arguments.length?(a=b,h):a},h.on=function(){var b=u.on.apply(u,arguments);return b===u?h:b},h.clickDistance=function(b){return arguments.length?(x=(b=+b)*b,h):Math.sqrt(x)},h.tapDistance=function(b){return arguments.length?(S=+b,h):S},h}const Rt={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},ni=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],Xg=["Enter"," ","Escape"],Gg={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var $r;(function(e){e.Strict="strict",e.Loose="loose"})($r||($r={}));var Wn;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Wn||(Wn={}));var ri;(function(e){e.Partial="partial",e.Full="full"})(ri||(ri={}));const Kg={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var cn;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(cn||(cn={}));var Xs;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Xs||(Xs={}));var K;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(K||(K={}));const Bf={[K.Left]:K.Right,[K.Right]:K.Left,[K.Top]:K.Bottom,[K.Bottom]:K.Top};function Qg(e){return e===null?null:e?"valid":"invalid"}const Zg=e=>"id"in e&&"source"in e&&"target"in e,dC=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Vc=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),gi=(e,t=[0,0])=>{const{width:n,height:r}=qt(e),o=e.origin??t,i=n*o[0],s=r*o[1];return{x:e.position.x-i,y:e.position.y-s}},fC=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const i=typeof o=="string";let s=!t.nodeLookup&&!i?o:void 0;t.nodeLookup&&(s=i?t.nodeLookup.get(o):Vc(o)?o:t.nodeLookup.get(o.id));const l=s?Gs(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return El(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Nl(n)},yi=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(o=>{(t.filter===void 0||t.filter(o))&&(n=El(n,Gs(o)),r=!0)}),r?Nl(n):{x:0,y:0,width:0,height:0}},Bc=(e,t,[n,r,o]=[0,0,1],i=!1,s=!1)=>{const l={...xi(t,[n,r,o]),width:t.width/o,height:t.height/o},a=[];for(const u of e.values()){const{measured:f,selectable:c=!0,hidden:d=!1}=u;if(s&&!c||d)continue;const y=f.width??u.width??u.initialWidth??null,v=f.height??u.height??u.initialHeight??null,x=oi(l,Or(u)),S=(y??0)*(v??0),h=i&&x>0;(!u.internals.handleBounds||h||x>=S||u.dragging)&&a.push(u)}return a},hC=(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 pC(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(o=>o.id)):null;return e.forEach(o=>{o.measured.width&&o.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!o.hidden)&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function mC({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:i},s){if(e.size===0)return Promise.resolve(!0);const l=pC(e,s),a=yi(l),u=Uc(a,t,n,(s==null?void 0:s.minZoom)??o,(s==null?void 0:s.maxZoom)??i,(s==null?void 0:s.padding)??.1);return await r.setViewport(u,{duration:s==null?void 0:s.duration,ease:s==null?void 0:s.ease,interpolate:s==null?void 0:s.interpolate}),Promise.resolve(!0)}function qg({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){const s=n.get(e),l=s.parentId?n.get(s.parentId):void 0,{x:a,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},f=s.origin??r;let c=s.extent||o;if(s.extent==="parent"&&!s.expandParent)if(!l)i==null||i("005",Rt.error005());else{const y=l.measured.width,v=l.measured.height;y&&v&&(c=[[a,u],[a+y,u+v]])}else l&&Fr(s.extent)&&(c=[[s.extent[0][0]+a,s.extent[0][1]+u],[s.extent[1][0]+a,s.extent[1][1]+u]]);const d=Fr(c)?Jn(t,c,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&(i==null||i("015",Rt.error015())),{position:{x:d.x-a+(s.measured.width??0)*f[0],y:d.y-u+(s.measured.height??0)*f[1]},positionAbsolute:d}}async function gC({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){const i=new Set(e.map(d=>d.id)),s=[];for(const d of n){if(d.deletable===!1)continue;const y=i.has(d.id),v=!y&&d.parentId&&s.find(x=>x.id===d.parentId);(y||v)&&s.push(d)}const l=new Set(t.map(d=>d.id)),a=r.filter(d=>d.deletable!==!1),f=hC(s,a);for(const d of a)l.has(d.id)&&!f.find(v=>v.id===d.id)&&f.push(d);if(!o)return{edges:f,nodes:s};const c=await o({nodes:s,edges:f});return typeof c=="boolean"?c?{edges:f,nodes:s}:{edges:[],nodes:[]}:c}const Dr=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Jn=(e={x:0,y:0},t,n)=>({x:Dr(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:Dr(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function Jg(e,t,n){const{width:r,height:o}=qt(n),{x:i,y:s}=n.internals.positionAbsolute;return Jn(e,[[i,s],[i+r,s+o]],t)}const Uf=(e,t,n)=>e<t?Dr(Math.abs(e-t),1,t)/t:e>n?-Dr(Math.abs(e-n),1,t)/t:0,ey=(e,t,n=15,r=40)=>{const o=Uf(e.x,r,t.width-r)*n,i=Uf(e.y,r,t.height-r)*n;return[o,i]},El=(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)}),_u=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),Nl=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),Or=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=Vc(e)?e.internals.positionAbsolute:gi(e,t);return{x:n,y:r,width:((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},Gs=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=Vc(e)?e.internals.positionAbsolute:gi(e,t);return{x:n,y:r,x2:n+(((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0),y2:r+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},ty=(e,t)=>Nl(El(_u(e),_u(t))),oi=(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)},Wf=e=>vt(e.width)&&vt(e.height)&&vt(e.x)&&vt(e.y),vt=e=>!isNaN(e)&&isFinite(e),yC=(e,t)=>{},vi=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),xi=({x:e,y:t},[n,r,o],i=!1,s=[1,1])=>{const l={x:(e-n)/o,y:(t-r)/o};return i?vi(l,s):l},Ks=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function ir(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function vC(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=ir(e,n),o=ir(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=ir(e.top??e.y??0,n),o=ir(e.bottom??e.y??0,n),i=ir(e.left??e.x??0,t),s=ir(e.right??e.x??0,t);return{top:r,right:s,bottom:o,left:i,x:i+s,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function xC(e,t,n,r,o,i){const{x:s,y:l}=Ks(e,[t,n,r]),{x:a,y:u}=Ks({x:e.x+e.width,y:e.y+e.height},[t,n,r]),f=o-a,c=i-u;return{left:Math.floor(s),top:Math.floor(l),right:Math.floor(f),bottom:Math.floor(c)}}const Uc=(e,t,n,r,o,i)=>{const s=vC(i,t,n),l=(t-s.x)/e.width,a=(n-s.y)/e.height,u=Math.min(l,a),f=Dr(u,r,o),c=e.x+e.width/2,d=e.y+e.height/2,y=t/2-c*f,v=n/2-d*f,x=xC(e,y,v,f,t,n),S={left:Math.min(x.left-s.left,0),top:Math.min(x.top-s.top,0),right:Math.min(x.right-s.right,0),bottom:Math.min(x.bottom-s.bottom,0)};return{x:y-S.left+S.right,y:v-S.top+S.bottom,zoom:f}},ii=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Fr(e){return e!=null&&e!=="parent"}function qt(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 ny(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 ry(e,t={width:0,height:0},n,r,o){const i={...e},s=r.get(n);if(s){const l=s.origin||o;i.x+=s.internals.positionAbsolute.x-(t.width??0)*l[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*l[1]}return i}function Yf(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function wC(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function SC(e){return{...Gg,...e||{}}}function Lo(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:s}=xt(e),l=xi({x:i-((o==null?void 0:o.left)??0),y:s-((o==null?void 0:o.top)??0)},r),{x:a,y:u}=n?vi(l,t):l;return{xSnapped:a,ySnapped:u,...l}}const Wc=e=>({width:e.offsetWidth,height:e.offsetHeight}),oy=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},kC=["INPUT","SELECT","TEXTAREA"];function iy(e){var r,o;const t=((o=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:o[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:kC.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const sy=e=>"clientX"in e,xt=(e,t)=>{var i,s;const n=sy(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,o=n?e.clientY:(s=e.touches)==null?void 0:s[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}},Xf=(e,t,n,r,o)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const l=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:o,position:s.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...Wc(s)}})};function ly({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:s,targetControlY:l}){const a=e*.125+o*.375+s*.375+n*.125,u=t*.125+i*.375+l*.375+r*.125,f=Math.abs(a-e),c=Math.abs(u-t);return[a,u,f,c]}function Yi(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function Gf({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case K.Left:return[t-Yi(t-r,i),n];case K.Right:return[t+Yi(r-t,i),n];case K.Top:return[t,n-Yi(n-o,i)];case K.Bottom:return[t,n+Yi(o-n,i)]}}function ay({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:o,targetPosition:i=K.Top,curvature:s=.25}){const[l,a]=Gf({pos:n,x1:e,y1:t,x2:r,y2:o,c:s}),[u,f]=Gf({pos:i,x1:r,y1:o,x2:e,y2:t,c:s}),[c,d,y,v]=ly({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:l,sourceControlY:a,targetControlX:u,targetControlY:f});return[`M${e},${t} C${l},${a} ${u},${f} ${r},${o}`,c,d,y,v]}function uy({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,s=Math.abs(r-t)/2,l=r<t?r+s:r-s;return[i,l,o,s]}function EC({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if(i==="manual")return r;const s=o&&n?r+1e3:r,l=Math.max(e.parentId||o&&e.selected?e.internals.z:0,t.parentId||o&&t.selected?t.internals.z:0);return s+l}function NC({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const i=El(Gs(e),Gs(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return oi(s,Nl(i))>0}const CC=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,_C=(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)),bC=(e,t,n={})=>{if(!e.source||!e.target)return t;const r=n.getEdgeId||CC;let o;return Zg(e)?o={...e}:o={...e,id:r(e)},_C(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function cy({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,s,l]=uy({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,s,l]}const Kf={[K.Left]:{x:-1,y:0},[K.Right]:{x:1,y:0},[K.Top]:{x:0,y:-1},[K.Bottom]:{x:0,y:1}},PC=({source:e,sourcePosition:t=K.Bottom,target:n})=>t===K.Left||t===K.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},Qf=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function MC({source:e,sourcePosition:t=K.Bottom,target:n,targetPosition:r=K.Top,center:o,offset:i,stepPosition:s}){const l=Kf[t],a=Kf[r],u={x:e.x+l.x*i,y:e.y+l.y*i},f={x:n.x+a.x*i,y:n.y+a.y*i},c=PC({source:u,sourcePosition:t,target:f}),d=c.x!==0?"x":"y",y=c[d];let v=[],x,S;const h={x:0,y:0},m={x:0,y:0},[,,p,w]=uy({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[d]*a[d]===-1){d==="x"?(x=o.x??u.x+(f.x-u.x)*s,S=o.y??(u.y+f.y)/2):(x=o.x??(u.x+f.x)/2,S=o.y??u.y+(f.y-u.y)*s);const N=[{x,y:u.y},{x,y:f.y}],_=[{x:u.x,y:S},{x:f.x,y:S}];l[d]===y?v=d==="x"?N:_:v=d==="x"?_:N}else{const N=[{x:u.x,y:f.y}],_=[{x:f.x,y:u.y}];if(d==="x"?v=l.x===y?_:N:v=l.y===y?N:_,t===r){const L=Math.abs(e[d]-n[d]);if(L<=i){const F=Math.min(i-1,i-L);l[d]===y?h[d]=(u[d]>e[d]?-1:1)*F:m[d]=(f[d]>n[d]?-1:1)*F}}if(t!==r){const L=d==="x"?"y":"x",F=l[d]===a[L],b=u[L]>f[L],z=u[L]<f[L];(l[d]===1&&(!F&&b||F&&z)||l[d]!==1&&(!F&&z||F&&b))&&(v=d==="x"?N:_)}const M={x:u.x+h.x,y:u.y+h.y},R={x:f.x+m.x,y:f.y+m.y},$=Math.max(Math.abs(M.x-v[0].x),Math.abs(R.x-v[0].x)),I=Math.max(Math.abs(M.y-v[0].y),Math.abs(R.y-v[0].y));$>=I?(x=(M.x+R.x)/2,S=v[0].y):(x=v[0].x,S=(M.y+R.y)/2)}return[[e,{x:u.x+h.x,y:u.y+h.y},...v,{x:f.x+m.x,y:f.y+m.y},n],x,S,p,w]}function jC(e,t,n,r){const o=Math.min(Qf(e,t)/2,Qf(t,n)/2,r),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const u=e.x<n.x?-1:1,f=e.y<n.y?1:-1;return`L ${i+o*u},${s}Q ${i},${s} ${i},${s+o*f}`}const l=e.x<n.x?1:-1,a=e.y<n.y?-1:1;return`L ${i},${s+o*a}Q ${i},${s} ${i+o*l},${s}`}function bu({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:o,targetPosition:i=K.Top,borderRadius:s=5,centerX:l,centerY:a,offset:u=20,stepPosition:f=.5}){const[c,d,y,v,x]=MC({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:l,y:a},offset:u,stepPosition:f});return[c.reduce((h,m,p)=>{let w="";return p>0&&p<c.length-1?w=jC(c[p-1],m,c[p+1],s):w=`${p===0?"M":"L"}${m.x} ${m.y}`,h+=w,h},""),d,y,v,x]}function Zf(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function LC(e){var c;const{sourceNode:t,targetNode:n}=e;if(!Zf(t)||!Zf(n))return null;const r=t.internals.handleBounds||qf(t.handles),o=n.internals.handleBounds||qf(n.handles),i=Jf((r==null?void 0:r.source)??[],e.sourceHandle),s=Jf(e.connectionMode===$r.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),e.targetHandle);if(!i||!s)return(c=e.onError)==null||c.call(e,"008",Rt.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=(i==null?void 0:i.position)||K.Bottom,a=(s==null?void 0:s.position)||K.Top,u=er(t,i,l),f=er(n,s,a);return{sourceX:u.x,sourceY:u.y,targetX:f.x,targetY:f.y,sourcePosition:l,targetPosition:a}}function qf(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 er(e,t,n=K.Left,r=!1){const o=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:s,height:l}=t??qt(e);if(r)return{x:o+s/2,y:i+l/2};switch((t==null?void 0:t.position)??n){case K.Top:return{x:o+s/2,y:i};case K.Right:return{x:o+s,y:i+l/2};case K.Bottom:return{x:o+s/2,y:i+l};case K.Left:return{x:o,y:i+l/2}}}function Jf(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Pu(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function RC(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const i=new Set;return e.reduce((s,l)=>([l.markerStart||r,l.markerEnd||o].forEach(a=>{if(a&&typeof a=="object"){const u=Pu(a,t);i.has(u)||(s.push({id:u,color:a.color||n,...a}),i.add(u))}}),s),[]).sort((s,l)=>s.id.localeCompare(l.id))}const dy=1e3,IC=10,Yc={nodeOrigin:[0,0],nodeExtent:ni,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},TC={...Yc,checkEquality:!0};function Xc(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function zC(e,t,n){const r=Xc(Yc,n);for(const o of e.values())if(o.parentId)Kc(o,e,t,r);else{const i=gi(o,r.nodeOrigin),s=Fr(o.extent)?o.extent:r.nodeExtent,l=Jn(i,s,qt(o));o.internals.positionAbsolute=l}}function AC(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const o of e.handles){const i={id:o.id,width:o.width??1,height:o.height??1,nodeId:e.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(i):o.type==="target"&&r.push(i)}return{source:n,target:r}}function Gc(e){return e==="manual"}function Mu(e,t,n,r={}){var u,f;const o=Xc(TC,r),i={i:0},s=new Map(t),l=o!=null&&o.elevateNodesOnSelect&&!Gc(o.zIndexMode)?dy:0;let a=e.length>0;t.clear(),n.clear();for(const c of e){let d=s.get(c.id);if(o.checkEquality&&c===(d==null?void 0:d.internals.userNode))t.set(c.id,d);else{const y=gi(c,o.nodeOrigin),v=Fr(c.extent)?c.extent:o.nodeExtent,x=Jn(y,v,qt(c));d={...o.defaults,...c,measured:{width:(u=c.measured)==null?void 0:u.width,height:(f=c.measured)==null?void 0:f.height},internals:{positionAbsolute:x,handleBounds:AC(c,d),z:fy(c,l,o.zIndexMode),userNode:c}},t.set(c.id,d)}(d.measured===void 0||d.measured.width===void 0||d.measured.height===void 0)&&!d.hidden&&(a=!1),c.parentId&&Kc(d,t,n,r,i)}return a}function $C(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 Kc(e,t,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:s,nodeExtent:l,zIndexMode:a}=Xc(Yc,r),u=e.parentId,f=t.get(u);if(!f){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}$C(e,n),o&&!f.parentId&&f.internals.rootParentIndex===void 0&&a==="auto"&&(f.internals.rootParentIndex=++o.i,f.internals.z=f.internals.z+o.i*IC),o&&f.internals.rootParentIndex!==void 0&&(o.i=f.internals.rootParentIndex);const c=i&&!Gc(a)?dy:0,{x:d,y,z:v}=DC(e,f,s,l,c,a),{positionAbsolute:x}=e.internals,S=d!==x.x||y!==x.y;(S||v!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:S?{x:d,y}:x,z:v}})}function fy(e,t,n){const r=vt(e.zIndex)?e.zIndex:0;return Gc(n)?r:r+(e.selected?t:0)}function DC(e,t,n,r,o,i){const{x:s,y:l}=t.internals.positionAbsolute,a=qt(e),u=gi(e,n),f=Fr(e.extent)?Jn(u,e.extent,a):u;let c=Jn({x:s+f.x,y:l+f.y},r,a);e.extent==="parent"&&(c=Jg(c,a,t));const d=fy(e,o,i),y=t.internals.z??0;return{x:c.x,y:c.y,z:y>=d?y+1:d}}function Qc(e,t,n,r=[0,0]){var s;const o=[],i=new Map;for(const l of e){const a=t.get(l.parentId);if(!a)continue;const u=((s=i.get(l.parentId))==null?void 0:s.expandedRect)??Or(a),f=ty(u,l.rect);i.set(l.parentId,{expandedRect:f,parent:a})}return i.size>0&&i.forEach(({expandedRect:l,parent:a},u)=>{var p;const f=a.internals.positionAbsolute,c=qt(a),d=a.origin??r,y=l.x<f.x?Math.round(Math.abs(f.x-l.x)):0,v=l.y<f.y?Math.round(Math.abs(f.y-l.y)):0,x=Math.max(c.width,Math.round(l.width)),S=Math.max(c.height,Math.round(l.height)),h=(x-c.width)*d[0],m=(S-c.height)*d[1];(y>0||v>0||h||m)&&(o.push({id:u,type:"position",position:{x:a.position.x-y+h,y:a.position.y-v+m}}),(p=n.get(u))==null||p.forEach(w=>{e.some(E=>E.id===w.id)||o.push({id:w.id,type:"position",position:{x:w.position.x+y,y:w.position.y+v}})})),(c.width<l.width||c.height<l.height||y||v)&&o.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:x+(y?d[0]*y-h:0),height:S+(v?d[1]*v-m:0)}})}),o}function OC(e,t,n,r,o,i,s){const l=r==null?void 0:r.querySelector(".xyflow__viewport");let a=!1;if(!l)return{changes:[],updatedInternals:a};const u=[],f=window.getComputedStyle(l),{m22:c}=new window.DOMMatrixReadOnly(f.transform),d=[];for(const y of e.values()){const v=t.get(y.id);if(!v)continue;if(v.hidden){t.set(v.id,{...v,internals:{...v.internals,handleBounds:void 0}}),a=!0;continue}const x=Wc(y.nodeElement),S=v.measured.width!==x.width||v.measured.height!==x.height;if(!!(x.width&&x.height&&(S||!v.internals.handleBounds||y.force))){const m=y.nodeElement.getBoundingClientRect(),p=Fr(v.extent)?v.extent:i;let{positionAbsolute:w}=v.internals;v.parentId&&v.extent==="parent"?w=Jg(w,x,t.get(v.parentId)):p&&(w=Jn(w,p,x));const E={...v,measured:x,internals:{...v.internals,positionAbsolute:w,handleBounds:{source:Xf("source",y.nodeElement,m,c,v.id),target:Xf("target",y.nodeElement,m,c,v.id)}}};t.set(v.id,E),v.parentId&&Kc(E,t,n,{nodeOrigin:o,zIndexMode:s}),a=!0,S&&(u.push({id:v.id,type:"dimensions",dimensions:x}),v.expandParent&&v.parentId&&d.push({id:v.id,parentId:v.parentId,rect:Or(E,o)}))}}if(d.length>0){const y=Qc(d,t,n,o);u.push(...y)}return{changes:u,updatedInternals:a}}async function FC({delta:e,panZoom:t,transform:n,translateExtent:r,width:o,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[o,i]],r),l=!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2]);return Promise.resolve(l)}function eh(e,t,n,r,o,i){let s=o;const l=r.get(s)||new Map;r.set(s,l.set(n,t)),s=`${o}-${e}`;const a=r.get(s)||new Map;if(r.set(s,a.set(n,t)),i){s=`${o}-${e}-${i}`;const u=r.get(s)||new Map;r.set(s,u.set(n,t))}}function hy(e,t,n){e.clear(),t.clear();for(const r of n){const{source:o,target:i,sourceHandle:s=null,targetHandle:l=null}=r,a={edgeId:r.id,source:o,target:i,sourceHandle:s,targetHandle:l},u=`${o}-${s}--${i}-${l}`,f=`${i}-${l}--${o}-${s}`;eh("source",a,f,e,o,s),eh("target",a,u,e,i,l),t.set(r.id,r)}}function py(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:py(n,t):!1}function th(e,t,n){var o;let r=e;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function HC(e,t,n,r){const o=new Map;for(const[i,s]of e)if((s.selected||s.id===r)&&(!s.parentId||!py(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const l=e.get(i);l&&o.set(i,{id:i,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return o}function ha({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var s,l,a;const o=[];for(const[u,f]of t){const c=(s=n.get(u))==null?void 0:s.internals.userNode;c&&o.push({...c,position:f.position,dragging:r})}if(!e)return[o[0],o];const i=(l=n.get(e))==null?void 0:l.internals.userNode;return[i?{...i,position:((a=t.get(e))==null?void 0:a.position)||i.position,dragging:r}:o[0],o]}function VC({dragItems:e,snapGrid:t,x:n,y:r}){const o=e.values().next().value;if(!o)return null;const i={x:n-o.distance.x,y:r-o.distance.y},s=vi(i,t);return{x:s.x-i.x,y:s.y-i.y}}function BC({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},s=0,l=new Map,a=!1,u={x:0,y:0},f=null,c=!1,d=null,y=!1,v=!1,x=null;function S({noDragClassName:m,handleSelector:p,domNode:w,isSelectable:E,nodeId:N,nodeClickDistance:_=0}){d=Qe(w);function M({x:L,y:F}){const{nodeLookup:b,nodeExtent:z,snapGrid:j,snapToGrid:A,nodeOrigin:C,onNodeDrag:P,onSelectionDrag:T,onError:O,updateNodePositions:D}=t();i={x:L,y:F};let U=!1;const B=l.size>1,Y=B&&z?_u(yi(l)):null,X=B&&A?VC({dragItems:l,snapGrid:j,x:L,y:F}):null;for(const[G,V]of l){if(!b.has(G))continue;let Q={x:L-V.distance.x,y:F-V.distance.y};A&&(Q=X?{x:Math.round(Q.x+X.x),y:Math.round(Q.y+X.y)}:vi(Q,j));let te=null;if(B&&z&&!V.extent&&Y){const{positionAbsolute:Z}=V.internals,se=Z.x-Y.x+z[0][0],ue=Z.x+V.measured.width-Y.x2+z[1][0],ie=Z.y-Y.y+z[0][1],Ie=Z.y+V.measured.height-Y.y2+z[1][1];te=[[se,ie],[ue,Ie]]}const{position:J,positionAbsolute:q}=qg({nodeId:G,nextPosition:Q,nodeLookup:b,nodeExtent:te||z,nodeOrigin:C,onError:O});U=U||V.position.x!==J.x||V.position.y!==J.y,V.position=J,V.internals.positionAbsolute=q}if(v=v||U,!!U&&(D(l,!0),x&&(r||P||!N&&T))){const[G,V]=ha({nodeId:N,dragItems:l,nodeLookup:b});r==null||r(x,l,G,V),P==null||P(x,G,V),N||T==null||T(x,V)}}async function R(){if(!f)return;const{transform:L,panBy:F,autoPanSpeed:b,autoPanOnNodeDrag:z}=t();if(!z){a=!1,cancelAnimationFrame(s);return}const[j,A]=ey(u,f,b);(j!==0||A!==0)&&(i.x=(i.x??0)-j/L[2],i.y=(i.y??0)-A/L[2],await F({x:j,y:A})&&M(i)),s=requestAnimationFrame(R)}function $(L){var B;const{nodeLookup:F,multiSelectionActive:b,nodesDraggable:z,transform:j,snapGrid:A,snapToGrid:C,selectNodesOnDrag:P,onNodeDragStart:T,onSelectionDragStart:O,unselectNodesAndEdges:D}=t();c=!0,(!P||!E)&&!b&&N&&((B=F.get(N))!=null&&B.selected||D()),E&&P&&N&&(e==null||e(N));const U=Lo(L.sourceEvent,{transform:j,snapGrid:A,snapToGrid:C,containerBounds:f});if(i=U,l=HC(F,z,U,N),l.size>0&&(n||T||!N&&O)){const[Y,X]=ha({nodeId:N,dragItems:l,nodeLookup:F});n==null||n(L.sourceEvent,l,Y,X),T==null||T(L.sourceEvent,Y,X),N||O==null||O(L.sourceEvent,X)}}const I=Lg().clickDistance(_).on("start",L=>{const{domNode:F,nodeDragThreshold:b,transform:z,snapGrid:j,snapToGrid:A}=t();f=(F==null?void 0:F.getBoundingClientRect())||null,y=!1,v=!1,x=L.sourceEvent,b===0&&$(L),i=Lo(L.sourceEvent,{transform:z,snapGrid:j,snapToGrid:A,containerBounds:f}),u=xt(L.sourceEvent,f)}).on("drag",L=>{const{autoPanOnNodeDrag:F,transform:b,snapGrid:z,snapToGrid:j,nodeDragThreshold:A,nodeLookup:C}=t(),P=Lo(L.sourceEvent,{transform:b,snapGrid:z,snapToGrid:j,containerBounds:f});if(x=L.sourceEvent,(L.sourceEvent.type==="touchmove"&&L.sourceEvent.touches.length>1||N&&!C.has(N))&&(y=!0),!y){if(!a&&F&&c&&(a=!0,R()),!c){const T=xt(L.sourceEvent,f),O=T.x-u.x,D=T.y-u.y;Math.sqrt(O*O+D*D)>A&&$(L)}(i.x!==P.xSnapped||i.y!==P.ySnapped)&&l&&c&&(u=xt(L.sourceEvent,f),M(P))}}).on("end",L=>{if(!(!c||y)&&(a=!1,c=!1,cancelAnimationFrame(s),l.size>0)){const{nodeLookup:F,updateNodePositions:b,onNodeDragStop:z,onSelectionDragStop:j}=t();if(v&&(b(l,!1),v=!1),o||z||!N&&j){const[A,C]=ha({nodeId:N,dragItems:l,nodeLookup:F,dragging:!1});o==null||o(L.sourceEvent,l,A,C),z==null||z(L.sourceEvent,A,C),N||j==null||j(L.sourceEvent,C)}}}).filter(L=>{const F=L.target;return!L.button&&(!m||!th(F,`.${m}`,w))&&(!p||th(F,p,w))});d.call(I)}function h(){d==null||d.on(".drag",null)}return{update:S,destroy:h}}function UC(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())oi(o,Or(i))>0&&r.push(i);return r}const WC=250;function YC(e,t,n,r){var l,a;let o=[],i=1/0;const s=UC(e,n,t+WC);for(const u of s){const f=[...((l=u.internals.handleBounds)==null?void 0:l.source)??[],...((a=u.internals.handleBounds)==null?void 0:a.target)??[]];for(const c of f){if(r.nodeId===c.nodeId&&r.type===c.type&&r.id===c.id)continue;const{x:d,y}=er(u,c,c.position,!0),v=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(y-e.y,2));v>t||(v<i?(o=[{...c,x:d,y}],i=v):v===i&&o.push({...c,x:d,y}))}}if(!o.length)return null;if(o.length>1){const u=r.type==="source"?"target":"source";return o.find(f=>f.type===u)??o[0]}return o[0]}function my(e,t,n,r,o,i=!1){var u,f,c;const s=r.get(e);if(!s)return null;const l=o==="strict"?(u=s.internals.handleBounds)==null?void 0:u[t]:[...((f=s.internals.handleBounds)==null?void 0:f.source)??[],...((c=s.internals.handleBounds)==null?void 0:c.target)??[]],a=(n?l==null?void 0:l.find(d=>d.id===n):l==null?void 0:l[0])??null;return a&&i?{...a,...er(s,a,a.position,!0)}:a}function gy(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function XC(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const yy=()=>!0;function GC(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:s,domNode:l,nodeLookup:a,lib:u,autoPanOnConnect:f,flowId:c,panBy:d,cancelConnection:y,onConnectStart:v,onConnect:x,onConnectEnd:S,isValidConnection:h=yy,onReconnectEnd:m,updateConnection:p,getTransform:w,getFromHandle:E,autoPanSpeed:N,dragThreshold:_=1,handleDomNode:M}){const R=oy(e.target);let $=0,I;const{x:L,y:F}=xt(e),b=gy(i,M),z=l==null?void 0:l.getBoundingClientRect();let j=!1;if(!z||!b)return;const A=my(o,b,r,a,t);if(!A)return;let C=xt(e,z),P=!1,T=null,O=!1,D=null;function U(){if(!f||!z)return;const[J,q]=ey(C,z,N);d({x:J,y:q}),$=requestAnimationFrame(U)}const B={...A,nodeId:o,type:b,position:A.position},Y=a.get(o);let G={inProgress:!0,isValid:null,from:er(Y,B,K.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:Y,to:C,toHandle:null,toPosition:Bf[B.position],toNode:null,pointer:C};function V(){j=!0,p(G),v==null||v(e,{nodeId:o,handleId:r,handleType:b})}_===0&&V();function Q(J){if(!j){const{x:Ie,y:Jt}=xt(J),At=Ie-L,Ln=Jt-F;if(!(At*At+Ln*Ln>_*_))return;V()}if(!E()||!B){te(J);return}const q=w();C=xt(J,z),I=YC(xi(C,q,!1,[1,1]),n,a,B),P||(U(),P=!0);const Z=vy(J,{handle:I,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:s?"target":"source",isValidConnection:h,doc:R,lib:u,flowId:c,nodeLookup:a});D=Z.handleDomNode,T=Z.connection,O=XC(!!I,Z.isValid);const se=a.get(o),ue=se?er(se,B,K.Left,!0):G.from,ie={...G,from:ue,isValid:O,to:Z.toHandle&&O?Ks({x:Z.toHandle.x,y:Z.toHandle.y},q):C,toHandle:Z.toHandle,toPosition:O&&Z.toHandle?Z.toHandle.position:Bf[B.position],toNode:Z.toHandle?a.get(Z.toHandle.nodeId):null,pointer:C};p(ie),G=ie}function te(J){if(!("touches"in J&&J.touches.length>0)){if(j){(I||D)&&T&&O&&(x==null||x(T));const{inProgress:q,...Z}=G,se={...Z,toPosition:G.toHandle?G.toPosition:null};S==null||S(J,se),i&&(m==null||m(J,se))}y(),cancelAnimationFrame($),P=!1,O=!1,T=null,D=null,R.removeEventListener("mousemove",Q),R.removeEventListener("mouseup",te),R.removeEventListener("touchmove",Q),R.removeEventListener("touchend",te)}}R.addEventListener("mousemove",Q),R.addEventListener("mouseup",te),R.addEventListener("touchmove",Q),R.addEventListener("touchend",te)}function vy(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:s,lib:l,flowId:a,isValidConnection:u=yy,nodeLookup:f}){const c=i==="target",d=t?s.querySelector(`.${l}-flow__handle[data-id="${a}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:y,y:v}=xt(e),x=s.elementFromPoint(y,v),S=x!=null&&x.classList.contains(`${l}-flow__handle`)?x:d,h={handleDomNode:S,isValid:!1,connection:null,toHandle:null};if(S){const m=gy(void 0,S),p=S.getAttribute("data-nodeid"),w=S.getAttribute("data-handleid"),E=S.classList.contains("connectable"),N=S.classList.contains("connectableend");if(!p||!m)return h;const _={source:c?p:r,sourceHandle:c?w:o,target:c?r:p,targetHandle:c?o:w};h.connection=_;const R=E&&N&&(n===$r.Strict?c&&m==="source"||!c&&m==="target":p!==r||w!==o);h.isValid=R&&u(_),h.toHandle=my(p,m,w,f,n,!0)}return h}const ju={onPointerDown:GC,isValid:vy};function KC({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=Qe(e);function i({translateExtent:l,width:a,height:u,zoomStep:f=1,pannable:c=!0,zoomable:d=!0,inversePan:y=!1}){const v=p=>{if(p.sourceEvent.type!=="wheel"||!t)return;const w=n(),E=p.sourceEvent.ctrlKey&&ii()?10:1,N=-p.sourceEvent.deltaY*(p.sourceEvent.deltaMode===1?.05:p.sourceEvent.deltaMode?1:.002)*f,_=w[2]*Math.pow(2,N*E);t.scaleTo(_)};let x=[0,0];const S=p=>{(p.sourceEvent.type==="mousedown"||p.sourceEvent.type==="touchstart")&&(x=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY])},h=p=>{const w=n();if(p.sourceEvent.type!=="mousemove"&&p.sourceEvent.type!=="touchmove"||!t)return;const E=[p.sourceEvent.clientX??p.sourceEvent.touches[0].clientX,p.sourceEvent.clientY??p.sourceEvent.touches[0].clientY],N=[E[0]-x[0],E[1]-x[1]];x=E;const _=r()*Math.max(w[2],Math.log(w[2]))*(y?-1:1),M={x:w[0]-N[0]*_,y:w[1]-N[1]*_},R=[[0,0],[a,u]];t.setViewportConstrained({x:M.x,y:M.y,zoom:w[2]},R,l)},m=Yg().on("start",S).on("zoom",c?h:null).on("zoom.wheel",d?v:null);o.call(m,{})}function s(){o.on("zoom",null)}return{update:i,destroy:s,pointer:mt}}const Cl=e=>({x:e.x,y:e.y,zoom:e.k}),pa=({x:e,y:t,zoom:n})=>kl.translate(e,t).scale(n),vr=(e,t)=>e.target.closest(`.${t}`),xy=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),QC=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ma=(e,t=0,n=QC,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},wy=e=>{const t=e.ctrlKey&&ii()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function ZC({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:l,onPanZoom:a,onPanZoomEnd:u}){return f=>{if(vr(f,t))return f.ctrlKey&&f.preventDefault(),!1;f.preventDefault(),f.stopImmediatePropagation();const c=n.property("__zoom").k||1;if(f.ctrlKey&&s){const S=mt(f),h=wy(f),m=c*Math.pow(2,h);r.scaleTo(n,m,S,f);return}const d=f.deltaMode===1?20:1;let y=o===Wn.Vertical?0:f.deltaX*d,v=o===Wn.Horizontal?0:f.deltaY*d;!ii()&&f.shiftKey&&o!==Wn.Vertical&&(y=f.deltaY*d,v=0),r.translateBy(n,-(y/c)*i,-(v/c)*i,{internal:!0});const x=Cl(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(a==null||a(f,x),e.panScrollTimeout=setTimeout(()=>{u==null||u(f,x),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l==null||l(f,x))}}function qC({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",s=!t&&i&&!r.ctrlKey,l=vr(r,e);if(r.ctrlKey&&i&&l&&r.preventDefault(),s||l)return null;r.preventDefault(),n.call(this,r,o)}}function JC({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,s,l;if((i=r.sourceEvent)!=null&&i.internal)return;const o=Cl(r.transform);e.mouseButton=((s=r.sourceEvent)==null?void 0:s.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=o,((l=r.sourceEvent)==null?void 0:l.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,o))}}function e_({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var s,l;e.usedRightMouseButton=!!(n&&xy(t,e.mouseButton??0)),(s=i.sourceEvent)!=null&&s.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!((l=i.sourceEvent)!=null&&l.internal)&&(o==null||o(i.sourceEvent,Cl(i.transform)))}}function t_({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return s=>{var l;if(!((l=s.sourceEvent)!=null&&l.internal)&&(e.isZoomingOrPanning=!1,i&&xy(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){const a=Cl(s.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o==null||o(s.sourceEvent,a)},n?150:0)}}}function n_({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:l,noPanClassName:a,lib:u,connectionInProgress:f}){return c=>{var S;const d=e||t,y=n&&c.ctrlKey,v=c.type==="wheel";if(c.button===1&&c.type==="mousedown"&&(vr(c,`${u}-flow__node`)||vr(c,`${u}-flow__edge`)))return!0;if(!r&&!d&&!o&&!i&&!n||s||f&&!v||vr(c,l)&&v||vr(c,a)&&(!v||o&&v&&!e)||!n&&c.ctrlKey&&v)return!1;if(!n&&c.type==="touchstart"&&((S=c.touches)==null?void 0:S.length)>1)return c.preventDefault(),!1;if(!d&&!o&&!y&&v||!r&&(c.type==="mousedown"||c.type==="touchstart")||Array.isArray(r)&&!r.includes(c.button)&&c.type==="mousedown")return!1;const x=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||v)&&x}}function r_({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:s,onPanZoomEnd:l,onDraggingChange:a}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect(),c=Yg().scaleExtent([t,n]).translateExtent(r),d=Qe(e).call(c);m({x:o.x,y:o.y,zoom:Dr(o.zoom,t,n)},[[0,0],[f.width,f.height]],r);const y=d.on("wheel.zoom"),v=d.on("dblclick.zoom");c.wheelDelta(wy);function x(I,L){return d?new Promise(F=>{c==null||c.interpolate((L==null?void 0:L.interpolate)==="linear"?jo:ds).transform(ma(d,L==null?void 0:L.duration,L==null?void 0:L.ease,()=>F(!0)),I)}):Promise.resolve(!1)}function S({noWheelClassName:I,noPanClassName:L,onPaneContextMenu:F,userSelectionActive:b,panOnScroll:z,panOnDrag:j,panOnScrollMode:A,panOnScrollSpeed:C,preventScrolling:P,zoomOnPinch:T,zoomOnScroll:O,zoomOnDoubleClick:D,zoomActivationKeyPressed:U,lib:B,onTransformChange:Y,connectionInProgress:X,paneClickDistance:G,selectionOnDrag:V}){b&&!u.isZoomingOrPanning&&h();const Q=z&&!U&&!b;c.clickDistance(V?1/0:!vt(G)||G<0?0:G);const te=Q?ZC({zoomPanValues:u,noWheelClassName:I,d3Selection:d,d3Zoom:c,panOnScrollMode:A,panOnScrollSpeed:C,zoomOnPinch:T,onPanZoomStart:s,onPanZoom:i,onPanZoomEnd:l}):qC({noWheelClassName:I,preventScrolling:P,d3ZoomHandler:y});if(d.on("wheel.zoom",te,{passive:!1}),!b){const q=JC({zoomPanValues:u,onDraggingChange:a,onPanZoomStart:s});c.on("start",q);const Z=e_({zoomPanValues:u,panOnDrag:j,onPaneContextMenu:!!F,onPanZoom:i,onTransformChange:Y});c.on("zoom",Z);const se=t_({zoomPanValues:u,panOnDrag:j,panOnScroll:z,onPaneContextMenu:F,onPanZoomEnd:l,onDraggingChange:a});c.on("end",se)}const J=n_({zoomActivationKeyPressed:U,panOnDrag:j,zoomOnScroll:O,panOnScroll:z,zoomOnDoubleClick:D,zoomOnPinch:T,userSelectionActive:b,noPanClassName:L,noWheelClassName:I,lib:B,connectionInProgress:X});c.filter(J),D?d.on("dblclick.zoom",v):d.on("dblclick.zoom",null)}function h(){c.on("zoom",null)}async function m(I,L,F){const b=pa(I),z=c==null?void 0:c.constrain()(b,L,F);return z&&await x(z),new Promise(j=>j(z))}async function p(I,L){const F=pa(I);return await x(F,L),new Promise(b=>b(F))}function w(I){if(d){const L=pa(I),F=d.property("__zoom");(F.k!==I.zoom||F.x!==I.x||F.y!==I.y)&&(c==null||c.transform(d,L,null,{sync:!0}))}}function E(){const I=d?Wg(d.node()):{x:0,y:0,k:1};return{x:I.x,y:I.y,zoom:I.k}}function N(I,L){return d?new Promise(F=>{c==null||c.interpolate((L==null?void 0:L.interpolate)==="linear"?jo:ds).scaleTo(ma(d,L==null?void 0:L.duration,L==null?void 0:L.ease,()=>F(!0)),I)}):Promise.resolve(!1)}function _(I,L){return d?new Promise(F=>{c==null||c.interpolate((L==null?void 0:L.interpolate)==="linear"?jo:ds).scaleBy(ma(d,L==null?void 0:L.duration,L==null?void 0:L.ease,()=>F(!0)),I)}):Promise.resolve(!1)}function M(I){c==null||c.scaleExtent(I)}function R(I){c==null||c.translateExtent(I)}function $(I){const L=!vt(I)||I<0?0:I;c==null||c.clickDistance(L)}return{update:S,destroy:h,setViewport:p,setViewportConstrained:m,getViewport:E,scaleTo:N,scaleBy:_,setScaleExtent:M,setTranslateExtent:R,syncViewport:w,setClickDistance:$}}var Hr;(function(e){e.Line="line",e.Handle="handle"})(Hr||(Hr={}));function o_({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:o,affectsY:i}){const s=e-t,l=n-r,a=[s>0?1:s<0?-1:0,l>0?1:l<0?-1:0];return s&&o&&(a[0]=a[0]*-1),l&&i&&(a[1]=a[1]*-1),a}function nh(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),o=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:o}}function rn(e,t){return Math.max(0,t-e)}function on(e,t){return Math.max(0,e-t)}function Xi(e,t,n){return Math.max(0,t-e,e-n)}function rh(e,t){return e?!t:t}function i_(e,t,n,r,o,i,s,l){let{affectsX:a,affectsY:u}=t;const{isHorizontal:f,isVertical:c}=t,d=f&&c,{xSnapped:y,ySnapped:v}=n,{minWidth:x,maxWidth:S,minHeight:h,maxHeight:m}=r,{x:p,y:w,width:E,height:N,aspectRatio:_}=e;let M=Math.floor(f?y-e.pointerX:0),R=Math.floor(c?v-e.pointerY:0);const $=E+(a?-M:M),I=N+(u?-R:R),L=-i[0]*E,F=-i[1]*N;let b=Xi($,x,S),z=Xi(I,h,m);if(s){let C=0,P=0;a&&M<0?C=rn(p+M+L,s[0][0]):!a&&M>0&&(C=on(p+$+L,s[1][0])),u&&R<0?P=rn(w+R+F,s[0][1]):!u&&R>0&&(P=on(w+I+F,s[1][1])),b=Math.max(b,C),z=Math.max(z,P)}if(l){let C=0,P=0;a&&M>0?C=on(p+M,l[0][0]):!a&&M<0&&(C=rn(p+$,l[1][0])),u&&R>0?P=on(w+R,l[0][1]):!u&&R<0&&(P=rn(w+I,l[1][1])),b=Math.max(b,C),z=Math.max(z,P)}if(o){if(f){const C=Xi($/_,h,m)*_;if(b=Math.max(b,C),s){let P=0;!a&&!u||a&&!u&&d?P=on(w+F+$/_,s[1][1])*_:P=rn(w+F+(a?M:-M)/_,s[0][1])*_,b=Math.max(b,P)}if(l){let P=0;!a&&!u||a&&!u&&d?P=rn(w+$/_,l[1][1])*_:P=on(w+(a?M:-M)/_,l[0][1])*_,b=Math.max(b,P)}}if(c){const C=Xi(I*_,x,S)/_;if(z=Math.max(z,C),s){let P=0;!a&&!u||u&&!a&&d?P=on(p+I*_+L,s[1][0])/_:P=rn(p+(u?R:-R)*_+L,s[0][0])/_,z=Math.max(z,P)}if(l){let P=0;!a&&!u||u&&!a&&d?P=rn(p+I*_,l[1][0])/_:P=on(p+(u?R:-R)*_,l[0][0])/_,z=Math.max(z,P)}}}R=R+(R<0?z:-z),M=M+(M<0?b:-b),o&&(d?$>I*_?R=(rh(a,u)?-M:M)/_:M=(rh(a,u)?-R:R)*_:f?(R=M/_,u=a):(M=R*_,a=u));const j=a?p+M:p,A=u?w+R:w;return{width:E+(a?-M:M),height:N+(u?-R:R),x:i[0]*M*(a?-1:1)+j,y:i[1]*R*(u?-1:1)+A}}const Sy={width:0,height:0,x:0,y:0},s_={...Sy,pointerX:0,pointerY:0,aspectRatio:1};function l_(e){return[[0,0],[e.measured.width,e.measured.height]]}function a_(e,t,n){const r=t.position.x+e.position.x,o=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,l=n[0]*i,a=n[1]*s;return[[r-l,o-a],[r+i-l,o+s-a]]}function u_({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const i=Qe(e);let s={controlDirection:nh("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:u,boundaries:f,keepAspectRatio:c,resizeDirection:d,onResizeStart:y,onResize:v,onResizeEnd:x,shouldResize:S}){let h={...Sy},m={...s_};s={boundaries:f,resizeDirection:d,keepAspectRatio:c,controlDirection:nh(u)};let p,w=null,E=[],N,_,M,R=!1;const $=Lg().on("start",I=>{const{nodeLookup:L,transform:F,snapGrid:b,snapToGrid:z,nodeOrigin:j,paneDomNode:A}=n();if(p=L.get(t),!p)return;w=(A==null?void 0:A.getBoundingClientRect())??null;const{xSnapped:C,ySnapped:P}=Lo(I.sourceEvent,{transform:F,snapGrid:b,snapToGrid:z,containerBounds:w});h={width:p.measured.width??0,height:p.measured.height??0,x:p.position.x??0,y:p.position.y??0},m={...h,pointerX:C,pointerY:P,aspectRatio:h.width/h.height},N=void 0,p.parentId&&(p.extent==="parent"||p.expandParent)&&(N=L.get(p.parentId),_=N&&p.extent==="parent"?l_(N):void 0),E=[],M=void 0;for(const[T,O]of L)if(O.parentId===t&&(E.push({id:T,position:{...O.position},extent:O.extent}),O.extent==="parent"||O.expandParent)){const D=a_(O,p,O.origin??j);M?M=[[Math.min(D[0][0],M[0][0]),Math.min(D[0][1],M[0][1])],[Math.max(D[1][0],M[1][0]),Math.max(D[1][1],M[1][1])]]:M=D}y==null||y(I,{...h})}).on("drag",I=>{const{transform:L,snapGrid:F,snapToGrid:b,nodeOrigin:z}=n(),j=Lo(I.sourceEvent,{transform:L,snapGrid:F,snapToGrid:b,containerBounds:w}),A=[];if(!p)return;const{x:C,y:P,width:T,height:O}=h,D={},U=p.origin??z,{width:B,height:Y,x:X,y:G}=i_(m,s.controlDirection,j,s.boundaries,s.keepAspectRatio,U,_,M),V=B!==T,Q=Y!==O,te=X!==C&&V,J=G!==P&&Q;if(!te&&!J&&!V&&!Q)return;if((te||J||U[0]===1||U[1]===1)&&(D.x=te?X:h.x,D.y=J?G:h.y,h.x=D.x,h.y=D.y,E.length>0)){const ue=X-C,ie=G-P;for(const Ie of E)Ie.position={x:Ie.position.x-ue+U[0]*(B-T),y:Ie.position.y-ie+U[1]*(Y-O)},A.push(Ie)}if((V||Q)&&(D.width=V&&(!s.resizeDirection||s.resizeDirection==="horizontal")?B:h.width,D.height=Q&&(!s.resizeDirection||s.resizeDirection==="vertical")?Y:h.height,h.width=D.width,h.height=D.height),N&&p.expandParent){const ue=U[0]*(D.width??0);D.x&&D.x<ue&&(h.x=ue,m.x=m.x-(D.x-ue));const ie=U[1]*(D.height??0);D.y&&D.y<ie&&(h.y=ie,m.y=m.y-(D.y-ie))}const q=o_({width:h.width,prevWidth:T,height:h.height,prevHeight:O,affectsX:s.controlDirection.affectsX,affectsY:s.controlDirection.affectsY}),Z={...h,direction:q};(S==null?void 0:S(I,Z))!==!1&&(R=!0,v==null||v(I,Z),r(D,A))}).on("end",I=>{R&&(x==null||x(I,{...h}),o==null||o({...h}),R=!1)});i.call($)}function a(){i.on(".drag",null)}return{update:l,destroy:a}}var ky={exports:{}},Ey={},Ny={exports:{}},Cy={};/**
162
162
  * @license React
163
163
  * use-sync-external-store-shim.production.js
164
164
  *
@@ -181,4 +181,4 @@ Please change the parent <Route path="${m}"> to <Route path="${m==="/"?"*":`${m}
181
181
  +`).split(`
182
182
  `)),f=u.reduce((c,d)=>c.concat(...d),[]);return[u,f]}return[[],[]]},[e]);return k.useEffect(()=>{const a=(t==null?void 0:t.target)??ch,u=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const f=y=>{var S,h;if(o.current=y.ctrlKey||y.metaKey||y.shiftKey||y.altKey,(!o.current||o.current&&!u)&&iy(y))return!1;const x=fh(y.code,l);if(i.current.add(y[x]),dh(s,i.current,!1)){const m=((h=(S=y.composedPath)==null?void 0:S.call(y))==null?void 0:h[0])||y.target,p=(m==null?void 0:m.nodeName)==="BUTTON"||(m==null?void 0:m.nodeName)==="A";t.preventDefault!==!1&&(o.current||!p)&&y.preventDefault(),r(!0)}},c=y=>{const v=fh(y.code,l);dh(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(y[v]),y.key==="Meta"&&i.current.clear(),o.current=!1},d=()=>{i.current.clear(),r(!1)};return a==null||a.addEventListener("keydown",f),a==null||a.addEventListener("keyup",c),window.addEventListener("blur",d),window.addEventListener("contextmenu",d),()=>{a==null||a.removeEventListener("keydown",f),a==null||a.removeEventListener("keyup",c),window.removeEventListener("blur",d),window.removeEventListener("contextmenu",d)}}},[e,r]),n}function dh(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function fh(e,t){return t.includes(e)?"code":"key"}const eb=()=>{const e=ge();return k.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,{duration:n==null?void 0:n.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,o,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??r,y:t.y??o,zoom:t.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:o,minZoom:i,maxZoom:s,panZoom:l}=e.getState(),a=Uc(t,r,o,i,s,(n==null?void 0:n.padding)??.1);return l?(await l.setViewport(a,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:o,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:l,y:a}=s.getBoundingClientRect(),u={x:t.x-l,y:t.y-a},f=n.snapGrid??o,c=n.snapToGrid??i;return xi(u,r,c,f)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:i}=r.getBoundingClientRect(),s=Ks(t,n);return{x:s.x+o,y:s.y+i}}}),[])};function Ly(e,t){const n=[],r=new Map,o=[];for(const i of e)if(i.type==="add"){o.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const s=r.get(i.id);s?s.push(i):r.set(i.id,[i])}for(const i of t){const s=r.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const l={...i};for(const a of s)tb(a,l);n.push(l)}return o.length&&o.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function tb(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function nb(e,t){return Ly(e,t)}function rb(e,t){return Ly(e,t)}function Tn(e,t){return{id:e,type:"select",selected:t}}function xr(e,t=new Set,n=!1){const r=[];for(const[o,i]of e){const s=t.has(o);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),r.push(Tn(i.id,s)))}return r}function hh({items:e=[],lookup:t}){var o;const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,s]of e.entries()){const l=t.get(s.id),a=((o=l==null?void 0:l.internals)==null?void 0:o.userNode)??l;a!==void 0&&a!==s&&n.push({id:s.id,item:s,type:"replace"}),a===void 0&&n.push({item:s,type:"add",index:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function ph(e){return{id:e.id,type:"remove"}}const mh=e=>dC(e),ob=e=>Zg(e);function Ry(e){return k.forwardRef(e)}const ib=typeof window<"u"?k.useLayoutEffect:k.useEffect;function gh(e){const[t,n]=k.useState(BigInt(0)),[r]=k.useState(()=>sb(()=>n(o=>o+BigInt(1))));return ib(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function sb(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Iy=k.createContext(null);function lb({children:e}){const t=ge(),n=k.useCallback(l=>{const{nodes:a=[],setNodes:u,hasDefaultNodes:f,onNodesChange:c,nodeLookup:d,fitViewQueued:y,onNodesChangeMiddlewareMap:v}=t.getState();let x=a;for(const h of l)x=typeof h=="function"?h(x):h;let S=hh({items:x,lookup:d});for(const h of v.values())S=h(S);f&&u(x),S.length>0?c==null||c(S):y&&window.requestAnimationFrame(()=>{const{fitViewQueued:h,nodes:m,setNodes:p}=t.getState();h&&p(m)})},[]),r=gh(n),o=k.useCallback(l=>{const{edges:a=[],setEdges:u,hasDefaultEdges:f,onEdgesChange:c,edgeLookup:d}=t.getState();let y=a;for(const v of l)y=typeof v=="function"?v(y):v;f?u(y):c&&c(hh({items:y,lookup:d}))},[]),i=gh(o),s=k.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return g.jsx(Iy.Provider,{value:s,children:e})}function ab(){const e=k.useContext(Iy);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const ub=e=>!!e.panZoom;function Zc(){const e=eb(),t=ge(),n=ab(),r=re(ub),o=k.useMemo(()=>{const i=c=>t.getState().nodeLookup.get(c),s=c=>{n.nodeQueue.push(c)},l=c=>{n.edgeQueue.push(c)},a=c=>{var h,m;const{nodeLookup:d,nodeOrigin:y}=t.getState(),v=mh(c)?c:d.get(c.id),x=v.parentId?ry(v.position,v.measured,v.parentId,d,y):v.position,S={...v,position:x,width:((h=v.measured)==null?void 0:h.width)??v.width,height:((m=v.measured)==null?void 0:m.height)??v.height};return Or(S)},u=(c,d,y={replace:!1})=>{s(v=>v.map(x=>{if(x.id===c){const S=typeof d=="function"?d(x):d;return y.replace&&mh(S)?S:{...x,...S}}return x}))},f=(c,d,y={replace:!1})=>{l(v=>v.map(x=>{if(x.id===c){const S=typeof d=="function"?d(x):d;return y.replace&&ob(S)?S:{...x,...S}}return x}))};return{getNodes:()=>t.getState().nodes.map(c=>({...c})),getNode:c=>{var d;return(d=i(c))==null?void 0:d.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:c=[]}=t.getState();return c.map(d=>({...d}))},getEdge:c=>t.getState().edgeLookup.get(c),setNodes:s,setEdges:l,addNodes:c=>{const d=Array.isArray(c)?c:[c];n.nodeQueue.push(y=>[...y,...d])},addEdges:c=>{const d=Array.isArray(c)?c:[c];n.edgeQueue.push(y=>[...y,...d])},toObject:()=>{const{nodes:c=[],edges:d=[],transform:y}=t.getState(),[v,x,S]=y;return{nodes:c.map(h=>({...h})),edges:d.map(h=>({...h})),viewport:{x:v,y:x,zoom:S}}},deleteElements:async({nodes:c=[],edges:d=[]})=>{const{nodes:y,edges:v,onNodesDelete:x,onEdgesDelete:S,triggerNodeChanges:h,triggerEdgeChanges:m,onDelete:p,onBeforeDelete:w}=t.getState(),{nodes:E,edges:N}=await gC({nodesToRemove:c,edgesToRemove:d,nodes:y,edges:v,onBeforeDelete:w}),_=N.length>0,M=E.length>0;if(_){const R=N.map(ph);S==null||S(N),m(R)}if(M){const R=E.map(ph);x==null||x(E),h(R)}return(M||_)&&(p==null||p({nodes:E,edges:N})),{deletedNodes:E,deletedEdges:N}},getIntersectingNodes:(c,d=!0,y)=>{const v=Wf(c),x=v?c:a(c),S=y!==void 0;return x?(y||t.getState().nodes).filter(h=>{const m=t.getState().nodeLookup.get(h.id);if(m&&!v&&(h.id===c.id||!m.internals.positionAbsolute))return!1;const p=Or(S?h:m),w=oi(p,x);return d&&w>0||w>=p.width*p.height||w>=x.width*x.height}):[]},isNodeIntersecting:(c,d,y=!0)=>{const x=Wf(c)?c:a(c);if(!x)return!1;const S=oi(x,d);return y&&S>0||S>=d.width*d.height||S>=x.width*x.height},updateNode:u,updateNodeData:(c,d,y={replace:!1})=>{u(c,v=>{const x=typeof d=="function"?d(v):d;return y.replace?{...v,data:x}:{...v,data:{...v.data,...x}}},y)},updateEdge:f,updateEdgeData:(c,d,y={replace:!1})=>{f(c,v=>{const x=typeof d=="function"?d(v):d;return y.replace?{...v,data:x}:{...v,data:{...v.data,...x}}},y)},getNodesBounds:c=>{const{nodeLookup:d,nodeOrigin:y}=t.getState();return fC(c,{nodeLookup:d,nodeOrigin:y})},getHandleConnections:({type:c,id:d,nodeId:y})=>{var v;return Array.from(((v=t.getState().connectionLookup.get(`${y}-${c}${d?`-${d}`:""}`))==null?void 0:v.values())??[])},getNodeConnections:({type:c,handleId:d,nodeId:y})=>{var v;return Array.from(((v=t.getState().connectionLookup.get(`${y}${c?d?`-${c}-${d}`:`-${c}`:""}`))==null?void 0:v.values())??[])},fitView:async c=>{const d=t.getState().fitViewResolver??wC();return t.setState({fitViewQueued:!0,fitViewOptions:c,fitViewResolver:d}),n.nodeQueue.push(y=>[...y]),d.promise}}},[]);return k.useMemo(()=>({...o,...e,viewportInitialized:r}),[r])}const yh=e=>e.selected,cb=typeof window<"u"?window:void 0;function db({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ge(),{deleteElements:r}=Zc(),o=si(e,{actInsideInputWithModifier:!1}),i=si(t,{target:cb});k.useEffect(()=>{if(o){const{edges:s,nodes:l}=n.getState();r({nodes:l.filter(yh),edges:s.filter(yh)}),n.setState({nodesSelectionActive:!1})}},[o]),k.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function fb(e){const t=ge();k.useEffect(()=>{const n=()=>{var o,i,s,l;if(!e.current||!(((i=(o=e.current).checkVisibility)==null?void 0:i.call(o))??!0))return!1;const r=Wc(e.current);(r.height===0||r.width===0)&&((l=(s=t.getState()).onError)==null||l.call(s,"004",Rt.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const Ml={position:"absolute",width:"100%",height:"100%",top:0,left:0},hb=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function pb({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=Wn.Free,zoomOnDoubleClick:s=!0,panOnDrag:l=!0,defaultViewport:a,translateExtent:u,minZoom:f,maxZoom:c,zoomActivationKeyCode:d,preventScrolling:y=!0,children:v,noWheelClassName:x,noPanClassName:S,onViewportChange:h,isControlledViewport:m,paneClickDistance:p,selectionOnDrag:w}){const E=ge(),N=k.useRef(null),{userSelectionActive:_,lib:M,connectionInProgress:R}=re(hb,me),$=si(d),I=k.useRef();fb(N);const L=k.useCallback(F=>{h==null||h({x:F[0],y:F[1],zoom:F[2]}),m||E.setState({transform:F})},[h,m]);return k.useEffect(()=>{if(N.current){I.current=r_({domNode:N.current,minZoom:f,maxZoom:c,translateExtent:u,viewport:a,onDraggingChange:j=>E.setState({paneDragging:j}),onPanZoomStart:(j,A)=>{const{onViewportChangeStart:C,onMoveStart:P}=E.getState();P==null||P(j,A),C==null||C(A)},onPanZoom:(j,A)=>{const{onViewportChange:C,onMove:P}=E.getState();P==null||P(j,A),C==null||C(A)},onPanZoomEnd:(j,A)=>{const{onViewportChangeEnd:C,onMoveEnd:P}=E.getState();P==null||P(j,A),C==null||C(A)}});const{x:F,y:b,zoom:z}=I.current.getViewport();return E.setState({panZoom:I.current,transform:[F,b,z],domNode:N.current.closest(".react-flow")}),()=>{var j;(j=I.current)==null||j.destroy()}}},[]),k.useEffect(()=>{var F;(F=I.current)==null||F.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:l,zoomActivationKeyPressed:$,preventScrolling:y,noPanClassName:S,userSelectionActive:_,noWheelClassName:x,lib:M,onTransformChange:L,connectionInProgress:R,selectionOnDrag:w,paneClickDistance:p})},[e,t,n,r,o,i,s,l,$,y,S,_,x,M,L,R,w,p]),g.jsx("div",{className:"react-flow__renderer",ref:N,style:Ml,children:v})}const mb=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function gb(){const{userSelectionActive:e,userSelectionRect:t}=re(mb,me);return e&&t?g.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const ya=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},yb=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function vb({isSelecting:e,selectionKeyPressed:t,selectionMode:n=ri.Full,panOnDrag:r,paneClickDistance:o,selectionOnDrag:i,onSelectionStart:s,onSelectionEnd:l,onPaneClick:a,onPaneContextMenu:u,onPaneScroll:f,onPaneMouseEnter:c,onPaneMouseMove:d,onPaneMouseLeave:y,children:v}){const x=ge(),{userSelectionActive:S,elementsSelectable:h,dragging:m,connectionInProgress:p}=re(yb,me),w=h&&(e||S),E=k.useRef(null),N=k.useRef(),_=k.useRef(new Set),M=k.useRef(new Set),R=k.useRef(!1),$=C=>{if(R.current||p){R.current=!1;return}a==null||a(C),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},I=C=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){C.preventDefault();return}u==null||u(C)},L=f?C=>f(C):void 0,F=C=>{R.current&&(C.stopPropagation(),R.current=!1)},b=C=>{var Y,X;const{domNode:P}=x.getState();if(N.current=P==null?void 0:P.getBoundingClientRect(),!N.current)return;const T=C.target===E.current;if(!T&&!!C.target.closest(".nokey")||!e||!(i&&T||t)||C.button!==0||!C.isPrimary)return;(X=(Y=C.target)==null?void 0:Y.setPointerCapture)==null||X.call(Y,C.pointerId),R.current=!1;const{x:U,y:B}=xt(C.nativeEvent,N.current);x.setState({userSelectionRect:{width:0,height:0,startX:U,startY:B,x:U,y:B}}),T||(C.stopPropagation(),C.preventDefault())},z=C=>{const{userSelectionRect:P,transform:T,nodeLookup:O,edgeLookup:D,connectionLookup:U,triggerNodeChanges:B,triggerEdgeChanges:Y,defaultEdgeOptions:X,resetSelectedElements:G}=x.getState();if(!N.current||!P)return;const{x:V,y:Q}=xt(C.nativeEvent,N.current),{startX:te,startY:J}=P;if(!R.current){const ie=t?0:o;if(Math.hypot(V-te,Q-J)<=ie)return;G(),s==null||s(C)}R.current=!0;const q={startX:te,startY:J,x:V<te?V:te,y:Q<J?Q:J,width:Math.abs(V-te),height:Math.abs(Q-J)},Z=_.current,se=M.current;_.current=new Set(Bc(O,q,T,n===ri.Partial,!0).map(ie=>ie.id)),M.current=new Set;const ue=(X==null?void 0:X.selectable)??!0;for(const ie of _.current){const Ie=U.get(ie);if(Ie)for(const{edgeId:Jt}of Ie.values()){const At=D.get(Jt);At&&(At.selectable??ue)&&M.current.add(Jt)}}if(!Yf(Z,_.current)){const ie=xr(O,_.current,!0);B(ie)}if(!Yf(se,M.current)){const ie=xr(D,M.current);Y(ie)}x.setState({userSelectionRect:q,userSelectionActive:!0,nodesSelectionActive:!1})},j=C=>{var P,T;C.button===0&&((T=(P=C.target)==null?void 0:P.releasePointerCapture)==null||T.call(P,C.pointerId),!S&&C.target===E.current&&x.getState().userSelectionRect&&($==null||$(C)),x.setState({userSelectionActive:!1,userSelectionRect:null}),R.current&&(l==null||l(C),x.setState({nodesSelectionActive:_.current.size>0})))},A=r===!0||Array.isArray(r)&&r.includes(0);return g.jsxs("div",{className:Ee(["react-flow__pane",{draggable:A,dragging:m,selection:e}]),onClick:w?void 0:ya($,E),onContextMenu:ya(I,E),onWheel:ya(L,E),onPointerEnter:w?void 0:c,onPointerMove:w?z:d,onPointerUp:w?j:void 0,onPointerDownCapture:w?b:void 0,onClickCapture:w?F:void 0,onPointerLeave:y,ref:E,style:Ml,children:[v,g.jsx(gb,{})]})}function Lu({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:l,onError:a}=t.getState(),u=l.get(e);if(!u){a==null||a("012",Rt.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&s)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var f;return(f=r==null?void 0:r.current)==null?void 0:f.blur()})):o([e])}function Ty({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:s}){const l=ge(),[a,u]=k.useState(!1),f=k.useRef();return k.useEffect(()=>{f.current=BC({getStoreItems:()=>l.getState(),onNodeMouseDown:c=>{Lu({id:c,store:l,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),k.useEffect(()=>{var c,d;if(t)(c=f.current)==null||c.destroy();else if(e.current)return(d=f.current)==null||d.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:o,nodeClickDistance:s}),()=>{var y;(y=f.current)==null||y.destroy()}},[n,r,t,i,e,o]),a}const xb=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function zy(){const e=ge();return k.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:i,nodesDraggable:s,onError:l,updateNodePositions:a,nodeLookup:u,nodeOrigin:f}=e.getState(),c=new Map,d=xb(s),y=o?i[0]:5,v=o?i[1]:5,x=n.direction.x*y*n.factor,S=n.direction.y*v*n.factor;for(const[,h]of u){if(!d(h))continue;let m={x:h.internals.positionAbsolute.x+x,y:h.internals.positionAbsolute.y+S};o&&(m=vi(m,i));const{position:p,positionAbsolute:w}=qg({nodeId:h.id,nextPosition:m,nodeLookup:u,nodeExtent:r,nodeOrigin:f,onError:l});h.position=p,h.internals.positionAbsolute=w,c.set(h.id,h)}a(c)},[])}const qc=k.createContext(null),wb=qc.Provider;qc.Consumer;const Ay=()=>k.useContext(qc),Sb=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),kb=(e,t,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:i,connection:s}=r,{fromHandle:l,toHandle:a,isValid:u}=s,f=(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n;return{connectingFrom:(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n,connectingTo:f,clickConnecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.id)===t&&(o==null?void 0:o.type)===n,isPossibleEndHandle:i===$r.Strict?(l==null?void 0:l.type)!==n:e!==(l==null?void 0:l.nodeId)||t!==(l==null?void 0:l.id),connectionInProcess:!!l,clickConnectionInProcess:!!o,valid:f&&u}};function Eb({type:e="source",position:t=K.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:l,children:a,className:u,onMouseDown:f,onTouchStart:c,...d},y){var z,j;const v=s||null,x=e==="target",S=ge(),h=Ay(),{connectOnClick:m,noPanClassName:p,rfId:w}=re(Sb,me),{connectingFrom:E,connectingTo:N,clickConnecting:_,isPossibleEndHandle:M,connectionInProcess:R,clickConnectionInProcess:$,valid:I}=re(kb(h,v,e),me);h||(j=(z=S.getState()).onError)==null||j.call(z,"010",Rt.error010());const L=A=>{const{defaultEdgeOptions:C,onConnect:P,hasDefaultEdges:T}=S.getState(),O={...C,...A};if(T){const{edges:D,setEdges:U}=S.getState();U(bC(O,D))}P==null||P(O),l==null||l(O)},F=A=>{if(!h)return;const C=sy(A.nativeEvent);if(o&&(C&&A.button===0||!C)){const P=S.getState();ju.onPointerDown(A.nativeEvent,{handleDomNode:A.currentTarget,autoPanOnConnect:P.autoPanOnConnect,connectionMode:P.connectionMode,connectionRadius:P.connectionRadius,domNode:P.domNode,nodeLookup:P.nodeLookup,lib:P.lib,isTarget:x,handleId:v,nodeId:h,flowId:P.rfId,panBy:P.panBy,cancelConnection:P.cancelConnection,onConnectStart:P.onConnectStart,onConnectEnd:P.onConnectEnd,updateConnection:P.updateConnection,onConnect:L,isValidConnection:n||P.isValidConnection,getTransform:()=>S.getState().transform,getFromHandle:()=>S.getState().connection.fromHandle,autoPanSpeed:P.autoPanSpeed,dragThreshold:P.connectionDragThreshold})}C?f==null||f(A):c==null||c(A)},b=A=>{const{onClickConnectStart:C,onClickConnectEnd:P,connectionClickStartHandle:T,connectionMode:O,isValidConnection:D,lib:U,rfId:B,nodeLookup:Y,connection:X}=S.getState();if(!h||!T&&!o)return;if(!T){C==null||C(A.nativeEvent,{nodeId:h,handleId:v,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:h,type:e,id:v}});return}const G=oy(A.target),V=n||D,{connection:Q,isValid:te}=ju.isValid(A.nativeEvent,{handle:{nodeId:h,id:v,type:e},connectionMode:O,fromNodeId:T.nodeId,fromHandleId:T.id||null,fromType:T.type,isValidConnection:V,flowId:B,doc:G,lib:U,nodeLookup:Y});te&&Q&&L(Q);const J=structuredClone(X);delete J.inProgress,J.toPosition=J.toHandle?J.toHandle.position:null,P==null||P(A,J),S.setState({connectionClickStartHandle:null})};return g.jsx("div",{"data-handleid":v,"data-nodeid":h,"data-handlepos":t,"data-id":`${w}-${h}-${v}-${e}`,className:Ee(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",p,u,{source:!x,target:x,connectable:r,connectablestart:o,connectableend:i,clickconnecting:_,connectingfrom:E,connectingto:N,valid:I,connectionindicator:r&&(!R||M)&&(R||$?i:o)}]),onMouseDown:F,onTouchStart:F,onClick:m?b:void 0,ref:y,...d,children:a})}const Qs=k.memo(Ry(Eb));function Nb({data:e,isConnectable:t,sourcePosition:n=K.Bottom}){return g.jsxs(g.Fragment,{children:[e==null?void 0:e.label,g.jsx(Qs,{type:"source",position:n,isConnectable:t})]})}function Cb({data:e,isConnectable:t,targetPosition:n=K.Top,sourcePosition:r=K.Bottom}){return g.jsxs(g.Fragment,{children:[g.jsx(Qs,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,g.jsx(Qs,{type:"source",position:r,isConnectable:t})]})}function _b(){return null}function bb({data:e,isConnectable:t,targetPosition:n=K.Top}){return g.jsxs(g.Fragment,{children:[g.jsx(Qs,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Zs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},vh={input:Nb,default:Cb,output:bb,group:_b};function Pb(e){var t,n,r,o;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((o=e.style)==null?void 0:o.height)}}const Mb=e=>{const{width:t,height:n,x:r,y:o}=yi(e.nodeLookup,{filter:i=>!!i.selected});return{width:vt(t)?t:null,height:vt(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${o}px)`}};function jb({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=ge(),{width:o,height:i,transformString:s,userSelectionActive:l}=re(Mb,me),a=zy(),u=k.useRef(null);if(k.useEffect(()=>{var d;n||(d=u.current)==null||d.focus({preventScroll:!0})},[n]),Ty({nodeRef:u}),l||!o||!i)return null;const f=e?d=>{const y=r.getState().nodes.filter(v=>v.selected);e(d,y)}:void 0,c=d=>{Object.prototype.hasOwnProperty.call(Zs,d.key)&&(d.preventDefault(),a({direction:Zs[d.key],factor:d.shiftKey?4:1}))};return g.jsx("div",{className:Ee(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:g.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:n?void 0:-1,onKeyDown:n?void 0:c,style:{width:o,height:i}})})}const xh=typeof window<"u"?window:void 0,Lb=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function $y({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:l,deleteKeyCode:a,selectionKeyCode:u,selectionOnDrag:f,selectionMode:c,onSelectionStart:d,onSelectionEnd:y,multiSelectionKeyCode:v,panActivationKeyCode:x,zoomActivationKeyCode:S,elementsSelectable:h,zoomOnScroll:m,zoomOnPinch:p,panOnScroll:w,panOnScrollSpeed:E,panOnScrollMode:N,zoomOnDoubleClick:_,panOnDrag:M,defaultViewport:R,translateExtent:$,minZoom:I,maxZoom:L,preventScrolling:F,onSelectionContextMenu:b,noWheelClassName:z,noPanClassName:j,disableKeyboardA11y:A,onViewportChange:C,isControlledViewport:P}){const{nodesSelectionActive:T,userSelectionActive:O}=re(Lb,me),D=si(u,{target:xh}),U=si(x,{target:xh}),B=U||M,Y=U||w,X=f&&B!==!0,G=D||O||X;return db({deleteKeyCode:a,multiSelectionKeyCode:v}),g.jsx(pb,{onPaneContextMenu:i,elementsSelectable:h,zoomOnScroll:m,zoomOnPinch:p,panOnScroll:Y,panOnScrollSpeed:E,panOnScrollMode:N,zoomOnDoubleClick:_,panOnDrag:!D&&B,defaultViewport:R,translateExtent:$,minZoom:I,maxZoom:L,zoomActivationKeyCode:S,preventScrolling:F,noWheelClassName:z,noPanClassName:j,onViewportChange:C,isControlledViewport:P,paneClickDistance:l,selectionOnDrag:X,children:g.jsxs(vb,{onSelectionStart:d,onSelectionEnd:y,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:B,isSelecting:!!G,selectionMode:c,selectionKeyPressed:D,paneClickDistance:l,selectionOnDrag:X,children:[e,T&&g.jsx(jb,{onSelectionContextMenu:b,noPanClassName:j,disableKeyboardA11y:A})]})})}$y.displayName="FlowRenderer";const Rb=k.memo($y),Ib=e=>t=>e?Bc(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function Tb(e){return re(k.useCallback(Ib(e),[e]),me)}const zb=e=>e.updateNodeInternals;function Ab(){const e=re(zb),[t]=k.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const i=o.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:o.target,force:!0})}),e(r)}));return k.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function $b({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const o=ge(),i=k.useRef(null),s=k.useRef(null),l=k.useRef(e.sourcePosition),a=k.useRef(e.targetPosition),u=k.useRef(t),f=n&&!!e.internals.handleBounds;return k.useEffect(()=>{i.current&&!e.hidden&&(!f||s.current!==i.current)&&(s.current&&(r==null||r.unobserve(s.current)),r==null||r.observe(i.current),s.current=i.current)},[f,e.hidden]),k.useEffect(()=>()=>{s.current&&(r==null||r.unobserve(s.current),s.current=null)},[]),k.useEffect(()=>{if(i.current){const c=u.current!==t,d=l.current!==e.sourcePosition,y=a.current!==e.targetPosition;(c||d||y)&&(u.current=t,l.current=e.sourcePosition,a.current=e.targetPosition,o.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function Db({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:s,nodesDraggable:l,elementsSelectable:a,nodesConnectable:u,nodesFocusable:f,resizeObserver:c,noDragClassName:d,noPanClassName:y,disableKeyboardA11y:v,rfId:x,nodeTypes:S,nodeClickDistance:h,onError:m}){const{node:p,internals:w,isParent:E}=re(V=>{const Q=V.nodeLookup.get(e),te=V.parentLookup.has(e);return{node:Q,internals:Q.internals,isParent:te}},me);let N=p.type||"default",_=(S==null?void 0:S[N])||vh[N];_===void 0&&(m==null||m("003",Rt.error003(N)),N="default",_=(S==null?void 0:S.default)||vh.default);const M=!!(p.draggable||l&&typeof p.draggable>"u"),R=!!(p.selectable||a&&typeof p.selectable>"u"),$=!!(p.connectable||u&&typeof p.connectable>"u"),I=!!(p.focusable||f&&typeof p.focusable>"u"),L=ge(),F=ny(p),b=$b({node:p,nodeType:N,hasDimensions:F,resizeObserver:c}),z=Ty({nodeRef:b,disabled:p.hidden||!M,noDragClassName:d,handleSelector:p.dragHandle,nodeId:e,isSelectable:R,nodeClickDistance:h}),j=zy();if(p.hidden)return null;const A=qt(p),C=Pb(p),P=R||M||t||n||r||o,T=n?V=>n(V,{...w.userNode}):void 0,O=r?V=>r(V,{...w.userNode}):void 0,D=o?V=>o(V,{...w.userNode}):void 0,U=i?V=>i(V,{...w.userNode}):void 0,B=s?V=>s(V,{...w.userNode}):void 0,Y=V=>{const{selectNodesOnDrag:Q,nodeDragThreshold:te}=L.getState();R&&(!Q||!M||te>0)&&Lu({id:e,store:L,nodeRef:b}),t&&t(V,{...w.userNode})},X=V=>{if(!(iy(V.nativeEvent)||v)){if(Xg.includes(V.key)&&R){const Q=V.key==="Escape";Lu({id:e,store:L,unselect:Q,nodeRef:b})}else if(M&&p.selected&&Object.prototype.hasOwnProperty.call(Zs,V.key)){V.preventDefault();const{ariaLabelConfig:Q}=L.getState();L.setState({ariaLiveMessage:Q["node.a11yDescription.ariaLiveMessage"]({direction:V.key.replace("Arrow","").toLowerCase(),x:~~w.positionAbsolute.x,y:~~w.positionAbsolute.y})}),j({direction:Zs[V.key],factor:V.shiftKey?4:1})}}},G=()=>{var se;if(v||!((se=b.current)!=null&&se.matches(":focus-visible")))return;const{transform:V,width:Q,height:te,autoPanOnNodeFocus:J,setCenter:q}=L.getState();if(!J)return;Bc(new Map([[e,p]]),{x:0,y:0,width:Q,height:te},V,!0).length>0||q(p.position.x+A.width/2,p.position.y+A.height/2,{zoom:V[2]})};return g.jsx("div",{className:Ee(["react-flow__node",`react-flow__node-${N}`,{[y]:M},p.className,{selected:p.selected,selectable:R,parent:E,draggable:M,dragging:z}]),ref:b,style:{zIndex:w.z,transform:`translate(${w.positionAbsolute.x}px,${w.positionAbsolute.y}px)`,pointerEvents:P?"all":"none",visibility:F?"visible":"hidden",...p.style,...C},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:T,onMouseMove:O,onMouseLeave:D,onContextMenu:U,onClick:Y,onDoubleClick:B,onKeyDown:I?X:void 0,tabIndex:I?0:void 0,onFocus:I?G:void 0,role:p.ariaRole??(I?"group":void 0),"aria-roledescription":"node","aria-describedby":v?void 0:`${Py}-${x}`,"aria-label":p.ariaLabel,...p.domAttributes,children:g.jsx(wb,{value:e,children:g.jsx(_,{id:e,data:p.data,type:N,positionAbsoluteX:w.positionAbsolute.x,positionAbsoluteY:w.positionAbsolute.y,selected:p.selected??!1,selectable:R,draggable:M,deletable:p.deletable??!0,isConnectable:$,sourcePosition:p.sourcePosition,targetPosition:p.targetPosition,dragging:z,dragHandle:p.dragHandle,zIndex:w.z,parentId:p.parentId,...A})})})}var Ob=k.memo(Db);const Fb=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Dy(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,onError:i}=re(Fb,me),s=Tb(e.onlyRenderVisibleElements),l=Ab();return g.jsx("div",{className:"react-flow__nodes",style:Ml,children:s.map(a=>g.jsx(Ob,{id:a,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:l,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}Dy.displayName="NodeRenderer";const Hb=k.memo(Dy);function Vb(e){return re(k.useCallback(n=>{if(!e)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const i=n.nodeLookup.get(o.source),s=n.nodeLookup.get(o.target);i&&s&&NC({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),me)}const Bb=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return g.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Ub=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return g.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},wh={[Xs.Arrow]:Bb,[Xs.ArrowClosed]:Ub};function Wb(e){const t=ge();return k.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(wh,e)?wh[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",Rt.error009(e)),null)},[e])}const Yb=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:l="auto-start-reverse"})=>{const a=Wb(t);return a?g.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:l,refX:"0",refY:"0",children:g.jsx(a,{color:n,strokeWidth:s})}):null},Oy=({defaultColor:e,rfId:t})=>{const n=re(i=>i.edges),r=re(i=>i.defaultEdgeOptions),o=k.useMemo(()=>RC(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return o.length?g.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:g.jsx("defs",{children:o.map(i=>g.jsx(Yb,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};Oy.displayName="MarkerDefinitions";var Xb=k.memo(Oy);function Fy({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:l=2,children:a,className:u,...f}){const[c,d]=k.useState({x:1,y:0,width:0,height:0}),y=Ee(["react-flow__edge-textwrapper",u]),v=k.useRef(null);return k.useEffect(()=>{if(v.current){const x=v.current.getBBox();d({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),n?g.jsxs("g",{transform:`translate(${e-c.width/2} ${t-c.height/2})`,className:y,visibility:c.width?"visible":"hidden",...f,children:[o&&g.jsx("rect",{width:c.width+2*s[0],x:-s[0],y:-s[1],height:c.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:l,ry:l}),g.jsx("text",{className:"react-flow__edge-text",y:c.height/2,dy:"0.3em",ref:v,style:r,children:n}),a]}):null}Fy.displayName="EdgeText";const Gb=k.memo(Fy);function jl({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:a,interactionWidth:u=20,...f}){return g.jsxs(g.Fragment,{children:[g.jsx("path",{...f,d:e,fill:"none",className:Ee(["react-flow__edge-path",f.className])}),u?g.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,r&&vt(t)&&vt(n)?g.jsx(Gb,{x:t,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:a}):null]})}function Sh({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===K.Left||e===K.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function Hy({sourceX:e,sourceY:t,sourcePosition:n=K.Bottom,targetX:r,targetY:o,targetPosition:i=K.Top}){const[s,l]=Sh({pos:n,x1:e,y1:t,x2:r,y2:o}),[a,u]=Sh({pos:i,x1:r,y1:o,x2:e,y2:t}),[f,c,d,y]=ly({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:l,targetControlX:a,targetControlY:u});return[`M${e},${t} C${s},${l} ${a},${u} ${r},${o}`,f,c,d,y]}function Vy(e){return k.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s,targetPosition:l,label:a,labelStyle:u,labelShowBg:f,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:y,style:v,markerEnd:x,markerStart:S,interactionWidth:h})=>{const[m,p,w]=Hy({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:l}),E=e.isInternal?void 0:t;return g.jsx(jl,{id:E,path:m,labelX:p,labelY:w,label:a,labelStyle:u,labelShowBg:f,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:y,style:v,markerEnd:x,markerStart:S,interactionWidth:h})})}const Kb=Vy({isInternal:!1}),By=Vy({isInternal:!0});Kb.displayName="SimpleBezierEdge";By.displayName="SimpleBezierEdgeInternal";function Uy(e){return k.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:l,labelShowBg:a,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:c,style:d,sourcePosition:y=K.Bottom,targetPosition:v=K.Top,markerEnd:x,markerStart:S,pathOptions:h,interactionWidth:m})=>{const[p,w,E]=bu({sourceX:n,sourceY:r,sourcePosition:y,targetX:o,targetY:i,targetPosition:v,borderRadius:h==null?void 0:h.borderRadius,offset:h==null?void 0:h.offset,stepPosition:h==null?void 0:h.stepPosition}),N=e.isInternal?void 0:t;return g.jsx(jl,{id:N,path:p,labelX:w,labelY:E,label:s,labelStyle:l,labelShowBg:a,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:c,style:d,markerEnd:x,markerStart:S,interactionWidth:m})})}const Wy=Uy({isInternal:!1}),Yy=Uy({isInternal:!0});Wy.displayName="SmoothStepEdge";Yy.displayName="SmoothStepEdgeInternal";function Xy(e){return k.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return g.jsx(Wy,{...n,id:r,pathOptions:k.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const Qb=Xy({isInternal:!1}),Gy=Xy({isInternal:!0});Qb.displayName="StepEdge";Gy.displayName="StepEdgeInternal";function Ky(e){return k.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:l,labelShowBg:a,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:c,style:d,markerEnd:y,markerStart:v,interactionWidth:x})=>{const[S,h,m]=cy({sourceX:n,sourceY:r,targetX:o,targetY:i}),p=e.isInternal?void 0:t;return g.jsx(jl,{id:p,path:S,labelX:h,labelY:m,label:s,labelStyle:l,labelShowBg:a,labelBgStyle:u,labelBgPadding:f,labelBgBorderRadius:c,style:d,markerEnd:y,markerStart:v,interactionWidth:x})})}const Zb=Ky({isInternal:!1}),Qy=Ky({isInternal:!0});Zb.displayName="StraightEdge";Qy.displayName="StraightEdgeInternal";function Zy(e){return k.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s=K.Bottom,targetPosition:l=K.Top,label:a,labelStyle:u,labelShowBg:f,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:y,style:v,markerEnd:x,markerStart:S,pathOptions:h,interactionWidth:m})=>{const[p,w,E]=ay({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:l,curvature:h==null?void 0:h.curvature}),N=e.isInternal?void 0:t;return g.jsx(jl,{id:N,path:p,labelX:w,labelY:E,label:a,labelStyle:u,labelShowBg:f,labelBgStyle:c,labelBgPadding:d,labelBgBorderRadius:y,style:v,markerEnd:x,markerStart:S,interactionWidth:m})})}const qb=Zy({isInternal:!1}),qy=Zy({isInternal:!0});qb.displayName="BezierEdge";qy.displayName="BezierEdgeInternal";const kh={default:qy,straight:Qy,step:Gy,smoothstep:Yy,simplebezier:By},Eh={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Jb=(e,t,n)=>n===K.Left?e-t:n===K.Right?e+t:e,eP=(e,t,n)=>n===K.Top?e-t:n===K.Bottom?e+t:e,Nh="react-flow__edgeupdater";function Ch({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:l}){return g.jsx("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:Ee([Nh,`${Nh}-${l}`]),cx:Jb(t,r,e),cy:eP(n,r,e),r,stroke:"transparent",fill:"transparent"})}function tP({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:s,sourcePosition:l,targetPosition:a,onReconnect:u,onReconnectStart:f,onReconnectEnd:c,setReconnecting:d,setUpdateHover:y}){const v=ge(),x=(w,E)=>{if(w.button!==0)return;const{autoPanOnConnect:N,domNode:_,isValidConnection:M,connectionMode:R,connectionRadius:$,lib:I,onConnectStart:L,onConnectEnd:F,cancelConnection:b,nodeLookup:z,rfId:j,panBy:A,updateConnection:C}=v.getState(),P=E.type==="target",T=(U,B)=>{d(!1),c==null||c(U,n,E.type,B)},O=U=>u==null?void 0:u(n,U),D=(U,B)=>{d(!0),f==null||f(w,n,E.type),L==null||L(U,B)};ju.onPointerDown(w.nativeEvent,{autoPanOnConnect:N,connectionMode:R,connectionRadius:$,domNode:_,handleId:E.id,nodeId:E.nodeId,nodeLookup:z,isTarget:P,edgeUpdaterType:E.type,lib:I,flowId:j,cancelConnection:b,panBy:A,isValidConnection:M,onConnect:O,onConnectStart:D,onConnectEnd:F,onReconnectEnd:T,updateConnection:C,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,dragThreshold:v.getState().connectionDragThreshold,handleDomNode:w.currentTarget})},S=w=>x(w,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),h=w=>x(w,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),m=()=>y(!0),p=()=>y(!1);return g.jsxs(g.Fragment,{children:[(e===!0||e==="source")&&g.jsx(Ch,{position:l,centerX:r,centerY:o,radius:t,onMouseDown:S,onMouseEnter:m,onMouseOut:p,type:"source"}),(e===!0||e==="target")&&g.jsx(Ch,{position:a,centerX:i,centerY:s,radius:t,onMouseDown:h,onMouseEnter:m,onMouseOut:p,type:"target"})]})}function nP({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:s,onMouseEnter:l,onMouseMove:a,onMouseLeave:u,reconnectRadius:f,onReconnect:c,onReconnectStart:d,onReconnectEnd:y,rfId:v,edgeTypes:x,noPanClassName:S,onError:h,disableKeyboardA11y:m}){let p=re(q=>q.edgeLookup.get(e));const w=re(q=>q.defaultEdgeOptions);p=w?{...w,...p}:p;let E=p.type||"default",N=(x==null?void 0:x[E])||kh[E];N===void 0&&(h==null||h("011",Rt.error011(E)),E="default",N=(x==null?void 0:x.default)||kh.default);const _=!!(p.focusable||t&&typeof p.focusable>"u"),M=typeof c<"u"&&(p.reconnectable||n&&typeof p.reconnectable>"u"),R=!!(p.selectable||r&&typeof p.selectable>"u"),$=k.useRef(null),[I,L]=k.useState(!1),[F,b]=k.useState(!1),z=ge(),{zIndex:j,sourceX:A,sourceY:C,targetX:P,targetY:T,sourcePosition:O,targetPosition:D}=re(k.useCallback(q=>{const Z=q.nodeLookup.get(p.source),se=q.nodeLookup.get(p.target);if(!Z||!se)return{zIndex:p.zIndex,...Eh};const ue=LC({id:e,sourceNode:Z,targetNode:se,sourceHandle:p.sourceHandle||null,targetHandle:p.targetHandle||null,connectionMode:q.connectionMode,onError:h});return{zIndex:EC({selected:p.selected,zIndex:p.zIndex,sourceNode:Z,targetNode:se,elevateOnSelect:q.elevateEdgesOnSelect,zIndexMode:q.zIndexMode}),...ue||Eh}},[p.source,p.target,p.sourceHandle,p.targetHandle,p.selected,p.zIndex]),me),U=k.useMemo(()=>p.markerStart?`url('#${Pu(p.markerStart,v)}')`:void 0,[p.markerStart,v]),B=k.useMemo(()=>p.markerEnd?`url('#${Pu(p.markerEnd,v)}')`:void 0,[p.markerEnd,v]);if(p.hidden||A===null||C===null||P===null||T===null)return null;const Y=q=>{var ie;const{addSelectedEdges:Z,unselectNodesAndEdges:se,multiSelectionActive:ue}=z.getState();R&&(z.setState({nodesSelectionActive:!1}),p.selected&&ue?(se({nodes:[],edges:[p]}),(ie=$.current)==null||ie.blur()):Z([e])),o&&o(q,p)},X=i?q=>{i(q,{...p})}:void 0,G=s?q=>{s(q,{...p})}:void 0,V=l?q=>{l(q,{...p})}:void 0,Q=a?q=>{a(q,{...p})}:void 0,te=u?q=>{u(q,{...p})}:void 0,J=q=>{var Z;if(!m&&Xg.includes(q.key)&&R){const{unselectNodesAndEdges:se,addSelectedEdges:ue}=z.getState();q.key==="Escape"?((Z=$.current)==null||Z.blur(),se({edges:[p]})):ue([e])}};return g.jsx("svg",{style:{zIndex:j},children:g.jsxs("g",{className:Ee(["react-flow__edge",`react-flow__edge-${E}`,p.className,S,{selected:p.selected,animated:p.animated,inactive:!R&&!o,updating:I,selectable:R}]),onClick:Y,onDoubleClick:X,onContextMenu:G,onMouseEnter:V,onMouseMove:Q,onMouseLeave:te,onKeyDown:_?J:void 0,tabIndex:_?0:void 0,role:p.ariaRole??(_?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":p.ariaLabel===null?void 0:p.ariaLabel||`Edge from ${p.source} to ${p.target}`,"aria-describedby":_?`${My}-${v}`:void 0,ref:$,...p.domAttributes,children:[!F&&g.jsx(N,{id:e,source:p.source,target:p.target,type:p.type,selected:p.selected,animated:p.animated,selectable:R,deletable:p.deletable??!0,label:p.label,labelStyle:p.labelStyle,labelShowBg:p.labelShowBg,labelBgStyle:p.labelBgStyle,labelBgPadding:p.labelBgPadding,labelBgBorderRadius:p.labelBgBorderRadius,sourceX:A,sourceY:C,targetX:P,targetY:T,sourcePosition:O,targetPosition:D,data:p.data,style:p.style,sourceHandleId:p.sourceHandle,targetHandleId:p.targetHandle,markerStart:U,markerEnd:B,pathOptions:"pathOptions"in p?p.pathOptions:void 0,interactionWidth:p.interactionWidth}),M&&g.jsx(tP,{edge:p,isReconnectable:M,reconnectRadius:f,onReconnect:c,onReconnectStart:d,onReconnectEnd:y,sourceX:A,sourceY:C,targetX:P,targetY:T,sourcePosition:O,targetPosition:D,setUpdateHover:L,setReconnecting:b})]})})}var rP=k.memo(nP);const oP=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Jy({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:l,onEdgeMouseMove:a,onEdgeMouseLeave:u,onEdgeClick:f,reconnectRadius:c,onEdgeDoubleClick:d,onReconnectStart:y,onReconnectEnd:v,disableKeyboardA11y:x}){const{edgesFocusable:S,edgesReconnectable:h,elementsSelectable:m,onError:p}=re(oP,me),w=Vb(t);return g.jsxs("div",{className:"react-flow__edges",children:[g.jsx(Xb,{defaultColor:e,rfId:n}),w.map(E=>g.jsx(rP,{id:E,edgesFocusable:S,edgesReconnectable:h,elementsSelectable:m,noPanClassName:o,onReconnect:i,onContextMenu:s,onMouseEnter:l,onMouseMove:a,onMouseLeave:u,onClick:f,reconnectRadius:c,onDoubleClick:d,onReconnectStart:y,onReconnectEnd:v,rfId:n,onError:p,edgeTypes:r,disableKeyboardA11y:x},E))]})}Jy.displayName="EdgeRenderer";const iP=k.memo(Jy),sP=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function lP({children:e}){const t=re(sP);return g.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function aP(e){const t=Zc(),n=k.useRef(!1);k.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const uP=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function cP(e){const t=re(uP),n=ge();return k.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function dP(e){return e.connection.inProgress?{...e.connection,to:xi(e.connection.to,e.transform)}:{...e.connection}}function fP(e){return dP}function hP(e){const t=fP();return re(t,me)}const pP=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function mP({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:i,height:s,isValid:l,inProgress:a}=re(pP,me);return!(i&&o&&a)?null:g.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:g.jsx("g",{className:Ee(["react-flow__connection",Qg(l)]),children:g.jsx(e0,{style:t,type:n,CustomComponent:r,isValid:l})})})}const e0=({style:e,type:t=cn.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:i,fromNode:s,fromHandle:l,fromPosition:a,to:u,toNode:f,toHandle:c,toPosition:d,pointer:y}=hP();if(!o)return;if(n)return g.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:l,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:a,toPosition:d,connectionStatus:Qg(r),toNode:f,toHandle:c,pointer:y});let v="";const x={sourceX:i.x,sourceY:i.y,sourcePosition:a,targetX:u.x,targetY:u.y,targetPosition:d};switch(t){case cn.Bezier:[v]=ay(x);break;case cn.SimpleBezier:[v]=Hy(x);break;case cn.Step:[v]=bu({...x,borderRadius:0});break;case cn.SmoothStep:[v]=bu(x);break;default:[v]=cy(x)}return g.jsx("path",{d:v,fill:"none",className:"react-flow__connection-path",style:e})};e0.displayName="ConnectionLine";const gP={};function _h(e=gP){k.useRef(e),ge(),k.useEffect(()=>{},[e])}function yP(){ge(),k.useRef(!1),k.useEffect(()=>{},[])}function t0({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:l,onNodeMouseMove:a,onNodeMouseLeave:u,onNodeContextMenu:f,onSelectionContextMenu:c,onSelectionStart:d,onSelectionEnd:y,connectionLineType:v,connectionLineStyle:x,connectionLineComponent:S,connectionLineContainerStyle:h,selectionKeyCode:m,selectionOnDrag:p,selectionMode:w,multiSelectionKeyCode:E,panActivationKeyCode:N,zoomActivationKeyCode:_,deleteKeyCode:M,onlyRenderVisibleElements:R,elementsSelectable:$,defaultViewport:I,translateExtent:L,minZoom:F,maxZoom:b,preventScrolling:z,defaultMarkerColor:j,zoomOnScroll:A,zoomOnPinch:C,panOnScroll:P,panOnScrollSpeed:T,panOnScrollMode:O,zoomOnDoubleClick:D,panOnDrag:U,onPaneClick:B,onPaneMouseEnter:Y,onPaneMouseMove:X,onPaneMouseLeave:G,onPaneScroll:V,onPaneContextMenu:Q,paneClickDistance:te,nodeClickDistance:J,onEdgeContextMenu:q,onEdgeMouseEnter:Z,onEdgeMouseMove:se,onEdgeMouseLeave:ue,reconnectRadius:ie,onReconnect:Ie,onReconnectStart:Jt,onReconnectEnd:At,noDragClassName:Ln,noWheelClassName:Qr,noPanClassName:Zr,disableKeyboardA11y:qr,nodeExtent:Ll,rfId:wi,viewport:rr,onViewportChange:Jr}){return _h(e),_h(t),yP(),aP(n),cP(rr),g.jsx(Rb,{onPaneClick:B,onPaneMouseEnter:Y,onPaneMouseMove:X,onPaneMouseLeave:G,onPaneContextMenu:Q,onPaneScroll:V,paneClickDistance:te,deleteKeyCode:M,selectionKeyCode:m,selectionOnDrag:p,selectionMode:w,onSelectionStart:d,onSelectionEnd:y,multiSelectionKeyCode:E,panActivationKeyCode:N,zoomActivationKeyCode:_,elementsSelectable:$,zoomOnScroll:A,zoomOnPinch:C,zoomOnDoubleClick:D,panOnScroll:P,panOnScrollSpeed:T,panOnScrollMode:O,panOnDrag:U,defaultViewport:I,translateExtent:L,minZoom:F,maxZoom:b,onSelectionContextMenu:c,preventScrolling:z,noDragClassName:Ln,noWheelClassName:Qr,noPanClassName:Zr,disableKeyboardA11y:qr,onViewportChange:Jr,isControlledViewport:!!rr,children:g.jsxs(lP,{children:[g.jsx(iP,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:s,onReconnect:Ie,onReconnectStart:Jt,onReconnectEnd:At,onlyRenderVisibleElements:R,onEdgeContextMenu:q,onEdgeMouseEnter:Z,onEdgeMouseMove:se,onEdgeMouseLeave:ue,reconnectRadius:ie,defaultMarkerColor:j,noPanClassName:Zr,disableKeyboardA11y:qr,rfId:wi}),g.jsx(mP,{style:x,type:v,component:S,containerStyle:h}),g.jsx("div",{className:"react-flow__edgelabel-renderer"}),g.jsx(Hb,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:l,onNodeMouseMove:a,onNodeMouseLeave:u,onNodeContextMenu:f,nodeClickDistance:J,onlyRenderVisibleElements:R,noPanClassName:Zr,noDragClassName:Ln,disableKeyboardA11y:qr,nodeExtent:Ll,rfId:wi}),g.jsx("div",{className:"react-flow__viewport-portal"})]})})}t0.displayName="GraphView";const vP=k.memo(t0),bh=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:l,minZoom:a=.5,maxZoom:u=2,nodeOrigin:f,nodeExtent:c,zIndexMode:d="basic"}={})=>{const y=new Map,v=new Map,x=new Map,S=new Map,h=r??t??[],m=n??e??[],p=f??[0,0],w=c??ni;hy(x,S,h);const E=Mu(m,y,v,{nodeOrigin:p,nodeExtent:w,zIndexMode:d});let N=[0,0,1];if(s&&o&&i){const _=yi(y,{filter:I=>!!((I.width||I.initialWidth)&&(I.height||I.initialHeight))}),{x:M,y:R,zoom:$}=Uc(_,o,i,a,u,(l==null?void 0:l.padding)??.1);N=[M,R,$]}return{rfId:"1",width:o??0,height:i??0,transform:N,nodes:m,nodesInitialized:E,nodeLookup:y,parentLookup:v,edges:h,edgeLookup:S,connectionLookup:x,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:a,maxZoom:u,translateExtent:ni,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:$r.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:p,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:l,fitViewResolver:null,connection:{...Kg},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:yC,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Gg,zIndexMode:d,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},xP=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:l,minZoom:a,maxZoom:u,nodeOrigin:f,nodeExtent:c,zIndexMode:d})=>z_((y,v)=>{async function x(){const{nodeLookup:S,panZoom:h,fitViewOptions:m,fitViewResolver:p,width:w,height:E,minZoom:N,maxZoom:_}=v();h&&(await mC({nodes:S,width:w,height:E,panZoom:h,minZoom:N,maxZoom:_},m),p==null||p.resolve(!0),y({fitViewResolver:null}))}return{...bh({nodes:e,edges:t,width:o,height:i,fitView:s,fitViewOptions:l,minZoom:a,maxZoom:u,nodeOrigin:f,nodeExtent:c,defaultNodes:n,defaultEdges:r,zIndexMode:d}),setNodes:S=>{const{nodeLookup:h,parentLookup:m,nodeOrigin:p,elevateNodesOnSelect:w,fitViewQueued:E,zIndexMode:N}=v(),_=Mu(S,h,m,{nodeOrigin:p,nodeExtent:c,elevateNodesOnSelect:w,checkEquality:!0,zIndexMode:N});E&&_?(x(),y({nodes:S,nodesInitialized:_,fitViewQueued:!1,fitViewOptions:void 0})):y({nodes:S,nodesInitialized:_})},setEdges:S=>{const{connectionLookup:h,edgeLookup:m}=v();hy(h,m,S),y({edges:S})},setDefaultNodesAndEdges:(S,h)=>{if(S){const{setNodes:m}=v();m(S),y({hasDefaultNodes:!0})}if(h){const{setEdges:m}=v();m(h),y({hasDefaultEdges:!0})}},updateNodeInternals:S=>{const{triggerNodeChanges:h,nodeLookup:m,parentLookup:p,domNode:w,nodeOrigin:E,nodeExtent:N,debug:_,fitViewQueued:M,zIndexMode:R}=v(),{changes:$,updatedInternals:I}=OC(S,m,p,w,E,N,R);I&&(zC(m,p,{nodeOrigin:E,nodeExtent:N,zIndexMode:R}),M?(x(),y({fitViewQueued:!1,fitViewOptions:void 0})):y({}),($==null?void 0:$.length)>0&&(_&&console.log("React Flow: trigger node changes",$),h==null||h($)))},updateNodePositions:(S,h=!1)=>{const m=[];let p=[];const{nodeLookup:w,triggerNodeChanges:E,connection:N,updateConnection:_,onNodesChangeMiddlewareMap:M}=v();for(const[R,$]of S){const I=w.get(R),L=!!(I!=null&&I.expandParent&&(I!=null&&I.parentId)&&($!=null&&$.position)),F={id:R,type:"position",position:L?{x:Math.max(0,$.position.x),y:Math.max(0,$.position.y)}:$.position,dragging:h};if(I&&N.inProgress&&N.fromNode.id===I.id){const b=er(I,N.fromHandle,K.Left,!0);_({...N,from:b})}L&&I.parentId&&m.push({id:R,parentId:I.parentId,rect:{...$.internals.positionAbsolute,width:$.measured.width??0,height:$.measured.height??0}}),p.push(F)}if(m.length>0){const{parentLookup:R,nodeOrigin:$}=v(),I=Qc(m,w,R,$);p.push(...I)}for(const R of M.values())p=R(p);E(p)},triggerNodeChanges:S=>{const{onNodesChange:h,setNodes:m,nodes:p,hasDefaultNodes:w,debug:E}=v();if(S!=null&&S.length){if(w){const N=nb(S,p);m(N)}E&&console.log("React Flow: trigger node changes",S),h==null||h(S)}},triggerEdgeChanges:S=>{const{onEdgesChange:h,setEdges:m,edges:p,hasDefaultEdges:w,debug:E}=v();if(S!=null&&S.length){if(w){const N=rb(S,p);m(N)}E&&console.log("React Flow: trigger edge changes",S),h==null||h(S)}},addSelectedNodes:S=>{const{multiSelectionActive:h,edgeLookup:m,nodeLookup:p,triggerNodeChanges:w,triggerEdgeChanges:E}=v();if(h){const N=S.map(_=>Tn(_,!0));w(N);return}w(xr(p,new Set([...S]),!0)),E(xr(m))},addSelectedEdges:S=>{const{multiSelectionActive:h,edgeLookup:m,nodeLookup:p,triggerNodeChanges:w,triggerEdgeChanges:E}=v();if(h){const N=S.map(_=>Tn(_,!0));E(N);return}E(xr(m,new Set([...S]))),w(xr(p,new Set,!0))},unselectNodesAndEdges:({nodes:S,edges:h}={})=>{const{edges:m,nodes:p,nodeLookup:w,triggerNodeChanges:E,triggerEdgeChanges:N}=v(),_=S||p,M=h||m,R=_.map(I=>{const L=w.get(I.id);return L&&(L.selected=!1),Tn(I.id,!1)}),$=M.map(I=>Tn(I.id,!1));E(R),N($)},setMinZoom:S=>{const{panZoom:h,maxZoom:m}=v();h==null||h.setScaleExtent([S,m]),y({minZoom:S})},setMaxZoom:S=>{const{panZoom:h,minZoom:m}=v();h==null||h.setScaleExtent([m,S]),y({maxZoom:S})},setTranslateExtent:S=>{var h;(h=v().panZoom)==null||h.setTranslateExtent(S),y({translateExtent:S})},resetSelectedElements:()=>{const{edges:S,nodes:h,triggerNodeChanges:m,triggerEdgeChanges:p,elementsSelectable:w}=v();if(!w)return;const E=h.reduce((_,M)=>M.selected?[..._,Tn(M.id,!1)]:_,[]),N=S.reduce((_,M)=>M.selected?[..._,Tn(M.id,!1)]:_,[]);m(E),p(N)},setNodeExtent:S=>{const{nodes:h,nodeLookup:m,parentLookup:p,nodeOrigin:w,elevateNodesOnSelect:E,nodeExtent:N,zIndexMode:_}=v();S[0][0]===N[0][0]&&S[0][1]===N[0][1]&&S[1][0]===N[1][0]&&S[1][1]===N[1][1]||(Mu(h,m,p,{nodeOrigin:w,nodeExtent:S,elevateNodesOnSelect:E,checkEquality:!1,zIndexMode:_}),y({nodeExtent:S}))},panBy:S=>{const{transform:h,width:m,height:p,panZoom:w,translateExtent:E}=v();return FC({delta:S,panZoom:w,transform:h,translateExtent:E,width:m,height:p})},setCenter:async(S,h,m)=>{const{width:p,height:w,maxZoom:E,panZoom:N}=v();if(!N)return Promise.resolve(!1);const _=typeof(m==null?void 0:m.zoom)<"u"?m.zoom:E;return await N.setViewport({x:p/2-S*_,y:w/2-h*_,zoom:_},{duration:m==null?void 0:m.duration,ease:m==null?void 0:m.ease,interpolate:m==null?void 0:m.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{y({connection:{...Kg}})},updateConnection:S=>{y({connection:S})},reset:()=>y({...bh()})}},Object.is);function wP({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:s,initialMaxZoom:l,initialFitViewOptions:a,fitView:u,nodeOrigin:f,nodeExtent:c,zIndexMode:d,children:y}){const[v]=k.useState(()=>xP({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:u,minZoom:s,maxZoom:l,fitViewOptions:a,nodeOrigin:f,nodeExtent:c,zIndexMode:d}));return g.jsx(A_,{value:v,children:g.jsx(lb,{children:y})})}function SP({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:s,fitView:l,fitViewOptions:a,minZoom:u,maxZoom:f,nodeOrigin:c,nodeExtent:d,zIndexMode:y}){return k.useContext(bl)?g.jsx(g.Fragment,{children:e}):g.jsx(wP,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:s,fitView:l,initialFitViewOptions:a,initialMinZoom:u,initialMaxZoom:f,nodeOrigin:c,nodeExtent:d,zIndexMode:y,children:e})}const kP={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function EP({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:s,onNodeClick:l,onEdgeClick:a,onInit:u,onMove:f,onMoveStart:c,onMoveEnd:d,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:S,onClickConnectEnd:h,onNodeMouseEnter:m,onNodeMouseMove:p,onNodeMouseLeave:w,onNodeContextMenu:E,onNodeDoubleClick:N,onNodeDragStart:_,onNodeDrag:M,onNodeDragStop:R,onNodesDelete:$,onEdgesDelete:I,onDelete:L,onSelectionChange:F,onSelectionDragStart:b,onSelectionDrag:z,onSelectionDragStop:j,onSelectionContextMenu:A,onSelectionStart:C,onSelectionEnd:P,onBeforeDelete:T,connectionMode:O,connectionLineType:D=cn.Bezier,connectionLineStyle:U,connectionLineComponent:B,connectionLineContainerStyle:Y,deleteKeyCode:X="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:V=!1,selectionMode:Q=ri.Full,panActivationKeyCode:te="Space",multiSelectionKeyCode:J=ii()?"Meta":"Control",zoomActivationKeyCode:q=ii()?"Meta":"Control",snapToGrid:Z,snapGrid:se,onlyRenderVisibleElements:ue=!1,selectNodesOnDrag:ie,nodesDraggable:Ie,autoPanOnNodeFocus:Jt,nodesConnectable:At,nodesFocusable:Ln,nodeOrigin:Qr=jy,edgesFocusable:Zr,edgesReconnectable:qr,elementsSelectable:Ll=!0,defaultViewport:wi=K_,minZoom:rr=.5,maxZoom:Jr=2,translateExtent:Jc=ni,preventScrolling:i0=!0,nodeExtent:Rl,defaultMarkerColor:s0="#b1b1b7",zoomOnScroll:l0=!0,zoomOnPinch:a0=!0,panOnScroll:u0=!1,panOnScrollSpeed:c0=.5,panOnScrollMode:d0=Wn.Free,zoomOnDoubleClick:f0=!0,panOnDrag:h0=!0,onPaneClick:p0,onPaneMouseEnter:m0,onPaneMouseMove:g0,onPaneMouseLeave:y0,onPaneScroll:v0,onPaneContextMenu:x0,paneClickDistance:w0=1,nodeClickDistance:S0=0,children:k0,onReconnect:E0,onReconnectStart:N0,onReconnectEnd:C0,onEdgeContextMenu:_0,onEdgeDoubleClick:b0,onEdgeMouseEnter:P0,onEdgeMouseMove:M0,onEdgeMouseLeave:j0,reconnectRadius:L0=10,onNodesChange:R0,onEdgesChange:I0,noDragClassName:T0="nodrag",noWheelClassName:z0="nowheel",noPanClassName:ed="nopan",fitView:td,fitViewOptions:nd,connectOnClick:A0,attributionPosition:$0,proOptions:D0,defaultEdgeOptions:O0,elevateNodesOnSelect:F0=!0,elevateEdgesOnSelect:H0=!1,disableKeyboardA11y:rd=!1,autoPanOnConnect:V0,autoPanOnNodeDrag:B0,autoPanSpeed:U0,connectionRadius:W0,isValidConnection:Y0,onError:X0,style:G0,id:od,nodeDragThreshold:K0,connectionDragThreshold:Q0,viewport:Z0,onViewportChange:q0,width:J0,height:ev,colorMode:tv="light",debug:nv,onScroll:Si,ariaLabelConfig:rv,zIndexMode:id="basic",...ov},iv){const Il=od||"1",sv=J_(tv),lv=k.useCallback(sd=>{sd.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Si==null||Si(sd)},[Si]);return g.jsx("div",{"data-testid":"rf__wrapper",...ov,onScroll:lv,style:{...G0,...kP},ref:iv,className:Ee(["react-flow",o,sv]),id:od,role:"application",children:g.jsxs(SP,{nodes:e,edges:t,width:J0,height:ev,fitView:td,fitViewOptions:nd,minZoom:rr,maxZoom:Jr,nodeOrigin:Qr,nodeExtent:Rl,zIndexMode:id,children:[g.jsx(vP,{onInit:u,onNodeClick:l,onEdgeClick:a,onNodeMouseEnter:m,onNodeMouseMove:p,onNodeMouseLeave:w,onNodeContextMenu:E,onNodeDoubleClick:N,nodeTypes:i,edgeTypes:s,connectionLineType:D,connectionLineStyle:U,connectionLineComponent:B,connectionLineContainerStyle:Y,selectionKeyCode:G,selectionOnDrag:V,selectionMode:Q,deleteKeyCode:X,multiSelectionKeyCode:J,panActivationKeyCode:te,zoomActivationKeyCode:q,onlyRenderVisibleElements:ue,defaultViewport:wi,translateExtent:Jc,minZoom:rr,maxZoom:Jr,preventScrolling:i0,zoomOnScroll:l0,zoomOnPinch:a0,zoomOnDoubleClick:f0,panOnScroll:u0,panOnScrollSpeed:c0,panOnScrollMode:d0,panOnDrag:h0,onPaneClick:p0,onPaneMouseEnter:m0,onPaneMouseMove:g0,onPaneMouseLeave:y0,onPaneScroll:v0,onPaneContextMenu:x0,paneClickDistance:w0,nodeClickDistance:S0,onSelectionContextMenu:A,onSelectionStart:C,onSelectionEnd:P,onReconnect:E0,onReconnectStart:N0,onReconnectEnd:C0,onEdgeContextMenu:_0,onEdgeDoubleClick:b0,onEdgeMouseEnter:P0,onEdgeMouseMove:M0,onEdgeMouseLeave:j0,reconnectRadius:L0,defaultMarkerColor:s0,noDragClassName:T0,noWheelClassName:z0,noPanClassName:ed,rfId:Il,disableKeyboardA11y:rd,nodeExtent:Rl,viewport:Z0,onViewportChange:q0}),g.jsx(q_,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:S,onClickConnectEnd:h,nodesDraggable:Ie,autoPanOnNodeFocus:Jt,nodesConnectable:At,nodesFocusable:Ln,edgesFocusable:Zr,edgesReconnectable:qr,elementsSelectable:Ll,elevateNodesOnSelect:F0,elevateEdgesOnSelect:H0,minZoom:rr,maxZoom:Jr,nodeExtent:Rl,onNodesChange:R0,onEdgesChange:I0,snapToGrid:Z,snapGrid:se,connectionMode:O,translateExtent:Jc,connectOnClick:A0,defaultEdgeOptions:O0,fitView:td,fitViewOptions:nd,onNodesDelete:$,onEdgesDelete:I,onDelete:L,onNodeDragStart:_,onNodeDrag:M,onNodeDragStop:R,onSelectionDrag:z,onSelectionDragStart:b,onSelectionDragStop:j,onMove:f,onMoveStart:c,onMoveEnd:d,noPanClassName:ed,nodeOrigin:Qr,rfId:Il,autoPanOnConnect:V0,autoPanOnNodeDrag:B0,autoPanSpeed:U0,onError:X0,connectionRadius:W0,isValidConnection:Y0,selectNodesOnDrag:ie,nodeDragThreshold:K0,connectionDragThreshold:Q0,onBeforeDelete:T,debug:nv,ariaLabelConfig:rv,zIndexMode:id}),g.jsx(G_,{onSelectionChange:F}),k0,g.jsx(B_,{proOptions:D0,position:$0}),g.jsx(V_,{rfId:Il,disableKeyboardA11y:rd})]})})}var NP=Ry(EP);function CP({dimensions:e,lineWidth:t,variant:n,className:r}){return g.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Ee(["react-flow__background-pattern",n,r])})}function _P({radius:e,className:t}){return g.jsx("circle",{cx:e,cy:e,r:e,className:Ee(["react-flow__background-pattern","dots",t])})}var En;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(En||(En={}));const bP={[En.Dots]:1,[En.Lines]:1,[En.Cross]:6},PP=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function n0({id:e,variant:t=En.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:s,bgColor:l,style:a,className:u,patternClassName:f}){const c=k.useRef(null),{transform:d,patternId:y}=re(PP,me),v=r||bP[t],x=t===En.Dots,S=t===En.Cross,h=Array.isArray(n)?n:[n,n],m=[h[0]*d[2]||1,h[1]*d[2]||1],p=v*d[2],w=Array.isArray(i)?i:[i,i],E=S?[p,p]:m,N=[w[0]*d[2]||1+E[0]/2,w[1]*d[2]||1+E[1]/2],_=`${y}${e||""}`;return g.jsxs("svg",{className:Ee(["react-flow__background",u]),style:{...a,...Ml,"--xy-background-color-props":l,"--xy-background-pattern-color-props":s},ref:c,"data-testid":"rf__background",children:[g.jsx("pattern",{id:_,x:d[0]%m[0],y:d[1]%m[1],width:m[0],height:m[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${N[0]},-${N[1]})`,children:x?g.jsx(_P,{radius:p/2,className:f}):g.jsx(CP,{dimensions:E,lineWidth:o,variant:t,className:f})}),g.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${_})`})]})}n0.displayName="Background";const MP=k.memo(n0);function jP(){return g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:g.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function LP(){return g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:g.jsx("path",{d:"M0 0h32v4.2H0z"})})}function RP(){return g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:g.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function IP(){return g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:g.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function TP(){return g.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:g.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function Ki({children:e,className:t,...n}){return g.jsx("button",{type:"button",className:Ee(["react-flow__controls-button",t]),...n,children:e})}const zP=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function r0({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:l,onInteractiveChange:a,className:u,children:f,position:c="bottom-left",orientation:d="vertical","aria-label":y}){const v=ge(),{isInteractive:x,minZoomReached:S,maxZoomReached:h,ariaLabelConfig:m}=re(zP,me),{zoomIn:p,zoomOut:w,fitView:E}=Zc(),N=()=>{p(),i==null||i()},_=()=>{w(),s==null||s()},M=()=>{E(o),l==null||l()},R=()=>{v.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),a==null||a(!x)},$=d==="horizontal"?"horizontal":"vertical";return g.jsxs(Pl,{className:Ee(["react-flow__controls",$,u]),position:c,style:e,"data-testid":"rf__controls","aria-label":y??m["controls.ariaLabel"],children:[t&&g.jsxs(g.Fragment,{children:[g.jsx(Ki,{onClick:N,className:"react-flow__controls-zoomin",title:m["controls.zoomIn.ariaLabel"],"aria-label":m["controls.zoomIn.ariaLabel"],disabled:h,children:g.jsx(jP,{})}),g.jsx(Ki,{onClick:_,className:"react-flow__controls-zoomout",title:m["controls.zoomOut.ariaLabel"],"aria-label":m["controls.zoomOut.ariaLabel"],disabled:S,children:g.jsx(LP,{})})]}),n&&g.jsx(Ki,{className:"react-flow__controls-fitview",onClick:M,title:m["controls.fitView.ariaLabel"],"aria-label":m["controls.fitView.ariaLabel"],children:g.jsx(RP,{})}),r&&g.jsx(Ki,{className:"react-flow__controls-interactive",onClick:R,title:m["controls.interactive.ariaLabel"],"aria-label":m["controls.interactive.ariaLabel"],children:x?g.jsx(TP,{}):g.jsx(IP,{})}),f]})}r0.displayName="Controls";const AP=k.memo(r0);function $P({id:e,x:t,y:n,width:r,height:o,style:i,color:s,strokeColor:l,strokeWidth:a,className:u,borderRadius:f,shapeRendering:c,selected:d,onClick:y}){const{background:v,backgroundColor:x}=i||{},S=s||v||x;return g.jsx("rect",{className:Ee(["react-flow__minimap-node",{selected:d},u]),x:t,y:n,rx:f,ry:f,width:r,height:o,style:{fill:S,stroke:l,strokeWidth:a},shapeRendering:c,onClick:y?h=>y(h,e):void 0})}const DP=k.memo($P),OP=e=>e.nodes.map(t=>t.id),va=e=>e instanceof Function?e:()=>e;function FP({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=DP,onClick:s}){const l=re(OP,me),a=va(t),u=va(e),f=va(n),c=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return g.jsx(g.Fragment,{children:l.map(d=>g.jsx(VP,{id:d,nodeColorFunc:a,nodeStrokeColorFunc:u,nodeClassNameFunc:f,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:s,shapeRendering:c},d))})}function HP({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:l,onClick:a}){const{node:u,x:f,y:c,width:d,height:y}=re(v=>{const{internals:x}=v.nodeLookup.get(e),S=x.userNode,{x:h,y:m}=x.positionAbsolute,{width:p,height:w}=qt(S);return{node:S,x:h,y:m,width:p,height:w}},me);return!u||u.hidden||!ny(u)?null:g.jsx(l,{x:f,y:c,width:d,height:y,style:u.style,selected:!!u.selected,className:r(u),color:t(u),borderRadius:o,strokeColor:n(u),strokeWidth:i,shapeRendering:s,onClick:a,id:u.id})}const VP=k.memo(HP);var BP=k.memo(FP);const UP=200,WP=150,YP=e=>!e.hidden,XP=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?ty(yi(e.nodeLookup,{filter:YP}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},GP="react-flow__minimap-desc";function o0({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:l,bgColor:a,maskColor:u,maskStrokeColor:f,maskStrokeWidth:c,position:d="bottom-right",onClick:y,onNodeClick:v,pannable:x=!1,zoomable:S=!1,ariaLabel:h,inversePan:m,zoomStep:p=1,offsetScale:w=5}){const E=ge(),N=k.useRef(null),{boundingRect:_,viewBB:M,rfId:R,panZoom:$,translateExtent:I,flowWidth:L,flowHeight:F,ariaLabelConfig:b}=re(XP,me),z=(e==null?void 0:e.width)??UP,j=(e==null?void 0:e.height)??WP,A=_.width/z,C=_.height/j,P=Math.max(A,C),T=P*z,O=P*j,D=w*P,U=_.x-(T-_.width)/2-D,B=_.y-(O-_.height)/2-D,Y=T+D*2,X=O+D*2,G=`${GP}-${R}`,V=k.useRef(0),Q=k.useRef();V.current=P,k.useEffect(()=>{if(N.current&&$)return Q.current=KC({domNode:N.current,panZoom:$,getTransform:()=>E.getState().transform,getViewScale:()=>V.current}),()=>{var Z;(Z=Q.current)==null||Z.destroy()}},[$]),k.useEffect(()=>{var Z;(Z=Q.current)==null||Z.update({translateExtent:I,width:L,height:F,inversePan:m,pannable:x,zoomStep:p,zoomable:S})},[x,S,m,p,I,L,F]);const te=y?Z=>{var ie;const[se,ue]=((ie=Q.current)==null?void 0:ie.pointer(Z))||[0,0];y(Z,{x:se,y:ue})}:void 0,J=v?k.useCallback((Z,se)=>{const ue=E.getState().nodeLookup.get(se).internals.userNode;v(Z,ue)},[]):void 0,q=h??b["minimap.ariaLabel"];return g.jsx(Pl,{position:d,style:{...e,"--xy-minimap-background-color-props":typeof a=="string"?a:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof f=="string"?f:void 0,"--xy-minimap-mask-stroke-width-props":typeof c=="number"?c*P:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:Ee(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:g.jsxs("svg",{width:z,height:j,viewBox:`${U} ${B} ${Y} ${X}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":G,ref:N,onClick:te,children:[q&&g.jsx("title",{id:G,children:q}),g.jsx(BP,{onClick:J,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:s,nodeComponent:l}),g.jsx("path",{className:"react-flow__minimap-mask",d:`M${U-D},${B-D}h${Y+D*2}v${X+D*2}h${-Y-D*2}z
183
183
  M${M.x},${M.y}h${M.width}v${M.height}h${-M.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}o0.displayName="MiniMap";k.memo(o0);const KP=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,QP={[Hr.Line]:"right",[Hr.Handle]:"bottom-right"};function ZP({nodeId:e,position:t,variant:n=Hr.Handle,className:r,style:o=void 0,children:i,color:s,minWidth:l=10,minHeight:a=10,maxWidth:u=Number.MAX_VALUE,maxHeight:f=Number.MAX_VALUE,keepAspectRatio:c=!1,resizeDirection:d,autoScale:y=!0,shouldResize:v,onResizeStart:x,onResize:S,onResizeEnd:h}){const m=Ay(),p=typeof e=="string"?e:m,w=ge(),E=k.useRef(null),N=n===Hr.Handle,_=re(k.useCallback(KP(N&&y),[N,y]),me),M=k.useRef(null),R=t??QP[n];k.useEffect(()=>{if(!(!E.current||!p))return M.current||(M.current=u_({domNode:E.current,nodeId:p,getStoreItems:()=>{const{nodeLookup:I,transform:L,snapGrid:F,snapToGrid:b,nodeOrigin:z,domNode:j}=w.getState();return{nodeLookup:I,transform:L,snapGrid:F,snapToGrid:b,nodeOrigin:z,paneDomNode:j}},onChange:(I,L)=>{const{triggerNodeChanges:F,nodeLookup:b,parentLookup:z,nodeOrigin:j}=w.getState(),A=[],C={x:I.x,y:I.y},P=b.get(p);if(P&&P.expandParent&&P.parentId){const T=P.origin??j,O=I.width??P.measured.width??0,D=I.height??P.measured.height??0,U={id:P.id,parentId:P.parentId,rect:{width:O,height:D,...ry({x:I.x??P.position.x,y:I.y??P.position.y},{width:O,height:D},P.parentId,b,T)}},B=Qc([U],b,z,j);A.push(...B),C.x=I.x?Math.max(T[0]*O,I.x):void 0,C.y=I.y?Math.max(T[1]*D,I.y):void 0}if(C.x!==void 0&&C.y!==void 0){const T={id:p,type:"position",position:{...C}};A.push(T)}if(I.width!==void 0&&I.height!==void 0){const O={id:p,type:"dimensions",resizing:!0,setAttributes:d?d==="horizontal"?"width":"height":!0,dimensions:{width:I.width,height:I.height}};A.push(O)}for(const T of L){const O={...T,type:"position"};A.push(O)}F(A)},onEnd:({width:I,height:L})=>{const F={id:p,type:"dimensions",resizing:!1,dimensions:{width:I,height:L}};w.getState().triggerNodeChanges([F])}})),M.current.update({controlPosition:R,boundaries:{minWidth:l,minHeight:a,maxWidth:u,maxHeight:f},keepAspectRatio:c,resizeDirection:d,onResizeStart:x,onResize:S,onResizeEnd:h,shouldResize:v}),()=>{var I;(I=M.current)==null||I.destroy()}},[R,l,a,u,f,c,x,S,h,v]);const $=R.split("-");return g.jsx("div",{className:Ee(["react-flow__resize-control","nodrag",...$,n,r]),ref:E,style:{...o,scale:_,...s&&{[N?"backgroundColor":"borderColor"]:s}},children:i})}k.memo(ZP);function qP(){const[e,t]=k.useState([]),[n,r]=k.useState([]),[o,i]=k.useState(!0);k.useEffect(()=>{Promise.all([bn.discovery.agents(),bn.observations.permissions()]).then(([a,u])=>{t(a.data??[]),r(u.data??[]),i(!1)}).catch(()=>i(!1))},[]);const{nodes:s,edges:l}=k.useMemo(()=>{const a=[],u=[],f=new Set;return e.forEach((c,d)=>{a.push({id:`agent-${c.id}`,position:{x:100,y:d*120},data:{label:`${c.emoji||"🤖"} ${c.name}`},style:{background:"#18181b",color:"#fafafa",border:"1px solid #27272a",borderRadius:"8px",padding:"8px 16px",fontSize:"13px"}})}),n.forEach(c=>{const d=`tool-${c.toolName}`;f.has(c.toolName)||(f.add(c.toolName),a.push({id:d,position:{x:400,y:f.size*80},data:{label:`🔧 ${c.toolName}`},style:{background:"#09090b",color:"#a1a1aa",border:"1px solid #3f3f46",borderRadius:"8px",padding:"6px 12px",fontSize:"12px"}})),u.push({id:`e-${c.agentId}-${c.toolName}`,source:`agent-${c.agentId}`,target:d,animated:c.accessPattern==="write",style:{stroke:c.accessPattern==="write"?"#eab308":"#3f3f46"}})}),{nodes:a,edges:u}},[e,n]);return o?g.jsx("div",{className:"flex h-40 items-center justify-center text-sm text-muted-foreground",children:"Loading..."}):g.jsxs("div",{className:"space-y-6",children:[g.jsxs("div",{children:[g.jsx("h1",{className:"text-xl font-semibold tracking-tight",children:"Identity Graph"}),g.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Agent-to-tool relationship visualization"})]}),g.jsx("div",{className:"h-[600px] rounded-lg border border-border bg-card",children:g.jsxs(NP,{nodes:s,edges:l,fitView:!0,proOptions:{hideAttribution:!0},children:[g.jsx(MP,{color:"#27272a",gap:20}),g.jsx(AP,{})]})})]})}function JP({children:e}){const{isAuthenticated:t,isLoading:n}=Ic();return n?g.jsx("div",{className:"flex min-h-screen items-center justify-center",children:g.jsx("div",{className:"text-muted-foreground text-sm",children:"Loading..."})}):t?g.jsx(g.Fragment,{children:e}):g.jsx(hu,{to:"/login",replace:!0})}function e4(){return g.jsxs(_1,{children:[g.jsx(ft,{path:"/login",element:g.jsx(x2,{})}),g.jsxs(ft,{element:g.jsx(JP,{children:g.jsx(v2,{})}),children:[g.jsx(ft,{index:!0,element:g.jsx(hu,{to:"/inventory/agents",replace:!0})}),g.jsx(ft,{path:"/inventory/agents",element:g.jsx(S2,{})}),g.jsx(ft,{path:"/inventory/agents/:id",element:g.jsx(N2,{})}),g.jsx(ft,{path:"/inventory/identities",element:g.jsx(M2,{})}),g.jsx(ft,{path:"/inventory/permissions",element:g.jsx(j2,{})}),g.jsx(ft,{path:"/secure/risk",element:g.jsx(L2,{})}),g.jsx(ft,{path:"/secure/graph",element:g.jsx(qP,{})})]}),g.jsx(ft,{path:"*",element:g.jsx(hu,{to:"/inventory/agents",replace:!0})})]})}xa.createRoot(document.getElementById("root")).render(g.jsx(Dh.StrictMode,{children:g.jsx(Z1,{basename:"/dashboard",children:g.jsx(lS,{children:g.jsx(cS,{children:g.jsx(e4,{})})})})}));
184
- //# sourceMappingURL=index-BPA869tX.js.map
184
+ //# sourceMappingURL=index-Ib9IZzlG.js.map