six-degrees 0.4.0-beta.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +5 -5
- package/.next/standalone/.next/required-server-files.json +6 -1
- package/.next/standalone/.next/routes-manifest.json +12 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +11 -11
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/api/admin-delete/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin-delete/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/admin-update/route.js +1 -1
- package/.next/standalone/.next/server/app/api/admin-update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bridges/route.js +1 -1
- package/.next/standalone/.next/server/app/api/bridges/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/bulk-import/route.js +1 -1
- package/.next/standalone/.next/server/app/api/bulk-import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/legacy/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/company-scores/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/connections/route.js +1 -1
- package/.next/standalone/.next/server/app/api/connections/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/export/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/import/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/restart/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/reveal/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/data/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js +1 -1
- package/.next/standalone/.next/server/app/api/delete-cluster/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/ingest/route.js +1 -1
- package/.next/standalone/.next/server/app/api/ingest/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js +1 -1
- package/.next/standalone/.next/server/app/api/network/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js +1 -1
- package/.next/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js +1 -1
- package/.next/standalone/.next/server/app/api/outreach/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js +1 -1
- package/.next/standalone/.next/server/app/api/queue/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js +1 -1
- package/.next/standalone/.next/server/app/api/scraper/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-preview/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/settings/sector-suggestions/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/setup-profile/route.js +1 -1
- package/.next/standalone/.next/server/app/api/setup-profile/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/unlock/route.js +1 -1
- package/.next/standalone/.next/server/app/api/unlock/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/update-images/route.js +1 -1
- package/.next/standalone/.next/server/app/api/update-images/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/users/route.js +1 -1
- package/.next/standalone/.next/server/app/api/users/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/avatars/[file]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/import/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/import.html +1 -1
- package/.next/standalone/.next/server/app/import.rsc +13 -13
- package/.next/standalone/.next/server/app/import.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/import.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/import.segments/import/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +13 -13
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/launch/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/launch/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/launch.html +2 -2
- package/.next/standalone/.next/server/app/launch.rsc +13 -13
- package/.next/standalone/.next/server/app/launch.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/launch.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/launch.segments/launch/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/paths/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/paths.html +1 -1
- package/.next/standalone/.next/server/app/paths.rsc +13 -13
- package/.next/standalone/.next/server/app/paths.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/paths.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/paths.segments/paths/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/profile/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/profile/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/profile.html +1 -1
- package/.next/standalone/.next/server/app/profile.rsc +13 -13
- package/.next/standalone/.next/server/app/profile.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/profile.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/profile.segments/profile/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/queue/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/queue/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/queue.html +1 -1
- package/.next/standalone/.next/server/app/queue.rsc +13 -13
- package/.next/standalone/.next/server/app/queue.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/queue.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/queue.segments/queue/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/scores/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/scores/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/scores.html +1 -1
- package/.next/standalone/.next/server/app/scores.rsc +13 -13
- package/.next/standalone/.next/server/app/scores.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/scores.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/scores.segments/scores/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/settings.html +1 -1
- package/.next/standalone/.next/server/app/settings.rsc +13 -13
- package/.next/standalone/.next/server/app/settings.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/app/setup/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/setup/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/setup.html +1 -1
- package/.next/standalone/.next/server/app/setup.rsc +13 -13
- package/.next/standalone/.next/server/app/setup.segments/_full.segment.rsc +13 -13
- package/.next/standalone/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +12 -12
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0-rnla2._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__00la_y0._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0i5hdu4._.js → [root-of-the-server]__03ydxxh._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__07t47cm._.js +1 -1
- package/.next/standalone/.next/server/chunks/{[root-of-the-server]__0rc27za._.js → [root-of-the-server]__0bat8nx._.js} +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0cj5jqc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0e0fei3._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ljcioj._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0ljnyho._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0o5-tcg._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0qrnous._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0t3v1a1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0uag-k5._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0um1uey._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0wmexuc._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0xu34sz._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__133knx1._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__14ou7j5._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__15-17hl._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__16iu0hv._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19b7mig._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1bbcwub._.js +2 -2
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1eris29._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1gjo_cq._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1kbl21f._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1qcm08_._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1rphsdk._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1w25q0m._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1_fynia._.js +7 -6
- package/.next/standalone/.next/server/chunks/_1fn30_l._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1itd1o_._.js +1 -1
- package/.next/standalone/.next/server/chunks/_1iwkh8t._.js +1 -1
- package/.next/standalone/.next/server/chunks/lib_db-client_15le7cw.js +12 -8
- package/.next/standalone/.next/server/chunks/{lib_rpc_02ndsg2.js → lib_rpc_03i8xef.js} +1 -1
- package/.next/standalone/.next/server/chunks/{lib_rpc_08q5vp6.js → lib_rpc_08fc3rp.js} +1 -1
- package/.next/standalone/.next/server/chunks/{lib_rpc_00tx2sm.js → lib_rpc_08r2t_q.js} +1 -1
- package/.next/standalone/.next/server/chunks/{lib_rpc_02-qa4d.js → lib_rpc_0btpv1t.js} +1 -1
- package/.next/standalone/.next/server/chunks/lib_rpc_0c9d9ti.js +5 -5
- package/.next/standalone/.next/server/chunks/lib_rpc_0cm2ev3.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0iovswz.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0is8flp.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0v8ajtd.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_0xgmvvt.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_144mzbf.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1bggi0n.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1dkcu9f.js +3 -0
- package/.next/standalone/.next/server/chunks/lib_rpc_1o0jb6w.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_01f38ty._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_06w_gl4._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_0hw_qnj._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_13kzrwv._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_15xuwkv._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/_1gpbbw9._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/_1hgd5dp._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/{_0cu6-an._.js → _1vpfyd-._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_20w06i-._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_components_settings_SectorPicker_1c-29qw.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/app_launch_page_19t0dyd.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_page_1fazqbf.js +11 -9
- package/.next/standalone/.next/server/chunks/ssr/app_paths_page_1ol90m7.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_profile_page_0u3-l5y.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_queue_page_0c6znd6.js +5 -5
- package/.next/standalone/.next/server/chunks/ssr/app_scores_page_09wepvv.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_setup_page_1-282zx.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/lib_1bn38gs._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js +3 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/middleware-manifest.json +5 -5
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/chunks/0ax_9zzboyv6d.js +44 -0
- package/.next/standalone/.next/static/chunks/0cuuo2jwc9h94.js +1 -0
- package/.next/standalone/.next/static/chunks/0l1568qff0efj.js +1 -0
- package/.next/standalone/.next/static/chunks/0muwt9bykzr-1.js +1 -0
- package/.next/standalone/.next/static/chunks/0w76iraw7ij3k.js +18 -0
- package/.next/standalone/.next/static/chunks/135n87ydxjrra.js +2 -0
- package/.next/standalone/.next/static/chunks/18xu0fbgo_qz-.js +1 -0
- package/.next/standalone/.next/static/chunks/28bu26ausqzmn.js +1 -0
- package/.next/standalone/.next/static/chunks/{40nvbgfn7-072.css → 2p6o90z0vgcwr.css} +1 -1
- package/.next/standalone/.next/static/chunks/2pnbm1z6j7xab.js +1 -0
- package/.next/standalone/.next/static/chunks/2xjho0lroiwlq.js +1 -0
- package/.next/standalone/.next/static/chunks/3e8zg6ctvvb8p.js +33 -0
- package/.next/standalone/.next/static/chunks/3qh78g2aqhprd.js +2 -0
- package/.next/standalone/CHANGELOG.md +152 -0
- package/.next/standalone/CONTRIBUTING.md +15 -4
- package/.next/standalone/README.md +21 -15
- package/.next/standalone/SECURITY.md +10 -0
- package/.next/standalone/app/api/ingest/route.js +6 -1
- package/.next/standalone/app/api/scraper/route.js +79 -11
- package/.next/standalone/app/api/update-images/route.js +41 -7
- package/.next/standalone/app/avatars/[file]/route.js +6 -1
- package/.next/standalone/app/components/Avatar.js +5 -2
- package/.next/standalone/app/components/ChainView.js +659 -469
- package/.next/standalone/app/components/EmptyState.js +1 -1
- package/.next/standalone/app/components/FieldStep.js +94 -0
- package/.next/standalone/app/components/ForceGraph.js +183 -768
- package/.next/standalone/app/components/GridView.js +9 -7
- package/.next/standalone/app/components/LinkedInLimits.js +22 -7
- package/.next/standalone/app/components/ListView.js +6 -4
- package/.next/standalone/app/components/MappingProgress.js +5 -6
- package/.next/standalone/app/components/OnboardingGate.js +1 -1
- package/.next/standalone/app/components/OrbitGraph.js +3 -1
- package/.next/standalone/app/components/OutlinkQuest.js +5 -4
- package/.next/standalone/app/components/RingsView.js +9 -8
- package/.next/standalone/app/components/Sidebar.js +172 -112
- package/.next/standalone/app/components/TheirCircle.js +18 -11
- package/.next/standalone/app/components/settings/SectorPicker.js +202 -0
- package/.next/standalone/app/components/settings/SectorSection.js +17 -191
- package/.next/standalone/app/components/settings/TierSection.js +7 -12
- package/.next/standalone/app/components/views.js +2 -2
- package/.next/standalone/app/globals.css +7 -0
- package/.next/standalone/app/launch/page.js +2 -2
- package/.next/standalone/app/page.js +130 -25
- package/.next/standalone/app/paths/page.js +3 -2
- package/.next/standalone/app/queue/page.js +18 -10
- package/.next/standalone/app/setup/page.js +423 -260
- package/.next/standalone/db/schema.js +1 -1
- package/.next/standalone/eslint.config.mjs +3 -3
- package/.next/standalone/install.sh +3 -3
- package/.next/standalone/lib/chain-layout.js +139 -0
- package/.next/standalone/lib/csv.js +4 -6
- package/.next/standalone/lib/data-export.js +2 -1
- package/.next/standalone/lib/data-folder.js +4 -2
- package/.next/standalone/lib/galaxy.js +12 -0
- package/.next/standalone/lib/ingest.js +15 -8
- package/.next/standalone/lib/linkedin-limits.js +30 -8
- package/.next/standalone/lib/photos.js +47 -0
- package/.next/standalone/lib/quest.js +8 -3
- package/.next/standalone/lib/reach.js +113 -0
- package/.next/standalone/lib/scan-state.js +1 -0
- package/.next/standalone/lib/scanner-setup.js +20 -1
- package/.next/standalone/lib/scoring.js +769 -18
- package/.next/standalone/lib/scraper-client.js +27 -0
- package/.next/standalone/lib/sector-focus.js +13 -0
- package/.next/standalone/lib/separation.js +4 -2
- package/.next/standalone/lib/settings-client.js +21 -0
- package/.next/standalone/lib/settings.js +3 -1
- package/.next/standalone/next.config.mjs +25 -3
- package/.next/standalone/package-lock.json +2 -2
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/scripts/build-app.mjs +11 -2
- package/.next/standalone/scripts/check-node.mjs +1 -1
- package/.next/standalone/scripts/image_store.py +77 -21
- package/.next/standalone/scripts/scrape.py +243 -29
- package/.next/standalone/server.js +1 -1
- package/.next/static/chunks/0ax_9zzboyv6d.js +44 -0
- package/.next/static/chunks/0cuuo2jwc9h94.js +1 -0
- package/.next/static/chunks/0l1568qff0efj.js +1 -0
- package/.next/static/chunks/0muwt9bykzr-1.js +1 -0
- package/.next/static/chunks/0w76iraw7ij3k.js +18 -0
- package/.next/static/chunks/135n87ydxjrra.js +2 -0
- package/.next/static/chunks/18xu0fbgo_qz-.js +1 -0
- package/.next/static/chunks/28bu26ausqzmn.js +1 -0
- package/.next/static/chunks/{40nvbgfn7-072.css → 2p6o90z0vgcwr.css} +1 -1
- package/.next/static/chunks/2pnbm1z6j7xab.js +1 -0
- package/.next/static/chunks/2xjho0lroiwlq.js +1 -0
- package/.next/static/chunks/3e8zg6ctvvb8p.js +33 -0
- package/.next/static/chunks/3qh78g2aqhprd.js +2 -0
- package/CHANGELOG.md +152 -0
- package/README.md +21 -15
- package/SECURITY.md +10 -0
- package/db/schema.js +1 -1
- package/lib/chain-layout.js +139 -0
- package/lib/csv.js +4 -6
- package/lib/data-export.js +2 -1
- package/lib/data-folder.js +4 -2
- package/lib/galaxy.js +12 -0
- package/lib/ingest.js +15 -8
- package/lib/linkedin-limits.js +30 -8
- package/lib/photos.js +47 -0
- package/lib/quest.js +8 -3
- package/lib/reach.js +113 -0
- package/lib/scan-state.js +1 -0
- package/lib/scanner-setup.js +20 -1
- package/lib/scoring.js +769 -18
- package/lib/scraper-client.js +27 -0
- package/lib/sector-focus.js +13 -0
- package/lib/separation.js +4 -2
- package/lib/settings-client.js +21 -0
- package/lib/settings.js +3 -1
- package/package.json +1 -1
- package/scripts/check-node.mjs +1 -1
- package/scripts/image_store.py +77 -21
- package/scripts/scrape.py +243 -29
- package/.next/standalone/.next/server/chunks/lib_rpc_0_8i3ft.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0huvw-3.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0ip2vdh.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_0yi9xvd.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1jyhd0o.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1kn59-i.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1q2jkza.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1vpm1sk.js +0 -3
- package/.next/standalone/.next/server/chunks/lib_rpc_1x6p_31.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0223v9s._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0bcf13g._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0wxbq78._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_0z88zcl._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_1-87bs1._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/_17gui6a._.js +0 -3
- package/.next/standalone/.next/static/chunks/0_yurn4q91vq8.js +0 -16
- package/.next/standalone/.next/static/chunks/0d_mh-06srh2k.js +0 -1
- package/.next/standalone/.next/static/chunks/0x3oadfikvb1c.js +0 -1
- package/.next/standalone/.next/static/chunks/1d5hl1io798n2.js +0 -1
- package/.next/standalone/.next/static/chunks/1qt67cvj9sjwi.js +0 -1
- package/.next/standalone/.next/static/chunks/1roznk7hkjes1.js +0 -44
- package/.next/standalone/.next/static/chunks/2_bf2n4gstad9.js +0 -33
- package/.next/standalone/.next/static/chunks/36gbwek52x_w-.js +0 -2
- package/.next/standalone/.next/static/chunks/3a55suosthntc.js +0 -1
- package/.next/standalone/.next/static/chunks/3fq1zq-6cfwbc.js +0 -1
- package/.next/standalone/.next/static/chunks/3nbnio971zlji.js +0 -2
- package/.next/standalone/.next/static/chunks/3s6awp3qq9s7w.js +0 -1
- package/.next/static/chunks/0_yurn4q91vq8.js +0 -16
- package/.next/static/chunks/0d_mh-06srh2k.js +0 -1
- package/.next/static/chunks/0x3oadfikvb1c.js +0 -1
- package/.next/static/chunks/1d5hl1io798n2.js +0 -1
- package/.next/static/chunks/1qt67cvj9sjwi.js +0 -1
- package/.next/static/chunks/1roznk7hkjes1.js +0 -44
- package/.next/static/chunks/2_bf2n4gstad9.js +0 -33
- package/.next/static/chunks/36gbwek52x_w-.js +0 -2
- package/.next/static/chunks/3a55suosthntc.js +0 -1
- package/.next/static/chunks/3fq1zq-6cfwbc.js +0 -1
- package/.next/static/chunks/3nbnio971zlji.js +0 -2
- package/.next/static/chunks/3s6awp3qq9s7w.js +0 -1
- /package/.next/standalone/.next/static/{NnWlxbDF24KhrU1eHiEnv → WseE_5HuU-1q0ywC9CP3U}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{NnWlxbDF24KhrU1eHiEnv → WseE_5HuU-1q0ywC9CP3U}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{NnWlxbDF24KhrU1eHiEnv → WseE_5HuU-1q0ywC9CP3U}/_ssgManifest.js +0 -0
- /package/.next/static/{NnWlxbDF24KhrU1eHiEnv → WseE_5HuU-1q0ywC9CP3U}/_buildManifest.js +0 -0
- /package/.next/static/{NnWlxbDF24KhrU1eHiEnv → WseE_5HuU-1q0ywC9CP3U}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{NnWlxbDF24KhrU1eHiEnv → WseE_5HuU-1q0ywC9CP3U}/_ssgManifest.js +0 -0
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,10706,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(22016);function i(e={}){let t=(0,r.useRef)(null),[n,o]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{if(!t.current)return;let r=new IntersectionObserver(([e])=>{e.isIntersecting&&o(!0)},{threshold:.15,...e});return r.observe(t.current),()=>r.disconnect()},[]),[t,n]}let o={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},a="linear-gradient(135deg, #FFD700, #9B59B6, #3498DB)";function l({end:e,duration:n=2e3,active:i}){let[o,a]=(0,r.useState)(0);return(0,r.useEffect)(()=>{if(!i)return;let t=0,r=e/(n/16),o=setInterval(()=>{(t+=r)>=e?(a(e),clearInterval(o)):a(Math.floor(t))},16);return()=>clearInterval(o)},[i,e]),(0,t.jsx)("span",{children:o.toLocaleString()})}function s(){let e=(0,r.useRef)(null),[i,l]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{let t;setTimeout(()=>l(!0),300);let r=e.current;if(!r)return;let n=r.getContext("2d"),i=r.width=window.innerWidth,a=r.height=window.innerHeight,s=Array.from({length:120},()=>({x:Math.random()*i,y:Math.random()*a,vx:(Math.random()-.5)*.4,vy:(Math.random()-.5)*.4,r:2.5*Math.random()+1,color:[o.S,o.A,o.B,"#fff",o.S,o.A,o.B][Math.floor(7*Math.random())]}));!function e(){n.clearRect(0,0,i,a);for(let e=0;e<s.length;e++)for(let t=e+1;t<s.length;t++){let r=s[e].x-s[t].x,i=s[e].y-s[t].y,o=Math.sqrt(r*r+i*i);o<150&&(n.beginPath(),n.moveTo(s[e].x,s[e].y),n.lineTo(s[t].x,s[t].y),n.strokeStyle=`rgba(52,152,219,${.12*(1-o/150)})`,n.lineWidth=.5,n.stroke())}s.forEach(e=>{e.x+=e.vx,e.y+=e.vy,(e.x<0||e.x>i)&&(e.vx*=-1),(e.y<0||e.y>a)&&(e.vy*=-1),n.beginPath(),n.arc(e.x,e.y,e.r,0,2*Math.PI),n.fillStyle=e.color,n.globalAlpha=.6,n.fill(),n.globalAlpha=1}),t=requestAnimationFrame(e)}();let c=()=>{i=r.width=window.innerWidth,a=r.height=window.innerHeight};return window.addEventListener("resize",c),()=>{cancelAnimationFrame(t),window.removeEventListener("resize",c)}},[]),(0,t.jsxs)("section",{style:{position:"relative",height:"100vh",display:"flex",alignItems:"center",justifyContent:"center",overflow:"hidden"},children:[(0,t.jsx)("canvas",{ref:e,style:{position:"absolute",inset:0,zIndex:0}}),(0,t.jsx)("div",{style:{position:"absolute",inset:0,background:"radial-gradient(circle at 50% 50%, transparent 30%, #0a0a1a 75%)",zIndex:1}}),(0,t.jsx)("div",{style:{position:"absolute",width:500,height:500,borderRadius:"50%",background:"radial-gradient(circle, rgba(52,152,219,0.08) 0%, transparent 70%)",top:"50%",left:"50%",transform:"translate(-50%,-50%)",zIndex:1}}),(0,t.jsxs)("div",{style:{position:"relative",zIndex:2,textAlign:"center",maxWidth:900,padding:"0 24px"},children:[(0,t.jsxs)("div",{style:{display:"inline-flex",alignItems:"center",gap:8,padding:"6px 16px",borderRadius:20,border:"1px solid rgba(52,152,219,0.3)",background:"rgba(52,152,219,0.08)",fontSize:13,color:"#3498DB",fontWeight:600,marginBottom:32,opacity:+!!i,transform:i?"translateY(0)":"translateY(20px)",transition:"all 0.8s cubic-bezier(0.16, 1, 0.3, 1)"},children:[(0,t.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:"#3498DB",animation:"pulse-dot 2s infinite"}}),"Research Project by Blake Burford"]}),(0,t.jsxs)("h1",{style:{fontSize:"clamp(48px, 8vw, 96px)",fontWeight:800,lineHeight:1.05,margin:0,background:a,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",opacity:+!!i,transform:i?"translateY(0) scale(1)":"translateY(40px) scale(0.95)",transition:"all 1s cubic-bezier(0.16, 1, 0.3, 1) 0.15s",letterSpacing:"-0.03em"},children:["6 Degrees of",(0,t.jsx)("br",{}),"Separation"]}),(0,t.jsx)("p",{style:{fontSize:"clamp(16px, 2.5vw, 22px)",color:"rgba(255,255,255,0.55)",maxWidth:600,margin:"24px auto 0",lineHeight:1.6,fontWeight:400,opacity:+!!i,transform:i?"translateY(0)":"translateY(30px)",transition:"all 1s cubic-bezier(0.16, 1, 0.3, 1) 0.35s"},children:"Visualizing the hidden architecture of professional networks. Every connection is a degree. Every bridge is a path to power."}),(0,t.jsxs)("div",{style:{display:"flex",gap:16,justifyContent:"center",marginTop:48,flexWrap:"wrap",opacity:+!!i,transform:i?"translateY(0)":"translateY(30px)",transition:"all 1s cubic-bezier(0.16, 1, 0.3, 1) 0.55s"},children:[(0,t.jsx)(n.default,{href:"/",style:{padding:"14px 32px",borderRadius:12,border:"none",fontSize:16,fontWeight:700,background:a,color:"#000",cursor:"pointer",textDecoration:"none",boxShadow:"0 4px 24px rgba(255,215,0,0.3)"},children:"Open App"}),(0,t.jsx)("button",{onClick:()=>document.getElementById("features")?.scrollIntoView({behavior:"smooth"}),style:{padding:"14px 32px",borderRadius:12,border:"1px solid rgba(255,255,255,0.15)",fontSize:16,fontWeight:600,background:"rgba(255,255,255,0.05)",color:"#fff",cursor:"pointer",backdropFilter:"blur(12px)"},children:"See How It Works"})]}),(0,t.jsxs)("div",{style:{position:"absolute",bottom:-120,left:"50%",transform:"translateX(-50%)",display:"flex",flexDirection:"column",alignItems:"center",gap:8,opacity:.4*!!i,transition:"opacity 1.5s ease 1.2s"},children:[(0,t.jsx)("span",{style:{fontSize:11,color:"#555",letterSpacing:2,textTransform:"uppercase"},children:"Scroll"}),(0,t.jsx)("div",{style:{width:1,height:40,background:"linear-gradient(to bottom, rgba(255,255,255,0.3), transparent)",animation:"scroll-line 2s infinite"}})]})]})]})}function c(){let[e,r]=i();return(0,t.jsxs)("section",{ref:e,style:{padding:"80px 24px",borderTop:"1px solid rgba(255,255,255,0.05)",borderBottom:"1px solid rgba(255,255,255,0.05)"},children:[(0,t.jsx)("div",{style:{maxWidth:1e3,margin:"0 auto",display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(180px, 1fr))",gap:32},children:[{label:"Connections Mapped",value:873,color:"#3498DB"},{label:"Bridges Discovered",value:14,color:"#FFD700"},{label:"People Scored",value:748,color:"#9B59B6"},{label:"Companies",value:19,color:"#00ff88"}].map((e,n)=>(0,t.jsxs)("div",{style:{textAlign:"center",opacity:+!!r,transform:r?"translateY(0)":"translateY(30px)",transition:`all 0.8s cubic-bezier(0.16,1,0.3,1) ${.1*n}s`},children:[(0,t.jsx)("div",{style:{fontSize:48,fontWeight:800,color:e.color,lineHeight:1},children:(0,t.jsx)(l,{end:e.value,active:r})}),(0,t.jsx)("div",{style:{fontSize:13,color:"#666",marginTop:8,fontWeight:500,letterSpacing:.5},children:e.label})]},n))}),(0,t.jsx)("p",{style:{textAlign:"center",fontSize:12,color:"#555",margin:"32px auto 0",maxWidth:520},children:"Counted from the sample network that comes with the app. Every person in it is invented."})]})}function d(){let[e,r]=i(),n=[{tier:"S",color:o.S,r:55,count:10,label:"S-Tier",speed:60},{tier:"A",color:o.A,r:95,count:18,label:"A-Tier",speed:90},{tier:"B",color:o.B,r:135,count:30,label:"B-Tier",speed:120},{tier:"C",color:o.C,r:175,count:44,label:"C-Tier",speed:150},{tier:"D",color:o.D,r:210,count:56,label:"D-Tier",speed:180}];return(0,t.jsx)("section",{id:"features",ref:e,style:{padding:"100px 24px",position:"relative"},children:(0,t.jsxs)("div",{className:"galaxy-grid",style:{maxWidth:1100,margin:"0 auto",display:"grid",gridTemplateColumns:"1fr 1fr",gap:48,alignItems:"center"},children:[(0,t.jsxs)("div",{style:{opacity:+!!r,transform:r?"translateX(0)":"translateX(-50px)",transition:"all 1s cubic-bezier(0.16,1,0.3,1)"},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:o.S,letterSpacing:3,textTransform:"uppercase",marginBottom:16},children:"Network Circle"}),(0,t.jsxs)("h2",{style:{fontSize:44,fontWeight:800,lineHeight:1.15,margin:0,color:"#fff"},children:["Your Network,",(0,t.jsx)("br",{}),(0,t.jsx)("span",{style:{background:a,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Visualized in Orbit"})]}),(0,t.jsx)("p",{style:{fontSize:17,color:"rgba(255,255,255,0.5)",lineHeight:1.7,marginTop:20,maxWidth:440},children:"Every connection orbits you by power tier. S-Tier innermost, D-Tier outermost. A living galaxy of influence — zoom, filter, and explore your entire professional universe."}),(0,t.jsx)("div",{style:{display:"flex",gap:12,marginTop:32,flexWrap:"wrap"},children:Object.entries(o).map(([e,r])=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"6px 12px",borderRadius:8,background:`${r}15`,border:`1px solid ${r}30`},children:[(0,t.jsx)("div",{style:{width:8,height:8,borderRadius:"50%",background:r}}),(0,t.jsxs)("span",{style:{fontSize:12,fontWeight:600,color:r},children:[e,"-Tier"]})]},e))})]}),(0,t.jsxs)("div",{className:"galaxy-rings",style:{position:"relative",width:440,height:440,margin:"0 auto",opacity:+!!r,transform:r?"scale(1)":"scale(0.8)",transition:"all 1.2s cubic-bezier(0.16,1,0.3,1) 0.2s"},children:[(0,t.jsx)("div",{style:{position:"absolute",top:"50%",left:"50%",width:"60%",height:"60%",borderRadius:"50%",background:"radial-gradient(circle, rgba(52,152,219,0.12) 0%, transparent 70%)",transform:"translate(-50%,-50%)"}}),(0,t.jsx)("div",{style:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%,-50%)",width:40,height:40,borderRadius:"50%",background:"#fff",boxShadow:"0 0 30px rgba(255,255,255,0.4), 0 0 60px rgba(52,152,219,0.2)",zIndex:10,display:"flex",alignItems:"center",justifyContent:"center",fontSize:9,fontWeight:800,color:"#0a0a1a"},children:"YOU"}),n.map((e,n)=>(0,t.jsx)("div",{style:{position:"absolute",top:"50%",left:"50%",width:2*e.r,height:2*e.r,borderRadius:"50%",border:`1px solid ${e.color}15`,transform:"translate(-50%,-50%)",animation:r?`spin-ring ${e.speed}s linear infinite`:"none"},children:Array.from({length:e.count}).map((r,i)=>{let o=i/e.count*Math.PI*2,a=Math.round((Math.cos(o)*e.r+e.r)*100)/100,l=Math.round((Math.sin(o)*e.r+e.r)*100)/100;return(0,t.jsx)("div",{style:{position:"absolute",left:a-3,top:l-3,width:6,height:6,borderRadius:"50%",background:e.color,opacity:Number((.6+.4*y(n,i,1)).toFixed(3)),animation:`breathe ${(2+2*y(n,i,2)).toFixed(2)}s ease-in-out infinite ${(2*y(n,i,3)).toFixed(2)}s`}},i)})},n))]})]})})}function p(){let[e,r]=i(),n=[{d:1,label:"Your Connections",desc:"Direct network — scored & tiered",color:"#3498DB",count:150},{d:2,label:"Bridge Connections",desc:"Friends of your bridges",color:"#9B59B6",count:723},{d:3,label:"Extended Reach",desc:"Bridged from promoted D2s",color:"#FFD700",count:null},{d:4,label:"Industry Layer",desc:"Company & sector intelligence",color:"#FF6B35",count:null},{d:5,label:"Market Layer",desc:"Cross-industry connections",color:"#00ff88",count:null},{d:6,label:"Global Reach",desc:"Anyone in the world",color:"#ff5050",count:null}];return(0,t.jsx)("section",{ref:e,style:{padding:"100px 24px",position:"relative"},children:(0,t.jsxs)("div",{style:{maxWidth:1e3,margin:"0 auto"},children:[(0,t.jsxs)("div",{style:{textAlign:"center",marginBottom:80,opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:"all 1s cubic-bezier(0.16,1,0.3,1)"},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"#FF6B35",letterSpacing:3,textTransform:"uppercase",marginBottom:16},children:"Bridge Chains"}),(0,t.jsxs)("h2",{style:{fontSize:44,fontWeight:800,lineHeight:1.15,margin:0},children:[(0,t.jsx)("span",{style:{color:"#fff"},children:"Six Degrees."})," ",(0,t.jsx)("span",{style:{background:"linear-gradient(135deg, #FF6B35, #FFD700)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Infinite Reach."})]}),(0,t.jsx)("p",{style:{fontSize:17,color:"rgba(255,255,255,0.45)",marginTop:16,maxWidth:560,margin:"16px auto 0"},children:"Every person on Earth is at most 6 connections away. Our chain system maps the exact path from you to anyone."})]}),(0,t.jsx)("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:0,flexWrap:"wrap"},children:n.map((e,i)=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:`all 0.8s cubic-bezier(0.16,1,0.3,1) ${.1*i+.3}s`},children:[(0,t.jsxs)("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",width:120},children:[(0,t.jsxs)("div",{style:{width:64,height:64,borderRadius:"50%",background:`${e.color}20`,border:`2px solid ${e.color}`,display:"flex",alignItems:"center",justifyContent:"center",fontSize:22,fontWeight:800,color:e.color,boxShadow:`0 0 24px ${e.color}30`,animation:r?`breathe 3s ease-in-out infinite ${.5*i}s`:"none",position:"relative"},children:["D",e.d,e.count&&(0,t.jsx)("span",{style:{position:"absolute",bottom:-8,fontSize:9,fontWeight:700,background:e.color,color:"#000",padding:"2px 6px",borderRadius:10},children:e.count.toLocaleString()})]}),(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:e.color,marginTop:16},children:e.label}),(0,t.jsx)("div",{style:{fontSize:10,color:"#555",marginTop:4,textAlign:"center"},children:e.desc})]}),i<5&&(0,t.jsx)("div",{style:{width:40,height:2,position:"relative",background:`linear-gradient(to right, ${e.color}60, ${n[i+1].color}60)`,opacity:+!!r,transition:`opacity 0.6s ease ${.1*i+.6}s`},children:(0,t.jsx)("div",{style:{position:"absolute",top:-2,width:6,height:6,borderRadius:"50%",background:e.color,animation:r?`travel-dot 2s ease-in-out infinite ${.3*i}s`:"none"}})})]},i))}),(0,t.jsx)("p",{style:{textAlign:"center",fontSize:12,color:"#555",marginTop:40},children:"The counts are the sample network’s, whose people are all invented."})]})})}function u(){let[e,r]=i(),n=[{tier:"S",label:"Supreme",score:"7.5+",color:o.S,glow:"rgba(255,215,0,0.3)",people:"C-Suite, VPs, Founders",icon:"👑"},{tier:"A",label:"Ace",score:"5.5+",color:o.A,glow:"rgba(155,89,182,0.3)",people:"Directors, Senior Leaders",icon:"💎"},{tier:"B",label:"Builder",score:"4.0+",color:o.B,glow:"rgba(52,152,219,0.3)",people:"Managers, Senior ICs",icon:"🔷"},{tier:"C",label:"Connector",score:"2.5+",color:o.C,glow:"rgba(149,165,166,0.2)",people:"Associates, Specialists",icon:"🔸"},{tier:"D",label:"Developing",score:"<2.5",color:o.D,glow:"rgba(189,195,199,0.15)",people:"Entry Level, Students",icon:"🌱"}];return(0,t.jsx)("section",{ref:e,style:{padding:"100px 24px",background:"linear-gradient(180deg, transparent, rgba(52,152,219,0.03), transparent)"},children:(0,t.jsxs)("div",{style:{maxWidth:1100,margin:"0 auto"},children:[(0,t.jsxs)("div",{style:{textAlign:"center",marginBottom:64,opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:"all 1s cubic-bezier(0.16,1,0.3,1)"},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:o.A,letterSpacing:3,textTransform:"uppercase",marginBottom:16},children:"Power Score"}),(0,t.jsxs)("h2",{style:{fontSize:44,fontWeight:800,lineHeight:1.15},children:[(0,t.jsx)("span",{style:{color:"#fff"},children:"Every Connection,"})," ",(0,t.jsx)("span",{style:{background:"linear-gradient(135deg, #FFD700, #9B59B6)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Ranked by Power"})]}),(0,t.jsx)("p",{style:{fontSize:17,color:"rgba(255,255,255,0.45)",marginTop:16,maxWidth:500,margin:"16px auto 0"},children:"Seniority, company prestige, and circle proximity combine into one score."})]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(190px, 1fr))",gap:16},children:n.map((e,n)=>(0,t.jsxs)("div",{style:{padding:24,borderRadius:16,position:"relative",overflow:"hidden",background:"rgba(255,255,255,0.03)",border:`1px solid ${e.color}25`,opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:`all 0.8s cubic-bezier(0.16,1,0.3,1) ${.08*n+.2}s`},children:[(0,t.jsx)("div",{style:{position:"absolute",top:-20,right:-20,width:100,height:100,borderRadius:"50%",background:`radial-gradient(circle, ${e.glow}, transparent)`,filter:"blur(20px)"}}),(0,t.jsx)("div",{style:{fontSize:28,marginBottom:8},children:e.icon}),(0,t.jsx)("div",{style:{fontSize:32,fontWeight:900,color:e.color,lineHeight:1,textShadow:`0 0 20px ${e.glow}`},children:e.tier}),(0,t.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"#fff",marginTop:4},children:e.label}),(0,t.jsxs)("div",{style:{fontSize:11,color:"#555",marginTop:2},children:["Score: ",e.score]}),(0,t.jsx)("div",{style:{fontSize:10,color:"rgba(255,255,255,0.35)",marginTop:12,padding:"6px 10px",borderRadius:8,background:"rgba(255,255,255,0.04)"},children:e.people})]},n))}),(0,t.jsx)("p",{style:{textAlign:"center",fontSize:12,color:"#555",marginTop:24},children:"These are the fixed scale’s lines. By default tiers are graded on your own network’s curve: your top 3% are S, the next 12% A."})]})})}function f(){let[e,r]=i(),n=[{title:"Paths",subtitle:"Company Intelligence",desc:"Scan any company on LinkedIn and see every person mapped, scored, and organized by seniority.",color:"#00ff88",icon:"🏢",stat:"19 companies in the sample"},{title:"Outlink",subtitle:"Strategic Action Queue",desc:"Your curated list of high-value D2 connections to request. Grouped by bridge, filtered by tier, with batch-open for efficient networking.",color:"#FF6B35",icon:"🚀",stat:"474 recommendations in the sample"},{title:"XP System",subtitle:"Gamified Networking",desc:"Earn XP for every outreach sent and connection accepted. Higher tier connections = more points. Level up your networking game.",color:"#FFD700",icon:"⚡",stat:"S-Tier = 25 XP"},{title:"Bridge Clusters",subtitle:"Deep Network Mining",desc:"Select any D1 connection as a bridge. Automatically discover and score all their connections — your D2 layer.",color:"#9B59B6",icon:"🔗",stat:"14 bridges in the sample"}];return(0,t.jsx)("section",{ref:e,style:{padding:"100px 24px"},children:(0,t.jsxs)("div",{style:{maxWidth:1100,margin:"0 auto"},children:[(0,t.jsxs)("div",{style:{textAlign:"center",marginBottom:64,opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:"all 1s cubic-bezier(0.16,1,0.3,1)"},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"#00ff88",letterSpacing:3,textTransform:"uppercase",marginBottom:16},children:"Full Arsenal"}),(0,t.jsxs)("h2",{style:{fontSize:44,fontWeight:800},children:[(0,t.jsx)("span",{style:{color:"#fff"},children:"Tools That"})," ",(0,t.jsx)("span",{style:{background:"linear-gradient(135deg, #00ff88, #3498DB)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Make Moves"})]})]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(260px, 1fr))",gap:20},children:n.map((e,n)=>(0,t.jsxs)("div",{style:{padding:28,borderRadius:20,position:"relative",overflow:"hidden",background:"rgba(255,255,255,0.02)",border:"1px solid rgba(255,255,255,0.06)",backdropFilter:"blur(12px)",opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:`all 0.8s cubic-bezier(0.16,1,0.3,1) ${.1*n+.2}s`},children:[(0,t.jsx)("div",{style:{position:"absolute",top:-30,left:-30,width:120,height:120,borderRadius:"50%",background:`radial-gradient(circle, ${e.color}10, transparent)`,filter:"blur(20px)"}}),(0,t.jsx)("div",{style:{fontSize:32,marginBottom:12},children:e.icon}),(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:e.color,letterSpacing:1,textTransform:"uppercase"},children:e.subtitle}),(0,t.jsx)("h3",{style:{fontSize:22,fontWeight:800,color:"#fff",margin:"6px 0 10px"},children:e.title}),(0,t.jsx)("p",{style:{fontSize:13,color:"rgba(255,255,255,0.4)",lineHeight:1.6,margin:0},children:e.desc}),(0,t.jsx)("div",{style:{marginTop:16,padding:"6px 12px",borderRadius:8,background:`${e.color}10`,display:"inline-block",fontSize:11,fontWeight:700,color:e.color},children:e.stat})]},n))})]})})}function g(){let[e,r]=i();return(0,t.jsx)("section",{ref:e,style:{padding:"100px 24px",background:"linear-gradient(180deg, transparent, rgba(155,89,182,0.03), transparent)"},children:(0,t.jsxs)("div",{style:{maxWidth:800,margin:"0 auto",textAlign:"center"},children:[(0,t.jsxs)("div",{style:{opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:"all 1s cubic-bezier(0.16,1,0.3,1)"},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"#555",letterSpacing:3,textTransform:"uppercase",marginBottom:16},children:"The Algorithm"}),(0,t.jsx)("h2",{style:{fontSize:44,fontWeight:800},children:(0,t.jsx)("span",{style:{background:a,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Power Score Formula"})})]}),(0,t.jsxs)("div",{style:{marginTop:48,padding:40,borderRadius:20,background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.08)",backdropFilter:"blur(24px)",opacity:+!!r,transform:r?"translateY(0) scale(1)":"translateY(30px) scale(0.95)",transition:"all 1s cubic-bezier(0.16,1,0.3,1) 0.2s"},children:[(0,t.jsx)("div",{style:{fontFamily:'"Geist Mono", monospace',fontSize:20,fontWeight:700,background:a,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",marginBottom:32},children:"P = T × (0.45 + 0.055 × C) + R + B"}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:24},children:[{sym:"T",label:"Title",desc:"C-suite 10, VP 9, Director 7.5, Manager 6.5",note:"Multiplied by the company",color:o.S},{sym:"C",label:"Company",desc:"Well-known 7–10, else estimated from your network",note:"Weight 0.5 to 1.0",color:o.A},{sym:"R + B",label:"Reach & bridge",desc:"Investor, YC, an audience in the millions; a strong circle",note:"Up to +1.5 and +2",color:o.B}].map((e,n)=>(0,t.jsxs)("div",{style:{padding:16,borderRadius:12,background:`${e.color}08`,opacity:+!!r,transform:r?"translateY(0)":"translateY(20px)",transition:`all 0.8s cubic-bezier(0.16,1,0.3,1) ${.3+.1*n}s`},children:[(0,t.jsx)("div",{style:{fontSize:28,fontWeight:900,color:e.color},children:e.sym}),(0,t.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"#fff",marginTop:4},children:e.label}),(0,t.jsx)("div",{style:{fontSize:10,color:"#555",marginTop:4},children:e.desc}),(0,t.jsx)("div",{style:{fontSize:10,color:e.color,fontWeight:700,marginTop:8},children:e.note})]},n))})]}),(0,t.jsx)("div",{style:{marginTop:32,display:"flex",justifyContent:"center",gap:8,flexWrap:"wrap",opacity:+!!r,transition:"opacity 1s ease 0.6s"},children:[{t:"S",min:7.5,color:o.S},{t:"A",min:5.5,color:o.A},{t:"B",min:4,color:o.B},{t:"C",min:2.5,color:o.C},{t:"D",min:0,color:o.D}].map((e,r)=>(0,t.jsxs)("div",{style:{padding:"8px 16px",borderRadius:10,background:`${e.color}12`,border:`1px solid ${e.color}30`,fontSize:12,fontWeight:700,color:e.color},children:[e.t,"-Tier: ",e.min,"+"]},r))})]})})}function h(){let[e,r]=i();return(0,t.jsxs)("section",{ref:e,style:{padding:"100px 24px",position:"relative",overflow:"hidden"},children:[(0,t.jsx)("div",{style:{position:"absolute",inset:0,opacity:.15*!!r,transition:"opacity 2s ease"},children:Array.from({length:8}).map((e,r)=>(0,t.jsx)("div",{style:{position:"absolute",top:`${12+12*r}%`,left:0,right:0,height:1,background:`linear-gradient(to right, transparent, ${[o.S,o.A,o.B,"#fff"][r%4]}40, transparent)`,animation:`wave ${4+r}s ease-in-out infinite ${.3*r}s`}},r))}),(0,t.jsx)("div",{style:{maxWidth:700,margin:"0 auto",textAlign:"center",position:"relative",zIndex:2},children:(0,t.jsxs)("div",{style:{opacity:+!!r,transform:r?"translateY(0)":"translateY(40px)",transition:"all 1s cubic-bezier(0.16,1,0.3,1)"},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:700,color:"#ff5050",letterSpacing:3,textTransform:"uppercase",marginBottom:16},children:"The Theory"}),(0,t.jsxs)("h2",{style:{fontSize:44,fontWeight:800},children:[(0,t.jsx)("span",{style:{color:"#fff"},children:"Strings Connect"})," ",(0,t.jsx)("span",{style:{background:"linear-gradient(135deg, #ff5050, #FFD700)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Everything"})]}),(0,t.jsx)("p",{style:{fontSize:17,color:"rgba(255,255,255,0.45)",lineHeight:1.8,marginTop:24,maxWidth:560,margin:"24px auto 0"},children:"In string theory, fundamental particles are vibrating strings connected across dimensions. In social networks, people are nodes connected by invisible strings of trust, proximity, and shared experience."}),(0,t.jsx)("p",{style:{fontSize:17,color:"rgba(255,255,255,0.45)",lineHeight:1.8,marginTop:16,maxWidth:560,margin:"16px auto 0"},children:"Six degrees of separation isn’t just a theory — it’s the architecture of human connection. Every string vibrates with potential. Every bridge shortens the distance."}),(0,t.jsxs)("div",{style:{marginTop:48,padding:"24px 32px",borderRadius:16,background:"rgba(255,255,255,0.03)",border:"1px solid rgba(255,255,255,0.06)",fontStyle:"italic",color:"rgba(255,255,255,0.3)",fontSize:15,opacity:+!!r,transition:"opacity 1.5s ease 0.5s"},children:["“Everyone is connected to everyone else by six degrees or fewer. The question isn’t ",(0,t.jsx)("em",{children:"if"})," — it’s ",(0,t.jsx)("em",{children:"through whom"}),".”"]})]})})]})}function x(){let[e,r]=i();return(0,t.jsxs)("section",{ref:e,style:{padding:"100px 24px",textAlign:"center",position:"relative",overflow:"hidden"},children:[(0,t.jsx)("div",{style:{position:"absolute",inset:0,background:"radial-gradient(circle at 50% 80%, rgba(52,152,219,0.06) 0%, transparent 60%)"}}),(0,t.jsxs)("div",{style:{position:"relative",zIndex:2},children:[(0,t.jsxs)("div",{style:{opacity:+!!r,transform:r?"translateY(0) scale(1)":"translateY(40px) scale(0.95)",transition:"all 1.2s cubic-bezier(0.16,1,0.3,1)"},children:[(0,t.jsx)("h2",{style:{fontSize:"clamp(36px, 6vw, 64px)",fontWeight:800,lineHeight:1.1,background:a,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Map Your Universe"}),(0,t.jsx)("p",{style:{fontSize:18,color:"rgba(255,255,255,0.4)",marginTop:16,maxWidth:480,margin:"16px auto 0"},children:"Your network is your most valuable asset. Start seeing it for what it really is."}),(0,t.jsx)(n.default,{href:"/",style:{display:"inline-block",marginTop:40,padding:"16px 48px",borderRadius:14,fontSize:18,fontWeight:800,background:a,color:"#000",textDecoration:"none",boxShadow:"0 4px 32px rgba(255,215,0,0.3), 0 0 60px rgba(52,152,219,0.15)",animation:r?"cta-glow 3s ease-in-out infinite":"none"},children:"Enter the Galaxy"})]}),(0,t.jsxs)("div",{style:{marginTop:80,paddingTop:40,borderTop:"1px solid rgba(255,255,255,0.05)",display:"flex",justifyContent:"center",gap:32,flexWrap:"wrap",opacity:.4*!!r,transition:"opacity 1.5s ease 0.5s"},children:[(0,t.jsx)("span",{style:{fontSize:12,color:"#444"},children:"Built by Blake Burford"}),(0,t.jsx)("span",{style:{fontSize:12,color:"#444"},children:"Open source · MIT"}),(0,t.jsx)("span",{style:{fontSize:12,color:"#444"},children:"2026"})]})]})]})}function y(e,t,r){let n=43758.5453*Math.sin((e+1)*12.9898+(t+1)*78.233+37.719*r);return n-Math.floor(n)}e.s(["default",0,function(){return(0,t.jsxs)("div",{style:{background:"#0a0a1a",color:"#fff",overflowX:"hidden"},children:[(0,t.jsx)("style",{children:`
|
|
2
|
-
@keyframes pulse-dot {
|
|
3
|
-
0%, 100% { opacity: 1; transform: scale(1); }
|
|
4
|
-
50% { opacity: 0.4; transform: scale(0.6); }
|
|
5
|
-
}
|
|
6
|
-
@keyframes scroll-line {
|
|
7
|
-
0% { opacity: 0.3; transform: scaleY(1); }
|
|
8
|
-
50% { opacity: 0.8; transform: scaleY(1.3); }
|
|
9
|
-
100% { opacity: 0.3; transform: scaleY(1); }
|
|
10
|
-
}
|
|
11
|
-
@keyframes breathe {
|
|
12
|
-
0%, 100% { transform: scale(1); opacity: 0.7; }
|
|
13
|
-
50% { transform: scale(1.15); opacity: 1; }
|
|
14
|
-
}
|
|
15
|
-
@keyframes spin-ring {
|
|
16
|
-
from { transform: translate(-50%,-50%) rotate(0deg); }
|
|
17
|
-
to { transform: translate(-50%,-50%) rotate(360deg); }
|
|
18
|
-
}
|
|
19
|
-
@keyframes travel-dot {
|
|
20
|
-
0% { left: 0; }
|
|
21
|
-
50% { left: calc(100% - 6px); }
|
|
22
|
-
100% { left: 0; }
|
|
23
|
-
}
|
|
24
|
-
@keyframes wave {
|
|
25
|
-
0%, 100% { transform: translateY(0) scaleY(1); }
|
|
26
|
-
50% { transform: translateY(8px) scaleY(2); }
|
|
27
|
-
}
|
|
28
|
-
@keyframes cta-glow {
|
|
29
|
-
0%, 100% { box-shadow: 0 4px 32px rgba(255,215,0,0.3), 0 0 60px rgba(52,152,219,0.15); }
|
|
30
|
-
50% { box-shadow: 0 4px 48px rgba(255,215,0,0.5), 0 0 80px rgba(52,152,219,0.25); }
|
|
31
|
-
}
|
|
32
|
-
html { scroll-behavior: smooth; }
|
|
33
|
-
body { overflow-x: hidden; overflow-y: auto !important; }
|
|
34
|
-
|
|
35
|
-
@media (max-width: 900px) {
|
|
36
|
-
.galaxy-grid { grid-template-columns: 1fr !important; text-align: center; }
|
|
37
|
-
.galaxy-rings { width: 340px !important; height: 340px !important; }
|
|
38
|
-
}
|
|
39
|
-
@media (max-width: 768px) {
|
|
40
|
-
section { padding: 64px 16px !important; }
|
|
41
|
-
h2 { font-size: 28px !important; }
|
|
42
|
-
.chain-row { flex-direction: column !important; }
|
|
43
|
-
}
|
|
44
|
-
`}),(0,t.jsx)(s,{}),(0,t.jsx)(c,{}),(0,t.jsx)(d,{}),(0,t.jsx)(p,{}),(0,t.jsx)(u,{}),(0,t.jsx)(f,{}),(0,t.jsx)(g,{}),(0,t.jsx)(h,{}),(0,t.jsx)(x,{})]})}],10706)},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return b}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809),a=e.r(43476),l=o._(e.r(71645)),s=e.r(95057),c=e.r(8372),d=e.r(18581),p=e.r(18967),u=e.r(5550),f=e.r(88540),g=e.r(91949),h=e.r(73668),x=e.r(9396);function y(t){var r;let n,i,o,[y,b]=(0,l.useOptimistic)(g.IDLE_LINK_STATUS),v=(0,l.useRef)(null),{href:j,as:S,children:k,prefetch:w=null,passHref:T,replace:z,shallow:C,scroll:B,onClick:W,onMouseEnter:A,onTouchStart:R,legacyBehavior:E=!1,onNavigate:P,transitionTypes:F,ref:D,unstable_dynamicOnHover:I,...$}=t;n=k,E&&("string"==typeof n||"number"==typeof n)&&(n=(0,a.jsx)("a",{children:n}));let M=l.default.useContext(c.AppRouterContext),Y=!1!==w,O=!1===w?"none":!0===w?"full":"auto",_="none"!==O?"auto"===O?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,L="string"==typeof(r=S||j)?r:(0,s.formatUrl)(r);if(E){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=l.default.Children.only(n)}let N=E?i&&"object"==typeof i&&i.ref:D,U,H=l.default.useCallback(e=>(null!==M&&(v.current=(0,g.mountLinkInstance)(e,L,M,_,Y,b,U)),()=>{v.current&&((0,g.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,g.unmountPrefetchableInstance)(e)}),[Y,L,M,_,b,U]),X={ref:(0,d.useMergedRef)(H,N),onClick(t){E||"function"!=typeof W||W(t),E&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!M||t.defaultPrevented||function(t,r,n,i,o,a,s,c="none"){if("u">typeof window){let d,{nodeName:p}=t.currentTarget;if("A"===p.toUpperCase()&&((d=t.currentTarget.getAttribute("target"))&&"_self"!==d||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:u}=e.r(99781);l.default.startTransition(()=>{u(r,i?"replace":"push",!1===o?f.ScrollBehavior.NoScroll:f.ScrollBehavior.Default,n.current,s,c)})}}(t,L,v,z,B,P,F,O)},onMouseEnter(e){E||"function"!=typeof A||A(e),E&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),M&&Y&&(0,g.onNavigationIntent)(e.currentTarget,!0===I)},onTouchStart:function(e){E||"function"!=typeof R||R(e),E&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),M&&Y&&(0,g.onNavigationIntent)(e.currentTarget,!0===I)}};return(0,p.isAbsoluteUrl)(L)?X.href=L:E&&!T&&("a"!==i.type||"href"in i.props)||(X.href=(0,u.addBasePath)(L)),o=E?l.default.cloneElement(i,X):(0,a.jsx)("a",{...$,...X,children:n}),(0,a.jsx)(m.Provider,{value:y,children:o})}let m=(0,l.createContext)(g.IDLE_LINK_STATUS),b=()=>(0,l.useContext)(m);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return v},NormalizeError:function(){return m},PageNotFoundError:function(){return b},SP:function(){return h},ST:function(){return x},WEB_VITALS:function(){return o},execOnce:function(){return a},getDisplayName:function(){return p},getLocationOrigin:function(){return c},getURL:function(){return d},isAbsoluteUrl:function(){return s},isResSent:function(){return u},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return f},stringifyError:function(){return S}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let l=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,s=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&l.test(e)};function c(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function d(){let{href:e}=window.location,t=c();return e.substring(t.length)}function p(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function u(e){return e.finished||e.headersSent}function f(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function g(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await g(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&u(r))return n;if(!n)throw Object.defineProperty(Error(`"${p(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let h="u">typeof performance,x=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class m extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class v extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function S(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(18967),i=e.r(52817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return s},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return l}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function l(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}function s(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return c},urlObjectKeys:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809)._(e.r(98183)),a=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",l=e.hash||"",s=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(c+=":"+e.port)),s&&"object"==typeof s&&(s=String(o.urlQueryToSearchParams(s)));let d=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||a.test(n))&&!1!==c?(c="//"+(c||""),i&&"/"!==i[0]&&(i="/"+i)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),d&&"?"!==d[0]&&(d="?"+d),i=i.replace(/[?#]/g,encodeURIComponent),d=d.replace("#","%23"),`${n}${c}${i}${d}${l}`}let s=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function c(e){return l(e)}}]);
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2776,e=>{"use strict";var t=e.i(43476),r=e.i(15812);e.s(["default",0,function({children:e}){let{userId:n,ready:i}=(0,r.useUser)();return i&&n?e:(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff",padding:24,textAlign:"center",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:i?(0,t.jsxs)("div",{style:{maxWidth:420},children:[(0,t.jsx)("div",{style:{fontSize:18,fontWeight:700,marginBottom:8},children:"Can’t reach 6 Degrees’ local server"}),(0,t.jsx)("div",{style:{color:"#888",fontSize:14,lineHeight:1.6},children:"The page loaded but the app behind it is not answering. If you started it from a terminal, check that window for an error, then reload this page."})]}):(0,t.jsx)("div",{style:{fontSize:18,fontWeight:600},children:"Loading…"})})}])},28867,7214,86106,e=>{"use strict";var t=e.i(71645);let r={S:0,A:1,B:2,C:3,D:4};function n(e){let t=parseFloat(e?.power_score);return Number.isFinite(t)?t:0}function i(e){return Math.round(10*n(e))/10}function o(e){return String(e?.profile_url||"").split(/[?#]/)[0].replace(/\/+$/,"")||`id:${e?.id}`}let l=(e,t)=>String(e??"").localeCompare(String(t??""),void 0,{numeric:!0});function s(e,t){return(r[e.tier]??9)-(r[t.tier]??9)||n(t)-n(e)||String(e.name||"").localeCompare(String(t.name||""))||l(e.id,t.id)}function a(e,t){return e.bridge&&t.bridge?s(e.bridge,t.bridge):e.bridge?-1:t.bridge?1:l(e.id,t.id)}function d(e,t){return t.score-e.score||t.waysIn-e.waysIn||a(e.routes[0]||c,t.routes[0]||c)||String(e.person.name||"").localeCompare(String(t.person.name||""))||(e.key<t.key?-1:+(e.key>t.key))}let c={id:null,bridge:null};function u(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return t.length<2?t[0]||"":`${t[0]} ${t[t.length-1].charAt(0)}.`}function f(e,t){let r=String(e||"");return t<=1?r?"…":"":r.length>t?`${r.slice(0,t-1)}…`:r}e.s(["TIERS",0,["S","A","B","C","D"],"compareWaysIn",0,function(e,t){return t.waysIn-e.waysIn||d(e,t)},"keyFor",0,o,"routeIndex",0,function(e=[]){let t=new Map;for(let r of e||[]){let e=o(r),n=t.get(e);n||(n=new Set,t.set(e,n)),n.add(r.source_connection_id??null)}return t},"routesFor",0,function(e,t,r){return e?[...t?.get(o(e))??(null!=e.source_connection_id?new Set([e.source_connection_id]):new Set)].map(e=>({id:e,bridge:r?.get(e)??null})).sort(a):[]},"score1",0,i,"separationPeople",0,function(e=[],t=[]){let r=new Map;for(let e of t||[])r.set(e.id,e);let n=new Map,s=new Map;for(let t of e||[]){let e=o(t);s.set(t.id,e);let r=n.get(e);r?function(e,t){let r=i(e)-i(t);if(r)return r>0;let n=!!e.profile_image_url;return!!t.profile_image_url!==n?n:0>l(e.id,t.id)}(t,r.person)&&(r.person=t):(r={key:e,person:t,rowIds:[],routeIds:new Set},n.set(e,r)),r.rowIds.push(t.id),r.routeIds.add(t.source_connection_id??null)}let c={people:n.size,byTier:{S:0,A:0,B:0,C:0,D:0},multi:0,bridges:0,unresolvedIds:0,peopleOnlyUnresolved:0,onlyUnresolvedVia:0},u=new Set,f=new Set,p=new Set,g=[];for(let e of n.values()){let t=[...e.routeIds].map(e=>({id:e,bridge:r.get(e)??null}));t.sort(a);let n=t.filter(e=>e.bridge);for(let e of t)(e.bridge?u:f).add(e.id);if(!n.length)for(let e of(c.peopleOnlyUnresolved++,t))p.add(e.id);let{person:o}=e,l=o.tier;void 0!==c.byTier[l]&&c.byTier[l]++,t.length>1&&c.multi++,g.push({key:e.key,person:o,score:i(o),tier:l,routes:t,waysIn:t.length,rowIds:e.rowIds,haystack:[o.name,o.headline,o.company,o.role,...n.map(e=>e.bridge.name)].filter(Boolean).join("\n").toLowerCase(),rank:0,tied:!1})}return c.bridges=u.size,c.unresolvedIds=f.size,c.onlyUnresolvedVia=p.size,g.sort(d),function(e){for(let t=0;t<e.length;t++){let r=e[t],n=e[t-1],i=n&&n.score===r.score&&n.waysIn===r.waysIn;r.rank=i?n.rank:t+1,i&&(r.tied=!0,n.tied=!0)}}(g),{people:g,rowToKey:s,summary:c}},"shortName",0,u,"summitLayout",0,function(e=[],t=800,r=!1){let n=r?36:26,i=Math.round(.42*t),o=Math.round(.58*t),l=e.map((e,r)=>{var i;return{key:e.key,p:e,x:o,y:16+r*n,r:(i=e.waysIn)>=4?8.5:3===i?7:2===i?5.5:4,label:f(`#${e.rank}${e.tied?"=":""} ${e.person.name||""}`,Math.floor((t-o-60)/6.2))}}),a=new Map,d="\0unresolved";for(let e of l)for(let t of e.p.routes){let r=t.bridge?t.id:d,n=a.get(r);n||(n={id:t.bridge?t.id:null,bridge:t.bridge,unresolved:!t.bridge,ys:[],count:0},a.set(r,n)),n.count++,n.ys.push(e.y)}let c=[...a.values()].map(e=>({...e,bary:e.ys.reduce((e,t)=>e+t,0)/e.ys.length}));c.sort((e,t)=>e.bary-t.bary||e.unresolved-t.unresolved||(e.bridge&&t.bridge?s(e.bridge,t.bridge):0));let p=l.length?l[l.length-1].y:16,g=c.length>1?Math.max(18,(p-16)/(c.length-1)):0,h=Math.max(4,Math.floor((i-10-42)/6));c.forEach((e,t)=>{if(e.x=i,e.y=1===c.length?(16+p)/2:16+t*g,e.r=5,e.unresolved)e.label=f(`can't be named (${e.count})`,h);else{let t=e.bridge.name||"";e.label=t.length<=h?t:f(u(t),h)}delete e.ys});let x=new Map(c.map(e=>[e.unresolved?d:e.id,e])),b=[];for(let e of l){let t=new Set;e.p.routes.forEach((r,n)=>{let i=r.bridge?r.id:d;if(t.has(i))return;t.add(i);let o=x.get(i);b.push({key:e.key,bridgeId:o.id,primary:0===n&&!o.unresolved,unresolved:o.unresolved,tier:o.bridge?.tier??null,x1:o.x,y1:o.y,x2:e.x,y2:e.y})})}let y=Math.max(p,c.length?c[c.length-1].y:0),m=l.length?Math.ceil(y+16):0,S={x:20,y:l.length?(16+Math.max(p,y))/2:16,r:14},v=c.map(e=>({id:e.id,x1:S.x,y1:S.y,x2:e.x,y2:e.y}));return{width:t,height:m,you:S,people:l,bridges:c,links:b,spokes:v}}],7214);let p=Object.freeze({known:!1,sent:new Set,mine:new Map,version:0}),g=new Set,h=p,x=null,b=new Map;function y(e=h.sent,t=h.known){for(let r of(h=Object.freeze({known:t,sent:e,mine:new Map(b),version:h.version+1}),[...g]))r()}function m(e){return g.add(e),x||h.known||(x=fetch("/api/outreach").then(e=>e.ok?e.json():null).then(e=>{e&&y(new Set((e.pending||[]).map(o)),!0)}).catch(()=>{}).finally(()=>{x=null})),()=>g.delete(e)}function S(){return h}async function v(e){let t=await fetch("/api/outreach",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),r=await t.json().catch(()=>({}));if(!t.ok)throw Error(r.error||"Could not save that.");return r}async function k(e,{bridgeId:t}={}){let r=o(e),n=b.has(r)?b.get(r):void 0;b.set(r,!0),y();try{return await v({action:"mark-sent",connectionId:e.id,profileUrl:e.profile_url,bridgeId:t})}catch(e){throw void 0===n?b.delete(r):b.set(r,n),y(),e}}async function j(e){let t=o(e),r=b.has(t)?b.get(t):void 0;b.set(t,!1),y();try{return await v({action:"undo",connectionId:e.id,profileUrl:e.profile_url})}catch(e){throw void 0===r?b.delete(t):b.set(t,r),y(),e}}e.s(["REQUESTS_UNKNOWN",0,p,"hasRequest",0,function(e,t=h){if(!e)return!1;let r=o(e);return t.mine.has(r)?t.mine.get(r):t.known?t.sent.has(r):"pending"===e.unlock_status||"sent"===e.outreach_status},"markRequested",0,k,"requestCount",0,function(e=h){let t=new Set(e.known?e.sent:[]);for(let[r,n]of e.mine)n?t.add(r):t.delete(r);return t.size},"requestsNow",0,S,"undoRequest",0,j,"watchRequests",0,m],86106),e.s(["default",0,function(){return(0,t.useSyncExternalStore)(m,S,()=>p)}],28867)},77305,e=>{"use strict";var t=e.i(43476),r=e.i(71645),n=e.i(19821),i=e.i(64745),o=e.i(22016);let l={S:25,A:15,B:10,C:5,D:2},s={S:100,A:60,B:35,C:15,D:5};var a=e.i(5258);let d={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},c="1px solid rgba(255,255,255,0.1)";function u({person:e,size:r=36,ring:n}){let i=d[e?.tier]||"#667";return(0,t.jsxs)("div",{style:{position:"relative",width:r,height:r,flexShrink:0},children:[(0,t.jsx)("div",{style:{width:r,height:r,borderRadius:"50%",background:i,color:e?.tier==="S"?"#000":"#fff",display:"flex",alignItems:"center",justifyContent:"center",fontSize:.34*r,fontWeight:800,border:`2px solid ${n||i}`},children:(0,a.initialsFor)(e?.name||"?")}),e?.profile_image_url&&(0,t.jsx)("img",{src:e.profile_image_url,alt:"",onError:e=>{e.currentTarget.style.display="none"},style:{position:"absolute",inset:0,width:r,height:r,borderRadius:"50%",objectFit:"cover",border:`2px solid ${n||i}`}})]})}function f({progress:e,size:r=86,color:n="#FF6B35",children:i}){let o=r/2-5,l=2*Math.PI*o;return(0,t.jsxs)("div",{style:{position:"relative",width:r,height:r},children:[(0,t.jsxs)("svg",{width:r,height:r,style:{position:"absolute",inset:0,transform:"rotate(-90deg)"},children:[(0,t.jsx)("circle",{cx:r/2,cy:r/2,r:o,fill:"none",stroke:"rgba(255,255,255,0.08)",strokeWidth:5}),(0,t.jsx)("circle",{cx:r/2,cy:r/2,r:o,fill:"none",stroke:n,strokeWidth:5,strokeLinecap:"round",strokeDasharray:`${l*Math.min(1,e)} ${l}`,style:{transition:"stroke-dasharray 0.5s ease"}})]}),(0,t.jsx)("div",{style:{position:"absolute",inset:9,display:"flex",alignItems:"center",justifyContent:"center"},children:i})]})}function p({recs:e,sentIds:n,added:i,mappedIds:a,onSend:x,onUndo:b}){let y=(0,r.useMemo)(()=>(function({recs:e=[],sentIds:t=new Set,added:r=[],mappedIds:n=new Set}){var i;let o,a,d,c=new Map,u=new Set;for(let t of[...e].sort((e,t)=>(t.priority||0)-(e.priority||0))){if(!t.bridge)continue;let e=`${t.bridge.id}|${t.profile_url||t.id}`;if(u.has(e))continue;u.add(e);let r=c.get(t.bridge.id);r||(r={bridge:t.bridge,people:[]},c.set(t.bridge.id,r)),r.people.push(t)}let f=new Map;for(let e of r){let t=e.unlocked_from_bridge_id;t&&f.set(t,[...f.get(t)||[],e])}let p=[],g=0,h=0;for(let{bridge:e,people:r}of c.values()){let n=r.filter(e=>t.has(e.id)),i=f.get(e.id)||[];h+=n.length,g+=n.reduce((e,t)=>e+(l[t.tier]||2),0),g+=i.reduce((e,t)=>e+(s[t.tier]||5),0);let o=Math.ceil(r.length/5)||1,a=0;for(;a<o-1&&r.slice(5*a,(a+1)*5).every(e=>t.has(e.id));)a++;let d=r.slice(5*a,(a+1)*5),c=d.filter(e=>t.has(e.id)).length,u=c===d.length&&a===o-1;p.push({bridge:e,people:r,stage:a+1,stages:o,targets:d,done:c,progress:d.length?c/d.length:1,complete:u,sent:n.length,added:i,value:d.filter(e=>!t.has(e.id)).reduce((e,t)=>e+(t.priority||0),0),open:{S:d.filter(e=>"S"===e.tier&&!t.has(e.id)).length,A:d.filter(e=>"A"===e.tier&&!t.has(e.id)).length}})}p.sort((e,t)=>e.complete-t.complete||(t.progress>0&&t.progress<1)-(e.progress>0&&e.progress<1)||t.progress-e.progress||t.value-e.value);let x=p.filter(e=>!e.complete).flatMap(e=>e.targets.filter(e=>!t.has(e.id)).map(t=>({person:t,cluster:e,score:(t.priority||0)*(1+.6*e.progress)}))).sort((e,t)=>t.score-e.score),b=new Set,y=[];for(let e of x){let t=e.person.profile_url||e.person.id;if(!b.has(t)&&(b.add(t),y.push(e),3===y.length))break}let m=r.filter(e=>e.unlocked_from_bridge_id).length;return{clusters:p,nextMoves:y,points:g,level:(a=((o=Math.floor(Math.sqrt(Math.max(0,i=g)/40))+1)-1)**2*40,d=o**2*40,{level:o,floor:a,next:d,progress:(i-a)/(d-a)}),sentTotal:h,addedTotal:m,newDoors:r.filter(e=>e.unlocked_from_bridge_id&&!n.has(e.id)),clearedStages:p.reduce((e,t)=>e+(t.stage-1)+ +!!t.complete,0)}})({recs:e,sentIds:n,added:i,mappedIds:a}),[e,n,i,a]),[m,S]=(0,r.useState)(null),[v,k]=(0,r.useState)(null),{level:j}=y;async function w(e,t){await x(e);let r=t.done+1,n=String(t.bridge.name||"").split(/[\s,]+/)[0];k(r>=t.targets.length?`+${l[e.tier]||2} \xb7 Stage ${t.stage} of ${n}'s circle cleared — the next 5 are up`:`+${l[e.tier]||2} \xb7 ${n}'s circle ${r}/${t.targets.length}`),setTimeout(()=>k(null),3500)}let _=y.clusters.find(e=>e.bridge.id===m);return(0,t.jsxs)("div",{style:{maxWidth:1100,margin:"0 auto",padding:"16px 20px 60px"},children:[(0,t.jsxs)("div",{style:{display:"flex",gap:16,alignItems:"center",flexWrap:"wrap",padding:16,borderRadius:12,border:c,background:"linear-gradient(135deg, rgba(255,107,53,0.10), rgba(155,89,182,0.08))"},children:[(0,t.jsxs)("div",{style:{width:64,height:64,borderRadius:16,background:"linear-gradient(135deg, #FFD700, #FF6B35)",color:"#000",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},children:[(0,t.jsx)("div",{style:{fontSize:10,fontWeight:800},children:"LEVEL"}),(0,t.jsx)("div",{style:{fontSize:26,fontWeight:900,lineHeight:1},children:j.level})]}),(0,t.jsxs)("div",{style:{flex:1,minWidth:220},children:[(0,t.jsxs)("div",{style:{fontSize:13,color:"#dfe6e9"},children:[(0,t.jsx)("b",{children:y.points})," points · ",(0,t.jsx)("b",{children:j.next-y.points})," to level ",j.level+1]}),(0,t.jsx)("div",{style:{height:8,borderRadius:4,background:"rgba(255,255,255,0.08)",marginTop:6,overflow:"hidden"},children:(0,t.jsx)("div",{style:{height:"100%",width:`${Math.round(100*j.progress)}%`,background:"linear-gradient(90deg, #FFD700, #FF6B35)",transition:"width 0.5s"}})}),(0,t.jsx)("div",{style:{fontSize:11.5,color:"#8b9a9a",marginTop:6},children:"Points come from invites you send and people who accept — not from browsing."})]}),[[y.sentTotal,"invites sent"],[y.addedTotal,"people added"],[y.clearedStages,"stages cleared"]].map(([e,r])=>(0,t.jsxs)("div",{style:{textAlign:"center",minWidth:80},children:[(0,t.jsx)("div",{style:{fontSize:24,fontWeight:900},children:e}),(0,t.jsx)("div",{style:{fontSize:11,color:"#8b9a9a"},children:r})]},r))]}),y.newDoors.length>0&&(0,t.jsxs)("div",{style:{marginTop:12,padding:"10px 14px",borderRadius:10,border:"1px solid rgba(0,255,136,0.3)",background:"rgba(0,255,136,0.06)",fontSize:13},children:["🚪 ",(0,t.jsxs)("b",{children:[y.newDoors.length," new ",1===y.newDoors.length?"door":"doors",":"]})," people you added through a circle, whose own circle isn’t mapped yet. That’s the next degree. ",(0,t.jsx)(o.default,{href:"/setup",style:{color:"#00ff88"},children:"Map them on the Scan page →"})]}),y.nextMoves.length>0&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h3",{style:{margin:"22px 0 10px",fontSize:15},children:"Next best moves"}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(300px, 1fr))",gap:12},children:y.nextMoves.map(({person:e,cluster:r},n)=>(0,t.jsxs)("div",{style:{padding:14,borderRadius:12,border:`1px solid ${d[e.tier]}55`,background:"rgba(255,255,255,0.03)",position:"relative"},children:[(0,t.jsxs)("div",{style:{position:"absolute",top:10,right:12,fontSize:11,fontWeight:800,color:"#FF6B35"},children:["#",n+1]}),(0,t.jsxs)("div",{style:{display:"flex",gap:10,alignItems:"center"},children:[(0,t.jsx)(u,{person:e,size:44}),(0,t.jsxs)("div",{style:{minWidth:0},children:[(0,t.jsx)("div",{style:{fontWeight:700,fontSize:14},children:e.name}),(0,t.jsx)("div",{style:{fontSize:11.5,color:"#8b9a9a",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:220},children:e.headline})]})]}),(0,t.jsxs)("div",{style:{fontSize:11.5,color:"#aab7b7",margin:"10px 0"},children:["via ",(0,t.jsx)("b",{style:{color:d[r.bridge.tier]},children:r.bridge.name})," · their circle ",r.done,"/",r.targets.length," this stage"]}),(0,t.jsxs)("div",{style:{display:"flex",gap:8},children:[e.profile_url&&(0,t.jsx)("a",{href:e.profile_url,target:"_blank",rel:"noopener noreferrer",style:h,children:"Open on LinkedIn"}),(0,t.jsxs)("button",{onClick:()=>w(e,r),style:g,children:["I sent an invite · +",l[e.tier]||2]})]})]},e.id))})]}),(0,t.jsx)("h3",{style:{margin:"26px 0 4px",fontSize:15},children:"Circles to work through"}),(0,t.jsxs)("div",{style:{fontSize:12,color:"#8b9a9a",marginBottom:12},children:["Each is one of your connections and the best people they know, ",5," at a time. Fill the ring to clear a stage."]}),(0,t.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(190px, 1fr))",gap:12},children:y.clusters.map(e=>{let r=m===e.bridge.id;return(0,t.jsxs)("button",{onClick:()=>S(r?null:e.bridge.id),style:{padding:12,borderRadius:12,cursor:"pointer",textAlign:"center",color:"#fff",border:r?"1px solid #FF6B35":c,background:e.complete?"rgba(0,255,136,0.06)":"rgba(255,255,255,0.03)",display:"flex",flexDirection:"column",alignItems:"center",gap:6},children:[(0,t.jsx)(f,{progress:e.progress,color:e.complete?"#00ff88":"#FF6B35",children:(0,t.jsx)(u,{person:e.bridge,size:60})}),(0,t.jsx)("div",{style:{fontWeight:700,fontSize:13,maxWidth:170,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.bridge.name}),(0,t.jsx)("div",{style:{fontSize:11,color:e.complete?"#00ff88":"#aab7b7"},children:e.complete?"Circle cleared":`Stage ${e.stage} of ${e.stages} \xb7 ${e.done}/${e.targets.length}`}),(0,t.jsx)("div",{style:{display:"flex",gap:4},children:e.targets.map(e=>(0,t.jsx)("span",{title:e.name,style:{width:12,height:12,borderRadius:"50%",border:`2px solid ${d[e.tier]||"#667"}`,background:n.has(e.id)?d[e.tier]||"#667":"transparent"}},e.id))}),(0,t.jsxs)("div",{style:{fontSize:10.5,color:"#778"},children:[e.open.S?`${e.open.S} S \xb7 `:"",e.open.A?`${e.open.A} A \xb7 `:"",e.people.length," worth adding",e.added.length?` \xb7 ★ ${e.added.length} added`:""]})]},e.bridge.id)})}),_&&(0,t.jsxs)("div",{style:{marginTop:14,padding:16,borderRadius:12,border:"1px solid rgba(255,107,53,0.4)",background:"rgba(255,107,53,0.05)"},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginBottom:10},children:[(0,t.jsx)(u,{person:_.bridge,size:40}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{style:{fontWeight:800},children:[_.bridge.name,"’s circle · stage ",_.stage," of ",_.stages]}),(0,t.jsxs)("div",{style:{fontSize:12,color:"#aab7b7"},children:["Ask ",_.bridge.name?.split(" ")[0]," for an intro, or invite them directly. Mark each one when it’s sent."]})]})]}),_.targets.map(e=>{let r=n.has(e.id);return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 0",borderTop:"1px solid rgba(255,255,255,0.05)"},children:[(0,t.jsx)(u,{person:e,size:34,ring:r?"#00ff88":void 0}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsxs)("div",{style:{fontWeight:600,fontSize:13},children:[e.name," ",(0,t.jsx)("span",{style:{color:d[e.tier],fontSize:11},children:e.tier})]}),(0,t.jsx)("div",{style:{fontSize:11.5,color:"#8b9a9a",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.headline})]}),e.profile_url&&(0,t.jsx)("a",{href:e.profile_url,target:"_blank",rel:"noopener noreferrer",style:h,children:"LinkedIn"}),r?(0,t.jsx)("button",{onClick:()=>b(e),style:{...h,color:"#00ff88"},children:"Sent ✓ (undo)"}):(0,t.jsxs)("button",{onClick:()=>w(e,_),style:g,children:["Sent · +",l[e.tier]||2]})]},e.id)}),_.added.length>0&&(0,t.jsxs)("div",{style:{marginTop:10,fontSize:12,color:"#00ff88"},children:["★ Added from this circle: ",_.added.map(e=>e.name).join(", ")]})]}),v&&(0,t.jsx)("div",{role:"status",style:{position:"fixed",bottom:24,left:"50%",transform:"translateX(-50%)",padding:"10px 18px",borderRadius:24,background:"linear-gradient(135deg, #FFD700, #FF6B35)",color:"#000",fontWeight:800,fontSize:13,boxShadow:"0 8px 30px rgba(0,0,0,0.5)",zIndex:50},children:v})]})}let g={padding:"7px 12px",borderRadius:8,border:"none",cursor:"pointer",fontWeight:800,fontSize:12,background:"linear-gradient(135deg, #FF6B35, #FFD700)",color:"#000"},h={padding:"7px 12px",borderRadius:8,border:c,cursor:"pointer",fontWeight:600,fontSize:12,background:"rgba(255,255,255,0.05)",color:"#dfe6e9",textDecoration:"none"};var x=e.i(2776),b=e.i(15812),y=e.i(90179),m=e.i(28867),S=e.i(86106),v=e.i(7214);let k={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"};function j(){let{userId:e,userProfile:l}=(0,b.useUser)(),s=l?.sectors||[],[a,d]=(0,r.useState)([]),[c,u]=(0,r.useState)(!0),[f,g]=(0,r.useState)("all"),[h,x]=(0,r.useState)(new Set),j=(0,m.default)(),[w,_]=(0,r.useState)([]),[F,z]=(0,r.useState)({}),[C,B]=(0,r.useState)("quest"),[R,I]=(0,r.useState)([]),[A,$]=(0,r.useState)(()=>new Set),[T,W]=(0,r.useState)(null),[O,E]=(0,r.useState)(()=>{{let e=new URLSearchParams(window.location.search);if(e.get("groupBy"))return e.get("groupBy")}return"bridge"});(0,r.useEffect)(()=>{{let e=new URLSearchParams(window.location.search).get("bridge");e&&W(e)}},[]),(0,r.useEffect)(()=>{!i.IS_DEMO&&e&&t();async function t(){let[t,r]=await Promise.all([(0,n.loadNetwork)(e),fetch(`/api/outreach?userId=${e}`).then(e=>e.json()).catch(()=>({pending:[]}))]),i=t.degree1,o=t.degree2;I(i.filter(e=>e.unlocked_from_bridge_id)),$(new Set(o.map(e=>e.source_connection_id).filter(Boolean)));let l=new Set(i.map(e=>e.profile_url)),a={};i.forEach(e=>{a[e.id]=e}),_(r.pending||[]),z(a),d(o.filter(e=>("S"===e.tier||"A"===e.tier||"B"===e.tier)&&!l.has(e.profile_url)).map(e=>{let t,r,n=a[e.source_connection_id],i=(t=parseFloat(e.power_score)||0,r=(e.headline||"").toLowerCase(),(0,y.rowCompanyScore)(e)>=y.TOP_COMPANY&&(t+=1),(s||[]).forEach(e=>{r.includes(e.toLowerCase())&&(t+=.5)}),"S"===e.tier?t*=1.5:"A"===e.tier&&(t*=1.2),t),o="S"===e.tier?50:"A"===e.tier?25:10;return{...e,bridge:n,priority:i,xp:o}}).sort((e,t)=>t.priority-e.priority)),u(!1)}},[e]);let D=(0,r.useMemo)(()=>new Set([...w,...a].filter(e=>(0,S.hasRequest)(e,j)).map(e=>e.id)),[w,a,j]),M=(0,r.useMemo)(()=>{let e=new Set,t=[];for(let r of[...w,...a]){let n=(0,v.keyFor)(r);!e.has(n)&&(0,S.hasRequest)(r,j)&&(e.add(n),t.push({...r,bridge:F[r.source_connection_id]||r.bridge||null}))}return t},[w,a,j,F]);if(i.IS_DEMO)return(0,t.jsxs)("div",{style:{minHeight:"100vh",background:"#0a0a1a",color:"rgba(255,255,255,0.7)",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10,textAlign:"center",padding:24},children:[(0,t.jsx)("h2",{style:{margin:0,fontSize:18,fontWeight:700,color:"#fff"},children:"Not part of the demo"}),(0,t.jsx)("div",{style:{fontSize:13},children:"The public demo includes the Network Circle and Degrees views only."}),(0,t.jsx)(o.default,{href:"/",style:{fontSize:12,color:"rgba(255,255,255,0.5)",textDecoration:"none"},children:"← Back to the network"})]});let P="all"===f?a:a.filter(e=>e.tier===f);T&&(P=P.filter(e=>e.bridge?.id===T));let L={S:0,A:0,B:0};a.forEach(e=>{void 0!==L[e.tier]&&L[e.tier]++});let U={};P.forEach(e=>{let t;U[t="bridge"===O?e.bridge?.id||"unknown":"company"===O?(e.company||"Unknown").trim()||"Unknown":e.tier]||(U[t]=[]),U[t].push(e)});let N={S:0,A:1,B:2},q=Object.entries(U).sort((e,t)=>{if("tier"===O)return(N[e[0]]||9)-(N[t[0]]||9);if("bridge"===O){let r=e[1][0]?.bridge,n=t[1][0]?.bridge,i=N[r?.tier]??9,o=N[n?.tier]??9;if(i!==o)return i-o}return t[1].length-e[1].length});function K(e){x(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})}return c?(0,t.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff"},children:"Loading..."}):(0,t.jsxs)("div",{style:{height:"100vh",background:"#0a0a1a",color:"#fff",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',display:"flex",flexDirection:"column",overflow:"hidden"},children:[(0,t.jsxs)("header",{style:{padding:"14px 24px",borderBottom:"1px solid rgba(255,255,255,0.1)",flexShrink:0},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginBottom:10},children:[(0,t.jsxs)(o.default,{href:"/",style:{display:"flex",alignItems:"center",gap:6,color:"#888",textDecoration:"none",fontSize:13,fontWeight:600,padding:"6px 14px",borderRadius:6,background:"rgba(255,255,255,0.06)",border:"1px solid rgba(255,255,255,0.1)"},children:[(0,t.jsx)("span",{style:{fontSize:16},children:"←"})," Map"]}),(0,t.jsx)("h1",{style:{fontSize:20,fontWeight:700,margin:0,background:"linear-gradient(135deg, #FF6B35, #FFD700)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Outlink"}),(0,t.jsxs)("div",{style:{display:"flex",gap:2,background:"rgba(255,255,255,0.06)",borderRadius:6,padding:2},children:[(0,t.jsx)("button",{onClick:()=>B("quest"),style:{padding:"5px 12px",borderRadius:4,border:"none",fontSize:11,fontWeight:700,cursor:"pointer",background:"quest"===C?"linear-gradient(135deg, #FFD700, #FF6B35)":"transparent",color:"quest"===C?"#000":"#FFD700"},children:"Circles"}),(0,t.jsxs)("button",{onClick:()=>B("recs"),style:{padding:"5px 12px",borderRadius:4,border:"none",fontSize:11,fontWeight:600,cursor:"pointer",background:"recs"===C?"#fff":"transparent",color:"recs"===C?"#000":"#888"},children:["To Add (",a.length,")"]}),(0,t.jsxs)("button",{onClick:()=>B("pending"),style:{padding:"5px 12px",borderRadius:4,border:"none",fontSize:11,fontWeight:600,cursor:"pointer",background:"pending"===C?"linear-gradient(135deg, #FF6B35, #FFD700)":"transparent",color:"pending"===C?"#000":"#FF6B35"},children:["Pending (",M.length,")"]})]}),(0,t.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:6},children:"recs"===C&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:()=>E("tier"),style:{padding:"4px 10px",borderRadius:4,border:"none",fontSize:10,fontWeight:600,cursor:"pointer",background:"tier"===O?"rgba(255,255,255,0.15)":"rgba(255,255,255,0.05)",color:"tier"===O?"#fff":"#666"},children:"By Tier"}),(0,t.jsx)("button",{onClick:()=>E("bridge"),style:{padding:"4px 10px",borderRadius:4,border:"none",fontSize:10,fontWeight:600,cursor:"pointer",background:"bridge"===O?"rgba(255,255,255,0.15)":"rgba(255,255,255,0.05)",color:"bridge"===O?"#fff":"#666"},children:"By Bridge"}),(0,t.jsx)("button",{onClick:()=>E("company"),style:{padding:"4px 10px",borderRadius:4,border:"none",fontSize:10,fontWeight:600,cursor:"pointer",background:"company"===O?"rgba(255,255,255,0.15)":"rgba(255,255,255,0.05)",color:"company"===O?"#fff":"#666"},children:"By Company"})]})})]}),(0,t.jsx)("div",{style:{display:"quest"===C?"none":"flex",gap:6},children:[{k:"all",l:`All (${a.length})`},{k:"S",l:`S (${L.S})`,c:k.S},{k:"A",l:`A (${L.A})`,c:k.A},{k:"B",l:`B (${L.B})`,c:k.B}].map(e=>(0,t.jsx)("button",{onClick:()=>g(e.k),style:{padding:"4px 12px",borderRadius:16,border:"none",fontSize:11,fontWeight:600,cursor:"pointer",background:f===e.k?e.c||"#fff":"rgba(255,255,255,0.06)",color:f===e.k?"#000":e.c||"#888"},children:e.l},e.k))})]}),"recs"===C&&h.size>0&&(0,t.jsxs)("div",{style:{padding:"10px 24px",background:"rgba(255,215,0,0.08)",borderBottom:"1px solid rgba(255,215,0,0.2)",display:"flex",alignItems:"center",gap:12,flexShrink:0},children:[(0,t.jsxs)("span",{style:{fontSize:12,color:"#FFD700",fontWeight:600},children:[h.size," selected"]}),(0,t.jsxs)("button",{onClick:function(){let e=P.filter(e=>h.has(e.id));if(0===e.length)return;if(1===e.length)return void window.open(e[0].profile_url,"_blank");let t=new Blob([`<!DOCTYPE html><html><head><title>Outlink — ${e.length} profiles</title>
|
|
2
|
-
<style>body{background:#0a0a1a;color:#fff;font-family:-apple-system,sans-serif;padding:24px;margin:0}
|
|
3
|
-
h2{color:#FFD700;margin-bottom:4px}p{color:#888;font-size:13px;margin-bottom:16px}
|
|
4
|
-
.btn{display:block;padding:12px 16px;margin-bottom:6px;background:rgba(255,255,255,0.06);
|
|
5
|
-
border:1px solid rgba(255,255,255,0.1);border-radius:8px;color:#fff;text-decoration:none;
|
|
6
|
-
font-size:13px;transition:background 0.15s}.btn:hover{background:rgba(0,119,181,0.2)}
|
|
7
|
-
.name{font-weight:700}.tier{font-size:11px;margin-left:8px;font-weight:600}
|
|
8
|
-
.open-all{display:inline-block;padding:12px 24px;background:linear-gradient(135deg,#FFD700,#FF6B35);
|
|
9
|
-
color:#000;border-radius:8px;font-weight:700;font-size:14px;cursor:pointer;border:none;margin-bottom:20px}</style></head>
|
|
10
|
-
<body><h2>Open ${e.length} Profiles</h2>
|
|
11
|
-
<p>Click each link or use the button below to open all at once.</p>
|
|
12
|
-
<button class="open-all" onclick="document.querySelectorAll('.btn').forEach((a,i)=>setTimeout(()=>a.click(),i*300))">
|
|
13
|
-
Open All (${e.length})</button>
|
|
14
|
-
${e.map(e=>{let t="S"===e.tier?"#FFD700":"A"===e.tier?"#9B59B6":"#3498DB";return'<a class="btn" href="'+e.profile_url+'" target="_blank"><span class="name">'+(e.name||"")+'</span><span class="tier" style="color:'+t+'">'+e.tier+" · "+parseFloat(e.power_score||0).toFixed(1)+'</span><br><span style="color:#666;font-size:11px">'+(e.headline||"").substring(0,60)+"</span></a>"}).join("")}
|
|
15
|
-
</body></html>`],{type:"text/html"});window.open(URL.createObjectURL(t),"_blank")},style:{padding:"6px 16px",borderRadius:6,border:"none",cursor:"pointer",background:"#0077B5",color:"#fff",fontWeight:700,fontSize:12},children:["Open ",h.size," on LinkedIn"]}),(0,t.jsxs)("span",{style:{fontSize:10,color:"#888"},children:["+",P.filter(e=>h.has(e.id)).reduce((e,t)=>e+t.xp,0)," XP potential"]}),(0,t.jsx)("button",{onClick:()=>x(new Set),style:{marginLeft:"auto",background:"none",border:"none",color:"#888",cursor:"pointer",fontSize:11},children:"Clear"})]}),"quest"===C&&(0,t.jsx)("div",{style:{flex:1,overflow:"auto"},children:(0,t.jsx)(p,{recs:a,sentIds:D,added:R,mappedIds:A,onSend:e=>(0,S.markRequested)(e,{bridgeId:e.source_connection_id}).catch(()=>{}),onUndo:e=>(0,S.undoRequest)(e).catch(()=>{})})}),"quest"!==C&&(0,t.jsx)("div",{style:{flex:1,overflow:"auto",padding:"12px 24px"},children:(0,t.jsxs)("div",{style:{maxWidth:700,margin:"0 auto"},children:["pending"===C&&(0,t.jsx)(t.Fragment,{children:0===M.length?(0,t.jsxs)("div",{style:{textAlign:"center",padding:40,color:"#555"},children:[(0,t.jsx)("div",{style:{fontSize:32,marginBottom:8},children:"⏳"}),(0,t.jsx)("div",{style:{fontSize:14,fontWeight:600},children:"No pending requests"}),(0,t.jsx)("div",{style:{fontSize:11,color:"#444",marginTop:4},children:'Click "Add" on someone to track your outreach'})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{style:{fontSize:10,color:"#666",marginBottom:12},children:"Waiting for response. When they accept, their cluster unlocks for bridging."}),M.map(e=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 12px",marginBottom:4,background:"rgba(255,107,53,0.04)",borderRadius:8,border:"1px solid rgba(255,107,53,0.1)"},children:[e.profile_image_url?(0,t.jsx)("img",{src:e.profile_image_url,alt:"",style:{width:36,height:36,borderRadius:"50%",objectFit:"cover",flexShrink:0,border:`2px solid ${k[e.tier]||"#555"}`},onError:e=>{e.target.style.display="none"}}):(0,t.jsx)("div",{style:{width:36,height:36,borderRadius:"50%",flexShrink:0,fontSize:14,fontWeight:700,background:k[e.tier]||"#555",color:"S"===e.tier?"#000":"#fff",display:"flex",alignItems:"center",justifyContent:"center"},children:e.name?.charAt(0)}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:600},children:e.name}),(0,t.jsx)("div",{style:{fontSize:10,color:"#888",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.headline?.substring(0,55)}),e.bridge&&(0,t.jsxs)("div",{style:{fontSize:9,color:"#FF6B35",marginTop:2},children:["via ",e.bridge.name?.split(" ")[0]," · unlocks bridge cluster"]})]}),(0,t.jsxs)("div",{style:{textAlign:"center",flexShrink:0},children:[(0,t.jsx)("div",{style:{fontSize:10,fontWeight:800,color:k[e.tier],padding:"2px 8px",borderRadius:4,background:`${k[e.tier]||"#555"}15`},children:e.tier}),(0,t.jsx)("div",{style:{fontSize:8,color:"#FF6B35",marginTop:2,fontWeight:600},children:"PENDING"})]}),(0,t.jsxs)("div",{style:{display:"flex",gap:4,flexShrink:0},children:[(0,t.jsx)("a",{href:e.profile_url,target:"_blank",rel:"noopener noreferrer",style:{padding:"4px 8px",borderRadius:4,fontSize:9,fontWeight:700,background:"#0077B5",color:"#fff",textDecoration:"none"},children:"View"}),(0,t.jsx)("button",{onClick:()=>{(0,S.undoRequest)(e).catch(()=>{})},style:{padding:"4px 8px",borderRadius:4,fontSize:9,fontWeight:600,background:"rgba(255,255,255,0.06)",color:"#666",border:"none",cursor:"pointer"},children:"Undo"})]})]},e.id))]})}),"recs"===C&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:8},children:[(0,t.jsx)("input",{type:"checkbox",checked:h.size===P.length&&P.length>0,onChange:function(){h.size===P.length?x(new Set):x(new Set(P.map(e=>e.id)))},style:{cursor:"pointer"}}),(0,t.jsxs)("span",{style:{fontSize:10,color:"#666"},children:["Select all (",P.length,")"]})]}),q.map(([e,r])=>(0,t.jsxs)("div",{style:{marginBottom:16},children:["bridge"===O?(()=>{let e=r[0]?.bridge;if(!e)return null;let n=r.filter(e=>"S"===e.tier).length,i=r.filter(e=>"A"===e.tier).length,o=r.filter(e=>"B"===e.tier).length,l=3*n+2*i+o;return(0,t.jsxs)("div",{style:{padding:"10px 12px",marginBottom:6,borderRadius:8,background:`${k[e.tier]||"#555"}08`,border:`1px solid ${k[e.tier]||"#555"}20`},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e.profile_image_url?(0,t.jsx)("img",{src:e.profile_image_url,alt:"",style:{width:36,height:36,borderRadius:"50%",objectFit:"cover",border:`2px solid ${k[e.tier]}`},onError:e=>{e.target.style.display="none"}}):(0,t.jsx)("div",{style:{width:36,height:36,borderRadius:"50%",fontSize:14,fontWeight:700,background:k[e.tier],color:"S"===e.tier?"#000":"#fff",display:"flex",alignItems:"center",justifyContent:"center"},children:e.name?.charAt(0)}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,t.jsx)("div",{style:{fontSize:13,fontWeight:700,color:"#fff"},children:e.name}),(0,t.jsx)("div",{style:{fontSize:9,color:"#888",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.headline?.substring(0,50)})]}),(0,t.jsxs)("div",{style:{textAlign:"right",flexShrink:0},children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:800,color:k[e.tier]},children:e.tier}),(0,t.jsxs)("div",{style:{fontSize:8,color:"#666"},children:[r.length," to add"]})]})]}),(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,marginTop:8},children:[(0,t.jsxs)("div",{style:{display:"flex",gap:4,fontSize:9},children:[n>0&&(0,t.jsxs)("span",{style:{color:"#FFD700",fontWeight:700},children:[n,"S"]}),i>0&&(0,t.jsxs)("span",{style:{color:"#9B59B6",fontWeight:700},children:[i,"A"]}),o>0&&(0,t.jsxs)("span",{style:{color:"#3498DB",fontWeight:700},children:[o,"B"]})]}),(0,t.jsx)("div",{style:{flex:1,height:4,background:"rgba(255,255,255,0.06)",borderRadius:2},children:(0,t.jsx)("div",{style:{height:"100%",borderRadius:2,width:`${Math.min(100,l/30*100)}%`,background:`linear-gradient(90deg, ${k[e.tier]}, #FF6B35)`}})}),(0,t.jsxs)("button",{onClick:()=>{let e=r.map(e=>e.profile_url);if(1===e.length)return void window.open(e[0],"_blank");let t=`<!DOCTYPE html><html><head><title>Top ${Math.min(10,e.length)}</title>
|
|
16
|
-
<style>body{background:#0a0a1a;color:#fff;font-family:-apple-system,sans-serif;padding:24px}
|
|
17
|
-
.btn{display:block;padding:10px 14px;margin-bottom:4px;background:rgba(255,255,255,0.06);
|
|
18
|
-
border:1px solid rgba(255,255,255,0.1);border-radius:6px;color:#fff;text-decoration:none;font-size:12px}
|
|
19
|
-
.btn:hover{background:rgba(0,119,181,0.2)}
|
|
20
|
-
.oa{display:inline-block;padding:10px 20px;background:#0077B5;color:#fff;border-radius:6px;
|
|
21
|
-
font-weight:700;font-size:13px;cursor:pointer;border:none;margin-bottom:16px}</style></head>
|
|
22
|
-
<body><h3 style="color:#FF6B35">Top ${Math.min(10,e.length)} to connect</h3>
|
|
23
|
-
<button class="oa" onclick="document.querySelectorAll('.btn').forEach((a,i)=>setTimeout(()=>a.click(),i*300))">
|
|
24
|
-
Open All</button>${e.slice(0,10).map(e=>'<a class="btn" href="'+e+'" target="_blank">'+e.split("/in/")[1]?.replace("/","")+"</a>").join("")}</body></html>`;window.open(URL.createObjectURL(new Blob([t],{type:"text/html"})),"_blank")},style:{padding:"4px 10px",borderRadius:4,border:"none",cursor:"pointer",background:"#0077B5",color:"#fff",fontSize:9,fontWeight:700,whiteSpace:"nowrap"},children:["Open Top ",Math.min(10,r.length)]})]})]})})():(0,t.jsxs)("div",{style:{padding:"6px 10px",marginBottom:4,background:"tier"===O?`${k[e]||"#555"}15`:"rgba(255,255,255,0.04)",borderLeft:`3px solid ${"tier"===O?k[e]||"#555":"#FF6B35"}`,borderRadius:4,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,t.jsx)("span",{style:{fontSize:11,fontWeight:700,color:"tier"===O?k[e]||"#888":"#FF6B35"},children:"tier"===O?`${e}-Tier`:e}),(0,t.jsx)("span",{style:{fontSize:10,color:"#666"},children:r.length})]}),"bridge"===O?["S","A","B"].map(e=>{let n=r.filter(t=>t.tier===e);return 0===n.length?null:(0,t.jsxs)("div",{style:{marginBottom:6},children:[(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"3px 8px",marginBottom:2,borderLeft:`2px solid ${k[e]}`},children:[(0,t.jsx)("input",{type:"checkbox",checked:n.every(e=>h.has(e.id)),onChange:()=>{let e=n.every(e=>h.has(e.id));x(t=>{let r=new Set(t);return n.forEach(t=>{e?r.delete(t.id):r.add(t.id)}),r})},style:{cursor:"pointer",flexShrink:0}}),(0,t.jsx)("div",{style:{width:6,height:6,borderRadius:"50%",background:k[e]}}),(0,t.jsxs)("span",{style:{fontSize:9,fontWeight:700,color:k[e]},children:[e,"-Tier"]}),(0,t.jsx)("span",{style:{fontSize:8,color:"#555"},children:n.length}),(0,t.jsxs)("button",{onClick:()=>{if(1===n.length)return void window.open(n[0].profile_url,"_blank");let t=`<!DOCTYPE html><html><head><title>${e}-Tier — ${n.length}</title>
|
|
25
|
-
<style>body{background:#0a0a1a;color:#fff;font-family:-apple-system,sans-serif;padding:24px}
|
|
26
|
-
.btn{display:block;padding:10px 14px;margin-bottom:4px;background:rgba(255,255,255,0.06);
|
|
27
|
-
border:1px solid rgba(255,255,255,0.1);border-radius:6px;color:#fff;text-decoration:none;font-size:12px}
|
|
28
|
-
.btn:hover{background:rgba(0,119,181,0.2)}
|
|
29
|
-
.oa{display:inline-block;padding:10px 20px;background:#0077B5;color:#fff;border-radius:6px;
|
|
30
|
-
font-weight:700;font-size:13px;cursor:pointer;border:none;margin-bottom:16px}</style></head>
|
|
31
|
-
<body><h3 style="color:${k[e]}">${e}-Tier (${n.length})</h3>
|
|
32
|
-
<button class="oa" onclick="document.querySelectorAll('.btn').forEach((a,i)=>setTimeout(()=>a.click(),i*300))">
|
|
33
|
-
Open All</button>${n.map(e=>'<a class="btn" href="'+e.profile_url+'" target="_blank">'+e.name+" · "+parseFloat(e.power_score||0).toFixed(1)+"</a>").join("")}</body></html>`;window.open(URL.createObjectURL(new Blob([t],{type:"text/html"})),"_blank")},style:{marginLeft:"auto",padding:"2px 8px",borderRadius:3,border:"none",cursor:"pointer",background:"#0077B5",color:"#fff",fontSize:8,fontWeight:700},children:["Open All ",e]})]}),n.map(e=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"5px 8px 5px 16px",borderBottom:"1px solid rgba(255,255,255,0.02)",background:h.has(e.id)?"rgba(255,215,0,0.05)":"transparent",cursor:"pointer"},onMouseEnter:t=>{h.has(e.id)||(t.currentTarget.style.background="rgba(255,255,255,0.04)")},onMouseLeave:t=>{h.has(e.id)||(t.currentTarget.style.background="transparent")},children:[(0,t.jsx)("input",{type:"checkbox",checked:h.has(e.id),onChange:()=>K(e.id),onClick:e=>e.stopPropagation(),style:{cursor:"pointer",flexShrink:0}}),e.profile_image_url?(0,t.jsx)("img",{src:e.profile_image_url,alt:"",style:{width:28,height:28,borderRadius:"50%",objectFit:"cover",flexShrink:0,border:`1.5px solid ${k[e.tier]||"#555"}`},onError:e=>{e.target.style.display="none"}}):(0,t.jsx)("div",{style:{width:28,height:28,borderRadius:"50%",flexShrink:0,fontSize:10,fontWeight:700,background:k[e.tier]||"#555",color:"S"===e.tier?"#000":"#fff",display:"flex",alignItems:"center",justifyContent:"center"},children:e.name?.charAt(0)}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},onClick:()=>K(e.id),children:[(0,t.jsx)("div",{style:{fontSize:11,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,t.jsx)("div",{style:{fontSize:8,color:"#666",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.headline?.substring(0,45)})]}),(0,t.jsx)("span",{style:{fontSize:9,fontWeight:700,color:k[e.tier],flexShrink:0},children:parseFloat(e.power_score||0).toFixed(1)}),D.has(e.id)?(0,t.jsx)("span",{style:{padding:"3px 6px",borderRadius:3,fontSize:8,fontWeight:700,background:"rgba(255,107,53,0.15)",color:"#FF6B35",flexShrink:0},children:"Sent"}):(0,t.jsx)("a",{href:e.profile_url,target:"_blank",rel:"noopener noreferrer",onClick:t=>{t.stopPropagation(),(0,S.markRequested)(e,{bridgeId:e.source_connection_id}).catch(()=>{})},style:{padding:"3px 6px",borderRadius:3,fontSize:8,fontWeight:700,background:"#0077B5",color:"#fff",textDecoration:"none",flexShrink:0},children:"Add"})]},e.id))]},e)}):r.map(e=>(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 8px",borderBottom:"1px solid rgba(255,255,255,0.03)",background:h.has(e.id)?"rgba(255,215,0,0.05)":"transparent",cursor:"pointer"},onMouseEnter:t=>{h.has(e.id)||(t.currentTarget.style.background="rgba(255,255,255,0.04)")},onMouseLeave:t=>{h.has(e.id)||(t.currentTarget.style.background="transparent")},children:[(0,t.jsx)("input",{type:"checkbox",checked:h.has(e.id),onChange:()=>K(e.id),onClick:e=>e.stopPropagation(),style:{cursor:"pointer",flexShrink:0}}),e.profile_image_url?(0,t.jsx)("img",{src:e.profile_image_url,alt:"",style:{width:32,height:32,borderRadius:"50%",objectFit:"cover",flexShrink:0,border:`1.5px solid ${k[e.tier]||"#555"}`},onError:e=>{e.target.style.display="none",e.target.nextSibling.style.display="flex"}}):null,(0,t.jsx)("div",{style:{width:32,height:32,borderRadius:"50%",flexShrink:0,fontSize:12,fontWeight:700,background:k[e.tier]||"#555",color:"S"===e.tier?"#000":"#fff",display:e.profile_image_url?"none":"flex",alignItems:"center",justifyContent:"center"},children:e.name?.charAt(0)}),(0,t.jsxs)("div",{style:{flex:1,minWidth:0},onClick:()=>K(e.id),children:[(0,t.jsx)("div",{style:{fontSize:12,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,t.jsx)("div",{style:{fontSize:9,color:"#666",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.headline?.substring(0,50)})]}),e.bridge&&(0,t.jsxs)("span",{style:{fontSize:8,color:"#555",flexShrink:0,maxWidth:60,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:["via ",e.bridge.name?.split(" ")[0]]}),(0,t.jsx)("div",{style:{textAlign:"right",flexShrink:0,minWidth:32},children:(0,t.jsx)("div",{style:{fontSize:10,fontWeight:700,color:k[e.tier]},children:parseFloat(e.power_score).toFixed(1)})}),D.has(e.id)?(0,t.jsx)("span",{style:{padding:"4px 8px",borderRadius:4,fontSize:9,fontWeight:700,background:"rgba(255,107,53,0.15)",color:"#FF6B35",flexShrink:0},children:"⏳ Sent"}):(0,t.jsx)("a",{href:e.profile_url,target:"_blank",rel:"noopener noreferrer",onClick:t=>{t.stopPropagation(),(0,S.markRequested)(e,{bridgeId:e.source_connection_id}).catch(()=>{})},style:{padding:"4px 8px",borderRadius:4,fontSize:9,fontWeight:700,background:"#0077B5",color:"#fff",textDecoration:"none",flexShrink:0},children:"Add"})]},e.id))]},e))]})]})})]})}e.s(["default",0,function(){return(0,t.jsx)(x.default,{children:(0,t.jsx)(j,{})})}],77305)},19821,e=>{"use strict";async function t(e){let t=e?`/api/network?userId=${encodeURIComponent(e)}`:"/api/network",r=await fetch(t);if(!r.ok)throw Error(`Failed to load network (${r.status})`);let n=await r.json();return{degree1:n.degree1||[],degree2:n.degree2||[],degree3:n.degree3||[]}}e.s(["loadNetwork",0,t])},5258,e=>{"use strict";e.s(["TIER_COLORS",0,{S:"#f6c344",A:"#a78bfa",B:"#60a5fa",C:"#94a3b8",D:"#6b7280"},"TIER_COLORS_CLASSIC",0,{S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},"TIER_ORDER",0,["S","A","B","C","D"],"TIER_RING_RADIUS",0,{S:150,A:230,B:310,C:390,D:470},"initialsFor",0,function(e){let t=String(e||"").trim().split(/\s+/).filter(Boolean);return 0===t.length?"?":(t[0].charAt(0)+(t.length>1?t[t.length-1].charAt(0):"")).toUpperCase()}])},22016,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return b},useLinkStatus:function(){return m}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809),l=e.r(43476),s=o._(e.r(71645)),a=e.r(95057),d=e.r(8372),c=e.r(18581),u=e.r(18967),f=e.r(5550),p=e.r(88540),g=e.r(91949),h=e.r(73668),x=e.r(9396);function b(t){var r;let n,i,o,[b,m]=(0,s.useOptimistic)(g.IDLE_LINK_STATUS),S=(0,s.useRef)(null),{href:v,as:k,children:j,prefetch:w=null,passHref:_,replace:F,shallow:z,scroll:C,onClick:B,onMouseEnter:R,onTouchStart:I,legacyBehavior:A=!1,onNavigate:$,transitionTypes:T,ref:W,unstable_dynamicOnHover:O,...E}=t;n=j,A&&("string"==typeof n||"number"==typeof n)&&(n=(0,l.jsx)("a",{children:n}));let D=s.default.useContext(d.AppRouterContext),M=!1!==w,P=!1===w?"none":!0===w?"full":"auto",L="none"!==P?"auto"===P?x.FetchStrategy.PPR:x.FetchStrategy.Full:x.FetchStrategy.PPR,U="string"==typeof(r=k||v)?r:(0,a.formatUrl)(r);if(A){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=s.default.Children.only(n)}let N=A?i&&"object"==typeof i&&i.ref:W,q,K=s.default.useCallback(e=>(null!==D&&(S.current=(0,g.mountLinkInstance)(e,U,D,L,M,m,q)),()=>{S.current&&((0,g.unmountLinkForCurrentNavigation)(S.current),S.current=null),(0,g.unmountPrefetchableInstance)(e)}),[M,U,D,L,m,q]),V={ref:(0,c.useMergedRef)(K,N),onClick(t){A||"function"!=typeof B||B(t),A&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!D||t.defaultPrevented||function(t,r,n,i,o,l,a,d="none"){if("u">typeof window){let c,{nodeName:u}=t.currentTarget;if("A"===u.toUpperCase()&&((c=t.currentTarget.getAttribute("target"))&&"_self"!==c||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){i&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(99781);s.default.startTransition(()=>{f(r,i?"replace":"push",!1===o?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,a,d)})}}(t,U,S,F,C,$,T,P)},onMouseEnter(e){A||"function"!=typeof R||R(e),A&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),D&&M&&(0,g.onNavigationIntent)(e.currentTarget,!0===O)},onTouchStart:function(e){A||"function"!=typeof I||I(e),A&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),D&&M&&(0,g.onNavigationIntent)(e.currentTarget,!0===O)}};return(0,u.isAbsoluteUrl)(U)?V.href=U:A&&!_&&("a"!==i.type||"href"in i.props)||(V.href=(0,f.addBasePath)(U)),o=A?s.default.cloneElement(i,V):(0,l.jsx)("a",{...E,...V,children:n}),(0,l.jsx)(y.Provider,{value:b,children:o})}let y=(0,s.createContext)(g.IDLE_LINK_STATUS),m=()=>(0,s.useContext)(y);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18581,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return i}});let n=e.r(71645);function i(e,t){let r=(0,n.useRef)(null),i=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(r.current=o(e,n)),t&&(i.current=o(t,n))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18967,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return b},MiddlewareNotFoundError:function(){return v},MissingStaticPage:function(){return S},NormalizeError:function(){return y},PageNotFoundError:function(){return m},SP:function(){return h},ST:function(){return x},WEB_VITALS:function(){return o},execOnce:function(){return l},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return a},isResSent:function(){return f},loadGetInitialProps:function(){return g},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return k}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=["CLS","FCP","FID","INP","LCP","TTFB"];function l(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,a=e=>{let t=e.charCodeAt(0);return!!(t>=65&&t<=90||t>=97&&t<=122)&&s.test(e)};function d(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=d();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function f(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function g(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await g(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&f(r))return n;if(!n)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return n}let h="u">typeof performance,x=h&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class y extends Error{}class m extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class S extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class v extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function k(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=e.r(18967),i=e.r(52817);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,i.hasBasePath)(r.pathname)}catch(e){return!1}}},98183,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return a},searchParamsToUrlQuery:function(){return o},urlQueryToSearchParams:function(){return s}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});function o(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function l(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,l(e));else t.set(r,l(n));return t}function a(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95057,(e,t,r)=>{"use strict";e.i(47167),Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return s},formatWithValidation:function(){return d},urlObjectKeys:function(){return a}};for(var i in n)Object.defineProperty(r,i,{enumerable:!0,get:n[i]});let o=e.r(90809)._(e.r(98183)),l=/https?|ftp|gopher|file/;function s(e){let{auth:t,hostname:r}=e,n=e.protocol||"",i=e.pathname||"",s=e.hash||"",a=e.query||"",d=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?d=t+e.host:r&&(d=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(d+=":"+e.port)),a&&"object"==typeof a&&(a=String(o.urlQueryToSearchParams(a)));let c=e.search||a&&`?${a}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||l.test(n))&&!1!==d?(d="//"+(d||""),i&&"/"!==i[0]&&(i="/"+i)):d||(d=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),i=i.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${d}${i}${c}${s}`}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return s(e)}}]);
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,2776,e=>{"use strict";var n=e.i(43476),t=e.i(15812);e.s(["default",0,function({children:e}){let{userId:r,ready:o}=(0,t.useUser)();return o&&r?e:(0,n.jsx)("div",{style:{minHeight:"100vh",display:"flex",alignItems:"center",justifyContent:"center",background:"#0a0a1a",color:"#fff",padding:24,textAlign:"center",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:o?(0,n.jsxs)("div",{style:{maxWidth:420},children:[(0,n.jsx)("div",{style:{fontSize:18,fontWeight:700,marginBottom:8},children:"Can’t reach 6 Degrees’ local server"}),(0,n.jsx)("div",{style:{color:"#888",fontSize:14,lineHeight:1.6},children:"The page loaded but the app behind it is not answering. If you started it from a terminal, check that window for an error, then reload this page."})]}):(0,n.jsx)("div",{style:{fontSize:18,fontWeight:600},children:"Loading…"})})}])},68863,e=>{"use strict";var n=e.i(43476),t=e.i(71645),r=e.i(2776),o=e.i(22016),i=e.i(40996);let a={install:"Install",setup:"Set up the scanner"},s="1px solid rgba(255,255,255,0.1)",l={S:"#FFD700",A:"#9B59B6",B:"#3498DB",C:"#95A5A6",D:"#BDC3C7"},d=[25,50,100,200,500],c=[100,250,500,1e3,0],u=e=>new Date(e).toLocaleDateString(void 0,{month:"short",day:"numeric"});function h({cooldown:e,onLift:r,disabled:o}){let[i,a]=(0,t.useState)(!1);return e?(0,n.jsxs)("div",{role:"status",style:{padding:"12px 14px",borderRadius:8,fontSize:13,lineHeight:1.6,background:"rgba(255,80,80,0.08)",border:"1px solid rgba(255,80,80,0.35)",color:"#f3c9c9"},children:[(0,n.jsxs)("b",{style:{color:"#ff8080"},children:["Scanning is paused until ",new Date(e.until).toLocaleString(void 0,{weekday:"short",month:"short",day:"numeric",hour:"numeric",minute:"2-digit"}),"."]})," ",e.reason,". Nothing that searches LinkedIn will run until then, so the account can recover.",(0,n.jsx)("div",{style:{marginTop:8,display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:i?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{style:{fontSize:12.5},children:"Only if people search works normally for you on linkedin.com right now."}),(0,n.jsx)("button",{onClick:()=>{a(!1),r()},style:{...b,color:"#ff8080"},children:"Yes, lift it"}),(0,n.jsx)("button",{onClick:()=>a(!1),style:b,children:"Keep it"})]}):(0,n.jsx)("button",{onClick:()=>a(!0),disabled:o,style:b,children:"Lift it early…"})})]}):null}function p({used:e,cap:t}){let r=t?Math.min(100,Math.round(e/t*100)):0;return(0,n.jsx)("div",{style:{height:5,borderRadius:3,background:"rgba(255,255,255,0.07)",overflow:"hidden",marginTop:4},children:(0,n.jsx)("div",{style:{height:"100%",width:`${r}%`,background:r>=100?"#ff6b6b":r>=75?"#FFD700":"#3498DB"}})})}function f({li:e,onSetLimits:t,disabled:r}){if(!e)return null;let{limits:o}=e,i=e.unreadable?"?":e.searchesToday;return(0,n.jsxs)("div",{style:{padding:"12px 14px",borderRadius:8,border:s,background:"rgba(255,255,255,0.03)",fontSize:12.5,color:"#b8c4c4"},children:[(0,n.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(210px, 1fr))",gap:14},children:[(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"#fff"},children:i})," of ",o.daily||"no limit"," searches in the last 24 hours"]}),(0,n.jsx)(p,{used:e.searchesToday||0,cap:o.daily})]}),(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("b",{style:{color:"#fff"},children:e.searchesMonth})," of ",o.monthly||"no limit"," this month · resets ",u(e.monthResets)]}),(0,n.jsx)(p,{used:e.searchesMonth,cap:o.monthly})]})]}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap",marginTop:10},children:[(0,n.jsx)("span",{children:"Budget:"}),(0,n.jsx)("select",{value:o.daily,disabled:r,onChange:e=>t({daily:Number(e.target.value),monthly:o.monthly}),style:m,children:d.map(e=>(0,n.jsxs)("option",{value:e,children:[e," a day"]},e))}),(0,n.jsx)("select",{value:o.monthly,disabled:r,onChange:e=>t({daily:o.daily,monthly:Number(e.target.value)}),style:m,children:c.map(e=>(0,n.jsx)("option",{value:e,children:e?`${e} a month`:"no monthly cap (Premium)"},e))}),(0,n.jsxs)("span",{style:{color:"#778"},children:[e.profilesToday," profile views today"]})]}),(0,n.jsxs)("div",{style:{marginTop:8,color:"#778",lineHeight:1.6},children:["Every page of someone’s connections is one search. LinkedIn limits a free account’s people searches by the month (it doesn’t say how many; reports put it around 250–350), resetting on the 1st. When a budget is used, a scan saves what it read and stops; the next one carries on from the same page.",o.daily>100&&(0,n.jsxs)("b",{style:{color:"#FFD700"},children:[" ",o.daily," a day can use up a free account’s month in a day or two."]})]})]})}function g({paused:e=[],onResume:r,onResumeAll:o,disabled:i}){let[a,d]=(0,t.useState)(!1);if(!e.length)return null;let c=e.filter(e=>e.legacy).length,h=a?e:e.slice(0,8);return(0,n.jsxs)("div",{style:{borderRadius:8,border:s,background:"rgba(255,255,255,0.03)"},children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 14px",borderBottom:s,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,n.jsxs)("b",{style:{fontSize:13.5},children:["Paused — ",e.length," ",1===e.length?"list":"lists"," with more to read"]}),(0,n.jsxs)("div",{style:{fontSize:12,color:"#8b9a9a",marginTop:2},children:["Each carries on from the page it stopped at",c?`; ${c} were read to page 10 before whole lists were read`:"","."]})]}),(0,n.jsx)("button",{onClick:o,disabled:i,style:{...y,opacity:i?.4:1,cursor:i?"not-allowed":"pointer",background:i?"rgba(255,255,255,0.06)":"linear-gradient(135deg, #3498DB, #9B59B6)"},children:"Resume all"})]}),(0,n.jsx)("div",{children:h.map(e=>(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"8px 14px",borderBottom:"1px solid rgba(255,255,255,0.04)"},children:[(0,n.jsx)("span",{style:{width:8,height:8,borderRadius:"50%",background:l[e.tier]||"#667",flexShrink:0}}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:13,fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e.name}),(0,n.jsxs)("div",{style:{fontSize:11.5,color:"#8b9a9a"},children:["Read to page ",e.pagesRead," · carries on at ",e.nextPage,e.at?` \xb7 ${u(e.at)}`:"",e.unclear>=2?" · came back unclear twice, so it waits at the back of Resume all":""]})]}),(0,n.jsx)("button",{onClick:()=>r(e),disabled:i,style:{...y,padding:"6px 12px",fontSize:12,opacity:i?.4:1,cursor:i?"not-allowed":"pointer"},children:"Resume"})]},e.id))}),e.length>8&&(0,n.jsx)("button",{onClick:()=>d(!a),style:{...b,padding:"10px 14px"},children:a?"Show fewer":`Show all ${e.length}`})]})}let y={padding:"8px 14px",borderRadius:7,fontSize:13,fontWeight:700,cursor:"pointer",border:s,background:"rgba(255,255,255,0.08)",color:"#fff"},b={background:"none",border:"none",color:"#8fb8d6",cursor:"pointer",fontSize:12.5,fontWeight:600,padding:0},m={padding:"6px 8px",borderRadius:6,fontSize:12.5,fontWeight:600,background:"rgba(255,255,255,0.08)",color:"#fff",border:s},x="1px solid rgba(255,255,255,0.1)",w={install:"Installing the scanner",setup:"Setting up the scanner",login:"Waiting for you to sign in",full:"Scanning your whole network",refresh:"Checking for new connections","auto-bridge":"Mapping 2nd-degree connections","auto-bridge-retry":"Mapping 2nd degree, hidden ones included",resume:"Carrying on with one paused list","resume-all":"Carrying on with every paused list"};function j(){let e;(0,t.useEffect)(()=>{"updates"===new URLSearchParams(window.location.search).get("check")&&window.location.replace("/settings?check=updates")},[]);let[r,s]=(0,t.useState)(null),[l,d]=(0,t.useState)(!1),[c,u]=(0,t.useState)(10),[p,y]=(0,t.useState)(["S","A"]),[b,m]=v("six-degrees-bridge-order","newest"),[j,B]=v("six-degrees-bridge-pages-v2",100),[O,A]=v("six-degrees-bridge-finish",!0),[E,z]=(0,t.useState)(null),L=(0,t.useRef)(null),$=(0,t.useCallback)(async()=>{try{let e=await fetch("/api/scraper");s(await e.json())}catch{s(e=>e||{ready:!1,checks:{},log:[]})}},[]);async function N(){z(null),await (0,i.stopScrape)().catch(e=>z(e.message)),$()}async function F(e,n={}){z(null),d(!0);try{let t=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,...n})}),r=await t.json();t.ok||z(r.error||"Could not start.")}catch(e){z(e.message)}finally{d(!1),$()}}(0,t.useEffect)(()=>{$();let e=setInterval($,1500);return()=>clearInterval(e)},[$]),(0,t.useEffect)(()=>{L.current&&(L.current.scrollTop=L.current.scrollHeight)},[r?.log?.length]);let D=r?.checks||{},M=r?.running,_={...e=function(e){let n=e?.checks||{},t=(n,t,r)=>e?.running&&e.action===n?r:t;if(n.dependencies)return"bundled"===n.pythonSource?{done:!0,text:"Ready. The scanner and its Python come with the app, so there is nothing to install.",button:null}:"custom"===n.pythonSource?{done:!0,text:`Ready, on the Python named in SIX_DEGREES_PYTHON (${n.pythonPath}).`,button:null}:{done:!0,text:"Installed.",button:null};let r=n.ownPython&&"bundled"!==n.ownPython.source?`The Python named in SIX_DEGREES_PYTHON didn't work (${n.ownPython.problem}), so the scanner needs setting up another way. `:"";if(n.installFrom)return{done:!1,text:r+("downloaded"===n.installFrom.source?"Its own Python is already here. One more step, about a minute: it installs the browser-automation packages into it.":"One-time, about a minute. Downloads the browser-automation packages."),button:{action:"install",label:t("install","Install","Installing…")}};if(n.download){let e=Math.round(n.download.size/1048576);return{done:!1,text:`${r}${function(e){if(!e?.version)return"This computer has no Python the scanner can use.";let[n,t]=String(e.version).split(".").map(Number);return 3===n&&t>=10&&t<=14&&!1===e.venv?`This computer's Python ${e.version} can't make the scanner's own environment (on Ubuntu or Debian, python3-venv isn't installed).`:`This computer has Python ${e.version}, and the scanner needs 3.10 to 3.14.`}(n.systemPython)} Set up the scanner downloads its own Python ${n.download.version} (${e} MB, from GitHub) and the scanner's packages (from PyPI) into your data folder. Nothing else on this computer changes. About two minutes.`,button:{action:"setup",label:t("setup","Set up the scanner","Setting up…")}}}return{done:!1,text:`${r}No Python 3.10 to 3.14 was found on this machine. Install one from python.org, then reload.`,button:null}}(r),note:function(e,{done:n,button:t}){if(e?.source!=="bundled")return null;let r=/SIGKILL|code signature|not valid for use in process|quarantine|not permitted/i.test(e.problem||""),o=[`The Python that comes with the app didn't work (${e.problem}).`];return r&&o.push("macOS may have blocked it."),!1===e.retry&&o.push("Six Degrees won't try it again until you restart it."),n?o.push("The scanner uses another Python on this computer instead."):t?o.push(`To scan now, use ${a[t.action]} below: it gives the scanner a Python of its own in your data folder.`):o.push("To scan now, install Python 3.10 to 3.14 from python.org, then reload."),o.join(" ")}(r?.checks?.ownPython,e)};r&&D.dependencies;let W=r&&!D.chrome,U=r&&!D.scriptsFound,H=r?.ready&&!M,K=r?.linkedin,G=!!K?.cooldown,J=H&&!G,X=r?.network||{first:0,second:0,third:0},Y=X.first,V=r&&!M&&null!=r.exitCode&&0!==r.exitCode,q=V?r.failure?.length?r.failure.join("\n"):[...r.log||[]].reverse().find(e=>!/^Stopped \(exit/.test(e)&&!/Warning|warnings\.warn/.test(e)):null;return(0,n.jsxs)("div",{style:{minHeight:"100vh",background:"#0a0a1a",color:"#fff",fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[(0,n.jsxs)("header",{style:{padding:"16px 24px",borderBottom:x,display:"flex",alignItems:"center",gap:16},children:[(0,n.jsx)(o.default,{href:"/",style:{display:"flex",alignItems:"center",gap:6,color:"#888",textDecoration:"none",fontSize:13,fontWeight:600,padding:"6px 14px",borderRadius:6,background:"rgba(255,255,255,0.06)",border:x},children:"← Back to Map"}),(0,n.jsx)("h1",{style:{fontSize:22,fontWeight:700,margin:0,background:"linear-gradient(135deg, #FFD700, #9B59B6, #3498DB)",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent"},children:"Scan your network"})]}),(0,n.jsxs)("div",{style:{maxWidth:720,margin:"0 auto",padding:"32px 24px 64px"},children:[(0,n.jsxs)("p",{style:{color:"#9aa",fontSize:15,lineHeight:1.6,marginTop:0},children:["This reads your own LinkedIn connections in a real Chrome window on this machine and saves them here. Nothing leaves your computer, and you will never be asked for your password — you sign in yourself, once.",!Y&&" Three steps and your galaxy appears; each one ticks itself off."]}),Y>0&&!M&&(0,n.jsx)(P,{children:(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:14,flexWrap:"wrap"},children:[(0,n.jsxs)("div",{style:{flex:1,minWidth:200},children:[(0,n.jsxs)("b",{children:[Y.toLocaleString()," connections"]}),X.second>0&&(0,n.jsxs)(n.Fragment,{children:[", plus ",X.second.toLocaleString()," people in their circles"]}),X.third>0&&(0,n.jsxs)(n.Fragment,{children:[" and ",X.third.toLocaleString()," from company scans"]}),"."," ",(0,n.jsx)("span",{style:{color:"#9aa"},children:"Your galaxy is ready."})]}),(0,n.jsx)(o.default,{href:"/",style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:700,color:"#0a0a1a",textDecoration:"none",background:"linear-gradient(135deg, #FFD700, #FF6B35)"},children:"See your network →"})]})}),V&&(0,n.jsxs)(P,{tone:"bad",children:[(0,n.jsx)("b",{children:"The last run stopped before it finished."}),q&&(0,n.jsx)("div",{style:{marginTop:6,color:"#e8c4c4",whiteSpace:"pre-wrap",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:12.5},children:q}),(0,n.jsx)("div",{style:{color:"#9aa",marginTop:6},children:"The full log is below."})]}),U&&(0,n.jsxs)(P,{tone:"bad",children:[(0,n.jsx)("b",{children:"Can’t find the scanner files."}),(0,n.jsx)("br",{}),(0,n.jsxs)("span",{style:{color:"#9aa"},children:["Expected ",(0,n.jsx)("code",{style:S,children:"scripts/scrape.py"})," next to the app. If you downloaded a zip, run the app from inside the project folder."]})]}),W&&(0,n.jsxs)(P,{tone:"bad",children:[(0,n.jsx)("b",{children:"Google Chrome isn’t installed."}),(0,n.jsx)("br",{}),(0,n.jsxs)("span",{style:{color:"#9aa"},children:["The scanner drives your real Chrome. Install it from"," ",(0,n.jsx)("a",{href:"https://www.google.com/chrome/",target:"_blank",rel:"noreferrer",style:{color:"#3498DB"},children:"google.com/chrome"}),", then reload this page."]})]}),r&&_.note&&(0,n.jsx)(P,{tone:_.done?void 0:"bad",children:_.note}),(0,n.jsx)(C,{n:1,done:_.done,title:"Set up the scanner",body:r?_.text:"",action:r&&_.button&&(0,n.jsx)(T,{onClick:()=>F(_.button.action),disabled:l||M,children:_.button.label})}),(0,n.jsx)(C,{n:2,done:!!D.signedIn,title:"Sign into LinkedIn",body:D.signedIn?"Signed in on this machine. If LinkedIn ever asks for a security check, or a scan says you were signed out, open LinkedIn here and finish it by hand.":"Opens a Chrome window. Sign in with your email and password — “Continue with Google” cannot work here, because Google blocks its sign-in inside automated browsers.",action:D.dependencies&&(0,n.jsx)(T,{onClick:()=>F("login"),disabled:l||M,children:M&&"login"===r.action?"Waiting for you…":"Open LinkedIn"})}),(0,n.jsx)(C,{n:3,done:Y>0,title:"1st degree — the people you know",body:"The first scan walks your whole connections list, about a minute and a half for 750 people. After that, Check for new only looks at what has been added since.",action:(0,n.jsxs)("div",{style:{display:"flex",gap:10,flexWrap:"wrap"},children:[(0,n.jsx)(T,{onClick:()=>F("full"),disabled:!J,primary:!0,children:M&&"full"===r.action?"Scanning…":"Scan my whole network"}),(0,n.jsx)(T,{onClick:()=>F("refresh"),disabled:!J,children:M&&"refresh"===r.action?"Checking…":"Check for new"})]})}),(0,n.jsx)(C,{n:4,done:!1,title:"2nd degree — the people they know",body:(0,n.jsxs)(n.Fragment,{children:["This is what fills ",(0,n.jsx)("b",{children:"Degrees"})," and ",(0,n.jsx)("b",{children:"Outlink"}),": it opens each of your connections in turn and reads who ",(0,n.jsx)("i",{children:"they"})," know. Most people hide their connections — those are noted and never tried again.",(0,n.jsx)("br",{}),(0,n.jsx)("br",{}),"It is slow on purpose, about two minutes between each person, because this is the part LinkedIn notices. During development a real account was temporarily restricted after roughly ",(0,n.jsx)("b",{children:"19 people in one sitting"}),". Run a batch, leave it for a day, run another — and stop the moment LinkedIn mentions unusual activity. It always picks up where it left off: anyone still without a mapped circle, in the order you choose below — your newest connections first, or highest tier first. Each person’s list is read to the end, saving every 10 pages, and a read that is stopped carries on from the same page next time."]}),action:(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,n.jsx)(h,{cooldown:K?.cooldown,disabled:l,onLift:()=>F("lift-cooldown")}),(0,n.jsx)(f,{li:K,disabled:l,onSetLimits:e=>F("set-limits",e)}),"score"===b&&(0,n.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"#8b9a9a"},children:"Work through"}),["S","A","B","C","D"].map(e=>{let t=p.includes(e);return(0,n.jsx)("button",{onClick:()=>y(n=>n.includes(e)?n.filter(n=>n!==e):[...n,e]),disabled:M,style:{width:30,height:28,borderRadius:7,fontSize:12,fontWeight:700,cursor:M?"not-allowed":"pointer",border:x,background:t?"rgba(52,152,219,0.22)":"rgba(255,255,255,0.05)",color:t?"#cfe6f7":"#667"},children:e},e)}),(0,n.jsx)("span",{style:{fontSize:11.5,color:"#667"},children:p.length?"":"pick at least one"})]}),"newest"===b&&(0,n.jsxs)("div",{style:{fontSize:12,color:"#8b9a9a",lineHeight:1.6},children:["Goes by the date you connected, newest first, across every tier. Run"," ",(0,n.jsx)("b",{children:"Check for new"})," first so your latest connections are in the list."]}),(0,n.jsxs)("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center"},children:[(0,n.jsx)("span",{style:{fontSize:12,color:"#8b9a9a"},children:"Start with"}),(0,n.jsxs)("select",{value:b,onChange:e=>m(e.target.value),disabled:M,style:k,children:[(0,n.jsx)("option",{value:"newest",children:"Newest connections first"}),(0,n.jsx)("option",{value:"score",children:"Highest tier first"})]}),(0,n.jsx)("span",{style:{fontSize:12,color:"#8b9a9a"},children:"Read up to"}),(0,n.jsxs)("select",{value:j,onChange:e=>B(Number(e.target.value)),disabled:M,style:k,children:[(0,n.jsx)("option",{value:100,children:"every page, to the end of their list"}),(0,n.jsx)("option",{value:50,children:"50 pages each"}),(0,n.jsx)("option",{value:25,children:"25 pages each"}),(0,n.jsx)("option",{value:10,children:"10 pages (~100 people) each"})]})]}),(0,n.jsxs)("label",{style:{display:"flex",gap:8,alignItems:"center",fontSize:12.5,color:"#cfd8d8",cursor:M?"not-allowed":"pointer"},children:[(0,n.jsx)("input",{type:"checkbox",checked:O,onChange:e=>A(e.target.checked),disabled:M}),"Also finish people already mapped, from the page each one stopped at"]}),(0,n.jsxs)("div",{style:{fontSize:12,color:"#FFD700",lineHeight:1.6},children:["Every page is a LinkedIn search, so it rests 20 seconds before each one and a minute after every 10, and a long list can take"," ",j>=100?"about 55 minutes a person":`about ${Math.max(5,Math.round(.55*j))} minutes a person`,". LinkedIn shows 100 pages of anyone’s connections at most. Free accounts have a monthly search limit: if LinkedIn says it has been reached, the scan saves what it read and stops, and carries on from that page next time. Keep batches small."]}),(0,n.jsxs)("div",{style:{display:"flex",gap:10,flexWrap:"wrap",alignItems:"center"},children:[(0,n.jsx)(T,{onClick:()=>F("auto-bridge",{maxBridges:c,tiers:"score"===b?p:[],order:b,maxPages:j,deeper:O}),disabled:!J||"score"===b&&!p.length,primary:!0,children:M&&"auto-bridge"===r.action?"Mapping…":"Map 2nd degree"}),(0,n.jsxs)("select",{value:c,onChange:e=>u(Number(e.target.value)),disabled:M,style:k,children:[(0,n.jsx)("option",{value:5,children:"5 people"}),(0,n.jsx)("option",{value:10,children:"10 people"}),(0,n.jsx)("option",{value:25,children:"25 people"}),(0,n.jsx)("option",{value:0,children:"everyone — not advised"})]}),(0,n.jsx)(T,{onClick:()=>F("auto-bridge-retry",{maxBridges:c,tiers:"score"===b?p:[],order:b,maxPages:j,deeper:O}),disabled:!J||"score"===b&&!p.length,children:"Retry hidden ones"})]}),(0,n.jsx)(g,{paused:r?.paused||[],disabled:!J,onResume:e=>F("resume",{id:e.id}),onResumeAll:()=>F("resume-all",{maxBridges:c})})]})}),M&&(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:12,marginTop:20,padding:"14px 16px",borderRadius:8,background:"rgba(255,255,255,0.05)",border:x},children:[(0,n.jsx)(R,{}),(0,n.jsxs)("div",{style:{flex:1,fontSize:13.5},children:[(0,n.jsx)("b",{children:w[r.action]||"Working"}),r.progress&&(0,n.jsx)(I,{p:r.progress,action:r.action}),(0,n.jsx)("div",{style:{color:"#8b9a9a",fontSize:12.5,marginTop:2},children:"Stopping closes the browser cleanly and keeps everything found so far."})]}),(0,n.jsx)(T,{onClick:N,tone:"bad",children:"Stop"})]}),E&&(0,n.jsx)(P,{tone:"bad",children:E}),r?.log?.length>0&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,margin:"28px 0 8px",fontSize:12,color:"#788",textTransform:"uppercase",letterSpacing:.6},children:[M&&(0,n.jsx)(R,{}),M?"Working":"Last run"]}),(0,n.jsx)("pre",{ref:L,style:{background:"rgba(0,0,0,0.45)",border:x,borderRadius:8,padding:14,maxHeight:280,overflow:"auto",margin:0,fontSize:12.5,lineHeight:1.7,color:"#b9c6c6",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",whiteSpace:"pre-wrap",wordBreak:"break-word"},children:r.log.join("\n")})]}),(0,n.jsxs)("div",{style:{marginTop:32,paddingTop:20,borderTop:x,fontSize:13.5,color:"#8b9a9a"},children:["Checking for updates has moved to"," ",(0,n.jsx)(o.default,{href:"/settings#updates",style:{color:"#3498DB"},children:"Settings →"})]}),(0,n.jsxs)("p",{style:{color:"#667",fontSize:12.5,lineHeight:1.7,marginTop:32},children:["Automating LinkedIn may go against its User Agreement, and accounts have been restricted for it. This runs locally against your own account, at your own risk. LinkedIn’s own CSV export is the supported route and needs none of this —"," ",(0,n.jsx)(o.default,{href:"/import",style:{color:"#3498DB"},children:"import a CSV instead"}),"."]})]}),(0,n.jsx)("style",{children:`@keyframes spin { to { transform: rotate(360deg) } }
|
|
2
|
-
@keyframes slide { 0% { transform: translateX(-100%) } 100% { transform: translateX(300%) } }`})]})}function v(e,n){let[r,o]=(0,t.useState)(n);return(0,t.useEffect)(()=>{try{let n=localStorage.getItem(e);null!==n&&o(JSON.parse(n))}catch{}},[e]),[r,n=>{o(n);try{localStorage.setItem(e,JSON.stringify(n))}catch{}}]}let S={background:"rgba(255,255,255,0.08)",padding:"1px 5px",borderRadius:4},k={padding:"9px 10px",borderRadius:7,fontSize:13.5,fontWeight:600,background:"rgba(255,255,255,0.08)",color:"#fff",border:x};function C({n:e,done:t,title:r,body:o,action:i}){return(0,n.jsxs)("div",{style:{display:"flex",gap:16,padding:"20px 0",borderBottom:x,alignItems:"flex-start"},children:[(0,n.jsx)("div",{style:{flexShrink:0,width:28,height:28,borderRadius:"50%",display:"grid",placeItems:"center",fontSize:13,fontWeight:700,background:t?"rgba(0,255,136,0.15)":"rgba(255,255,255,0.08)",color:t?"#00ff88":"#889",border:`1px solid ${t?"rgba(0,255,136,0.4)":"rgba(255,255,255,0.14)"}`},children:t?"✓":e}),(0,n.jsxs)("div",{style:{flex:1,minWidth:0},children:[(0,n.jsx)("div",{style:{fontSize:15.5,fontWeight:650,marginBottom:4},children:r}),(0,n.jsx)("div",{style:{fontSize:13.5,color:"#8b9a9a",lineHeight:1.6,marginBottom:12*!!i},children:o}),i]})]})}function T({children:e,onClick:t,disabled:r,primary:o,tone:i}){return(0,n.jsx)("button",{onClick:t,disabled:r,style:{padding:"9px 18px",borderRadius:7,fontSize:13.5,fontWeight:650,color:r?"#667":"#fff",background:r?"rgba(255,255,255,0.05)":"bad"===i?"rgba(255,80,80,0.15)":o?"linear-gradient(135deg, #9B59B6, #3498DB)":"rgba(255,255,255,0.08)",border:x,cursor:r?"not-allowed":"pointer"},children:e})}function P({children:e,tone:t}){return(0,n.jsx)("div",{style:{margin:"16px 0",padding:"14px 16px",borderRadius:8,fontSize:13.5,lineHeight:1.6,background:"bad"===t?"rgba(255,80,80,0.08)":"rgba(255,255,255,0.05)",border:`1px solid ${"bad"===t?"rgba(255,80,80,0.3)":"rgba(255,255,255,0.12)"}`},children:e})}function I({p:e,action:t}){let r;if("saving"===e.kind)return(0,n.jsxs)("div",{style:{margin:"8px 0 6px"},children:[(0,n.jsx)("div",{role:"progressbar","aria-label":"Saving",style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(255,255,255,0.08)",marginBottom:6},children:(0,n.jsx)("div",{style:{width:"35%",height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",animation:"slide 1.2s ease-in-out infinite"}})}),(0,n.jsx)("div",{style:{fontSize:12.5,color:"#cfe6f7"},children:"Saving to your network and fetching photos — this can take a minute or two."})]});let o=Math.max(0,Math.min(100,Math.round(e.done/e.total*100)));return r="download"===e.kind?`Downloading Python: ${e.done.toFixed(1)} of ${e.total.toFixed(1)} MB \xb7 ${o}%`:"batch"===e.kind?`Person ${e.current} of ${e.total}`:"refresh"===t?`Looked at ${e.done.toLocaleString()} so far — stops once it reaches people already saved`:`${e.done.toLocaleString()} of ${e.total.toLocaleString()} connections \xb7 ${o}%`,(0,n.jsxs)("div",{style:{margin:"8px 0 6px"},children:["refresh"!==t&&(0,n.jsx)("div",{role:"progressbar","aria-valuemin":0,"aria-valuemax":e.total,"aria-valuenow":e.done,"aria-label":r,style:{height:8,borderRadius:4,overflow:"hidden",background:"rgba(255,255,255,0.08)",marginBottom:6},children:(0,n.jsx)("div",{style:{width:`${o}%`,height:"100%",borderRadius:4,background:"linear-gradient(90deg, #9B59B6, #3498DB)",transition:"width 0.6s ease"}})}),(0,n.jsx)("div",{style:{fontSize:12.5,color:"#cfe6f7"},children:r})]})}function R(){return(0,n.jsx)("span",{style:{width:11,height:11,borderRadius:"50%",display:"inline-block",border:"2px solid rgba(255,255,255,0.2)",borderTopColor:"#3498DB",animation:"spin 0.8s linear infinite"}})}e.s(["default",0,function(){return(0,n.jsx)(r.default,{children:(0,n.jsx)(j,{})})}],68863)},40996,e=>{"use strict";async function n(){let e=await fetch("/api/scraper");if(!e.ok)throw Error("Could not reach the app.");return e.json()}async function t(e,n,r={}){let o=await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,...n?{name:n}:{},...r})}),i=await o.json().catch(()=>({}));if(!o.ok)throw Error(i.error||"Could not start the scanner.");return i}async function r(e){let n=await fetch(`/api/scraper?resume=${encodeURIComponent(e)}`);return n.ok?(await n.json()).resume??null:null}async function o(){await fetch("/api/scraper",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"cancel"})})}Symbol.for("six-degrees.scan-state");let i=Object.freeze({known:!1,running:!1,pending:!1,action:null,target:null,startedAt:null,progress:null,log:[],finished:[]}),a=new Set,s=i,l=JSON.stringify(s),d=null,c=null,u=0,h=!1,p=new Set;function f(e){let n=JSON.stringify(e);if(n!==l)for(let t of(l=n,s=Object.freeze(e),[...a]))t()}async function g(){(!("u">typeof document&&document.hidden)||s.running)&&await function(){if(c&&c.epoch===u)return c.promise;let e=u,n=fetch("/api/scraper?job=1").then(e=>e.ok?e.json():null).then(n=>{e===u&&function(e){if(!e||"object"!=typeof e)return;let n=!0===e.running;n&&null!=e.startedAt&&p.add(e.startedAt);let t=(Array.isArray(e.recent)?e.recent:[]).filter(e=>p.has(e.startedAt)).map(t=>({...t,log:!n&&t.startedAt===e.startedAt&&Array.isArray(e.log)?e.log:[]}));f({known:!0,running:n||h,pending:h&&!n,action:n?e.action??null:h?s.action:null,target:n?e.target??null:h?s.target:null,startedAt:n?e.startedAt??null:null,progress:n?e.progress??null:null,log:n&&Array.isArray(e.log)?e.log:[],finished:t})}(n)}).catch(()=>{}).finally(()=>{c?.promise===n&&(c=null)});return c={epoch:e,promise:n},n}(),clearTimeout(d),d=a.size?setTimeout(g,s.running?1500:5e3):null}function y(e){return a.add(e),1===a.size&&g(),()=>{a.delete(e),a.size||(clearTimeout(d),d=null)}}async function b(e,{name:n,id:r,onLog:o,...i}={}){let a;u++,h=!0,f({...s,known:!0,running:!0,pending:!0,action:e,target:n||r?{id:r??null,name:n??null}:null,startedAt:null,progress:null,log:[]});try{a=await t(e,n,{...r?{id:r}:{},...i})}catch(e){throw h=!1,u++,s.pending&&f({...s,running:!1,pending:!1,action:null,target:null,log:[]}),g(),e}h=!1,u++;let l=a?.startedAt??null;null!=l&&p.add(l);let d=new Promise(e=>{let n=y(()=>{s.running&&s.startedAt===l&&o?.(s.log);let t=null==l?s.running?null:{exitCode:null,failure:null,log:[]}:s.finished.find(e=>e.startedAt===l);t&&(n(),t.log.length&&o?.(t.log),e(t))});g()});return{startedAt:l,ended:d}}function m(e){return!!e?.target&&["bridge","rescrape","resume"].includes(e.action)}e.s(["SCANNER_UNKNOWN",0,i,"beginScrape",0,b,"busyReason",0,function(e=s){if(!e?.running)return null;let n=e.target?.name;switch(e.action){case"bridge":case"rescrape":case"resume":return n?`${n}’s circle is being scanned`:"A circle is being scanned";case"company":return n?`${n} is being scanned`:"A company is being scanned";case"auto-bridge":case"auto-bridge-retry":case"resume-all":return"Your bridges are being mapped, one by one";case"full":case"refresh":return"Your own connections are being scanned";default:switch(e.action){case"install":return"The scanner's packages are being installed";case"setup":return"The scanner is being set up";case"login":return"The LinkedIn sign-in window is open";default:return"A scan is running"}}},"isCircleScan",0,m,"notReadyMessage",0,function(e){if(!e)return"Could not reach the app.";let n=e.checks||{};return n.scriptsFound?n.dependencies?n.chrome?null:"Google Chrome is not installed.":n.python||n.download?"The scanner is not set up yet — open Scan to set it up.":"No Python 3.10 to 3.14 is installed on this machine.":"The scanner files are missing from this install."},"resumePoint",0,r,"runScrape",0,function(e,n={}){return b(e,n).then(e=>e.ended)},"scannerNow",0,function(){return s},"scansCircleOf",0,function(e,n){if(!m(e)||!n)return!1;let{id:t,name:r}=e.target;return t&&n.id?t===n.id:!!r&&r===n.name},"scraperStatus",0,n,"stopScrape",0,o,"watchScanner",0,y],40996)},22016,(e,n,t)=>{"use strict";e.i(47167),Object.defineProperty(t,"__esModule",{value:!0});var r={default:function(){return b},useLinkStatus:function(){return x}};for(var o in r)Object.defineProperty(t,o,{enumerable:!0,get:r[o]});let i=e.r(90809),a=e.r(43476),s=i._(e.r(71645)),l=e.r(95057),d=e.r(8372),c=e.r(18581),u=e.r(18967),h=e.r(5550),p=e.r(88540),f=e.r(91949),g=e.r(73668),y=e.r(9396);function b(n){var t;let r,o,i,[b,x]=(0,s.useOptimistic)(f.IDLE_LINK_STATUS),w=(0,s.useRef)(null),{href:j,as:v,children:S,prefetch:k=null,passHref:C,replace:T,shallow:P,scroll:I,onClick:R,onMouseEnter:B,onTouchStart:O,legacyBehavior:A=!1,onNavigate:E,transitionTypes:z,ref:L,unstable_dynamicOnHover:$,...N}=n;r=S,A&&("string"==typeof r||"number"==typeof r)&&(r=(0,a.jsx)("a",{children:r}));let F=s.default.useContext(d.AppRouterContext),D=!1!==k,M=!1===k?"none":!0===k?"full":"auto",_="none"!==M?"auto"===M?y.FetchStrategy.PPR:y.FetchStrategy.Full:y.FetchStrategy.PPR,W="string"==typeof(t=v||j)?t:(0,l.formatUrl)(t);if(A){if(r?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=s.default.Children.only(r)}let U=A?o&&"object"==typeof o&&o.ref:L,H,K=s.default.useCallback(e=>(null!==F&&(w.current=(0,f.mountLinkInstance)(e,W,F,_,D,x,H)),()=>{w.current&&((0,f.unmountLinkForCurrentNavigation)(w.current),w.current=null),(0,f.unmountPrefetchableInstance)(e)}),[D,W,F,_,x,H]),G={ref:(0,c.useMergedRef)(K,U),onClick(n){A||"function"!=typeof R||R(n),A&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(n),!F||n.defaultPrevented||function(n,t,r,o,i,a,l,d="none"){if("u">typeof window){let c,{nodeName:u}=n.currentTarget;if("A"===u.toUpperCase()&&((c=n.currentTarget.getAttribute("target"))&&"_self"!==c||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.nativeEvent&&2===n.nativeEvent.which)||n.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(t)){o&&(n.preventDefault(),location.replace(t));return}if(n.preventDefault(),a){let e=!1;if(a({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:h}=e.r(99781);s.default.startTransition(()=>{h(t,o?"replace":"push",!1===i?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,r.current,l,d)})}}(n,W,w,T,I,E,z,M)},onMouseEnter(e){A||"function"!=typeof B||B(e),A&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),F&&D&&(0,f.onNavigationIntent)(e.currentTarget,!0===$)},onTouchStart:function(e){A||"function"!=typeof O||O(e),A&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),F&&D&&(0,f.onNavigationIntent)(e.currentTarget,!0===$)}};return(0,u.isAbsoluteUrl)(W)?G.href=W:A&&!C&&("a"!==o.type||"href"in o.props)||(G.href=(0,h.addBasePath)(W)),i=A?s.default.cloneElement(o,G):(0,a.jsx)("a",{...N,...G,children:r}),(0,a.jsx)(m.Provider,{value:b,children:i})}let m=(0,s.createContext)(f.IDLE_LINK_STATUS),x=()=>(0,s.useContext)(m);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),n.exports=t.default)},18581,(e,n,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let r=e.r(71645);function o(e,n){let t=(0,r.useRef)(null),o=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=t.current;e&&(t.current=null,e());let n=o.current;n&&(o.current=null,n())}else e&&(t.current=i(e,r)),n&&(o.current=i(n,r))},[e,n])}function i(e,n){if("function"!=typeof e)return e.current=n,()=>{e.current=null};{let t=e(n);return"function"==typeof t?t:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),n.exports=t.default)},18967,(e,n,t)=>{"use strict";e.i(47167),Object.defineProperty(t,"__esModule",{value:!0});var r={DecodeError:function(){return b},MiddlewareNotFoundError:function(){return j},MissingStaticPage:function(){return w},NormalizeError:function(){return m},PageNotFoundError:function(){return x},SP:function(){return g},ST:function(){return y},WEB_VITALS:function(){return i},execOnce:function(){return a},getDisplayName:function(){return u},getLocationOrigin:function(){return d},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return h},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return v}};for(var o in r)Object.defineProperty(t,o,{enumerable:!0,get:r[o]});let i=["CLS","FCP","FID","INP","LCP","TTFB"];function a(e){let n,t=!1;return(...r)=>(t||(t=!0,n=e(...r)),n)}let s=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>{let n=e.charCodeAt(0);return!!(n>=65&&n<=90||n>=97&&n<=122)&&s.test(e)};function d(){let{protocol:e,hostname:n,port:t}=window.location;return`${e}//${n}${t?":"+t:""}`}function c(){let{href:e}=window.location,n=d();return e.substring(n.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function h(e){return e.finished||e.headersSent}function p(e){let n=e.split("?");return n[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(n[1]?`?${n.slice(1).join("?")}`:"")}async function f(e,n){let t=n.res||n.ctx&&n.ctx.res;if(!e.getInitialProps)return n.ctx&&n.Component?{pageProps:await f(n.Component,n.ctx)}:{};let r=await e.getInitialProps(n);if(t&&h(t))return r;if(!r)throw Object.defineProperty(Error(`"${u(e)}.getInitialProps()" should resolve to an object. But found "${r}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return r}let g="u">typeof performance,y=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class b extends Error{}class m extends Error{}class x extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class w extends Error{constructor(e,n){super(),this.message=`Failed to load static file for page: ${e} ${n}`}}class j extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(e){return JSON.stringify({message:e.message,stack:e.stack})}},73668,(e,n,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return i}});let r=e.r(18967),o=e.r(52817);function i(e){if(!(0,r.isAbsoluteUrl)(e))return!0;try{let n=(0,r.getLocationOrigin)(),t=new URL(e,n);return t.origin===n&&(0,o.hasBasePath)(t.pathname)}catch(e){return!1}}},98183,(e,n,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={assign:function(){return l},searchParamsToUrlQuery:function(){return i},urlQueryToSearchParams:function(){return s}};for(var o in r)Object.defineProperty(t,o,{enumerable:!0,get:r[o]});function i(e){let n={};for(let[t,r]of e.entries()){let e=n[t];void 0===e?n[t]=r:Array.isArray(e)?e.push(r):n[t]=[e,r]}return n}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function s(e){let n=new URLSearchParams;for(let[t,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)n.append(t,a(e));else n.set(t,a(r));return n}function l(e,...n){for(let t of n){for(let n of t.keys())e.delete(n);for(let[n,r]of t.entries())e.append(n,r)}return e}},95057,(e,n,t)=>{"use strict";e.i(47167),Object.defineProperty(t,"__esModule",{value:!0});var r={formatUrl:function(){return s},formatWithValidation:function(){return d},urlObjectKeys:function(){return l}};for(var o in r)Object.defineProperty(t,o,{enumerable:!0,get:r[o]});let i=e.r(90809)._(e.r(98183)),a=/https?|ftp|gopher|file/;function s(e){let{auth:n,hostname:t}=e,r=e.protocol||"",o=e.pathname||"",s=e.hash||"",l=e.query||"",d=!1;n=n?encodeURIComponent(n).replace(/%3A/i,":")+"@":"",e.host?d=n+e.host:t&&(d=n+(~t.indexOf(":")?`[${t}]`:t),e.port&&(d+=":"+e.port)),l&&"object"==typeof l&&(l=String(i.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return r&&!r.endsWith(":")&&(r+=":"),e.slashes||(!r||a.test(r))&&!1!==d?(d="//"+(d||""),o&&"/"!==o[0]&&(o="/"+o)):d||(d=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${r}${d}${o}${c}${s}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function d(e){return s(e)}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30215,t=>{"use strict";var n=t.i(71645),e=t.i(40996);t.s(["default",0,function(){return(0,n.useSyncExternalStore)(e.watchScanner,e.scannerNow,()=>e.SCANNER_UNKNOWN)}])},36534,t=>{"use strict";var n=t.i(50768),e=t.i(23731),r=t.i(49260);function i(t){return t.x+t.vx}function o(t){return t.y+t.vy}t.s(["forceCollide",0,function(t){var a,u,s,l=1,f=1;function h(){for(var t,e,h,p,d,v,y,g=a.length,_=0;_<f;++_)for(e=(0,n.quadtree)(a,i,o).visitAfter(c),t=0;t<g;++t)y=(v=u[(h=a[t]).index])*v,p=h.x+h.vx,d=h.y+h.vy,e.visit(m);function m(t,n,e,i,o){var a=t.data,u=t.r,f=v+u;if(a){if(a.index>h.index){var c=p-a.x-a.vx,g=d-a.y-a.vy,_=c*c+g*g;_<f*f&&(0===c&&(_+=(c=(0,r.default)(s))*c),0===g&&(_+=(g=(0,r.default)(s))*g),_=(f-(_=Math.sqrt(_)))/_*l,h.vx+=(c*=_)*(f=(u*=u)/(y+u)),h.vy+=(g*=_)*f,a.vx-=c*(f=1-f),a.vy-=g*f)}return}return n>p+f||i<p-f||e>d+f||o<d-f}}function c(t){if(t.data)return t.r=u[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function p(){if(a){var n,e,r=a.length;for(u=Array(r),n=0;n<r;++n)u[(e=a[n]).index]=+t(e,n,a)}}return"function"!=typeof t&&(t=(0,e.default)(null==t?1:+t)),h.initialize=function(t,n){a=t,s=n,p()},h.iterations=function(t){return arguments.length?(f=+t,h):f},h.strength=function(t){return arguments.length?(l=+t,h):l},h.radius=function(n){return arguments.length?(t="function"==typeof n?n:(0,e.default)(+n),p(),h):t},h}],36534)},23731,49260,t=>{"use strict";t.s(["default",0,function(t){return function(){return t}}],23731),t.s(["default",0,function(t){return(t()-.5)*1e-6}],49260)},77899,t=>{"use strict";var n=t.i(23731),e=t.i(49260);function r(t){return t.index}function i(t,n){var e=t.get(n);if(!e)throw Error("node not found: "+n);return e}t.s(["forceLink",0,function(t){var o,a,u,s,l,f,h=r,c=function(t){return 1/Math.min(s[t.source.index],s[t.target.index])},p=(0,n.default)(30),d=1;function v(n){for(var r=0,i=t.length;r<d;++r)for(var u,s,h,c,p,v,y,g=0;g<i;++g)s=(u=t[g]).source,v=((v=Math.sqrt((c=(h=u.target).x+h.vx-s.x-s.vx||(0,e.default)(f))*c+(p=h.y+h.vy-s.y-s.vy||(0,e.default)(f))*p))-a[g])/v*n*o[g],c*=v,p*=v,h.vx-=c*(y=l[g]),h.vy-=p*y,s.vx+=c*(y=1-y),s.vy+=p*y}function y(){if(u){var n,e,r=u.length,f=t.length,c=new Map(u.map((t,n)=>[h(t,n,u),t]));for(n=0,s=Array(r);n<f;++n)(e=t[n]).index=n,"object"!=typeof e.source&&(e.source=i(c,e.source)),"object"!=typeof e.target&&(e.target=i(c,e.target)),s[e.source.index]=(s[e.source.index]||0)+1,s[e.target.index]=(s[e.target.index]||0)+1;for(n=0,l=Array(f);n<f;++n)e=t[n],l[n]=s[e.source.index]/(s[e.source.index]+s[e.target.index]);o=Array(f),g(),a=Array(f),_()}}function g(){if(u)for(var n=0,e=t.length;n<e;++n)o[n]=+c(t[n],n,t)}function _(){if(u)for(var n=0,e=t.length;n<e;++n)a[n]=+p(t[n],n,t)}return null==t&&(t=[]),v.initialize=function(t,n){u=t,f=n,y()},v.links=function(n){return arguments.length?(t=n,y(),v):t},v.id=function(t){return arguments.length?(h=t,v):h},v.iterations=function(t){return arguments.length?(d=+t,v):d},v.strength=function(t){return arguments.length?(c="function"==typeof t?t:(0,n.default)(+t),g(),v):c},v.distance=function(t){return arguments.length?(p="function"==typeof t?t:(0,n.default)(+t),_(),v):p},v}],77899)},17983,t=>{"use strict";var n=t.i(50768),e=t.i(23731),r=t.i(49260),i=t.i(909);t.s(["forceManyBody",0,function(){var t,o,a,u,s,l=(0,e.default)(-30),f=1,h=1/0,c=.81;function p(e){var r,a=t.length,s=(0,n.quadtree)(t,i.x,i.y).visitAfter(v);for(u=e,r=0;r<a;++r)o=t[r],s.visit(y)}function d(){if(t){var n,e,r=t.length;for(s=Array(r),n=0;n<r;++n)s[(e=t[n]).index]=+l(e,n,t)}}function v(t){var n,e,r,i,o,a=0,u=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=Math.abs(n.value))&&(a+=n.value,u+=e,r+=e*n.x,i+=e*n.y);t.x=r/u,t.y=i/u}else{(n=t).x=n.data.x,n.y=n.data.y;do a+=s[n.data.index];while(n=n.next)}t.value=a}function y(t,n,e,i){if(!t.value)return!0;var l=t.x-o.x,p=t.y-o.y,d=i-n,v=l*l+p*p;if(d*d/c<v)return v<h&&(0===l&&(v+=(l=(0,r.default)(a))*l),0===p&&(v+=(p=(0,r.default)(a))*p),v<f&&(v=Math.sqrt(f*v)),o.vx+=l*t.value*u/v,o.vy+=p*t.value*u/v),!0;if(!t.length&&!(v>=h)){(t.data!==o||t.next)&&(0===l&&(v+=(l=(0,r.default)(a))*l),0===p&&(v+=(p=(0,r.default)(a))*p),v<f&&(v=Math.sqrt(f*v)));do t.data!==o&&(d=s[t.data.index]*u/v,o.vx+=l*d,o.vy+=p*d);while(t=t.next)}}return p.initialize=function(n,e){t=n,a=e,d()},p.strength=function(t){return arguments.length?(l="function"==typeof t?t:(0,e.default)(+t),d(),p):l},p.distanceMin=function(t){return arguments.length?(f=t*t,p):Math.sqrt(f)},p.distanceMax=function(t){return arguments.length?(h=t*t,p):Math.sqrt(h)},p.theta=function(t){return arguments.length?(c=t*t,p):Math.sqrt(c)},p}],17983)},909,t=>{"use strict";var n=t.i(91889),e=t.i(60208),r=Math.PI*(3-Math.sqrt(5));t.s(["default",0,function(t){let i;var o,a=1,u=.001,s=1-Math.pow(.001,1/300),l=0,f=.6,h=new Map,c=(0,e.timer)(v),p=(0,n.dispatch)("tick","end"),d=(i=1,()=>(i=(1664525*i+0x3c6ef35f)%0x100000000)/0x100000000);function v(){y(),p.call("tick",o),a<u&&(c.stop(),p.call("end",o))}function y(n){var e,r,i=t.length;void 0===n&&(n=1);for(var u=0;u<n;++u)for(a+=(l-a)*s,h.forEach(function(t){t(a)}),e=0;e<i;++e)null==(r=t[e]).fx?r.x+=r.vx*=f:(r.x=r.fx,r.vx=0),null==r.fy?r.y+=r.vy*=f:(r.y=r.fy,r.vy=0);return o}function g(){for(var n,e=0,i=t.length;e<i;++e){if((n=t[e]).index=e,null!=n.fx&&(n.x=n.fx),null!=n.fy&&(n.y=n.fy),isNaN(n.x)||isNaN(n.y)){var o=10*Math.sqrt(.5+e),a=e*r;n.x=o*Math.cos(a),n.y=o*Math.sin(a)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function _(n){return n.initialize&&n.initialize(t,d),n}return null==t&&(t=[]),g(),o={tick:y,restart:function(){return c.restart(v),o},stop:function(){return c.stop(),o},nodes:function(n){return arguments.length?(t=n,g(),h.forEach(_),o):t},alpha:function(t){return arguments.length?(a=+t,o):a},alphaMin:function(t){return arguments.length?(u=+t,o):u},alphaDecay:function(t){return arguments.length?(s=+t,o):+s},alphaTarget:function(t){return arguments.length?(l=+t,o):l},velocityDecay:function(t){return arguments.length?(f=1-t,o):1-f},randomSource:function(t){return arguments.length?(d=t,h.forEach(_),o):d},force:function(t,n){return arguments.length>1?(null==n?h.delete(t):h.set(t,_(n)),o):h.get(t)},find:function(n,e,r){var i,o,a,u,s,l=0,f=t.length;for(null==r?r=1/0:r*=r,l=0;l<f;++l)(a=(i=n-(u=t[l]).x)*i+(o=e-u.y)*o)<r&&(s=u,r=a);return s},on:function(t,n){return arguments.length>1?(p.on(t,n),o):p.on(t)}}},"x",0,function(t){return t.x},"y",0,function(t){return t.y}],909)},43079,t=>{"use strict";var n=t.i(909);t.s(["forceSimulation",()=>n.default])},50768,t=>{"use strict";function n(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,s,l,f,h,c,p=t._root,d={data:r},v=t._x0,y=t._y0,g=t._x1,_=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((l=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(a=(y+_)/2))?y=a:_=a,i=p,!(p=p[h=f<<1|l]))return i[h]=d,t;if(u=+t._x.call(null,p.data),s=+t._y.call(null,p.data),n===u&&e===s)return d.next=p,i?i[h]=d:t._root=d,t;do i=i?i[h]=[,,,,]:t._root=[,,,,],(l=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(a=(y+_)/2))?y=a:_=a;while((h=f<<1|l)==(c=(s>=a)<<1|u>=o))return i[c]=p,i[h]=d,t}function e(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function r(t){return t[0]}function i(t){return t[1]}function o(t,n,e){var o=new a(null==n?r:n,null==e?i:e,NaN,NaN,NaN,NaN);return null==t?o:o.addAll(t)}function a(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function u(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var s=o.prototype=a.prototype;s.copy=function(){var t,n,e=new a(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=u(r),e;for(t=[{source:r,target:e._root=[,,,,]}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=[,,,,]}):r.target[i]=u(n));return e},s.add=function(t){let e=+this._x.call(null,t),r=+this._y.call(null,t);return n(this.cover(e,r),e,r,t)},s.addAll=function(t){var e,r,i,o,a=t.length,u=Array(a),s=Array(a),l=1/0,f=1/0,h=-1/0,c=-1/0;for(r=0;r<a;++r)!(isNaN(i=+this._x.call(null,e=t[r]))||isNaN(o=+this._y.call(null,e)))&&(u[r]=i,s[r]=o,i<l&&(l=i),i>h&&(h=i),o<f&&(f=o),o>c&&(c=o));if(l>h||f>c)return this;for(this.cover(l,f).cover(h,c),r=0;r<a;++r)n(this,u[r],s[r],t[r]);return this},s.cover=function(t,n){if(isNaN(t*=1)||isNaN(n*=1))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{for(var a,u,s=i-e||1,l=this._root;e>t||t>=i||r>n||n>=o;)switch(u=(n<r)<<1|t<e,(a=[,,,,])[u]=l,l=a,s*=2,u){case 0:i=e+s,o=r+s;break;case 1:e=i-s,o=r+s;break;case 2:i=e+s,r=o-s;break;case 3:e=i-s,r=o-s}this._root&&this._root.length&&(this._root=l)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},s.data=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},s.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},s.find=function(t,n,r){var i,o,a,u,s,l,f,h=this._x0,c=this._y0,p=this._x1,d=this._y1,v=[],y=this._root;for(y&&v.push(new e(y,h,c,p,d)),null==r?r=1/0:(h=t-r,c=n-r,p=t+r,d=n+r,r*=r);l=v.pop();)if((y=l.node)&&!((o=l.x0)>p)&&!((a=l.y0)>d)&&!((u=l.x1)<h)&&!((s=l.y1)<c))if(y.length){var g=(o+u)/2,_=(a+s)/2;v.push(new e(y[3],g,_,u,s),new e(y[2],o,_,g,s),new e(y[1],g,a,u,_),new e(y[0],o,a,g,_)),(f=(n>=_)<<1|t>=g)&&(l=v[v.length-1],v[v.length-1]=v[v.length-1-f],v[v.length-1-f]=l)}else{var m=t-this._x.call(null,y.data),x=n-this._y.call(null,y.data),w=m*m+x*x;if(w<r){var b=Math.sqrt(r=w);h=t-b,c=n-b,p=t+b,d=n+b,i=y.data}}return i},s.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var n,e,r,i,o,a,u,s,l,f,h,c,p=this._root,d=this._x0,v=this._y0,y=this._x1,g=this._y1;if(!p)return this;if(p.length)for(;;){if((l=o>=(u=(d+y)/2))?d=u:y=u,(f=a>=(s=(v+g)/2))?v=s:g=s,n=p,!(p=p[h=f<<1|l]))return this;if(!p.length)break;(n[h+1&3]||n[h+2&3]||n[h+3&3])&&(e=n,c=h)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return((i=p.next)&&delete p.next,r)?i?r.next=i:delete r.next:n?(i?n[h]=i:delete n[h],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[c]=p:this._root=p)):this._root=i,this},s.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},s.root=function(){return this._root},s.size=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},s.visit=function(t){var n,r,i,o,a,u,s=[],l=this._root;for(l&&s.push(new e(l,this._x0,this._y0,this._x1,this._y1));n=s.pop();)if(!t(l=n.node,i=n.x0,o=n.y0,a=n.x1,u=n.y1)&&l.length){var f=(i+a)/2,h=(o+u)/2;(r=l[3])&&s.push(new e(r,f,h,a,u)),(r=l[2])&&s.push(new e(r,i,h,f,u)),(r=l[1])&&s.push(new e(r,f,o,a,h)),(r=l[0])&&s.push(new e(r,i,o,f,h))}return this},s.visitAfter=function(t){var n,r=[],i=[];for(this._root&&r.push(new e(this._root,this._x0,this._y0,this._x1,this._y1));n=r.pop();){var o=n.node;if(o.length){var a,u=n.x0,s=n.y0,l=n.x1,f=n.y1,h=(u+l)/2,c=(s+f)/2;(a=o[0])&&r.push(new e(a,u,s,h,c)),(a=o[1])&&r.push(new e(a,h,s,l,c)),(a=o[2])&&r.push(new e(a,u,c,h,f)),(a=o[3])&&r.push(new e(a,h,c,l,f))}i.push(n)}for(;n=i.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},s.x=function(t){return arguments.length?(this._x=t,this):this._x},s.y=function(t){return arguments.length?(this._y=t,this):this._y},t.s(["quadtree",0,o],50768)},47716,91889,57161,48708,23685,36377,90273,561,60208,7394,36755,t=>{"use strict";t.s(["Selection",()=>U,"default",()=>G,"root",()=>L],48708);var n,e={value:()=>{}};function r(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw Error("illegal type: "+t);r[t]=[]}return new i(r)}function i(t){this._=t}function o(t,n,r){for(var i=0,o=t.length;i<o;++i)if(t[i].name===n){t[i]=e,t=t.slice(0,i).concat(t.slice(i+1));break}return null!=r&&t.push({name:n,value:r}),t}function a(){}function u(t){return null==t?a:function(){return this.querySelector(t)}}function s(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function l(){return[]}function f(t){return null==t?l:function(){return this.querySelectorAll(t)}}function h(t){return function(){return this.matches(t)}}function c(t){return function(n){return n.matches(t)}}i.prototype=r.prototype={constructor:i,on:function(t,n){var e,r=this._,i=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw Error("unknown type: "+t);return{type:t,name:n}}),a=-1,u=i.length;if(arguments.length<2){for(;++a<u;)if((e=(t=i[a]).type)&&(e=function(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}(r[e],t.name)))return e;return}if(null!=n&&"function"!=typeof n)throw Error("invalid callback: "+n);for(;++a<u;)if(e=(t=i[a]).type)r[e]=o(r[e],t.name,n);else if(null==n)for(e in r)r[e]=o(r[e],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new i(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}},t.s(["dispatch",0,r],91889),t.s(["default",0,s],57161);var p=Array.prototype.find;function d(){return this.firstElementChild}var v=Array.prototype.filter;function y(){return Array.from(this.children)}function g(t){return Array(t.length)}function _(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function m(t,n,e,r,i,o){for(var a,u=0,s=n.length,l=o.length;u<l;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new _(t,o[u]);for(;u<s;++u)(a=n[u])&&(i[u]=a)}function x(t,n,e,r,i,o,a){var u,s,l,f=new Map,h=n.length,c=o.length,p=Array(h);for(u=0;u<h;++u)(s=n[u])&&(p[u]=l=a.call(s,s.__data__,u,n)+"",f.has(l)?i[u]=s:f.set(l,s));for(u=0;u<c;++u)l=a.call(t,o[u],u,o)+"",(s=f.get(l))?(r[u]=s,s.__data__=o[u],f.delete(l)):e[u]=new _(t,o[u]);for(u=0;u<h;++u)(s=n[u])&&f.get(p[u])===s&&(i[u]=s)}function w(t){return t.__data__}function b(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}_.prototype={constructor:_,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var N="http://www.w3.org/1999/xhtml";let M={svg:"http://www.w3.org/2000/svg",xhtml:N,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function k(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),M.hasOwnProperty(n)?{space:M[n],local:t}:t}function A(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function E(t,n){return t.style.getPropertyValue(n)||A(t).getComputedStyle(t,null).getPropertyValue(n)}function z(t){return t.trim().split(/^|\s+/)}function S(t){return t.classList||new $(t)}function $(t){this._node=t,this._names=z(t.getAttribute("class")||"")}function T(t,n){for(var e=S(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function q(t,n){for(var e=S(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function C(){this.textContent=""}function P(){this.innerHTML=""}function X(){this.nextSibling&&this.parentNode.appendChild(this)}function R(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function O(t){var n=k(t);return(n.local?function(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}:function(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===N&&n.documentElement.namespaceURI===N?n.createElement(t):n.createElementNS(e,t)}})(n)}function Y(){return null}function B(){var t=this.parentNode;t&&t.removeChild(this)}function D(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function I(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function j(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)(e=n[r],t.type&&e.type!==t.type||e.name!==t.name)?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function H(t,n,e){return function(){var r,i=this.__on,o=function(t){n.call(this,t,this.__data__)};if(i){for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=e),r.value=n;return}}this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function V(t,n,e){var r=A(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}$.prototype={add:function(t){0>this._names.indexOf(t)&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var L=[null];function U(t,n){this._groups=t,this._parents=n}function K(){return new U([[document.documentElement]],L)}U.prototype=K.prototype={constructor:U,select:function(t){"function"!=typeof t&&(t=u(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a,s=n[i],l=s.length,f=r[i]=Array(l),h=0;h<l;++h)(o=s[h])&&(a=t.call(o,o.__data__,h,s))&&("__data__"in o&&(a.__data__=o.__data__),f[h]=a);return new U(r,this._parents)},selectAll:function(t){if("function"==typeof t){var n;n=t,t=function(){return s(n.apply(this,arguments))}}else t=f(t);for(var e=this._groups,r=e.length,i=[],o=[],a=0;a<r;++a)for(var u,l=e[a],h=l.length,c=0;c<h;++c)(u=l[c])&&(i.push(t.call(u,u.__data__,c,l)),o.push(u));return new U(i,o)},selectChild:function(t){var n;return this.select(null==t?d:(n="function"==typeof t?t:c(t),function(){return p.call(this.children,n)}))},selectChildren:function(t){var n;return this.selectAll(null==t?y:(n="function"==typeof t?t:c(t),function(){return v.call(this.children,n)}))},filter:function(t){"function"!=typeof t&&(t=h(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new U(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,w);var e=n?x:m,r=this._parents,i=this._groups;"function"!=typeof t&&(_=t,t=function(){return _});for(var o=i.length,a=Array(o),u=Array(o),s=Array(o),l=0;l<o;++l){var f=r[l],h=i[l],c=h.length,p="object"==typeof(g=t.call(f,f&&f.__data__,l,r))&&"length"in g?g:Array.from(g),d=p.length,v=u[l]=Array(d),y=a[l]=Array(d);e(f,h,v,y,s[l]=Array(c),p,n);for(var g,_,b,N,M=0,k=0;M<d;++M)if(b=v[M]){for(M>=k&&(k=M+1);!(N=y[k])&&++k<d;);b._next=N||null}}return(a=new U(a,r))._enter=u,a._exit=s,a},enter:function(){return new U(this._enter||this._groups.map(g),this._parents)},exit:function(){return new U(this._exit||this._groups.map(g),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,a=Math.min(i,o),u=Array(i),s=0;s<a;++s)for(var l,f=e[s],h=r[s],c=f.length,p=u[s]=Array(c),d=0;d<c;++d)(l=f[d]||h[d])&&(p[d]=l);for(;s<i;++s)u[s]=e[s];return new U(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=b);for(var e=this._groups,r=e.length,i=Array(r),o=0;o<r;++o){for(var a,u=e[o],s=u.length,l=i[o]=Array(s),f=0;f<s;++f)(a=u[f])&&(l[f]=a);l.sort(n)}return new U(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(let n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=k(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}}:"function"==typeof n?e.local?function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}:function(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}:e.local?function(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}:function(t,n){return function(){this.setAttribute(t,n)}})(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?function(t){return function(){this.style.removeProperty(t)}}:"function"==typeof n?function(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}:function(t,n,e){return function(){this.style.setProperty(t,n,e)}})(t,n,null==e?"":e)):E(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?function(t){return function(){delete this[t]}}:"function"==typeof n?function(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}:function(t,n){return function(){this[t]=n}})(t,n)):this.node()[t]},classed:function(t,n){var e=z(t+"");if(arguments.length<2){for(var r=S(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?function(t,n){return function(){(n.apply(this,arguments)?T:q)(this,t)}}:n?function(t){return function(){T(this,t)}}:function(t){return function(){q(this,t)}})(e,n))},text:function(t){return arguments.length?this.each(null==t?C:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}:function(t){return function(){this.textContent=t}})(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?P:("function"==typeof t?function(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}:function(t){return function(){this.innerHTML=t}})(t)):this.node().innerHTML},raise:function(){return this.each(X)},lower:function(){return this.each(R)},append:function(t){var n="function"==typeof t?t:O(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},insert:function(t,n){var e="function"==typeof t?t:O(t),r=null==n?Y:"function"==typeof n?n:u(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},remove:function(){return this.each(B)},clone:function(t){return this.select(t?I:D)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=(t+"").trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}),a=o.length;if(arguments.length<2){var u=this.node().__on;if(u){for(var s,l=0,f=u.length;l<f;++l)for(r=0,s=u[l];r<a;++r)if((i=o[r]).type===s.type&&i.name===s.name)return s.value}return}for(u=n?H:j,r=0;r<a;++r)this.each(u(o[r],n,e));return this},dispatch:function(t,n){return this.each(("function"==typeof n?function(t,n){return function(){return V(this,t,n.apply(this,arguments))}}:function(t,n){return function(){return V(this,t,n)}})(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};let G=K;function W(t){return"string"==typeof t?new U([[document.querySelector(t)]],[document.documentElement]):new U([[t]],L)}t.s(["select",0,W],23685);let F={capture:!0,passive:!1};function Q(t){t.preventDefault(),t.stopImmediatePropagation()}function J(t){var n=t.document.documentElement,e=W(t).on("dragstart.drag",Q,F);"onselectstart"in n?e.on("selectstart.drag",Q,F):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function Z(t,n){var e=t.document.documentElement,r=W(t).on("dragstart.drag",null);n&&(r.on("click.drag",Q,F),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function tt(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function tn(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function te(){}t.s(["default",0,Q,"nonpassive",0,{passive:!1},"nonpassivecapture",0,F,"nopropagation",0,function(t){t.stopImmediatePropagation()}],36377),t.s(["default",0,J,"yesdrag",0,Z],90273);var tr="\\s*([+-]?\\d+)\\s*",ti="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",to="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ta=/^#([0-9a-f]{3,8})$/,tu=RegExp(`^rgb\\(${tr},${tr},${tr}\\)$`),ts=RegExp(`^rgb\\(${to},${to},${to}\\)$`),tl=RegExp(`^rgba\\(${tr},${tr},${tr},${ti}\\)$`),tf=RegExp(`^rgba\\(${to},${to},${to},${ti}\\)$`),th=RegExp(`^hsl\\(${ti},${to},${to}\\)$`),tc=RegExp(`^hsla\\(${ti},${to},${to},${ti}\\)$`),tp={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function td(){return this.rgb().formatHex()}function tv(){return this.rgb().formatRgb()}function ty(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=ta.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?tg(n):3===e?new tx(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?t_(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?t_(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=tu.exec(t))?new tx(n[1],n[2],n[3],1):(n=ts.exec(t))?new tx(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=tl.exec(t))?t_(n[1],n[2],n[3],n[4]):(n=tf.exec(t))?t_(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=th.exec(t))?tA(n[1],n[2]/100,n[3]/100,1):(n=tc.exec(t))?tA(n[1],n[2]/100,n[3]/100,n[4]):tp.hasOwnProperty(t)?tg(tp[t]):"transparent"===t?new tx(NaN,NaN,NaN,0):null}function tg(t){return new tx(t>>16&255,t>>8&255,255&t,1)}function t_(t,n,e,r){return r<=0&&(t=n=e=NaN),new tx(t,n,e,r)}function tm(t,n,e,r){var i;return 1==arguments.length?((i=t)instanceof te||(i=ty(i)),i)?new tx((i=i.rgb()).r,i.g,i.b,i.opacity):new tx:new tx(t,n,e,null==r?1:r)}function tx(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function tw(){return`#${tk(this.r)}${tk(this.g)}${tk(this.b)}`}function tb(){let t=tN(this.opacity);return`${1===t?"rgb(":"rgba("}${tM(this.r)}, ${tM(this.g)}, ${tM(this.b)}${1===t?")":`, ${t})`}`}function tN(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function tM(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function tk(t){return((t=tM(t))<16?"0":"")+t.toString(16)}function tA(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new tz(t,n,e,r)}function tE(t){if(t instanceof tz)return new tz(t.h,t.s,t.l,t.opacity);if(t instanceof te||(t=ty(t)),!t)return new tz;if(t instanceof tz)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,s=(o+i)/2;return u?(a=n===o?(e-r)/u+(e<r)*6:e===o?(r-n)/u+2:(n-e)/u+4,u/=s<.5?o+i:2-o-i,a*=60):u=s>0&&s<1?0:a,new tz(a,u,s,t.opacity)}function tz(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function tS(t){return(t=(t||0)%360)<0?t+360:t}function t$(t){return Math.max(0,Math.min(1,t||0))}function tT(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}function tq(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}tt(te,ty,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:td,formatHex:td,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return tE(this).formatHsl()},formatRgb:tv,toString:tv}),tt(tx,tm,tn(te,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new tx(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new tx(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new tx(tM(this.r),tM(this.g),tM(this.b),tN(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:tw,formatHex:tw,formatHex8:function(){return`#${tk(this.r)}${tk(this.g)}${tk(this.b)}${tk((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:tb,toString:tb})),tt(tz,function(t,n,e,r){return 1==arguments.length?tE(t):new tz(t,n,e,null==r?1:r)},tn(te,{brighter(t){return t=null==t?1.4285714285714286:Math.pow(1.4285714285714286,t),new tz(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?.7:Math.pow(.7,t),new tz(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new tx(tT(t>=240?t-240:t+120,i,r),tT(t,i,r),tT(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new tz(tS(this.h),t$(this.s),t$(this.l),tN(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let t=tN(this.opacity);return`${1===t?"hsl(":"hsla("}${tS(this.h)}, ${100*t$(this.s)}%, ${100*t$(this.l)}%${1===t?")":`, ${t})`}`}}));let tC=t=>()=>t;function tP(t,n){var e=n-t;return e?function(n){return t+n*e}:tC(isNaN(t)?n:t)}let tX=function t(n){var e,r=1==(e=+n)?tP:function(t,n){var r,i,o;return n-t?(r=t,i=n,r=Math.pow(r,o=e),i=Math.pow(i,o)-r,o=1/o,function(t){return Math.pow(r+t*i,o)}):tC(isNaN(t)?n:t)};function i(t,n){var e=r((t=tm(t)).r,(n=tm(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),a=tP(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return i.gamma=t,i}(1);function tR(t){return function(n){var e,r,i=n.length,o=Array(i),a=Array(i),u=Array(i);for(e=0;e<i;++e)r=tm(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}function tO(t,n){return t*=1,n*=1,function(e){return t*(1-e)+n*e}}tR(function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return tq((e-r/n)*n,a,i,o,u)}}),tR(function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return tq((e-r/n)*n,i,o,a,u)}});var tY=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,tB=RegExp(tY.source,"g");function tD(t,n){if(t=function(t){let n;for(;n=t.sourceEvent;)t=n;return t}(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(n.getScreenCTM().inverse())).x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}t.s(["pointer",0,tD],561);var tI,tj,tH=0,tV=0,tL=0,tU=0,tK=0,tG=0,tW="object"==typeof performance&&performance.now?performance:Date,tF="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function tQ(){return tK||(tF(tJ),tK=tW.now()+tG)}function tJ(){tK=0}function tZ(){this._call=this._time=this._next=null}function t0(t,n,e){var r=new tZ;return r.restart(t,n,e),r}function t1(){tK=(tU=tW.now())+tG,tH=tV=0;try{tQ(),++tH;for(var t,n=tI;n;)(t=tK-n._time)>=0&&n._call.call(void 0,t),n=n._next;--tH}finally{tH=0,function(){for(var t,n,e=tI,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:tI=n);tj=t,t5(r)}(),tK=0}}function t2(){var t=tW.now(),n=t-tU;n>1e3&&(tG-=n,tU=t)}function t5(t){!tH&&(tV&&(tV=clearTimeout(tV)),t-tK>24?(t<1/0&&(tV=setTimeout(t1,t-tW.now()-tG)),tL&&(tL=clearInterval(tL))):(tL||(tU=tW.now(),tL=setInterval(t2,1e3)),tH=1,tF(t1)))}function t3(t,n,e){var r=new tZ;return n=null==n?0:+n,r.restart(e=>{r.stop(),t(e+n)},n,e),r}tZ.prototype=t0.prototype={constructor:tZ,restart:function(t,n,e){if("function"!=typeof t)throw TypeError("callback is not a function");e=(null==e?tQ():+e)+(null==n?0:+n),this._next||tj===this||(tj?tj._next=this:tI=this,tj=this),this._call=t,this._time=e,t5()},stop:function(){this._call&&(this._call=null,this._time=1/0,t5())}},t.s(["Timer",0,tZ,"now",0,tQ,"timer",0,t0],60208);var t8=r("start","end","cancel","interrupt"),t6=[];function t4(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(s){var l,f,h,c;if(1!==e.state)return u();for(l in i)if((c=i[l]).name===e.name){if(3===c.state)return t3(o);4===c.state?(c.state=6,c.timer.stop(),c.on.call("interrupt",t,t.__data__,c.index,c.group),delete i[l]):+l<n&&(c.state=6,c.timer.stop(),c.on.call("cancel",t,t.__data__,c.index,c.group),delete i[l])}if(t3(function(){3===e.state&&(e.state=4,e.timer.restart(a,e.delay,e.time),a(s))}),e.state=2,e.on.call("start",t,t.__data__,e.index,e.group),2===e.state){for(e.state=3,r=Array(h=e.tween.length),l=0,f=-1;l<h;++l)(c=e.tween[l].value.call(t,t.__data__,e.index,e.group))&&(r[++f]=c);r.length=f+1}}function a(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===e.state&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){for(var r in e.state=6,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=t0(function(t){e.state=1,e.timer.restart(o,e.delay,e.time),e.delay<=t&&o(t-e.delay)},0,e.time)}(t,e,{name:n,index:r,group:i,on:t8,tween:t6,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:0})}function t9(t,n){var e=nt(t,n);if(e.state>0)throw Error("too late; already scheduled");return e}function t7(t,n){var e=nt(t,n);if(e.state>3)throw Error("too late; already running");return e}function nt(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw Error("transition not found");return e}function nn(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o){if((e=o[i]).name!==n){a=!1;continue}r=e.state>2&&e.state<5,e.state=6,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]}a&&delete t.__transition}}var ne=180/Math.PI,nr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ni(t,n,e,r,i,o){var a,u,s;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,s/=u),t*r<n*e&&(t=-t,n=-n,s=-s,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*ne,skewX:Math.atan(s)*ne,scaleX:a,scaleY:u}}function no(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u,s,l,f,h=[],c=[];return o=t(o),a=t(a),!function(t,r,i,o,a,u){if(t!==i||r!==o){var s=a.push("translate(",null,n,null,e);u.push({i:s-4,x:tO(t,i)},{i:s-2,x:tO(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,h,c),u=o.rotate,s=a.rotate,u!==s?(u-s>180?s+=360:s-u>180&&(u+=360),c.push({i:h.push(i(h)+"rotate(",null,r)-2,x:tO(u,s)})):s&&h.push(i(h)+"rotate("+s+r),l=o.skewX,f=a.skewX,l!==f?c.push({i:h.push(i(h)+"skewX(",null,r)-2,x:tO(l,f)}):f&&h.push(i(h)+"skewX("+f+r),!function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:tO(t,e)},{i:u-2,x:tO(n,r)})}else(1!==e||1!==r)&&o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,h,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e<r;)h[(n=c[e]).i]=n.x(t);return h.join("")}}}var na=no(function(t){let n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?nr:ni(n.a,n.b,n.c,n.d,n.e,n.f)},"px, ","px)","deg)"),nu=no(function(t){return null==t?nr:(n||(n=document.createElementNS("http://www.w3.org/2000/svg","g")),n.setAttribute("transform",t),t=n.transform.baseVal.consolidate())?ni((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):nr},", ",")",")");function ns(t,n,e){var r=t._id;return t.each(function(){var t=t7(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return nt(t,r).value[n]}}function nl(t,n){var e;return("number"==typeof n?tO:n instanceof ty?tX:(e=ty(n))?(n=e,tX):function(t,n){var e,r,i,o,a,u=tY.lastIndex=tB.lastIndex=0,s=-1,l=[],f=[];for(t+="",n+="";(i=tY.exec(t))&&(o=tB.exec(n));)(a=o.index)>u&&(a=n.slice(u,a),l[s]?l[s]+=a:l[++s]=a),(i=i[0])===(o=o[0])?l[s]?l[s]+=o:l[++s]=o:(l[++s]=null,f.push({i:s,x:tO(i,o)})),u=tB.lastIndex;return u<n.length&&(a=n.slice(u),l[s]?l[s]+=a:l[++s]=a),l.length<2?f[0]?(e=f[0].x,function(t){return e(t)+""}):(r=n,function(){return r}):(n=f.length,function(t){for(var e,r=0;r<n;++r)l[(e=f[r]).i]=e.x(t);return l.join("")})})(t,n)}var nf=G.prototype.constructor;function nh(t){return function(){this.style.removeProperty(t)}}var nc=0;function np(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}var nd=G.prototype;np.prototype=(function(t){return G().transition(t)}).prototype={constructor:np,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=u(t));for(var r=this._groups,i=r.length,o=Array(i),a=0;a<i;++a)for(var s,l,f=r[a],h=f.length,c=o[a]=Array(h),p=0;p<h;++p)(s=f[p])&&(l=t.call(s,s.__data__,p,f))&&("__data__"in s&&(l.__data__=s.__data__),c[p]=l,t4(c[p],n,e,p,c,nt(s,e)));return new np(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=f(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var s,l=r[u],h=l.length,c=0;c<h;++c)if(s=l[c]){for(var p,d=t.call(s,s.__data__,c,l),v=nt(s,e),y=0,g=d.length;y<g;++y)(p=d[y])&&t4(p,n,e,y,d,v);o.push(d),a.push(s)}return new np(o,a,n,e)},selectChild:nd.selectChild,selectChildren:nd.selectChildren,filter:function(t){"function"!=typeof t&&(t=h(t));for(var n=this._groups,e=n.length,r=Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,s=r[i]=[],l=0;l<u;++l)(o=a[l])&&t.call(o,o.__data__,l,a)&&s.push(o);return new np(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw Error();for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=Array(r),u=0;u<o;++u)for(var s,l=n[u],f=e[u],h=l.length,c=a[u]=Array(h),p=0;p<h;++p)(s=l[p]||f[p])&&(c[p]=s);for(;u<r;++u)a[u]=n[u];return new np(a,this._parents,this._name,this._id)},selection:function(){return new nf(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=++nc,r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)if(a=u[l]){var f=nt(a,n);t4(a,t,e,l,u,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new np(r,this._parents,t,e)},call:nd.call,nodes:nd.nodes,node:nd.node,size:nd.size,empty:nd.empty,each:nd.each,on:function(t,n){var e,r,i,o,a,u,s=this._id;return arguments.length<2?nt(this.node(),s).on.on(t):this.each((e=s,r=t,i=n,u=(r+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})?t9:t7,function(){var t=u(this,e),n=t.on;n!==o&&(a=(o=n).copy()).on(r,i),t.on=a}))},attr:function(t,n){var e=k(t),r="transform"===e?nu:nl;return this.attrTween(t,"function"==typeof n?(e.local?function(t,n,e){var r,i,o;return function(){var a,u,s=e(this);return null==s?void this.removeAttributeNS(t.space,t.local):(a=this.getAttributeNS(t.space,t.local))===(u=s+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,s))}}:function(t,n,e){var r,i,o;return function(){var a,u,s=e(this);return null==s?void this.removeAttribute(t):(a=this.getAttribute(t))===(u=s+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,s))}})(e,r,ns(this,"attr."+t,n)):null==n?(e.local?function(t){return function(){this.removeAttributeNS(t.space,t.local)}}:function(t){return function(){this.removeAttribute(t)}})(e):(e.local?function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}:function(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}})(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw Error();var r=k(t);return this.tween(e,(r.local?function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttributeNS(t.space,t.local,i.call(this,n))}),e}return i._value=n,i}:function(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(n){this.setAttribute(t,i.call(this,n))}),e}return i._value=n,i})(r,n))},style:function(t,n,e){var r,i,o,a,u,s,l,f,h,c,p,d,v,y,g,_,m,x,w,b,N,M="transform"==(t+="")?na:nl;return null==n?this.styleTween(t,(r=t,function(){var t=E(this,r),n=(this.style.removeProperty(r),E(this,r));return t===n?null:t===i&&n===o?a:a=M(i=t,o=n)})).on("end.style."+t,nh(t)):"function"==typeof n?this.styleTween(t,(u=t,s=ns(this,"style."+t,n),function(){var t=E(this,u),n=s(this),e=n+"";return null==n&&(this.style.removeProperty(u),e=n=E(this,u)),t===e?null:t===l&&e===f?h:(f=e,h=M(l=t,n))})).each((c=this._id,m="end."+(_="style."+(p=t)),function(){var t=t7(this,c),n=t.on,e=null==t.value[_]?g||(g=nh(p)):void 0;(n!==d||y!==e)&&(v=(d=n).copy()).on(m,y=e),t.on=v})):this.styleTween(t,(x=t,N=n+"",function(){var t=E(this,x);return t===N?null:t===w?b:b=M(w=t,n)}),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw Error();return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(n){this.style.setProperty(t,o.call(this,n),e)}),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){var n,e;return this.tween("text","function"==typeof t?(n=ns(this,"text",t),function(){var t=n(this);this.textContent=null==t?"":t}):(e=null==t?"":t+"",function(){this.textContent=e}))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw Error();return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){this.textContent=r.call(this,t)}),n}return r._value=t,r}(t))},remove:function(){var t;return this.on("end.remove",(t=this._id,function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=nt(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?function(t,n){var e,r;return function(){var i=t7(this,t),o=i.tween;if(o!==e){r=e=o;for(var a=0,u=r.length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}}i.tween=r}}:function(t,n,e){var r,i;if("function"!=typeof e)throw Error();return function(){var o=t7(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=u;break}s===l&&i.push(u)}o.tween=i}})(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){t9(this,t).delay=+n.apply(this,arguments)}}:function(t,n){return n*=1,function(){t9(this,t).delay=n}})(n,t)):nt(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?function(t,n){return function(){t7(this,t).duration=+n.apply(this,arguments)}}:function(t,n){return n*=1,function(){t7(this,t).duration=n}})(n,t)):nt(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw Error();return function(){t7(this,t).ease=n}}(n,t)):nt(this.node(),n).ease},easeVarying:function(t){var n;if("function"!=typeof t)throw Error();return this.each((n=this._id,function(){var e=t.apply(this,arguments);if("function"!=typeof e)throw Error();t7(this,n).ease=e}))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(o,a){var u={value:a},s={value:function(){0==--i&&o()}};e.each(function(){var e=t7(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(u),n._.interrupt.push(u),n._.end.push(s)),e.on=n}),0===i&&o()})},[Symbol.iterator]:nd[Symbol.iterator]};var nv={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};G.prototype.interrupt=function(t){return this.each(function(){nn(this,t)})},G.prototype.transition=function(t){var n,e;t instanceof np?(n=t._id,t=t._name):(n=++nc,(e=nv).time=tQ(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],s=u.length,l=0;l<s;++l)(a=u[l])&&t4(a,t,n,l,u,e||function(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw Error(`transition ${n} not found`);return e}(a,n));return new np(r,this._parents,t,n)};let{abs:ny,max:ng,min:n_}=Math;function nm(t){return{type:t}}function nx(t){return((t=Math.exp(t))+1/t)/2}["w","e"].map(nm),["n","s"].map(nm),["n","w","e","s","nw","ne","sw","se"].map(nm);let nw=function t(n,e,r){function i(t,i){var o,a,u=t[0],s=t[1],l=t[2],f=i[0],h=i[1],c=i[2],p=f-u,d=h-s,v=p*p+d*d;if(v<1e-12)a=Math.log(c/l)/n,o=function(t){return[u+t*p,s+t*d,l*Math.exp(n*t*a)]};else{var y=Math.sqrt(v),g=(c*c-l*l+r*v)/(2*l*e*y),_=(c*c-l*l-r*v)/(2*c*e*y),m=Math.log(Math.sqrt(g*g+1)-g);a=(Math.log(Math.sqrt(_*_+1)-_)-m)/n,o=function(t){var r,i,o=t*a,f=nx(m),h=l/(e*y)*(f*(((r=Math.exp(2*(r=n*o+m)))-1)/(r+1))-((i=Math.exp(i=m))-1/i)/2);return[u+h*p,s+h*d,l*f/nx(n*o+m)]}}return o.duration=1e3*a*n/Math.SQRT2,o}return i.rho=function(n){var e=Math.max(.001,+n),r=e*e;return t(e,r,r*r)},i}(Math.SQRT2,2,4),nb=t=>()=>t;function nN(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function nM(t,n,e){this.k=t,this.x=n,this.y=e}nM.prototype={constructor:nM,scale:function(t){return 1===t?this:new nM(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new nM(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var nk=new nM(1,0,0);function nA(t){for(;!t.__zoom;)if(!(t=t.parentNode))return nk;return t.__zoom}function nE(t){t.stopImmediatePropagation()}function nz(t){t.preventDefault(),t.stopImmediatePropagation()}function nS(t){return(!t.ctrlKey||"wheel"===t.type)&&!t.button}function n$(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function nT(){return this.__zoom||nk}function nq(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function nC(){return navigator.maxTouchPoints||"ontouchstart"in this}function nP(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}nA.prototype=nM.prototype,t.s(["Transform",0,nM,"default",0,nA,"identity",0,nk],7394),t.s(["default",0,function(){var t,n,e,i=nS,o=n$,a=nP,u=nq,s=nC,l=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],h=250,c=nw,p=r("start","zoom","end"),d=0,v=10;function y(t){t.property("__zoom",nT).on("wheel.zoom",N,{passive:!1}).on("mousedown.zoom",M).on("dblclick.zoom",k).filter(s).on("touchstart.zoom",A).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",z).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function g(t,n){return(n=Math.max(l[0],Math.min(l[1],n)))===t.k?t:new nM(n,t.x,t.y)}function _(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new nM(t.k,r,i)}function m(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function x(t,n,e,r){t.on("start.zoom",function(){w(this,arguments).event(r).start()}).on("interrupt.zoom end.zoom",function(){w(this,arguments).event(r).end()}).tween("zoom",function(){var t=arguments,i=w(this,t).event(r),a=o.apply(this,t),u=null==e?m(a):"function"==typeof e?e.apply(this,t):e,s=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),l=this.__zoom,f="function"==typeof n?n.apply(this,t):n,h=c(l.invert(u).concat(s/l.k),f.invert(u).concat(s/f.k));return function(t){if(1===t)t=f;else{var n=h(t),e=s/n[2];t=new nM(e,u[0]-n[0]*e,u[1]-n[1]*e)}i.zoom(null,t)}})}function w(t,n,e){return!e&&t.__zooming||new b(t,n)}function b(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=o.apply(t,n),this.taps=0}function N(t,...n){if(i.apply(this,arguments)){var e=w(this,n).event(t),r=this.__zoom,o=Math.max(l[0],Math.min(l[1],r.k*Math.pow(2,u.apply(this,arguments)))),s=tD(t);if(e.wheel)(e.mouse[0][0]!==s[0]||e.mouse[0][1]!==s[1])&&(e.mouse[1]=r.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(r.k===o)return;e.mouse=[s,r.invert(s)],nn(this),e.start()}nz(t),e.wheel=setTimeout(function(){e.wheel=null,e.end()},150),e.zoom("mouse",a(_(g(r,o),e.mouse[0],e.mouse[1]),e.extent,f))}}function M(t,...n){if(!e&&i.apply(this,arguments)){var r=t.currentTarget,o=w(this,n,!0).event(t),u=W(t.view).on("mousemove.zoom",function(t){if(nz(t),!o.moved){var n=t.clientX-l,e=t.clientY-h;o.moved=n*n+e*e>d}o.event(t).zoom("mouse",a(_(o.that.__zoom,o.mouse[0]=tD(t,r),o.mouse[1]),o.extent,f))},!0).on("mouseup.zoom",function(t){u.on("mousemove.zoom mouseup.zoom",null),Z(t.view,o.moved),nz(t),o.event(t).end()},!0),s=tD(t,r),l=t.clientX,h=t.clientY;J(t.view),nE(t),o.mouse=[s,this.__zoom.invert(s)],nn(this),o.start()}}function k(t,...n){if(i.apply(this,arguments)){var e=this.__zoom,r=tD(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(r),s=e.k*(t.shiftKey?.5:2),l=a(_(g(e,s),r,u),o.apply(this,n),f);nz(t),h>0?W(this).transition().duration(h).call(x,l,r,t):W(this).call(y.transform,l,r,t)}}function A(e,...r){if(i.apply(this,arguments)){var o,a,u,s,l=e.touches,f=l.length,h=w(this,r,e.changedTouches.length===f).event(e);for(nE(e),a=0;a<f;++a)s=[s=tD(u=l[a],this),this.__zoom.invert(s),u.identifier],h.touch0?h.touch1||h.touch0[2]===s[2]||(h.touch1=s,h.taps=0):(h.touch0=s,o=!0,h.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(h.taps<2&&(n=s[0],t=setTimeout(function(){t=null},500)),nn(this),h.start())}}function E(t,...n){if(this.__zooming){var e,r,i,o,u=w(this,n).event(t),s=t.changedTouches,l=s.length;for(nz(t),e=0;e<l;++e)i=tD(r=s[e],this),u.touch0&&u.touch0[2]===r.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===r.identifier&&(u.touch1[0]=i);if(r=u.that.__zoom,u.touch1){var h=u.touch0[0],c=u.touch0[1],p=u.touch1[0],d=u.touch1[1],v=(v=p[0]-h[0])*v+(v=p[1]-h[1])*v,y=(y=d[0]-c[0])*y+(y=d[1]-c[1])*y;r=g(r,Math.sqrt(v/y)),i=[(h[0]+p[0])/2,(h[1]+p[1])/2],o=[(c[0]+d[0])/2,(c[1]+d[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],o=u.touch0[1]}u.zoom("touch",a(_(r,i,o),u.extent,f))}}function z(t,...r){if(this.__zooming){var i,o,a=w(this,r).event(t),u=t.changedTouches,s=u.length;for(nE(t),e&&clearTimeout(e),e=setTimeout(function(){e=null},500),i=0;i<s;++i)o=u[i],a.touch0&&a.touch0[2]===o.identifier?delete a.touch0:a.touch1&&a.touch1[2]===o.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(o=tD(o,this),Math.hypot(n[0]-o[0],n[1]-o[1])<v)){var l=W(this).on("dblclick.zoom");l&&l.apply(this,arguments)}}}return y.transform=function(t,n,e,r){var i=t.selection?t.selection():t;i.property("__zoom",nT),t!==i?x(t,n,e,r):i.interrupt().each(function(){w(this,arguments).event(r).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},y.scaleBy=function(t,n,e,r){y.scaleTo(t,function(){var t=this.__zoom.k,e="function"==typeof n?n.apply(this,arguments):n;return t*e},e,r)},y.scaleTo=function(t,n,e,r){y.transform(t,function(){var t=o.apply(this,arguments),r=this.__zoom,i=null==e?m(t):"function"==typeof e?e.apply(this,arguments):e,u=r.invert(i),s="function"==typeof n?n.apply(this,arguments):n;return a(_(g(r,s),i,u),t,f)},e,r)},y.translateBy=function(t,n,e,r){y.transform(t,function(){return a(this.__zoom.translate("function"==typeof n?n.apply(this,arguments):n,"function"==typeof e?e.apply(this,arguments):e),o.apply(this,arguments),f)},null,r)},y.translateTo=function(t,n,e,r,i){y.transform(t,function(){var t=o.apply(this,arguments),i=this.__zoom,u=null==r?m(t):"function"==typeof r?r.apply(this,arguments):r;return a(nk.translate(u[0],u[1]).scale(i.k).translate("function"==typeof n?-n.apply(this,arguments):-n,"function"==typeof e?-e.apply(this,arguments):-e),t,f)},r,i)},b.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var n=W(this.that).datum();p.call(t,this.that,new nN(t,{sourceEvent:this.sourceEvent,target:y,type:t,transform:this.that.__zoom,dispatch:p}),n)}},y.wheelDelta=function(t){return arguments.length?(u="function"==typeof t?t:nb(+t),y):u},y.filter=function(t){return arguments.length?(i="function"==typeof t?t:nb(!!t),y):i},y.touchable=function(t){return arguments.length?(s="function"==typeof t?t:nb(!!t),y):s},y.extent=function(t){return arguments.length?(o="function"==typeof t?t:nb([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),y):o},y.scaleExtent=function(t){return arguments.length?(l[0]=+t[0],l[1]=+t[1],y):[l[0],l[1]]},y.translateExtent=function(t){return arguments.length?(f[0][0]=+t[0][0],f[1][0]=+t[1][0],f[0][1]=+t[0][1],f[1][1]=+t[1][1],y):[[f[0][0],f[0][1]],[f[1][0],f[1][1]]]},y.constrain=function(t){return arguments.length?(a=t,y):a},y.duration=function(t){return arguments.length?(h=+t,y):h},y.interpolate=function(t){return arguments.length?(c=t,y):c},y.on=function(){var t=p.on.apply(p,arguments);return t===p?y:t},y.clickDistance=function(t){return arguments.length?(d=(t*=1)*t,y):Math.sqrt(d)},y.tapDistance=function(t){return arguments.length?(v=+t,y):v},y}],36755),t.s([],47716)}]);
|