@alook/app 0.0.134 → 0.0.136
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/email-worker/index.js +14 -23
- package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
- package/bundled/web/.open-next/assets/BUILD_ID +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/05mvqqr0d48pd.css +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0exhnlyrat_-7.js +11 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0e5m6elbfa-zc.js → 0l8qs3uu8t4dc.js} +4 -4
- package/bundled/web/.open-next/assets/_next/static/chunks/0njval22g1rht.js +64 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/0rmmmmqzr5q8u.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{1pjkmc-97x3k7.js → 0zgj-5k527bub.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/11jejnuxkw5-s.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{0z1ni4q9mhqpe.js → 1n2ogp1w_pw5c.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{29vahszwp_yzk.js → 1uj4q_n378l_e.js} +3 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/{2vvce1uli_yf3.js → 29j2dlmefldk5.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/{3g9-r7m865tot.js → 2n2-erdcjib3l.js} +3 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/{2evdmhjrm4fp4.js → 2n83te3i54x0y.js} +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/3a4lcn1k6my37.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/3pmxar-ugtky1.js +1 -0
- package/bundled/web/.open-next/assets/_next/static/chunks/{3l4-pv_2z86tp.js → 412d684t3r9n2.js} +2 -2
- package/bundled/web/.open-next/assets/_next/static/chunks/41vj2zu1l6l7w.js +3 -0
- package/bundled/web/.open-next/cache/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/_global-error.cache +1 -1
- package/bundled/web/.open-next/cache/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/_not-found.cache +1 -1
- package/bundled/web/.open-next/cache/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/device.cache +1 -1
- package/bundled/web/.open-next/cache/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/privacy.cache +1 -1
- package/bundled/web/.open-next/cache/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/sitemap.xml.cache +1 -1
- package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
- package/bundled/web/.open-next/cloudflare/init.js +1 -1
- package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
- package/bundled/web/.open-next/middleware/handler.mjs +10 -10
- package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/app-path-routes-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/required-server-files.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/routes-manifest.json +8 -6
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/[traceId]/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/[traceId]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/traces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/activate/route.js +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/{machine-tokens/bind-workspace → workspaces/[id]/onboarded}/route.js +6 -6
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/[id]/onboarded/route_client-reference-manifest.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/workspaces/route.js +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page/react-loadable-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app-paths-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/0_kl__next-internal_server_app_api_workspaces_[id]_onboarded_route_actions_1vi64wi.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0akupj1._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0bye0tx._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0dnslqa._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0gm1sdi._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0j4ezcj._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0pn6awg._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0uctf0v._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1-ug-mf._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__11-5cy7._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1ag75po._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1d7nnl5._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1e9t6i6._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1ertv1z._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1g-mlb0._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1lcw_r4._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +13 -12
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0guhu0i._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0v95a0y._.js +15 -15
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_139j3zh._.js +15 -15
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_1nfaney._.js +15 -15
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/src_1j5rtq8._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__1-ckpz1._.js → [root-of-the-server]__02a8jxi._.js} +2 -2
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__1062lx9._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__1nnp8st._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__1xs4cby._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +13 -12
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_04ht2b1._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0p54okk._.js → _09v4-yk._.js} +15 -15
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0aittsu._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0qgcnj5._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_19l4x1_._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_1vq6255._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/node_modules__pnpm_1k359vx._.js +3 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_0-s5b_y._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_1kzi5ju._.js +64 -0
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_app_(app)_w_[slug]_home_page_tsx_0-vs82-._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_1pjxad3._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_lib_api_ts_1ffelwp._.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +115 -115
- package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +284 -266
- package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +6 -6
- package/bundled/web/migrations/0041_workspace_onboarded.sql +4 -0
- package/bundled/web/wrangler.toml +1 -1
- package/bundled/ws-do/index.js +13 -22
- package/dist/cli/index.js +702 -757
- package/dist/cli/session-runner.js +4 -10
- package/dist/index.js +3 -6
- package/package.json +1 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/0vq-9me5zdpwe.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1i3-07qkxqf69.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/1we2uvram7g8m.js +0 -11
- package/bundled/web/.open-next/assets/_next/static/chunks/25mf0rxvnm36s.js +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/27b6m6derdf5b.js +0 -64
- package/bundled/web/.open-next/assets/_next/static/chunks/2z5ztdz1g7p07.js +0 -3
- package/bundled/web/.open-next/assets/_next/static/chunks/3_v9le57qytk4.css +0 -1
- package/bundled/web/.open-next/assets/_next/static/chunks/3cqwxwej5gtcc.js +0 -1
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/api/machine-tokens/bind-workspace/route_client-reference-manifest.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/09k-_server_app_api_machine-tokens_bind-workspace_route_actions_1hwzeb2.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__0gz2js-._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[root-of-the-server]__1k4p862._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_1dw3pkf._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__0h_is3c._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[root-of-the-server]__1d52fv2._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0h0_aut._.js +0 -3
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_1n93_m_._.js +0 -64
- package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/node_modules__pnpm_1jq1kez._.js +0 -3
- /package/bundled/web/.open-next/assets/_next/static/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/_buildManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/_clientMiddlewareManifest.js +0 -0
- /package/bundled/web/.open-next/assets/_next/static/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/_ssgManifest.js +0 -0
- /package/bundled/web/.open-next/cache/{VmFOnIGsnimmwjDQLrNlX → BF9psRzRPCmyYVYovM5Wd}/robots.txt.cache +0 -0
package/bundled/web/.open-next/assets/_next/static/chunks/{3l4-pv_2z86tp.js → 412d684t3r9n2.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,614191,e=>{"use strict";var t,n,o,r,i,a,s,l,d,c,u,h,f,g,p,m,y=e.i(653772),x=e.i(511043),v=e.i(126942);function b(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)""!==(o=b(e[n]))&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}e.i(811374);var w=e.i(8164),E=e.i(692423),k=e.i(954542),S=e.i(816947),C=e.i(811975);let _=e=>()=>e;function N(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:l,dy:d,dispatch:c}){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:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:d,enumerable:!0,configurable:!0},_:{value:c}})}function M(e){return!e.ctrlKey&&!e.button}function j(){return this.parentNode}function O(e,t){return null==t?{x:e.x,y:e.y}:t}function P(){return navigator.maxTouchPoints||"ontouchstart"in this}function I(){var e,t,n,o,r=M,i=j,a=O,s=P,l={},d=(0,w.dispatch)("start","drag","end"),c=0,u=0;function h(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,C.nonpassive).on("touchend.drag touchcancel.drag",x).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var l=v(this,i.call(this,a,s),a,s,"mouse");l&&((0,E.select)(a.view).on("mousemove.drag",g,C.nonpassivecapture).on("mouseup.drag",p,C.nonpassivecapture),(0,S.default)(a.view),(0,C.nopropagation)(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function g(o){if((0,C.default)(o),!n){var r=o.clientX-e,i=o.clientY-t;n=r*r+i*i>u}l.mouse("drag",o)}function p(e){(0,E.select)(e.view).on("mousemove.drag mouseup.drag",null),(0,S.yesdrag)(e.view,n),(0,C.default)(e),l.mouse("end",e)}function m(e,t){if(r.call(this,e,t)){var n,o,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(o=v(this,s,e,t,a[n].identifier,a[n]))&&((0,C.nopropagation)(e),o("start",e,a[n]))}}function y(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=l[o[t].identifier])&&((0,C.default)(e),n("drag",e,o[t]))}function x(e){var t,n,r=e.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout(function(){o=null},500),t=0;t<i;++t)(n=l[r[t].identifier])&&((0,C.nopropagation)(e),n("end",e,r[t]))}function v(e,t,n,o,r,i){var s,u,f,g=d.copy(),p=(0,k.pointer)(i||n,t);if(null!=(f=a.call(e,new N("beforestart",{sourceEvent:n,target:h,identifier:r,active:c,x:p[0],y:p[1],dx:0,dy:0,dispatch:g}),o)))return s=f.x-p[0]||0,u=f.y-p[1]||0,function n(i,a,d){var m,y=p;switch(i){case"start":l[r]=n,m=c++;break;case"end":delete l[r],--c;case"drag":p=(0,k.pointer)(d||a,t),m=c}g.call(i,e,new N(i,{sourceEvent:a,subject:f,target:h,identifier:r,active:m,x:p[0]+s,y:p[1]+u,dx:p[0]-y[0],dy:p[1]-y[1],dispatch:g}),o)}}return h.filter=function(e){return arguments.length?(r="function"==typeof e?e:_(!!e),h):r},h.container=function(e){return arguments.length?(i="function"==typeof e?e:_(e),h):i},h.subject=function(e){return arguments.length?(a="function"==typeof e?e:_(e),h):a},h.touchable=function(e){return arguments.length?(s="function"==typeof e?e:_(!!e),h):s},h.on=function(){var e=d.on.apply(d,arguments);return e===d?h:e},h.clickDistance=function(e){return arguments.length?(u=(e*=1)*e,h):Math.sqrt(u)},h}N.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e},e.i(250149);var A=e.i(953752),A=A,z=e.i(644200),z=z,L=z,R=e.i(274017),D=e.i(678152);let $=[[-1/0,-1/0],[1/0,1/0]],T=["Enter"," ","Escape"],B={"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"};(t=d||(d={})).Strict="strict",t.Loose="loose",(n=c||(c={})).Free="free",n.Vertical="vertical",n.Horizontal="horizontal",(o=u||(u={})).Partial="partial",o.Full="full";let H={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};(r=h||(h={})).Bezier="default",r.Straight="straight",r.Step="step",r.SmoothStep="smoothstep",r.SimpleBezier="simplebezier",(i=f||(f={})).Arrow="arrow",i.ArrowClosed="arrowclosed",(a=g||(g={})).Left="left",a.Top="top",a.Right="right",a.Bottom="bottom";let V={[g.Left]:g.Right,[g.Right]:g.Left,[g.Top]:g.Bottom,[g.Bottom]:g.Top};function F(e){return null===e?null:e?"valid":"invalid"}let Z=e=>"id"in e&&"source"in e&&"target"in e,X=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),W=(e,t=[0,0])=>{let{width:n,height:o}=eb(e),r=e.origin??t,i=n*r[0],a=o*r[1];return{x:e.position.x-i,y:e.position.y-a}},K=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(e=>{(void 0===t.filter||t.filter(e))&&(n=eo(n,es(e)),o=!0)}),o?ei(n):{x:0,y:0,width:0,height:0}},Y=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1)=>{let s={...eg(t,[n,o,r]),width:t.width/r,height:t.height/r},l=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:o=!1}=t;if(a&&!n||o)continue;let r=e.width??t.width??t.initialWidth??null,d=e.height??t.height??t.initialHeight??null,c=ed(s,ea(t)),u=(r??0)*(d??0),h=i&&c>0;(!t.internals.handleBounds||h||c>=u||t.dragging)&&l.push(t)}return l};async function U({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},a){let s,l;if(0===e.size)return!0;let d=ey(K((s=new Map,l=a?.nodes?new Set(a.nodes.map(e=>e.id)):null,e.forEach(e=>{e.measured.width&&e.measured.height&&(a?.includeHiddenNodes||!e.hidden)&&(!l||l.has(e.id))&&s.set(e.id,e)}),s)),t,n,a?.minZoom??r,a?.maxZoom??i,a?.padding??.1);return await o.setViewport(d,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),!0}function G({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){let a=n.get(e),s=a.parentId?n.get(a.parentId):void 0,{x:l,y:d}=s?s.internals.positionAbsolute:{x:0,y:0},c=a.origin??o,u=a.extent||r;if("parent"!==a.extent||a.expandParent)s&&ev(a.extent)&&(u=[[a.extent[0][0]+l,a.extent[0][1]+d],[a.extent[1][0]+l,a.extent[1][1]+d]]);else if(s){let e=s.measured.width,t=s.measured.height;e&&t&&(u=[[l,d],[l+e,d+t]])}else i?.("005","Only child nodes can use a parent extent.");let h=ev(u)?J(t,u,a.measured):t;return(void 0===a.measured.width||void 0===a.measured.height)&&i?.("015","It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."),{position:{x:h.x-l+(a.measured.width??0)*c[0],y:h.y-d+(a.measured.height??0)*c[1]},positionAbsolute:h}}async function q({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){let i,a=new Set(e.map(e=>e.id)),s=[];for(let e of n){if(!1===e.deletable)continue;let t=a.has(e.id),n=!t&&e.parentId&&s.find(t=>t.id===e.parentId);(t||n)&&s.push(e)}let l=new Set(t.map(e=>e.id)),d=o.filter(e=>!1!==e.deletable),c=(i=new Set,s.forEach(e=>{i.add(e.id)}),d.filter(e=>i.has(e.source)||i.has(e.target)));for(let e of d)l.has(e.id)&&!c.find(t=>t.id===e.id)&&c.push(e);if(!r)return{edges:c,nodes:s};let u=await r({nodes:s,edges:c});return"boolean"==typeof u?u?{edges:c,nodes:s}:{edges:[],nodes:[]}:u}let Q=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),J=(e={x:0,y:0},t,n)=>({x:Q(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Q(e.y,t[0][1],t[1][1]-(n?.height??0))});function ee(e,t,n){let{width:o,height:r}=eb(n),{x:i,y:a}=n.internals.positionAbsolute;return J(e,[[i,a],[i+o,a+r]],t)}let et=(e,t,n)=>e<t?Q(Math.abs(e-t),1,t)/t:e>n?-Q(Math.abs(e-n),1,t)/t:0,en=(e,t,n=15,o=40)=>[et(e.x,o,t.width-o)*n,et(e.y,o,t.height-o)*n],eo=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),er=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),ei=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),ea=(e,t=[0,0])=>{let{x:n,y:o}=X(e)?e.internals.positionAbsolute:W(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},es=(e,t=[0,0])=>{let{x:n,y:o}=X(e)?e.internals.positionAbsolute:W(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},el=(e,t)=>ei(eo(er(e),er(t))),ed=(e,t)=>Math.ceil(Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))),ec=e=>eu(e.width)&&eu(e.height)&&eu(e.x)&&eu(e.y),eu=e=>!isNaN(e)&&isFinite(e),eh=(e,t)=>(e,t)=>{},ef=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),eg=({x:e,y:t},[n,o,r],i=!1,a=[1,1])=>{let s={x:(e-n)/r,y:(t-o)/r};return i?ef(s,a):s},ep=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function em(e,t){if("number"==typeof e)return Math.floor((t-t/(1+e))*.5);if("string"==typeof e&&e.endsWith("px")){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if("string"==typeof e&&e.endsWith("%")){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let ey=(e,t,n,o,r,i)=>{let a=function(e,t,n){if("string"==typeof e||"number"==typeof e){let o=em(e,n),r=em(e,t);return{top:o,right:r,bottom:o,left:r,x:2*r,y:2*o}}if("object"==typeof e){let o=em(e.top??e.y??0,n),r=em(e.bottom??e.y??0,n),i=em(e.left??e.x??0,t),a=em(e.right??e.x??0,t);return{top:o,right:a,bottom:r,left:i,x:i+a,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(i,t,n),s=Q(Math.min((t-a.x)/e.width,(n-a.y)/e.height),o,r),l=e.x+e.width/2,d=e.y+e.height/2,c=t/2-l*s,u=n/2-d*s,h=function(e,t,n,o,r,i){let{x:a,y:s}=ep(e,[t,n,o]),{x:l,y:d}=ep({x:e.x+e.width,y:e.y+e.height},[t,n,o]);return{left:Math.floor(a),top:Math.floor(s),right:Math.floor(r-l),bottom:Math.floor(i-d)}}(e,c,u,s,t,n),f={left:Math.min(h.left-a.left,0),top:Math.min(h.top-a.top,0),right:Math.min(h.right-a.right,0),bottom:Math.min(h.bottom-a.bottom,0)};return{x:c-f.left+f.right,y:u-f.top+f.bottom,zoom:s}},ex=()=>"u">typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function ev(e){return null!=e&&"parent"!==e}function eb(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ew(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function eE(e,t={width:0,height:0},n,o,r){let i={...e},a=o.get(n);if(a){let e=a.origin||r;i.x+=a.internals.positionAbsolute.x-(t.width??0)*e[0],i.y+=a.internals.positionAbsolute.y-(t.height??0)*e[1]}return i}function ek(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function eS(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){let{x:i,y:a}=ej(e),s=eg({x:i-(r?.left??0),y:a-(r?.top??0)},o),{x:l,y:d}=n?ef(s,t):s;return{xSnapped:l,ySnapped:d,...s}}let eC=e=>({width:e.offsetWidth,height:e.offsetHeight}),e_=e=>e?.getRootNode?.()||window?.document,eN=["INPUT","SELECT","TEXTAREA"];function eM(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1&&(eN.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey"))}let ej=(e,t)=>{let n="clientX"in e,o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},eO=(e,t,n,o,r)=>{let i=t.querySelectorAll(`.${e}`);return i&&i.length?Array.from(i).map(t=>{let i=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),type:e,nodeId:r,position:t.getAttribute("data-handlepos"),x:(i.left-n.left)/o,y:(i.top-n.top)/o,...eC(t)}}):null};function eP({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){let l=.125*e+.375*r+.375*a+.125*n,d=.125*t+.375*i+.375*s+.125*o,c=Math.abs(l-e),u=Math.abs(d-t);return[l,d,c,u]}function eI(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function eA({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case g.Left:return[t-eI(t-o,i),n];case g.Right:return[t+eI(o-t,i),n];case g.Top:return[t,n-eI(n-r,i)];case g.Bottom:return[t,n+eI(r-n,i)]}}function ez({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:o,targetY:r,targetPosition:i=g.Top,curvature:a=.25}){let[s,l]=eA({pos:n,x1:e,y1:t,x2:o,y2:r,c:a}),[d,c]=eA({pos:i,x1:o,y1:r,x2:e,y2:t,c:a}),[u,h,f,p]=eP({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:l,targetControlX:d,targetControlY:c});return[`M${e},${t} C${s},${l} ${d},${c} ${o},${r}`,u,h,f,p]}function eL({sourceX:e,sourceY:t,targetX:n,targetY:o}){let r=Math.abs(n-e)/2,i=Math.abs(o-t)/2;return[n<e?n+r:n-r,o<t?o+i:o-i,r,i]}let eR=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`;function eD({sourceX:e,sourceY:t,targetX:n,targetY:o}){let[r,i,a,s]=eL({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,s]}let e$={[g.Left]:{x:-1,y:0},[g.Right]:{x:1,y:0},[g.Top]:{x:0,y:-1},[g.Bottom]:{x:0,y:1}},eT=({source:e,sourcePosition:t=g.Bottom,target:n})=>t===g.Left||t===g.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},eB=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function eH({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:o,targetY:r,targetPosition:i=g.Top,borderRadius:a=5,centerX:s,centerY:l,offset:d=20,stepPosition:c=.5}){let[u,h,f,p,m]=function({source:e,sourcePosition:t=g.Bottom,target:n,targetPosition:o=g.Top,center:r,offset:i,stepPosition:a}){let s,l,d=e$[t],c=e$[o],u={x:e.x+d.x*i,y:e.y+d.y*i},h={x:n.x+c.x*i,y:n.y+c.y*i},f=eT({source:u,sourcePosition:t,target:h}),p=0!==f.x?"x":"y",m=f[p],y=[],x={x:0,y:0},v={x:0,y:0},[,,b,w]=eL({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(d[p]*c[p]==-1){"x"===p?(s=r.x??u.x+(h.x-u.x)*a,l=r.y??(u.y+h.y)/2):(s=r.x??(u.x+h.x)/2,l=r.y??u.y+(h.y-u.y)*a);let e=[{x:s,y:u.y},{x:s,y:h.y}],t=[{x:u.x,y:l},{x:h.x,y:l}];y=d[p]===m?"x"===p?e:t:"x"===p?t:e}else{let r=[{x:u.x,y:h.y}],a=[{x:h.x,y:u.y}];if(y="x"===p?d.x===m?a:r:d.y===m?r:a,t===o){let t=Math.abs(e[p]-n[p]);if(t<=i){let o=Math.min(i-1,i-t);d[p]===m?x[p]=(u[p]>e[p]?-1:1)*o:v[p]=(h[p]>n[p]?-1:1)*o}}if(t!==o){let e="x"===p?"y":"x",t=d[p]===c[e],n=u[e]>h[e],o=u[e]<h[e];(1===d[p]&&(!t&&n||t&&o)||1!==d[p]&&(!t&&o||t&&n))&&(y="x"===p?r:a)}let f={x:u.x+x.x,y:u.y+x.y},g={x:h.x+v.x,y:h.y+v.y};Math.max(Math.abs(f.x-y[0].x),Math.abs(g.x-y[0].x))>=Math.max(Math.abs(f.y-y[0].y),Math.abs(g.y-y[0].y))?(s=(f.x+g.x)/2,l=y[0].y):(s=y[0].x,l=(f.y+g.y)/2)}let E={x:u.x+x.x,y:u.y+x.y},k={x:h.x+v.x,y:h.y+v.y};return[[e,...E.x!==y[0].x||E.y!==y[0].y?[E]:[],...y,...k.x!==y[y.length-1].x||k.y!==y[y.length-1].y?[k]:[],n],s,l,b,w]}({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:s,y:l},offset:d,stepPosition:c}),y=`M${u[0].x} ${u[0].y}`;for(let e=1;e<u.length-1;e++)y+=function(e,t,n,o){let r=Math.min(eB(e,t)/2,eB(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){let t=e.x<n.x?-1:1,o=e.y<n.y?1:-1;return`L ${i+r*t},${a}Q ${i},${a} ${i},${a+r*o}`}let s=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${a+r*l}Q ${i},${a} ${i+r*s},${a}`}(u[e-1],u[e],u[e+1],a);return[y+=`L${u[u.length-1].x} ${u[u.length-1].y}`,h,f,p,m]}function eV(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function eF(e){if(!e)return null;let t=[],n=[];for(let o of e)o.width=o.width??1,o.height=o.height??1,"source"===o.type?t.push(o):"target"===o.type&&n.push(o);return{source:t,target:n}}function eZ(e,t,n=g.Left,o=!1){let r=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:a,height:s}=t??eb(e);if(o)return{x:r+a/2,y:i+s/2};switch(t?.position??n){case g.Top:return{x:r+a/2,y:i};case g.Right:return{x:r+a,y:i+s/2};case g.Bottom:return{x:r+a/2,y:i+s};case g.Left:return{x:r,y:i+s/2}}}function eX(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function eW(e,t){if(!e)return"";if("string"==typeof e)return e;let n=t?`${t}__`:"";return`${n}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`}let eK={nodeOrigin:[0,0],nodeExtent:$,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},eY={...eK,checkEquality:!0};function eU(e,t){let n={...e};for(let e in t)void 0!==t[e]&&(n[e]=t[e]);return n}function eG(e){return"manual"===e}function eq(e,t,n,o={}){let r=eU(eY,o),i={i:0},a=new Map(t),s=r?.elevateNodesOnSelect&&!eG(r.zIndexMode)?1e3:0,l=e.length>0,d=!1;for(let c of(t.clear(),n.clear(),e)){let e=a.get(c.id);if(r.checkEquality&&c===e?.internals.userNode)t.set(c.id,e);else{let n=J(W(c,r.nodeOrigin),ev(c.extent)?c.extent:r.nodeExtent,eb(c));e={...r.defaults,...c,measured:{width:c.measured?.width,height:c.measured?.height},internals:{positionAbsolute:n,handleBounds:function(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],o=[];for(let t of e.handles){let r={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};"source"===t.type?n.push(r):"target"===t.type&&o.push(r)}return{source:n,target:o}}(c,e),z:eJ(c,s,r.zIndexMode),userNode:c}},t.set(c.id,e)}void 0!==e.measured&&void 0!==e.measured.width&&void 0!==e.measured.height||e.hidden||(l=!1),c.parentId&&eQ(e,t,n,o,i),d||=c.selected??!1}return{nodesInitialized:l,hasSelectedNodes:d}}function eQ(e,t,n,o,r){let{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:s,zIndexMode:l}=eU(eK,o),d=e.parentId,c=t.get(d);if(!c)return void console.warn(`Parent node ${d} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}(e,n),r&&!c.parentId&&void 0===c.internals.rootParentIndex&&"auto"===l&&(c.internals.rootParentIndex=++r.i,c.internals.z=c.internals.z+10*r.i),r&&void 0!==c.internals.rootParentIndex&&(r.i=c.internals.rootParentIndex);let{x:u,y:h,z:f}=function(e,t,n,o,r,i){let{x:a,y:s}=t.internals.positionAbsolute,l=eb(e),d=W(e,n),c=ev(e.extent)?J(d,e.extent,l):d,u=J({x:a+c.x,y:s+c.y},o,l);"parent"===e.extent&&(u=ee(u,l,t));let h=eJ(e,r,i),f=t.internals.z??0;return{x:u.x,y:u.y,z:f>=h?f+1:h}}(e,c,a,s,i&&!eG(l)?1e3:0,l),{positionAbsolute:g}=e.internals,p=u!==g.x||h!==g.y;(p||f!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:p?{x:u,y:h}:g,z:f}})}function eJ(e,t,n){let o=eu(e.zIndex)?e.zIndex:0;return eG(n)?o:o+(e.selected?t:0)}function e0(e,t,n,o=[0,0]){let r=[],i=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let o=el(i.get(n.parentId)?.expandedRect??ea(e),n.rect);i.set(n.parentId,{expandedRect:o,parent:e})}return i.size>0&&i.forEach(({expandedRect:t,parent:i},a)=>{let s=i.internals.positionAbsolute,l=eb(i),d=i.origin??o,c=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,u=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,h=Math.max(l.width,Math.round(t.width)),f=Math.max(l.height,Math.round(t.height)),g=(h-l.width)*d[0],p=(f-l.height)*d[1];(c>0||u>0||g||p)&&(r.push({id:a,type:"position",position:{x:i.position.x-c+g,y:i.position.y-u+p}}),n.get(a)?.forEach(t=>{e.some(e=>e.id===t.id)||r.push({id:t.id,type:"position",position:{x:t.position.x+c,y:t.position.y+u}})})),(l.width<t.width||l.height<t.height||c||u)&&r.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:h+(c?d[0]*c-g:0),height:f+(u?d[1]*u-p:0)}})}),r}async function e1({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;let a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}function e2(e,t,n,o,r,i){let a=r,s=o.get(a)||new Map;o.set(a,s.set(n,t)),a=`${r}-${e}`;let l=o.get(a)||new Map;if(o.set(a,l.set(n,t)),i){a=`${r}-${e}-${i}`;let s=o.get(a)||new Map;o.set(a,s.set(n,t))}}function e3(e,t,n){for(let o of(e.clear(),t.clear(),n)){let{source:n,target:r,sourceHandle:i=null,targetHandle:a=null}=o,s={edgeId:o.id,source:n,target:r,sourceHandle:i,targetHandle:a},l=`${n}-${i}--${r}-${a}`;e2("source",s,`${r}-${a}--${n}-${i}`,e,n,i),e2("target",s,l,e,r,a),t.set(o.id,o)}}function e5(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)break;o=o?.parentElement}while(o)return!1}function e4({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){let r=[];for(let[e,i]of t){let t=n.get(e)?.internals.userNode;t&&r.push({...t,position:i.position,dragging:o})}if(!e)return[r[0],r];let i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:o}:r[0],r]}function e6(e,t,n,o,r,i=!1){let a=o.get(e);if(!a)return null;let s="strict"===r?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],l=(n?s?.find(e=>e.id===n):s?.[0])??null;return l&&i?{...l,...eZ(a,l,l.position,!0)}:l}function e7(e,t){return e?e:t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null}let e8=()=>!0;function e9(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:i,doc:a,lib:s,flowId:l,isValidConnection:c=e8,nodeLookup:u}){let h="target"===i,f=t?a.querySelector(`.${s}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:g,y:p}=ej(e),m=a.elementFromPoint(g,p),y=m?.classList.contains(`${s}-flow__handle`)?m:f,x={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){let e=e7(void 0,y),t=y.getAttribute("data-nodeid"),i=y.getAttribute("data-handleid"),a=y.classList.contains("connectable"),s=y.classList.contains("connectableend");if(!t||!e)return x;let l={source:h?t:o,sourceHandle:h?i:r,target:h?o:t,targetHandle:h?r:i};x.connection=l,x.isValid=a&&s&&(n===d.Strict?h&&"source"===e||!h&&"target"===e:t!==o||i!==r)&&c(l),x.toHandle=e6(t,e,i,u,n,!0)}return x}let te=function(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:a,domNode:s,nodeLookup:l,lib:d,autoPanOnConnect:c,flowId:u,panBy:h,cancelConnection:f,onConnectStart:p,onConnect:m,onConnectEnd:y,isValidConnection:x=e8,onReconnectEnd:v,updateConnection:b,getTransform:w,getFromHandle:E,autoPanSpeed:k,dragThreshold:S=1,handleDomNode:C}){let _,N=e_(e.target),M=0,{x:j,y:O}=ej(e),P=e7(i,C),I=s?.getBoundingClientRect(),A=!1;if(!I||!P)return;let z=e6(r,P,o,l,t);if(!z)return;let L=ej(e,I),R=!1,D=null,$=!1,T=null,B={...z,nodeId:r,type:P,position:z.position},H=l.get(r),F={inProgress:!0,isValid:null,from:eZ(H,B,g.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:H,to:L,toHandle:null,toPosition:V[B.position],toNode:null,pointer:L};function Z(){A=!0,b(F),p?.(e,{nodeId:r,handleId:o,handleType:P})}function X(e){var i,s;let f;if(!A){let{x:t,y:n}=ej(e),o=t-j,r=n-O;if(!(o*o+r*r>S*S))return;Z()}if(!E()||!B)return void W(e);let p=w();_=function(e,t,n,o){let r=[],i=1/0;for(let a of function(e,t,n){let o=[],r={x:e.x-n,y:e.y-n,width:2*n,height:2*n};for(let e of t.values())ed(r,ea(e))>0&&o.push(e);return o}(e,n,t+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(o.nodeId===n.nodeId&&o.type===n.type&&o.id===n.id)continue;let{x:s,y:l}=eZ(a,n,n.position,!0),d=Math.sqrt(Math.pow(s-e.x,2)+Math.pow(l-e.y,2));d>t||(d<i?(r=[{...n,x:s,y:l}],i=d):d===i&&r.push({...n,x:s,y:l}))}if(!r.length)return null;if(r.length>1){let e="source"===o.type?"target":"source";return r.find(t=>t.type===e)??r[0]}return r[0]}(eg(L=ej(e,I),p,!1,[1,1]),n,l,B),R||(!function e(){if(!c||!I)return;let[t,n]=en(L,I,k);h({x:t,y:n}),M=requestAnimationFrame(e)}(),R=!0);let m=e9(e,{handle:_,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:a?"target":"source",isValidConnection:x,doc:N,lib:d,flowId:u,nodeLookup:l});T=m.handleDomNode,D=m.connection,i=!!_,s=m.isValid,f=null,s?f=!0:i&&!s&&(f=!1),$=f;let y=l.get(r),v=y?eZ(y,B,g.Left,!0):F.from,C={...F,from:v,isValid:$,to:m.toHandle&&$?ep({x:m.toHandle.x,y:m.toHandle.y},p):L,toHandle:m.toHandle,toPosition:$&&m.toHandle?m.toHandle.position:V[B.position],toNode:m.toHandle?l.get(m.toHandle.nodeId):null,pointer:L};b(C),F=C}function W(e){if(!("touches"in e)||!(e.touches.length>0)){if(A){(_||T)&&D&&$&&m?.(D);let{inProgress:t,...n}=F,o={...n,toPosition:F.toHandle?F.toPosition:null};y?.(e,o),i&&v?.(e,o)}f(),cancelAnimationFrame(M),R=!1,$=!1,D=null,T=null,N.removeEventListener("mousemove",X),N.removeEventListener("mouseup",W),N.removeEventListener("touchmove",X),N.removeEventListener("touchend",W)}}0===S&&Z(),N.addEventListener("mousemove",X),N.addEventListener("mouseup",W),N.addEventListener("touchmove",X),N.addEventListener("touchend",W)},tt=e=>({x:e.x,y:e.y,zoom:e.k}),tn=({x:e,y:t,zoom:n})=>z.identity.translate(e,t).scale(n),to=(e,t)=>e.target.closest(`.${t}`),tr=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),ti=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ta=(e,t=0,n=ti,o=()=>{})=>{let r="number"==typeof t&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},ts=e=>{let t=e.ctrlKey&&ex()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t};function tl(e){let t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:e.includes("left"),affectsY:e.includes("top")}}function td(e,t){return Math.max(0,t-e)}function tc(e,t){return Math.max(0,e-t)}function tu(e,t,n){return Math.max(0,t-e,e-n)}(s=p||(p={})).Line="line",s.Handle="handle";let th={width:0,height:0,x:0,y:0},tf={...th,pointerX:0,pointerY:0,aspectRatio:1};var tg=e.i(976749);let tp={get url(){return`file://${e.P("node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.17_react@19.2.7/node_modules/zustand/esm/vanilla.mjs")}`}},tm=e=>{let t,n=new Set,o=(e,o)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,i={setState:o,getState:r,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{(tp.env?tp.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=t=e(o,r,i);return i},{useDebugValue:ty}=x.default,{useSyncExternalStoreWithSelector:tx}=tg.default,tv=e=>e;function tb(e,t=tv,n){let o=tx(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return ty(o),o}let tw=(e,t)=>{let n=e?tm(e):tm,o=(e,o=t)=>tb(n,e,o);return Object.assign(o,n),o};function tE(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}var tk=e.i(280115);let tS=(0,x.createContext)(null),tC=tS.Provider,t_=((e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`)("react");function tN(e,t){let n=(0,x.useContext)(tS);if(null===n)throw Error(t_);return tb(n,e,t)}function tM(){let e=(0,x.useContext)(tS);if(null===e)throw Error(t_);return(0,x.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}let tj={display:"none"},tO={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},tP="react-flow__node-desc",tI="react-flow__edge-desc",tA=e=>e.ariaLiveMessage,tz=e=>e.ariaLabelConfig;function tL({rfId:e}){let t=tN(tA);return(0,y.jsx)("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:tO,children:t})}function tR({rfId:e,disableKeyboardA11y:t}){let n=tN(tz);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("div",{id:`${tP}-${e}`,style:tj,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),(0,y.jsx)("div",{id:`${tI}-${e}`,style:tj,children:n["edge.a11yDescription.default"]}),!t&&(0,y.jsx)(tL,{rfId:e})]})}let tD=(0,x.forwardRef)(({position:e="top-left",children:t,className:n,style:o,...r},i)=>{let a=`${e}`.split("-");return(0,y.jsx)("div",{className:b(["react-flow__panel",n,...a]),style:o,ref:i,...r,children:t})});function t$({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:(0,y.jsx)(tD,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:(0,y.jsx)("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}tD.displayName="Panel";let tT=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},tB=e=>e.id;function tH(e,t){return tE(e.selectedNodes.map(tB),t.selectedNodes.map(tB))&&tE(e.selectedEdges.map(tB),t.selectedEdges.map(tB))}function tV({onSelectionChange:e}){let t=tM(),{selectedNodes:n,selectedEdges:o}=tN(tT,tH);return(0,x.useEffect)(()=>{let r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(e=>e(r))},[n,o,e]),null}let tF=e=>!!e.onSelectionChangeHandlers;function tZ({onSelectionChange:e}){let t=tN(tF);return e||t?(0,y.jsx)(tV,{onSelectionChange:e}):null}let tX=[0,0],tW={x:0,y:0,zoom:1},tK=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode","rfId"],tY=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),tU={translateExtent:$,nodeOrigin:tX,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function tG(e){let{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:i,setNodeExtent:a,reset:s,setDefaultNodesAndEdges:l}=tN(tY,tE),d=tM();(0,x.useEffect)(()=>(l(e.defaultNodes,e.defaultEdges),()=>{c.current=tU,s()}),[]);let c=(0,x.useRef)(tU);return(0,x.useEffect)(()=>{for(let s of tK){let l=e[s];if(l!==c.current[s]&&void 0!==e[s])if("nodes"===s)t(l);else if("edges"===s)n(l);else if("minZoom"===s)o(l);else if("maxZoom"===s)r(l);else if("translateExtent"===s)i(l);else if("nodeExtent"===s)a(l);else if("ariaLabelConfig"===s)d.setState({ariaLabelConfig:{...B,...l||{}}});else"fitView"===s?d.setState({fitViewQueued:l}):"fitViewOptions"===s?d.setState({fitViewOptions:l}):d.setState({[s]:l})}c.current=e},tK.map(t=>e[t])),null}function tq(){return"u"<typeof window||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}let tQ="u">typeof document?document:null;function tJ(e=null,t={target:tQ,actInsideInputWithModifier:!0}){let[n,o]=(0,x.useState)(!1),r=(0,x.useRef)(!1),i=(0,x.useRef)(new Set([])),[a,s]=(0,x.useMemo)(()=>{if(null!==e){let t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.replace("+","\n").replace("\n\n","\n+").split("\n")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return(0,x.useEffect)(()=>{let n=t?.target??tQ,l=t?.actInsideInputWithModifier??!0;if(null!==e){let e=e=>{if(r.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!r.current||r.current&&!l)&&eM(e))return!1;let n=t1(e.code,s);if(i.current.add(e[n]),t0(a,i.current,!1)){let n=e.composedPath?.()?.[0]||e.target,i=n?.nodeName==="BUTTON"||n?.nodeName==="A";!1!==t.preventDefault&&(r.current||!i)&&e.preventDefault(),o(!0)}},d=e=>{let t=t1(e.code,s);t0(a,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(e[t]),"Meta"===e.key&&i.current.clear(),r.current=!1},c=()=>{i.current.clear(),o(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",d),window.addEventListener("blur",c),window.addEventListener("contextmenu",c),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",d),window.removeEventListener("blur",c),window.removeEventListener("contextmenu",c)}}},[e,o]),n}function t0(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function t1(e,t){return t.includes(e)?"code":"key"}function t2(e,t){let n=[],o=new Map,r=[];for(let t of e)if("add"===t.type){r.push(t);continue}else if("remove"===t.type||"replace"===t.type)o.set(t.id,[t]);else{let e=o.get(t.id);e?e.push(t):o.set(t.id,[t])}for(let e of t){let t=o.get(e.id);if(!t){n.push(e);continue}if("remove"===t[0].type)continue;if("replace"===t[0].type){n.push({...t[0].item});continue}let r={...e};for(let e of t){var i=e,a=r;switch(i.type){case"select":a.selected=i.selected;break;case"position":void 0!==i.position&&(a.position=i.position),void 0!==i.dragging&&(a.dragging=i.dragging);break;case"dimensions":void 0!==i.dimensions&&(a.measured={...i.dimensions},i.setAttributes&&((!0===i.setAttributes||"width"===i.setAttributes)&&(a.width=i.dimensions.width),(!0===i.setAttributes||"height"===i.setAttributes)&&(a.height=i.dimensions.height))),"boolean"==typeof i.resizing&&(a.resizing=i.resizing)}}n.push(r)}return r.length&&r.forEach(e=>{void 0!==e.index?n.splice(e.index,0,{...e.item}):n.push({...e.item})}),n}function t3(e,t){return{id:e,type:"select",selected:t}}function t5(e,t=new Set,n=!1){let o=[];for(let[r,i]of e){let e=t.has(r);(void 0!==i.selected||e)&&i.selected!==e&&(n&&(i.selected=e),o.push(t3(i.id,e)))}return o}function t4({items:e=[],lookup:t}){let n=[],o=new Map(e.map(e=>[e.id,e]));for(let[o,r]of e.entries()){let e=t.get(r.id),i=e?.internals?.userNode??e;void 0!==i&&i!==r&&n.push({id:r.id,item:r,type:"replace"}),void 0===i&&n.push({item:r,type:"add",index:o})}for(let[e]of t)void 0===o.get(e)&&n.push({id:e,type:"remove"});return n}function t6(e){return{id:e.id,type:"remove"}}let t7=eh("React Flow","https://reactflow.dev/"),t8=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e);function t9(e){return(0,x.forwardRef)(e)}let ne="u">typeof window?x.useLayoutEffect:x.useEffect;function nt(e){let[t,n]=(0,x.useState)(BigInt(0)),[o]=(0,x.useState)(()=>{var e;let t;return e=()=>n(e=>e+BigInt(1)),t=[],{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}});return ne(()=>{let t=o.get();t.length&&(e(t),o.reset())},[t]),o}let nn=(0,x.createContext)(null);function no({children:e}){let t=tM(),n=nt((0,x.useCallback)(e=>{let{nodes:n=[],setNodes:o,hasDefaultNodes:r,onNodesChange:i,nodeLookup:a,fitViewQueued:s,onNodesChangeMiddlewareMap:l}=t.getState(),d=n;for(let t of e)d="function"==typeof t?t(d):t;let c=t4({items:d,lookup:a});for(let e of l.values())c=e(c);r&&o(d),c.length>0?i?.(c):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:o}=t.getState();e&&o(n)})},[])),o=nt((0,x.useCallback)(e=>{let{edges:n=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:i,edgeLookup:a}=t.getState(),s=n;for(let t of e)s="function"==typeof t?t(s):t;r?o(s):i&&i(t4({items:s,lookup:a}))},[])),r=(0,x.useMemo)(()=>({nodeQueue:n,edgeQueue:o}),[]);return(0,y.jsx)(nn.Provider,{value:r,children:e})}let nr=e=>!!e.panZoom;function ni(){let e,t=(e=tM(),(0,x.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return!!n&&n.scaleBy(1.2,t)},zoomOut:async t=>{let{panZoom:n}=e.getState();return!!n&&n.scaleBy(1/1.2,t)},zoomTo:async(t,n)=>{let{panZoom:o}=e.getState();return!!o&&o.scaleTo(t,n)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[o,r,i],panZoom:a}=e.getState();return!!a&&(await a.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},n),!0)},getViewport:()=>{let[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{let{width:o,height:r,minZoom:i,maxZoom:a,panZoom:s}=e.getState(),l=ey(t,o,r,i,a,n?.padding??.1);return!!s&&(await s.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0)},screenToFlowPosition:(t,n={})=>{let{transform:o,snapGrid:r,snapToGrid:i,domNode:a}=e.getState();if(!a)return t;let{x:s,y:l}=a.getBoundingClientRect(),d={x:t.x-s,y:t.y-l},c=n.snapGrid??r;return eg(d,o,n.snapToGrid??i,c)},flowToScreenPosition:t=>{let{transform:n,domNode:o}=e.getState();if(!o)return t;let{x:r,y:i}=o.getBoundingClientRect(),a=ep(t,n);return{x:a.x+r,y:a.y+i}}}),[])),n=tM(),o=function(){let e=(0,x.useContext)(nn);if(!e)throw Error("useBatchContext must be used within a BatchProvider");return e}(),r=tN(nr),i=(0,x.useMemo)(()=>{let e=e=>n.getState().nodeLookup.get(e),t=e=>{o.nodeQueue.push(e)},r=e=>{o.edgeQueue.push(e)},i=e=>{let{nodeLookup:t,nodeOrigin:o}=n.getState(),r=t8(e)?e:t.get(e.id),i=r.parentId?eE(r.position,r.measured,r.parentId,t,o):r.position;return ea({...r,position:i,width:r.measured?.width??r.width,height:r.measured?.height??r.height})},a=(e,n,o={replace:!1})=>{t(t=>t.map(t=>{if(t.id===e){let e="function"==typeof n?n(t):n;return o.replace&&t8(e)?e:{...t,...e}}return t}))},s=(e,t,n={replace:!1})=>{r(o=>o.map(o=>{if(o.id===e){let e="function"==typeof t?t(o):t;return n.replace&&Z(e)?e:{...o,...e}}return o}))};return{getNodes:()=>n.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=n.getState();return e.map(e=>({...e}))},getEdge:e=>n.getState().edgeLookup.get(e),setNodes:t,setEdges:r,addNodes:e=>{let t=Array.isArray(e)?e:[e];o.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];o.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:t=[],transform:o}=n.getState(),[r,i,a]=o;return{nodes:e.map(e=>({...e})),edges:t.map(e=>({...e})),viewport:{x:r,y:i,zoom:a}}},deleteElements:async({nodes:e=[],edges:t=[]})=>{let{nodes:o,edges:r,onNodesDelete:i,onEdgesDelete:a,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:d,onBeforeDelete:c}=n.getState(),{nodes:u,edges:h}=await q({nodesToRemove:e,edgesToRemove:t,nodes:o,edges:r,onBeforeDelete:c}),f=h.length>0,g=u.length>0;if(f){let e=h.map(t6);a?.(h),l(e)}if(g){let e=u.map(t6);i?.(u),s(e)}return(g||f)&&d?.({nodes:u,edges:h}),{deletedNodes:u,deletedEdges:h}},getIntersectingNodes:(e,t=!0,o)=>{let r=ec(e),a=r?e:i(e),s=void 0!==o;return a?(o||n.getState().nodes).filter(o=>{let i=n.getState().nodeLookup.get(o.id);if(i&&!r&&(o.id===e.id||!i.internals.positionAbsolute))return!1;let l=ea(s?o:i),d=ed(l,a);return t&&d>0||d>=l.width*l.height||d>=a.width*a.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let o=ec(e)?e:i(e);if(!o)return!1;let r=ed(o,t);return n&&r>0||r>=t.width*t.height||r>=o.width*o.height},updateNode:a,updateNodeData:(e,t,n={replace:!1})=>{a(e,e=>{let o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},getNodesBounds:e=>{let{nodeLookup:t,nodeOrigin:o}=n.getState();return((e,t={nodeOrigin:[0,0]})=>0===e.length?{x:0,y:0,width:0,height:0}:ei(e.reduce((e,n)=>{let o="string"==typeof n,r=t.nodeLookup||o?void 0:n;return t.nodeLookup&&(r=o?t.nodeLookup.get(n):X(n)?n:t.nodeLookup.get(n.id)),eo(e,r?es(r,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})))(e,{nodeLookup:t,nodeOrigin:o})},getHandleConnections:({type:e,id:t,nodeId:o})=>Array.from(n.getState().connectionLookup.get(`${o}-${e}${t?`-${t}`:""}`)?.values()??[]),getNodeConnections:({type:e,handleId:t,nodeId:o})=>Array.from(n.getState().connectionLookup.get(`${o}${e?t?`-${e}-${t}`:`-${e}`:""}`)?.values()??[]),fitView:async e=>{let t,r,i=n.getState().fitViewResolver??{promise:new Promise((e,n)=>{t=e,r=n}),resolve:t,reject:r};return n.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:i}),o.nodeQueue.push(e=>[...e]),i.promise}}},[]);return(0,x.useMemo)(()=>({...i,...t,viewportInitialized:r}),[r])}let na=e=>e.selected,ns="u">typeof window?window:void 0,nl={position:"absolute",width:"100%",height:"100%",top:0,left:0},nd=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function nc({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:i=c.Free,zoomOnDoubleClick:a=!0,panOnDrag:s=!0,defaultViewport:l,translateExtent:d,minZoom:u,maxZoom:h,zoomActivationKeyCode:f,preventScrolling:g=!0,children:p,noWheelClassName:m,noPanClassName:v,onViewportChange:b,isControlledViewport:w,paneClickDistance:S,selectionOnDrag:C}){let _,N=tM(),M=(0,x.useRef)(null),{userSelectionActive:j,lib:O,connectionInProgress:P}=tN(nd,tE),I=tJ(f),z=(0,x.useRef)();_=tM(),(0,x.useEffect)(()=>{let e=()=>{if(!M.current||!(M.current.checkVisibility?.()??!0))return!1;let e=eC(M.current);(0===e.height||0===e.width)&&_.getState().onError?.("004","The parent container needs a width and a height to render the graph."),_.setState({width:e.width||500,height:e.height||500})};if(M.current){e(),window.addEventListener("resize",e);let t=new ResizeObserver(()=>e());return t.observe(M.current),()=>{window.removeEventListener("resize",e),t&&M.current&&t.unobserve(M.current)}}},[]);let $=(0,x.useCallback)(e=>{b?.({x:e[0],y:e[1],zoom:e[2]}),w||N.setState({transform:e})},[b,w]);return(0,x.useEffect)(()=>{if(M.current){z.current=function({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:i,onPanZoomStart:a,onPanZoomEnd:s,onDraggingChange:l}){let d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),h=(0,A.default)().scaleExtent([t,n]).translateExtent(o),f=(0,E.select)(e).call(h);x({x:r.x,y:r.y,zoom:Q(r.zoom,t,n)},[[0,0],[u.width,u.height]],o);let g=f.on("wheel.zoom"),p=f.on("dblclick.zoom");async function m(e,t){return!!f&&new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?D.interpolate:R.interpolateZoom).transform(ta(f,t?.duration,t?.ease,()=>n(!0)),e)})}function y(){h.on("zoom",null)}async function x(e,t,n){let o=tn(e),r=h?.constrain()(o,t,n);return r&&await m(r),r}return h.wheelDelta(ts),{update:function({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:o,panOnScroll:r,panOnDrag:u,panOnScrollMode:m,panOnScrollSpeed:x,preventScrolling:v,zoomOnPinch:b,zoomOnScroll:w,zoomOnDoubleClick:E,zoomActivationKeyPressed:S,lib:C,onTransformChange:_,connectionInProgress:N,paneClickDistance:M,selectionOnDrag:j}){o&&!d.isZoomingOrPanning&&y();let O=r&&!S&&!o;h.clickDistance(j?1/0:!eu(M)||M<0?0:M);let P=O?function({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:a,onPanZoomStart:s,onPanZoom:l,onPanZoomEnd:d}){return u=>{if(to(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let h=n.property("__zoom").k||1;if(u.ctrlKey&&a){let e=(0,k.pointer)(u),t=h*Math.pow(2,ts(u));o.scaleTo(n,t,e,u);return}let f=1===u.deltaMode?20:1,g=r===c.Vertical?0:u.deltaX*f,p=r===c.Horizontal?0:u.deltaY*f;!ex()&&u.shiftKey&&r!==c.Vertical&&(g=u.deltaY*f,p=0),o.translateBy(n,-(g/h)*i,-(p/h)*i,{internal:!0});let m=tt(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(u,m),e.panScrollTimeout=setTimeout(()=>{d?.(u,m),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,m))}}({zoomPanValues:d,noWheelClassName:e,d3Selection:f,d3Zoom:h,panOnScrollMode:m,panOnScrollSpeed:x,zoomOnPinch:b,onPanZoomStart:a,onPanZoom:i,onPanZoomEnd:s}):function({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){let i="wheel"===o.type,a=!t&&i&&!o.ctrlKey,s=to(o,e);if(o.ctrlKey&&i&&s&&o.preventDefault(),a||s)return null;o.preventDefault(),n.call(this,o,r)}}({noWheelClassName:e,preventScrolling:v,d3ZoomHandler:g});f.on("wheel.zoom",P,{passive:!1});let I=function({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;let r=tt(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}({zoomPanValues:d,onDraggingChange:l,onPanZoomStart:a});h.on("start",I);let A=function({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!!(n&&tr(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,tt(i.transform))}}({zoomPanValues:d,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:i,onTransformChange:_});h.on("zoom",A);let z=function({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&tr(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){let t=tt(a.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,t)},150*!!n)}}}({zoomPanValues:d,panOnDrag:u,panOnScroll:r,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:l});h.on("end",z);let L=function({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:s,noPanClassName:l,lib:d,connectionInProgress:c}){return u=>{let h=e||t,f=n&&u.ctrlKey,g="wheel"===u.type;if(1===u.button&&"mousedown"===u.type&&(to(u,`${d}-flow__node`)||to(u,`${d}-flow__edge`)))return!0;if(!o&&!h&&!r&&!i&&!n||a||c&&!g||to(u,s)&&g||to(u,l)&&(!g||r&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&"touchstart"===u.type&&u.touches?.length>1)return u.preventDefault(),!1;if(!h&&!r&&!f&&g||!o&&("mousedown"===u.type||"touchstart"===u.type)||Array.isArray(o)&&!o.includes(u.button)&&"mousedown"===u.type)return!1;let p=Array.isArray(o)&&o.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&p}}({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:w,panOnScroll:r,zoomOnDoubleClick:E,zoomOnPinch:b,userSelectionActive:o,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:N});h.filter(L),E?f.on("dblclick.zoom",p):f.on("dblclick.zoom",null)},destroy:y,setViewport:async function e(e,t){let n=tn(e);return await m(n,t),n},setViewportConstrained:x,getViewport:function(){let e=f?(0,L.default)(f.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}},scaleTo:async function e(e,t){return!!f&&new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?D.interpolate:R.interpolateZoom).scaleTo(ta(f,t?.duration,t?.ease,()=>n(!0)),e)})},scaleBy:async function e(e,t){return!!f&&new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?D.interpolate:R.interpolateZoom).scaleBy(ta(f,t?.duration,t?.ease,()=>n(!0)),e)})},setScaleExtent:function(e){h?.scaleExtent(e)},setTranslateExtent:function(e){h?.translateExtent(e)},syncViewport:function(e){if(f){let t=tn(e),n=f.property("__zoom");(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&h?.transform(f,t,null,{sync:!0})}},setClickDistance:function(e){let t=!eu(e)||e<0?0:e;h?.clickDistance(t)}}}({domNode:M.current,minZoom:u,maxZoom:h,translateExtent:d,viewport:l,onDraggingChange:e=>N.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:o}=N.getState();o?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:o}=N.getState();o?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:o}=N.getState();o?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=z.current.getViewport();return N.setState({panZoom:z.current,transform:[e,t,n],domNode:M.current.closest(".react-flow")}),()=>{z.current?.destroy()}}},[]),(0,x.useEffect)(()=>{z.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:i,zoomOnDoubleClick:a,panOnDrag:s,zoomActivationKeyPressed:I,preventScrolling:g,noPanClassName:v,userSelectionActive:j,noWheelClassName:m,lib:O,onTransformChange:$,connectionInProgress:P,selectionOnDrag:C,paneClickDistance:S})},[e,t,n,o,r,i,a,s,I,g,v,j,m,O,$,P,C,S]),(0,y.jsx)("div",{className:"react-flow__renderer",ref:M,style:nl,children:p})}let nu=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function nh(){let{userSelectionActive:e,userSelectionRect:t}=tN(nu,tE);return e&&t?(0,y.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}let nf=(e,t)=>n=>{n.target===t.current&&e?.(n)},ng=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function np({isSelecting:e,selectionKeyPressed:t,selectionMode:n=u.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:i,selectionOnDrag:a,onSelectionStart:s,onSelectionEnd:l,onPaneClick:d,onPaneContextMenu:c,onPaneScroll:h,onPaneMouseEnter:f,onPaneMouseMove:g,onPaneMouseLeave:p,children:m}){let v=(0,x.useRef)(0),w=tM(),{userSelectionActive:E,elementsSelectable:k,dragging:S,connectionInProgress:C,panBy:_,autoPanSpeed:N}=tN(ng,tE),M=k&&(e||E),j=(0,x.useRef)(null),O=(0,x.useRef)(),P=(0,x.useRef)(new Set),I=(0,x.useRef)(new Set),A=(0,x.useRef)(!1),z=(0,x.useRef)({x:0,y:0}),L=(0,x.useRef)(!1),R=e=>{if(A.current||C){A.current=!1;return}d?.(e),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})};function D(e,t){let{userSelectionRect:o}=w.getState();if(!o)return;let{transform:r,nodeLookup:i,edgeLookup:a,connectionLookup:s,triggerNodeChanges:l,triggerEdgeChanges:d,defaultEdgeOptions:c}=w.getState(),h={x:o.startX,y:o.startY},{x:f,y:g}=ep(h,r),p={startX:h.x,startY:h.y,x:e<f?e:f,y:t<g?t:g,width:Math.abs(e-f),height:Math.abs(t-g)},m=P.current,y=I.current;P.current=new Set(Y(i,p,r,n===u.Partial,!0).map(e=>e.id)),I.current=new Set;let x=c?.selectable??!0;for(let e of P.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=a.get(e);t&&(t.selectable??x)&&I.current.add(e)}}ek(m,P.current)||l(t5(i,P.current,!0)),ek(y,I.current)||d(t5(a,I.current)),w.setState({userSelectionRect:p,userSelectionActive:!0,nodesSelectionActive:!1})}let $=()=>{cancelAnimationFrame(v.current),v.current=0,L.current=!1};(0,x.useEffect)(()=>()=>$(),[]);let T=!0===o||Array.isArray(o)&&o.includes(0);return(0,y.jsxs)("div",{className:b(["react-flow__pane",{draggable:T,dragging:S,selection:e}]),onClick:M?void 0:nf(R,j),onContextMenu:nf(e=>{Array.isArray(o)&&o?.includes(2)?e.preventDefault():c?.(e)},j),onWheel:nf(h?e=>h(e):void 0,j),onPointerEnter:M?void 0:f,onPointerMove:M?e=>{let{userSelectionRect:n,transform:o,resetSelectedElements:a}=w.getState();if(!O.current||!n)return;let{x:l,y:d}=ej(e.nativeEvent,O.current);z.current={x:l,y:d};let c=ep({x:n.startX,y:n.startY},o);if(!A.current){if(Math.hypot(l-c.x,d-c.y)<=(t?0:i))return;a(),s?.(e)}A.current=!0,L.current||(!function e(){if(!r||!O.current)return;let[t,n]=en(z.current,O.current,N);_({x:t,y:n}).then(t=>{if(!A.current||!t){v.current=requestAnimationFrame(e);return}let{x:n,y:o}=z.current;D(n,o),v.current=requestAnimationFrame(e)})}(),L.current=!0),D(l,d)}:g,onPointerUp:M?e=>{0===e.button&&(e.target?.releasePointerCapture?.(e.pointerId),!E&&e.target===j.current&&w.getState().userSelectionRect&&R?.(e),w.setState({userSelectionActive:!1,userSelectionRect:null}),A.current&&(l?.(e),w.setState({nodesSelectionActive:P.current.size>0})),$())}:void 0,onPointerCancel:M?e=>{e.target?.releasePointerCapture?.(e.pointerId),$()}:void 0,onPointerDownCapture:M?n=>{let{domNode:o,transform:r}=w.getState();if(O.current=o?.getBoundingClientRect(),!O.current)return;let i=n.target===j.current;if(!i&&n.target.closest(".nokey")||!e||!(a&&i||t)||0!==n.button||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),A.current=!1;let{x:s,y:l}=ej(n.nativeEvent,O.current),d=eg({x:s,y:l},r);w.setState({userSelectionRect:{width:0,height:0,startX:d.x,startY:d.y,x:s,y:l}}),i||(n.stopPropagation(),n.preventDefault())}:void 0,onClickCapture:M?e=>{A.current&&(e.stopPropagation(),A.current=!1)}:void 0,onPointerLeave:p,ref:j,style:nl,children:[m,(0,y.jsx)(nh,{})]})}function nm({id:e,store:t,unselect:n=!1,nodeRef:o}){let r,{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:s,nodeLookup:l,onError:d}=t.getState(),c=l.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&s)&&(a({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):i([e])):d?.("012",(r=e,`Node with id "${r}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`))}function ny({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,nodeClickDistance:a}){let s=tM(),[l,d]=(0,x.useState)(!1),c=(0,x.useRef)();return(0,x.useEffect)(()=>{c.current=function({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},a=0,s=new Map,l=!1,d={x:0,y:0},c=null,u=!1,h=null,f=!1,g=!1,p=null;return{update:function({noDragClassName:m,handleSelector:y,domNode:x,isSelectable:v,nodeId:b,nodeClickDistance:w=0}){function k({x:e,y:n}){let{nodeLookup:r,nodeExtent:a,snapGrid:l,snapToGrid:d,nodeOrigin:c,onNodeDrag:u,onSelectionDrag:h,onError:f,updateNodePositions:m}=t();i={x:e,y:n};let y=!1,x=s.size>1,v=x&&a?er(K(s)):null,w=x&&d?function({dragItems:e,snapGrid:t,x:n,y:o}){let r=e.values().next().value;if(!r)return null;let i={x:n-r.distance.x,y:o-r.distance.y},a=ef(i,t);return{x:a.x-i.x,y:a.y-i.y}}({dragItems:s,snapGrid:l,x:e,y:n}):null;for(let[t,o]of s){if(!r.has(t))continue;let i={x:e-o.distance.x,y:n-o.distance.y};d&&(i=w?{x:Math.round(i.x+w.x),y:Math.round(i.y+w.y)}:ef(i,l));let s=null;if(x&&a&&!o.extent&&v){let{positionAbsolute:e}=o.internals,t=e.x-v.x+a[0][0],n=e.x+o.measured.width-v.x2+a[1][0];s=[[t,e.y-v.y+a[0][1]],[n,e.y+o.measured.height-v.y2+a[1][1]]]}let{position:u,positionAbsolute:h}=G({nodeId:t,nextPosition:i,nodeLookup:r,nodeExtent:s||a,nodeOrigin:c,onError:f});y=y||o.position.x!==u.x||o.position.y!==u.y,o.position=u,o.internals.positionAbsolute=h}if(g=g||y,y&&(m(s,!0),p&&(o||u||!b&&h))){let[e,t]=e4({nodeId:b,dragItems:s,nodeLookup:r});o?.(p,s,e,t),u?.(p,e,t),b||h?.(p,t)}}async function S(){if(!c)return;let{transform:e,panBy:n,autoPanSpeed:o,autoPanOnNodeDrag:r}=t();if(!r){l=!1,cancelAnimationFrame(a);return}let[s,u]=en(d,c,o);(0!==s||0!==u)&&(i.x=(i.x??0)-s/e[2],i.y=(i.y??0)-u/e[2],await n({x:s,y:u})&&k(i)),a=requestAnimationFrame(S)}function C(o){let{nodeLookup:r,multiSelectionActive:a,nodesDraggable:l,transform:d,snapGrid:h,snapToGrid:f,selectNodesOnDrag:g,onNodeDragStart:p,onSelectionDragStart:m,unselectNodesAndEdges:y}=t();u=!0,g&&v||a||!b||r.get(b)?.selected||y(),v&&g&&b&&e?.(b);let x=eS(o.sourceEvent,{transform:d,snapGrid:h,snapToGrid:f,containerBounds:c});if(i=x,(s=function(e,t,n,o){let r=new Map;for(let[i,a]of e)if((a.selected||a.id===o)&&(!a.parentId||!function e(t,n){if(!t.parentId)return!1;let o=n.get(t.parentId);return!!o&&(!!o.selected||e(o,n))}(a,e))&&(a.draggable||t&&void 0===a.draggable)){let t=e.get(i);t&&r.set(i,{id:i,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return r}(r,l,x,b)).size>0&&(n||p||!b&&m)){let[e,t]=e4({nodeId:b,dragItems:s,nodeLookup:r});n?.(o.sourceEvent,s,e,t),p?.(o.sourceEvent,e,t),b||m?.(o.sourceEvent,t)}}h=(0,E.select)(x);let _=I().clickDistance(w).on("start",e=>{let{domNode:n,nodeDragThreshold:o,transform:r,snapGrid:a,snapToGrid:s}=t();c=n?.getBoundingClientRect()||null,f=!1,g=!1,p=e.sourceEvent,0===o&&C(e),i=eS(e.sourceEvent,{transform:r,snapGrid:a,snapToGrid:s,containerBounds:c}),d=ej(e.sourceEvent,c)}).on("drag",e=>{let{autoPanOnNodeDrag:n,transform:o,snapGrid:r,snapToGrid:a,nodeDragThreshold:h,nodeLookup:g}=t(),m=eS(e.sourceEvent,{transform:o,snapGrid:r,snapToGrid:a,containerBounds:c});if(p=e.sourceEvent,("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1||b&&!g.has(b))&&(f=!0),!f){if(!l&&n&&u&&(l=!0,S()),!u){let t=ej(e.sourceEvent,c),n=t.x-d.x,o=t.y-d.y;Math.sqrt(n*n+o*o)>h&&C(e)}(i.x!==m.xSnapped||i.y!==m.ySnapped)&&s&&u&&(d=ej(e.sourceEvent,c),k(m))}}).on("end",e=>{if(!u||f){f&&s.size>0&&t().updateNodePositions(s,!1);return}if(l=!1,u=!1,cancelAnimationFrame(a),s.size>0){let{nodeLookup:n,updateNodePositions:o,onNodeDragStop:i,onSelectionDragStop:a}=t();if(g&&(o(s,!1),g=!1),r||i||!b&&a){let[t,o]=e4({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});r?.(e.sourceEvent,s,t,o),i?.(e.sourceEvent,t,o),b||a?.(e.sourceEvent,o)}}}).filter(e=>{let t=e.target;return!e.button&&(!m||!e5(t,`.${m}`,x))&&(!y||e5(t,y,x))});h.call(_)},destroy:function(){h?.on(".drag",null)}}}({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{nm({id:t,store:s,nodeRef:e})},onDragStart:()=>{d(!0)},onDragStop:()=>{d(!1)}})},[]),(0,x.useEffect)(()=>{if(!t&&e.current&&c.current)return c.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:a}),()=>{c.current?.destroy()}},[n,o,t,i,e,r,a]),l}function nx(){let e=tM();return(0,x.useCallback)(t=>{let{nodeExtent:n,snapToGrid:o,snapGrid:r,nodesDraggable:i,onError:a,updateNodePositions:s,nodeLookup:l,nodeOrigin:d}=e.getState(),c=new Map,u=e=>e.selected&&(e.draggable||i&&void 0===e.draggable),h=o?r[0]:5,f=o?r[1]:5,g=t.direction.x*h*t.factor,p=t.direction.y*f*t.factor;for(let[,e]of l){if(!u(e))continue;let t={x:e.internals.positionAbsolute.x+g,y:e.internals.positionAbsolute.y+p};o&&(t=ef(t,r));let{position:i,positionAbsolute:s}=G({nodeId:e.id,nextPosition:t,nodeLookup:l,nodeExtent:n,nodeOrigin:d,onError:a});e.position=i,e.internals.positionAbsolute=s,c.set(e.id,e)}s(c)},[])}let nv=(0,x.createContext)(null),nb=nv.Provider;nv.Consumer;let nw=()=>(0,x.useContext)(nv),nE=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),nk=(0,x.memo)(t9(function({type:e="source",position:t=g.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:a,onConnect:s,children:l,className:c,onMouseDown:u,onTouchStart:h,...f},p){let m=a||null,x="target"===e,v=tM(),w=nw(),{connectOnClick:E,noPanClassName:k,rfId:S}=tN(nE,tE),{connectingFrom:C,connectingTo:_,clickConnecting:N,isPossibleEndHandle:M,connectionInProcess:j,clickConnectionInProcess:O,valid:P}=tN(t=>{let{connectionClickStartHandle:n,connectionMode:o,connection:r}=t,{fromHandle:i,toHandle:a,isValid:s}=r,l=a?.nodeId===w&&a?.id===m&&a?.type===e;return{connectingFrom:i?.nodeId===w&&i?.id===m&&i?.type===e,connectingTo:l,clickConnecting:n?.nodeId===w&&n?.id===m&&n?.type===e,isPossibleEndHandle:o===d.Strict?i?.type!==e:w!==i?.nodeId||m!==i?.id,connectionInProcess:!!i,clickConnectionInProcess:!!n,valid:l&&s}},tE);w||v.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let I=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=v.getState(),r={...t,...e};if(o){let{edges:e,setEdges:t,onError:n}=v.getState();t(function(e,t,n={}){return((e,t,n={})=>{let o,r;if(!e.source||!e.target)return n.onError?.("006","Can't create edge. An edge needs a source and a target."),t;let i=n.getEdgeId||eR;return(r=o=Z(e)?{...e}:{...e,id:i(e)},t.some(e=>e.source===r.source&&e.target===r.target&&(e.sourceHandle===r.sourceHandle||!e.sourceHandle&&!r.sourceHandle)&&(e.targetHandle===r.targetHandle||!e.targetHandle&&!r.targetHandle)))?t:(null===o.sourceHandle&&delete o.sourceHandle,null===o.targetHandle&&delete o.targetHandle,t.concat(o))})(e,t,{...n,onError:n.onError??t7})}(r,e,{onError:n}))}n?.(r),s?.(r)},A=e=>{if(!w)return;let t="clientX"in e.nativeEvent;if(r&&(t&&0===e.button||!t)){let t=v.getState();te(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:x,handleId:m,nodeId:w,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>v.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:I,isValidConnection:n||((...e)=>v.getState().isValidConnection?.(...e)??!0),getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):h?.(e)};return(0,y.jsx)("div",{"data-handleid":m,"data-nodeid":w,"data-handlepos":t,"data-id":`${S}-${w}-${m}-${e}`,className:b(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",k,c,{source:!x,target:x,connectable:o,connectablestart:r,connectableend:i,clickconnecting:N,connectingfrom:C,connectingto:_,valid:P,connectionindicator:o&&(!j||M)&&(j||O?i:r)}]),onMouseDown:A,onTouchStart:A,onClick:E?t=>{let{onClickConnectStart:o,onClickConnectEnd:i,connectionClickStartHandle:a,connectionMode:s,isValidConnection:l,lib:d,rfId:c,nodeLookup:u,connection:h}=v.getState();if(!w||!a&&!r)return;if(!a){o?.(t.nativeEvent,{nodeId:w,handleId:m,handleType:e}),v.setState({connectionClickStartHandle:{nodeId:w,type:e,id:m}});return}let f=e_(t.target),g=n||l,{connection:p,isValid:y}=e9(t.nativeEvent,{handle:{nodeId:w,id:m,type:e},connectionMode:s,fromNodeId:a.nodeId,fromHandleId:a.id||null,fromType:a.type,isValidConnection:g,flowId:c,doc:f,lib:d,nodeLookup:u});y&&p&&I(p);let x=structuredClone(h);delete x.inProgress,x.toPosition=x.toHandle?x.toHandle.position:null,i?.(t,x),v.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:l})})),nS={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},nC={input:function({data:e,isConnectable:t,sourcePosition:n=g.Bottom}){return(0,y.jsxs)(y.Fragment,{children:[e?.label,(0,y.jsx)(nk,{type:"source",position:n,isConnectable:t})]})},default:function({data:e,isConnectable:t,targetPosition:n=g.Top,sourcePosition:o=g.Bottom}){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(nk,{type:"target",position:n,isConnectable:t}),e?.label,(0,y.jsx)(nk,{type:"source",position:o,isConnectable:t})]})},output:function({data:e,isConnectable:t,targetPosition:n=g.Top}){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(nk,{type:"target",position:n,isConnectable:t}),e?.label]})},group:function(){return null}},n_=e=>{let{width:t,height:n,x:o,y:r}=K(e.nodeLookup,{filter:e=>!!e.selected});return{width:eu(t)?t:null,height:eu(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function nN({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let o=tM(),{width:r,height:i,transformString:a,userSelectionActive:s}=tN(n_,tE),l=nx(),d=(0,x.useRef)(null);(0,x.useEffect)(()=>{n||d.current?.focus({preventScroll:!0})},[n]);let c=!s&&null!==r&&null!==i;if(ny({nodeRef:d,disabled:!c}),!c)return null;let u=e?t=>{e(t,o.getState().nodes.filter(e=>e.selected))}:void 0;return(0,y.jsx)("div",{className:b(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:(0,y.jsx)("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(nS,e.key)&&(e.preventDefault(),l({direction:nS[e.key],factor:e.shiftKey?4:1}))},style:{width:r,height:i}})})}let nM="u">typeof window?window:void 0,nj=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function nO({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,paneClickDistance:s,deleteKeyCode:l,selectionKeyCode:d,selectionOnDrag:c,selectionMode:u,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:g,panActivationKeyCode:p,zoomActivationKeyCode:m,elementsSelectable:v,zoomOnScroll:b,zoomOnPinch:w,panOnScroll:E,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:_,autoPanOnSelection:N,defaultViewport:M,translateExtent:j,minZoom:O,maxZoom:P,preventScrolling:I,onSelectionContextMenu:A,noWheelClassName:z,noPanClassName:L,disableKeyboardA11y:R,onViewportChange:D,isControlledViewport:$}){let{nodesSelectionActive:T,userSelectionActive:B}=tN(nj,tE),H=tJ(d,{target:nM}),V=tJ(p,{target:nM}),F=V||_,Z=V||E,X=c&&!0!==F,W=H||B||X;return!function({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=tM(),{deleteElements:o}=ni(),r=tJ(e,{actInsideInputWithModifier:!1}),i=tJ(t,{target:ns});(0,x.useEffect)(()=>{if(r){let{edges:e,nodes:t}=n.getState();o({nodes:t.filter(na),edges:e.filter(na)}),n.setState({nodesSelectionActive:!1})}},[r]),(0,x.useEffect)(()=>{n.setState({multiSelectionActive:i})},[i])}({deleteKeyCode:l,multiSelectionKeyCode:g}),(0,y.jsx)(nc,{onPaneContextMenu:i,elementsSelectable:v,zoomOnScroll:b,zoomOnPinch:w,panOnScroll:Z,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!H&&F,defaultViewport:M,translateExtent:j,minZoom:O,maxZoom:P,zoomActivationKeyCode:m,preventScrolling:I,noWheelClassName:z,noPanClassName:L,onViewportChange:D,isControlledViewport:$,paneClickDistance:s,selectionOnDrag:X,children:(0,y.jsxs)(np,{onSelectionStart:h,onSelectionEnd:f,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:F,autoPanOnSelection:N,isSelecting:!!W,selectionMode:u,selectionKeyPressed:H,paneClickDistance:s,selectionOnDrag:X,children:[e,T&&(0,y.jsx)(nN,{onSelectionContextMenu:A,noPanClassName:L,disableKeyboardA11y:R})]})})}nO.displayName="FlowRenderer";let nP=(0,x.memo)(nO),nI=e=>e.updateNodeInternals;var nA=(0,x.memo)(function({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:i,onDoubleClick:a,nodesDraggable:s,elementsSelectable:l,nodesConnectable:d,nodesFocusable:c,resizeObserver:u,noDragClassName:h,noPanClassName:f,disableKeyboardA11y:g,rfId:p,nodeTypes:m,nodeClickDistance:v,onError:w}){let E,{node:k,internals:S,isParent:C}=tN(t=>{let n=t.nodeLookup.get(e),o=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:o}},tE),_=k.type||"default",N=m?.[_]||nC[_];void 0===N&&(w?.("003",(E=_,`Node type "${E}" not found. Using fallback type "default".`)),_="default",N=m?.default||nC.default);let M=!!(k.draggable||s&&void 0===k.draggable),j=!!(k.selectable||l&&void 0===k.selectable),O=!!(k.connectable||d&&void 0===k.connectable),P=!!(k.focusable||c&&void 0===k.focusable),I=tM(),A=ew(k),z=function({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){let r=tM(),i=(0,x.useRef)(null),a=(0,x.useRef)(null),s=(0,x.useRef)(e.sourcePosition),l=(0,x.useRef)(e.targetPosition),d=(0,x.useRef)(t),c=n&&!!e.internals.handleBounds;return(0,x.useEffect)(()=>{!i.current||e.hidden||c&&a.current===i.current||(a.current&&o?.unobserve(a.current),o?.observe(i.current),a.current=i.current)},[c,e.hidden]),(0,x.useEffect)(()=>()=>{a.current&&(o?.unobserve(a.current),a.current=null)},[]),(0,x.useEffect)(()=>{if(i.current){let n=d.current!==t,o=s.current!==e.sourcePosition,a=l.current!==e.targetPosition;(n||o||a)&&(d.current=t,s.current=e.sourcePosition,l.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}({node:k,nodeType:_,hasDimensions:A,resizeObserver:u}),L=ny({nodeRef:z,disabled:k.hidden||!M,noDragClassName:h,handleSelector:k.dragHandle,nodeId:e,isSelectable:j,nodeClickDistance:v}),R=nx();if(k.hidden)return null;let D=eb(k),$=void 0===k.internals.handleBounds?{width:k.width??k.initialWidth??k.style?.width,height:k.height??k.initialHeight??k.style?.height}:{width:k.width??k.style?.width,height:k.height??k.style?.height},B=j||M||t||n||o||r,H=n?e=>n(e,{...S.userNode}):void 0,V=o?e=>o(e,{...S.userNode}):void 0,F=r?e=>r(e,{...S.userNode}):void 0,Z=i?e=>i(e,{...S.userNode}):void 0,X=a?e=>a(e,{...S.userNode}):void 0;return(0,y.jsx)("div",{className:b(["react-flow__node",`react-flow__node-${_}`,{[f]:M},k.className,{selected:k.selected,selectable:j,parent:C,draggable:M,dragging:L}]),ref:z,style:{zIndex:S.z,transform:`translate(${S.positionAbsolute.x}px,${S.positionAbsolute.y}px)`,pointerEvents:B?"all":"none",visibility:A?"visible":"hidden",...k.style,...$},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:V,onMouseLeave:F,onContextMenu:Z,onClick:n=>{let{selectNodesOnDrag:o,nodeDragThreshold:r}=I.getState();j&&(!o||!M||r>0)&&nm({id:e,store:I,nodeRef:z}),t&&t(n,{...S.userNode})},onDoubleClick:X,onKeyDown:P?t=>{if(!eM(t.nativeEvent)&&!g){if(T.includes(t.key)&&j)nm({id:e,store:I,unselect:"Escape"===t.key,nodeRef:z});else if(M&&k.selected&&Object.prototype.hasOwnProperty.call(nS,t.key)){t.preventDefault();let{ariaLabelConfig:e}=I.getState();I.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:t.key.replace("Arrow","").toLowerCase(),x:~~S.positionAbsolute.x,y:~~S.positionAbsolute.y})}),R({direction:nS[t.key],factor:t.shiftKey?4:1})}}}:void 0,tabIndex:P?0:void 0,onFocus:P?()=>{if(g||!z.current?.matches(":focus-visible"))return;let{transform:t,width:n,height:o,autoPanOnNodeFocus:r,setCenter:i}=I.getState();!r||Y(new Map([[e,k]]),{x:0,y:0,width:n,height:o},t,!0).length>0||i(k.position.x+D.width/2,k.position.y+D.height/2,{zoom:t[2]})}:void 0,role:k.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${tP}-${p}`,"aria-label":k.ariaLabel,...k.domAttributes,children:(0,y.jsx)(nb,{value:e,children:(0,y.jsx)(N,{id:e,data:k.data,type:_,positionAbsoluteX:S.positionAbsolute.x,positionAbsoluteY:S.positionAbsolute.y,selected:k.selected??!1,selectable:j,draggable:M,deletable:k.deletable??!0,isConnectable:O,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:L,dragHandle:k.dragHandle,zIndex:S.z,parentId:k.parentId,...D})})})});let nz=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function nL(e){var t;let{nodesDraggable:n,nodesConnectable:o,nodesFocusable:r,elementsSelectable:i,onError:a}=tN(nz,tE),s=(t=e.onlyRenderVisibleElements,tN((0,x.useCallback)(e=>t?Y(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(e=>e.id):Array.from(e.nodeLookup.keys()),[t]),tE)),l=function(){let e=tN(nI),[t]=(0,x.useState)(()=>"u"<typeof ResizeObserver?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute("data-id");n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,x.useEffect)(()=>()=>{t?.disconnect()},[t]),t}();return(0,y.jsx)("div",{className:"react-flow__nodes",style:nl,children:s.map(t=>(0,y.jsx)(nA,{id:t,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:n,nodesConnectable:o,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:a},t))})}nL.displayName="NodeRenderer";let nR=(0,x.memo)(nL),nD={[f.Arrow]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,y.jsx)("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[f.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,y.jsx)("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},n$=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:s="auto-start-reverse"})=>{let l,d=(l=tM(),(0,x.useMemo)(()=>{let e;return Object.prototype.hasOwnProperty.call(nD,t)?nD[t]:(l.getState().onError?.("009",(e=t,`Marker type "${e}" doesn't exist.`)),null)},[t]));return d?(0,y.jsx)("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:s,refX:"0",refY:"0",children:(0,y.jsx)(d,{color:n,strokeWidth:a})}):null},nT=({defaultColor:e,rfId:t})=>{let n=tN(e=>e.edges),o=tN(e=>e.defaultEdgeOptions),r=(0,x.useMemo)(()=>(function(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){let i=new Set;return e.reduce((e,a)=>([a.markerStart||o,a.markerEnd||r].forEach(o=>{if(o&&"object"==typeof o){let r=eW(o,t);i.has(r)||(e.push({id:r,color:o.color||n,...o}),i.add(r))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))})(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?(0,y.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,y.jsx)("defs",{children:r.map(e=>(0,y.jsx)(n$,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};nT.displayName="MarkerDefinitions";var nB=(0,x.memo)(nT);function nH({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:a=[2,4],labelBgBorderRadius:s=2,children:l,className:d,...c}){let[u,h]=(0,x.useState)({x:1,y:0,width:0,height:0}),f=b(["react-flow__edge-textwrapper",d]),g=(0,x.useRef)(null);return((0,x.useEffect)(()=>{if(g.current){let e=g.current.getBBox();h({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n)?(0,y.jsxs)("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:f,visibility:u.width?"visible":"hidden",...c,children:[r&&(0,y.jsx)("rect",{width:u.width+2*a[0],x:-a[0],y:-a[1],height:u.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:s,ry:s}),(0,y.jsx)("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:o,children:n}),l]}):null}nH.displayName="EdgeText";let nV=(0,x.memo)(nH);function nF({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l,interactionWidth:d=20,...c}){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("path",{...c,d:e,fill:"none",className:b(["react-flow__edge-path",c.className])}),d?(0,y.jsx)("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:d,className:"react-flow__edge-interaction"}):null,o&&eu(t)&&eu(n)?(0,y.jsx)(nV,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l}):null]})}function nZ({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===g.Left||e===g.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function nX({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:o,targetY:r,targetPosition:i=g.Top}){let[a,s]=nZ({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,d]=nZ({pos:i,x1:o,y1:r,x2:e,y2:t}),[c,u,h,f]=eP({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:d});return[`M${e},${t} C${a},${s} ${l},${d} ${o},${r}`,c,u,h,f]}function nW(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a,targetPosition:s,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m,interactionWidth:x})=>{let[v,b,w]=nX({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s}),E=e.isInternal?void 0:t;return(0,y.jsx)(nF,{id:E,path:v,labelX:b,labelY:w,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m,interactionWidth:x})})}let nK=nW({isInternal:!1}),nY=nW({isInternal:!0});function nU(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,sourcePosition:f=g.Bottom,targetPosition:p=g.Top,markerEnd:m,markerStart:x,pathOptions:v,interactionWidth:b})=>{let[w,E,k]=eH({sourceX:n,sourceY:o,sourcePosition:f,targetX:r,targetY:i,targetPosition:p,borderRadius:v?.borderRadius,offset:v?.offset,stepPosition:v?.stepPosition}),S=e.isInternal?void 0:t;return(0,y.jsx)(nF,{id:S,path:w,labelX:E,labelY:k,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,markerEnd:m,markerStart:x,interactionWidth:b})})}nK.displayName="SimpleBezierEdge",nY.displayName="SimpleBezierEdgeInternal";let nG=nU({isInternal:!1}),nq=nU({isInternal:!0});function nQ(e){return(0,x.memo)(({id:t,...n})=>{let o=e.isInternal?void 0:t;return(0,y.jsx)(nG,{...n,id:o,pathOptions:(0,x.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}nG.displayName="SmoothStepEdge",nq.displayName="SmoothStepEdgeInternal";let nJ=nQ({isInternal:!1}),n0=nQ({isInternal:!0});function n1(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,markerEnd:f,markerStart:g,interactionWidth:p})=>{let[m,x,v]=eD({sourceX:n,sourceY:o,targetX:r,targetY:i}),b=e.isInternal?void 0:t;return(0,y.jsx)(nF,{id:b,path:m,labelX:x,labelY:v,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,markerEnd:f,markerStart:g,interactionWidth:p})})}nJ.displayName="StepEdge",n0.displayName="StepEdgeInternal";let n2=n1({isInternal:!1}),n3=n1({isInternal:!0});function n5(e){return(0,x.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a=g.Bottom,targetPosition:s=g.Top,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:x,pathOptions:v,interactionWidth:b})=>{let[w,E,k]=ez({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s,curvature:v?.curvature}),S=e.isInternal?void 0:t;return(0,y.jsx)(nF,{id:S,path:w,labelX:E,labelY:k,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:x,interactionWidth:b})})}n2.displayName="StraightEdge",n3.displayName="StraightEdgeInternal";let n4=n5({isInternal:!1}),n6=n5({isInternal:!0});n4.displayName="BezierEdge",n6.displayName="BezierEdgeInternal";let n7={default:n6,straight:n3,step:n0,smoothstep:nq,simplebezier:nY},n8={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},n9="react-flow__edgeupdater";function oe({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:a,type:s}){return(0,y.jsx)("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:a,className:b([n9,`${n9}-${s}`]),cx:e===g.Left?t-o:e===g.Right?t+o:t,cy:e===g.Top?n-o:e===g.Bottom?n+o:n,r:o,stroke:"transparent",fill:"transparent"})}function ot({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:a,sourcePosition:s,targetPosition:l,onReconnect:d,onReconnectStart:c,onReconnectEnd:u,setReconnecting:h,setUpdateHover:f}){let g=tM(),p=(e,t)=>{if(0!==e.button)return;let{autoPanOnConnect:o,domNode:r,connectionMode:i,connectionRadius:a,lib:s,onConnectStart:l,cancelConnection:f,nodeLookup:p,rfId:m,panBy:y,updateConnection:x}=g.getState(),v="target"===t.type;te(e.nativeEvent,{autoPanOnConnect:o,connectionMode:i,connectionRadius:a,domNode:r,handleId:t.id,nodeId:t.nodeId,nodeLookup:p,isTarget:v,edgeUpdaterType:t.type,lib:s,flowId:m,cancelConnection:f,panBy:y,isValidConnection:(...e)=>g.getState().isValidConnection?.(...e)??!0,onConnect:e=>d?.(n,e),onConnectStart:(o,r)=>{h(!0),c?.(e,n,t.type),l?.(o,r)},onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),onReconnectEnd:(e,o)=>{h(!1),u?.(e,n,t.type,o)},updateConnection:x,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},m=()=>f(!0),x=()=>f(!1);return(0,y.jsxs)(y.Fragment,{children:[(!0===e||"source"===e)&&(0,y.jsx)(oe,{position:s,centerX:o,centerY:r,radius:t,onMouseDown:e=>p(e,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),onMouseEnter:m,onMouseOut:x,type:"source"}),(!0===e||"target"===e)&&(0,y.jsx)(oe,{position:l,centerX:i,centerY:a,radius:t,onMouseDown:e=>p(e,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),onMouseEnter:m,onMouseOut:x,type:"target"})]})}var on=(0,x.memo)(function({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c,reconnectRadius:u,onReconnect:h,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:v,noPanClassName:w,onError:E,disableKeyboardA11y:k}){let S,C=tN(t=>t.edgeLookup.get(e)),_=tN(e=>e.defaultEdgeOptions),N=(C=_?{..._,...C}:C).type||"default",M=v?.[N]||n7[N];void 0===M&&(E?.("011",(S=N,`Edge type "${S}" not found. Using fallback type "default".`)),N="default",M=v?.default||n7.default);let j=!!(C.focusable||t&&void 0===C.focusable),O=void 0!==h&&(C.reconnectable||n&&void 0===C.reconnectable),P=!!(C.selectable||o&&void 0===C.selectable),I=(0,x.useRef)(null),[A,z]=(0,x.useState)(!1),[L,R]=(0,x.useState)(!1),D=tM(),{zIndex:$,sourceX:B,sourceY:H,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X}=tN((0,x.useCallback)(t=>{let n=t.nodeLookup.get(C.source),o=t.nodeLookup.get(C.target);if(!n||!o)return{zIndex:C.zIndex,...n8};let r=function(e){let{sourceNode:t,targetNode:n}=e;if(!eV(t)||!eV(n))return null;let o=t.internals.handleBounds||eF(t.handles),r=n.internals.handleBounds||eF(n.handles),i=eX(o?.source??[],e.sourceHandle),a=eX(e.connectionMode===d.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!i||!a)return e.onError?.("008",((e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${"source"===e?n:o}", edge id: ${t}.`)(!i?"source":"target",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=i?.position||g.Bottom,l=a?.position||g.Top,c=eZ(t,i,s),u=eZ(n,a,l);return{sourceX:c.x,sourceY:c.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:l}}({id:e,sourceNode:n,targetNode:o,sourceHandle:C.sourceHandle||null,targetHandle:C.targetHandle||null,connectionMode:t.connectionMode,onError:E});return{zIndex:function({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){if("manual"===i)return o;let a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return(r&&n?o+1e3:o)+a}({selected:C.selected,zIndex:C.zIndex,sourceNode:n,targetNode:o,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode}),...r||n8}},[C.source,C.target,C.sourceHandle,C.targetHandle,C.selected,C.zIndex]),tE),W=(0,x.useMemo)(()=>C.markerStart?`url('#${eW(C.markerStart,m)}')`:void 0,[C.markerStart,m]),K=(0,x.useMemo)(()=>C.markerEnd?`url('#${eW(C.markerEnd,m)}')`:void 0,[C.markerEnd,m]);if(C.hidden||null===B||null===H||null===V||null===F)return null;let Y=i?e=>{i(e,{...C})}:void 0,U=a?e=>{a(e,{...C})}:void 0,G=s?e=>{s(e,{...C})}:void 0,q=l?e=>{l(e,{...C})}:void 0,Q=c?e=>{c(e,{...C})}:void 0;return(0,y.jsx)("svg",{style:{zIndex:$},children:(0,y.jsxs)("g",{className:b(["react-flow__edge",`react-flow__edge-${N}`,C.className,w,{selected:C.selected,animated:C.animated,inactive:!P&&!r,updating:A,selectable:P}]),onClick:t=>{let{addSelectedEdges:n,unselectNodesAndEdges:o,multiSelectionActive:i}=D.getState();P&&(D.setState({nodesSelectionActive:!1}),C.selected&&i?(o({nodes:[],edges:[C]}),I.current?.blur()):n([e])),r&&r(t,C)},onDoubleClick:Y,onContextMenu:U,onMouseEnter:G,onMouseMove:q,onMouseLeave:Q,onKeyDown:j?t=>{if(!k&&T.includes(t.key)&&P){let{unselectNodesAndEdges:n,addSelectedEdges:o}=D.getState();"Escape"===t.key?(I.current?.blur(),n({edges:[C]})):o([e])}}:void 0,tabIndex:j?0:void 0,role:C.ariaRole??(j?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":null===C.ariaLabel?void 0:C.ariaLabel||`Edge from ${C.source} to ${C.target}`,"aria-describedby":j?`${tI}-${m}`:void 0,ref:I,...C.domAttributes,children:[!L&&(0,y.jsx)(M,{id:e,source:C.source,target:C.target,type:C.type,selected:C.selected,animated:C.animated,selectable:P,deletable:C.deletable??!0,label:C.label,labelStyle:C.labelStyle,labelShowBg:C.labelShowBg,labelBgStyle:C.labelBgStyle,labelBgPadding:C.labelBgPadding,labelBgBorderRadius:C.labelBgBorderRadius,sourceX:B,sourceY:H,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X,data:C.data,style:C.style,sourceHandleId:C.sourceHandle,targetHandleId:C.targetHandle,markerStart:W,markerEnd:K,pathOptions:"pathOptions"in C?C.pathOptions:void 0,interactionWidth:C.interactionWidth}),O&&(0,y.jsx)(ot,{edge:C,isReconnectable:O,reconnectRadius:u,onReconnect:h,onReconnectStart:f,onReconnectEnd:p,sourceX:B,sourceY:H,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X,setUpdateHover:z,setReconnecting:R})]})})});let oo=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function or({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:i,onEdgeContextMenu:a,onEdgeMouseEnter:s,onEdgeMouseMove:l,onEdgeMouseLeave:d,onEdgeClick:c,reconnectRadius:u,onEdgeDoubleClick:h,onReconnectStart:f,onReconnectEnd:g,disableKeyboardA11y:p}){let{edgesFocusable:m,edgesReconnectable:v,elementsSelectable:b,onError:w}=tN(oo,tE),E=tN((0,x.useCallback)(e=>{if(!t)return e.edges.map(e=>e.id);let n=[];if(e.width&&e.height)for(let t of e.edges){let o=e.nodeLookup.get(t.source),r=e.nodeLookup.get(t.target);o&&r&&function({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){let i=eo(es(e),es(t));return i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1),ed({x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]},ei(i))>0}({sourceNode:o,targetNode:r,width:e.width,height:e.height,transform:e.transform})&&n.push(t.id)}return n},[t]),tE);return(0,y.jsxs)("div",{className:"react-flow__edges",children:[(0,y.jsx)(nB,{defaultColor:e,rfId:n}),E.map(e=>(0,y.jsx)(on,{id:e,edgesFocusable:m,edgesReconnectable:v,elementsSelectable:b,noPanClassName:r,onReconnect:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:d,onClick:c,reconnectRadius:u,onDoubleClick:h,onReconnectStart:f,onReconnectEnd:g,rfId:n,onError:w,edgeTypes:o,disableKeyboardA11y:p},e))]})}or.displayName="EdgeRenderer";let oi=(0,x.memo)(or),oa=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function os({children:e}){let t=tN(oa);return(0,y.jsx)("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}let ol=e=>e.panZoom?.syncViewport;function od(e){return e.connection.inProgress?{...e.connection,to:eg(e.connection.to,e.transform)}:{...e.connection}}let oc=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ou({containerStyle:e,style:t,type:n,component:o}){let{nodesConnectable:r,width:i,height:a,isValid:s,inProgress:l}=tN(oc,tE);return i&&r&&l?(0,y.jsx)("svg",{style:e,width:i,height:a,className:"react-flow__connectionline react-flow__container",children:(0,y.jsx)("g",{className:b(["react-flow__connection",F(s)]),children:(0,y.jsx)(oh,{style:t,type:n,CustomComponent:o,isValid:s})})}):null}let oh=({style:e,type:t=h.Bezier,CustomComponent:n,isValid:o})=>{let{inProgress:r,from:i,fromNode:a,fromHandle:s,fromPosition:l,to:d,toNode:c,toHandle:u,toPosition:f,pointer:g}=tN(od,tE);if(!r)return;if(n)return(0,y.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:s,fromX:i.x,fromY:i.y,toX:d.x,toY:d.y,fromPosition:l,toPosition:f,connectionStatus:F(o),toNode:c,toHandle:u,pointer:g});let p="",m={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:d.x,targetY:d.y,targetPosition:f};switch(t){case h.Bezier:[p]=ez(m);break;case h.SimpleBezier:[p]=nX(m);break;case h.Step:[p]=eH({...m,borderRadius:0});break;case h.SmoothStep:[p]=eH(m);break;default:[p]=eD(m)}return(0,y.jsx)("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};oh.displayName="ConnectionLine";let of={};function og(e=of){(0,x.useRef)(e),tM(),(0,x.useEffect)(()=>{},[e])}function op({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:d,onNodeContextMenu:c,onSelectionContextMenu:u,onSelectionStart:h,onSelectionEnd:f,connectionLineType:g,connectionLineStyle:p,connectionLineComponent:m,connectionLineContainerStyle:v,selectionKeyCode:b,selectionOnDrag:w,selectionMode:E,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:_,onlyRenderVisibleElements:N,elementsSelectable:M,defaultViewport:j,translateExtent:O,minZoom:P,maxZoom:I,preventScrolling:A,defaultMarkerColor:z,zoomOnScroll:L,zoomOnPinch:R,panOnScroll:D,panOnScrollSpeed:$,panOnScrollMode:T,zoomOnDoubleClick:B,panOnDrag:H,autoPanOnSelection:V,onPaneClick:F,onPaneMouseEnter:Z,onPaneMouseMove:X,onPaneMouseLeave:W,onPaneScroll:K,onPaneContextMenu:Y,paneClickDistance:U,nodeClickDistance:G,onEdgeContextMenu:q,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:et,onReconnect:en,onReconnectStart:eo,onReconnectEnd:er,noDragClassName:ei,noWheelClassName:ea,noPanClassName:es,disableKeyboardA11y:el,nodeExtent:ed,rfId:ec,viewport:eu,onViewportChange:eh}){let ef,eg,ep,em;return og(e),og(t),tM(),(0,x.useRef)(!1),(0,x.useEffect)(()=>{},[]),ef=ni(),eg=(0,x.useRef)(!1),(0,x.useEffect)(()=>{!eg.current&&ef.viewportInitialized&&n&&(setTimeout(()=>n(ef),1),eg.current=!0)},[n,ef.viewportInitialized]),ep=tN(ol),em=tM(),(0,x.useEffect)(()=>{eu&&(ep?.(eu),em.setState({transform:[eu.x,eu.y,eu.zoom]}))},[eu,ep]),(0,y.jsx)(nP,{onPaneClick:F,onPaneMouseEnter:Z,onPaneMouseMove:X,onPaneMouseLeave:W,onPaneContextMenu:Y,onPaneScroll:K,paneClickDistance:U,deleteKeyCode:_,selectionKeyCode:b,selectionOnDrag:w,selectionMode:E,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:M,zoomOnScroll:L,zoomOnPinch:R,zoomOnDoubleClick:B,panOnScroll:D,panOnScrollSpeed:$,panOnScrollMode:T,panOnDrag:H,autoPanOnSelection:V,defaultViewport:j,translateExtent:O,minZoom:P,maxZoom:I,onSelectionContextMenu:u,preventScrolling:A,noDragClassName:ei,noWheelClassName:ea,noPanClassName:es,disableKeyboardA11y:el,onViewportChange:eh,isControlledViewport:!!eu,children:(0,y.jsxs)(os,{children:[(0,y.jsx)(oi,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:a,onReconnect:en,onReconnectStart:eo,onReconnectEnd:er,onlyRenderVisibleElements:N,onEdgeContextMenu:q,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:et,defaultMarkerColor:z,noPanClassName:es,disableKeyboardA11y:el,rfId:ec}),(0,y.jsx)(ou,{style:p,type:g,component:m,containerStyle:v}),(0,y.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,y.jsx)(nR,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:d,onNodeContextMenu:c,nodeClickDistance:G,onlyRenderVisibleElements:N,noPanClassName:es,noDragClassName:ei,disableKeyboardA11y:el,nodeExtent:ed,rfId:ec}),(0,y.jsx)("div",{className:"react-flow__viewport-portal"})]})})}op.displayName="GraphView";let om=(0,x.memo)(op),oy=eh("React Flow","https://reactflow.dev/"),ox=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:h,zIndexMode:f="basic"}={})=>{let g=new Map,p=new Map,m=new Map,y=new Map,x=o??t??[],v=n??e??[],b=u??[0,0],w=h??$;e3(m,y,x);let{nodesInitialized:E}=eq(v,g,p,{nodeOrigin:b,nodeExtent:w,zIndexMode:f}),k=[0,0,1];if(a&&r&&i){let{x:e,y:t,zoom:n}=ey(K(g,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),r,i,l,c,s?.padding??.1);k=[e,t,n]}return{rfId:"1",width:r??0,height:i??0,transform:k,nodes:v,nodesInitialized:E,nodeLookup:g,parentLookup:p,edges:x,edgeLookup:y,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==n,hasDefaultEdges:void 0!==o,panZoom:null,minZoom:l,maxZoom:c,translateExtent:$,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:d.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:b,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:a??!1,fitViewOptions:s,fitViewResolver:null,connection:{...H},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:oy,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:B,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}};function ov({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:i,initialMinZoom:a,initialMaxZoom:s,initialFitViewOptions:l,fitView:d,nodeOrigin:c,nodeExtent:u,zIndexMode:h,children:f}){let[p]=(0,x.useState)(()=>(({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:u,zIndexMode:h})=>{let f,p;return f=(f,p)=>{async function m(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:o,width:r,height:i,minZoom:a,maxZoom:s}=p();t&&(await U({nodes:e,width:r,height:i,panZoom:t,minZoom:a,maxZoom:s},n),o?.resolve(!0),f({fitViewResolver:null}))}return{...ox({nodes:e,edges:t,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:u,defaultNodes:n,defaultEdges:o,zIndexMode:h}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:o,elevateNodesOnSelect:r,fitViewQueued:i,zIndexMode:a,nodesSelectionActive:s}=p(),{nodesInitialized:l,hasSelectedNodes:d}=eq(e,t,n,{nodeOrigin:o,nodeExtent:u,elevateNodesOnSelect:r,checkEquality:!0,zIndexMode:a}),c=s&&d;i&&l?(m(),f({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:c})):f({nodes:e,nodesInitialized:l,nodesSelectionActive:c})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=p();e3(t,n,e),f({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=p();t(e),f({hasDefaultNodes:!0})}if(t){let{setEdges:e}=p();e(t),f({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:o,domNode:r,nodeOrigin:i,nodeExtent:a,debug:s,fitViewQueued:l,zIndexMode:d}=p(),{changes:c,updatedInternals:u}=function(e,t,n,o,r,i,a){let s=o?.querySelector(".xyflow__viewport"),l=!1;if(!s)return{changes:[],updatedInternals:l};let d=[],c=window.getComputedStyle(s),{m22:u}=new window.DOMMatrixReadOnly(c.transform),h=[];for(let o of e.values()){let e=t.get(o.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),l=!0;continue}let s=eC(o.nodeElement),c=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(c||!e.internals.handleBounds||o.force)){let f=o.nodeElement.getBoundingClientRect(),g=ev(e.extent)?e.extent:i,{positionAbsolute:p}=e.internals;e.parentId&&"parent"===e.extent?p=ee(p,s,t.get(e.parentId)):g&&(p=J(p,g,s));let m={...e,measured:s,internals:{...e.internals,positionAbsolute:p,handleBounds:{source:eO("source",o.nodeElement,f,u,e.id),target:eO("target",o.nodeElement,f,u,e.id)}}};t.set(e.id,m),e.parentId&&eQ(m,t,n,{nodeOrigin:r,zIndexMode:a}),l=!0,c&&(d.push({id:e.id,type:"dimensions",dimensions:s}),e.expandParent&&e.parentId&&h.push({id:e.id,parentId:e.parentId,rect:ea(m,r)}))}}if(h.length>0){let e=e0(h,t,n,r);d.push(...e)}return{changes:d,updatedInternals:l}}(e,n,o,r,i,a,d);u&&(!function(e,t,n){let o=eU(eK,n);for(let n of e.values())if(n.parentId)eQ(n,e,t,o);else{let e=J(W(n,o.nodeOrigin),ev(n.extent)?n.extent:o.nodeExtent,eb(n));n.internals.positionAbsolute=e}}(n,o,{nodeOrigin:i,nodeExtent:a,zIndexMode:d}),l?(m(),f({fitViewQueued:!1,fitViewOptions:void 0})):f({}),c?.length>0&&(s&&console.log("React Flow: trigger node changes",c),t?.(c)))},updateNodePositions:(e,t=!1)=>{let n=[],o=[],{nodeLookup:r,triggerNodeChanges:i,connection:a,updateConnection:s,onNodesChangeMiddlewareMap:l}=p();for(let[i,l]of e){let e=r.get(i),d=!!(e?.expandParent&&e?.parentId&&l?.position),c={id:i,type:"position",position:d?{x:Math.max(0,l.position.x),y:Math.max(0,l.position.y)}:l.position,dragging:t};if(e&&a.inProgress&&a.fromNode.id===e.id){let t=eZ(e,a.fromHandle,g.Left,!0);s({...a,from:t})}d&&e.parentId&&n.push({id:i,parentId:e.parentId,rect:{...l.internals.positionAbsolute,width:l.measured.width??0,height:l.measured.height??0}}),o.push(c)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=p(),i=e0(n,r,e,t);o.push(...i)}for(let e of l.values())o=e(o);i(o)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:o,hasDefaultNodes:r,debug:i}=p();e?.length&&(r&&n(t2(e,o)),i&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:o,hasDefaultEdges:r,debug:i}=p();e?.length&&(r&&n(t2(e,o)),i&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=p();t?r(e.map(e=>t3(e,!0))):(r(t5(o,new Set([...e]),!0)),i(t5(n)))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=p();t?i(e.map(e=>t3(e,!0))):(i(t5(n,new Set([...e]))),r(t5(o,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:o,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=p(),s=[];for(let t of e||o){if(!t.selected)continue;let e=r.get(t.id);e&&(e.selected=!1),s.push(t3(t.id,!1))}let l=[];for(let e of t||n)e.selected&&l.push(t3(e.id,!1));i(s),a(l)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=p();t?.setScaleExtent([e,n]),f({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=p();t?.setScaleExtent([n,e]),f({maxZoom:e})},setTranslateExtent:e=>{p().panZoom?.setTranslateExtent(e),f({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:o,elementsSelectable:r}=p();if(!r)return;let i=t.reduce((e,t)=>t.selected?[...e,t3(t.id,!1)]:e,[]),a=e.reduce((e,t)=>t.selected?[...e,t3(t.id,!1)]:e,[]);n(i),o(a)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:o,nodeOrigin:r,elevateNodesOnSelect:i,nodeExtent:a,zIndexMode:s}=p();(e[0][0]!==a[0][0]||e[0][1]!==a[0][1]||e[1][0]!==a[1][0]||e[1][1]!==a[1][1])&&(eq(t,n,o,{nodeOrigin:r,nodeExtent:e,elevateNodesOnSelect:i,checkEquality:!1,zIndexMode:s}),f({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:o,panZoom:r,translateExtent:i}=p();return e1({delta:e,panZoom:r,transform:t,translateExtent:i,width:n,height:o})},setCenter:async(e,t,n)=>{let{width:o,height:r,maxZoom:i,panZoom:a}=p();if(!a)return!1;let s=void 0!==n?.zoom?n.zoom:i;return await a.setViewport({x:o/2-e*s,y:r/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{f({connection:{...H}})},updateConnection:e=>{f({connection:e})},reset:()=>f({...ox()})}},p=Object.is,f?tw(f,p):tw})({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:d,minZoom:a,maxZoom:s,fitViewOptions:l,nodeOrigin:c,nodeExtent:u,zIndexMode:h}));return(0,y.jsx)(tC,{value:p,children:(0,y.jsx)(no,{children:f})})}function ob({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:a,fitView:s,fitViewOptions:l,minZoom:d,maxZoom:c,nodeOrigin:u,nodeExtent:h,zIndexMode:f}){return(0,x.useContext)(tS)?(0,y.jsx)(y.Fragment,{children:e}):(0,y.jsx)(ov,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:i,initialHeight:a,fitView:s,initialFitViewOptions:l,initialMinZoom:d,initialMaxZoom:c,nodeOrigin:u,nodeExtent:h,zIndexMode:f,children:e})}let ow={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var oE=t9(function({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i,edgeTypes:a,onNodeClick:s,onEdgeClick:l,onInit:d,onMove:f,onMoveStart:g,onMoveEnd:p,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:E,onClickConnectEnd:k,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:_,onNodeContextMenu:N,onNodeDoubleClick:M,onNodeDragStart:j,onNodeDrag:O,onNodeDragStop:P,onNodesDelete:I,onEdgesDelete:A,onDelete:z,onSelectionChange:L,onSelectionDragStart:R,onSelectionDrag:D,onSelectionDragStop:T,onSelectionContextMenu:B,onSelectionStart:H,onSelectionEnd:V,onBeforeDelete:F,connectionMode:Z,connectionLineType:X=h.Bezier,connectionLineStyle:W,connectionLineComponent:K,connectionLineContainerStyle:Y,deleteKeyCode:U="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:q=!1,selectionMode:Q=u.Full,panActivationKeyCode:J="Space",multiSelectionKeyCode:ee=ex()?"Meta":"Control",zoomActivationKeyCode:et=ex()?"Meta":"Control",snapToGrid:en,snapGrid:eo,onlyRenderVisibleElements:er=!1,selectNodesOnDrag:ei,nodesDraggable:ea,autoPanOnNodeFocus:es,nodesConnectable:el,nodesFocusable:ed,nodeOrigin:ec=tX,edgesFocusable:eu,edgesReconnectable:eh,elementsSelectable:ef=!0,defaultViewport:eg=tW,minZoom:ep=.5,maxZoom:em=2,translateExtent:ey=$,preventScrolling:ev=!0,nodeExtent:eb,defaultMarkerColor:ew="#b1b1b7",zoomOnScroll:eE=!0,zoomOnPinch:ek=!0,panOnScroll:eS=!1,panOnScrollSpeed:eC=.5,panOnScrollMode:e_=c.Free,zoomOnDoubleClick:eN=!0,panOnDrag:eM=!0,onPaneClick:ej,onPaneMouseEnter:eO,onPaneMouseMove:eP,onPaneMouseLeave:eI,onPaneScroll:eA,onPaneContextMenu:ez,paneClickDistance:eL=1,nodeClickDistance:eR=0,children:eD,onReconnect:e$,onReconnectStart:eT,onReconnectEnd:eB,onEdgeContextMenu:eH,onEdgeDoubleClick:eV,onEdgeMouseEnter:eF,onEdgeMouseMove:eZ,onEdgeMouseLeave:eX,reconnectRadius:eW=10,onNodesChange:eK,onEdgesChange:eY,noDragClassName:eU="nodrag",noWheelClassName:eG="nowheel",noPanClassName:eq="nopan",fitView:eQ,fitViewOptions:eJ,connectOnClick:e0,attributionPosition:e1,proOptions:e2,defaultEdgeOptions:e3,elevateNodesOnSelect:e5=!0,elevateEdgesOnSelect:e4=!1,disableKeyboardA11y:e6=!1,autoPanOnConnect:e7,autoPanOnNodeDrag:e8,autoPanOnSelection:e9=!0,autoPanSpeed:te,connectionRadius:tt,isValidConnection:tn,onError:to,style:tr,id:ti,nodeDragThreshold:ta,connectionDragThreshold:ts,viewport:tl,onViewportChange:td,width:tc,height:tu,colorMode:th="light",debug:tf,onScroll:tg,ariaLabelConfig:tp,zIndexMode:tm="basic",...ty},tx){let tv=ti||"1",tb=function(e){let[t,n]=(0,x.useState)("system"===e?null:e);return(0,x.useEffect)(()=>{if("system"!==e)return void n(e);let t=tq(),o=()=>n(t?.matches?"dark":"light");return o(),t?.addEventListener("change",o),()=>{t?.removeEventListener("change",o)}},[e]),null!==t?t:tq()?.matches?"dark":"light"}(th),tw=(0,x.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),tg?.(e)},[tg]);return(0,y.jsx)("div",{"data-testid":"rf__wrapper",...ty,onScroll:tw,style:{...tr,...ow},ref:tx,className:b(["react-flow",r,tb]),id:ti,role:"application",children:(0,y.jsxs)(ob,{nodes:e,edges:t,width:tc,height:tu,fitView:eQ,fitViewOptions:eJ,minZoom:ep,maxZoom:em,nodeOrigin:ec,nodeExtent:eb,zIndexMode:tm,children:[(0,y.jsx)(tG,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:E,onClickConnectEnd:k,nodesDraggable:ea,autoPanOnNodeFocus:es,nodesConnectable:el,nodesFocusable:ed,edgesFocusable:eu,edgesReconnectable:eh,elementsSelectable:ef,elevateNodesOnSelect:e5,elevateEdgesOnSelect:e4,minZoom:ep,maxZoom:em,nodeExtent:eb,onNodesChange:eK,onEdgesChange:eY,snapToGrid:en,snapGrid:eo,connectionMode:Z,translateExtent:ey,connectOnClick:e0,defaultEdgeOptions:e3,fitView:eQ,fitViewOptions:eJ,onNodesDelete:I,onEdgesDelete:A,onDelete:z,onNodeDragStart:j,onNodeDrag:O,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:R,onSelectionDragStop:T,onMove:f,onMoveStart:g,onMoveEnd:p,noPanClassName:eq,nodeOrigin:ec,rfId:tv,autoPanOnConnect:e7,autoPanOnNodeDrag:e8,autoPanSpeed:te,onError:to,connectionRadius:tt,isValidConnection:tn,selectNodesOnDrag:ei,nodeDragThreshold:ta,connectionDragThreshold:ts,onBeforeDelete:F,debug:tf,ariaLabelConfig:tp,zIndexMode:tm}),(0,y.jsx)(om,{onInit:d,onNodeClick:s,onEdgeClick:l,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:_,onNodeContextMenu:N,onNodeDoubleClick:M,nodeTypes:i,edgeTypes:a,connectionLineType:X,connectionLineStyle:W,connectionLineComponent:K,connectionLineContainerStyle:Y,selectionKeyCode:G,selectionOnDrag:q,selectionMode:Q,deleteKeyCode:U,multiSelectionKeyCode:ee,panActivationKeyCode:J,zoomActivationKeyCode:et,onlyRenderVisibleElements:er,defaultViewport:eg,translateExtent:ey,minZoom:ep,maxZoom:em,preventScrolling:ev,zoomOnScroll:eE,zoomOnPinch:ek,zoomOnDoubleClick:eN,panOnScroll:eS,panOnScrollSpeed:eC,panOnScrollMode:e_,panOnDrag:eM,autoPanOnSelection:e9,onPaneClick:ej,onPaneMouseEnter:eO,onPaneMouseMove:eP,onPaneMouseLeave:eI,onPaneScroll:eA,onPaneContextMenu:ez,paneClickDistance:eL,nodeClickDistance:eR,onSelectionContextMenu:B,onSelectionStart:H,onSelectionEnd:V,onReconnect:e$,onReconnectStart:eT,onReconnectEnd:eB,onEdgeContextMenu:eH,onEdgeDoubleClick:eV,onEdgeMouseEnter:eF,onEdgeMouseMove:eZ,onEdgeMouseLeave:eX,reconnectRadius:eW,defaultMarkerColor:ew,noDragClassName:eU,noWheelClassName:eG,noPanClassName:eq,rfId:tv,disableKeyboardA11y:e6,nodeExtent:eb,viewport:tl,onViewportChange:td}),(0,y.jsx)(tZ,{onSelectionChange:L}),eD,(0,y.jsx)(t$,{proOptions:e2,position:e1}),(0,y.jsx)(tR,{rfId:tv,disableKeyboardA11y:e6})]})})});let ok=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function oS({children:e}){let t=tN(ok);return t?(0,tk.createPortal)(e,t):null}function oC({dimensions:e,lineWidth:t,variant:n,className:o}){return(0,y.jsx)("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:b(["react-flow__background-pattern",n,o])})}function o_({radius:e,className:t}){return(0,y.jsx)("circle",{cx:e,cy:e,r:e,className:b(["react-flow__background-pattern","dots",t])})}(l=m||(m={})).Lines="lines",l.Dots="dots",l.Cross="cross";let oN={[m.Dots]:1,[m.Lines]:1,[m.Cross]:6},oM=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function oj({id:e,variant:t=m.Dots,gap:n=20,size:o,lineWidth:r=1,offset:i=0,color:a,bgColor:s,style:l,className:d,patternClassName:c}){let u=(0,x.useRef)(null),{transform:h,patternId:f}=tN(oM,tE),g=o||oN[t],p=t===m.Dots,v=t===m.Cross,w=Array.isArray(n)?n:[n,n],E=[w[0]*h[2]||1,w[1]*h[2]||1],k=g*h[2],S=Array.isArray(i)?i:[i,i],C=v?[k,k]:E,_=[S[0]*h[2]||1+C[0]/2,S[1]*h[2]||1+C[1]/2],N=`${f}${e||""}`;return(0,y.jsxs)("svg",{className:b(["react-flow__background",d]),style:{...l,...nl,"--xy-background-color-props":s,"--xy-background-pattern-color-props":a},ref:u,"data-testid":"rf__background",children:[(0,y.jsx)("pattern",{id:N,x:h[0]%E[0],y:h[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:p?(0,y.jsx)(o_,{radius:k/2,className:c}):(0,y.jsx)(oC,{dimensions:C,lineWidth:r,variant:t,className:c})}),(0,y.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${N})`})]})}oj.displayName="Background";let oO=(0,x.memo)(oj);function oP(){return(0,y.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,y.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function oI(){return(0,y.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,y.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function oA(){return(0,y.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,y.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 oz(){return(0,y.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,y.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 oL(){return(0,y.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,y.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 oR({children:e,className:t,...n}){return(0,y.jsx)("button",{type:"button",className:b(["react-flow__controls-button",t]),...n,children:e})}let oD=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function o$({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:a,onFitView:s,onInteractiveChange:l,className:d,children:c,position:u="bottom-left",orientation:h="vertical","aria-label":f}){let g=tM(),{isInteractive:p,minZoomReached:m,maxZoomReached:x,ariaLabelConfig:v}=tN(oD,tE),{zoomIn:w,zoomOut:E,fitView:k}=ni();return(0,y.jsxs)(tD,{className:b(["react-flow__controls","horizontal"===h?"horizontal":"vertical",d]),position:u,style:e,"data-testid":"rf__controls","aria-label":f??v["controls.ariaLabel"],children:[t&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(oR,{onClick:()=>{w(),i?.()},className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:x,children:(0,y.jsx)(oP,{})}),(0,y.jsx)(oR,{onClick:()=>{E(),a?.()},className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:m,children:(0,y.jsx)(oI,{})})]}),n&&(0,y.jsx)(oR,{className:"react-flow__controls-fitview",onClick:()=>{k(r),s?.()},title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:(0,y.jsx)(oA,{})}),o&&(0,y.jsx)(oR,{className:"react-flow__controls-interactive",onClick:()=>{g.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),l?.(!p)},title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:p?(0,y.jsx)(oL,{}):(0,y.jsx)(oz,{})}),c]})}o$.displayName="Controls",(0,x.memo)(o$);let oT=(0,x.memo)(function({id:e,x:t,y:n,width:o,height:r,style:i,color:a,strokeColor:s,strokeWidth:l,className:d,borderRadius:c,shapeRendering:u,selected:h,onClick:f}){let{background:g,backgroundColor:p}=i||{};return(0,y.jsx)("rect",{className:b(["react-flow__minimap-node",{selected:h},d]),x:t,y:n,rx:c,ry:c,width:o,height:r,style:{fill:a||g||p,stroke:s,strokeWidth:l},shapeRendering:u,onClick:f?t=>f(t,e):void 0})}),oB=e=>e.nodes.map(e=>e.id),oH=e=>e instanceof Function?e:()=>e,oV=(0,x.memo)(function({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:a,NodeComponent:s,onClick:l}){let{node:d,x:c,y:u,width:h,height:f}=tN(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let o=n.internals.userNode,{x:r,y:i}=n.internals.positionAbsolute,{width:a,height:s}=eb(o);return{node:o,x:r,y:i,width:a,height:s}},tE);return d&&!d.hidden&&ew(d)?(0,y.jsx)(s,{x:c,y:u,width:h,height:f,style:d.style,selected:!!d.selected,className:o(d),color:t(d),borderRadius:r,strokeColor:n(d),strokeWidth:i,shapeRendering:a,onClick:l,id:d.id}):null});var oF=(0,x.memo)(function({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=oT,onClick:a}){let s=tN(oB,tE),l=oH(t),d=oH(e),c=oH(n),u="u"<typeof window||window.chrome?"crispEdges":"geometricPrecision";return(0,y.jsx)(y.Fragment,{children:s.map(e=>(0,y.jsx)(oV,{id:e,nodeColorFunc:l,nodeStrokeColorFunc:d,nodeClassNameFunc:c,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:a,shapeRendering:u},e))})});let oZ=e=>!e.hidden,oX=e=>{let 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?el(K(e.nodeLookup,{filter:oZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}};function oW({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:a,nodeComponent:s,bgColor:l,maskColor:d,maskStrokeColor:c,maskStrokeWidth:u,position:h="bottom-right",onClick:f,onNodeClick:g,pannable:p=!1,zoomable:m=!1,ariaLabel:v,inversePan:w,zoomStep:S=1,offsetScale:C=5}){let _=tM(),N=(0,x.useRef)(null),{boundingRect:M,viewBB:j,rfId:O,panZoom:P,translateExtent:I,flowWidth:z,flowHeight:L,ariaLabelConfig:R}=tN(oX,tE),D=e?.width??200,$=e?.height??150,T=Math.max(M.width/D,M.height/$),B=T*D,H=T*$,V=C*T,F=M.x-(B-M.width)/2-V,Z=M.y-(H-M.height)/2-V,X=B+2*V,W=H+2*V,K=`react-flow__minimap-desc-${O}`,Y=(0,x.useRef)(0),U=(0,x.useRef)();Y.current=T,(0,x.useEffect)(()=>{if(N.current&&P)return U.current=function({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){let r=(0,E.select)(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:s=1,pannable:l=!0,zoomable:d=!0,inversePan:c=!1}){let u=[0,0],h=(0,A.default)().on("start",e=>{("mousedown"===e.sourceEvent.type||"touchstart"===e.sourceEvent.type)&&(u=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on("zoom",l?r=>{let s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!t)return;let l=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],d=[l[0]-u[0],l[1]-u[1]];u=l;let h=o()*Math.max(s[2],Math.log(s[2]))*(c?-1:1),f={x:s[0]-d[0]*h,y:s[1]-d[1]*h};t.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},[[0,0],[i,a]],e)}:null).on("zoom.wheel",d?e=>{if("wheel"!==e.sourceEvent.type||!t)return;let o=n(),r=e.sourceEvent.ctrlKey&&ex()?10:1,i=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*s,a=o[2]*Math.pow(2,i*r);t.scaleTo(a)}:null);r.call(h,{})},destroy:function(){r.on("zoom",null)},pointer:k.pointer}}({domNode:N.current,panZoom:P,getTransform:()=>_.getState().transform,getViewScale:()=>Y.current}),()=>{U.current?.destroy()}},[P]),(0,x.useEffect)(()=>{U.current?.update({translateExtent:I,width:z,height:L,inversePan:w,pannable:p,zoomStep:S,zoomable:m})},[p,m,w,S,I,z,L]);let G=f?e=>{let[t,n]=U.current?.pointer(e)||[0,0];f(e,{x:t,y:n})}:void 0,q=g?(0,x.useCallback)((e,t)=>{g(e,_.getState().nodeLookup.get(t).internals.userNode)},[]):void 0,Q=v??R["minimap.ariaLabel"];return(0,y.jsx)(tD,{position:h,style:{...e,"--xy-minimap-background-color-props":"string"==typeof l?l:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof c?c:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof u?u*T:void 0,"--xy-minimap-node-background-color-props":"string"==typeof o?o:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof n?n:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof a?a:void 0},className:b(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:(0,y.jsxs)("svg",{width:D,height:$,viewBox:`${F} ${Z} ${X} ${W}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":K,ref:N,onClick:G,children:[Q&&(0,y.jsx)("title",{id:K,children:Q}),(0,y.jsx)(oF,{onClick:q,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:a,nodeComponent:s}),(0,y.jsx)("path",{className:"react-flow__minimap-mask",d:`M${F-V},${Z-V}h${X+2*V}v${W+2*V}h${-X-2*V}z
|
|
2
|
-
M${j.x},${j.y}h${j.width}v${j.height}h${-j.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}oW.displayName="MiniMap",(0,x.memo)(oW);let oK={[p.Line]:"right",[p.Handle]:"bottom-right"};(0,x.memo)(function({nodeId:e,position:t,variant:n=p.Handle,className:o,style:r,children:i,color:a,minWidth:s=10,minHeight:l=10,maxWidth:d=Number.MAX_VALUE,maxHeight:c=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:h,autoScale:f=!0,shouldResize:g,onResizeStart:m,onResize:v,onResizeEnd:w}){let k,S=nw(),C="string"==typeof e?e:S,_=tM(),N=(0,x.useRef)(null),M=n===p.Handle,j=tN((0,x.useCallback)((k=M&&f,e=>k?`${Math.max(1/e.transform[2],1)}`:void 0),[M,f]),tE),O=(0,x.useRef)(null),P=t??oK[n];(0,x.useEffect)(()=>{if(N.current&&C)return O.current||(O.current=function({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){let i=(0,E.select)(e),a={controlDirection:tl("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:e,boundaries:s,keepAspectRatio:l,resizeDirection:d,onResizeStart:c,onResize:u,onResizeEnd:h,shouldResize:f}){let g,p,m,y,x={...th},v={...tf};a={boundaries:s,resizeDirection:d,keepAspectRatio:l,controlDirection:tl(e)};let b=null,w=[],E=!1,k=I().on("start",e=>{let{nodeLookup:o,transform:r,snapGrid:i,snapToGrid:a,nodeOrigin:s,paneDomNode:l}=n();if(!(g=o.get(t)))return;b=l?.getBoundingClientRect()??null;let{xSnapped:d,ySnapped:u}=eS(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:b});for(let[e,n]of(v={...x={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},pointerX:d,pointerY:u,aspectRatio:x.width/x.height},p=void 0,m=ev(g.extent)?g.extent:void 0,g.parentId&&("parent"===g.extent||g.expandParent)&&(p=o.get(g.parentId)),p&&"parent"===g.extent&&(m=[[0,0],[p.measured.width,p.measured.height]]),w=[],y=void 0,o))if(n.parentId===t&&(w.push({id:e,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){let e=function(e,t,n){let o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,a=e.measured.height??0,s=n[0]*i,l=n[1]*a;return[[o-s,r-l],[o+i-s,r+a-l]]}(n,g,n.origin??s);y=y?[[Math.min(e[0][0],y[0][0]),Math.min(e[0][1],y[0][1])],[Math.max(e[1][0],y[1][0]),Math.max(e[1][1],y[1][1])]]:e}c?.(e,{...x})}).on("drag",e=>{let{transform:t,snapGrid:r,snapToGrid:i,nodeOrigin:s}=n(),l=eS(e.sourceEvent,{transform:t,snapGrid:r,snapToGrid:i,containerBounds:b}),d=[];if(!g)return;let{x:c,y:h,width:k,height:S}=x,C={},_=g.origin??s,{width:N,height:M,x:j,y:O}=function(e,t,n,o,r,i,a,s){var l,d,c,u;let{affectsX:h,affectsY:f}=t,{isHorizontal:g,isVertical:p}=t,m=g&&p,{xSnapped:y,ySnapped:x}=n,{minWidth:v,maxWidth:b,minHeight:w,maxHeight:E}=o,{x:k,y:S,width:C,height:_,aspectRatio:N}=e,M=Math.floor(g?y-e.pointerX:0),j=Math.floor(p?x-e.pointerY:0),O=C+(h?-M:M),P=_+(f?-j:j),I=-i[0]*C,A=-i[1]*_,z=tu(O,v,b),L=tu(P,w,E);if(a){let e=0,t=0;h&&M<0?e=td(k+M+I,a[0][0]):!h&&M>0&&(e=tc(k+O+I,a[1][0])),f&&j<0?t=td(S+j+A,a[0][1]):!f&&j>0&&(t=tc(S+P+A,a[1][1])),z=Math.max(z,e),L=Math.max(L,t)}if(s){let e=0,t=0;h&&M>0?e=tc(k+M,s[0][0]):!h&&M<0&&(e=td(k+O,s[1][0])),f&&j>0?t=tc(S+j,s[0][1]):!f&&j<0&&(t=td(S+P,s[1][1])),z=Math.max(z,e),L=Math.max(L,t)}if(r){if(g){(z=Math.max(z,tu(O/N,w,E)*N),a)&&(z=Math.max(z,(h||f)&&(!h||f||!m)?td(S+A+(h?M:-M)/N,a[0][1])*N:tc(S+A+O/N,a[1][1])*N));s&&(z=Math.max(z,(h||f)&&(!h||f||!m)?tc(S+(h?M:-M)/N,s[0][1])*N:td(S+O/N,s[1][1])*N))}if(p){(L=Math.max(L,tu(P*N,v,b)/N),a)&&(L=Math.max(L,(h||f)&&(!f||h||!m)?td(k+(f?j:-j)*N+I,a[0][0])/N:tc(k+P*N+I,a[1][0])/N));s&&(L=Math.max(L,(h||f)&&(!f||h||!m)?tc(k+(f?j:-j)*N,s[0][0])/N:td(k+P*N,s[1][0])/N))}}j+=j<0?L:-L,M+=M<0?z:-z,r&&(m?O>P*N?j=((l=h,d=f,l?!d:d)?-M:M)/N:M=((c=h,u=f,c?!u:u)?-j:j)*N:g?(j=M/N,f=h):(M=j*N,h=f));let R=h?k+M:k,D=f?S+j:S;return{width:C+(h?-M:M),height:_+(f?-j:j),x:i[0]*M*(h?-1:1)+R,y:i[1]*j*(f?-1:1)+D}}(v,a.controlDirection,l,a.boundaries,a.keepAspectRatio,_,m,y),P=N!==k,I=M!==S,A=j!==c&&P,z=O!==h&&I;if(!A&&!z&&!P&&!I)return;if((A||z||1===_[0]||1===_[1])&&(C.x=A?j:x.x,C.y=z?O:x.y,x.x=C.x,x.y=C.y,w.length>0)){let e=j-c,t=O-h;for(let n of w)n.position={x:n.position.x-e+_[0]*(N-k),y:n.position.y-t+_[1]*(M-S)},d.push(n)}if((P||I)&&(C.width=P&&(!a.resizeDirection||"horizontal"===a.resizeDirection)?N:x.width,C.height=I&&(!a.resizeDirection||"vertical"===a.resizeDirection)?M:x.height,x.width=C.width,x.height=C.height),p&&g.expandParent){let e=_[0]*(C.width??0);C.x&&C.x<e&&(x.x=e,v.x=v.x-(C.x-e));let t=_[1]*(C.height??0);C.y&&C.y<t&&(x.y=t,v.y=v.y-(C.y-t))}let L=function({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:i}){let a=e-t,s=n-o,l=[a>0?1:a<0?-1:0,s>0?1:s<0?-1:0];return a&&r&&(l[0]=-1*l[0]),s&&i&&(l[1]=-1*l[1]),l}({width:x.width,prevWidth:k,height:x.height,prevHeight:S,affectsX:a.controlDirection.affectsX,affectsY:a.controlDirection.affectsY}),R={...x,direction:L};!1!==f?.(e,R)&&(E=!0,u?.(e,R),o(C,d))}).on("end",e=>{E&&(h?.(e,{...x}),r?.({...x}),E=!1)});i.call(k)},destroy:function(){i.on(".drag",null)}}}({domNode:N.current,nodeId:C,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,domNode:i}=_.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,paneDomNode:i}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:o,parentLookup:r,nodeOrigin:i}=_.getState(),a=[],s={x:e.x,y:e.y},l=o.get(C);if(l&&l.expandParent&&l.parentId){let t=l.origin??i,n=e.width??l.measured.width??0,d=e.height??l.measured.height??0,c=e0([{id:l.id,parentId:l.parentId,rect:{width:n,height:d,...eE({x:e.x??l.position.x,y:e.y??l.position.y},{width:n,height:d},l.parentId,o,t)}}],o,r,i);a.push(...c),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*d,e.y):void 0}if(void 0!==s.x&&void 0!==s.y){let e={id:C,type:"position",position:{...s}};a.push(e)}if(void 0!==e.width&&void 0!==e.height){let t={id:C,type:"dimensions",resizing:!0,setAttributes:!h||("horizontal"===h?"width":"height"),dimensions:{width:e.width,height:e.height}};a.push(t)}for(let e of t){let t={...e,type:"position"};a.push(t)}n(a)},onEnd:({width:e,height:t})=>{_.getState().triggerNodeChanges([{id:C,type:"dimensions",resizing:!1,dimensions:{width:e,height:t}}])}})),O.current.update({controlPosition:P,boundaries:{minWidth:s,minHeight:l,maxWidth:d,maxHeight:c},keepAspectRatio:u,resizeDirection:h,onResizeStart:m,onResize:v,onResizeEnd:w,shouldResize:g}),()=>{O.current?.destroy()}},[P,s,l,d,c,u,m,v,w,g]);let A=P.split("-");return(0,y.jsx)("div",{className:b(["react-flow__resize-control","nodrag",...A,n,o]),ref:N,style:{...r,scale:j,...a&&{[M?"backgroundColor":"borderColor"]:a}},children:i})});var oY=e.i(419412);let oU=(0,oY.default)("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),oG=(0,oY.default)("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),oq=(0,oY.default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);var oQ=e.i(945074),oJ=e.i(947308),o0=e.i(794683);let o1=(0,oY.default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var o2=e.i(571441),o3=e.i(221606),o5=e.i(353155),o4=e.i(613349),o6=e.i(355578),o7=e.i(500324),o8=e.i(996718),o9=e.i(252304),re=e.i(186339),rt=e.i(329686),rn=e.i(224950),ro=e.i(844010);e.i(400175);var rr=e.i(819748),ri=e.i(126366),ra=e.i(222862),rs=e.i(516266),rl=e.i(636557),rd=e.i(205189);let rc="!opacity-0 !size-3 !bg-muted-foreground/40 !rounded-full group-hover:!opacity-100 hover:!bg-primary hover:!scale-125 !transition-all !border-none",ru=(0,x.memo)(function({data:e,selected:t,dragging:n}){let{agent:o,runtimes:r,activeTaskCount:i,index:a}=e,s=r.find(e=>e.id===o.runtime_id),l=s?.status==="online",[d,c]=(0,x.useState)(!1);return(0,y.jsxs)("div",{"data-agent-node-id":o.id,"data-agent-working":i>0?"true":"false",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),className:(0,o4.cn)("bg-background rounded-xl ring-1 ring-foreground/8 shadow-sm transition-[box-shadow,ring-color,opacity,transform] duration-200 py-3 px-3.5 group",t&&"ring-2 ring-primary/30 shadow-md",!t&&"hover:ring-foreground/15 hover:shadow-md",n&&"shadow-lg scale-[1.02] cursor-grabbing"),style:{animationDelay:`${60*a}ms`},children:[(0,y.jsx)(nk,{type:"source",id:"right",position:g.Right,className:rc}),(0,y.jsx)(nk,{type:"source",id:"left",position:g.Left,className:rc}),(0,y.jsx)(nk,{type:"source",id:"top",position:g.Top,className:rc}),(0,y.jsx)(nk,{type:"source",id:"bottom",position:g.Bottom,className:rc}),(0,y.jsx)(nk,{type:"target",id:"target-right",position:g.Right,className:rc}),(0,y.jsx)(nk,{type:"target",id:"target-left",position:g.Left,className:rc}),(0,y.jsx)(nk,{type:"target",id:"target-top",position:g.Top,className:rc}),(0,y.jsx)(nk,{type:"target",id:"target-bottom",position:g.Bottom,className:rc}),(0,y.jsx)(ro.AgentPreviewCard,{agent:o,isOnline:l,activeTaskCount:i,variant:"compact",isHovered:d})]})}),rh=(0,x.memo)(function({id:e,sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:i,targetPosition:a,selected:s,data:l}){let{instruction:d,onEdgeClick:c}=l??{},[u,h]=(0,x.useState)(!1),[f,g,p]=eH({sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:i,targetPosition:a,borderRadius:16}),m=(0,x.useCallback)(t=>{t.stopPropagation(),c?.(e)},[c,e]);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)("path",{d:f,fill:"none",stroke:s?"var(--color-primary)":u?"var(--color-muted-foreground)":"var(--color-border)",strokeWidth:s||u?2:1.5,style:{transition:"stroke 150ms, stroke-width 150ms"},onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1)}),(0,y.jsx)(oS,{children:(0,y.jsx)("button",{type:"button",style:{position:"absolute",transform:`translate(-50%, -50%) translate(${g}px,${p}px)`,pointerEvents:"auto"},className:`text-[11px] leading-tight bg-background/90 px-2 py-0.5 rounded-md truncate cursor-pointer transition-colors italic ${u?"text-muted-foreground":"text-muted-foreground/40"}`,onClick:m,onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:d&&""!==d&&"<p></p>"!==d?"edit":"define"})})]})});var rf=e.i(332680),rg=e.i(740513),rp=e.i(813141),rm=e.i(393153);function ry({open:e,onOpenChange:t,link:n,agents:o,onSave:r,onDelete:i}){let[a,s]=(0,x.useState)(""),[l,d]=(0,x.useState)(!1),c=(0,x.useRef)(a);(0,x.useEffect)(()=>{c.current=a},[a]);let u=(0,x.useRef)(""),h=(0,x.useRef)(null),f=(0,x.useRef)(n);(0,x.useEffect)(()=>{f.current=n},[n]);let g=o.find(e=>e.id===n?.source_agent_id),p=o.find(e=>e.id===n?.target_agent_id);(0,x.useEffect)(()=>{n&&(s(n.instruction),u.current=n.instruction)},[n]);let m=(0,x.useCallback)(()=>{let e=c.current,t=f.current;t&&e!==u.current&&(u.current=e,r(t.id,e))},[r]),v=(0,x.useCallback)(()=>{h.current&&clearTimeout(h.current),h.current=setTimeout(m,500)},[m]),b=(0,x.useCallback)(e=>{s(e),v()},[v]);(0,x.useEffect)(()=>()=>{h.current&&clearTimeout(h.current),m()},[m]);let w=(0,x.useCallback)(e=>{e||(h.current&&clearTimeout(h.current),m()),t(e)},[t,m]),E=(0,x.useCallback)(()=>{h.current&&clearTimeout(h.current),n&&i(n.id),d(!1)},[n,i]),k=e=>{if(!e)return null;let t=(0,ri.parseAvatarUrl)(e.avatar_url);return t?(0,y.jsx)(ri.AvatarRenderer,{config:t,size:32,className:"shrink-0 rounded-xl"}):(0,y.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:e.name.charAt(0).toUpperCase()})};return(0,y.jsxs)(rf.Sheet,{open:e,onOpenChange:w,children:[(0,y.jsxs)(rf.SheetContent,{side:"right",showCloseButton:!1,className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border data-[side=right]:sm:max-w-md",children:[(0,y.jsxs)(rf.SheetTitle,{className:"sr-only",children:["Edit relationship between ",g?.name," and ",p?.name]}),(0,y.jsxs)(rf.SheetHeader,{className:"border-b px-5 py-4",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between",children:[(0,y.jsx)("div",{className:"flex items-center gap-2",children:(0,y.jsxs)("div",{className:"flex items-center",children:[k(g),(0,y.jsx)("div",{className:"-ml-2 ring-2 ring-background rounded-xl",children:k(p)})]})}),(0,y.jsxs)(rt.Tooltip,{children:[(0,y.jsx)(rt.TooltipTrigger,{render:(0,y.jsx)(re.Button,{variant:"ghost",size:"icon-sm",className:"text-destructive hover:text-destructive hover:bg-destructive/10",onClick:()=>d(!0)}),children:(0,y.jsx)(rp.Trash2,{className:"size-4"})}),(0,y.jsx)(rt.TooltipContent,{children:"Remove connection"})]})]}),(0,y.jsxs)("p",{className:"text-sm font-medium",children:[g?.name??"Agent"," and ",p?.name??"Agent"]}),(0,y.jsx)("p",{className:"text-xs font-medium text-muted-foreground tracking-wide mb-2",children:"use @ to mention agent"})]}),(0,y.jsx)("div",{className:"flex-1 overflow-y-auto thin-scrollbar px-5 py-4",children:(0,y.jsx)(rg.MarkdownEditor,{variant:"seamless",contentType:"markdown",placeholder:"Describe how these agents should collaborate. This instruction is shared with both agents when they receive tasks.",value:a,onChange:b,minHeight:"12rem",agents:o})})]}),(0,y.jsx)(rm.ConfirmDialog,{open:l,onOpenChange:d,title:"Remove connection",description:`This will remove the connection between "${g?.name??"Agent"}" and "${p?.name??"Agent"}".`,onConfirm:E})]})}var rx=e.i(48663),rv=e.i(692670),rb=e.i(450463);function rw({name:e,avatarUrl:t,size:n=20}){let o=(0,ri.parseAvatarUrl)(t);return o?(0,y.jsx)(ri.AvatarRenderer,{config:o,size:n,className:"rounded-full shrink-0"}):(0,y.jsx)("span",{className:"flex items-center justify-center rounded-full bg-secondary text-[7px] font-medium shrink-0",style:{width:n,height:n},children:(e??"?").charAt(0).toUpperCase()})}function rE({task:e,slug:t,onOpenChat:n}){let o="running"===e.status,r=`/w/${t}/agents/${e.agent_id}?task=${e.id}&conv=${e.conversation_id}`,i=(0,x.useCallback)(t=>{t.metaKey||t.ctrlKey||t.shiftKey||0!==t.button||(t.preventDefault(),n(e.agent_id,{conversationId:e.conversation_id,taskId:e.id}))},[e.agent_id,e.conversation_id,e.id,n]);return(0,y.jsxs)("a",{href:r,onClick:i,className:"flex items-center gap-2.5 px-3 py-2 hover:bg-accent/50 transition-colors cursor-pointer rounded-md",children:[(0,y.jsxs)("div",{className:"relative shrink-0",children:[(0,y.jsx)(rw,{name:e.agent?.name,avatarUrl:e.agent?.avatarUrl,size:24}),(0,y.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 size-2 rounded-full ring-2 ring-background ${o?"bg-primary animate-pulse":"bg-muted-foreground/40"}`})]}),(0,y.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,y.jsxs)("div",{className:"flex items-center gap-1.5 leading-tight",children:[(0,y.jsx)("span",{className:"text-sm font-medium truncate",children:e.agent?.name??"Unknown"}),(0,y.jsxs)("span",{className:"text-xs text-muted-foreground shrink-0",children:["#",e.channel]})]}),(0,y.jsx)("p",{className:"text-xs text-muted-foreground truncate leading-tight",children:e.prompt})]}),(0,y.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap shrink-0",children:(0,rb.relativeTime)(e.created_at)})]})}function rk(){let{activeTaskDetails:e}=(0,o6.useAgentContext)(),{slug:t}=(0,o7.useWorkspace)(),n=(0,o8.useIsMobile)(),{openAgentChat:o}=(0,o9.useAgentChatSheet)(),[r,i]=(0,x.useState)(!1),a=(0,x.useRef)(new Set),s=e.length;return((0,x.useEffect)(()=>{if(0===s){a.current=new Set;return}let t=new Set(e.map(e=>e.id));e.some(e=>!a.current.has(e.id))&&!r&&i(!0),a.current=t},[e,s,r]),n||0===s)?null:r?(0,y.jsxs)("div",{role:"region","aria-label":"Active tasks",className:"w-80 rounded-lg ring-1 ring-foreground/8 shadow-sm bg-background/90 backdrop-blur-sm animate-[fade-up_300ms_ease-out_both]",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-border/50",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium","aria-live":"polite",children:[(0,y.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),(0,y.jsxs)("span",{children:[s," task",1!==s?"s":""," active"]})]}),(0,y.jsx)("button",{type:"button","aria-label":"Collapse tasks panel",className:"size-6 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>i(!1),children:(0,y.jsx)(rv.X,{className:"size-3.5"})})]}),(0,y.jsxs)("div",{className:"max-h-75 overflow-y-auto thin-scrollbar py-1",children:[e.slice(0,8).map(e=>(0,y.jsx)(rE,{task:e,slug:t,onOpenChat:o},e.id)),s>8&&(0,y.jsxs)(rx.default,{href:`/w/${t}/traces?status=active`,className:"block text-xs text-muted-foreground hover:text-foreground text-center py-1.5 transition-colors",children:["View all ",s," tasks"]})]})]}):(0,y.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-background/90 backdrop-blur-sm ring-1 ring-foreground/8 shadow-sm text-xs font-medium text-muted-foreground hover:text-foreground transition-colors animate-[fade-up_300ms_ease-out_both]",children:[(0,y.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),s," active"]})}var rS=e.i(41793);function rC({name:e,avatarUrl:t,size:n=20}){let o=(0,ri.parseAvatarUrl)(t);return o?(0,y.jsx)(ri.AvatarRenderer,{config:o,size:n,className:"rounded-full shrink-0"}):(0,y.jsx)("span",{className:"flex items-center justify-center rounded-full bg-secondary text-[7px] font-medium shrink-0",style:{width:n,height:n},children:(e??"?").charAt(0).toUpperCase()})}function r_(){let{agents:e}=(0,o6.useAgentContext)(),{slug:t,workspaceId:n}=(0,o7.useWorkspace)(),o=(0,o8.useIsMobile)(),[r,i]=(0,x.useState)([]),[a,s]=(0,x.useState)(!1),l=new Map(e.map(e=>[e.id,e])),d=(0,x.useCallback)(async()=>{if(!n)return;let e=new Date,t=new Date(e);t.setHours(23,59,59,999);try{let o=(await (0,ra.listCalendarEvents)(n,{from:e.toISOString(),to:t.toISOString()})).filter(t=>new Date(t.occurrence_at)>=e);i(o)}catch{}},[n]);(0,x.useEffect)(()=>{d();let e=setInterval(d,6e4);return()=>clearInterval(e)},[d]);let c=r.reduce((e,t)=>e+(t.collapsed_count??1),0);if(o||0===c)return null;let u=[],h=new Map;for(let e of r)h.set(e.agent_id,(h.get(e.agent_id)??0)+(e.collapsed_count??1));for(let[e,t]of h){let n=l.get(e);u.push({agentId:e,agentName:n?.name??"Unknown",avatarUrl:n?.avatar_url??null,count:t})}return(u.sort((e,t)=>t.count-e.count),a)?(0,y.jsxs)("div",{role:"region","aria-label":"Upcoming events",className:"w-72 rounded-lg ring-1 ring-foreground/8 shadow-sm bg-background/90 backdrop-blur-sm animate-[fade-up_300ms_ease-out_both]",children:[(0,y.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-border/50",children:[(0,y.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,y.jsx)(rS.CalendarDays,{className:"size-3.5 text-muted-foreground"}),(0,y.jsxs)("span",{children:[c," events today"]})]}),(0,y.jsx)("button",{type:"button","aria-label":"Collapse events panel",className:"size-6 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>s(!1),children:(0,y.jsx)(rv.X,{className:"size-3.5"})})]}),(0,y.jsx)("div",{className:"max-h-52 overflow-y-auto thin-scrollbar py-1",children:u.map(e=>(0,y.jsxs)(rx.default,{href:`/w/${t}/calendar`,className:"flex items-center gap-2.5 px-3 py-2 hover:bg-accent/50 transition-colors cursor-pointer rounded-md",children:[(0,y.jsx)(rC,{name:e.agentName,avatarUrl:e.avatarUrl,size:22}),(0,y.jsx)("span",{className:"flex-1 text-sm truncate",children:e.agentName}),(0,y.jsxs)("span",{className:"text-xs text-muted-foreground shrink-0",children:[e.count," event",1!==e.count?"s":""]})]},e.agentId))})]}):(0,y.jsxs)("button",{type:"button",onClick:()=>s(!0),className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-background/90 backdrop-blur-sm ring-1 ring-foreground/8 shadow-sm text-xs font-medium text-muted-foreground hover:text-foreground transition-colors animate-[fade-up_300ms_ease-out_both]",children:[(0,y.jsx)(rS.CalendarDays,{className:"size-3"}),c," upcoming"]})}var rN=Object.defineProperty,rM={},rj={Graph:()=>rA,alg:()=>rV,json:()=>rT,version:()=>r$};for(var rO in rj)rN(rM,rO,{get:rj[rO],enumerable:!0});var rP=Object.defineProperty,rI=(e,t)=>{for(var n in t)rP(e,n,{get:t[n],enumerable:!0})},rA=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected=!("directed"in e)||e.directed,this._isMultigraph="multigraph"in e&&e.multigraph,this._isCompound="compound"in e&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return"function"!=typeof e?this._defaultNodeLabelFn=()=>e:this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>0===Object.keys(this._in[e]).length)}sinks(){return this.nodes().filter(e=>0===Object.keys(this._out[e]).length)}setNodes(e,t){return e.forEach(e=>{void 0!==t?this.setNode(e,t):this.setNode(e)}),this}setNode(e,t){return e in this._nodes?arguments.length>1&&(this._nodes[e]=t):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount),this}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(e=>{this.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(void 0===t)t="\0";else{t+="";for(let n=t;void 0!==n;n=this.parent(n))if(n===e)throw Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if("\0"!==t)return t}}children(e="\0"){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if("\0"===e)return this.nodes();this.hasNode(e)}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t);for(let t of this.successors(e))n.add(t);return Array.from(n.values())}}isLeaf(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([n,o])=>{e(n)&&t.setNode(n,o)}),Object.values(this._edgeObjs).forEach(e=>{t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,this.edge(e))});let n={},o=e=>{let r=this.parent(e);return!r||t.hasNode(r)?(n[e]=null!=r?r:void 0,null!=r?r:void 0):r in n?n[r]:o(r)};return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,o(e))),t}setDefaultEdgeLabel(e){return"function"!=typeof e?this._defaultEdgeLabelFn=()=>e:this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((e,n)=>(void 0!==t?this.setEdge(e,n,t):this.setEdge(e,n),n)),this}setEdge(e,t,n,o){let r,i,a,s,l=!1;"object"==typeof e&&null!==e&&"v"in e?(r=e.v,i=e.w,a=e.name,2==arguments.length&&(s=t,l=!0)):(r=e,i=t,a=o,arguments.length>2&&(s=n,l=!0)),r=""+r,i=""+i,void 0!==a&&(a=""+a);let d=rR(this._isDirected,r,i,a);if(d in this._edgeLabels)return l&&(this._edgeLabels[d]=s),this;if(void 0!==a&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(r),this.setNode(i),this._edgeLabels[d]=l?s:this._defaultEdgeLabelFn(r,i,a);let c=function(e,t,n,o){let r=""+t,i=""+n;if(!e&&r>i){let e=r;r=i,i=e}let a={v:r,w:i};return o&&(a.name=o),a}(this._isDirected,r,i,a);return r=c.v,i=c.w,Object.freeze(c),this._edgeObjs[d]=c,rz(this._preds[i],r),rz(this._sucs[r],i),this._in[i][d]=c,this._out[r][d]=c,this._edgeCount++,this}edge(e,t,n){let o=1==arguments.length?rD(this._isDirected,e):rR(this._isDirected,e,t,n);return this._edgeLabels[o]}edgeAsObj(e,t,n){let o=1==arguments.length?this.edge(e):this.edge(e,t,n);return"object"!=typeof o?{label:o}:o}hasEdge(e,t,n){return(1==arguments.length?rD(this._isDirected,e):rR(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let o=1==arguments.length?rD(this._isDirected,e):rR(this._isDirected,e,t,n),r=this._edgeObjs[o];if(r){let e=r.v,t=r.w;delete this._edgeLabels[o],delete this._edgeObjs[o],rL(this._preds[t],e),rL(this._sucs[e],t),delete this._in[t][o],delete this._out[e][o],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let o=Object.values(e);return n?o.filter(e=>e.v===t&&e.w===n||e.v===n&&e.w===t):o}};function rz(e,t){e[t]?e[t]++:e[t]=1}function rL(e,t){void 0===e[t]||--e[t]||delete e[t]}function rR(e,t,n,o){let r=""+t,i=""+n;if(!e&&r>i){let e=r;r=i,i=e}return r+"\x01"+i+"\x01"+(void 0===o?"\0":o)}function rD(e,t){return rR(e,t.v,t.w,t.name)}var r$="4.0.1",rT={};function rB(e){var t,n;let o={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:(t=e).nodes().map(e=>{let n=t.node(e),o=t.parent(e),r={v:e};return void 0!==n&&(r.value=n),void 0!==o&&(r.parent=o),r}),edges:(n=e).edges().map(e=>{let t=n.edge(e),o={v:e.v,w:e.w};return void 0!==e.name&&(o.name=e.name),void 0!==t&&(o.value=t),o})},r=e.graph();return void 0!==r&&(o.value=structuredClone(r)),o}function rH(e){let t=new rA(e.options);return void 0!==e.value&&t.setGraph(e.value),e.nodes.forEach(e=>{t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(e=>{t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}rI(rT,{read:()=>rH,write:()=>rB});var rV={};rI(rV,{CycleException:()=>r0,bellmanFord:()=>rZ,components:()=>rX,dijkstra:()=>rY,dijkstraAll:()=>rU,findCycles:()=>rq,floydWarshall:()=>rJ,isAcyclic:()=>r2,postorder:()=>r5,preorder:()=>r4,prim:()=>r6,shortestPaths:()=>r7,tarjan:()=>rG,topsort:()=>r1});var rF=()=>1;function rZ(e,t,n,o){return function(e,t,n,o){let r={},i,a=0,s=e.nodes(),l=function(e){let t=n(e);r[e.v].distance+t<r[e.w].distance&&(r[e.w]={distance:r[e.v].distance+t,predecessor:e.v},i=!0)},d=function(){s.forEach(function(e){o(e).forEach(function(t){let n=t.v===e?t.v:t.w,o=n===t.v?t.w:t.v;l({v:n,w:o})})})};s.forEach(function(e){r[e]={distance:e===t?0:1/0,predecessor:""}});let c=s.length;for(let e=1;e<c&&(i=!1,a++,d(),i);e++);if(a===c-1&&(i=!1,d(),i))throw Error("The graph contains a negative weight cycle");return r}(e,String(t),n||rF,o||function(t){return e.outEdges(t)})}function rX(e){let t={},n=[],o;return e.nodes().forEach(function(r){o=[],function n(r){r in t||(t[r]=!0,o.push(r),e.successors(r).forEach(n),e.predecessors(r).forEach(n))}(r),o.length&&n.push(o)}),n}var rW=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority}min(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key}add(e,t){let n=this._keyIndices,o=String(e);if(!(o in n)){let e=this._arr,r=e.length;return n[o]=r,e.push({key:o,priority:t}),this._decrease(r),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(void 0===n)throw Error(`Key not found: ${e}`);let o=this._arr[n].priority;if(t>o)throw Error(`New priority is greater than current priority. Key: ${e} Old: ${o} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,o=n+1,r=e;n<t.length&&(r=t[n].priority<t[r].priority?n:r,o<t.length&&(r=t[o].priority<t[r].priority?o:r),r!==e&&(this._swap(e,r),this._heapify(r)))}_decrease(e){let t=this._arr,n=t[e].priority,o;for(;0!==e&&!(t[o=e>>1].priority<n);)this._swap(e,o),e=o}_swap(e,t){let n=this._arr,o=this._keyIndices,r=n[e],i=n[t];n[e]=i,n[t]=r,o[i.key]=e,o[r.key]=t}},rK=()=>1;function rY(e,t,n,o){return function(e,t,n,o){let r={},i=new rW,a,s,l=function(e){let t=e.v!==a?e.v:e.w,o=r[t],l=n(e),d=s.distance+l;if(l<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+l);d<o.distance&&(o.distance=d,o.predecessor=a,i.decrease(t,d))};for(e.nodes().forEach(function(e){let n=e===t?0:1/0;r[e]={distance:n,predecessor:""},i.add(e,n)});i.size()>0&&(s=r[a=i.removeMin()]).distance!==1/0;)o(a).forEach(l);return r}(e,String(t),n||rK,o||function(t){return e.outEdges(t)})}function rU(e,t,n){return e.nodes().reduce(function(o,r){return o[r]=rY(e,r,t,n),o},{})}function rG(e){let t=0,n=[],o={},r=[];return e.nodes().forEach(function(i){i in o||function i(a){let s=o[a]={onStack:!0,lowlink:t,index:t++};if(n.push(a),e.successors(a).forEach(function(e){e in o?o[e].onStack&&(s.lowlink=Math.min(s.lowlink,o[e].index)):(i(e),s.lowlink=Math.min(s.lowlink,o[e].lowlink))}),s.lowlink===s.index){let e=[],t;do o[t=n.pop()].onStack=!1,e.push(t);while(a!==t)r.push(e)}}(i)}),r}function rq(e){return rG(e).filter(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])})}var rQ=()=>1;function rJ(e,t,n){var o,r,i;let a,s;return o=e,r=t||rQ,i=n||function(t){return e.outEdges(t)},a={},(s=o.nodes()).forEach(function(e){a[e]={},a[e][e]={distance:0,predecessor:""},s.forEach(function(t){e!==t&&(a[e][t]={distance:1/0,predecessor:""})}),i(e).forEach(function(t){let n=t.v===e?t.w:t.v,o=r(t);a[e][n]={distance:o,predecessor:e}})}),s.forEach(function(e){let t=a[e];s.forEach(function(n){let o=a[n];s.forEach(function(n){let r=o[e],i=t[n],a=o[n],s=r.distance+i.distance;s<a.distance&&(a.distance=s,a.predecessor=i.predecessor)})})}),a}var r0=class extends Error{constructor(...e){super(...e)}};function r1(e){let t={},n={},o=[];if(e.sinks().forEach(function r(i){if(i in n)throw new r0;i in t||(n[i]=!0,t[i]=!0,e.predecessors(i).forEach(r),delete n[i],o.push(i))}),Object.keys(t).length!==e.nodeCount())throw new r0;return o}function r2(e){try{r1(e)}catch(e){if(e instanceof r0)return!1;throw e}return!0}function r3(e,t,n){var o,r,i;let a,s;return o=t,r=function(e,t){return e.push(t),e},i=[],Array.isArray(o)||(o=[o]),a=t=>{var n;return null!=(n=e.isDirected()?e.successors(t):e.neighbors(t))?n:[]},s={},o.forEach(function(t){if(!e.hasNode(t))throw Error("Graph does not have node: "+t);i=function e(t,n,o,r,i,a,s){return n in r||(r[n]=!0,o||(s=a(s,n)),i(n).forEach(function(n){s=e(t,n,o,r,i,a,s)}),o&&(s=a(s,n))),s}(e,t,"post"===n,s,a,r,i)}),i}function r5(e,t){return r3(e,t,"post")}function r4(e,t){return r3(e,t,"pre")}function r6(e,t){let n=new rA,o={},r=new rW,i;function a(e){let n=e.v===i?e.w:e.v,a=r.priority(n);if(void 0!==a){let s=t(e);s<a&&(o[n]=i,r.decrease(n,s))}}if(0===e.nodeCount())return n;e.nodes().forEach(function(e){r.add(e,1/0),n.setNode(e)}),r.decrease(e.nodes()[0],0);let s=!1;for(;r.size()>0;){if((i=r.removeMin())in o)n.setEdge(i,o[i]);else{if(s)throw Error("Input graph is not connected: "+e);s=!0}e.nodeEdges(i).forEach(a)}return n}function r7(e,t,n,o){return function(e,t,n,o){if(void 0===n)return rY(e,t,n,o);let r=!1,i=e.nodes();for(let a=0;a<i.length;a++){let s=o(i[a]);for(let e=0;e<s.length;e++){let t=s[e],o=t.v===i[a]?t.v:t.w,l=o===t.v?t.w:t.v;0>n({v:o,w:l})&&(r=!0)}if(r)return rZ(e,t,n,o)}return rY(e,t,n,o)}(e,t,n,null!=o?o:t=>{let n=e.outEdges(t);return null!=n?n:[]})}function r8(e,t,n,o){let r=o;for(;e.hasNode(r);)r=o+""+ ++il;return n.dummy=t,e.setNode(r,n),r}function r9(e){let t=new rA({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function ie(e,t){let n,o,r=e.x,i=e.y,a=t.x-r,s=t.y-i,l=e.width/2,d=e.height/2;if(!a&&!s)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*l>Math.abs(a)*d?(s<0&&(d=-d),n=d*a/s,o=d):(a<0&&(l=-l),n=l,o=l*s/a),{x:r+n,y:i+o}}function it(e){let t=id(ii(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let o=e.node(n),r=o.rank;void 0!==r&&(t[r]||(t[r]=[]),t[r][o.order]=n)}),t}function io(e,t,n,o){let r={width:0,height:0};return arguments.length>=4&&(r.rank=n,r.order=o),r8(e,"border",r,t)}function ir(e,t){return t.length>65535?e(...(function(e,t=65535){let n=[];for(let o=0;o<e.length;o+=t){let r=e.slice(o,o+t);n.push(r)}return n})(t).map(t=>e(...t))):e(...t)}function ii(e){return ir(Math.max,e.nodes().map(t=>{let n=e.node(t).rank;return void 0===n?5e-324:n}))}function ia(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function is(e,t){return t()}var il=0;function id(e,t,n=1){null==t&&(t=e,e=0);let o=e=>e<t;n<0&&(o=e=>t<e);let r=[];for(let t=e;o(t);t+=n)r.push(t);return r}function ic(e,t){let n={};for(let o of t)void 0!==e[o]&&(n[o]=e[o]);return n}function iu(e,t){let n;return n="string"==typeof t?e=>e[t]:t,Object.entries(e).reduce((e,[t,o])=>(e[t]=n(o,t),e),{})}var ih=class{constructor(){((e,t,n)=>{let o;return(o="symbol"!=typeof t?t+"":t)in e?rN(e,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[o]=n})(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return ig(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&ig(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,ip)),n=n._prev;return"["+e.join(", ")+"]"}};function ig(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function ip(e,t){if("_next"!==e&&"_prev"!==e)return t}var im=()=>1;function iy(e,t,n,o,r){let i=[],a=r?i:void 0;return(e.inEdges(o.v)||[]).forEach(o=>{let a=e.edge(o),s=e.node(o.v);r&&i.push({v:o.v,w:o.w}),s.out-=a,ix(t,n,s)}),(e.outEdges(o.v)||[]).forEach(o=>{let r=e.edge(o),i=o.w,a=e.node(i);a.in-=r,ix(t,n,a)}),e.removeNode(o.v),a}function ix(e,t,n){var o,r,i;n.out?n.in?null==(i=e[n.out-n.in+t])||i.enqueue(n):null==(r=e[e.length-1])||r.enqueue(n):null==(o=e[0])||o.enqueue(n)}function iv(e){let t={};e.sources().forEach(function n(o){let r=e.node(o);if(Object.hasOwn(t,o))return r.rank;t[o]=!0;let i=e.outEdges(o),a=ir(Math.min,i?i.map(t=>null==t?1/0:n(t.w)-e.edge(t).minlen):[]);return a===1/0&&(a=0),r.rank=a})}function ib(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var iw=function(e){var t,n,o,r;let i,a,s=new rA({directed:!1}),l=e.nodes();if(0===l.length)throw Error("Graph must have at least one node");let d=l[0],c=e.nodeCount();for(s.setNode(d,{});t=s,n=e,t.nodes().forEach(function e(o){let r=n.nodeEdges(o);r&&r.forEach(r=>{let i=r.v,a=o===i?r.w:i;t.hasNode(a)||ib(n,r)||(t.setNode(a,{}),t.setEdge(o,a,{}),e(a))})}),t.nodeCount()<c&&(o=s,i=(r=e).edges().reduce((e,t)=>{let n=1/0;return o.hasNode(t.v)!==o.hasNode(t.w)&&(n=ib(r,t)),n<e[0]?[n,t]:e},[1/0,null])[1]);)a=s.hasNode(i.v)?ib(e,i):-ib(e,i),function(e,t,n){e.nodes().forEach(e=>t.node(e).rank+=n)}(s,e,a);return s},{preorder:iE,postorder:ik}=rV;function iS(e){var t;let n,o,r;t=e,r=new rA().setGraph(t.graph()),t.nodes().forEach(e=>r.setNode(e,t.node(e))),t.edges().forEach(e=>{let n=r.edge(e.v,e.w)||{weight:0,minlen:1},o=t.edge(e);r.setEdge(e.v,e.w,{weight:n.weight+o.weight,minlen:Math.max(n.minlen,o.minlen)})}),iv(e=r);let i=iw(e);for(iN(i),iC(i,e);n=iM(i);)o=ij(i,e,n),iO(i,e,n,o)}function iC(e,t){let n=ik(e,e.nodes());(n=n.slice(0,n.length-1)).forEach(n=>{var o,r,i;let a;return o=e,r=t,i=n,a=o.node(i).parent,void(o.edge(i,a).cutvalue=i_(o,r,i))})}function i_(e,t,n){let o=e.node(n).parent,r=!0,i=t.edge(n,o),a=0;i||(r=!1,i=t.edge(o,n)),a=i.weight;let s=t.nodeEdges(n);return s&&s.forEach(i=>{let s=i.v===n,l=s?i.w:i.v;if(l!==o){var d,c,u;let o=s===r,h=t.edge(i).weight;if(a+=o?h:-h,d=e,c=n,u=l,d.hasEdge(c,u)){let t=e.edge(n,l).cutvalue;a+=o?-t:t}}}),a}function iN(e,t){arguments.length<2&&(t=e.nodes()[0]),function e(t,n,o,r,i){let a=o,s=t.node(r);n[r]=!0;let l=t.neighbors(r);return l&&l.forEach(i=>{Object.hasOwn(n,i)||(o=e(t,n,o,i,r))}),s.low=a,s.lim=o++,i?s.parent=i:delete s.parent,o}(e,{},1,t)}function iM(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function ij(e,t,n){let o=n.v,r=n.w;t.hasEdge(o,r)||(o=n.w,r=n.v);let i=e.node(o),a=e.node(r),s=i,l=!1;return i.lim>a.lim&&(s=a,l=!0),t.edges().filter(t=>l===iP(e,e.node(t.v),s)&&l!==iP(e,e.node(t.w),s)).reduce((e,n)=>ib(t,n)<ib(t,e)?n:e)}function iO(e,t,n,o){let r=n.v,i=n.w;e.removeEdge(r,i),e.setEdge(o.v,o.w,{}),iN(e),iC(e,t),function(e,t){let n=e.nodes().find(t=>!e.node(t).parent);if(!n)return;let o=iE(e,[n]);(o=o.slice(1)).forEach(n=>{let o=e.node(n).parent,r=t.edge(n,o),i=!1;r||(r=t.edge(o,n),i=!0),t.node(n).rank=t.node(o).rank+(i?r.minlen:-r.minlen)})}(e,t)}function iP(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}iS.initLowLimValues=iN,iS.initCutValues=iC,iS.calcCutValue=i_,iS.leaveEdge=iM,iS.enterEdge=ij,iS.exchangeEdges=iO;function iI(e,t,n,o,r,i){let a=r[t][i-1],s=r8(e,"border",{width:0,height:0,rank:i,borderType:t},n);r[t][i]=s,e.setParent(s,o),a&&e.setEdge(a,s,{weight:1})}function iA(e){e.nodes().forEach(t=>iz(e.node(t))),e.edges().forEach(t=>iz(e.edge(t)))}function iz(e){let t=e.width;e.width=e.height,e.height=t}function iL(e){e.y=-e.y}function iR(e){let t=e.x;e.x=e.y,e.y=t}function iD(e,t,n){let o;for(;t.length&&(o=t[t.length-1]).i<=n;)t.pop(),e.push(o.vs),n++;return n}function i$(e,t,n){let o=new Map,r=(e,t)=>{o.has(e)||o.set(e,[]),o.get(e).push(t)};for(let t of e.nodes()){let n=e.node(t);if("number"==typeof n.rank&&r(n.rank,t),"number"==typeof n.minRank&&"number"==typeof n.maxRank)for(let e=n.minRank;e<=n.maxRank;e++)e!==n.rank&&r(e,t)}return t.map(function(t){var r;let i,a;return r=o.get(t)||[],i=function(e){let t;for(;e.hasNode(t="_root"+ ++il););return t}(e),a=new rA({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(t=>e.node(t)),r.forEach(o=>{let r=e.node(o),s=e.parent(o);if(r.rank===t||r.minRank<=t&&t<=r.maxRank){a.setNode(o),a.setParent(o,s||i);let l=e[n](o);l&&l.forEach(t=>{let n=t.v===o?t.w:t.v,r=a.edge(n,o),i=void 0!==r?r.weight:0;a.setEdge(n,o,{weight:e.edge(t).weight+i})}),Object.hasOwn(r,"minRank")&&a.setNode(o,{borderLeft:r.borderLeft[t],borderRight:r.borderRight[t]})}}),a})}function iT(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}function iB(e,t,n){if(t>n){let e=t;t=n,n=e}let o=e[t];o||(e[t]=o={}),o[n]=!0}var iH=["nodesep","edgesep","ranksep","marginx","marginy"],iV={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},iF=["acyclicer","ranker","rankdir","align","rankalign"],iZ=["width","height","rank"],iX={width:0,height:0},iW=["minlen","weight","width","height","labeloffset"],iK={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},iY=["labelpos"];function iU(e,t){return iu(ic(e,t),Number)}function iG(e){let t={};return e&&Object.entries(e).forEach(([e,n])=>{"string"==typeof e&&(e=e.toLowerCase()),t[e]=n}),t}var iq=function(e,t={}){let n=t.debugTiming?ia:is;return n("layout",()=>{let o=n(" buildLayoutGraph",()=>{var t;let n,o;return t=e,n=new rA({multigraph:!0,compound:!0}),o=iG(t.graph()),n.setGraph(Object.assign({},iV,iU(o,iH),ic(o,iF))),t.nodes().forEach(e=>{let o=iU(iG(t.node(e)),iZ);Object.keys(iX).forEach(e=>{void 0===o[e]&&(o[e]=iX[e])}),n.setNode(e,o);let r=t.parent(e);void 0!==r&&n.setParent(e,r)}),t.edges().forEach(e=>{let o=iG(t.edge(e));n.setEdge(e,Object.assign({},iK,iU(o,iW),ic(o,iY)))}),n});return n(" runLayout",()=>{var e,r,i;return e=o,r=n,i=t,void(r(" makeSpaceForEdgeLabels",()=>{var t;let n;return n=(t=e).graph(),void(n.ranksep/=2,t.edges().forEach(e=>{let o=t.edge(e);o.minlen*=2,"c"!==o.labelpos.toLowerCase()&&("TB"===n.rankdir||"BT"===n.rankdir?o.width+=o.labeloffset:o.height+=o.labeloffset)}))}),r(" removeSelfEdges",()=>{var t;(t=e).edges().forEach(e=>{if(e.v===e.w){let n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}})}),r(" acyclic",()=>{var t,n;let o,r,i;("greedy"===e.graph().acyclicer?function(e,t){var n,o;let r,i,a,s,l;if(1>=e.nodeCount())return[];let d=(n=e,o=t||im,r=new rA,i=0,a=0,n.nodes().forEach(e=>{r.setNode(e,{v:e,in:0,out:0})}),n.edges().forEach(e=>{let t=r.edge(e.v,e.w)||0,n=o(e);r.setEdge(e.v,e.w,t+n);let s=r.node(e.v),l=r.node(e.w);a=Math.max(a,s.out+=n),i=Math.max(i,l.in+=n)}),s=(function(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t})(a+i+3).map(()=>new ih),l=i+1,r.nodes().forEach(e=>{ix(s,l,r.node(e))}),{graph:r,buckets:s,zeroIdx:l});return(function(e,t,n){var o;let r=[],i=t[t.length-1],a=t[0],s;for(;e.nodeCount();){for(;s=a.dequeue();)iy(e,t,n,s);for(;s=i.dequeue();)iy(e,t,n,s);if(e.nodeCount()){for(let i=t.length-2;i>0;--i)if(s=null==(o=t[i])?void 0:o.dequeue()){r=r.concat(iy(e,t,n,s,!0)||[]);break}}}return r})(d.graph,d.buckets,d.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w)||[])}(e,(t=e,e=>t.edge(e).weight)):(o=[],r={},i={},(n=e).nodes().forEach(function e(t){Object.hasOwn(i,t)||(i[t]=!0,r[t]=!0,n.outEdges(t).forEach(t=>{Object.hasOwn(r,t.w)?o.push(t):e(t.w)}),delete r[t])}),o)).forEach(t=>{let n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,"rev"+ ++il)})}),r(" nestingGraph.run",()=>{var t,n;let o,r,i,a,s,l;return o=r8(e,"root",{},"_root"),a=2*(i=ir(Math.max,Object.values((l={},(t=e).children("\0").forEach(e=>(function e(n,o){let r=t.children(n);r&&r.length&&r.forEach(t=>e(t,o+1)),l[n]=o})(e,1)),r=l)))-1)+1,e.graph().nestingRoot=o,e.edges().forEach(t=>e.edge(t).minlen*=a),s=(n=e).edges().reduce((e,t)=>e+n.edge(t).weight,0)+1,void(e.children("\0").forEach(t=>(function e(t,n,o,r,i,a,s){var l;let d=t.children(s);if(!d.length){s!==n&&t.setEdge(n,s,{weight:0,minlen:o});return}let c=io(t,"_bt"),u=io(t,"_bb"),h=t.node(s);t.setParent(c,s),h.borderTop=c,t.setParent(u,s),h.borderBottom=u,d.forEach(l=>{var d;e(t,n,o,r,i,a,l);let h=t.node(l),f=h.borderTop?h.borderTop:l,g=h.borderBottom?h.borderBottom:l,p=h.borderTop?r:2*r,m=f!==g?1:i-(null!=(d=a[s])?d:0)+1;t.setEdge(c,f,{weight:p,minlen:m,nestingEdge:!0}),t.setEdge(g,u,{weight:p,minlen:m,nestingEdge:!0})}),t.parent(s)||t.setEdge(n,c,{weight:0,minlen:i+(null!=(l=a[s])?l:0)})})(e,o,a,s,i,r,t)),e.graph().nodeRankFactor=a)}),r(" rank",()=>(function(e){let t=e.graph().ranker;if("function"==typeof t)return t(e);switch(t){case"network-simplex":default:iS(e);break;case"tight-tree":var n;iv(n=e),iw(n);break;case"longest-path":iv(e);case"none":}})(r9(e))),r(" injectEdgeLabelProxies",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);if(n.width&&n.height){let n=t.node(e.v),o={rank:(t.node(e.w).rank-n.rank)/2+n.rank,e:e};r8(t,"edge-proxy",o,"_ep")}})}),r(" removeEmptyRanks",()=>{let t,n,o,r;return t=ir(Math.min,e.nodes().map(t=>e.node(t).rank).filter(e=>void 0!==e)),n=[],e.nodes().forEach(o=>{let r=e.node(o).rank-t;n[r]||(n[r]=[]),n[r].push(o)}),o=0,r=e.graph().nodeRankFactor,void Array.from(n).forEach((t,n)=>{void 0===t&&n%r!=0?--o:void 0!==t&&o&&t.forEach(t=>e.node(t).rank+=o)})}),r(" nestingGraph.cleanup",()=>{let t;return t=e.graph(),void(e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)}))}),r(" normalizeRanks",()=>{let t;return t=ir(Math.min,e.nodes().map(t=>{let n=e.node(t).rank;return void 0===n?Number.MAX_VALUE:n})),void e.nodes().forEach(n=>{let o=e.node(n);Object.hasOwn(o,"rank")&&(o.rank-=t)})}),r(" assignRankMinMax",()=>{var t;let n;return n=0,void((t=e).nodes().forEach(e=>{let o=t.node(e);o.borderTop&&(o.minRank=t.node(o.borderTop).rank,o.maxRank=t.node(o.borderBottom).rank,n=Math.max(n,o.maxRank))}),t.graph().maxRank=n)}),r(" removeEdgeLabelProxies",()=>{var t;(t=e).nodes().forEach(e=>{let n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}),r(" normalize.run",()=>{e.graph().dummyChains=[],e.edges().forEach(t=>(function(e,t){let n,o,r,i=t.v,a=e.node(i).rank,s=t.w,l=e.node(s).rank,d=t.name,c=e.edge(t),u=c.labelRank;if(l!==a+1){for(e.removeEdge(t),r=0,++a;a<l;++r,++a)c.points=[],n=r8(e,"edge",o={width:0,height:0,edgeLabel:c,edgeObj:t,rank:a},"_d"),a===u&&(o.width=c.width,o.height=c.height,o.dummy="edge-label",o.labelpos=c.labelpos),e.setEdge(i,n,{weight:c.weight},d),0===r&&e.graph().dummyChains.push(n),i=n;e.setEdge(i,s,{weight:c.weight},d)}})(e,t))}),r(" parentDummyChains",()=>{var t,n;let o,r,i;return i=(o={},r=0,(n=t=e).children("\0").forEach(function e(t){let i=r;n.children(t).forEach(e),o[t]={low:i,lim:r++}}),o),void t.graph().dummyChains.forEach(e=>{let n=t.node(e),o=n.edgeObj,r=function(e,t,n,o){let r=[],i=[],a=Math.min(t[n].low,t[o].low),s=Math.max(t[n].lim,t[o].lim),l;l=n;do r.push(l=e.parent(l));while(l&&(t[l].low>a||s>t[l].lim))let d=l,c=o;for(;(c=e.parent(c))!==d;)i.push(c);return{path:r.concat(i.reverse()),lca:d}}(t,i,o.v,o.w),a=r.path,s=r.lca,l=0,d=a[0],c=!0;for(;e!==o.w;){if(n=t.node(e),c){for(;(d=a[l])!==s&&t.node(d).maxRank<n.rank;)l++;d===s&&(c=!1)}if(!c){for(;l<a.length-1&&t.node(a[l+1]).minRank<=n.rank;)l++;d=a[l]}void 0!==d&&t.setParent(e,d),e=t.successors(e)[0]}})}),r(" addBorderSegments",()=>{var t;(t=e).children("\0").forEach(function e(n){let o=t.children(n),r=t.node(n);if(o.length&&o.forEach(e),Object.hasOwn(r,"minRank")){r.borderLeft=[],r.borderRight=[];for(let e=r.minRank,o=r.maxRank+1;e<o;++e)iI(t,"borderLeft","_bl",n,r,e),iI(t,"borderRight","_br",n,r,e)}})}),r(" order",()=>(function e(t,n={}){let o,r,i;if("function"==typeof n.customOrder)return void n.customOrder(t,e);let a=ii(t),s=i$(t,id(1,a+1),"inEdges"),l=i$(t,id(a-1,-1,-1),"outEdges"),d=(o={},i=id(ir(Math.max,(r=t.nodes().filter(e=>!t.children(e).length)).map(e=>t.node(e).rank))+1).map(()=>[]),r.sort((e,n)=>t.node(e).rank-t.node(n).rank).forEach(function e(n){if(o[n])return;o[n]=!0,i[t.node(n).rank].push(n);let r=t.successors(n);r&&r.forEach(e)}),i);if(iT(t,d),n.disableOptimalOrderHeuristic)return;let c=1/0,u,h=n.constraints||[];for(let e=0,n=0;n<4;++e,++n){(function(e,t,n){let o=new rA;e.forEach(function(e){var r;let i,a;n.forEach(e=>o.setEdge(e.left,e.right));let s=e.graph().root,l=function e(t,n,o,r){var i;let a,s,l,d,c,u,h,f,g,p,m=t.children(n),y=t.node(n),x=y?y.borderLeft:void 0,v=y?y.borderRight:void 0,b={};x&&(m=m.filter(e=>e!==x&&e!==v));let w=function(e,t=[]){return t.map(t=>{let n=e.inEdges(t);if(!n||!n.length)return{v:t};{let o=n.reduce((t,n)=>{let o=e.edge(n),r=e.node(n.v);return{sum:t.sum+o.weight*r.order,weight:t.weight+o.weight}},{sum:0,weight:0});return{v:t,barycenter:o.sum/o.weight,weight:o.weight}}})}(t,m);w.forEach(n=>{if(t.children(n.v).length){var i,a;let s=e(t,n.v,o,r);b[n.v]=s,Object.hasOwn(s,"barycenter")&&(i=n,a=s,void 0!==i.barycenter?(i.barycenter=(i.barycenter*i.weight+a.barycenter*a.weight)/(i.weight+a.weight),i.weight+=a.weight):(i.barycenter=a.barycenter,i.weight=a.weight))}});let E=(a={},w.forEach((e,t)=>{let n={indegree:0,in:[],out:[],vs:[e.v],i:t};void 0!==e.barycenter&&(n.barycenter=e.barycenter,n.weight=e.weight),a[e.v]=n}),o.edges().forEach(e=>{let t=a[e.v],n=a[e.w];void 0!==t&&void 0!==n&&(n.indegree++,t.out.push(n))}),function(e){let t=[];for(;e.length;){let n=e.pop();t.push(n),n.in.reverse().forEach(function(e){return t=>{t.merged||(void 0===t.barycenter||void 0===e.barycenter||t.barycenter>=e.barycenter)&&function(e,t){let n=0,o=0;e.weight&&(n+=e.barycenter*e.weight,o+=e.weight),t.weight&&(n+=t.barycenter*t.weight,o+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/o,e.weight=o,e.i=Math.min(t.i,e.i),t.merged=!0}(e,t)}}(n)),n.out.forEach(function(t){return n=>{n.in.push(t),0==--n.indegree&&e.push(n)}}(n))}return t.filter(e=>!e.merged).map(e=>ic(e,["vs","i","barycenter","weight"]))}(Object.values(a).filter(e=>!e.indegree)));!function(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}(E,b);let k=(d=(i=e=>Object.hasOwn(e,"barycenter"),s={lhs:[],rhs:[]},E.forEach(e=>{i(e)?s.lhs.push(e):s.rhs.push(e)}),l=s).lhs,c=l.rhs.sort((e,t)=>t.i-e.i),u=[],h=0,f=0,g=0,d.sort(function(e){return(t,n)=>t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}(!!r)),g=iD(u,c,g),d.forEach(e=>{g+=e.vs.length,u.push(e.vs),h+=e.barycenter*e.weight,f+=e.weight,g=iD(u,c,g)}),p={vs:u.flat(1)},f&&(p.barycenter=h/f,p.weight=f),p);if(x&&v){k.vs=[x,k.vs,v].flat(1);let e=t.predecessors(x);if(e&&e.length){let n=t.node(e[0]),o=t.predecessors(v),r=t.node(o[0]);Object.hasOwn(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+n.order+r.order)/(k.weight+2),k.weight+=2}}return k}(e,s,o,t);l.vs.forEach((t,n)=>e.node(t).order=n),r=l.vs,i={},r.forEach(t=>{let n=e.parent(t),r,s;for(;n;){if((r=e.parent(n))?(s=i[r],i[r]=n):(s=a,a=n),s&&s!==n)return void o.setEdge(s,n);n=r}})})})(e%2?s:l,e%4>=2,h),d=it(t);let o=function(e,t){let n=0;for(let o=1;o<t.length;++o)n+=function(e,t,n){var o;let r=(o=n.map((e,t)=>t),n.reduce((e,t,n)=>(e[t]=o[n],e),{})),i=t.flatMap(t=>{let n=e.outEdges(t);return n?n.map(t=>({pos:r[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos):[]}),a=1;for(;a<n.length;)a<<=1;let s=2*a-1;a-=1;let l=Array(s).fill(0),d=0;return i.forEach(e=>{let t=e.pos+a;l[t]+=e.weight;let n=0;for(;t>0;)t%2&&(n+=l[t+1]),t=t-1>>1,l[t]+=e.weight;d+=e.weight*n}),d}(e,t[o-1],t[o]);return n}(t,d);o<c?(n=0,u=Object.assign({},d),c=o):o===c&&(u=structuredClone(d))}iT(t,u)})(e,i)),r(" insertSelfEdges",()=>{var t;it(t=e).forEach(e=>{let n=0;e.forEach((e,o)=>{let r=t.node(e);r.order=o+n,(r.selfEdges||[]).forEach(e=>{r8(t,"selfedge",{width:e.label.width,height:e.label.height,rank:r.rank,order:o+ ++n,e:e.e,label:e.label},"_se")}),delete r.selfEdges})})}),r(" adjustCoordinateSystem",()=>{var t;let n;("lr"===(n=null==(t=e.graph().rankdir)?void 0:t.toLowerCase())||"rl"===n)&&iA(e)}),r(" position",()=>{var t,n,o,r;let i,a,s,l,d,c,u,h,f,g,p,m,y,x,v;p=it(r=t=r9(t=e)),y=(m=r.graph()).ranksep,x=m.rankalign,v=0,p.forEach(e=>{let t=e.reduce((e,t)=>{var n;let o=null!=(n=r.node(t).height)?n:0;return e>o?e:o},0);e.forEach(e=>{let n=r.node(e);"top"===x?n.y=v+n.height/2:"bottom"===x?n.y=v+t-n.height/2:n.y=v+t/2}),v+=t+y}),Object.entries((a=it(n=t),s=Object.assign((i={},a.length&&a.reduce(function(e,t){let o=0,r=0,a=e.length,s=t[t.length-1];return t.forEach((e,l)=>{let d=function(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(t=>e.node(t).dummy)}}(n,e),c=d?n.node(d).order:a;(d||e===s)&&(t.slice(r,l+1).forEach(e=>{let t=n.predecessors(e);t&&t.forEach(t=>{let r=n.node(t),a=r.order;(a<o||c<a)&&!(r.dummy&&n.node(e).dummy)&&iB(i,t,e)})}),r=l+1,o=c)}),t}),i),function(e,t){let n={};function o(t,o,r,i,a){id(o,r).forEach(o=>{let r=t[o];if(void 0!==r&&e.node(r).dummy){let t=e.predecessors(r);t&&t.forEach(t=>{if(void 0===t)return;let o=e.node(t);o.dummy&&(o.order<i||o.order>a)&&iB(n,t,r)})}})}return t.length&&t.reduce(function(t,n){let r=-1,i=-1,a=0;return n.forEach((s,l)=>{if("border"===e.node(s).dummy){let t=e.predecessors(s);if(t&&t.length){let s=t[0];if(void 0===s)return;i=e.node(s).order,o(n,a,l,r,i),a=l,r=i}}o(n,a,n.length,i,t.length)}),n}),n}(n,a)),l={},["u","d"].forEach(e=>{d="u"===e?a:Object.values(a).reverse(),["l","r"].forEach(t=>{var o,r;let i,a,c;"r"===t&&(d=d.map(e=>Object.values(e).reverse()));let u=(o=d,r=t=>("u"===e?n.predecessors(t):n.successors(t))||[],i={},a={},c={},o.forEach(e=>{e.forEach((e,t)=>{i[e]=e,a[e]=e,c[e]=t})}),o.forEach(e=>{let t=-1;e.forEach(e=>{let n=r(e);if(n&&n.length){let o=n.sort((e,t)=>{let n=c[e],o=c[t];return(void 0!==n?n:0)-(void 0!==o?o:0)}),r=(o.length-1)/2;for(let n=Math.floor(r),l=Math.ceil(r);n<=l;++n){let r=o[n];if(void 0===r)continue;let l=c[r];if(void 0!==l&&a[e]===e&&t<l&&!function(e,t,n){if(t>n){let e=t;t=n,n=e}let o=e[t];return void 0!==o&&Object.hasOwn(o,n)}(s,e,r)){let n=i[r];void 0!==n&&(a[r]=e,a[e]=i[e]=n,t=l)}}}})}),{root:i,align:a}),h=function(e,t,n,o,r=!1){var i,a,s,l,d,c,u;let h,f,g,p={},m=(i=e,a=t,s=n,l=r,h=new rA,g=(d=(f=i.graph()).nodesep,c=f.edgesep,u=l,(e,t,n)=>{let o=e.node(t),r=e.node(n),i,a;if(i=0+o.width/2,Object.hasOwn(o,"labelpos"))switch(o.labelpos.toLowerCase()){case"l":a=-o.width/2;break;case"r":a=o.width/2}if(a&&(i+=u?a:-a),a=void 0,i+=(o.dummy?c:d)/2,i+=(r.dummy?c:d)/2,i+=r.width/2,Object.hasOwn(r,"labelpos"))switch(r.labelpos.toLowerCase()){case"l":a=r.width/2;break;case"r":a=-r.width/2}return a&&(i+=u?a:-a),i}),a.forEach(e=>{let t;e.forEach(e=>{let n=s[e];if(void 0!==n){if(h.setNode(n),void 0!==t){let o=s[t];if(void 0!==o){let r=h.edge(o,n);h.setEdge(o,n,Math.max(g(i,e,t),r||0))}}t=e}})}),h),y=r?"borderLeft":"borderRight";function x(e,t){let n=m.nodes().slice(),o={},r=n.pop();for(;r;){if(o[r])e(r);else for(let e of(o[r]=!0,n.push(r),t(r)))n.push(e);r=n.pop()}}return x(function(e){let t=m.inEdges(e);t?p[e]=t.reduce((e,t)=>{var n;let o=null!=(n=p[t.v])?n:0,r=m.edge(t);return Math.max(e,o+(void 0!==r?r:0))},0):p[e]=0},function(e){return m.predecessors(e)||[]}),x(function(t){let n=m.outEdges(t),o=1/0;n&&(o=n.reduce((e,t)=>{let n=p[t.w],o=m.edge(t);return Math.min(e,(void 0!==n?n:0)-(void 0!==o?o:0))},1/0));let r=e.node(t);o!==1/0&&r.borderType!==y&&(p[t]=Math.max(void 0!==p[t]?p[t]:0,o))},function(e){return m.successors(e)||[]}),Object.keys(o).forEach(e=>{var t;let o=n[e];void 0!==o&&(p[e]=null!=(t=p[o])?t:0)}),p}(n,d,u.root,u.align,"r"===t);"r"===t&&(h=iu(h,e=>-e)),l[e+t]=h})}),c=Object.values(l).reduce((e,t)=>{let o=-1/0,r=1/0;Object.entries(t).forEach(([e,t])=>{var i,a;let s=(i=n,a=e,i.node(a).width/2);o=Math.max(t+s,o),r=Math.min(t-s,r)});let i=o-r;return i<e[0]&&(e=[i,t]),e},[1/0,null])[1],h=ir(Math.min,u=Object.values(c)),f=ir(Math.max,u),["u","d"].forEach(e=>{["l","r"].forEach(t=>{let n=e+t,o=l[n];if(!o||o===c)return;let r=Object.values(o),i=h-ir(Math.min,r);"l"!==t&&(i=f-ir(Math.max,r)),i&&(l[n]=iu(o,e=>e+i))})}),o=n.graph().align,(g=l.ul)?iu(g,(e,t)=>{var n,r;if(o){let e=l[o.toLowerCase()];if(e&&void 0!==e[t])return e[t]}let i=Object.values(l).map(e=>{let n=e[t];return void 0!==n?n:0}).sort((e,t)=>e-t);return((null!=(n=i[1])?n:0)+(null!=(r=i[2])?r:0))/2}):{})).forEach(([e,n])=>t.node(e).x=n)}),r(" positionSelfEdges",()=>{var t;(t=e).nodes().forEach(e=>{let n=t.node(e);if("selfedge"===n.dummy){let o=t.node(n.e.v),r=o.x+o.width/2,i=o.y,a=n.x-r,s=o.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:r+2*a/3,y:i-s},{x:r+5*a/6,y:i-s},{x:r+a,y:i},{x:r+5*a/6,y:i+s},{x:r+2*a/3,y:i+s}],n.label.x=n.x,n.label.y=n.y}})}),r(" removeBorderNodes",()=>{var t;(t=e).nodes().forEach(e=>{if(t.children(e).length){let n=t.node(e),o=t.node(n.borderTop),r=t.node(n.borderBottom),i=t.node(n.borderLeft[n.borderLeft.length-1]),a=t.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(a.x-i.x),n.height=Math.abs(r.y-o.y),n.x=i.x+n.width/2,n.y=o.y+n.height/2}}),t.nodes().forEach(e=>{"border"===t.node(e).dummy&&t.removeNode(e)})}),r(" normalize.undo",()=>{e.graph().dummyChains.forEach(t=>{let n=e.node(t),o=n.edgeLabel,r;for(e.setEdge(n.edgeObj,o);n.dummy;)r=e.successors(t)[0],e.removeNode(t),o.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(o.x=n.x,o.y=n.y,o.width=n.width,o.height=n.height),t=r,n=e.node(t)})}),r(" fixupEdgeLabelCoords",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);if(Object.hasOwn(n,"x"))switch(("l"===n.labelpos||"r"===n.labelpos)&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}),r(" undoCoordinateSystem",()=>{var t,n,o;let r;("bt"===(r=null==(t=e.graph().rankdir)?void 0:t.toLowerCase())||"rl"===r)&&((n=e).nodes().forEach(e=>iL(n.node(e))),n.edges().forEach(e=>{var t;let o=n.edge(e);null==(t=o.points)||t.forEach(iL),Object.hasOwn(o,"y")&&iL(o)})),("lr"===r||"rl"===r)&&((o=e).nodes().forEach(e=>iR(o.node(e))),o.edges().forEach(e=>{var t;let n=o.edge(e);null==(t=n.points)||t.forEach(iR),Object.hasOwn(n,"x")&&iR(n)}),iA(e))}),r(" translateGraph",()=>(function(e){let t=1/0,n=0,o=1/0,r=0,i=e.graph(),a=i.marginx||0,s=i.marginy||0;function l(e){let i=e.x,a=e.y,s=e.width,l=e.height;t=Math.min(t,i-s/2),n=Math.max(n,i+s/2),o=Math.min(o,a-l/2),r=Math.max(r,a+l/2)}e.nodes().forEach(t=>l(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);Object.hasOwn(n,"x")&&l(n)}),t-=a,o-=s,e.nodes().forEach(n=>{let r=e.node(n);r.x-=t,r.y-=o}),e.edges().forEach(n=>{let r=e.edge(n);r.points.forEach(e=>{e.x-=t,e.y-=o}),Object.hasOwn(r,"x")&&(r.x-=t),Object.hasOwn(r,"y")&&(r.y-=o)}),i.width=n-t+a,i.height=r-o+s})(e)),r(" assignNodeIntersects",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e),o=t.node(e.v),r=t.node(e.w),i,a;n.points?(i=n.points[0],a=n.points[n.points.length-1]):(n.points=[],i=r,a=o),n.points.unshift(ie(o,i)),n.points.push(ie(r,a))})}),r(" reversePoints",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);n.reversed&&n.points.reverse()})}),r(" acyclic.undo",()=>{e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let o=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,o)}})}))}),n(" updateInputGraph",()=>{var t,n;return t=e,n=o,void(t.nodes().forEach(e=>{let o=t.node(e),r=n.node(e);o&&(o.x=r.x,o.y=r.y,o.order=r.order,o.rank=r.rank,n.children(e).length&&(o.width=r.width,o.height=r.height))}),t.edges().forEach(e=>{let o=t.edge(e),r=n.edge(e);o.points=r.points,Object.hasOwn(r,"x")&&(o.x=r.x,o.y=r.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height)}),o})};function iQ(e,t,n="tree"){if(0===e.length)return e;switch(n){case"star":return function(e,t){if(1===e.length)return[{...e[0],position:{x:-140,y:-50}}];let n={},o={},r={};for(let t of e)n[t.id]=0,o[t.id]=0,r[t.id]=new Set;for(let e of t)void 0!==n[e.source]&&void 0!==n[e.target]&&(n[e.source]++,n[e.target]++,o[e.source]++,r[e.source].add(e.target),r[e.target].add(e.source));let i=[...e].sort((e,t)=>{let r=(n[t.id]??0)-(n[e.id]??0);if(0!==r)return r;let i=(o[t.id]??0)-(o[e.id]??0);return 0!==i?i:e.id.localeCompare(t.id)})[0].id,a=r[i]??new Set,s=[],l=[];for(let t of e)t.id!==i&&(a.has(t.id)?s.push(t):l.push(t));let d={};d[i]={x:-140,y:-50};for(let e=0;e<s.length;e++){let t=2*Math.PI*e/s.length-Math.PI/2;d[s[e].id]={x:250*Math.cos(t)-140,y:250*Math.sin(t)-50}}for(let e=0;e<l.length;e++){let t=2*Math.PI*e/l.length-Math.PI/2;d[l[e].id]={x:450*Math.cos(t)-140,y:450*Math.sin(t)-50}}return e.map(e=>({...e,position:d[e.id]??{x:0,y:0}}))}(e,t);case"tree":return iJ(e,t,"TB");case"flow":return iJ(e,t,"LR")}}function iJ(e,t,n){let o=new rM.Graph;for(let t of(o.setDefaultEdgeLabel(()=>({})),o.setGraph({rankdir:n,nodesep:80,ranksep:180,marginx:40,marginy:40}),e))o.setNode(t.id,{width:280,height:100});for(let e of t)o.setEdge(e.source,e.target);return iq(o),e.map(e=>{let t=o.node(e.id);return{...e,position:{x:t.x-140,y:t.y-50}}})}let i0={agent:ru},i1={link:rh};function i2(e){return`alook-canvas-positions-${e}`}function i3(e){return`alook-canvas-layout-${e}`}function i5(e,t){let n={};for(let e of t)n[e.id]=e.position;try{localStorage.setItem(i2(e),JSON.stringify(n))}catch{}}function i4({onAgentClick:e}){let t=(0,v.useRouter)(),{agents:n,runtimes:o,loading:r,activeTaskCounts:i,agentLinks:a,pendingNewAgent:s,clearPendingNewAgent:l}=(0,o6.useAgentContext)(),{slug:d,workspaceId:c}=(0,o7.useWorkspace)(),{zoomIn:u,zoomOut:h,fitView:f}=ni(),g=(0,x.useRef)(null),[p,b]=(0,x.useState)([]),[w,E]=(0,x.useState)([]),[k,S]=(0,x.useState)([]),C=!r,[_,N]=(0,x.useState)(null),[M,j]=(0,x.useState)(!1),[O,P]=(0,x.useState)(!1),[I,A]=(0,x.useState)(()=>(function(e){try{let t=localStorage.getItem(i3(e));if("star"===t||"tree"===t||"flow"===t)return t}catch{}return"tree"})(c)),z=(0,x.useRef)(!1),L=(0,x.useRef)({});(0,x.useEffect)(()=>{r||S(a)},[a,r]),(0,x.useEffect)(()=>{if(!C)return;let e=new Map(p.map(e=>[e.id,e.position])),t=k.map(t=>{let n=L.current[t.id],o=n?.sourceHandle,r=n?.targetHandle;if(!o||!r){let n=e.get(t.source_agent_id),i=e.get(t.target_agent_id);if(n&&i){let e=i.x-n.x,t=i.y-n.y;Math.abs(e)>=Math.abs(t)?(o=e>=0?"right":"left",r=e>=0?"target-left":"target-right"):(o=t>=0?"bottom":"top",r=t>=0?"target-top":"target-bottom")}else o="right",r="target-left"}return{id:t.id,source:t.source_agent_id,target:t.target_agent_id,sourceHandle:o,targetHandle:r,type:"link",data:{instruction:t.instruction,onEdgeClick:e=>{let t=k.find(t=>t.id===e);t&&(N(t),j(!0))}},selected:_?.id===t.id&&M}});E(t),P(0===t.length)},[k,C,_,M,p]),(0,x.useEffect)(()=>{if(r||0===n.length)return;let e=function(e){try{let t=localStorage.getItem(i2(e));return t?JSON.parse(t):{}}catch{return{}}}(c),t=new Set(n.map(e=>e.id)),a={};for(let[n,o]of Object.entries(e))t.has(n)&&(a[n]=o);let u=n.map((e,t)=>({id:e.id,type:"agent",position:a[e.id]??{x:0,y:0},data:{agent:e,runtimes:o,activeTaskCount:i[e.id]??0,slug:d,index:t}})),h=Object.keys(a).length>0,g=n.filter(e=>!a[e.id]).map(e=>e.id);(h||C)&&(h&&g.length>0&&!C&&(u=u.filter(e=>a[e.id])),h?g.length>0&&C&&(i5(c,u=u.map(e=>{let t;if(a[e.id])return e;if(s&&e.id===s.agentId&&(t=s.parentAgentId),!t){let n=k.find(t=>t.source_agent_id===e.id&&a[t.target_agent_id]||t.target_agent_id===e.id&&a[t.source_agent_id]);n&&(t=n.source_agent_id===e.id?n.target_agent_id:n.source_agent_id)}let n=g.indexOf(e.id);if(t&&a[t]){let o,r=a[t];switch(I){case"tree":o={x:r.x+300*n,y:r.y+200};break;case"flow":o={x:r.x+350,y:r.y+150*n};break;default:o={x:r.x+300,y:r.y+100+150*n}}return{...e,position:o}}let o=Object.values(a),r=o.reduce((e,t)=>e+t.x,0)/o.length,i=o.reduce((e,t)=>e+t.y,0)/o.length;return{...e,position:{x:r+350+300*n,y:i}}})),setTimeout(()=>f({padding:.4,duration:400,includeHiddenNodes:!1}),50),s&&l()):C&&(u=iQ(u,k.map(e=>({id:e.id,source:e.source_agent_id,target:e.target_agent_id})),I),z.current||(z.current=!0,setTimeout(()=>f({padding:.4,duration:400}),50)),s&&l()),b(u))},[n,o,i,d,r,c,C,k,f,I,s,l]);let R=(0,x.useCallback)(e=>{b(t=>t2(e,t))},[]),D=(0,x.useCallback)(e=>{E(t=>t2(e,t))},[]),$=(0,x.useCallback)(()=>{b(e=>(i5(c,e),e))},[c]),T=(0,x.useCallback)(async e=>{if(e.source&&e.target)try{let t=await (0,ra.createAgentLink)({source_agent_id:e.source,target_agent_id:e.target},c);(0,rd.trackAgentLinkCreated)({source_agent:e.source,target_agent:e.target}),(e.sourceHandle||e.targetHandle)&&(L.current[t.id]={sourceHandle:e.sourceHandle??"right",targetHandle:e.targetHandle??"target-left"}),S(e=>[...e,t]),P(!1)}catch(e){e instanceof rl.ApiError?409===e.status?rs.toast.error("Link already exists"):400===e.status?rs.toast.error("Can't link an agent to itself"):rs.toast.error("Failed to create link"):rs.toast.error("Failed to create link")}},[c]),B=(0,x.useCallback)(async(e,t)=>{try{let n=await (0,ra.updateAgentLink)(e,{instruction:t},c);S(t=>t.map(t=>t.id===e?n:t))}catch{rs.toast.error("Failed to update link")}},[c]),H=(0,x.useCallback)(async e=>{try{await (0,ra.deleteAgentLink)(e,c),S(t=>t.filter(t=>t.id!==e)),j(!1)}catch{rs.toast.error("Failed to delete link")}},[c]),V=(0,x.useCallback)(e=>{(0,rd.trackCanvasLayoutChanged)({layout_type:e}),A(e);try{localStorage.setItem(i3(c),e)}catch{}try{localStorage.removeItem(i2(c))}catch{}let t=k.map(e=>({id:e.id,source:e.source_agent_id,target:e.target_agent_id}));b(n=>{let o=iQ(n,t,e).map(e=>({...e,style:{...e.style,transition:"transform 300ms ease-out"}}));return setTimeout(()=>{b(e=>{let t=e.map(e=>({...e,style:{...e.style,transition:void 0}}));return i5(c,t),t}),f({padding:.4,duration:400})},350),o})},[k,c,f]),F=(0,x.useCallback)((n,o)=>{let r=o.data;j(!1),e?e(r.agent):t.push(`/w/${d}/agents/${r.agent.id}`)},[t,d,e]),Z=(0,x.useMemo)(()=>({stroke:"var(--color-primary)",strokeWidth:1.5,strokeDasharray:"6 4",opacity:.5}),[]);return(0,y.jsxs)("div",{ref:g,className:"flex-1 relative",children:[(0,y.jsx)(oE,{nodes:p,edges:w,nodeTypes:i0,edgeTypes:i1,onNodesChange:R,onEdgesChange:D,onConnect:T,onNodeClick:F,onNodeDragStop:$,connectionLineStyle:Z,fitView:!0,fitViewOptions:{padding:.4,maxZoom:1},minZoom:.25,maxZoom:2.5,zoomOnScroll:!0,panOnScroll:!1,proOptions:{hideAttribution:!0},children:(0,y.jsx)(oO,{variant:m.Dots,gap:24,size:1.5,color:"var(--color-border)"})}),(0,y.jsxs)("div",{className:"absolute bottom-4 left-4 z-40 bg-background/80 backdrop-blur-sm rounded-lg ring-1 ring-foreground/5 p-1 flex gap-0.5 animate-[fade-up_300ms_ease-out_both]",style:{animationDelay:"200ms"},children:[(0,y.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>u(),children:(0,y.jsx)(oU,{className:"size-4"})}),(0,y.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>h(),children:(0,y.jsx)(oG,{className:"size-4"})}),(0,y.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>f({padding:.4,duration:400}),children:(0,y.jsx)(oq,{className:"size-4"})}),(0,y.jsx)("div",{className:"w-px h-5 bg-foreground/10 mx-0.5 self-center"}),(0,y.jsxs)(rn.Popover,{children:[(0,y.jsxs)(rt.Tooltip,{children:[(0,y.jsx)(rt.TooltipTrigger,{render:(0,y.jsx)(rn.PopoverTrigger,{render:(0,y.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors"}),children:(0,y.jsx)(o0.LayoutGrid,{className:"size-3.5"})})}),(0,y.jsx)(rt.TooltipContent,{side:"top",children:"Layout"})]}),(0,y.jsx)(rn.PopoverContent,{className:"w-36 p-1",align:"start",side:"top",sideOffset:8,children:[{type:"star",label:"Star",icon:o1},{type:"tree",label:"Tree",icon:o2.GitBranch},{type:"flow",label:"Flow",icon:o3.ArrowRight}].map(({type:e,label:t,icon:n})=>(0,y.jsxs)("button",{type:"button",className:(0,o4.cn)("w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors",I===e?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground hover:bg-accent/50"),onClick:()=>V(e),children:[(0,y.jsx)(n,{className:"size-3.5"}),(0,y.jsx)("span",{className:"flex-1 text-left",children:t}),I===e&&(0,y.jsx)(o5.Check,{className:"size-3.5"})]},e))})]})]}),O&&(0,y.jsx)("div",{className:"absolute bottom-14 left-4 z-40 text-xs text-muted-foreground bg-background/80 backdrop-blur-sm rounded-md px-3 py-1.5 ring-1 ring-foreground/5",children:"Drag between agent handles to create relationships."}),(0,y.jsx)(ry,{open:M,onOpenChange:j,link:_,agents:n,onSave:B,onDelete:H}),(0,y.jsxs)("div",{className:"absolute bottom-4 right-4 z-10 flex flex-wrap justify-end items-end gap-2",children:[(0,y.jsx)(r_,{}),(0,y.jsx)(rk,{})]}),(0,y.jsxs)(rt.Tooltip,{children:[(0,y.jsx)(rt.TooltipTrigger,{render:(0,y.jsx)("button",{type:"button",className:"absolute top-4 right-4 z-40 size-8 rounded-lg bg-background/80 backdrop-blur-sm ring-1 ring-foreground/5 flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors animate-[fade-up_300ms_ease-out_both]",style:{animationDelay:"200ms"},onClick:()=>t.push(`/w/${d}/agents/new`)}),children:(0,y.jsx)(oJ.Plus,{className:"size-4"})}),(0,y.jsx)(rt.TooltipContent,{children:"Create new agent"})]})]})}function i6({onAgentClick:e}){let t=(0,v.useRouter)(),{agents:n,runtimes:o,loading:r,activeTaskCounts:i}=(0,o6.useAgentContext)(),{slug:a}=(0,o7.useWorkspace)();if(r)return(0,y.jsx)("div",{className:"flex flex-col gap-1 p-4",children:[void 0,void 0,void 0,void 0].map((e,t)=>(0,y.jsx)("div",{className:"animate-pulse rounded-xl bg-muted h-15"},t))});let s=n=>{e?e(n):t.push(`/w/${a}/agents/${n.id}`)};return(0,y.jsxs)("div",{className:"relative flex-1 flex flex-col min-h-0",children:[(0,y.jsx)("div",{className:"flex flex-col gap-1 p-4 overflow-y-auto thin-scrollbar flex-1 min-h-0",children:n.map(e=>{let t,n=o.find(t=>t.id===e.runtime_id),r=n?.status==="online";return(0,y.jsxs)("div",{role:"button",tabIndex:0,className:"flex items-center gap-3 w-full rounded-xl px-3 py-2.5 hover:bg-accent/50 active:bg-accent/70 transition-colors cursor-pointer text-left",onClick:()=>s(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),s(e))},children:[(t=(0,ri.parseAvatarUrl)(e.avatar_url))?(0,y.jsx)(rr.AnimatedAvatar,{config:t,size:36,className:"shrink-0 rounded-xl",isHovered:!1,isWorking:r&&(i[e.id]??0)>0}):(0,y.jsx)("div",{className:"flex items-center justify-center size-9 rounded-xl bg-secondary text-secondary-foreground text-sm font-medium shrink-0",children:e.name.charAt(0).toUpperCase()}),(0,y.jsx)("div",{className:"min-w-0 flex-1",children:(0,y.jsx)(ro.AgentPreviewCard,{agent:e,isOnline:r,activeTaskCount:i[e.id]??0})})]},e.id)})}),(0,y.jsxs)(rt.Tooltip,{children:[(0,y.jsx)(rt.TooltipTrigger,{render:(0,y.jsx)("button",{type:"button",className:"absolute top-4 right-4 size-8 rounded-lg bg-background/80 backdrop-blur-sm ring-1 ring-foreground/5 flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>t.push(`/w/${a}/agents/new`)}),children:(0,y.jsx)(oJ.Plus,{className:"size-4"})}),(0,y.jsx)(rt.TooltipContent,{children:"Create new agent"})]})]})}e.s(["default",0,function(){let e=(0,v.useRouter)(),{agents:t,loading:n}=(0,o6.useAgentContext)(),{workspaceId:o}=(0,o7.useWorkspace)(),r=(0,o8.useIsMobile)(),{openAgentChat:i}=(0,o9.useAgentChatSheet)(),a=(0,x.useCallback)(e=>{i(e.id)},[i]);return n?(0,y.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,y.jsx)(oQ.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}):0===t.length?(0,y.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,y.jsxs)("div",{className:"text-center animate-[fade-up_400ms_ease-out_both]",children:[(0,y.jsx)("p",{className:"text-muted-foreground text-sm",children:"Build your AI company"}),(0,y.jsx)(re.Button,{size:"sm",className:"mt-4 glow-border",onClick:()=>e.push(`/studio/new?workspace_id=${o}`),children:"Get Started"})]})}):r?(0,y.jsx)(i6,{onAgentClick:a}):(0,y.jsx)(ov,{children:(0,y.jsx)(i4,{onAgentClick:a})})}],614191)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,614191,e=>{"use strict";var t,n,o,r,i,a,s,l,d,c,u,h,f,g,p,m,x=e.i(653772),y=e.i(511043),v=e.i(126942);function b(e){if("string"==typeof e||"number"==typeof e)return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)""!==(o=b(e[n]))&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}e.i(811374);var w=e.i(8164),E=e.i(692423),k=e.i(954542),S=e.i(816947),C=e.i(811975);let _=e=>()=>e;function N(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:l,dy:d,dispatch:c}){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:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:l,enumerable:!0,configurable:!0},dy:{value:d,enumerable:!0,configurable:!0},_:{value:c}})}function j(e){return!e.ctrlKey&&!e.button}function M(){return this.parentNode}function O(e,t){return null==t?{x:e.x,y:e.y}:t}function P(){return navigator.maxTouchPoints||"ontouchstart"in this}function I(){var e,t,n,o,r=j,i=M,a=O,s=P,l={},d=(0,w.dispatch)("start","drag","end"),c=0,u=0;function h(e){e.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",x,C.nonpassive).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var l=v(this,i.call(this,a,s),a,s,"mouse");l&&((0,E.select)(a.view).on("mousemove.drag",g,C.nonpassivecapture).on("mouseup.drag",p,C.nonpassivecapture),(0,S.default)(a.view),(0,C.nopropagation)(a),n=!1,e=a.clientX,t=a.clientY,l("start",a))}}function g(o){if((0,C.default)(o),!n){var r=o.clientX-e,i=o.clientY-t;n=r*r+i*i>u}l.mouse("drag",o)}function p(e){(0,E.select)(e.view).on("mousemove.drag mouseup.drag",null),(0,S.yesdrag)(e.view,n),(0,C.default)(e),l.mouse("end",e)}function m(e,t){if(r.call(this,e,t)){var n,o,a=e.changedTouches,s=i.call(this,e,t),l=a.length;for(n=0;n<l;++n)(o=v(this,s,e,t,a[n].identifier,a[n]))&&((0,C.nopropagation)(e),o("start",e,a[n]))}}function x(e){var t,n,o=e.changedTouches,r=o.length;for(t=0;t<r;++t)(n=l[o[t].identifier])&&((0,C.default)(e),n("drag",e,o[t]))}function y(e){var t,n,r=e.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout(function(){o=null},500),t=0;t<i;++t)(n=l[r[t].identifier])&&((0,C.nopropagation)(e),n("end",e,r[t]))}function v(e,t,n,o,r,i){var s,u,f,g=d.copy(),p=(0,k.pointer)(i||n,t);if(null!=(f=a.call(e,new N("beforestart",{sourceEvent:n,target:h,identifier:r,active:c,x:p[0],y:p[1],dx:0,dy:0,dispatch:g}),o)))return s=f.x-p[0]||0,u=f.y-p[1]||0,function n(i,a,d){var m,x=p;switch(i){case"start":l[r]=n,m=c++;break;case"end":delete l[r],--c;case"drag":p=(0,k.pointer)(d||a,t),m=c}g.call(i,e,new N(i,{sourceEvent:a,subject:f,target:h,identifier:r,active:m,x:p[0]+s,y:p[1]+u,dx:p[0]-x[0],dy:p[1]-x[1],dispatch:g}),o)}}return h.filter=function(e){return arguments.length?(r="function"==typeof e?e:_(!!e),h):r},h.container=function(e){return arguments.length?(i="function"==typeof e?e:_(e),h):i},h.subject=function(e){return arguments.length?(a="function"==typeof e?e:_(e),h):a},h.touchable=function(e){return arguments.length?(s="function"==typeof e?e:_(!!e),h):s},h.on=function(){var e=d.on.apply(d,arguments);return e===d?h:e},h.clickDistance=function(e){return arguments.length?(u=(e*=1)*e,h):Math.sqrt(u)},h}N.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e},e.i(250149);var z=e.i(953752),z=z,A=e.i(644200),A=A,L=A,R=e.i(274017),D=e.i(678152);let $=[[-1/0,-1/0],[1/0,1/0]],T=["Enter"," ","Escape"],B={"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"};(t=d||(d={})).Strict="strict",t.Loose="loose",(n=c||(c={})).Free="free",n.Vertical="vertical",n.Horizontal="horizontal",(o=u||(u={})).Partial="partial",o.Full="full";let H={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};(r=h||(h={})).Bezier="default",r.Straight="straight",r.Step="step",r.SmoothStep="smoothstep",r.SimpleBezier="simplebezier",(i=f||(f={})).Arrow="arrow",i.ArrowClosed="arrowclosed",(a=g||(g={})).Left="left",a.Top="top",a.Right="right",a.Bottom="bottom";let V={[g.Left]:g.Right,[g.Right]:g.Left,[g.Top]:g.Bottom,[g.Bottom]:g.Top};function F(e){return null===e?null:e?"valid":"invalid"}let Z=e=>"id"in e&&"source"in e&&"target"in e,X=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),W=(e,t=[0,0])=>{let{width:n,height:o}=eb(e),r=e.origin??t,i=n*r[0],a=o*r[1];return{x:e.position.x-i,y:e.position.y-a}},K=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(e=>{(void 0===t.filter||t.filter(e))&&(n=eo(n,es(e)),o=!0)}),o?ei(n):{x:0,y:0,width:0,height:0}},Y=(e,t,[n,o,r]=[0,0,1],i=!1,a=!1)=>{let s={...eg(t,[n,o,r]),width:t.width/r,height:t.height/r},l=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:o=!1}=t;if(a&&!n||o)continue;let r=e.width??t.width??t.initialWidth??null,d=e.height??t.height??t.initialHeight??null,c=ed(s,ea(t)),u=(r??0)*(d??0),h=i&&c>0;(!t.internals.handleBounds||h||c>=u||t.dragging)&&l.push(t)}return l};async function U({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},a){let s,l;if(0===e.size)return!0;let d=ex(K((s=new Map,l=a?.nodes?new Set(a.nodes.map(e=>e.id)):null,e.forEach(e=>{e.measured.width&&e.measured.height&&(a?.includeHiddenNodes||!e.hidden)&&(!l||l.has(e.id))&&s.set(e.id,e)}),s)),t,n,a?.minZoom??r,a?.maxZoom??i,a?.padding??.1);return await o.setViewport(d,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),!0}function G({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){let a=n.get(e),s=a.parentId?n.get(a.parentId):void 0,{x:l,y:d}=s?s.internals.positionAbsolute:{x:0,y:0},c=a.origin??o,u=a.extent||r;if("parent"!==a.extent||a.expandParent)s&&ev(a.extent)&&(u=[[a.extent[0][0]+l,a.extent[0][1]+d],[a.extent[1][0]+l,a.extent[1][1]+d]]);else if(s){let e=s.measured.width,t=s.measured.height;e&&t&&(u=[[l,d],[l+e,d+t]])}else i?.("005","Only child nodes can use a parent extent.");let h=ev(u)?J(t,u,a.measured):t;return(void 0===a.measured.width||void 0===a.measured.height)&&i?.("015","It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."),{position:{x:h.x-l+(a.measured.width??0)*c[0],y:h.y-d+(a.measured.height??0)*c[1]},positionAbsolute:h}}async function q({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){let i,a=new Set(e.map(e=>e.id)),s=[];for(let e of n){if(!1===e.deletable)continue;let t=a.has(e.id),n=!t&&e.parentId&&s.find(t=>t.id===e.parentId);(t||n)&&s.push(e)}let l=new Set(t.map(e=>e.id)),d=o.filter(e=>!1!==e.deletable),c=(i=new Set,s.forEach(e=>{i.add(e.id)}),d.filter(e=>i.has(e.source)||i.has(e.target)));for(let e of d)l.has(e.id)&&!c.find(t=>t.id===e.id)&&c.push(e);if(!r)return{edges:c,nodes:s};let u=await r({nodes:s,edges:c});return"boolean"==typeof u?u?{edges:c,nodes:s}:{edges:[],nodes:[]}:u}let Q=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),J=(e={x:0,y:0},t,n)=>({x:Q(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Q(e.y,t[0][1],t[1][1]-(n?.height??0))});function ee(e,t,n){let{width:o,height:r}=eb(n),{x:i,y:a}=n.internals.positionAbsolute;return J(e,[[i,a],[i+o,a+r]],t)}let et=(e,t,n)=>e<t?Q(Math.abs(e-t),1,t)/t:e>n?-Q(Math.abs(e-n),1,t)/t:0,en=(e,t,n=15,o=40)=>[et(e.x,o,t.width-o)*n,et(e.y,o,t.height-o)*n],eo=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),er=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),ei=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),ea=(e,t=[0,0])=>{let{x:n,y:o}=X(e)?e.internals.positionAbsolute:W(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},es=(e,t=[0,0])=>{let{x:n,y:o}=X(e)?e.internals.positionAbsolute:W(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},el=(e,t)=>ei(eo(er(e),er(t))),ed=(e,t)=>Math.ceil(Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))),ec=e=>eu(e.width)&&eu(e.height)&&eu(e.x)&&eu(e.y),eu=e=>!isNaN(e)&&isFinite(e),eh=(e,t)=>(e,t)=>{},ef=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),eg=({x:e,y:t},[n,o,r],i=!1,a=[1,1])=>{let s={x:(e-n)/r,y:(t-o)/r};return i?ef(s,a):s},ep=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function em(e,t){if("number"==typeof e)return Math.floor((t-t/(1+e))*.5);if("string"==typeof e&&e.endsWith("px")){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if("string"==typeof e&&e.endsWith("%")){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let ex=(e,t,n,o,r,i)=>{let a=function(e,t,n){if("string"==typeof e||"number"==typeof e){let o=em(e,n),r=em(e,t);return{top:o,right:r,bottom:o,left:r,x:2*r,y:2*o}}if("object"==typeof e){let o=em(e.top??e.y??0,n),r=em(e.bottom??e.y??0,n),i=em(e.left??e.x??0,t),a=em(e.right??e.x??0,t);return{top:o,right:a,bottom:r,left:i,x:i+a,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(i,t,n),s=Q(Math.min((t-a.x)/e.width,(n-a.y)/e.height),o,r),l=e.x+e.width/2,d=e.y+e.height/2,c=t/2-l*s,u=n/2-d*s,h=function(e,t,n,o,r,i){let{x:a,y:s}=ep(e,[t,n,o]),{x:l,y:d}=ep({x:e.x+e.width,y:e.y+e.height},[t,n,o]);return{left:Math.floor(a),top:Math.floor(s),right:Math.floor(r-l),bottom:Math.floor(i-d)}}(e,c,u,s,t,n),f={left:Math.min(h.left-a.left,0),top:Math.min(h.top-a.top,0),right:Math.min(h.right-a.right,0),bottom:Math.min(h.bottom-a.bottom,0)};return{x:c-f.left+f.right,y:u-f.top+f.bottom,zoom:s}},ey=()=>"u">typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function ev(e){return null!=e&&"parent"!==e}function eb(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ew(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function eE(e,t={width:0,height:0},n,o,r){let i={...e},a=o.get(n);if(a){let e=a.origin||r;i.x+=a.internals.positionAbsolute.x-(t.width??0)*e[0],i.y+=a.internals.positionAbsolute.y-(t.height??0)*e[1]}return i}function ek(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function eS(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){let{x:i,y:a}=eM(e),s=eg({x:i-(r?.left??0),y:a-(r?.top??0)},o),{x:l,y:d}=n?ef(s,t):s;return{xSnapped:l,ySnapped:d,...s}}let eC=e=>({width:e.offsetWidth,height:e.offsetHeight}),e_=e=>e?.getRootNode?.()||window?.document,eN=["INPUT","SELECT","TEXTAREA"];function ej(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1&&(eN.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey"))}let eM=(e,t)=>{let n="clientX"in e,o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},eO=(e,t,n,o,r)=>{let i=t.querySelectorAll(`.${e}`);return i&&i.length?Array.from(i).map(t=>{let i=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),type:e,nodeId:r,position:t.getAttribute("data-handlepos"),x:(i.left-n.left)/o,y:(i.top-n.top)/o,...eC(t)}}):null};function eP({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){let l=.125*e+.375*r+.375*a+.125*n,d=.125*t+.375*i+.375*s+.125*o,c=Math.abs(l-e),u=Math.abs(d-t);return[l,d,c,u]}function eI(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function ez({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case g.Left:return[t-eI(t-o,i),n];case g.Right:return[t+eI(o-t,i),n];case g.Top:return[t,n-eI(n-r,i)];case g.Bottom:return[t,n+eI(r-n,i)]}}function eA({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:o,targetY:r,targetPosition:i=g.Top,curvature:a=.25}){let[s,l]=ez({pos:n,x1:e,y1:t,x2:o,y2:r,c:a}),[d,c]=ez({pos:i,x1:o,y1:r,x2:e,y2:t,c:a}),[u,h,f,p]=eP({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:l,targetControlX:d,targetControlY:c});return[`M${e},${t} C${s},${l} ${d},${c} ${o},${r}`,u,h,f,p]}function eL({sourceX:e,sourceY:t,targetX:n,targetY:o}){let r=Math.abs(n-e)/2,i=Math.abs(o-t)/2;return[n<e?n+r:n-r,o<t?o+i:o-i,r,i]}let eR=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`;function eD({sourceX:e,sourceY:t,targetX:n,targetY:o}){let[r,i,a,s]=eL({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,a,s]}let e$={[g.Left]:{x:-1,y:0},[g.Right]:{x:1,y:0},[g.Top]:{x:0,y:-1},[g.Bottom]:{x:0,y:1}},eT=({source:e,sourcePosition:t=g.Bottom,target:n})=>t===g.Left||t===g.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},eB=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function eH({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:o,targetY:r,targetPosition:i=g.Top,borderRadius:a=5,centerX:s,centerY:l,offset:d=20,stepPosition:c=.5}){let[u,h,f,p,m]=function({source:e,sourcePosition:t=g.Bottom,target:n,targetPosition:o=g.Top,center:r,offset:i,stepPosition:a}){let s,l,d=e$[t],c=e$[o],u={x:e.x+d.x*i,y:e.y+d.y*i},h={x:n.x+c.x*i,y:n.y+c.y*i},f=eT({source:u,sourcePosition:t,target:h}),p=0!==f.x?"x":"y",m=f[p],x=[],y={x:0,y:0},v={x:0,y:0},[,,b,w]=eL({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(d[p]*c[p]==-1){"x"===p?(s=r.x??u.x+(h.x-u.x)*a,l=r.y??(u.y+h.y)/2):(s=r.x??(u.x+h.x)/2,l=r.y??u.y+(h.y-u.y)*a);let e=[{x:s,y:u.y},{x:s,y:h.y}],t=[{x:u.x,y:l},{x:h.x,y:l}];x=d[p]===m?"x"===p?e:t:"x"===p?t:e}else{let r=[{x:u.x,y:h.y}],a=[{x:h.x,y:u.y}];if(x="x"===p?d.x===m?a:r:d.y===m?r:a,t===o){let t=Math.abs(e[p]-n[p]);if(t<=i){let o=Math.min(i-1,i-t);d[p]===m?y[p]=(u[p]>e[p]?-1:1)*o:v[p]=(h[p]>n[p]?-1:1)*o}}if(t!==o){let e="x"===p?"y":"x",t=d[p]===c[e],n=u[e]>h[e],o=u[e]<h[e];(1===d[p]&&(!t&&n||t&&o)||1!==d[p]&&(!t&&o||t&&n))&&(x="x"===p?r:a)}let f={x:u.x+y.x,y:u.y+y.y},g={x:h.x+v.x,y:h.y+v.y};Math.max(Math.abs(f.x-x[0].x),Math.abs(g.x-x[0].x))>=Math.max(Math.abs(f.y-x[0].y),Math.abs(g.y-x[0].y))?(s=(f.x+g.x)/2,l=x[0].y):(s=x[0].x,l=(f.y+g.y)/2)}let E={x:u.x+y.x,y:u.y+y.y},k={x:h.x+v.x,y:h.y+v.y};return[[e,...E.x!==x[0].x||E.y!==x[0].y?[E]:[],...x,...k.x!==x[x.length-1].x||k.y!==x[x.length-1].y?[k]:[],n],s,l,b,w]}({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:s,y:l},offset:d,stepPosition:c}),x=`M${u[0].x} ${u[0].y}`;for(let e=1;e<u.length-1;e++)x+=function(e,t,n,o){let r=Math.min(eB(e,t)/2,eB(t,n)/2,o),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){let t=e.x<n.x?-1:1,o=e.y<n.y?1:-1;return`L ${i+r*t},${a}Q ${i},${a} ${i},${a+r*o}`}let s=e.x<n.x?1:-1,l=e.y<n.y?-1:1;return`L ${i},${a+r*l}Q ${i},${a} ${i+r*s},${a}`}(u[e-1],u[e],u[e+1],a);return[x+=`L${u[u.length-1].x} ${u[u.length-1].y}`,h,f,p,m]}function eV(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function eF(e){if(!e)return null;let t=[],n=[];for(let o of e)o.width=o.width??1,o.height=o.height??1,"source"===o.type?t.push(o):"target"===o.type&&n.push(o);return{source:t,target:n}}function eZ(e,t,n=g.Left,o=!1){let r=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:a,height:s}=t??eb(e);if(o)return{x:r+a/2,y:i+s/2};switch(t?.position??n){case g.Top:return{x:r+a/2,y:i};case g.Right:return{x:r+a,y:i+s/2};case g.Bottom:return{x:r+a/2,y:i+s};case g.Left:return{x:r,y:i+s/2}}}function eX(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function eW(e,t){if(!e)return"";if("string"==typeof e)return e;let n=t?`${t}__`:"";return`${n}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`}let eK={nodeOrigin:[0,0],nodeExtent:$,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},eY={...eK,checkEquality:!0};function eU(e,t){let n={...e};for(let e in t)void 0!==t[e]&&(n[e]=t[e]);return n}function eG(e){return"manual"===e}function eq(e,t,n,o={}){let r=eU(eY,o),i={i:0},a=new Map(t),s=r?.elevateNodesOnSelect&&!eG(r.zIndexMode)?1e3:0,l=e.length>0,d=!1;for(let c of(t.clear(),n.clear(),e)){let e=a.get(c.id);if(r.checkEquality&&c===e?.internals.userNode)t.set(c.id,e);else{let n=J(W(c,r.nodeOrigin),ev(c.extent)?c.extent:r.nodeExtent,eb(c));e={...r.defaults,...c,measured:{width:c.measured?.width,height:c.measured?.height},internals:{positionAbsolute:n,handleBounds:function(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;let n=[],o=[];for(let t of e.handles){let r={id:t.id,width:t.width??1,height:t.height??1,nodeId:e.id,x:t.x,y:t.y,position:t.position,type:t.type};"source"===t.type?n.push(r):"target"===t.type&&o.push(r)}return{source:n,target:o}}(c,e),z:eJ(c,s,r.zIndexMode),userNode:c}},t.set(c.id,e)}void 0!==e.measured&&void 0!==e.measured.width&&void 0!==e.measured.height||e.hidden||(l=!1),c.parentId&&eQ(e,t,n,o,i),d||=c.selected??!1}return{nodesInitialized:l,hasSelectedNodes:d}}function eQ(e,t,n,o,r){let{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:s,zIndexMode:l}=eU(eK,o),d=e.parentId,c=t.get(d);if(!c)return void console.warn(`Parent node ${d} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}(e,n),r&&!c.parentId&&void 0===c.internals.rootParentIndex&&"auto"===l&&(c.internals.rootParentIndex=++r.i,c.internals.z=c.internals.z+10*r.i),r&&void 0!==c.internals.rootParentIndex&&(r.i=c.internals.rootParentIndex);let{x:u,y:h,z:f}=function(e,t,n,o,r,i){let{x:a,y:s}=t.internals.positionAbsolute,l=eb(e),d=W(e,n),c=ev(e.extent)?J(d,e.extent,l):d,u=J({x:a+c.x,y:s+c.y},o,l);"parent"===e.extent&&(u=ee(u,l,t));let h=eJ(e,r,i),f=t.internals.z??0;return{x:u.x,y:u.y,z:f>=h?f+1:h}}(e,c,a,s,i&&!eG(l)?1e3:0,l),{positionAbsolute:g}=e.internals,p=u!==g.x||h!==g.y;(p||f!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:p?{x:u,y:h}:g,z:f}})}function eJ(e,t,n){let o=eu(e.zIndex)?e.zIndex:0;return eG(n)?o:o+(e.selected?t:0)}function e0(e,t,n,o=[0,0]){let r=[],i=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let o=el(i.get(n.parentId)?.expandedRect??ea(e),n.rect);i.set(n.parentId,{expandedRect:o,parent:e})}return i.size>0&&i.forEach(({expandedRect:t,parent:i},a)=>{let s=i.internals.positionAbsolute,l=eb(i),d=i.origin??o,c=t.x<s.x?Math.round(Math.abs(s.x-t.x)):0,u=t.y<s.y?Math.round(Math.abs(s.y-t.y)):0,h=Math.max(l.width,Math.round(t.width)),f=Math.max(l.height,Math.round(t.height)),g=(h-l.width)*d[0],p=(f-l.height)*d[1];(c>0||u>0||g||p)&&(r.push({id:a,type:"position",position:{x:i.position.x-c+g,y:i.position.y-u+p}}),n.get(a)?.forEach(t=>{e.some(e=>e.id===t.id)||r.push({id:t.id,type:"position",position:{x:t.position.x+c,y:t.position.y+u}})})),(l.width<t.width||l.height<t.height||c||u)&&r.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:h+(c?d[0]*c-g:0),height:f+(u?d[1]*u-p:0)}})}),r}async function e1({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;let a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}function e2(e,t,n,o,r,i){let a=r,s=o.get(a)||new Map;o.set(a,s.set(n,t)),a=`${r}-${e}`;let l=o.get(a)||new Map;if(o.set(a,l.set(n,t)),i){a=`${r}-${e}-${i}`;let s=o.get(a)||new Map;o.set(a,s.set(n,t))}}function e5(e,t,n){for(let o of(e.clear(),t.clear(),n)){let{source:n,target:r,sourceHandle:i=null,targetHandle:a=null}=o,s={edgeId:o.id,source:n,target:r,sourceHandle:i,targetHandle:a},l=`${n}-${i}--${r}-${a}`;e2("source",s,`${r}-${a}--${n}-${i}`,e,n,i),e2("target",s,l,e,r,a),t.set(o.id,o)}}function e3(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)break;o=o?.parentElement}while(o)return!1}function e4({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){let r=[];for(let[e,i]of t){let t=n.get(e)?.internals.userNode;t&&r.push({...t,position:i.position,dragging:o})}if(!e)return[r[0],r];let i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:o}:r[0],r]}function e6(e,t,n,o,r,i=!1){let a=o.get(e);if(!a)return null;let s="strict"===r?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],l=(n?s?.find(e=>e.id===n):s?.[0])??null;return l&&i?{...l,...eZ(a,l,l.position,!0)}:l}function e7(e,t){return e?e:t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null}let e8=()=>!0;function e9(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:i,doc:a,lib:s,flowId:l,isValidConnection:c=e8,nodeLookup:u}){let h="target"===i,f=t?a.querySelector(`.${s}-flow__handle[data-id="${l}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:g,y:p}=eM(e),m=a.elementFromPoint(g,p),x=m?.classList.contains(`${s}-flow__handle`)?m:f,y={handleDomNode:x,isValid:!1,connection:null,toHandle:null};if(x){let e=e7(void 0,x),t=x.getAttribute("data-nodeid"),i=x.getAttribute("data-handleid"),a=x.classList.contains("connectable"),s=x.classList.contains("connectableend");if(!t||!e)return y;let l={source:h?t:o,sourceHandle:h?i:r,target:h?o:t,targetHandle:h?r:i};y.connection=l,y.isValid=a&&s&&(n===d.Strict?h&&"source"===e||!h&&"target"===e:t!==o||i!==r)&&c(l),y.toHandle=e6(t,e,i,u,n,!0)}return y}let te=function(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:a,domNode:s,nodeLookup:l,lib:d,autoPanOnConnect:c,flowId:u,panBy:h,cancelConnection:f,onConnectStart:p,onConnect:m,onConnectEnd:x,isValidConnection:y=e8,onReconnectEnd:v,updateConnection:b,getTransform:w,getFromHandle:E,autoPanSpeed:k,dragThreshold:S=1,handleDomNode:C}){let _,N=e_(e.target),j=0,{x:M,y:O}=eM(e),P=e7(i,C),I=s?.getBoundingClientRect(),z=!1;if(!I||!P)return;let A=e6(r,P,o,l,t);if(!A)return;let L=eM(e,I),R=!1,D=null,$=!1,T=null,B={...A,nodeId:r,type:P,position:A.position},H=l.get(r),F={inProgress:!0,isValid:null,from:eZ(H,B,g.Left,!0),fromHandle:B,fromPosition:B.position,fromNode:H,to:L,toHandle:null,toPosition:V[B.position],toNode:null,pointer:L};function Z(){z=!0,b(F),p?.(e,{nodeId:r,handleId:o,handleType:P})}function X(e){var i,s;let f;if(!z){let{x:t,y:n}=eM(e),o=t-M,r=n-O;if(!(o*o+r*r>S*S))return;Z()}if(!E()||!B)return void W(e);let p=w();_=function(e,t,n,o){let r=[],i=1/0;for(let a of function(e,t,n){let o=[],r={x:e.x-n,y:e.y-n,width:2*n,height:2*n};for(let e of t.values())ed(r,ea(e))>0&&o.push(e);return o}(e,n,t+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(o.nodeId===n.nodeId&&o.type===n.type&&o.id===n.id)continue;let{x:s,y:l}=eZ(a,n,n.position,!0),d=Math.sqrt(Math.pow(s-e.x,2)+Math.pow(l-e.y,2));d>t||(d<i?(r=[{...n,x:s,y:l}],i=d):d===i&&r.push({...n,x:s,y:l}))}if(!r.length)return null;if(r.length>1){let e="source"===o.type?"target":"source";return r.find(t=>t.type===e)??r[0]}return r[0]}(eg(L=eM(e,I),p,!1,[1,1]),n,l,B),R||(!function e(){if(!c||!I)return;let[t,n]=en(L,I,k);h({x:t,y:n}),j=requestAnimationFrame(e)}(),R=!0);let m=e9(e,{handle:_,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:a?"target":"source",isValidConnection:y,doc:N,lib:d,flowId:u,nodeLookup:l});T=m.handleDomNode,D=m.connection,i=!!_,s=m.isValid,f=null,s?f=!0:i&&!s&&(f=!1),$=f;let x=l.get(r),v=x?eZ(x,B,g.Left,!0):F.from,C={...F,from:v,isValid:$,to:m.toHandle&&$?ep({x:m.toHandle.x,y:m.toHandle.y},p):L,toHandle:m.toHandle,toPosition:$&&m.toHandle?m.toHandle.position:V[B.position],toNode:m.toHandle?l.get(m.toHandle.nodeId):null,pointer:L};b(C),F=C}function W(e){if(!("touches"in e)||!(e.touches.length>0)){if(z){(_||T)&&D&&$&&m?.(D);let{inProgress:t,...n}=F,o={...n,toPosition:F.toHandle?F.toPosition:null};x?.(e,o),i&&v?.(e,o)}f(),cancelAnimationFrame(j),R=!1,$=!1,D=null,T=null,N.removeEventListener("mousemove",X),N.removeEventListener("mouseup",W),N.removeEventListener("touchmove",X),N.removeEventListener("touchend",W)}}0===S&&Z(),N.addEventListener("mousemove",X),N.addEventListener("mouseup",W),N.addEventListener("touchmove",X),N.addEventListener("touchend",W)},tt=e=>({x:e.x,y:e.y,zoom:e.k}),tn=({x:e,y:t,zoom:n})=>A.identity.translate(e,t).scale(n),to=(e,t)=>e.target.closest(`.${t}`),tr=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),ti=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ta=(e,t=0,n=ti,o=()=>{})=>{let r="number"==typeof t&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},ts=e=>{let t=e.ctrlKey&&ey()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t};function tl(e){let t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:e.includes("left"),affectsY:e.includes("top")}}function td(e,t){return Math.max(0,t-e)}function tc(e,t){return Math.max(0,e-t)}function tu(e,t,n){return Math.max(0,t-e,e-n)}(s=p||(p={})).Line="line",s.Handle="handle";let th={width:0,height:0,x:0,y:0},tf={...th,pointerX:0,pointerY:0,aspectRatio:1};var tg=e.i(976749);let tp={get url(){return`file://${e.P("node_modules/.pnpm/zustand@4.5.7_@types+react@19.2.17_react@19.2.7/node_modules/zustand/esm/vanilla.mjs")}`}},tm=e=>{let t,n=new Set,o=(e,o)=>{let r="function"==typeof e?e(t):e;if(!Object.is(r,t)){let e=t;t=(null!=o?o:"object"!=typeof r||null===r)?r:Object.assign({},t,r),n.forEach(n=>n(t,e))}},r=()=>t,i={setState:o,getState:r,getInitialState:()=>a,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{(tp.env?tp.env.MODE:void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},a=t=e(o,r,i);return i},{useDebugValue:tx}=y.default,{useSyncExternalStoreWithSelector:ty}=tg.default,tv=e=>e;function tb(e,t=tv,n){let o=ty(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return tx(o),o}let tw=(e,t)=>{let n=e?tm(e):tm,o=(e,o=t)=>tb(n,e,o);return Object.assign(o,n),o};function tE(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(let[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}let n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}var tk=e.i(280115);let tS=(0,y.createContext)(null),tC=tS.Provider,t_=((e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`)("react");function tN(e,t){let n=(0,y.useContext)(tS);if(null===n)throw Error(t_);return tb(n,e,t)}function tj(){let e=(0,y.useContext)(tS);if(null===e)throw Error(t_);return(0,y.useMemo)(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}let tM={display:"none"},tO={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},tP="react-flow__node-desc",tI="react-flow__edge-desc",tz=e=>e.ariaLiveMessage,tA=e=>e.ariaLabelConfig;function tL({rfId:e}){let t=tN(tz);return(0,x.jsx)("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:tO,children:t})}function tR({rfId:e,disableKeyboardA11y:t}){let n=tN(tA);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{id:`${tP}-${e}`,style:tM,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),(0,x.jsx)("div",{id:`${tI}-${e}`,style:tM,children:n["edge.a11yDescription.default"]}),!t&&(0,x.jsx)(tL,{rfId:e})]})}let tD=(0,y.forwardRef)(({position:e="top-left",children:t,className:n,style:o,...r},i)=>{let a=`${e}`.split("-");return(0,x.jsx)("div",{className:b(["react-flow__panel",n,...a]),style:o,ref:i,...r,children:t})});function t$({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:(0,x.jsx)(tD,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:(0,x.jsx)("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}tD.displayName="Panel";let tT=e=>{let t=[],n=[];for(let[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(let[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},tB=e=>e.id;function tH(e,t){return tE(e.selectedNodes.map(tB),t.selectedNodes.map(tB))&&tE(e.selectedEdges.map(tB),t.selectedEdges.map(tB))}function tV({onSelectionChange:e}){let t=tj(),{selectedNodes:n,selectedEdges:o}=tN(tT,tH);return(0,y.useEffect)(()=>{let r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(e=>e(r))},[n,o,e]),null}let tF=e=>!!e.onSelectionChangeHandlers;function tZ({onSelectionChange:e}){let t=tN(tF);return e||t?(0,x.jsx)(tV,{onSelectionChange:e}):null}let tX=[0,0],tW={x:0,y:0,zoom:1},tK=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode","rfId"],tY=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),tU={translateExtent:$,nodeOrigin:tX,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function tG(e){let{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:i,setNodeExtent:a,reset:s,setDefaultNodesAndEdges:l}=tN(tY,tE),d=tj();(0,y.useEffect)(()=>(l(e.defaultNodes,e.defaultEdges),()=>{c.current=tU,s()}),[]);let c=(0,y.useRef)(tU);return(0,y.useEffect)(()=>{for(let s of tK){let l=e[s];if(l!==c.current[s]&&void 0!==e[s])if("nodes"===s)t(l);else if("edges"===s)n(l);else if("minZoom"===s)o(l);else if("maxZoom"===s)r(l);else if("translateExtent"===s)i(l);else if("nodeExtent"===s)a(l);else if("ariaLabelConfig"===s)d.setState({ariaLabelConfig:{...B,...l||{}}});else"fitView"===s?d.setState({fitViewQueued:l}):"fitViewOptions"===s?d.setState({fitViewOptions:l}):d.setState({[s]:l})}c.current=e},tK.map(t=>e[t])),null}function tq(){return"u"<typeof window||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}let tQ="u">typeof document?document:null;function tJ(e=null,t={target:tQ,actInsideInputWithModifier:!0}){let[n,o]=(0,y.useState)(!1),r=(0,y.useRef)(!1),i=(0,y.useRef)(new Set([])),[a,s]=(0,y.useMemo)(()=>{if(null!==e){let t=(Array.isArray(e)?e:[e]).filter(e=>"string"==typeof e).map(e=>e.replace("+","\n").replace("\n\n","\n+").split("\n")),n=t.reduce((e,t)=>e.concat(...t),[]);return[t,n]}return[[],[]]},[e]);return(0,y.useEffect)(()=>{let n=t?.target??tQ,l=t?.actInsideInputWithModifier??!0;if(null!==e){let e=e=>{if(r.current=e.ctrlKey||e.metaKey||e.shiftKey||e.altKey,(!r.current||r.current&&!l)&&ej(e))return!1;let n=t1(e.code,s);if(i.current.add(e[n]),t0(a,i.current,!1)){let n=e.composedPath?.()?.[0]||e.target,i=n?.nodeName==="BUTTON"||n?.nodeName==="A";!1!==t.preventDefault&&(r.current||!i)&&e.preventDefault(),o(!0)}},d=e=>{let t=t1(e.code,s);t0(a,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(e[t]),"Meta"===e.key&&i.current.clear(),r.current=!1},c=()=>{i.current.clear(),o(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",d),window.addEventListener("blur",c),window.addEventListener("contextmenu",c),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",d),window.removeEventListener("blur",c),window.removeEventListener("contextmenu",c)}}},[e,o]),n}function t0(e,t,n){return e.filter(e=>n||e.length===t.size).some(e=>e.every(e=>t.has(e)))}function t1(e,t){return t.includes(e)?"code":"key"}function t2(e,t){let n=[],o=new Map,r=[];for(let t of e)if("add"===t.type){r.push(t);continue}else if("remove"===t.type||"replace"===t.type)o.set(t.id,[t]);else{let e=o.get(t.id);e?e.push(t):o.set(t.id,[t])}for(let e of t){let t=o.get(e.id);if(!t){n.push(e);continue}if("remove"===t[0].type)continue;if("replace"===t[0].type){n.push({...t[0].item});continue}let r={...e};for(let e of t){var i=e,a=r;switch(i.type){case"select":a.selected=i.selected;break;case"position":void 0!==i.position&&(a.position=i.position),void 0!==i.dragging&&(a.dragging=i.dragging);break;case"dimensions":void 0!==i.dimensions&&(a.measured={...i.dimensions},i.setAttributes&&((!0===i.setAttributes||"width"===i.setAttributes)&&(a.width=i.dimensions.width),(!0===i.setAttributes||"height"===i.setAttributes)&&(a.height=i.dimensions.height))),"boolean"==typeof i.resizing&&(a.resizing=i.resizing)}}n.push(r)}return r.length&&r.forEach(e=>{void 0!==e.index?n.splice(e.index,0,{...e.item}):n.push({...e.item})}),n}function t5(e,t){return{id:e,type:"select",selected:t}}function t3(e,t=new Set,n=!1){let o=[];for(let[r,i]of e){let e=t.has(r);(void 0!==i.selected||e)&&i.selected!==e&&(n&&(i.selected=e),o.push(t5(i.id,e)))}return o}function t4({items:e=[],lookup:t}){let n=[],o=new Map(e.map(e=>[e.id,e]));for(let[o,r]of e.entries()){let e=t.get(r.id),i=e?.internals?.userNode??e;void 0!==i&&i!==r&&n.push({id:r.id,item:r,type:"replace"}),void 0===i&&n.push({item:r,type:"add",index:o})}for(let[e]of t)void 0===o.get(e)&&n.push({id:e,type:"remove"});return n}function t6(e){return{id:e.id,type:"remove"}}let t7=eh("React Flow","https://reactflow.dev/"),t8=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e);function t9(e){return(0,y.forwardRef)(e)}let ne="u">typeof window?y.useLayoutEffect:y.useEffect;function nt(e){let[t,n]=(0,y.useState)(BigInt(0)),[o]=(0,y.useState)(()=>{var e;let t;return e=()=>n(e=>e+BigInt(1)),t=[],{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}});return ne(()=>{let t=o.get();t.length&&(e(t),o.reset())},[t]),o}let nn=(0,y.createContext)(null);function no({children:e}){let t=tj(),n=nt((0,y.useCallback)(e=>{let{nodes:n=[],setNodes:o,hasDefaultNodes:r,onNodesChange:i,nodeLookup:a,fitViewQueued:s,onNodesChangeMiddlewareMap:l}=t.getState(),d=n;for(let t of e)d="function"==typeof t?t(d):t;let c=t4({items:d,lookup:a});for(let e of l.values())c=e(c);r&&o(d),c.length>0?i?.(c):s&&window.requestAnimationFrame(()=>{let{fitViewQueued:e,nodes:n,setNodes:o}=t.getState();e&&o(n)})},[])),o=nt((0,y.useCallback)(e=>{let{edges:n=[],setEdges:o,hasDefaultEdges:r,onEdgesChange:i,edgeLookup:a}=t.getState(),s=n;for(let t of e)s="function"==typeof t?t(s):t;r?o(s):i&&i(t4({items:s,lookup:a}))},[])),r=(0,y.useMemo)(()=>({nodeQueue:n,edgeQueue:o}),[]);return(0,x.jsx)(nn.Provider,{value:r,children:e})}let nr=e=>!!e.panZoom;function ni(){let e,t=(e=tj(),(0,y.useMemo)(()=>({zoomIn:async t=>{let{panZoom:n}=e.getState();return!!n&&n.scaleBy(1.2,t)},zoomOut:async t=>{let{panZoom:n}=e.getState();return!!n&&n.scaleBy(1/1.2,t)},zoomTo:async(t,n)=>{let{panZoom:o}=e.getState();return!!o&&o.scaleTo(t,n)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{let{transform:[o,r,i],panZoom:a}=e.getState();return!!a&&(await a.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},n),!0)},getViewport:()=>{let[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{let{width:o,height:r,minZoom:i,maxZoom:a,panZoom:s}=e.getState(),l=ex(t,o,r,i,a,n?.padding??.1);return!!s&&(await s.setViewport(l,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0)},screenToFlowPosition:(t,n={})=>{let{transform:o,snapGrid:r,snapToGrid:i,domNode:a}=e.getState();if(!a)return t;let{x:s,y:l}=a.getBoundingClientRect(),d={x:t.x-s,y:t.y-l},c=n.snapGrid??r;return eg(d,o,n.snapToGrid??i,c)},flowToScreenPosition:t=>{let{transform:n,domNode:o}=e.getState();if(!o)return t;let{x:r,y:i}=o.getBoundingClientRect(),a=ep(t,n);return{x:a.x+r,y:a.y+i}}}),[])),n=tj(),o=function(){let e=(0,y.useContext)(nn);if(!e)throw Error("useBatchContext must be used within a BatchProvider");return e}(),r=tN(nr),i=(0,y.useMemo)(()=>{let e=e=>n.getState().nodeLookup.get(e),t=e=>{o.nodeQueue.push(e)},r=e=>{o.edgeQueue.push(e)},i=e=>{let{nodeLookup:t,nodeOrigin:o}=n.getState(),r=t8(e)?e:t.get(e.id),i=r.parentId?eE(r.position,r.measured,r.parentId,t,o):r.position;return ea({...r,position:i,width:r.measured?.width??r.width,height:r.measured?.height??r.height})},a=(e,n,o={replace:!1})=>{t(t=>t.map(t=>{if(t.id===e){let e="function"==typeof n?n(t):n;return o.replace&&t8(e)?e:{...t,...e}}return t}))},s=(e,t,n={replace:!1})=>{r(o=>o.map(o=>{if(o.id===e){let e="function"==typeof t?t(o):t;return n.replace&&Z(e)?e:{...o,...e}}return o}))};return{getNodes:()=>n.getState().nodes.map(e=>({...e})),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{let{edges:e=[]}=n.getState();return e.map(e=>({...e}))},getEdge:e=>n.getState().edgeLookup.get(e),setNodes:t,setEdges:r,addNodes:e=>{let t=Array.isArray(e)?e:[e];o.nodeQueue.push(e=>[...e,...t])},addEdges:e=>{let t=Array.isArray(e)?e:[e];o.edgeQueue.push(e=>[...e,...t])},toObject:()=>{let{nodes:e=[],edges:t=[],transform:o}=n.getState(),[r,i,a]=o;return{nodes:e.map(e=>({...e})),edges:t.map(e=>({...e})),viewport:{x:r,y:i,zoom:a}}},deleteElements:async({nodes:e=[],edges:t=[]})=>{let{nodes:o,edges:r,onNodesDelete:i,onEdgesDelete:a,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:d,onBeforeDelete:c}=n.getState(),{nodes:u,edges:h}=await q({nodesToRemove:e,edgesToRemove:t,nodes:o,edges:r,onBeforeDelete:c}),f=h.length>0,g=u.length>0;if(f){let e=h.map(t6);a?.(h),l(e)}if(g){let e=u.map(t6);i?.(u),s(e)}return(g||f)&&d?.({nodes:u,edges:h}),{deletedNodes:u,deletedEdges:h}},getIntersectingNodes:(e,t=!0,o)=>{let r=ec(e),a=r?e:i(e),s=void 0!==o;return a?(o||n.getState().nodes).filter(o=>{let i=n.getState().nodeLookup.get(o.id);if(i&&!r&&(o.id===e.id||!i.internals.positionAbsolute))return!1;let l=ea(s?o:i),d=ed(l,a);return t&&d>0||d>=l.width*l.height||d>=a.width*a.height}):[]},isNodeIntersecting:(e,t,n=!0)=>{let o=ec(e)?e:i(e);if(!o)return!1;let r=ed(o,t);return n&&r>0||r>=t.width*t.height||r>=o.width*o.height},updateNode:a,updateNodeData:(e,t,n={replace:!1})=>{a(e,e=>{let o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,e=>{let o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}},n)},getNodesBounds:e=>{let{nodeLookup:t,nodeOrigin:o}=n.getState();return((e,t={nodeOrigin:[0,0]})=>0===e.length?{x:0,y:0,width:0,height:0}:ei(e.reduce((e,n)=>{let o="string"==typeof n,r=t.nodeLookup||o?void 0:n;return t.nodeLookup&&(r=o?t.nodeLookup.get(n):X(n)?n:t.nodeLookup.get(n.id)),eo(e,r?es(r,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})))(e,{nodeLookup:t,nodeOrigin:o})},getHandleConnections:({type:e,id:t,nodeId:o})=>Array.from(n.getState().connectionLookup.get(`${o}-${e}${t?`-${t}`:""}`)?.values()??[]),getNodeConnections:({type:e,handleId:t,nodeId:o})=>Array.from(n.getState().connectionLookup.get(`${o}${e?t?`-${e}-${t}`:`-${e}`:""}`)?.values()??[]),fitView:async e=>{let t,r,i=n.getState().fitViewResolver??{promise:new Promise((e,n)=>{t=e,r=n}),resolve:t,reject:r};return n.setState({fitViewQueued:!0,fitViewOptions:e,fitViewResolver:i}),o.nodeQueue.push(e=>[...e]),i.promise}}},[]);return(0,y.useMemo)(()=>({...i,...t,viewportInitialized:r}),[r])}let na=e=>e.selected,ns="u">typeof window?window:void 0,nl={position:"absolute",width:"100%",height:"100%",top:0,left:0},nd=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function nc({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:i=c.Free,zoomOnDoubleClick:a=!0,panOnDrag:s=!0,defaultViewport:l,translateExtent:d,minZoom:u,maxZoom:h,zoomActivationKeyCode:f,preventScrolling:g=!0,children:p,noWheelClassName:m,noPanClassName:v,onViewportChange:b,isControlledViewport:w,paneClickDistance:S,selectionOnDrag:C}){let _,N=tj(),j=(0,y.useRef)(null),{userSelectionActive:M,lib:O,connectionInProgress:P}=tN(nd,tE),I=tJ(f),A=(0,y.useRef)();_=tj(),(0,y.useEffect)(()=>{let e=()=>{if(!j.current||!(j.current.checkVisibility?.()??!0))return!1;let e=eC(j.current);(0===e.height||0===e.width)&&_.getState().onError?.("004","The parent container needs a width and a height to render the graph."),_.setState({width:e.width||500,height:e.height||500})};if(j.current){e(),window.addEventListener("resize",e);let t=new ResizeObserver(()=>e());return t.observe(j.current),()=>{window.removeEventListener("resize",e),t&&j.current&&t.unobserve(j.current)}}},[]);let $=(0,y.useCallback)(e=>{b?.({x:e[0],y:e[1],zoom:e[2]}),w||N.setState({transform:e})},[b,w]);return(0,y.useEffect)(()=>{if(j.current){A.current=function({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:r,onPanZoom:i,onPanZoomStart:a,onPanZoomEnd:s,onDraggingChange:l}){let d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},u=e.getBoundingClientRect(),h=(0,z.default)().scaleExtent([t,n]).translateExtent(o),f=(0,E.select)(e).call(h);y({x:r.x,y:r.y,zoom:Q(r.zoom,t,n)},[[0,0],[u.width,u.height]],o);let g=f.on("wheel.zoom"),p=f.on("dblclick.zoom");async function m(e,t){return!!f&&new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?D.interpolate:R.interpolateZoom).transform(ta(f,t?.duration,t?.ease,()=>n(!0)),e)})}function x(){h.on("zoom",null)}async function y(e,t,n){let o=tn(e),r=h?.constrain()(o,t,n);return r&&await m(r),r}return h.wheelDelta(ts),{update:function({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:o,panOnScroll:r,panOnDrag:u,panOnScrollMode:m,panOnScrollSpeed:y,preventScrolling:v,zoomOnPinch:b,zoomOnScroll:w,zoomOnDoubleClick:E,zoomActivationKeyPressed:S,lib:C,onTransformChange:_,connectionInProgress:N,paneClickDistance:j,selectionOnDrag:M}){o&&!d.isZoomingOrPanning&&x();let O=r&&!S&&!o;h.clickDistance(M?1/0:!eu(j)||j<0?0:j);let P=O?function({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:a,onPanZoomStart:s,onPanZoom:l,onPanZoomEnd:d}){return u=>{if(to(u,t))return u.ctrlKey&&u.preventDefault(),!1;u.preventDefault(),u.stopImmediatePropagation();let h=n.property("__zoom").k||1;if(u.ctrlKey&&a){let e=(0,k.pointer)(u),t=h*Math.pow(2,ts(u));o.scaleTo(n,t,e,u);return}let f=1===u.deltaMode?20:1,g=r===c.Vertical?0:u.deltaX*f,p=r===c.Horizontal?0:u.deltaY*f;!ey()&&u.shiftKey&&r!==c.Vertical&&(g=u.deltaY*f,p=0),o.translateBy(n,-(g/h)*i,-(p/h)*i,{internal:!0});let m=tt(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(l?.(u,m),e.panScrollTimeout=setTimeout(()=>{d?.(u,m),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,s?.(u,m))}}({zoomPanValues:d,noWheelClassName:e,d3Selection:f,d3Zoom:h,panOnScrollMode:m,panOnScrollSpeed:y,zoomOnPinch:b,onPanZoomStart:a,onPanZoom:i,onPanZoomEnd:s}):function({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){let i="wheel"===o.type,a=!t&&i&&!o.ctrlKey,s=to(o,e);if(o.ctrlKey&&i&&s&&o.preventDefault(),a||s)return null;o.preventDefault(),n.call(this,o,r)}}({noWheelClassName:e,preventScrolling:v,d3ZoomHandler:g});f.on("wheel.zoom",P,{passive:!1});let I=function({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;let r=tt(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}({zoomPanValues:d,onDraggingChange:l,onPanZoomStart:a});h.on("start",I);let z=function({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!!(n&&tr(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,tt(i.transform))}}({zoomPanValues:d,panOnDrag:u,onPaneContextMenu:!!n,onPanZoom:i,onTransformChange:_});h.on("zoom",z);let A=function({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&tr(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,o(!1),r)){let t=tt(a.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(a.sourceEvent,t)},150*!!n)}}}({zoomPanValues:d,panOnDrag:u,panOnScroll:r,onPaneContextMenu:n,onPanZoomEnd:s,onDraggingChange:l});h.on("end",A);let L=function({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:s,noPanClassName:l,lib:d,connectionInProgress:c}){return u=>{let h=e||t,f=n&&u.ctrlKey,g="wheel"===u.type;if(1===u.button&&"mousedown"===u.type&&(to(u,`${d}-flow__node`)||to(u,`${d}-flow__edge`)))return!0;if(!o&&!h&&!r&&!i&&!n||a||c&&!g||to(u,s)&&g||to(u,l)&&(!g||r&&g&&!e)||!n&&u.ctrlKey&&g)return!1;if(!n&&"touchstart"===u.type&&u.touches?.length>1)return u.preventDefault(),!1;if(!h&&!r&&!f&&g||!o&&("mousedown"===u.type||"touchstart"===u.type)||Array.isArray(o)&&!o.includes(u.button)&&"mousedown"===u.type)return!1;let p=Array.isArray(o)&&o.includes(u.button)||!u.button||u.button<=1;return(!u.ctrlKey||g)&&p}}({zoomActivationKeyPressed:S,panOnDrag:u,zoomOnScroll:w,panOnScroll:r,zoomOnDoubleClick:E,zoomOnPinch:b,userSelectionActive:o,noPanClassName:t,noWheelClassName:e,lib:C,connectionInProgress:N});h.filter(L),E?f.on("dblclick.zoom",p):f.on("dblclick.zoom",null)},destroy:x,setViewport:async function e(e,t){let n=tn(e);return await m(n,t),n},setViewportConstrained:y,getViewport:function(){let e=f?(0,L.default)(f.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}},scaleTo:async function e(e,t){return!!f&&new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?D.interpolate:R.interpolateZoom).scaleTo(ta(f,t?.duration,t?.ease,()=>n(!0)),e)})},scaleBy:async function e(e,t){return!!f&&new Promise(n=>{h?.interpolate(t?.interpolate==="linear"?D.interpolate:R.interpolateZoom).scaleBy(ta(f,t?.duration,t?.ease,()=>n(!0)),e)})},setScaleExtent:function(e){h?.scaleExtent(e)},setTranslateExtent:function(e){h?.translateExtent(e)},syncViewport:function(e){if(f){let t=tn(e),n=f.property("__zoom");(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&h?.transform(f,t,null,{sync:!0})}},setClickDistance:function(e){let t=!eu(e)||e<0?0:e;h?.clickDistance(t)}}}({domNode:j.current,minZoom:u,maxZoom:h,translateExtent:d,viewport:l,onDraggingChange:e=>N.setState(t=>t.paneDragging===e?t:{paneDragging:e}),onPanZoomStart:(e,t)=>{let{onViewportChangeStart:n,onMoveStart:o}=N.getState();o?.(e,t),n?.(t)},onPanZoom:(e,t)=>{let{onViewportChange:n,onMove:o}=N.getState();o?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{let{onViewportChangeEnd:n,onMoveEnd:o}=N.getState();o?.(e,t),n?.(t)}});let{x:e,y:t,zoom:n}=A.current.getViewport();return N.setState({panZoom:A.current,transform:[e,t,n],domNode:j.current.closest(".react-flow")}),()=>{A.current?.destroy()}}},[]),(0,y.useEffect)(()=>{A.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:i,zoomOnDoubleClick:a,panOnDrag:s,zoomActivationKeyPressed:I,preventScrolling:g,noPanClassName:v,userSelectionActive:M,noWheelClassName:m,lib:O,onTransformChange:$,connectionInProgress:P,selectionOnDrag:C,paneClickDistance:S})},[e,t,n,o,r,i,a,s,I,g,v,M,m,O,$,P,C,S]),(0,x.jsx)("div",{className:"react-flow__renderer",ref:j,style:nl,children:p})}let nu=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function nh(){let{userSelectionActive:e,userSelectionRect:t}=tN(nu,tE);return e&&t?(0,x.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}let nf=(e,t)=>n=>{n.target===t.current&&e?.(n)},ng=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function np({isSelecting:e,selectionKeyPressed:t,selectionMode:n=u.Full,panOnDrag:o,autoPanOnSelection:r,paneClickDistance:i,selectionOnDrag:a,onSelectionStart:s,onSelectionEnd:l,onPaneClick:d,onPaneContextMenu:c,onPaneScroll:h,onPaneMouseEnter:f,onPaneMouseMove:g,onPaneMouseLeave:p,children:m}){let v=(0,y.useRef)(0),w=tj(),{userSelectionActive:E,elementsSelectable:k,dragging:S,connectionInProgress:C,panBy:_,autoPanSpeed:N}=tN(ng,tE),j=k&&(e||E),M=(0,y.useRef)(null),O=(0,y.useRef)(),P=(0,y.useRef)(new Set),I=(0,y.useRef)(new Set),z=(0,y.useRef)(!1),A=(0,y.useRef)({x:0,y:0}),L=(0,y.useRef)(!1),R=e=>{if(z.current||C){z.current=!1;return}d?.(e),w.getState().resetSelectedElements(),w.setState({nodesSelectionActive:!1})};function D(e,t){let{userSelectionRect:o}=w.getState();if(!o)return;let{transform:r,nodeLookup:i,edgeLookup:a,connectionLookup:s,triggerNodeChanges:l,triggerEdgeChanges:d,defaultEdgeOptions:c}=w.getState(),h={x:o.startX,y:o.startY},{x:f,y:g}=ep(h,r),p={startX:h.x,startY:h.y,x:e<f?e:f,y:t<g?t:g,width:Math.abs(e-f),height:Math.abs(t-g)},m=P.current,x=I.current;P.current=new Set(Y(i,p,r,n===u.Partial,!0).map(e=>e.id)),I.current=new Set;let y=c?.selectable??!0;for(let e of P.current){let t=s.get(e);if(t)for(let{edgeId:e}of t.values()){let t=a.get(e);t&&(t.selectable??y)&&I.current.add(e)}}ek(m,P.current)||l(t3(i,P.current,!0)),ek(x,I.current)||d(t3(a,I.current)),w.setState({userSelectionRect:p,userSelectionActive:!0,nodesSelectionActive:!1})}let $=()=>{cancelAnimationFrame(v.current),v.current=0,L.current=!1};(0,y.useEffect)(()=>()=>$(),[]);let T=!0===o||Array.isArray(o)&&o.includes(0);return(0,x.jsxs)("div",{className:b(["react-flow__pane",{draggable:T,dragging:S,selection:e}]),onClick:j?void 0:nf(R,M),onContextMenu:nf(e=>{Array.isArray(o)&&o?.includes(2)?e.preventDefault():c?.(e)},M),onWheel:nf(h?e=>h(e):void 0,M),onPointerEnter:j?void 0:f,onPointerMove:j?e=>{let{userSelectionRect:n,transform:o,resetSelectedElements:a}=w.getState();if(!O.current||!n)return;let{x:l,y:d}=eM(e.nativeEvent,O.current);A.current={x:l,y:d};let c=ep({x:n.startX,y:n.startY},o);if(!z.current){if(Math.hypot(l-c.x,d-c.y)<=(t?0:i))return;a(),s?.(e)}z.current=!0,L.current||(!function e(){if(!r||!O.current)return;let[t,n]=en(A.current,O.current,N);_({x:t,y:n}).then(t=>{if(!z.current||!t){v.current=requestAnimationFrame(e);return}let{x:n,y:o}=A.current;D(n,o),v.current=requestAnimationFrame(e)})}(),L.current=!0),D(l,d)}:g,onPointerUp:j?e=>{0===e.button&&(e.target?.releasePointerCapture?.(e.pointerId),!E&&e.target===M.current&&w.getState().userSelectionRect&&R?.(e),w.setState({userSelectionActive:!1,userSelectionRect:null}),z.current&&(l?.(e),w.setState({nodesSelectionActive:P.current.size>0})),$())}:void 0,onPointerCancel:j?e=>{e.target?.releasePointerCapture?.(e.pointerId),$()}:void 0,onPointerDownCapture:j?n=>{let{domNode:o,transform:r}=w.getState();if(O.current=o?.getBoundingClientRect(),!O.current)return;let i=n.target===M.current;if(!i&&n.target.closest(".nokey")||!e||!(a&&i||t)||0!==n.button||!n.isPrimary)return;n.target?.setPointerCapture?.(n.pointerId),z.current=!1;let{x:s,y:l}=eM(n.nativeEvent,O.current),d=eg({x:s,y:l},r);w.setState({userSelectionRect:{width:0,height:0,startX:d.x,startY:d.y,x:s,y:l}}),i||(n.stopPropagation(),n.preventDefault())}:void 0,onClickCapture:j?e=>{z.current&&(e.stopPropagation(),z.current=!1)}:void 0,onPointerLeave:p,ref:M,style:nl,children:[m,(0,x.jsx)(nh,{})]})}function nm({id:e,store:t,unselect:n=!1,nodeRef:o}){let r,{addSelectedNodes:i,unselectNodesAndEdges:a,multiSelectionActive:s,nodeLookup:l,onError:d}=t.getState(),c=l.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&s)&&(a({nodes:[c],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):i([e])):d?.("012",(r=e,`Node with id "${r}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`))}function nx({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,nodeClickDistance:a}){let s=tj(),[l,d]=(0,y.useState)(!1),c=(0,y.useRef)();return(0,y.useEffect)(()=>{c.current=function({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},a=0,s=new Map,l=!1,d={x:0,y:0},c=null,u=!1,h=null,f=!1,g=!1,p=null;return{update:function({noDragClassName:m,handleSelector:x,domNode:y,isSelectable:v,nodeId:b,nodeClickDistance:w=0}){function k({x:e,y:n}){let{nodeLookup:r,nodeExtent:a,snapGrid:l,snapToGrid:d,nodeOrigin:c,onNodeDrag:u,onSelectionDrag:h,onError:f,updateNodePositions:m}=t();i={x:e,y:n};let x=!1,y=s.size>1,v=y&&a?er(K(s)):null,w=y&&d?function({dragItems:e,snapGrid:t,x:n,y:o}){let r=e.values().next().value;if(!r)return null;let i={x:n-r.distance.x,y:o-r.distance.y},a=ef(i,t);return{x:a.x-i.x,y:a.y-i.y}}({dragItems:s,snapGrid:l,x:e,y:n}):null;for(let[t,o]of s){if(!r.has(t))continue;let i={x:e-o.distance.x,y:n-o.distance.y};d&&(i=w?{x:Math.round(i.x+w.x),y:Math.round(i.y+w.y)}:ef(i,l));let s=null;if(y&&a&&!o.extent&&v){let{positionAbsolute:e}=o.internals,t=e.x-v.x+a[0][0],n=e.x+o.measured.width-v.x2+a[1][0];s=[[t,e.y-v.y+a[0][1]],[n,e.y+o.measured.height-v.y2+a[1][1]]]}let{position:u,positionAbsolute:h}=G({nodeId:t,nextPosition:i,nodeLookup:r,nodeExtent:s||a,nodeOrigin:c,onError:f});x=x||o.position.x!==u.x||o.position.y!==u.y,o.position=u,o.internals.positionAbsolute=h}if(g=g||x,x&&(m(s,!0),p&&(o||u||!b&&h))){let[e,t]=e4({nodeId:b,dragItems:s,nodeLookup:r});o?.(p,s,e,t),u?.(p,e,t),b||h?.(p,t)}}async function S(){if(!c)return;let{transform:e,panBy:n,autoPanSpeed:o,autoPanOnNodeDrag:r}=t();if(!r){l=!1,cancelAnimationFrame(a);return}let[s,u]=en(d,c,o);(0!==s||0!==u)&&(i.x=(i.x??0)-s/e[2],i.y=(i.y??0)-u/e[2],await n({x:s,y:u})&&k(i)),a=requestAnimationFrame(S)}function C(o){let{nodeLookup:r,multiSelectionActive:a,nodesDraggable:l,transform:d,snapGrid:h,snapToGrid:f,selectNodesOnDrag:g,onNodeDragStart:p,onSelectionDragStart:m,unselectNodesAndEdges:x}=t();u=!0,g&&v||a||!b||r.get(b)?.selected||x(),v&&g&&b&&e?.(b);let y=eS(o.sourceEvent,{transform:d,snapGrid:h,snapToGrid:f,containerBounds:c});if(i=y,(s=function(e,t,n,o){let r=new Map;for(let[i,a]of e)if((a.selected||a.id===o)&&(!a.parentId||!function e(t,n){if(!t.parentId)return!1;let o=n.get(t.parentId);return!!o&&(!!o.selected||e(o,n))}(a,e))&&(a.draggable||t&&void 0===a.draggable)){let t=e.get(i);t&&r.set(i,{id:i,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return r}(r,l,y,b)).size>0&&(n||p||!b&&m)){let[e,t]=e4({nodeId:b,dragItems:s,nodeLookup:r});n?.(o.sourceEvent,s,e,t),p?.(o.sourceEvent,e,t),b||m?.(o.sourceEvent,t)}}h=(0,E.select)(y);let _=I().clickDistance(w).on("start",e=>{let{domNode:n,nodeDragThreshold:o,transform:r,snapGrid:a,snapToGrid:s}=t();c=n?.getBoundingClientRect()||null,f=!1,g=!1,p=e.sourceEvent,0===o&&C(e),i=eS(e.sourceEvent,{transform:r,snapGrid:a,snapToGrid:s,containerBounds:c}),d=eM(e.sourceEvent,c)}).on("drag",e=>{let{autoPanOnNodeDrag:n,transform:o,snapGrid:r,snapToGrid:a,nodeDragThreshold:h,nodeLookup:g}=t(),m=eS(e.sourceEvent,{transform:o,snapGrid:r,snapToGrid:a,containerBounds:c});if(p=e.sourceEvent,("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1||b&&!g.has(b))&&(f=!0),!f){if(!l&&n&&u&&(l=!0,S()),!u){let t=eM(e.sourceEvent,c),n=t.x-d.x,o=t.y-d.y;Math.sqrt(n*n+o*o)>h&&C(e)}(i.x!==m.xSnapped||i.y!==m.ySnapped)&&s&&u&&(d=eM(e.sourceEvent,c),k(m))}}).on("end",e=>{if(!u||f){f&&s.size>0&&t().updateNodePositions(s,!1);return}if(l=!1,u=!1,cancelAnimationFrame(a),s.size>0){let{nodeLookup:n,updateNodePositions:o,onNodeDragStop:i,onSelectionDragStop:a}=t();if(g&&(o(s,!1),g=!1),r||i||!b&&a){let[t,o]=e4({nodeId:b,dragItems:s,nodeLookup:n,dragging:!1});r?.(e.sourceEvent,s,t,o),i?.(e.sourceEvent,t,o),b||a?.(e.sourceEvent,o)}}}).filter(e=>{let t=e.target;return!e.button&&(!m||!e3(t,`.${m}`,y))&&(!x||e3(t,x,y))});h.call(_)},destroy:function(){h?.on(".drag",null)}}}({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{nm({id:t,store:s,nodeRef:e})},onDragStart:()=>{d(!0)},onDragStop:()=>{d(!1)}})},[]),(0,y.useEffect)(()=>{if(!t&&e.current&&c.current)return c.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:a}),()=>{c.current?.destroy()}},[n,o,t,i,e,r,a]),l}function ny(){let e=tj();return(0,y.useCallback)(t=>{let{nodeExtent:n,snapToGrid:o,snapGrid:r,nodesDraggable:i,onError:a,updateNodePositions:s,nodeLookup:l,nodeOrigin:d}=e.getState(),c=new Map,u=e=>e.selected&&(e.draggable||i&&void 0===e.draggable),h=o?r[0]:5,f=o?r[1]:5,g=t.direction.x*h*t.factor,p=t.direction.y*f*t.factor;for(let[,e]of l){if(!u(e))continue;let t={x:e.internals.positionAbsolute.x+g,y:e.internals.positionAbsolute.y+p};o&&(t=ef(t,r));let{position:i,positionAbsolute:s}=G({nodeId:e.id,nextPosition:t,nodeLookup:l,nodeExtent:n,nodeOrigin:d,onError:a});e.position=i,e.internals.positionAbsolute=s,c.set(e.id,e)}s(c)},[])}let nv=(0,y.createContext)(null),nb=nv.Provider;nv.Consumer;let nw=()=>(0,y.useContext)(nv),nE=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),nk=(0,y.memo)(t9(function({type:e="source",position:t=g.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:a,onConnect:s,children:l,className:c,onMouseDown:u,onTouchStart:h,...f},p){let m=a||null,y="target"===e,v=tj(),w=nw(),{connectOnClick:E,noPanClassName:k,rfId:S}=tN(nE,tE),{connectingFrom:C,connectingTo:_,clickConnecting:N,isPossibleEndHandle:j,connectionInProcess:M,clickConnectionInProcess:O,valid:P}=tN(t=>{let{connectionClickStartHandle:n,connectionMode:o,connection:r}=t,{fromHandle:i,toHandle:a,isValid:s}=r,l=a?.nodeId===w&&a?.id===m&&a?.type===e;return{connectingFrom:i?.nodeId===w&&i?.id===m&&i?.type===e,connectingTo:l,clickConnecting:n?.nodeId===w&&n?.id===m&&n?.type===e,isPossibleEndHandle:o===d.Strict?i?.type!==e:w!==i?.nodeId||m!==i?.id,connectionInProcess:!!i,clickConnectionInProcess:!!n,valid:l&&s}},tE);w||v.getState().onError?.("010","Handle: No node id found. Make sure to only use a Handle inside a custom Node.");let I=e=>{let{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=v.getState(),r={...t,...e};if(o){let{edges:e,setEdges:t,onError:n}=v.getState();t(function(e,t,n={}){return((e,t,n={})=>{let o,r;if(!e.source||!e.target)return n.onError?.("006","Can't create edge. An edge needs a source and a target."),t;let i=n.getEdgeId||eR;return(r=o=Z(e)?{...e}:{...e,id:i(e)},t.some(e=>e.source===r.source&&e.target===r.target&&(e.sourceHandle===r.sourceHandle||!e.sourceHandle&&!r.sourceHandle)&&(e.targetHandle===r.targetHandle||!e.targetHandle&&!r.targetHandle)))?t:(null===o.sourceHandle&&delete o.sourceHandle,null===o.targetHandle&&delete o.targetHandle,t.concat(o))})(e,t,{...n,onError:n.onError??t7})}(r,e,{onError:n}))}n?.(r),s?.(r)},z=e=>{if(!w)return;let t="clientX"in e.nativeEvent;if(r&&(t&&0===e.button||!t)){let t=v.getState();te(e.nativeEvent,{handleDomNode:e.currentTarget,autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:y,handleId:m,nodeId:w,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:(...e)=>v.getState().onConnectEnd?.(...e),updateConnection:t.updateConnection,onConnect:I,isValidConnection:n||((...e)=>v.getState().isValidConnection?.(...e)??!0),getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,autoPanSpeed:t.autoPanSpeed,dragThreshold:t.connectionDragThreshold})}t?u?.(e):h?.(e)};return(0,x.jsx)("div",{"data-handleid":m,"data-nodeid":w,"data-handlepos":t,"data-id":`${S}-${w}-${m}-${e}`,className:b(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",k,c,{source:!y,target:y,connectable:o,connectablestart:r,connectableend:i,clickconnecting:N,connectingfrom:C,connectingto:_,valid:P,connectionindicator:o&&(!M||j)&&(M||O?i:r)}]),onMouseDown:z,onTouchStart:z,onClick:E?t=>{let{onClickConnectStart:o,onClickConnectEnd:i,connectionClickStartHandle:a,connectionMode:s,isValidConnection:l,lib:d,rfId:c,nodeLookup:u,connection:h}=v.getState();if(!w||!a&&!r)return;if(!a){o?.(t.nativeEvent,{nodeId:w,handleId:m,handleType:e}),v.setState({connectionClickStartHandle:{nodeId:w,type:e,id:m}});return}let f=e_(t.target),g=n||l,{connection:p,isValid:x}=e9(t.nativeEvent,{handle:{nodeId:w,id:m,type:e},connectionMode:s,fromNodeId:a.nodeId,fromHandleId:a.id||null,fromType:a.type,isValidConnection:g,flowId:c,doc:f,lib:d,nodeLookup:u});x&&p&&I(p);let y=structuredClone(h);delete y.inProgress,y.toPosition=y.toHandle?y.toHandle.position:null,i?.(t,y),v.setState({connectionClickStartHandle:null})}:void 0,ref:p,...f,children:l})})),nS={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},nC={input:function({data:e,isConnectable:t,sourcePosition:n=g.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[e?.label,(0,x.jsx)(nk,{type:"source",position:n,isConnectable:t})]})},default:function({data:e,isConnectable:t,targetPosition:n=g.Top,sourcePosition:o=g.Bottom}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(nk,{type:"target",position:n,isConnectable:t}),e?.label,(0,x.jsx)(nk,{type:"source",position:o,isConnectable:t})]})},output:function({data:e,isConnectable:t,targetPosition:n=g.Top}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(nk,{type:"target",position:n,isConnectable:t}),e?.label]})},group:function(){return null}},n_=e=>{let{width:t,height:n,x:o,y:r}=K(e.nodeLookup,{filter:e=>!!e.selected});return{width:eu(t)?t:null,height:eu(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function nN({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){let o=tj(),{width:r,height:i,transformString:a,userSelectionActive:s}=tN(n_,tE),l=ny(),d=(0,y.useRef)(null);(0,y.useEffect)(()=>{n||d.current?.focus({preventScroll:!0})},[n]);let c=!s&&null!==r&&null!==i;if(nx({nodeRef:d,disabled:!c}),!c)return null;let u=e?t=>{e(t,o.getState().nodes.filter(e=>e.selected))}:void 0;return(0,x.jsx)("div",{className:b(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:(0,x.jsx)("div",{ref:d,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:n?void 0:-1,onKeyDown:n?void 0:e=>{Object.prototype.hasOwnProperty.call(nS,e.key)&&(e.preventDefault(),l({direction:nS[e.key],factor:e.shiftKey?4:1}))},style:{width:r,height:i}})})}let nj="u">typeof window?window:void 0,nM=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function nO({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,paneClickDistance:s,deleteKeyCode:l,selectionKeyCode:d,selectionOnDrag:c,selectionMode:u,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:g,panActivationKeyCode:p,zoomActivationKeyCode:m,elementsSelectable:v,zoomOnScroll:b,zoomOnPinch:w,panOnScroll:E,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:_,autoPanOnSelection:N,defaultViewport:j,translateExtent:M,minZoom:O,maxZoom:P,preventScrolling:I,onSelectionContextMenu:z,noWheelClassName:A,noPanClassName:L,disableKeyboardA11y:R,onViewportChange:D,isControlledViewport:$}){let{nodesSelectionActive:T,userSelectionActive:B}=tN(nM,tE),H=tJ(d,{target:nj}),V=tJ(p,{target:nj}),F=V||_,Z=V||E,X=c&&!0!==F,W=H||B||X;return!function({deleteKeyCode:e,multiSelectionKeyCode:t}){let n=tj(),{deleteElements:o}=ni(),r=tJ(e,{actInsideInputWithModifier:!1}),i=tJ(t,{target:ns});(0,y.useEffect)(()=>{if(r){let{edges:e,nodes:t}=n.getState();o({nodes:t.filter(na),edges:e.filter(na)}),n.setState({nodesSelectionActive:!1})}},[r]),(0,y.useEffect)(()=>{n.setState({multiSelectionActive:i})},[i])}({deleteKeyCode:l,multiSelectionKeyCode:g}),(0,x.jsx)(nc,{onPaneContextMenu:i,elementsSelectable:v,zoomOnScroll:b,zoomOnPinch:w,panOnScroll:Z,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:C,panOnDrag:!H&&F,defaultViewport:j,translateExtent:M,minZoom:O,maxZoom:P,zoomActivationKeyCode:m,preventScrolling:I,noWheelClassName:A,noPanClassName:L,onViewportChange:D,isControlledViewport:$,paneClickDistance:s,selectionOnDrag:X,children:(0,x.jsxs)(np,{onSelectionStart:h,onSelectionEnd:f,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:F,autoPanOnSelection:N,isSelecting:!!W,selectionMode:u,selectionKeyPressed:H,paneClickDistance:s,selectionOnDrag:X,children:[e,T&&(0,x.jsx)(nN,{onSelectionContextMenu:z,noPanClassName:L,disableKeyboardA11y:R})]})})}nO.displayName="FlowRenderer";let nP=(0,y.memo)(nO),nI=e=>e.updateNodeInternals;var nz=(0,y.memo)(function({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:i,onDoubleClick:a,nodesDraggable:s,elementsSelectable:l,nodesConnectable:d,nodesFocusable:c,resizeObserver:u,noDragClassName:h,noPanClassName:f,disableKeyboardA11y:g,rfId:p,nodeTypes:m,nodeClickDistance:v,onError:w}){let E,{node:k,internals:S,isParent:C}=tN(t=>{let n=t.nodeLookup.get(e),o=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:o}},tE),_=k.type||"default",N=m?.[_]||nC[_];void 0===N&&(w?.("003",(E=_,`Node type "${E}" not found. Using fallback type "default".`)),_="default",N=m?.default||nC.default);let j=!!(k.draggable||s&&void 0===k.draggable),M=!!(k.selectable||l&&void 0===k.selectable),O=!!(k.connectable||d&&void 0===k.connectable),P=!!(k.focusable||c&&void 0===k.focusable),I=tj(),z=ew(k),A=function({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){let r=tj(),i=(0,y.useRef)(null),a=(0,y.useRef)(null),s=(0,y.useRef)(e.sourcePosition),l=(0,y.useRef)(e.targetPosition),d=(0,y.useRef)(t),c=n&&!!e.internals.handleBounds;return(0,y.useEffect)(()=>{!i.current||e.hidden||c&&a.current===i.current||(a.current&&o?.unobserve(a.current),o?.observe(i.current),a.current=i.current)},[c,e.hidden]),(0,y.useEffect)(()=>()=>{a.current&&(o?.unobserve(a.current),a.current=null)},[]),(0,y.useEffect)(()=>{if(i.current){let n=d.current!==t,o=s.current!==e.sourcePosition,a=l.current!==e.targetPosition;(n||o||a)&&(d.current=t,s.current=e.sourcePosition,l.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}({node:k,nodeType:_,hasDimensions:z,resizeObserver:u}),L=nx({nodeRef:A,disabled:k.hidden||!j,noDragClassName:h,handleSelector:k.dragHandle,nodeId:e,isSelectable:M,nodeClickDistance:v}),R=ny();if(k.hidden)return null;let D=eb(k),$=void 0===k.internals.handleBounds?{width:k.width??k.initialWidth??k.style?.width,height:k.height??k.initialHeight??k.style?.height}:{width:k.width??k.style?.width,height:k.height??k.style?.height},B=M||j||t||n||o||r,H=n?e=>n(e,{...S.userNode}):void 0,V=o?e=>o(e,{...S.userNode}):void 0,F=r?e=>r(e,{...S.userNode}):void 0,Z=i?e=>i(e,{...S.userNode}):void 0,X=a?e=>a(e,{...S.userNode}):void 0;return(0,x.jsx)("div",{className:b(["react-flow__node",`react-flow__node-${_}`,{[f]:j},k.className,{selected:k.selected,selectable:M,parent:C,draggable:j,dragging:L}]),ref:A,style:{zIndex:S.z,transform:`translate(${S.positionAbsolute.x}px,${S.positionAbsolute.y}px)`,pointerEvents:B?"all":"none",visibility:z?"visible":"hidden",...k.style,...$},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:V,onMouseLeave:F,onContextMenu:Z,onClick:n=>{let{selectNodesOnDrag:o,nodeDragThreshold:r}=I.getState();M&&(!o||!j||r>0)&&nm({id:e,store:I,nodeRef:A}),t&&t(n,{...S.userNode})},onDoubleClick:X,onKeyDown:P?t=>{if(!ej(t.nativeEvent)&&!g){if(T.includes(t.key)&&M)nm({id:e,store:I,unselect:"Escape"===t.key,nodeRef:A});else if(j&&k.selected&&Object.prototype.hasOwnProperty.call(nS,t.key)){t.preventDefault();let{ariaLabelConfig:e}=I.getState();I.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:t.key.replace("Arrow","").toLowerCase(),x:~~S.positionAbsolute.x,y:~~S.positionAbsolute.y})}),R({direction:nS[t.key],factor:t.shiftKey?4:1})}}}:void 0,tabIndex:P?0:void 0,onFocus:P?()=>{if(g||!A.current?.matches(":focus-visible"))return;let{transform:t,width:n,height:o,autoPanOnNodeFocus:r,setCenter:i}=I.getState();!r||Y(new Map([[e,k]]),{x:0,y:0,width:n,height:o},t,!0).length>0||i(k.position.x+D.width/2,k.position.y+D.height/2,{zoom:t[2]})}:void 0,role:k.ariaRole??(P?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${tP}-${p}`,"aria-label":k.ariaLabel,...k.domAttributes,children:(0,x.jsx)(nb,{value:e,children:(0,x.jsx)(N,{id:e,data:k.data,type:_,positionAbsoluteX:S.positionAbsolute.x,positionAbsoluteY:S.positionAbsolute.y,selected:k.selected??!1,selectable:M,draggable:j,deletable:k.deletable??!0,isConnectable:O,sourcePosition:k.sourcePosition,targetPosition:k.targetPosition,dragging:L,dragHandle:k.dragHandle,zIndex:S.z,parentId:k.parentId,...D})})})});let nA=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function nL(e){var t;let{nodesDraggable:n,nodesConnectable:o,nodesFocusable:r,elementsSelectable:i,onError:a}=tN(nA,tE),s=(t=e.onlyRenderVisibleElements,tN((0,y.useCallback)(e=>t?Y(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(e=>e.id):Array.from(e.nodeLookup.keys()),[t]),tE)),l=function(){let e=tN(nI),[t]=(0,y.useState)(()=>"u"<typeof ResizeObserver?null:new ResizeObserver(t=>{let n=new Map;t.forEach(e=>{let t=e.target.getAttribute("data-id");n.set(t,{id:t,nodeElement:e.target,force:!0})}),e(n)}));return(0,y.useEffect)(()=>()=>{t?.disconnect()},[t]),t}();return(0,x.jsx)("div",{className:"react-flow__nodes",style:nl,children:s.map(t=>(0,x.jsx)(nz,{id:t,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:n,nodesConnectable:o,nodesFocusable:r,elementsSelectable:i,nodeClickDistance:e.nodeClickDistance,onError:a},t))})}nL.displayName="NodeRenderer";let nR=(0,y.memo)(nL),nD={[f.Arrow]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e}};return(0,x.jsx)("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},[f.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>{let n={strokeWidth:t,...e&&{stroke:e,fill:e}};return(0,x.jsx)("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})}},n$=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:s="auto-start-reverse"})=>{let l,d=(l=tj(),(0,y.useMemo)(()=>{let e;return Object.prototype.hasOwnProperty.call(nD,t)?nD[t]:(l.getState().onError?.("009",(e=t,`Marker type "${e}" doesn't exist.`)),null)},[t]));return d?(0,x.jsx)("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:s,refX:"0",refY:"0",children:(0,x.jsx)(d,{color:n,strokeWidth:a})}):null},nT=({defaultColor:e,rfId:t})=>{let n=tN(e=>e.edges),o=tN(e=>e.defaultEdgeOptions),r=(0,y.useMemo)(()=>(function(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){let i=new Set;return e.reduce((e,a)=>([a.markerStart||o,a.markerEnd||r].forEach(o=>{if(o&&"object"==typeof o){let r=eW(o,t);i.has(r)||(e.push({id:r,color:o.color||n,...o}),i.add(r))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))})(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?(0,x.jsx)("svg",{className:"react-flow__marker","aria-hidden":"true",children:(0,x.jsx)("defs",{children:r.map(e=>(0,x.jsx)(n$,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id))})}):null};nT.displayName="MarkerDefinitions";var nB=(0,y.memo)(nT);function nH({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:a=[2,4],labelBgBorderRadius:s=2,children:l,className:d,...c}){let[u,h]=(0,y.useState)({x:1,y:0,width:0,height:0}),f=b(["react-flow__edge-textwrapper",d]),g=(0,y.useRef)(null);return((0,y.useEffect)(()=>{if(g.current){let e=g.current.getBBox();h({x:e.x,y:e.y,width:e.width,height:e.height})}},[n]),n)?(0,x.jsxs)("g",{transform:`translate(${e-u.width/2} ${t-u.height/2})`,className:f,visibility:u.width?"visible":"hidden",...c,children:[r&&(0,x.jsx)("rect",{width:u.width+2*a[0],x:-a[0],y:-a[1],height:u.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:s,ry:s}),(0,x.jsx)("text",{className:"react-flow__edge-text",y:u.height/2,dy:"0.3em",ref:g,style:o,children:n}),l]}):null}nH.displayName="EdgeText";let nV=(0,y.memo)(nH);function nF({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l,interactionWidth:d=20,...c}){return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("path",{...c,d:e,fill:"none",className:b(["react-flow__edge-path",c.className])}),d?(0,x.jsx)("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:d,className:"react-flow__edge-interaction"}):null,o&&eu(t)&&eu(n)?(0,x.jsx)(nV,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:a,labelBgPadding:s,labelBgBorderRadius:l}):null]})}function nZ({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===g.Left||e===g.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function nX({sourceX:e,sourceY:t,sourcePosition:n=g.Bottom,targetX:o,targetY:r,targetPosition:i=g.Top}){let[a,s]=nZ({pos:n,x1:e,y1:t,x2:o,y2:r}),[l,d]=nZ({pos:i,x1:o,y1:r,x2:e,y2:t}),[c,u,h,f]=eP({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:s,targetControlX:l,targetControlY:d});return[`M${e},${t} C${a},${s} ${l},${d} ${o},${r}`,c,u,h,f]}function nW(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a,targetPosition:s,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m,interactionWidth:y})=>{let[v,b,w]=nX({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s}),E=e.isInternal?void 0:t;return(0,x.jsx)(nF,{id:E,path:v,labelX:b,labelY:w,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:p,markerStart:m,interactionWidth:y})})}let nK=nW({isInternal:!1}),nY=nW({isInternal:!0});function nU(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,sourcePosition:f=g.Bottom,targetPosition:p=g.Top,markerEnd:m,markerStart:y,pathOptions:v,interactionWidth:b})=>{let[w,E,k]=eH({sourceX:n,sourceY:o,sourcePosition:f,targetX:r,targetY:i,targetPosition:p,borderRadius:v?.borderRadius,offset:v?.offset,stepPosition:v?.stepPosition}),S=e.isInternal?void 0:t;return(0,x.jsx)(nF,{id:S,path:w,labelX:E,labelY:k,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,markerEnd:m,markerStart:y,interactionWidth:b})})}nK.displayName="SimpleBezierEdge",nY.displayName="SimpleBezierEdgeInternal";let nG=nU({isInternal:!1}),nq=nU({isInternal:!0});function nQ(e){return(0,y.memo)(({id:t,...n})=>{let o=e.isInternal?void 0:t;return(0,x.jsx)(nG,{...n,id:o,pathOptions:(0,y.useMemo)(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}nG.displayName="SmoothStepEdge",nq.displayName="SmoothStepEdgeInternal";let nJ=nQ({isInternal:!1}),n0=nQ({isInternal:!0});function n1(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,markerEnd:f,markerStart:g,interactionWidth:p})=>{let[m,y,v]=eD({sourceX:n,sourceY:o,targetX:r,targetY:i}),b=e.isInternal?void 0:t;return(0,x.jsx)(nF,{id:b,path:m,labelX:y,labelY:v,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:d,labelBgPadding:c,labelBgBorderRadius:u,style:h,markerEnd:f,markerStart:g,interactionWidth:p})})}nJ.displayName="StepEdge",n0.displayName="StepEdgeInternal";let n2=n1({isInternal:!1}),n5=n1({isInternal:!0});function n3(e){return(0,y.memo)(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:a=g.Bottom,targetPosition:s=g.Top,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:y,pathOptions:v,interactionWidth:b})=>{let[w,E,k]=eA({sourceX:n,sourceY:o,sourcePosition:a,targetX:r,targetY:i,targetPosition:s,curvature:v?.curvature}),S=e.isInternal?void 0:t;return(0,x.jsx)(nF,{id:S,path:w,labelX:E,labelY:k,label:l,labelStyle:d,labelShowBg:c,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:f,style:p,markerEnd:m,markerStart:y,interactionWidth:b})})}n2.displayName="StraightEdge",n5.displayName="StraightEdgeInternal";let n4=n3({isInternal:!1}),n6=n3({isInternal:!0});n4.displayName="BezierEdge",n6.displayName="BezierEdgeInternal";let n7={default:n6,straight:n5,step:n0,smoothstep:nq,simplebezier:nY},n8={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},n9="react-flow__edgeupdater";function oe({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:a,type:s}){return(0,x.jsx)("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:a,className:b([n9,`${n9}-${s}`]),cx:e===g.Left?t-o:e===g.Right?t+o:t,cy:e===g.Top?n-o:e===g.Bottom?n+o:n,r:o,stroke:"transparent",fill:"transparent"})}function ot({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:a,sourcePosition:s,targetPosition:l,onReconnect:d,onReconnectStart:c,onReconnectEnd:u,setReconnecting:h,setUpdateHover:f}){let g=tj(),p=(e,t)=>{if(0!==e.button)return;let{autoPanOnConnect:o,domNode:r,connectionMode:i,connectionRadius:a,lib:s,onConnectStart:l,cancelConnection:f,nodeLookup:p,rfId:m,panBy:x,updateConnection:y}=g.getState(),v="target"===t.type;te(e.nativeEvent,{autoPanOnConnect:o,connectionMode:i,connectionRadius:a,domNode:r,handleId:t.id,nodeId:t.nodeId,nodeLookup:p,isTarget:v,edgeUpdaterType:t.type,lib:s,flowId:m,cancelConnection:f,panBy:x,isValidConnection:(...e)=>g.getState().isValidConnection?.(...e)??!0,onConnect:e=>d?.(n,e),onConnectStart:(o,r)=>{h(!0),c?.(e,n,t.type),l?.(o,r)},onConnectEnd:(...e)=>g.getState().onConnectEnd?.(...e),onReconnectEnd:(e,o)=>{h(!1),u?.(e,n,t.type,o)},updateConnection:y,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:e.currentTarget})},m=()=>f(!0),y=()=>f(!1);return(0,x.jsxs)(x.Fragment,{children:[(!0===e||"source"===e)&&(0,x.jsx)(oe,{position:s,centerX:o,centerY:r,radius:t,onMouseDown:e=>p(e,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),onMouseEnter:m,onMouseOut:y,type:"source"}),(!0===e||"target"===e)&&(0,x.jsx)(oe,{position:l,centerX:i,centerY:a,radius:t,onMouseDown:e=>p(e,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),onMouseEnter:m,onMouseOut:y,type:"target"})]})}var on=(0,y.memo)(function({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:c,reconnectRadius:u,onReconnect:h,onReconnectStart:f,onReconnectEnd:p,rfId:m,edgeTypes:v,noPanClassName:w,onError:E,disableKeyboardA11y:k}){let S,C=tN(t=>t.edgeLookup.get(e)),_=tN(e=>e.defaultEdgeOptions),N=(C=_?{..._,...C}:C).type||"default",j=v?.[N]||n7[N];void 0===j&&(E?.("011",(S=N,`Edge type "${S}" not found. Using fallback type "default".`)),N="default",j=v?.default||n7.default);let M=!!(C.focusable||t&&void 0===C.focusable),O=void 0!==h&&(C.reconnectable||n&&void 0===C.reconnectable),P=!!(C.selectable||o&&void 0===C.selectable),I=(0,y.useRef)(null),[z,A]=(0,y.useState)(!1),[L,R]=(0,y.useState)(!1),D=tj(),{zIndex:$,sourceX:B,sourceY:H,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X}=tN((0,y.useCallback)(t=>{let n=t.nodeLookup.get(C.source),o=t.nodeLookup.get(C.target);if(!n||!o)return{zIndex:C.zIndex,...n8};let r=function(e){let{sourceNode:t,targetNode:n}=e;if(!eV(t)||!eV(n))return null;let o=t.internals.handleBounds||eF(t.handles),r=n.internals.handleBounds||eF(n.handles),i=eX(o?.source??[],e.sourceHandle),a=eX(e.connectionMode===d.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!i||!a)return e.onError?.("008",((e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${"source"===e?n:o}", edge id: ${t}.`)(!i?"source":"target",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let s=i?.position||g.Bottom,l=a?.position||g.Top,c=eZ(t,i,s),u=eZ(n,a,l);return{sourceX:c.x,sourceY:c.y,targetX:u.x,targetY:u.y,sourcePosition:s,targetPosition:l}}({id:e,sourceNode:n,targetNode:o,sourceHandle:C.sourceHandle||null,targetHandle:C.targetHandle||null,connectionMode:t.connectionMode,onError:E});return{zIndex:function({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1,zIndexMode:i="basic"}){if("manual"===i)return o;let a=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return(r&&n?o+1e3:o)+a}({selected:C.selected,zIndex:C.zIndex,sourceNode:n,targetNode:o,elevateOnSelect:t.elevateEdgesOnSelect,zIndexMode:t.zIndexMode}),...r||n8}},[C.source,C.target,C.sourceHandle,C.targetHandle,C.selected,C.zIndex]),tE),W=(0,y.useMemo)(()=>C.markerStart?`url('#${eW(C.markerStart,m)}')`:void 0,[C.markerStart,m]),K=(0,y.useMemo)(()=>C.markerEnd?`url('#${eW(C.markerEnd,m)}')`:void 0,[C.markerEnd,m]);if(C.hidden||null===B||null===H||null===V||null===F)return null;let Y=i?e=>{i(e,{...C})}:void 0,U=a?e=>{a(e,{...C})}:void 0,G=s?e=>{s(e,{...C})}:void 0,q=l?e=>{l(e,{...C})}:void 0,Q=c?e=>{c(e,{...C})}:void 0;return(0,x.jsx)("svg",{style:{zIndex:$},children:(0,x.jsxs)("g",{className:b(["react-flow__edge",`react-flow__edge-${N}`,C.className,w,{selected:C.selected,animated:C.animated,inactive:!P&&!r,updating:z,selectable:P}]),onClick:t=>{let{addSelectedEdges:n,unselectNodesAndEdges:o,multiSelectionActive:i}=D.getState();P&&(D.setState({nodesSelectionActive:!1}),C.selected&&i?(o({nodes:[],edges:[C]}),I.current?.blur()):n([e])),r&&r(t,C)},onDoubleClick:Y,onContextMenu:U,onMouseEnter:G,onMouseMove:q,onMouseLeave:Q,onKeyDown:M?t=>{if(!k&&T.includes(t.key)&&P){let{unselectNodesAndEdges:n,addSelectedEdges:o}=D.getState();"Escape"===t.key?(I.current?.blur(),n({edges:[C]})):o([e])}}:void 0,tabIndex:M?0:void 0,role:C.ariaRole??(M?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":null===C.ariaLabel?void 0:C.ariaLabel||`Edge from ${C.source} to ${C.target}`,"aria-describedby":M?`${tI}-${m}`:void 0,ref:I,...C.domAttributes,children:[!L&&(0,x.jsx)(j,{id:e,source:C.source,target:C.target,type:C.type,selected:C.selected,animated:C.animated,selectable:P,deletable:C.deletable??!0,label:C.label,labelStyle:C.labelStyle,labelShowBg:C.labelShowBg,labelBgStyle:C.labelBgStyle,labelBgPadding:C.labelBgPadding,labelBgBorderRadius:C.labelBgBorderRadius,sourceX:B,sourceY:H,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X,data:C.data,style:C.style,sourceHandleId:C.sourceHandle,targetHandleId:C.targetHandle,markerStart:W,markerEnd:K,pathOptions:"pathOptions"in C?C.pathOptions:void 0,interactionWidth:C.interactionWidth}),O&&(0,x.jsx)(ot,{edge:C,isReconnectable:O,reconnectRadius:u,onReconnect:h,onReconnectStart:f,onReconnectEnd:p,sourceX:B,sourceY:H,targetX:V,targetY:F,sourcePosition:Z,targetPosition:X,setUpdateHover:A,setReconnecting:R})]})})});let oo=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function or({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:i,onEdgeContextMenu:a,onEdgeMouseEnter:s,onEdgeMouseMove:l,onEdgeMouseLeave:d,onEdgeClick:c,reconnectRadius:u,onEdgeDoubleClick:h,onReconnectStart:f,onReconnectEnd:g,disableKeyboardA11y:p}){let{edgesFocusable:m,edgesReconnectable:v,elementsSelectable:b,onError:w}=tN(oo,tE),E=tN((0,y.useCallback)(e=>{if(!t)return e.edges.map(e=>e.id);let n=[];if(e.width&&e.height)for(let t of e.edges){let o=e.nodeLookup.get(t.source),r=e.nodeLookup.get(t.target);o&&r&&function({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){let i=eo(es(e),es(t));return i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1),ed({x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]},ei(i))>0}({sourceNode:o,targetNode:r,width:e.width,height:e.height,transform:e.transform})&&n.push(t.id)}return n},[t]),tE);return(0,x.jsxs)("div",{className:"react-flow__edges",children:[(0,x.jsx)(nB,{defaultColor:e,rfId:n}),E.map(e=>(0,x.jsx)(on,{id:e,edgesFocusable:m,edgesReconnectable:v,elementsSelectable:b,noPanClassName:r,onReconnect:i,onContextMenu:a,onMouseEnter:s,onMouseMove:l,onMouseLeave:d,onClick:c,reconnectRadius:u,onDoubleClick:h,onReconnectStart:f,onReconnectEnd:g,rfId:n,onError:w,edgeTypes:o,disableKeyboardA11y:p},e))]})}or.displayName="EdgeRenderer";let oi=(0,y.memo)(or),oa=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function os({children:e}){let t=tN(oa);return(0,x.jsx)("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}let ol=e=>e.panZoom?.syncViewport;function od(e){return e.connection.inProgress?{...e.connection,to:eg(e.connection.to,e.transform)}:{...e.connection}}let oc=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ou({containerStyle:e,style:t,type:n,component:o}){let{nodesConnectable:r,width:i,height:a,isValid:s,inProgress:l}=tN(oc,tE);return i&&r&&l?(0,x.jsx)("svg",{style:e,width:i,height:a,className:"react-flow__connectionline react-flow__container",children:(0,x.jsx)("g",{className:b(["react-flow__connection",F(s)]),children:(0,x.jsx)(oh,{style:t,type:n,CustomComponent:o,isValid:s})})}):null}let oh=({style:e,type:t=h.Bezier,CustomComponent:n,isValid:o})=>{let{inProgress:r,from:i,fromNode:a,fromHandle:s,fromPosition:l,to:d,toNode:c,toHandle:u,toPosition:f,pointer:g}=tN(od,tE);if(!r)return;if(n)return(0,x.jsx)(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:s,fromX:i.x,fromY:i.y,toX:d.x,toY:d.y,fromPosition:l,toPosition:f,connectionStatus:F(o),toNode:c,toHandle:u,pointer:g});let p="",m={sourceX:i.x,sourceY:i.y,sourcePosition:l,targetX:d.x,targetY:d.y,targetPosition:f};switch(t){case h.Bezier:[p]=eA(m);break;case h.SimpleBezier:[p]=nX(m);break;case h.Step:[p]=eH({...m,borderRadius:0});break;case h.SmoothStep:[p]=eH(m);break;default:[p]=eD(m)}return(0,x.jsx)("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};oh.displayName="ConnectionLine";let of={};function og(e=of){(0,y.useRef)(e),tj(),(0,y.useEffect)(()=>{},[e])}function op({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:a,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:d,onNodeContextMenu:c,onSelectionContextMenu:u,onSelectionStart:h,onSelectionEnd:f,connectionLineType:g,connectionLineStyle:p,connectionLineComponent:m,connectionLineContainerStyle:v,selectionKeyCode:b,selectionOnDrag:w,selectionMode:E,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:C,deleteKeyCode:_,onlyRenderVisibleElements:N,elementsSelectable:j,defaultViewport:M,translateExtent:O,minZoom:P,maxZoom:I,preventScrolling:z,defaultMarkerColor:A,zoomOnScroll:L,zoomOnPinch:R,panOnScroll:D,panOnScrollSpeed:$,panOnScrollMode:T,zoomOnDoubleClick:B,panOnDrag:H,autoPanOnSelection:V,onPaneClick:F,onPaneMouseEnter:Z,onPaneMouseMove:X,onPaneMouseLeave:W,onPaneScroll:K,onPaneContextMenu:Y,paneClickDistance:U,nodeClickDistance:G,onEdgeContextMenu:q,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:et,onReconnect:en,onReconnectStart:eo,onReconnectEnd:er,noDragClassName:ei,noWheelClassName:ea,noPanClassName:es,disableKeyboardA11y:el,nodeExtent:ed,rfId:ec,viewport:eu,onViewportChange:eh}){let ef,eg,ep,em;return og(e),og(t),tj(),(0,y.useRef)(!1),(0,y.useEffect)(()=>{},[]),ef=ni(),eg=(0,y.useRef)(!1),(0,y.useEffect)(()=>{!eg.current&&ef.viewportInitialized&&n&&(setTimeout(()=>n(ef),1),eg.current=!0)},[n,ef.viewportInitialized]),ep=tN(ol),em=tj(),(0,y.useEffect)(()=>{eu&&(ep?.(eu),em.setState({transform:[eu.x,eu.y,eu.zoom]}))},[eu,ep]),(0,x.jsx)(nP,{onPaneClick:F,onPaneMouseEnter:Z,onPaneMouseMove:X,onPaneMouseLeave:W,onPaneContextMenu:Y,onPaneScroll:K,paneClickDistance:U,deleteKeyCode:_,selectionKeyCode:b,selectionOnDrag:w,selectionMode:E,onSelectionStart:h,onSelectionEnd:f,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:C,elementsSelectable:j,zoomOnScroll:L,zoomOnPinch:R,zoomOnDoubleClick:B,panOnScroll:D,panOnScrollSpeed:$,panOnScrollMode:T,panOnDrag:H,autoPanOnSelection:V,defaultViewport:M,translateExtent:O,minZoom:P,maxZoom:I,onSelectionContextMenu:u,preventScrolling:z,noDragClassName:ei,noWheelClassName:ea,noPanClassName:es,disableKeyboardA11y:el,onViewportChange:eh,isControlledViewport:!!eu,children:(0,x.jsxs)(os,{children:[(0,x.jsx)(oi,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:a,onReconnect:en,onReconnectStart:eo,onReconnectEnd:er,onlyRenderVisibleElements:N,onEdgeContextMenu:q,onEdgeMouseEnter:Q,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:et,defaultMarkerColor:A,noPanClassName:es,disableKeyboardA11y:el,rfId:ec}),(0,x.jsx)(ou,{style:p,type:g,component:m,containerStyle:v}),(0,x.jsx)("div",{className:"react-flow__edgelabel-renderer"}),(0,x.jsx)(nR,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:s,onNodeMouseMove:l,onNodeMouseLeave:d,onNodeContextMenu:c,nodeClickDistance:G,onlyRenderVisibleElements:N,noPanClassName:es,noDragClassName:ei,disableKeyboardA11y:el,nodeExtent:ed,rfId:ec}),(0,x.jsx)("div",{className:"react-flow__viewport-portal"})]})})}op.displayName="GraphView";let om=(0,y.memo)(op),ox=eh("React Flow","https://reactflow.dev/"),oy=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l=.5,maxZoom:c=2,nodeOrigin:u,nodeExtent:h,zIndexMode:f="basic"}={})=>{let g=new Map,p=new Map,m=new Map,x=new Map,y=o??t??[],v=n??e??[],b=u??[0,0],w=h??$;e5(m,x,y);let{nodesInitialized:E}=eq(v,g,p,{nodeOrigin:b,nodeExtent:w,zIndexMode:f}),k=[0,0,1];if(a&&r&&i){let{x:e,y:t,zoom:n}=ex(K(g,{filter:e=>!!((e.width||e.initialWidth)&&(e.height||e.initialHeight))}),r,i,l,c,s?.padding??.1);k=[e,t,n]}return{rfId:"1",width:r??0,height:i??0,transform:k,nodes:v,nodesInitialized:E,nodeLookup:g,parentLookup:p,edges:y,edgeLookup:x,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==n,hasDefaultEdges:void 0!==o,panZoom:null,minZoom:l,maxZoom:c,translateExtent:$,nodeExtent:w,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:d.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:b,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:a??!1,fitViewOptions:s,fitViewResolver:null,connection:{...H},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ox,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:B,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}};function ov({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:i,initialMinZoom:a,initialMaxZoom:s,initialFitViewOptions:l,fitView:d,nodeOrigin:c,nodeExtent:u,zIndexMode:h,children:f}){let[p]=(0,y.useState)(()=>(({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:u,zIndexMode:h})=>{let f,p;return f=(f,p)=>{async function m(){let{nodeLookup:e,panZoom:t,fitViewOptions:n,fitViewResolver:o,width:r,height:i,minZoom:a,maxZoom:s}=p();t&&(await U({nodes:e,width:r,height:i,panZoom:t,minZoom:a,maxZoom:s},n),o?.resolve(!0),f({fitViewResolver:null}))}return{...oy({nodes:e,edges:t,width:r,height:i,fitView:a,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:u,defaultNodes:n,defaultEdges:o,zIndexMode:h}),setNodes:e=>{let{nodeLookup:t,parentLookup:n,nodeOrigin:o,elevateNodesOnSelect:r,fitViewQueued:i,zIndexMode:a,nodesSelectionActive:s}=p(),{nodesInitialized:l,hasSelectedNodes:d}=eq(e,t,n,{nodeOrigin:o,nodeExtent:u,elevateNodesOnSelect:r,checkEquality:!0,zIndexMode:a}),c=s&&d;i&&l?(m(),f({nodes:e,nodesInitialized:l,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:c})):f({nodes:e,nodesInitialized:l,nodesSelectionActive:c})},setEdges:e=>{let{connectionLookup:t,edgeLookup:n}=p();e5(t,n,e),f({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){let{setNodes:t}=p();t(e),f({hasDefaultNodes:!0})}if(t){let{setEdges:e}=p();e(t),f({hasDefaultEdges:!0})}},updateNodeInternals:e=>{let{triggerNodeChanges:t,nodeLookup:n,parentLookup:o,domNode:r,nodeOrigin:i,nodeExtent:a,debug:s,fitViewQueued:l,zIndexMode:d}=p(),{changes:c,updatedInternals:u}=function(e,t,n,o,r,i,a){let s=o?.querySelector(".xyflow__viewport"),l=!1;if(!s)return{changes:[],updatedInternals:l};let d=[],c=window.getComputedStyle(s),{m22:u}=new window.DOMMatrixReadOnly(c.transform),h=[];for(let o of e.values()){let e=t.get(o.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),l=!0;continue}let s=eC(o.nodeElement),c=e.measured.width!==s.width||e.measured.height!==s.height;if(s.width&&s.height&&(c||!e.internals.handleBounds||o.force)){let f=o.nodeElement.getBoundingClientRect(),g=ev(e.extent)?e.extent:i,{positionAbsolute:p}=e.internals;e.parentId&&"parent"===e.extent?p=ee(p,s,t.get(e.parentId)):g&&(p=J(p,g,s));let m={...e,measured:s,internals:{...e.internals,positionAbsolute:p,handleBounds:{source:eO("source",o.nodeElement,f,u,e.id),target:eO("target",o.nodeElement,f,u,e.id)}}};t.set(e.id,m),e.parentId&&eQ(m,t,n,{nodeOrigin:r,zIndexMode:a}),l=!0,c&&(d.push({id:e.id,type:"dimensions",dimensions:s}),e.expandParent&&e.parentId&&h.push({id:e.id,parentId:e.parentId,rect:ea(m,r)}))}}if(h.length>0){let e=e0(h,t,n,r);d.push(...e)}return{changes:d,updatedInternals:l}}(e,n,o,r,i,a,d);u&&(!function(e,t,n){let o=eU(eK,n);for(let n of e.values())if(n.parentId)eQ(n,e,t,o);else{let e=J(W(n,o.nodeOrigin),ev(n.extent)?n.extent:o.nodeExtent,eb(n));n.internals.positionAbsolute=e}}(n,o,{nodeOrigin:i,nodeExtent:a,zIndexMode:d}),l?(m(),f({fitViewQueued:!1,fitViewOptions:void 0})):f({}),c?.length>0&&(s&&console.log("React Flow: trigger node changes",c),t?.(c)))},updateNodePositions:(e,t=!1)=>{let n=[],o=[],{nodeLookup:r,triggerNodeChanges:i,connection:a,updateConnection:s,onNodesChangeMiddlewareMap:l}=p();for(let[i,l]of e){let e=r.get(i),d=!!(e?.expandParent&&e?.parentId&&l?.position),c={id:i,type:"position",position:d?{x:Math.max(0,l.position.x),y:Math.max(0,l.position.y)}:l.position,dragging:t};if(e&&a.inProgress&&a.fromNode.id===e.id){let t=eZ(e,a.fromHandle,g.Left,!0);s({...a,from:t})}d&&e.parentId&&n.push({id:i,parentId:e.parentId,rect:{...l.internals.positionAbsolute,width:l.measured.width??0,height:l.measured.height??0}}),o.push(c)}if(n.length>0){let{parentLookup:e,nodeOrigin:t}=p(),i=e0(n,r,e,t);o.push(...i)}for(let e of l.values())o=e(o);i(o)},triggerNodeChanges:e=>{let{onNodesChange:t,setNodes:n,nodes:o,hasDefaultNodes:r,debug:i}=p();e?.length&&(r&&n(t2(e,o)),i&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{let{onEdgesChange:t,setEdges:n,edges:o,hasDefaultEdges:r,debug:i}=p();e?.length&&(r&&n(t2(e,o)),i&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=p();t?r(e.map(e=>t5(e,!0))):(r(t3(o,new Set([...e]),!0)),i(t3(n)))},addSelectedEdges:e=>{let{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=p();t?i(e.map(e=>t5(e,!0))):(i(t3(n,new Set([...e]))),r(t3(o,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{let{edges:n,nodes:o,nodeLookup:r,triggerNodeChanges:i,triggerEdgeChanges:a}=p(),s=[];for(let t of e||o){if(!t.selected)continue;let e=r.get(t.id);e&&(e.selected=!1),s.push(t5(t.id,!1))}let l=[];for(let e of t||n)e.selected&&l.push(t5(e.id,!1));i(s),a(l)},setMinZoom:e=>{let{panZoom:t,maxZoom:n}=p();t?.setScaleExtent([e,n]),f({minZoom:e})},setMaxZoom:e=>{let{panZoom:t,minZoom:n}=p();t?.setScaleExtent([n,e]),f({maxZoom:e})},setTranslateExtent:e=>{p().panZoom?.setTranslateExtent(e),f({translateExtent:e})},resetSelectedElements:()=>{let{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:o,elementsSelectable:r}=p();if(!r)return;let i=t.reduce((e,t)=>t.selected?[...e,t5(t.id,!1)]:e,[]),a=e.reduce((e,t)=>t.selected?[...e,t5(t.id,!1)]:e,[]);n(i),o(a)},setNodeExtent:e=>{let{nodes:t,nodeLookup:n,parentLookup:o,nodeOrigin:r,elevateNodesOnSelect:i,nodeExtent:a,zIndexMode:s}=p();(e[0][0]!==a[0][0]||e[0][1]!==a[0][1]||e[1][0]!==a[1][0]||e[1][1]!==a[1][1])&&(eq(t,n,o,{nodeOrigin:r,nodeExtent:e,elevateNodesOnSelect:i,checkEquality:!1,zIndexMode:s}),f({nodeExtent:e}))},panBy:e=>{let{transform:t,width:n,height:o,panZoom:r,translateExtent:i}=p();return e1({delta:e,panZoom:r,transform:t,translateExtent:i,width:n,height:o})},setCenter:async(e,t,n)=>{let{width:o,height:r,maxZoom:i,panZoom:a}=p();if(!a)return!1;let s=void 0!==n?.zoom?n.zoom:i;return await a.setViewport({x:o/2-e*s,y:r/2-t*s,zoom:s},{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),!0},cancelConnection:()=>{f({connection:{...H}})},updateConnection:e=>{f({connection:e})},reset:()=>f({...oy()})}},p=Object.is,f?tw(f,p):tw})({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:d,minZoom:a,maxZoom:s,fitViewOptions:l,nodeOrigin:c,nodeExtent:u,zIndexMode:h}));return(0,x.jsx)(tC,{value:p,children:(0,x.jsx)(no,{children:f})})}function ob({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:a,fitView:s,fitViewOptions:l,minZoom:d,maxZoom:c,nodeOrigin:u,nodeExtent:h,zIndexMode:f}){return(0,y.useContext)(tS)?(0,x.jsx)(x.Fragment,{children:e}):(0,x.jsx)(ov,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:i,initialHeight:a,fitView:s,initialFitViewOptions:l,initialMinZoom:d,initialMaxZoom:c,nodeOrigin:u,nodeExtent:h,zIndexMode:f,children:e})}let ow={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var oE=t9(function({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i,edgeTypes:a,onNodeClick:s,onEdgeClick:l,onInit:d,onMove:f,onMoveStart:g,onMoveEnd:p,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:E,onClickConnectEnd:k,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:_,onNodeContextMenu:N,onNodeDoubleClick:j,onNodeDragStart:M,onNodeDrag:O,onNodeDragStop:P,onNodesDelete:I,onEdgesDelete:z,onDelete:A,onSelectionChange:L,onSelectionDragStart:R,onSelectionDrag:D,onSelectionDragStop:T,onSelectionContextMenu:B,onSelectionStart:H,onSelectionEnd:V,onBeforeDelete:F,connectionMode:Z,connectionLineType:X=h.Bezier,connectionLineStyle:W,connectionLineComponent:K,connectionLineContainerStyle:Y,deleteKeyCode:U="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:q=!1,selectionMode:Q=u.Full,panActivationKeyCode:J="Space",multiSelectionKeyCode:ee=ey()?"Meta":"Control",zoomActivationKeyCode:et=ey()?"Meta":"Control",snapToGrid:en,snapGrid:eo,onlyRenderVisibleElements:er=!1,selectNodesOnDrag:ei,nodesDraggable:ea,autoPanOnNodeFocus:es,nodesConnectable:el,nodesFocusable:ed,nodeOrigin:ec=tX,edgesFocusable:eu,edgesReconnectable:eh,elementsSelectable:ef=!0,defaultViewport:eg=tW,minZoom:ep=.5,maxZoom:em=2,translateExtent:ex=$,preventScrolling:ev=!0,nodeExtent:eb,defaultMarkerColor:ew="#b1b1b7",zoomOnScroll:eE=!0,zoomOnPinch:ek=!0,panOnScroll:eS=!1,panOnScrollSpeed:eC=.5,panOnScrollMode:e_=c.Free,zoomOnDoubleClick:eN=!0,panOnDrag:ej=!0,onPaneClick:eM,onPaneMouseEnter:eO,onPaneMouseMove:eP,onPaneMouseLeave:eI,onPaneScroll:ez,onPaneContextMenu:eA,paneClickDistance:eL=1,nodeClickDistance:eR=0,children:eD,onReconnect:e$,onReconnectStart:eT,onReconnectEnd:eB,onEdgeContextMenu:eH,onEdgeDoubleClick:eV,onEdgeMouseEnter:eF,onEdgeMouseMove:eZ,onEdgeMouseLeave:eX,reconnectRadius:eW=10,onNodesChange:eK,onEdgesChange:eY,noDragClassName:eU="nodrag",noWheelClassName:eG="nowheel",noPanClassName:eq="nopan",fitView:eQ,fitViewOptions:eJ,connectOnClick:e0,attributionPosition:e1,proOptions:e2,defaultEdgeOptions:e5,elevateNodesOnSelect:e3=!0,elevateEdgesOnSelect:e4=!1,disableKeyboardA11y:e6=!1,autoPanOnConnect:e7,autoPanOnNodeDrag:e8,autoPanOnSelection:e9=!0,autoPanSpeed:te,connectionRadius:tt,isValidConnection:tn,onError:to,style:tr,id:ti,nodeDragThreshold:ta,connectionDragThreshold:ts,viewport:tl,onViewportChange:td,width:tc,height:tu,colorMode:th="light",debug:tf,onScroll:tg,ariaLabelConfig:tp,zIndexMode:tm="basic",...tx},ty){let tv=ti||"1",tb=function(e){let[t,n]=(0,y.useState)("system"===e?null:e);return(0,y.useEffect)(()=>{if("system"!==e)return void n(e);let t=tq(),o=()=>n(t?.matches?"dark":"light");return o(),t?.addEventListener("change",o),()=>{t?.removeEventListener("change",o)}},[e]),null!==t?t:tq()?.matches?"dark":"light"}(th),tw=(0,y.useCallback)(e=>{e.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),tg?.(e)},[tg]);return(0,x.jsx)("div",{"data-testid":"rf__wrapper",...tx,onScroll:tw,style:{...tr,...ow},ref:ty,className:b(["react-flow",r,tb]),id:ti,role:"application",children:(0,x.jsxs)(ob,{nodes:e,edges:t,width:tc,height:tu,fitView:eQ,fitViewOptions:eJ,minZoom:ep,maxZoom:em,nodeOrigin:ec,nodeExtent:eb,zIndexMode:tm,children:[(0,x.jsx)(tG,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:m,onConnectStart:v,onConnectEnd:w,onClickConnectStart:E,onClickConnectEnd:k,nodesDraggable:ea,autoPanOnNodeFocus:es,nodesConnectable:el,nodesFocusable:ed,edgesFocusable:eu,edgesReconnectable:eh,elementsSelectable:ef,elevateNodesOnSelect:e3,elevateEdgesOnSelect:e4,minZoom:ep,maxZoom:em,nodeExtent:eb,onNodesChange:eK,onEdgesChange:eY,snapToGrid:en,snapGrid:eo,connectionMode:Z,translateExtent:ex,connectOnClick:e0,defaultEdgeOptions:e5,fitView:eQ,fitViewOptions:eJ,onNodesDelete:I,onEdgesDelete:z,onDelete:A,onNodeDragStart:M,onNodeDrag:O,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:R,onSelectionDragStop:T,onMove:f,onMoveStart:g,onMoveEnd:p,noPanClassName:eq,nodeOrigin:ec,rfId:tv,autoPanOnConnect:e7,autoPanOnNodeDrag:e8,autoPanSpeed:te,onError:to,connectionRadius:tt,isValidConnection:tn,selectNodesOnDrag:ei,nodeDragThreshold:ta,connectionDragThreshold:ts,onBeforeDelete:F,debug:tf,ariaLabelConfig:tp,zIndexMode:tm}),(0,x.jsx)(om,{onInit:d,onNodeClick:s,onEdgeClick:l,onNodeMouseEnter:S,onNodeMouseMove:C,onNodeMouseLeave:_,onNodeContextMenu:N,onNodeDoubleClick:j,nodeTypes:i,edgeTypes:a,connectionLineType:X,connectionLineStyle:W,connectionLineComponent:K,connectionLineContainerStyle:Y,selectionKeyCode:G,selectionOnDrag:q,selectionMode:Q,deleteKeyCode:U,multiSelectionKeyCode:ee,panActivationKeyCode:J,zoomActivationKeyCode:et,onlyRenderVisibleElements:er,defaultViewport:eg,translateExtent:ex,minZoom:ep,maxZoom:em,preventScrolling:ev,zoomOnScroll:eE,zoomOnPinch:ek,zoomOnDoubleClick:eN,panOnScroll:eS,panOnScrollSpeed:eC,panOnScrollMode:e_,panOnDrag:ej,autoPanOnSelection:e9,onPaneClick:eM,onPaneMouseEnter:eO,onPaneMouseMove:eP,onPaneMouseLeave:eI,onPaneScroll:ez,onPaneContextMenu:eA,paneClickDistance:eL,nodeClickDistance:eR,onSelectionContextMenu:B,onSelectionStart:H,onSelectionEnd:V,onReconnect:e$,onReconnectStart:eT,onReconnectEnd:eB,onEdgeContextMenu:eH,onEdgeDoubleClick:eV,onEdgeMouseEnter:eF,onEdgeMouseMove:eZ,onEdgeMouseLeave:eX,reconnectRadius:eW,defaultMarkerColor:ew,noDragClassName:eU,noWheelClassName:eG,noPanClassName:eq,rfId:tv,disableKeyboardA11y:e6,nodeExtent:eb,viewport:tl,onViewportChange:td}),(0,x.jsx)(tZ,{onSelectionChange:L}),eD,(0,x.jsx)(t$,{proOptions:e2,position:e1}),(0,x.jsx)(tR,{rfId:tv,disableKeyboardA11y:e6})]})})});let ok=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");function oS({children:e}){let t=tN(ok);return t?(0,tk.createPortal)(e,t):null}function oC({dimensions:e,lineWidth:t,variant:n,className:o}){return(0,x.jsx)("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:b(["react-flow__background-pattern",n,o])})}function o_({radius:e,className:t}){return(0,x.jsx)("circle",{cx:e,cy:e,r:e,className:b(["react-flow__background-pattern","dots",t])})}(l=m||(m={})).Lines="lines",l.Dots="dots",l.Cross="cross";let oN={[m.Dots]:1,[m.Lines]:1,[m.Cross]:6},oj=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function oM({id:e,variant:t=m.Dots,gap:n=20,size:o,lineWidth:r=1,offset:i=0,color:a,bgColor:s,style:l,className:d,patternClassName:c}){let u=(0,y.useRef)(null),{transform:h,patternId:f}=tN(oj,tE),g=o||oN[t],p=t===m.Dots,v=t===m.Cross,w=Array.isArray(n)?n:[n,n],E=[w[0]*h[2]||1,w[1]*h[2]||1],k=g*h[2],S=Array.isArray(i)?i:[i,i],C=v?[k,k]:E,_=[S[0]*h[2]||1+C[0]/2,S[1]*h[2]||1+C[1]/2],N=`${f}${e||""}`;return(0,x.jsxs)("svg",{className:b(["react-flow__background",d]),style:{...l,...nl,"--xy-background-color-props":s,"--xy-background-pattern-color-props":a},ref:u,"data-testid":"rf__background",children:[(0,x.jsx)("pattern",{id:N,x:h[0]%E[0],y:h[1]%E[1],width:E[0],height:E[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:p?(0,x.jsx)(o_,{radius:k/2,className:c}):(0,x.jsx)(oC,{dimensions:C,lineWidth:r,variant:t,className:c})}),(0,x.jsx)("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${N})`})]})}oM.displayName="Background";let oO=(0,y.memo)(oM);function oP(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:(0,x.jsx)("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function oI(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:(0,x.jsx)("path",{d:"M0 0h32v4.2H0z"})})}function oz(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:(0,x.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 oA(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,x.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 oL(){return(0,x.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:(0,x.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 oR({children:e,className:t,...n}){return(0,x.jsx)("button",{type:"button",className:b(["react-flow__controls-button",t]),...n,children:e})}let oD=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function o$({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:a,onFitView:s,onInteractiveChange:l,className:d,children:c,position:u="bottom-left",orientation:h="vertical","aria-label":f}){let g=tj(),{isInteractive:p,minZoomReached:m,maxZoomReached:y,ariaLabelConfig:v}=tN(oD,tE),{zoomIn:w,zoomOut:E,fitView:k}=ni();return(0,x.jsxs)(tD,{className:b(["react-flow__controls","horizontal"===h?"horizontal":"vertical",d]),position:u,style:e,"data-testid":"rf__controls","aria-label":f??v["controls.ariaLabel"],children:[t&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(oR,{onClick:()=>{w(),i?.()},className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:y,children:(0,x.jsx)(oP,{})}),(0,x.jsx)(oR,{onClick:()=>{E(),a?.()},className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:m,children:(0,x.jsx)(oI,{})})]}),n&&(0,x.jsx)(oR,{className:"react-flow__controls-fitview",onClick:()=>{k(r),s?.()},title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:(0,x.jsx)(oz,{})}),o&&(0,x.jsx)(oR,{className:"react-flow__controls-interactive",onClick:()=>{g.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),l?.(!p)},title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:p?(0,x.jsx)(oL,{}):(0,x.jsx)(oA,{})}),c]})}o$.displayName="Controls",(0,y.memo)(o$);let oT=(0,y.memo)(function({id:e,x:t,y:n,width:o,height:r,style:i,color:a,strokeColor:s,strokeWidth:l,className:d,borderRadius:c,shapeRendering:u,selected:h,onClick:f}){let{background:g,backgroundColor:p}=i||{};return(0,x.jsx)("rect",{className:b(["react-flow__minimap-node",{selected:h},d]),x:t,y:n,rx:c,ry:c,width:o,height:r,style:{fill:a||g||p,stroke:s,strokeWidth:l},shapeRendering:u,onClick:f?t=>f(t,e):void 0})}),oB=e=>e.nodes.map(e=>e.id),oH=e=>e instanceof Function?e:()=>e,oV=(0,y.memo)(function({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:a,NodeComponent:s,onClick:l}){let{node:d,x:c,y:u,width:h,height:f}=tN(t=>{let n=t.nodeLookup.get(e);if(!n)return{node:void 0,x:0,y:0,width:0,height:0};let o=n.internals.userNode,{x:r,y:i}=n.internals.positionAbsolute,{width:a,height:s}=eb(o);return{node:o,x:r,y:i,width:a,height:s}},tE);return d&&!d.hidden&&ew(d)?(0,x.jsx)(s,{x:c,y:u,width:h,height:f,style:d.style,selected:!!d.selected,className:o(d),color:t(d),borderRadius:r,strokeColor:n(d),strokeWidth:i,shapeRendering:a,onClick:l,id:d.id}):null});var oF=(0,y.memo)(function({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=oT,onClick:a}){let s=tN(oB,tE),l=oH(t),d=oH(e),c=oH(n),u="u"<typeof window||window.chrome?"crispEdges":"geometricPrecision";return(0,x.jsx)(x.Fragment,{children:s.map(e=>(0,x.jsx)(oV,{id:e,nodeColorFunc:l,nodeStrokeColorFunc:d,nodeClassNameFunc:c,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:a,shapeRendering:u},e))})});let oZ=e=>!e.hidden,oX=e=>{let 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?el(K(e.nodeLookup,{filter:oZ}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}};function oW({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:a,nodeComponent:s,bgColor:l,maskColor:d,maskStrokeColor:c,maskStrokeWidth:u,position:h="bottom-right",onClick:f,onNodeClick:g,pannable:p=!1,zoomable:m=!1,ariaLabel:v,inversePan:w,zoomStep:S=1,offsetScale:C=5}){let _=tj(),N=(0,y.useRef)(null),{boundingRect:j,viewBB:M,rfId:O,panZoom:P,translateExtent:I,flowWidth:A,flowHeight:L,ariaLabelConfig:R}=tN(oX,tE),D=e?.width??200,$=e?.height??150,T=Math.max(j.width/D,j.height/$),B=T*D,H=T*$,V=C*T,F=j.x-(B-j.width)/2-V,Z=j.y-(H-j.height)/2-V,X=B+2*V,W=H+2*V,K=`react-flow__minimap-desc-${O}`,Y=(0,y.useRef)(0),U=(0,y.useRef)();Y.current=T,(0,y.useEffect)(()=>{if(N.current&&P)return U.current=function({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){let r=(0,E.select)(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:s=1,pannable:l=!0,zoomable:d=!0,inversePan:c=!1}){let u=[0,0],h=(0,z.default)().on("start",e=>{("mousedown"===e.sourceEvent.type||"touchstart"===e.sourceEvent.type)&&(u=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on("zoom",l?r=>{let s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!t)return;let l=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],d=[l[0]-u[0],l[1]-u[1]];u=l;let h=o()*Math.max(s[2],Math.log(s[2]))*(c?-1:1),f={x:s[0]-d[0]*h,y:s[1]-d[1]*h};t.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},[[0,0],[i,a]],e)}:null).on("zoom.wheel",d?e=>{if("wheel"!==e.sourceEvent.type||!t)return;let o=n(),r=e.sourceEvent.ctrlKey&&ey()?10:1,i=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*s,a=o[2]*Math.pow(2,i*r);t.scaleTo(a)}:null);r.call(h,{})},destroy:function(){r.on("zoom",null)},pointer:k.pointer}}({domNode:N.current,panZoom:P,getTransform:()=>_.getState().transform,getViewScale:()=>Y.current}),()=>{U.current?.destroy()}},[P]),(0,y.useEffect)(()=>{U.current?.update({translateExtent:I,width:A,height:L,inversePan:w,pannable:p,zoomStep:S,zoomable:m})},[p,m,w,S,I,A,L]);let G=f?e=>{let[t,n]=U.current?.pointer(e)||[0,0];f(e,{x:t,y:n})}:void 0,q=g?(0,y.useCallback)((e,t)=>{g(e,_.getState().nodeLookup.get(t).internals.userNode)},[]):void 0,Q=v??R["minimap.ariaLabel"];return(0,x.jsx)(tD,{position:h,style:{...e,"--xy-minimap-background-color-props":"string"==typeof l?l:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof c?c:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof u?u*T:void 0,"--xy-minimap-node-background-color-props":"string"==typeof o?o:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof n?n:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof a?a:void 0},className:b(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:(0,x.jsxs)("svg",{width:D,height:$,viewBox:`${F} ${Z} ${X} ${W}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":K,ref:N,onClick:G,children:[Q&&(0,x.jsx)("title",{id:K,children:Q}),(0,x.jsx)(oF,{onClick:q,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:a,nodeComponent:s}),(0,x.jsx)("path",{className:"react-flow__minimap-mask",d:`M${F-V},${Z-V}h${X+2*V}v${W+2*V}h${-X-2*V}z
|
|
2
|
+
M${M.x},${M.y}h${M.width}v${M.height}h${-M.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}oW.displayName="MiniMap",(0,y.memo)(oW);let oK={[p.Line]:"right",[p.Handle]:"bottom-right"};(0,y.memo)(function({nodeId:e,position:t,variant:n=p.Handle,className:o,style:r,children:i,color:a,minWidth:s=10,minHeight:l=10,maxWidth:d=Number.MAX_VALUE,maxHeight:c=Number.MAX_VALUE,keepAspectRatio:u=!1,resizeDirection:h,autoScale:f=!0,shouldResize:g,onResizeStart:m,onResize:v,onResizeEnd:w}){let k,S=nw(),C="string"==typeof e?e:S,_=tj(),N=(0,y.useRef)(null),j=n===p.Handle,M=tN((0,y.useCallback)((k=j&&f,e=>k?`${Math.max(1/e.transform[2],1)}`:void 0),[j,f]),tE),O=(0,y.useRef)(null),P=t??oK[n];(0,y.useEffect)(()=>{if(N.current&&C)return O.current||(O.current=function({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){let i=(0,E.select)(e),a={controlDirection:tl("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};return{update:function({controlPosition:e,boundaries:s,keepAspectRatio:l,resizeDirection:d,onResizeStart:c,onResize:u,onResizeEnd:h,shouldResize:f}){let g,p,m,x,y={...th},v={...tf};a={boundaries:s,resizeDirection:d,keepAspectRatio:l,controlDirection:tl(e)};let b=null,w=[],E=!1,k=I().on("start",e=>{let{nodeLookup:o,transform:r,snapGrid:i,snapToGrid:a,nodeOrigin:s,paneDomNode:l}=n();if(!(g=o.get(t)))return;b=l?.getBoundingClientRect()??null;let{xSnapped:d,ySnapped:u}=eS(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:b});for(let[e,n]of(v={...y={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},pointerX:d,pointerY:u,aspectRatio:y.width/y.height},p=void 0,m=ev(g.extent)?g.extent:void 0,g.parentId&&("parent"===g.extent||g.expandParent)&&(p=o.get(g.parentId)),p&&"parent"===g.extent&&(m=[[0,0],[p.measured.width,p.measured.height]]),w=[],x=void 0,o))if(n.parentId===t&&(w.push({id:e,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){let e=function(e,t,n){let o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,a=e.measured.height??0,s=n[0]*i,l=n[1]*a;return[[o-s,r-l],[o+i-s,r+a-l]]}(n,g,n.origin??s);x=x?[[Math.min(e[0][0],x[0][0]),Math.min(e[0][1],x[0][1])],[Math.max(e[1][0],x[1][0]),Math.max(e[1][1],x[1][1])]]:e}c?.(e,{...y})}).on("drag",e=>{let{transform:t,snapGrid:r,snapToGrid:i,nodeOrigin:s}=n(),l=eS(e.sourceEvent,{transform:t,snapGrid:r,snapToGrid:i,containerBounds:b}),d=[];if(!g)return;let{x:c,y:h,width:k,height:S}=y,C={},_=g.origin??s,{width:N,height:j,x:M,y:O}=function(e,t,n,o,r,i,a,s){var l,d,c,u;let{affectsX:h,affectsY:f}=t,{isHorizontal:g,isVertical:p}=t,m=g&&p,{xSnapped:x,ySnapped:y}=n,{minWidth:v,maxWidth:b,minHeight:w,maxHeight:E}=o,{x:k,y:S,width:C,height:_,aspectRatio:N}=e,j=Math.floor(g?x-e.pointerX:0),M=Math.floor(p?y-e.pointerY:0),O=C+(h?-j:j),P=_+(f?-M:M),I=-i[0]*C,z=-i[1]*_,A=tu(O,v,b),L=tu(P,w,E);if(a){let e=0,t=0;h&&j<0?e=td(k+j+I,a[0][0]):!h&&j>0&&(e=tc(k+O+I,a[1][0])),f&&M<0?t=td(S+M+z,a[0][1]):!f&&M>0&&(t=tc(S+P+z,a[1][1])),A=Math.max(A,e),L=Math.max(L,t)}if(s){let e=0,t=0;h&&j>0?e=tc(k+j,s[0][0]):!h&&j<0&&(e=td(k+O,s[1][0])),f&&M>0?t=tc(S+M,s[0][1]):!f&&M<0&&(t=td(S+P,s[1][1])),A=Math.max(A,e),L=Math.max(L,t)}if(r){if(g){(A=Math.max(A,tu(O/N,w,E)*N),a)&&(A=Math.max(A,(h||f)&&(!h||f||!m)?td(S+z+(h?j:-j)/N,a[0][1])*N:tc(S+z+O/N,a[1][1])*N));s&&(A=Math.max(A,(h||f)&&(!h||f||!m)?tc(S+(h?j:-j)/N,s[0][1])*N:td(S+O/N,s[1][1])*N))}if(p){(L=Math.max(L,tu(P*N,v,b)/N),a)&&(L=Math.max(L,(h||f)&&(!f||h||!m)?td(k+(f?M:-M)*N+I,a[0][0])/N:tc(k+P*N+I,a[1][0])/N));s&&(L=Math.max(L,(h||f)&&(!f||h||!m)?tc(k+(f?M:-M)*N,s[0][0])/N:td(k+P*N,s[1][0])/N))}}M+=M<0?L:-L,j+=j<0?A:-A,r&&(m?O>P*N?M=((l=h,d=f,l?!d:d)?-j:j)/N:j=((c=h,u=f,c?!u:u)?-M:M)*N:g?(M=j/N,f=h):(j=M*N,h=f));let R=h?k+j:k,D=f?S+M:S;return{width:C+(h?-j:j),height:_+(f?-M:M),x:i[0]*j*(h?-1:1)+R,y:i[1]*M*(f?-1:1)+D}}(v,a.controlDirection,l,a.boundaries,a.keepAspectRatio,_,m,x),P=N!==k,I=j!==S,z=M!==c&&P,A=O!==h&&I;if(!z&&!A&&!P&&!I)return;if((z||A||1===_[0]||1===_[1])&&(C.x=z?M:y.x,C.y=A?O:y.y,y.x=C.x,y.y=C.y,w.length>0)){let e=M-c,t=O-h;for(let n of w)n.position={x:n.position.x-e+_[0]*(N-k),y:n.position.y-t+_[1]*(j-S)},d.push(n)}if((P||I)&&(C.width=P&&(!a.resizeDirection||"horizontal"===a.resizeDirection)?N:y.width,C.height=I&&(!a.resizeDirection||"vertical"===a.resizeDirection)?j:y.height,y.width=C.width,y.height=C.height),p&&g.expandParent){let e=_[0]*(C.width??0);C.x&&C.x<e&&(y.x=e,v.x=v.x-(C.x-e));let t=_[1]*(C.height??0);C.y&&C.y<t&&(y.y=t,v.y=v.y-(C.y-t))}let L=function({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:i}){let a=e-t,s=n-o,l=[a>0?1:a<0?-1:0,s>0?1:s<0?-1:0];return a&&r&&(l[0]=-1*l[0]),s&&i&&(l[1]=-1*l[1]),l}({width:y.width,prevWidth:k,height:y.height,prevHeight:S,affectsX:a.controlDirection.affectsX,affectsY:a.controlDirection.affectsY}),R={...y,direction:L};!1!==f?.(e,R)&&(E=!0,u?.(e,R),o(C,d))}).on("end",e=>{E&&(h?.(e,{...y}),r?.({...y}),E=!1)});i.call(k)},destroy:function(){i.on(".drag",null)}}}({domNode:N.current,nodeId:C,getStoreItems:()=>{let{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,domNode:i}=_.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r,paneDomNode:i}},onChange:(e,t)=>{let{triggerNodeChanges:n,nodeLookup:o,parentLookup:r,nodeOrigin:i}=_.getState(),a=[],s={x:e.x,y:e.y},l=o.get(C);if(l&&l.expandParent&&l.parentId){let t=l.origin??i,n=e.width??l.measured.width??0,d=e.height??l.measured.height??0,c=e0([{id:l.id,parentId:l.parentId,rect:{width:n,height:d,...eE({x:e.x??l.position.x,y:e.y??l.position.y},{width:n,height:d},l.parentId,o,t)}}],o,r,i);a.push(...c),s.x=e.x?Math.max(t[0]*n,e.x):void 0,s.y=e.y?Math.max(t[1]*d,e.y):void 0}if(void 0!==s.x&&void 0!==s.y){let e={id:C,type:"position",position:{...s}};a.push(e)}if(void 0!==e.width&&void 0!==e.height){let t={id:C,type:"dimensions",resizing:!0,setAttributes:!h||("horizontal"===h?"width":"height"),dimensions:{width:e.width,height:e.height}};a.push(t)}for(let e of t){let t={...e,type:"position"};a.push(t)}n(a)},onEnd:({width:e,height:t})=>{_.getState().triggerNodeChanges([{id:C,type:"dimensions",resizing:!1,dimensions:{width:e,height:t}}])}})),O.current.update({controlPosition:P,boundaries:{minWidth:s,minHeight:l,maxWidth:d,maxHeight:c},keepAspectRatio:u,resizeDirection:h,onResizeStart:m,onResize:v,onResizeEnd:w,shouldResize:g}),()=>{O.current?.destroy()}},[P,s,l,d,c,u,m,v,w,g]);let z=P.split("-");return(0,x.jsx)("div",{className:b(["react-flow__resize-control","nodrag",...z,n,o]),ref:N,style:{...r,scale:M,...a&&{[j?"backgroundColor":"borderColor"]:a}},children:i})});var oY=e.i(419412);let oU=(0,oY.default)("zoom-in",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),oG=(0,oY.default)("zoom-out",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),oq=(0,oY.default)("maximize-2",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]);var oQ=e.i(945074),oJ=e.i(947308),o0=e.i(794683);let o1=(0,oY.default)("circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);var o2=e.i(571441),o5=e.i(221606),o3=e.i(353155),o4=e.i(613349),o6=e.i(355578),o7=e.i(500324),o8=e.i(996718),o9=e.i(252304),re=e.i(186339),rt=e.i(329686),rn=e.i(224950),ro=e.i(844010);e.i(400175);var rr=e.i(819748),ri=e.i(126366),ra=e.i(222862),rs=e.i(516266),rl=e.i(636557),rd=e.i(205189);let rc="!opacity-0 !size-3 !bg-muted-foreground/40 !rounded-full group-hover:!opacity-100 hover:!bg-primary hover:!scale-125 !transition-all !border-none",ru=(0,y.memo)(function({data:e,selected:t,dragging:n}){let{agent:o,runtimes:r,activeTaskCount:i,index:a}=e,s=r.find(e=>e.id===o.runtime_id),l=s?.status==="online",[d,c]=(0,y.useState)(!1);return(0,x.jsxs)("div",{"data-agent-node-id":o.id,"data-agent-working":i>0?"true":"false",onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),className:(0,o4.cn)("bg-background rounded-xl ring-1 ring-foreground/8 shadow-sm transition-[box-shadow,ring-color,opacity,transform] duration-200 py-3 px-3.5 group",t&&"ring-2 ring-primary/30 shadow-md",!t&&"hover:ring-foreground/15 hover:shadow-md",n&&"shadow-lg scale-[1.02] cursor-grabbing"),style:{animationDelay:`${60*a}ms`},children:[(0,x.jsx)(nk,{type:"source",id:"right",position:g.Right,className:rc}),(0,x.jsx)(nk,{type:"source",id:"left",position:g.Left,className:rc}),(0,x.jsx)(nk,{type:"source",id:"top",position:g.Top,className:rc}),(0,x.jsx)(nk,{type:"source",id:"bottom",position:g.Bottom,className:rc}),(0,x.jsx)(nk,{type:"target",id:"target-right",position:g.Right,className:rc}),(0,x.jsx)(nk,{type:"target",id:"target-left",position:g.Left,className:rc}),(0,x.jsx)(nk,{type:"target",id:"target-top",position:g.Top,className:rc}),(0,x.jsx)(nk,{type:"target",id:"target-bottom",position:g.Bottom,className:rc}),(0,x.jsx)(ro.AgentPreviewCard,{agent:o,isOnline:l,activeTaskCount:i,variant:"compact",isHovered:d})]})}),rh=(0,y.memo)(function({id:e,sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:i,targetPosition:a,selected:s,data:l}){let{instruction:d,onEdgeClick:c}=l??{},[u,h]=(0,y.useState)(!1),[f,g,p]=eH({sourceX:t,sourceY:n,targetX:o,targetY:r,sourcePosition:i,targetPosition:a,borderRadius:16}),m=(0,y.useCallback)(t=>{t.stopPropagation(),c?.(e)},[c,e]);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("path",{d:f,fill:"none",stroke:s?"var(--color-primary)":u?"var(--color-muted-foreground)":"var(--color-border)",strokeWidth:s||u?2:1.5,style:{transition:"stroke 150ms, stroke-width 150ms"},onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1)}),(0,x.jsx)(oS,{children:(0,x.jsx)("button",{type:"button",style:{position:"absolute",transform:`translate(-50%, -50%) translate(${g}px,${p}px)`,pointerEvents:"auto"},className:`text-[11px] leading-tight bg-background/90 px-2 py-0.5 rounded-md truncate cursor-pointer transition-colors italic ${u?"text-muted-foreground":"text-muted-foreground/40"}`,onClick:m,onMouseEnter:()=>h(!0),onMouseLeave:()=>h(!1),children:d&&""!==d&&"<p></p>"!==d?"edit":"define"})})]})});var rf=e.i(332680),rg=e.i(740513),rp=e.i(813141),rm=e.i(393153);function rx({open:e,onOpenChange:t,link:n,agents:o,onSave:r,onDelete:i}){let[a,s]=(0,y.useState)(""),[l,d]=(0,y.useState)(!1),c=(0,y.useRef)(a);(0,y.useEffect)(()=>{c.current=a},[a]);let u=(0,y.useRef)(""),h=(0,y.useRef)(null),f=(0,y.useRef)(n);(0,y.useEffect)(()=>{f.current=n},[n]);let g=o.find(e=>e.id===n?.source_agent_id),p=o.find(e=>e.id===n?.target_agent_id);(0,y.useEffect)(()=>{n&&(s(n.instruction),u.current=n.instruction)},[n]);let m=(0,y.useCallback)(()=>{let e=c.current,t=f.current;t&&e!==u.current&&(u.current=e,r(t.id,e))},[r]),v=(0,y.useCallback)(()=>{h.current&&clearTimeout(h.current),h.current=setTimeout(m,500)},[m]),b=(0,y.useCallback)(e=>{s(e),v()},[v]);(0,y.useEffect)(()=>()=>{h.current&&clearTimeout(h.current),m()},[m]);let w=(0,y.useCallback)(e=>{e||(h.current&&clearTimeout(h.current),m()),t(e)},[t,m]),E=(0,y.useCallback)(()=>{h.current&&clearTimeout(h.current),n&&i(n.id),d(!1)},[n,i]),k=e=>{if(!e)return null;let t=(0,ri.parseAvatarUrl)(e.avatar_url);return t?(0,x.jsx)(ri.AvatarRenderer,{config:t,size:32,className:"shrink-0 rounded-xl"}):(0,x.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:e.name.charAt(0).toUpperCase()})};return(0,x.jsxs)(rf.Sheet,{open:e,onOpenChange:w,children:[(0,x.jsxs)(rf.SheetContent,{side:"right",showCloseButton:!1,className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border data-[side=right]:sm:max-w-md",children:[(0,x.jsxs)(rf.SheetTitle,{className:"sr-only",children:["Edit relationship between ",g?.name," and ",p?.name]}),(0,x.jsxs)(rf.SheetHeader,{className:"border-b px-5 py-4",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between",children:[(0,x.jsx)("div",{className:"flex items-center gap-2",children:(0,x.jsxs)("div",{className:"flex items-center",children:[k(g),(0,x.jsx)("div",{className:"-ml-2 ring-2 ring-background rounded-xl",children:k(p)})]})}),(0,x.jsxs)(rt.Tooltip,{children:[(0,x.jsx)(rt.TooltipTrigger,{render:(0,x.jsx)(re.Button,{variant:"ghost",size:"icon-sm",className:"text-destructive hover:text-destructive hover:bg-destructive/10",onClick:()=>d(!0)}),children:(0,x.jsx)(rp.Trash2,{className:"size-4"})}),(0,x.jsx)(rt.TooltipContent,{children:"Remove connection"})]})]}),(0,x.jsxs)("p",{className:"text-sm font-medium",children:[g?.name??"Agent"," and ",p?.name??"Agent"]}),(0,x.jsx)("p",{className:"text-xs font-medium text-muted-foreground tracking-wide mb-2",children:"use @ to mention agent"})]}),(0,x.jsx)("div",{className:"flex-1 overflow-y-auto thin-scrollbar px-5 py-4",children:(0,x.jsx)(rg.MarkdownEditor,{variant:"seamless",contentType:"markdown",placeholder:"Describe how these agents should collaborate. This instruction is shared with both agents when they receive tasks.",value:a,onChange:b,minHeight:"12rem",agents:o})})]}),(0,x.jsx)(rm.ConfirmDialog,{open:l,onOpenChange:d,title:"Remove connection",description:`This will remove the connection between "${g?.name??"Agent"}" and "${p?.name??"Agent"}".`,onConfirm:E})]})}var ry=e.i(48663),rv=e.i(692670),rb=e.i(450463);function rw({name:e,avatarUrl:t,size:n=20}){let o=(0,ri.parseAvatarUrl)(t);return o?(0,x.jsx)(ri.AvatarRenderer,{config:o,size:n,className:"rounded-full shrink-0"}):(0,x.jsx)("span",{className:"flex items-center justify-center rounded-full bg-secondary text-[7px] font-medium shrink-0",style:{width:n,height:n},children:(e??"?").charAt(0).toUpperCase()})}function rE({task:e,slug:t,onOpenChat:n}){let o="running"===e.status,r=`/w/${t}/agents/${e.agent_id}?task=${e.id}&conv=${e.conversation_id}`,i=(0,y.useCallback)(t=>{t.metaKey||t.ctrlKey||t.shiftKey||0!==t.button||(t.preventDefault(),n(e.agent_id,{conversationId:e.conversation_id,taskId:e.id}))},[e.agent_id,e.conversation_id,e.id,n]);return(0,x.jsxs)("a",{href:r,onClick:i,className:"flex items-center gap-2.5 px-3 py-2 hover:bg-accent/50 transition-colors cursor-pointer rounded-md",children:[(0,x.jsxs)("div",{className:"relative shrink-0",children:[(0,x.jsx)(rw,{name:e.agent?.name,avatarUrl:e.agent?.avatarUrl,size:24}),(0,x.jsx)("span",{className:`absolute -bottom-0.5 -right-0.5 size-2 rounded-full ring-2 ring-background ${o?"bg-primary animate-pulse":"bg-muted-foreground/40"}`})]}),(0,x.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,x.jsxs)("div",{className:"flex items-center gap-1.5 leading-tight",children:[(0,x.jsx)("span",{className:"text-sm font-medium truncate",children:e.agent?.name??"Unknown"}),(0,x.jsxs)("span",{className:"text-xs text-muted-foreground shrink-0",children:["#",e.channel]})]}),(0,x.jsx)("p",{className:"text-xs text-muted-foreground truncate leading-tight",children:e.prompt})]}),(0,x.jsx)("span",{className:"text-xs text-muted-foreground whitespace-nowrap shrink-0",children:(0,rb.relativeTime)(e.created_at)})]})}function rk(){let{activeTaskDetails:e}=(0,o6.useAgentContext)(),{slug:t}=(0,o7.useWorkspace)(),n=(0,o8.useIsMobile)(),{openAgentChat:o}=(0,o9.useAgentChatSheet)(),[r,i]=(0,y.useState)(!1),a=(0,y.useRef)(new Set),s=e.length;return((0,y.useEffect)(()=>{if(0===s){a.current=new Set;return}let t=new Set(e.map(e=>e.id));e.some(e=>!a.current.has(e.id))&&!r&&i(!0),a.current=t},[e,s,r]),n||0===s)?null:r?(0,x.jsxs)("div",{role:"region","aria-label":"Active tasks",className:"w-80 rounded-lg ring-1 ring-foreground/8 shadow-sm bg-background/90 backdrop-blur-sm animate-[fade-up_300ms_ease-out_both]",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-border/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium","aria-live":"polite",children:[(0,x.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),(0,x.jsxs)("span",{children:[s," task",1!==s?"s":""," active"]})]}),(0,x.jsx)("button",{type:"button","aria-label":"Collapse tasks panel",className:"size-6 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>i(!1),children:(0,x.jsx)(rv.X,{className:"size-3.5"})})]}),(0,x.jsxs)("div",{className:"max-h-75 overflow-y-auto thin-scrollbar py-1",children:[e.slice(0,8).map(e=>(0,x.jsx)(rE,{task:e,slug:t,onOpenChat:o},e.id)),s>8&&(0,x.jsxs)(ry.default,{href:`/w/${t}/traces?status=active`,className:"block text-xs text-muted-foreground hover:text-foreground text-center py-1.5 transition-colors",children:["View all ",s," tasks"]})]})]}):(0,x.jsxs)("button",{type:"button",onClick:()=>i(!0),className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-background/90 backdrop-blur-sm ring-1 ring-foreground/8 shadow-sm text-xs font-medium text-muted-foreground hover:text-foreground transition-colors animate-[fade-up_300ms_ease-out_both]",children:[(0,x.jsx)("span",{className:"size-1.5 rounded-full bg-primary animate-pulse"}),s," active"]})}var rS=e.i(41793);function rC({name:e,avatarUrl:t,size:n=20}){let o=(0,ri.parseAvatarUrl)(t);return o?(0,x.jsx)(ri.AvatarRenderer,{config:o,size:n,className:"rounded-full shrink-0"}):(0,x.jsx)("span",{className:"flex items-center justify-center rounded-full bg-secondary text-[7px] font-medium shrink-0",style:{width:n,height:n},children:(e??"?").charAt(0).toUpperCase()})}function r_(){let{agents:e}=(0,o6.useAgentContext)(),{slug:t,workspaceId:n}=(0,o7.useWorkspace)(),o=(0,o8.useIsMobile)(),[r,i]=(0,y.useState)([]),[a,s]=(0,y.useState)(!1),l=new Map(e.map(e=>[e.id,e])),d=(0,y.useCallback)(async()=>{if(!n)return;let e=new Date,t=new Date(e);t.setHours(23,59,59,999);try{let o=(await (0,ra.listCalendarEvents)(n,{from:e.toISOString(),to:t.toISOString()})).filter(t=>new Date(t.occurrence_at)>=e);i(o)}catch{}},[n]);(0,y.useEffect)(()=>{d();let e=setInterval(d,6e4);return()=>clearInterval(e)},[d]);let c=r.reduce((e,t)=>e+(t.collapsed_count??1),0);if(o||0===c)return null;let u=[],h=new Map;for(let e of r)h.set(e.agent_id,(h.get(e.agent_id)??0)+(e.collapsed_count??1));for(let[e,t]of h){let n=l.get(e);u.push({agentId:e,agentName:n?.name??"Unknown",avatarUrl:n?.avatar_url??null,count:t})}return(u.sort((e,t)=>t.count-e.count),a)?(0,x.jsxs)("div",{role:"region","aria-label":"Upcoming events",className:"w-72 rounded-lg ring-1 ring-foreground/8 shadow-sm bg-background/90 backdrop-blur-sm animate-[fade-up_300ms_ease-out_both]",children:[(0,x.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b border-border/50",children:[(0,x.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[(0,x.jsx)(rS.CalendarDays,{className:"size-3.5 text-muted-foreground"}),(0,x.jsxs)("span",{children:[c," events today"]})]}),(0,x.jsx)("button",{type:"button","aria-label":"Collapse events panel",className:"size-6 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>s(!1),children:(0,x.jsx)(rv.X,{className:"size-3.5"})})]}),(0,x.jsx)("div",{className:"max-h-52 overflow-y-auto thin-scrollbar py-1",children:u.map(e=>(0,x.jsxs)(ry.default,{href:`/w/${t}/calendar`,className:"flex items-center gap-2.5 px-3 py-2 hover:bg-accent/50 transition-colors cursor-pointer rounded-md",children:[(0,x.jsx)(rC,{name:e.agentName,avatarUrl:e.avatarUrl,size:22}),(0,x.jsx)("span",{className:"flex-1 text-sm truncate",children:e.agentName}),(0,x.jsxs)("span",{className:"text-xs text-muted-foreground shrink-0",children:[e.count," event",1!==e.count?"s":""]})]},e.agentId))})]}):(0,x.jsxs)("button",{type:"button",onClick:()=>s(!0),className:"flex items-center gap-1.5 px-2.5 py-1 rounded-full bg-background/90 backdrop-blur-sm ring-1 ring-foreground/8 shadow-sm text-xs font-medium text-muted-foreground hover:text-foreground transition-colors animate-[fade-up_300ms_ease-out_both]",children:[(0,x.jsx)(rS.CalendarDays,{className:"size-3"}),c," upcoming"]})}var rN=Object.defineProperty,rj={},rM={Graph:()=>rz,alg:()=>rV,json:()=>rT,version:()=>r$};for(var rO in rM)rN(rj,rO,{get:rM[rO],enumerable:!0});var rP=Object.defineProperty,rI=(e,t)=>{for(var n in t)rP(e,n,{get:t[n],enumerable:!0})},rz=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected=!("directed"in e)||e.directed,this._isMultigraph="multigraph"in e&&e.multigraph,this._isCompound="compound"in e&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return"function"!=typeof e?this._defaultNodeLabelFn=()=>e:this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>0===Object.keys(this._in[e]).length)}sinks(){return this.nodes().filter(e=>0===Object.keys(this._out[e]).length)}setNodes(e,t){return e.forEach(e=>{void 0!==t?this.setNode(e,t):this.setNode(e)}),this}setNode(e,t){return e in this._nodes?arguments.length>1&&(this._nodes[e]=t):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount),this}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=e=>this.removeEdge(this._edgeObjs[e]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(e=>{this.setParent(e)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw Error("Cannot set parent in a non-compound graph");if(void 0===t)t="\0";else{t+="";for(let n=t;void 0!==n;n=this.parent(n))if(n===e)throw Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if("\0"!==t)return t}}children(e="\0"){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if("\0"===e)return this.nodes();this.hasNode(e)}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t);for(let t of this.successors(e))n.add(t);return Array.from(n.values())}}isLeaf(e){return 0===(this.isDirected()?this.successors(e):this.neighbors(e)).length}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([n,o])=>{e(n)&&t.setNode(n,o)}),Object.values(this._edgeObjs).forEach(e=>{t.hasNode(e.v)&&t.hasNode(e.w)&&t.setEdge(e,this.edge(e))});let n={},o=e=>{let r=this.parent(e);return!r||t.hasNode(r)?(n[e]=null!=r?r:void 0,null!=r?r:void 0):r in n?n[r]:o(r)};return this._isCompound&&t.nodes().forEach(e=>t.setParent(e,o(e))),t}setDefaultEdgeLabel(e){return"function"!=typeof e?this._defaultEdgeLabelFn=()=>e:this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((e,n)=>(void 0!==t?this.setEdge(e,n,t):this.setEdge(e,n),n)),this}setEdge(e,t,n,o){let r,i,a,s,l=!1;"object"==typeof e&&null!==e&&"v"in e?(r=e.v,i=e.w,a=e.name,2==arguments.length&&(s=t,l=!0)):(r=e,i=t,a=o,arguments.length>2&&(s=n,l=!0)),r=""+r,i=""+i,void 0!==a&&(a=""+a);let d=rR(this._isDirected,r,i,a);if(d in this._edgeLabels)return l&&(this._edgeLabels[d]=s),this;if(void 0!==a&&!this._isMultigraph)throw Error("Cannot set a named edge when isMultigraph = false");this.setNode(r),this.setNode(i),this._edgeLabels[d]=l?s:this._defaultEdgeLabelFn(r,i,a);let c=function(e,t,n,o){let r=""+t,i=""+n;if(!e&&r>i){let e=r;r=i,i=e}let a={v:r,w:i};return o&&(a.name=o),a}(this._isDirected,r,i,a);return r=c.v,i=c.w,Object.freeze(c),this._edgeObjs[d]=c,rA(this._preds[i],r),rA(this._sucs[r],i),this._in[i][d]=c,this._out[r][d]=c,this._edgeCount++,this}edge(e,t,n){let o=1==arguments.length?rD(this._isDirected,e):rR(this._isDirected,e,t,n);return this._edgeLabels[o]}edgeAsObj(e,t,n){let o=1==arguments.length?this.edge(e):this.edge(e,t,n);return"object"!=typeof o?{label:o}:o}hasEdge(e,t,n){return(1==arguments.length?rD(this._isDirected,e):rR(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let o=1==arguments.length?rD(this._isDirected,e):rR(this._isDirected,e,t,n),r=this._edgeObjs[o];if(r){let e=r.v,t=r.w;delete this._edgeLabels[o],delete this._edgeObjs[o],rL(this._preds[t],e),rL(this._sucs[e],t),delete this._in[t][o],delete this._out[e][o],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let o=Object.values(e);return n?o.filter(e=>e.v===t&&e.w===n||e.v===n&&e.w===t):o}};function rA(e,t){e[t]?e[t]++:e[t]=1}function rL(e,t){void 0===e[t]||--e[t]||delete e[t]}function rR(e,t,n,o){let r=""+t,i=""+n;if(!e&&r>i){let e=r;r=i,i=e}return r+"\x01"+i+"\x01"+(void 0===o?"\0":o)}function rD(e,t){return rR(e,t.v,t.w,t.name)}var r$="4.0.1",rT={};function rB(e){var t,n;let o={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:(t=e).nodes().map(e=>{let n=t.node(e),o=t.parent(e),r={v:e};return void 0!==n&&(r.value=n),void 0!==o&&(r.parent=o),r}),edges:(n=e).edges().map(e=>{let t=n.edge(e),o={v:e.v,w:e.w};return void 0!==e.name&&(o.name=e.name),void 0!==t&&(o.value=t),o})},r=e.graph();return void 0!==r&&(o.value=structuredClone(r)),o}function rH(e){let t=new rz(e.options);return void 0!==e.value&&t.setGraph(e.value),e.nodes.forEach(e=>{t.setNode(e.v,e.value),e.parent&&t.setParent(e.v,e.parent)}),e.edges.forEach(e=>{t.setEdge({v:e.v,w:e.w,name:e.name},e.value)}),t}rI(rT,{read:()=>rH,write:()=>rB});var rV={};rI(rV,{CycleException:()=>r0,bellmanFord:()=>rZ,components:()=>rX,dijkstra:()=>rY,dijkstraAll:()=>rU,findCycles:()=>rq,floydWarshall:()=>rJ,isAcyclic:()=>r2,postorder:()=>r3,preorder:()=>r4,prim:()=>r6,shortestPaths:()=>r7,tarjan:()=>rG,topsort:()=>r1});var rF=()=>1;function rZ(e,t,n,o){return function(e,t,n,o){let r={},i,a=0,s=e.nodes(),l=function(e){let t=n(e);r[e.v].distance+t<r[e.w].distance&&(r[e.w]={distance:r[e.v].distance+t,predecessor:e.v},i=!0)},d=function(){s.forEach(function(e){o(e).forEach(function(t){let n=t.v===e?t.v:t.w,o=n===t.v?t.w:t.v;l({v:n,w:o})})})};s.forEach(function(e){r[e]={distance:e===t?0:1/0,predecessor:""}});let c=s.length;for(let e=1;e<c&&(i=!1,a++,d(),i);e++);if(a===c-1&&(i=!1,d(),i))throw Error("The graph contains a negative weight cycle");return r}(e,String(t),n||rF,o||function(t){return e.outEdges(t)})}function rX(e){let t={},n=[],o;return e.nodes().forEach(function(r){o=[],function n(r){r in t||(t[r]=!0,o.push(r),e.successors(r).forEach(n),e.predecessors(r).forEach(n))}(r),o.length&&n.push(o)}),n}var rW=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(void 0!==t)return this._arr[t].priority}min(){if(0===this.size())throw Error("Queue underflow");return this._arr[0].key}add(e,t){let n=this._keyIndices,o=String(e);if(!(o in n)){let e=this._arr,r=e.length;return n[o]=r,e.push({key:o,priority:t}),this._decrease(r),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(void 0===n)throw Error(`Key not found: ${e}`);let o=this._arr[n].priority;if(t>o)throw Error(`New priority is greater than current priority. Key: ${e} Old: ${o} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,o=n+1,r=e;n<t.length&&(r=t[n].priority<t[r].priority?n:r,o<t.length&&(r=t[o].priority<t[r].priority?o:r),r!==e&&(this._swap(e,r),this._heapify(r)))}_decrease(e){let t=this._arr,n=t[e].priority,o;for(;0!==e&&!(t[o=e>>1].priority<n);)this._swap(e,o),e=o}_swap(e,t){let n=this._arr,o=this._keyIndices,r=n[e],i=n[t];n[e]=i,n[t]=r,o[i.key]=e,o[r.key]=t}},rK=()=>1;function rY(e,t,n,o){return function(e,t,n,o){let r={},i=new rW,a,s,l=function(e){let t=e.v!==a?e.v:e.w,o=r[t],l=n(e),d=s.distance+l;if(l<0)throw Error("dijkstra does not allow negative edge weights. Bad edge: "+e+" Weight: "+l);d<o.distance&&(o.distance=d,o.predecessor=a,i.decrease(t,d))};for(e.nodes().forEach(function(e){let n=e===t?0:1/0;r[e]={distance:n,predecessor:""},i.add(e,n)});i.size()>0&&(s=r[a=i.removeMin()]).distance!==1/0;)o(a).forEach(l);return r}(e,String(t),n||rK,o||function(t){return e.outEdges(t)})}function rU(e,t,n){return e.nodes().reduce(function(o,r){return o[r]=rY(e,r,t,n),o},{})}function rG(e){let t=0,n=[],o={},r=[];return e.nodes().forEach(function(i){i in o||function i(a){let s=o[a]={onStack:!0,lowlink:t,index:t++};if(n.push(a),e.successors(a).forEach(function(e){e in o?o[e].onStack&&(s.lowlink=Math.min(s.lowlink,o[e].index)):(i(e),s.lowlink=Math.min(s.lowlink,o[e].lowlink))}),s.lowlink===s.index){let e=[],t;do o[t=n.pop()].onStack=!1,e.push(t);while(a!==t)r.push(e)}}(i)}),r}function rq(e){return rG(e).filter(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])})}var rQ=()=>1;function rJ(e,t,n){var o,r,i;let a,s;return o=e,r=t||rQ,i=n||function(t){return e.outEdges(t)},a={},(s=o.nodes()).forEach(function(e){a[e]={},a[e][e]={distance:0,predecessor:""},s.forEach(function(t){e!==t&&(a[e][t]={distance:1/0,predecessor:""})}),i(e).forEach(function(t){let n=t.v===e?t.w:t.v,o=r(t);a[e][n]={distance:o,predecessor:e}})}),s.forEach(function(e){let t=a[e];s.forEach(function(n){let o=a[n];s.forEach(function(n){let r=o[e],i=t[n],a=o[n],s=r.distance+i.distance;s<a.distance&&(a.distance=s,a.predecessor=i.predecessor)})})}),a}var r0=class extends Error{constructor(...e){super(...e)}};function r1(e){let t={},n={},o=[];if(e.sinks().forEach(function r(i){if(i in n)throw new r0;i in t||(n[i]=!0,t[i]=!0,e.predecessors(i).forEach(r),delete n[i],o.push(i))}),Object.keys(t).length!==e.nodeCount())throw new r0;return o}function r2(e){try{r1(e)}catch(e){if(e instanceof r0)return!1;throw e}return!0}function r5(e,t,n){var o,r,i;let a,s;return o=t,r=function(e,t){return e.push(t),e},i=[],Array.isArray(o)||(o=[o]),a=t=>{var n;return null!=(n=e.isDirected()?e.successors(t):e.neighbors(t))?n:[]},s={},o.forEach(function(t){if(!e.hasNode(t))throw Error("Graph does not have node: "+t);i=function e(t,n,o,r,i,a,s){return n in r||(r[n]=!0,o||(s=a(s,n)),i(n).forEach(function(n){s=e(t,n,o,r,i,a,s)}),o&&(s=a(s,n))),s}(e,t,"post"===n,s,a,r,i)}),i}function r3(e,t){return r5(e,t,"post")}function r4(e,t){return r5(e,t,"pre")}function r6(e,t){let n=new rz,o={},r=new rW,i;function a(e){let n=e.v===i?e.w:e.v,a=r.priority(n);if(void 0!==a){let s=t(e);s<a&&(o[n]=i,r.decrease(n,s))}}if(0===e.nodeCount())return n;e.nodes().forEach(function(e){r.add(e,1/0),n.setNode(e)}),r.decrease(e.nodes()[0],0);let s=!1;for(;r.size()>0;){if((i=r.removeMin())in o)n.setEdge(i,o[i]);else{if(s)throw Error("Input graph is not connected: "+e);s=!0}e.nodeEdges(i).forEach(a)}return n}function r7(e,t,n,o){return function(e,t,n,o){if(void 0===n)return rY(e,t,n,o);let r=!1,i=e.nodes();for(let a=0;a<i.length;a++){let s=o(i[a]);for(let e=0;e<s.length;e++){let t=s[e],o=t.v===i[a]?t.v:t.w,l=o===t.v?t.w:t.v;0>n({v:o,w:l})&&(r=!0)}if(r)return rZ(e,t,n,o)}return rY(e,t,n,o)}(e,t,n,null!=o?o:t=>{let n=e.outEdges(t);return null!=n?n:[]})}function r8(e,t,n,o){let r=o;for(;e.hasNode(r);)r=o+""+ ++il;return n.dummy=t,e.setNode(r,n),r}function r9(e){let t=new rz({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function ie(e,t){let n,o,r=e.x,i=e.y,a=t.x-r,s=t.y-i,l=e.width/2,d=e.height/2;if(!a&&!s)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(s)*l>Math.abs(a)*d?(s<0&&(d=-d),n=d*a/s,o=d):(a<0&&(l=-l),n=l,o=l*s/a),{x:r+n,y:i+o}}function it(e){let t=id(ii(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let o=e.node(n),r=o.rank;void 0!==r&&(t[r]||(t[r]=[]),t[r][o.order]=n)}),t}function io(e,t,n,o){let r={width:0,height:0};return arguments.length>=4&&(r.rank=n,r.order=o),r8(e,"border",r,t)}function ir(e,t){return t.length>65535?e(...(function(e,t=65535){let n=[];for(let o=0;o<e.length;o+=t){let r=e.slice(o,o+t);n.push(r)}return n})(t).map(t=>e(...t))):e(...t)}function ii(e){return ir(Math.max,e.nodes().map(t=>{let n=e.node(t).rank;return void 0===n?5e-324:n}))}function ia(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function is(e,t){return t()}var il=0;function id(e,t,n=1){null==t&&(t=e,e=0);let o=e=>e<t;n<0&&(o=e=>t<e);let r=[];for(let t=e;o(t);t+=n)r.push(t);return r}function ic(e,t){let n={};for(let o of t)void 0!==e[o]&&(n[o]=e[o]);return n}function iu(e,t){let n;return n="string"==typeof t?e=>e[t]:t,Object.entries(e).reduce((e,[t,o])=>(e[t]=n(o,t),e),{})}var ih=class{constructor(){((e,t,n)=>{let o;return(o="symbol"!=typeof t?t+"":t)in e?rN(e,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[o]=n})(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return ig(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&ig(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,ip)),n=n._prev;return"["+e.join(", ")+"]"}};function ig(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function ip(e,t){if("_next"!==e&&"_prev"!==e)return t}var im=()=>1;function ix(e,t,n,o,r){let i=[],a=r?i:void 0;return(e.inEdges(o.v)||[]).forEach(o=>{let a=e.edge(o),s=e.node(o.v);r&&i.push({v:o.v,w:o.w}),s.out-=a,iy(t,n,s)}),(e.outEdges(o.v)||[]).forEach(o=>{let r=e.edge(o),i=o.w,a=e.node(i);a.in-=r,iy(t,n,a)}),e.removeNode(o.v),a}function iy(e,t,n){var o,r,i;n.out?n.in?null==(i=e[n.out-n.in+t])||i.enqueue(n):null==(r=e[e.length-1])||r.enqueue(n):null==(o=e[0])||o.enqueue(n)}function iv(e){let t={};e.sources().forEach(function n(o){let r=e.node(o);if(Object.hasOwn(t,o))return r.rank;t[o]=!0;let i=e.outEdges(o),a=ir(Math.min,i?i.map(t=>null==t?1/0:n(t.w)-e.edge(t).minlen):[]);return a===1/0&&(a=0),r.rank=a})}function ib(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var iw=function(e){var t,n,o,r;let i,a,s=new rz({directed:!1}),l=e.nodes();if(0===l.length)throw Error("Graph must have at least one node");let d=l[0],c=e.nodeCount();for(s.setNode(d,{});t=s,n=e,t.nodes().forEach(function e(o){let r=n.nodeEdges(o);r&&r.forEach(r=>{let i=r.v,a=o===i?r.w:i;t.hasNode(a)||ib(n,r)||(t.setNode(a,{}),t.setEdge(o,a,{}),e(a))})}),t.nodeCount()<c&&(o=s,i=(r=e).edges().reduce((e,t)=>{let n=1/0;return o.hasNode(t.v)!==o.hasNode(t.w)&&(n=ib(r,t)),n<e[0]?[n,t]:e},[1/0,null])[1]);)a=s.hasNode(i.v)?ib(e,i):-ib(e,i),function(e,t,n){e.nodes().forEach(e=>t.node(e).rank+=n)}(s,e,a);return s},{preorder:iE,postorder:ik}=rV;function iS(e){var t;let n,o,r;t=e,r=new rz().setGraph(t.graph()),t.nodes().forEach(e=>r.setNode(e,t.node(e))),t.edges().forEach(e=>{let n=r.edge(e.v,e.w)||{weight:0,minlen:1},o=t.edge(e);r.setEdge(e.v,e.w,{weight:n.weight+o.weight,minlen:Math.max(n.minlen,o.minlen)})}),iv(e=r);let i=iw(e);for(iN(i),iC(i,e);n=ij(i);)o=iM(i,e,n),iO(i,e,n,o)}function iC(e,t){let n=ik(e,e.nodes());(n=n.slice(0,n.length-1)).forEach(n=>{var o,r,i;let a;return o=e,r=t,i=n,a=o.node(i).parent,void(o.edge(i,a).cutvalue=i_(o,r,i))})}function i_(e,t,n){let o=e.node(n).parent,r=!0,i=t.edge(n,o),a=0;i||(r=!1,i=t.edge(o,n)),a=i.weight;let s=t.nodeEdges(n);return s&&s.forEach(i=>{let s=i.v===n,l=s?i.w:i.v;if(l!==o){var d,c,u;let o=s===r,h=t.edge(i).weight;if(a+=o?h:-h,d=e,c=n,u=l,d.hasEdge(c,u)){let t=e.edge(n,l).cutvalue;a+=o?-t:t}}}),a}function iN(e,t){arguments.length<2&&(t=e.nodes()[0]),function e(t,n,o,r,i){let a=o,s=t.node(r);n[r]=!0;let l=t.neighbors(r);return l&&l.forEach(i=>{Object.hasOwn(n,i)||(o=e(t,n,o,i,r))}),s.low=a,s.lim=o++,i?s.parent=i:delete s.parent,o}(e,{},1,t)}function ij(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function iM(e,t,n){let o=n.v,r=n.w;t.hasEdge(o,r)||(o=n.w,r=n.v);let i=e.node(o),a=e.node(r),s=i,l=!1;return i.lim>a.lim&&(s=a,l=!0),t.edges().filter(t=>l===iP(e,e.node(t.v),s)&&l!==iP(e,e.node(t.w),s)).reduce((e,n)=>ib(t,n)<ib(t,e)?n:e)}function iO(e,t,n,o){let r=n.v,i=n.w;e.removeEdge(r,i),e.setEdge(o.v,o.w,{}),iN(e),iC(e,t),function(e,t){let n=e.nodes().find(t=>!e.node(t).parent);if(!n)return;let o=iE(e,[n]);(o=o.slice(1)).forEach(n=>{let o=e.node(n).parent,r=t.edge(n,o),i=!1;r||(r=t.edge(o,n),i=!0),t.node(n).rank=t.node(o).rank+(i?r.minlen:-r.minlen)})}(e,t)}function iP(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}iS.initLowLimValues=iN,iS.initCutValues=iC,iS.calcCutValue=i_,iS.leaveEdge=ij,iS.enterEdge=iM,iS.exchangeEdges=iO;function iI(e,t,n,o,r,i){let a=r[t][i-1],s=r8(e,"border",{width:0,height:0,rank:i,borderType:t},n);r[t][i]=s,e.setParent(s,o),a&&e.setEdge(a,s,{weight:1})}function iz(e){e.nodes().forEach(t=>iA(e.node(t))),e.edges().forEach(t=>iA(e.edge(t)))}function iA(e){let t=e.width;e.width=e.height,e.height=t}function iL(e){e.y=-e.y}function iR(e){let t=e.x;e.x=e.y,e.y=t}function iD(e,t,n){let o;for(;t.length&&(o=t[t.length-1]).i<=n;)t.pop(),e.push(o.vs),n++;return n}function i$(e,t,n){let o=new Map,r=(e,t)=>{o.has(e)||o.set(e,[]),o.get(e).push(t)};for(let t of e.nodes()){let n=e.node(t);if("number"==typeof n.rank&&r(n.rank,t),"number"==typeof n.minRank&&"number"==typeof n.maxRank)for(let e=n.minRank;e<=n.maxRank;e++)e!==n.rank&&r(e,t)}return t.map(function(t){var r;let i,a;return r=o.get(t)||[],i=function(e){let t;for(;e.hasNode(t="_root"+ ++il););return t}(e),a=new rz({compound:!0}).setGraph({root:i}).setDefaultNodeLabel(t=>e.node(t)),r.forEach(o=>{let r=e.node(o),s=e.parent(o);if(r.rank===t||r.minRank<=t&&t<=r.maxRank){a.setNode(o),a.setParent(o,s||i);let l=e[n](o);l&&l.forEach(t=>{let n=t.v===o?t.w:t.v,r=a.edge(n,o),i=void 0!==r?r.weight:0;a.setEdge(n,o,{weight:e.edge(t).weight+i})}),Object.hasOwn(r,"minRank")&&a.setNode(o,{borderLeft:r.borderLeft[t],borderRight:r.borderRight[t]})}}),a})}function iT(e,t){Object.values(t).forEach(t=>t.forEach((t,n)=>e.node(t).order=n))}function iB(e,t,n){if(t>n){let e=t;t=n,n=e}let o=e[t];o||(e[t]=o={}),o[n]=!0}var iH=["nodesep","edgesep","ranksep","marginx","marginy"],iV={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},iF=["acyclicer","ranker","rankdir","align","rankalign"],iZ=["width","height","rank"],iX={width:0,height:0},iW=["minlen","weight","width","height","labeloffset"],iK={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},iY=["labelpos"];function iU(e,t){return iu(ic(e,t),Number)}function iG(e){let t={};return e&&Object.entries(e).forEach(([e,n])=>{"string"==typeof e&&(e=e.toLowerCase()),t[e]=n}),t}var iq=function(e,t={}){let n=t.debugTiming?ia:is;return n("layout",()=>{let o=n(" buildLayoutGraph",()=>{var t;let n,o;return t=e,n=new rz({multigraph:!0,compound:!0}),o=iG(t.graph()),n.setGraph(Object.assign({},iV,iU(o,iH),ic(o,iF))),t.nodes().forEach(e=>{let o=iU(iG(t.node(e)),iZ);Object.keys(iX).forEach(e=>{void 0===o[e]&&(o[e]=iX[e])}),n.setNode(e,o);let r=t.parent(e);void 0!==r&&n.setParent(e,r)}),t.edges().forEach(e=>{let o=iG(t.edge(e));n.setEdge(e,Object.assign({},iK,iU(o,iW),ic(o,iY)))}),n});return n(" runLayout",()=>{var e,r,i;return e=o,r=n,i=t,void(r(" makeSpaceForEdgeLabels",()=>{var t;let n;return n=(t=e).graph(),void(n.ranksep/=2,t.edges().forEach(e=>{let o=t.edge(e);o.minlen*=2,"c"!==o.labelpos.toLowerCase()&&("TB"===n.rankdir||"BT"===n.rankdir?o.width+=o.labeloffset:o.height+=o.labeloffset)}))}),r(" removeSelfEdges",()=>{var t;(t=e).edges().forEach(e=>{if(e.v===e.w){let n=t.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:e,label:t.edge(e)}),t.removeEdge(e)}})}),r(" acyclic",()=>{var t,n;let o,r,i;("greedy"===e.graph().acyclicer?function(e,t){var n,o;let r,i,a,s,l;if(1>=e.nodeCount())return[];let d=(n=e,o=t||im,r=new rz,i=0,a=0,n.nodes().forEach(e=>{r.setNode(e,{v:e,in:0,out:0})}),n.edges().forEach(e=>{let t=r.edge(e.v,e.w)||0,n=o(e);r.setEdge(e.v,e.w,t+n);let s=r.node(e.v),l=r.node(e.w);a=Math.max(a,s.out+=n),i=Math.max(i,l.in+=n)}),s=(function(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t})(a+i+3).map(()=>new ih),l=i+1,r.nodes().forEach(e=>{iy(s,l,r.node(e))}),{graph:r,buckets:s,zeroIdx:l});return(function(e,t,n){var o;let r=[],i=t[t.length-1],a=t[0],s;for(;e.nodeCount();){for(;s=a.dequeue();)ix(e,t,n,s);for(;s=i.dequeue();)ix(e,t,n,s);if(e.nodeCount()){for(let i=t.length-2;i>0;--i)if(s=null==(o=t[i])?void 0:o.dequeue()){r=r.concat(ix(e,t,n,s,!0)||[]);break}}}return r})(d.graph,d.buckets,d.zeroIdx).flatMap(t=>e.outEdges(t.v,t.w)||[])}(e,(t=e,e=>t.edge(e).weight)):(o=[],r={},i={},(n=e).nodes().forEach(function e(t){Object.hasOwn(i,t)||(i[t]=!0,r[t]=!0,n.outEdges(t).forEach(t=>{Object.hasOwn(r,t.w)?o.push(t):e(t.w)}),delete r[t])}),o)).forEach(t=>{let n=e.edge(t);e.removeEdge(t),n.forwardName=t.name,n.reversed=!0,e.setEdge(t.w,t.v,n,"rev"+ ++il)})}),r(" nestingGraph.run",()=>{var t,n;let o,r,i,a,s,l;return o=r8(e,"root",{},"_root"),a=2*(i=ir(Math.max,Object.values((l={},(t=e).children("\0").forEach(e=>(function e(n,o){let r=t.children(n);r&&r.length&&r.forEach(t=>e(t,o+1)),l[n]=o})(e,1)),r=l)))-1)+1,e.graph().nestingRoot=o,e.edges().forEach(t=>e.edge(t).minlen*=a),s=(n=e).edges().reduce((e,t)=>e+n.edge(t).weight,0)+1,void(e.children("\0").forEach(t=>(function e(t,n,o,r,i,a,s){var l;let d=t.children(s);if(!d.length){s!==n&&t.setEdge(n,s,{weight:0,minlen:o});return}let c=io(t,"_bt"),u=io(t,"_bb"),h=t.node(s);t.setParent(c,s),h.borderTop=c,t.setParent(u,s),h.borderBottom=u,d.forEach(l=>{var d;e(t,n,o,r,i,a,l);let h=t.node(l),f=h.borderTop?h.borderTop:l,g=h.borderBottom?h.borderBottom:l,p=h.borderTop?r:2*r,m=f!==g?1:i-(null!=(d=a[s])?d:0)+1;t.setEdge(c,f,{weight:p,minlen:m,nestingEdge:!0}),t.setEdge(g,u,{weight:p,minlen:m,nestingEdge:!0})}),t.parent(s)||t.setEdge(n,c,{weight:0,minlen:i+(null!=(l=a[s])?l:0)})})(e,o,a,s,i,r,t)),e.graph().nodeRankFactor=a)}),r(" rank",()=>(function(e){let t=e.graph().ranker;if("function"==typeof t)return t(e);switch(t){case"network-simplex":default:iS(e);break;case"tight-tree":var n;iv(n=e),iw(n);break;case"longest-path":iv(e);case"none":}})(r9(e))),r(" injectEdgeLabelProxies",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);if(n.width&&n.height){let n=t.node(e.v),o={rank:(t.node(e.w).rank-n.rank)/2+n.rank,e:e};r8(t,"edge-proxy",o,"_ep")}})}),r(" removeEmptyRanks",()=>{let t,n,o,r;return t=ir(Math.min,e.nodes().map(t=>e.node(t).rank).filter(e=>void 0!==e)),n=[],e.nodes().forEach(o=>{let r=e.node(o).rank-t;n[r]||(n[r]=[]),n[r].push(o)}),o=0,r=e.graph().nodeRankFactor,void Array.from(n).forEach((t,n)=>{void 0===t&&n%r!=0?--o:void 0!==t&&o&&t.forEach(t=>e.node(t).rank+=o)})}),r(" nestingGraph.cleanup",()=>{let t;return t=e.graph(),void(e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)}))}),r(" normalizeRanks",()=>{let t;return t=ir(Math.min,e.nodes().map(t=>{let n=e.node(t).rank;return void 0===n?Number.MAX_VALUE:n})),void e.nodes().forEach(n=>{let o=e.node(n);Object.hasOwn(o,"rank")&&(o.rank-=t)})}),r(" assignRankMinMax",()=>{var t;let n;return n=0,void((t=e).nodes().forEach(e=>{let o=t.node(e);o.borderTop&&(o.minRank=t.node(o.borderTop).rank,o.maxRank=t.node(o.borderBottom).rank,n=Math.max(n,o.maxRank))}),t.graph().maxRank=n)}),r(" removeEdgeLabelProxies",()=>{var t;(t=e).nodes().forEach(e=>{let n=t.node(e);"edge-proxy"===n.dummy&&(t.edge(n.e).labelRank=n.rank,t.removeNode(e))})}),r(" normalize.run",()=>{e.graph().dummyChains=[],e.edges().forEach(t=>(function(e,t){let n,o,r,i=t.v,a=e.node(i).rank,s=t.w,l=e.node(s).rank,d=t.name,c=e.edge(t),u=c.labelRank;if(l!==a+1){for(e.removeEdge(t),r=0,++a;a<l;++r,++a)c.points=[],n=r8(e,"edge",o={width:0,height:0,edgeLabel:c,edgeObj:t,rank:a},"_d"),a===u&&(o.width=c.width,o.height=c.height,o.dummy="edge-label",o.labelpos=c.labelpos),e.setEdge(i,n,{weight:c.weight},d),0===r&&e.graph().dummyChains.push(n),i=n;e.setEdge(i,s,{weight:c.weight},d)}})(e,t))}),r(" parentDummyChains",()=>{var t,n;let o,r,i;return i=(o={},r=0,(n=t=e).children("\0").forEach(function e(t){let i=r;n.children(t).forEach(e),o[t]={low:i,lim:r++}}),o),void t.graph().dummyChains.forEach(e=>{let n=t.node(e),o=n.edgeObj,r=function(e,t,n,o){let r=[],i=[],a=Math.min(t[n].low,t[o].low),s=Math.max(t[n].lim,t[o].lim),l;l=n;do r.push(l=e.parent(l));while(l&&(t[l].low>a||s>t[l].lim))let d=l,c=o;for(;(c=e.parent(c))!==d;)i.push(c);return{path:r.concat(i.reverse()),lca:d}}(t,i,o.v,o.w),a=r.path,s=r.lca,l=0,d=a[0],c=!0;for(;e!==o.w;){if(n=t.node(e),c){for(;(d=a[l])!==s&&t.node(d).maxRank<n.rank;)l++;d===s&&(c=!1)}if(!c){for(;l<a.length-1&&t.node(a[l+1]).minRank<=n.rank;)l++;d=a[l]}void 0!==d&&t.setParent(e,d),e=t.successors(e)[0]}})}),r(" addBorderSegments",()=>{var t;(t=e).children("\0").forEach(function e(n){let o=t.children(n),r=t.node(n);if(o.length&&o.forEach(e),Object.hasOwn(r,"minRank")){r.borderLeft=[],r.borderRight=[];for(let e=r.minRank,o=r.maxRank+1;e<o;++e)iI(t,"borderLeft","_bl",n,r,e),iI(t,"borderRight","_br",n,r,e)}})}),r(" order",()=>(function e(t,n={}){let o,r,i;if("function"==typeof n.customOrder)return void n.customOrder(t,e);let a=ii(t),s=i$(t,id(1,a+1),"inEdges"),l=i$(t,id(a-1,-1,-1),"outEdges"),d=(o={},i=id(ir(Math.max,(r=t.nodes().filter(e=>!t.children(e).length)).map(e=>t.node(e).rank))+1).map(()=>[]),r.sort((e,n)=>t.node(e).rank-t.node(n).rank).forEach(function e(n){if(o[n])return;o[n]=!0,i[t.node(n).rank].push(n);let r=t.successors(n);r&&r.forEach(e)}),i);if(iT(t,d),n.disableOptimalOrderHeuristic)return;let c=1/0,u,h=n.constraints||[];for(let e=0,n=0;n<4;++e,++n){(function(e,t,n){let o=new rz;e.forEach(function(e){var r;let i,a;n.forEach(e=>o.setEdge(e.left,e.right));let s=e.graph().root,l=function e(t,n,o,r){var i;let a,s,l,d,c,u,h,f,g,p,m=t.children(n),x=t.node(n),y=x?x.borderLeft:void 0,v=x?x.borderRight:void 0,b={};y&&(m=m.filter(e=>e!==y&&e!==v));let w=function(e,t=[]){return t.map(t=>{let n=e.inEdges(t);if(!n||!n.length)return{v:t};{let o=n.reduce((t,n)=>{let o=e.edge(n),r=e.node(n.v);return{sum:t.sum+o.weight*r.order,weight:t.weight+o.weight}},{sum:0,weight:0});return{v:t,barycenter:o.sum/o.weight,weight:o.weight}}})}(t,m);w.forEach(n=>{if(t.children(n.v).length){var i,a;let s=e(t,n.v,o,r);b[n.v]=s,Object.hasOwn(s,"barycenter")&&(i=n,a=s,void 0!==i.barycenter?(i.barycenter=(i.barycenter*i.weight+a.barycenter*a.weight)/(i.weight+a.weight),i.weight+=a.weight):(i.barycenter=a.barycenter,i.weight=a.weight))}});let E=(a={},w.forEach((e,t)=>{let n={indegree:0,in:[],out:[],vs:[e.v],i:t};void 0!==e.barycenter&&(n.barycenter=e.barycenter,n.weight=e.weight),a[e.v]=n}),o.edges().forEach(e=>{let t=a[e.v],n=a[e.w];void 0!==t&&void 0!==n&&(n.indegree++,t.out.push(n))}),function(e){let t=[];for(;e.length;){let n=e.pop();t.push(n),n.in.reverse().forEach(function(e){return t=>{t.merged||(void 0===t.barycenter||void 0===e.barycenter||t.barycenter>=e.barycenter)&&function(e,t){let n=0,o=0;e.weight&&(n+=e.barycenter*e.weight,o+=e.weight),t.weight&&(n+=t.barycenter*t.weight,o+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/o,e.weight=o,e.i=Math.min(t.i,e.i),t.merged=!0}(e,t)}}(n)),n.out.forEach(function(t){return n=>{n.in.push(t),0==--n.indegree&&e.push(n)}}(n))}return t.filter(e=>!e.merged).map(e=>ic(e,["vs","i","barycenter","weight"]))}(Object.values(a).filter(e=>!e.indegree)));!function(e,t){e.forEach(e=>{e.vs=e.vs.flatMap(e=>t[e]?t[e].vs:e)})}(E,b);let k=(d=(i=e=>Object.hasOwn(e,"barycenter"),s={lhs:[],rhs:[]},E.forEach(e=>{i(e)?s.lhs.push(e):s.rhs.push(e)}),l=s).lhs,c=l.rhs.sort((e,t)=>t.i-e.i),u=[],h=0,f=0,g=0,d.sort(function(e){return(t,n)=>t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}(!!r)),g=iD(u,c,g),d.forEach(e=>{g+=e.vs.length,u.push(e.vs),h+=e.barycenter*e.weight,f+=e.weight,g=iD(u,c,g)}),p={vs:u.flat(1)},f&&(p.barycenter=h/f,p.weight=f),p);if(y&&v){k.vs=[y,k.vs,v].flat(1);let e=t.predecessors(y);if(e&&e.length){let n=t.node(e[0]),o=t.predecessors(v),r=t.node(o[0]);Object.hasOwn(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+n.order+r.order)/(k.weight+2),k.weight+=2}}return k}(e,s,o,t);l.vs.forEach((t,n)=>e.node(t).order=n),r=l.vs,i={},r.forEach(t=>{let n=e.parent(t),r,s;for(;n;){if((r=e.parent(n))?(s=i[r],i[r]=n):(s=a,a=n),s&&s!==n)return void o.setEdge(s,n);n=r}})})})(e%2?s:l,e%4>=2,h),d=it(t);let o=function(e,t){let n=0;for(let o=1;o<t.length;++o)n+=function(e,t,n){var o;let r=(o=n.map((e,t)=>t),n.reduce((e,t,n)=>(e[t]=o[n],e),{})),i=t.flatMap(t=>{let n=e.outEdges(t);return n?n.map(t=>({pos:r[t.w],weight:e.edge(t).weight})).sort((e,t)=>e.pos-t.pos):[]}),a=1;for(;a<n.length;)a<<=1;let s=2*a-1;a-=1;let l=Array(s).fill(0),d=0;return i.forEach(e=>{let t=e.pos+a;l[t]+=e.weight;let n=0;for(;t>0;)t%2&&(n+=l[t+1]),t=t-1>>1,l[t]+=e.weight;d+=e.weight*n}),d}(e,t[o-1],t[o]);return n}(t,d);o<c?(n=0,u=Object.assign({},d),c=o):o===c&&(u=structuredClone(d))}iT(t,u)})(e,i)),r(" insertSelfEdges",()=>{var t;it(t=e).forEach(e=>{let n=0;e.forEach((e,o)=>{let r=t.node(e);r.order=o+n,(r.selfEdges||[]).forEach(e=>{r8(t,"selfedge",{width:e.label.width,height:e.label.height,rank:r.rank,order:o+ ++n,e:e.e,label:e.label},"_se")}),delete r.selfEdges})})}),r(" adjustCoordinateSystem",()=>{var t;let n;("lr"===(n=null==(t=e.graph().rankdir)?void 0:t.toLowerCase())||"rl"===n)&&iz(e)}),r(" position",()=>{var t,n,o,r;let i,a,s,l,d,c,u,h,f,g,p,m,x,y,v;p=it(r=t=r9(t=e)),x=(m=r.graph()).ranksep,y=m.rankalign,v=0,p.forEach(e=>{let t=e.reduce((e,t)=>{var n;let o=null!=(n=r.node(t).height)?n:0;return e>o?e:o},0);e.forEach(e=>{let n=r.node(e);"top"===y?n.y=v+n.height/2:"bottom"===y?n.y=v+t-n.height/2:n.y=v+t/2}),v+=t+x}),Object.entries((a=it(n=t),s=Object.assign((i={},a.length&&a.reduce(function(e,t){let o=0,r=0,a=e.length,s=t[t.length-1];return t.forEach((e,l)=>{let d=function(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(t=>e.node(t).dummy)}}(n,e),c=d?n.node(d).order:a;(d||e===s)&&(t.slice(r,l+1).forEach(e=>{let t=n.predecessors(e);t&&t.forEach(t=>{let r=n.node(t),a=r.order;(a<o||c<a)&&!(r.dummy&&n.node(e).dummy)&&iB(i,t,e)})}),r=l+1,o=c)}),t}),i),function(e,t){let n={};function o(t,o,r,i,a){id(o,r).forEach(o=>{let r=t[o];if(void 0!==r&&e.node(r).dummy){let t=e.predecessors(r);t&&t.forEach(t=>{if(void 0===t)return;let o=e.node(t);o.dummy&&(o.order<i||o.order>a)&&iB(n,t,r)})}})}return t.length&&t.reduce(function(t,n){let r=-1,i=-1,a=0;return n.forEach((s,l)=>{if("border"===e.node(s).dummy){let t=e.predecessors(s);if(t&&t.length){let s=t[0];if(void 0===s)return;i=e.node(s).order,o(n,a,l,r,i),a=l,r=i}}o(n,a,n.length,i,t.length)}),n}),n}(n,a)),l={},["u","d"].forEach(e=>{d="u"===e?a:Object.values(a).reverse(),["l","r"].forEach(t=>{var o,r;let i,a,c;"r"===t&&(d=d.map(e=>Object.values(e).reverse()));let u=(o=d,r=t=>("u"===e?n.predecessors(t):n.successors(t))||[],i={},a={},c={},o.forEach(e=>{e.forEach((e,t)=>{i[e]=e,a[e]=e,c[e]=t})}),o.forEach(e=>{let t=-1;e.forEach(e=>{let n=r(e);if(n&&n.length){let o=n.sort((e,t)=>{let n=c[e],o=c[t];return(void 0!==n?n:0)-(void 0!==o?o:0)}),r=(o.length-1)/2;for(let n=Math.floor(r),l=Math.ceil(r);n<=l;++n){let r=o[n];if(void 0===r)continue;let l=c[r];if(void 0!==l&&a[e]===e&&t<l&&!function(e,t,n){if(t>n){let e=t;t=n,n=e}let o=e[t];return void 0!==o&&Object.hasOwn(o,n)}(s,e,r)){let n=i[r];void 0!==n&&(a[r]=e,a[e]=i[e]=n,t=l)}}}})}),{root:i,align:a}),h=function(e,t,n,o,r=!1){var i,a,s,l,d,c,u;let h,f,g,p={},m=(i=e,a=t,s=n,l=r,h=new rz,g=(d=(f=i.graph()).nodesep,c=f.edgesep,u=l,(e,t,n)=>{let o=e.node(t),r=e.node(n),i,a;if(i=0+o.width/2,Object.hasOwn(o,"labelpos"))switch(o.labelpos.toLowerCase()){case"l":a=-o.width/2;break;case"r":a=o.width/2}if(a&&(i+=u?a:-a),a=void 0,i+=(o.dummy?c:d)/2,i+=(r.dummy?c:d)/2,i+=r.width/2,Object.hasOwn(r,"labelpos"))switch(r.labelpos.toLowerCase()){case"l":a=r.width/2;break;case"r":a=-r.width/2}return a&&(i+=u?a:-a),i}),a.forEach(e=>{let t;e.forEach(e=>{let n=s[e];if(void 0!==n){if(h.setNode(n),void 0!==t){let o=s[t];if(void 0!==o){let r=h.edge(o,n);h.setEdge(o,n,Math.max(g(i,e,t),r||0))}}t=e}})}),h),x=r?"borderLeft":"borderRight";function y(e,t){let n=m.nodes().slice(),o={},r=n.pop();for(;r;){if(o[r])e(r);else for(let e of(o[r]=!0,n.push(r),t(r)))n.push(e);r=n.pop()}}return y(function(e){let t=m.inEdges(e);t?p[e]=t.reduce((e,t)=>{var n;let o=null!=(n=p[t.v])?n:0,r=m.edge(t);return Math.max(e,o+(void 0!==r?r:0))},0):p[e]=0},function(e){return m.predecessors(e)||[]}),y(function(t){let n=m.outEdges(t),o=1/0;n&&(o=n.reduce((e,t)=>{let n=p[t.w],o=m.edge(t);return Math.min(e,(void 0!==n?n:0)-(void 0!==o?o:0))},1/0));let r=e.node(t);o!==1/0&&r.borderType!==x&&(p[t]=Math.max(void 0!==p[t]?p[t]:0,o))},function(e){return m.successors(e)||[]}),Object.keys(o).forEach(e=>{var t;let o=n[e];void 0!==o&&(p[e]=null!=(t=p[o])?t:0)}),p}(n,d,u.root,u.align,"r"===t);"r"===t&&(h=iu(h,e=>-e)),l[e+t]=h})}),c=Object.values(l).reduce((e,t)=>{let o=-1/0,r=1/0;Object.entries(t).forEach(([e,t])=>{var i,a;let s=(i=n,a=e,i.node(a).width/2);o=Math.max(t+s,o),r=Math.min(t-s,r)});let i=o-r;return i<e[0]&&(e=[i,t]),e},[1/0,null])[1],h=ir(Math.min,u=Object.values(c)),f=ir(Math.max,u),["u","d"].forEach(e=>{["l","r"].forEach(t=>{let n=e+t,o=l[n];if(!o||o===c)return;let r=Object.values(o),i=h-ir(Math.min,r);"l"!==t&&(i=f-ir(Math.max,r)),i&&(l[n]=iu(o,e=>e+i))})}),o=n.graph().align,(g=l.ul)?iu(g,(e,t)=>{var n,r;if(o){let e=l[o.toLowerCase()];if(e&&void 0!==e[t])return e[t]}let i=Object.values(l).map(e=>{let n=e[t];return void 0!==n?n:0}).sort((e,t)=>e-t);return((null!=(n=i[1])?n:0)+(null!=(r=i[2])?r:0))/2}):{})).forEach(([e,n])=>t.node(e).x=n)}),r(" positionSelfEdges",()=>{var t;(t=e).nodes().forEach(e=>{let n=t.node(e);if("selfedge"===n.dummy){let o=t.node(n.e.v),r=o.x+o.width/2,i=o.y,a=n.x-r,s=o.height/2;t.setEdge(n.e,n.label),t.removeNode(e),n.label.points=[{x:r+2*a/3,y:i-s},{x:r+5*a/6,y:i-s},{x:r+a,y:i},{x:r+5*a/6,y:i+s},{x:r+2*a/3,y:i+s}],n.label.x=n.x,n.label.y=n.y}})}),r(" removeBorderNodes",()=>{var t;(t=e).nodes().forEach(e=>{if(t.children(e).length){let n=t.node(e),o=t.node(n.borderTop),r=t.node(n.borderBottom),i=t.node(n.borderLeft[n.borderLeft.length-1]),a=t.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(a.x-i.x),n.height=Math.abs(r.y-o.y),n.x=i.x+n.width/2,n.y=o.y+n.height/2}}),t.nodes().forEach(e=>{"border"===t.node(e).dummy&&t.removeNode(e)})}),r(" normalize.undo",()=>{e.graph().dummyChains.forEach(t=>{let n=e.node(t),o=n.edgeLabel,r;for(e.setEdge(n.edgeObj,o);n.dummy;)r=e.successors(t)[0],e.removeNode(t),o.points.push({x:n.x,y:n.y}),"edge-label"===n.dummy&&(o.x=n.x,o.y=n.y,o.width=n.width,o.height=n.height),t=r,n=e.node(t)})}),r(" fixupEdgeLabelCoords",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);if(Object.hasOwn(n,"x"))switch(("l"===n.labelpos||"r"===n.labelpos)&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset}})}),r(" undoCoordinateSystem",()=>{var t,n,o;let r;("bt"===(r=null==(t=e.graph().rankdir)?void 0:t.toLowerCase())||"rl"===r)&&((n=e).nodes().forEach(e=>iL(n.node(e))),n.edges().forEach(e=>{var t;let o=n.edge(e);null==(t=o.points)||t.forEach(iL),Object.hasOwn(o,"y")&&iL(o)})),("lr"===r||"rl"===r)&&((o=e).nodes().forEach(e=>iR(o.node(e))),o.edges().forEach(e=>{var t;let n=o.edge(e);null==(t=n.points)||t.forEach(iR),Object.hasOwn(n,"x")&&iR(n)}),iz(e))}),r(" translateGraph",()=>(function(e){let t=1/0,n=0,o=1/0,r=0,i=e.graph(),a=i.marginx||0,s=i.marginy||0;function l(e){let i=e.x,a=e.y,s=e.width,l=e.height;t=Math.min(t,i-s/2),n=Math.max(n,i+s/2),o=Math.min(o,a-l/2),r=Math.max(r,a+l/2)}e.nodes().forEach(t=>l(e.node(t))),e.edges().forEach(t=>{let n=e.edge(t);Object.hasOwn(n,"x")&&l(n)}),t-=a,o-=s,e.nodes().forEach(n=>{let r=e.node(n);r.x-=t,r.y-=o}),e.edges().forEach(n=>{let r=e.edge(n);r.points.forEach(e=>{e.x-=t,e.y-=o}),Object.hasOwn(r,"x")&&(r.x-=t),Object.hasOwn(r,"y")&&(r.y-=o)}),i.width=n-t+a,i.height=r-o+s})(e)),r(" assignNodeIntersects",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e),o=t.node(e.v),r=t.node(e.w),i,a;n.points?(i=n.points[0],a=n.points[n.points.length-1]):(n.points=[],i=r,a=o),n.points.unshift(ie(o,i)),n.points.push(ie(r,a))})}),r(" reversePoints",()=>{var t;(t=e).edges().forEach(e=>{let n=t.edge(e);n.reversed&&n.points.reverse()})}),r(" acyclic.undo",()=>{e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let o=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,o)}})}))}),n(" updateInputGraph",()=>{var t,n;return t=e,n=o,void(t.nodes().forEach(e=>{let o=t.node(e),r=n.node(e);o&&(o.x=r.x,o.y=r.y,o.order=r.order,o.rank=r.rank,n.children(e).length&&(o.width=r.width,o.height=r.height))}),t.edges().forEach(e=>{let o=t.edge(e),r=n.edge(e);o.points=r.points,Object.hasOwn(r,"x")&&(o.x=r.x,o.y=r.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height)}),o})};function iQ(e,t,n="tree"){if(0===e.length)return e;switch(n){case"star":return function(e,t){if(1===e.length)return[{...e[0],position:{x:-140,y:-50}}];let n={},o={},r={};for(let t of e)n[t.id]=0,o[t.id]=0,r[t.id]=new Set;for(let e of t)void 0!==n[e.source]&&void 0!==n[e.target]&&(n[e.source]++,n[e.target]++,o[e.source]++,r[e.source].add(e.target),r[e.target].add(e.source));let i=[...e].sort((e,t)=>{let r=(n[t.id]??0)-(n[e.id]??0);if(0!==r)return r;let i=(o[t.id]??0)-(o[e.id]??0);return 0!==i?i:e.id.localeCompare(t.id)})[0].id,a=r[i]??new Set,s=[],l=[];for(let t of e)t.id!==i&&(a.has(t.id)?s.push(t):l.push(t));let d={};d[i]={x:-140,y:-50};for(let e=0;e<s.length;e++){let t=2*Math.PI*e/s.length-Math.PI/2;d[s[e].id]={x:250*Math.cos(t)-140,y:250*Math.sin(t)-50}}for(let e=0;e<l.length;e++){let t=2*Math.PI*e/l.length-Math.PI/2;d[l[e].id]={x:450*Math.cos(t)-140,y:450*Math.sin(t)-50}}return e.map(e=>({...e,position:d[e.id]??{x:0,y:0}}))}(e,t);case"tree":return iJ(e,t,"TB");case"flow":return iJ(e,t,"LR")}}function iJ(e,t,n){let o=new rj.Graph;for(let t of(o.setDefaultEdgeLabel(()=>({})),o.setGraph({rankdir:n,nodesep:80,ranksep:180,marginx:40,marginy:40}),e))o.setNode(t.id,{width:280,height:100});for(let e of t)o.setEdge(e.source,e.target);return iq(o),e.map(e=>{let t=o.node(e.id);return{...e,position:{x:t.x-140,y:t.y-50}}})}let i0={agent:ru},i1={link:rh};function i2(e){return`alook-canvas-positions-${e}`}function i5(e){return`alook-canvas-layout-${e}`}function i3(e,t){let n={};for(let e of t)n[e.id]=e.position;try{localStorage.setItem(i2(e),JSON.stringify(n))}catch{}}function i4({onAgentClick:e}){let t=(0,v.useRouter)(),{agents:n,runtimes:o,loading:r,activeTaskCounts:i,agentLinks:a,pendingNewAgent:s,clearPendingNewAgent:l}=(0,o6.useAgentContext)(),{slug:d,workspaceId:c}=(0,o7.useWorkspace)(),{zoomIn:u,zoomOut:h,fitView:f}=ni(),g=(0,y.useRef)(null),[p,b]=(0,y.useState)([]),[w,E]=(0,y.useState)([]),[k,S]=(0,y.useState)([]),C=!r,[_,N]=(0,y.useState)(null),[j,M]=(0,y.useState)(!1),[O,P]=(0,y.useState)(!1),[I,z]=(0,y.useState)(()=>(function(e){try{let t=localStorage.getItem(i5(e));if("star"===t||"tree"===t||"flow"===t)return t}catch{}return"tree"})(c)),A=(0,y.useRef)(!1),L=(0,y.useRef)({});(0,y.useEffect)(()=>{r||S(a)},[a,r]),(0,y.useEffect)(()=>{if(!C)return;let e=new Map(p.map(e=>[e.id,e.position])),t=k.map(t=>{let n=L.current[t.id],o=n?.sourceHandle,r=n?.targetHandle;if(!o||!r){let n=e.get(t.source_agent_id),i=e.get(t.target_agent_id);if(n&&i){let e=i.x-n.x,t=i.y-n.y;Math.abs(e)>=Math.abs(t)?(o=e>=0?"right":"left",r=e>=0?"target-left":"target-right"):(o=t>=0?"bottom":"top",r=t>=0?"target-top":"target-bottom")}else o="right",r="target-left"}return{id:t.id,source:t.source_agent_id,target:t.target_agent_id,sourceHandle:o,targetHandle:r,type:"link",data:{instruction:t.instruction,onEdgeClick:e=>{let t=k.find(t=>t.id===e);t&&(N(t),M(!0))}},selected:_?.id===t.id&&j}});E(t),P(0===t.length)},[k,C,_,j,p]),(0,y.useEffect)(()=>{if(r||0===n.length)return;let e=function(e){try{let t=localStorage.getItem(i2(e));return t?JSON.parse(t):{}}catch{return{}}}(c),t=new Set(n.map(e=>e.id)),a={};for(let[n,o]of Object.entries(e))t.has(n)&&(a[n]=o);let u=n.map((e,t)=>({id:e.id,type:"agent",position:a[e.id]??{x:0,y:0},data:{agent:e,runtimes:o,activeTaskCount:i[e.id]??0,slug:d,index:t}})),h=Object.keys(a).length>0,g=n.filter(e=>!a[e.id]).map(e=>e.id);(h||C)&&(h&&g.length>0&&!C&&(u=u.filter(e=>a[e.id])),h?g.length>0&&C&&(i3(c,u=u.map(e=>{let t;if(a[e.id])return e;if(s&&e.id===s.agentId&&(t=s.parentAgentId),!t){let n=k.find(t=>t.source_agent_id===e.id&&a[t.target_agent_id]||t.target_agent_id===e.id&&a[t.source_agent_id]);n&&(t=n.source_agent_id===e.id?n.target_agent_id:n.source_agent_id)}let n=g.indexOf(e.id);if(t&&a[t]){let o,r=a[t];switch(I){case"tree":o={x:r.x+300*n,y:r.y+200};break;case"flow":o={x:r.x+350,y:r.y+150*n};break;default:o={x:r.x+300,y:r.y+100+150*n}}return{...e,position:o}}let o=Object.values(a),r=o.reduce((e,t)=>e+t.x,0)/o.length,i=o.reduce((e,t)=>e+t.y,0)/o.length;return{...e,position:{x:r+350+300*n,y:i}}})),setTimeout(()=>f({padding:.4,duration:400,includeHiddenNodes:!1}),50),s&&l()):C&&(u=iQ(u,k.map(e=>({id:e.id,source:e.source_agent_id,target:e.target_agent_id})),I),A.current||(A.current=!0,setTimeout(()=>f({padding:.4,duration:400}),50)),s&&l()),b(u))},[n,o,i,d,r,c,C,k,f,I,s,l]);let R=(0,y.useCallback)(e=>{b(t=>t2(e,t))},[]),D=(0,y.useCallback)(e=>{E(t=>t2(e,t))},[]),$=(0,y.useCallback)(()=>{b(e=>(i3(c,e),e))},[c]),T=(0,y.useCallback)(async e=>{if(e.source&&e.target)try{let t=await (0,ra.createAgentLink)({source_agent_id:e.source,target_agent_id:e.target},c);(0,rd.trackAgentLinkCreated)({source_agent:e.source,target_agent:e.target}),(e.sourceHandle||e.targetHandle)&&(L.current[t.id]={sourceHandle:e.sourceHandle??"right",targetHandle:e.targetHandle??"target-left"}),S(e=>[...e,t]),P(!1)}catch(e){e instanceof rl.ApiError?409===e.status?rs.toast.error("Link already exists"):400===e.status?rs.toast.error("Can't link an agent to itself"):rs.toast.error("Failed to create link"):rs.toast.error("Failed to create link")}},[c]),B=(0,y.useCallback)(async(e,t)=>{try{let n=await (0,ra.updateAgentLink)(e,{instruction:t},c);S(t=>t.map(t=>t.id===e?n:t))}catch{rs.toast.error("Failed to update link")}},[c]),H=(0,y.useCallback)(async e=>{try{await (0,ra.deleteAgentLink)(e,c),S(t=>t.filter(t=>t.id!==e)),M(!1)}catch{rs.toast.error("Failed to delete link")}},[c]),V=(0,y.useCallback)(e=>{(0,rd.trackCanvasLayoutChanged)({layout_type:e}),z(e);try{localStorage.setItem(i5(c),e)}catch{}try{localStorage.removeItem(i2(c))}catch{}let t=k.map(e=>({id:e.id,source:e.source_agent_id,target:e.target_agent_id}));b(n=>{let o=iQ(n,t,e).map(e=>({...e,style:{...e.style,transition:"transform 300ms ease-out"}}));return setTimeout(()=>{b(e=>{let t=e.map(e=>({...e,style:{...e.style,transition:void 0}}));return i3(c,t),t}),f({padding:.4,duration:400})},350),o})},[k,c,f]),F=(0,y.useCallback)((n,o)=>{let r=o.data;M(!1),e?e(r.agent):t.push(`/w/${d}/agents/${r.agent.id}`)},[t,d,e]),Z=(0,y.useMemo)(()=>({stroke:"var(--color-primary)",strokeWidth:1.5,strokeDasharray:"6 4",opacity:.5}),[]);return(0,x.jsxs)("div",{ref:g,className:"flex-1 relative",children:[(0,x.jsx)(oE,{nodes:p,edges:w,nodeTypes:i0,edgeTypes:i1,onNodesChange:R,onEdgesChange:D,onConnect:T,onNodeClick:F,onNodeDragStop:$,connectionLineStyle:Z,fitView:!0,fitViewOptions:{padding:.4,maxZoom:1},minZoom:.25,maxZoom:2.5,zoomOnScroll:!0,panOnScroll:!1,proOptions:{hideAttribution:!0},children:(0,x.jsx)(oO,{variant:m.Dots,gap:24,size:1.5,color:"var(--color-border)"})}),(0,x.jsxs)("div",{className:"absolute bottom-4 left-4 z-40 bg-background/80 backdrop-blur-sm rounded-lg ring-1 ring-foreground/5 p-1 flex gap-0.5 animate-[fade-up_300ms_ease-out_both]",style:{animationDelay:"200ms"},children:[(0,x.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>u(),children:(0,x.jsx)(oU,{className:"size-4"})}),(0,x.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>h(),children:(0,x.jsx)(oG,{className:"size-4"})}),(0,x.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>f({padding:.4,duration:400}),children:(0,x.jsx)(oq,{className:"size-4"})}),(0,x.jsx)("div",{className:"w-px h-5 bg-foreground/10 mx-0.5 self-center"}),(0,x.jsxs)(rn.Popover,{children:[(0,x.jsxs)(rt.Tooltip,{children:[(0,x.jsx)(rt.TooltipTrigger,{render:(0,x.jsx)(rn.PopoverTrigger,{render:(0,x.jsx)("button",{type:"button",className:"size-7 rounded-md flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors"}),children:(0,x.jsx)(o0.LayoutGrid,{className:"size-3.5"})})}),(0,x.jsx)(rt.TooltipContent,{side:"top",children:"Layout"})]}),(0,x.jsx)(rn.PopoverContent,{className:"w-36 p-1",align:"start",side:"top",sideOffset:8,children:[{type:"star",label:"Star",icon:o1},{type:"tree",label:"Tree",icon:o2.GitBranch},{type:"flow",label:"Flow",icon:o5.ArrowRight}].map(({type:e,label:t,icon:n})=>(0,x.jsxs)("button",{type:"button",className:(0,o4.cn)("w-full flex items-center gap-2 px-2 py-1.5 rounded-md text-sm transition-colors",I===e?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground hover:bg-accent/50"),onClick:()=>V(e),children:[(0,x.jsx)(n,{className:"size-3.5"}),(0,x.jsx)("span",{className:"flex-1 text-left",children:t}),I===e&&(0,x.jsx)(o3.Check,{className:"size-3.5"})]},e))})]})]}),O&&(0,x.jsx)("div",{className:"absolute bottom-14 left-4 z-40 text-xs text-muted-foreground bg-background/80 backdrop-blur-sm rounded-md px-3 py-1.5 ring-1 ring-foreground/5",children:"Drag between agent handles to create relationships."}),(0,x.jsx)(rx,{open:j,onOpenChange:M,link:_,agents:n,onSave:B,onDelete:H}),(0,x.jsxs)("div",{className:"absolute bottom-4 right-4 z-10 flex flex-wrap justify-end items-end gap-2",children:[(0,x.jsx)(r_,{}),(0,x.jsx)(rk,{})]}),(0,x.jsxs)(rt.Tooltip,{children:[(0,x.jsx)(rt.TooltipTrigger,{render:(0,x.jsx)("button",{type:"button",className:"absolute top-4 right-4 z-40 size-8 rounded-lg bg-background/80 backdrop-blur-sm ring-1 ring-foreground/5 flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors animate-[fade-up_300ms_ease-out_both]",style:{animationDelay:"200ms"},onClick:()=>t.push(`/w/${d}/agents/new`)}),children:(0,x.jsx)(oJ.Plus,{className:"size-4"})}),(0,x.jsx)(rt.TooltipContent,{children:"Create new agent"})]})]})}function i6({onAgentClick:e}){let t=(0,v.useRouter)(),{agents:n,runtimes:o,loading:r,activeTaskCounts:i}=(0,o6.useAgentContext)(),{slug:a}=(0,o7.useWorkspace)();if(r)return(0,x.jsx)("div",{className:"flex flex-col gap-1 p-4",children:[void 0,void 0,void 0,void 0].map((e,t)=>(0,x.jsx)("div",{className:"animate-pulse rounded-xl bg-muted h-15"},t))});let s=n=>{e?e(n):t.push(`/w/${a}/agents/${n.id}`)};return(0,x.jsxs)("div",{className:"relative flex-1 flex flex-col min-h-0",children:[(0,x.jsx)("div",{className:"flex flex-col gap-1 p-4 overflow-y-auto thin-scrollbar flex-1 min-h-0",children:n.map(e=>{let t,n=o.find(t=>t.id===e.runtime_id),r=n?.status==="online";return(0,x.jsxs)("div",{role:"button",tabIndex:0,className:"flex items-center gap-3 w-full rounded-xl px-3 py-2.5 hover:bg-accent/50 active:bg-accent/70 transition-colors cursor-pointer text-left",onClick:()=>s(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),s(e))},children:[(t=(0,ri.parseAvatarUrl)(e.avatar_url))?(0,x.jsx)(rr.AnimatedAvatar,{config:t,size:36,className:"shrink-0 rounded-xl",isHovered:!1,isWorking:r&&(i[e.id]??0)>0}):(0,x.jsx)("div",{className:"flex items-center justify-center size-9 rounded-xl bg-secondary text-secondary-foreground text-sm font-medium shrink-0",children:e.name.charAt(0).toUpperCase()}),(0,x.jsx)("div",{className:"min-w-0 flex-1",children:(0,x.jsx)(ro.AgentPreviewCard,{agent:e,isOnline:r,activeTaskCount:i[e.id]??0})})]},e.id)})}),(0,x.jsxs)(rt.Tooltip,{children:[(0,x.jsx)(rt.TooltipTrigger,{render:(0,x.jsx)("button",{type:"button",className:"absolute top-4 right-4 size-8 rounded-lg bg-background/80 backdrop-blur-sm ring-1 ring-foreground/5 flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent transition-colors",onClick:()=>t.push(`/w/${a}/agents/new`)}),children:(0,x.jsx)(oJ.Plus,{className:"size-4"})}),(0,x.jsx)(rt.TooltipContent,{children:"Create new agent"})]})]})}function i7({workspaceId:e}){let[t,n]=(0,y.useState)(""),[o,r]=(0,y.useState)(!0);(0,y.useEffect)(()=>{(0,ra.createMachineToken)("cli",e).then(e=>n(e.token)).catch(()=>rs.toast.error("Failed to generate token")).finally(()=>r(!1))},[e]);let i=`${(0,o4.cliCmd)()} register --token ${t}`,a=()=>{navigator.clipboard.writeText(i),rs.toast.success("Copied to clipboard")};return(0,x.jsxs)("div",{className:"rounded-xl bg-muted/40 p-5 space-y-3",children:[(0,x.jsx)("h3",{className:"text-sm font-semibold",children:"Connect a computer"}),(0,x.jsx)("p",{className:"text-xs text-muted-foreground",children:"Run this command in your terminal to link your machine."}),o?(0,x.jsx)("div",{className:"rounded-md bg-muted p-2.5 font-mono text-xs text-muted-foreground animate-pulse",children:"Generating token..."}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)("div",{className:"rounded-md bg-muted p-2.5 font-mono text-xs text-muted-foreground cursor-pointer hover:bg-muted/80 transition-colors break-all",onClick:a,children:i}),(0,x.jsx)(re.Button,{size:"sm",onClick:a,className:"w-full",children:"Copy Command"})]})]})}e.s(["default",0,function(){let e=(0,v.useRouter)(),{agents:t,runtimes:n,loading:o}=(0,o6.useAgentContext)(),{workspaceId:r}=(0,o7.useWorkspace)(),i=(0,o8.useIsMobile)(),{openAgentChat:a}=(0,o9.useAgentChatSheet)(),s=(0,y.useCallback)(e=>{a(e.id)},[a]);if(o)return(0,x.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,x.jsx)(oQ.Loader2,{className:"size-5 animate-spin text-muted-foreground"})});let l=n.filter(e=>"online"===e.status).length>0;return 0===t.length?(0,x.jsx)("div",{className:"flex flex-1 items-center justify-center",children:(0,x.jsxs)("div",{className:"w-full max-w-sm space-y-6 animate-[fade-up_400ms_ease-out_both]",children:[!l&&(0,x.jsx)(i7,{workspaceId:r}),(0,x.jsxs)("div",{className:"text-center",children:[(0,x.jsx)("p",{className:"text-muted-foreground text-sm",children:"Build your AI company"}),(0,x.jsx)(re.Button,{size:"sm",className:"mt-4 glow-border",onClick:()=>e.push(`/studio/new?workspace_id=${r}`),children:"Get Started"})]})]})}):i?(0,x.jsx)(i6,{onAgentClick:s}):(0,x.jsx)(ov,{children:(0,x.jsx)(i4,{onAgentClick:s})})}],614191)}]);
|