@calmabacus/pi-web 1.0.0 → 1.1.1
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/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +10 -11
- package/.next/build-manifest.json +3 -3
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +6 -38
- package/.next/react-loadable-manifest.json +215 -224
- package/.next/required-server-files.js +4 -2
- package/.next/required-server-files.json +4 -2
- package/.next/routes-manifest.json +0 -6
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +5 -5
- package/.next/server/app/_not-found.segments/_full.segment.rsc +5 -5
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +8 -9
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/lease/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/app-update/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +2 -2
- package/.next/server/app/api/git/diff/route.js +1 -1
- package/.next/server/app/api/git/status/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/image-generation/route.js +1 -1
- package/.next/server/app/api/image-generation/settings/connections/route.js +1 -1
- package/.next/server/app/api/image-generation/settings/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/picker/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/runtime/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/plugins/check/route.js +1 -1
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/push/config/route.js +1 -1
- package/.next/server/app/api/push/subscribe/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/auto-name/route.js.nft.json +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/tool-result-image/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +2 -2
- package/.next/server/app/api/sessions/[id]/outline/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +1 -1
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/subagents/[id]/route.js +1 -1
- package/.next/server/app/api/subagents/profiles/route.js +1 -1
- package/.next/server/app/api/subagents/settings/route.js +1 -1
- package/.next/server/app/api/terminal/[id]/events/route.js +2 -2
- package/.next/server/app/api/terminal/[id]/route.js +1 -1
- package/.next/server/app/api/terminal/route.js +1 -1
- package/.next/server/app/api/tools/settings/route.js +1 -1
- package/.next/server/app/api/web-auth/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +7 -7
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +7 -7
- package/.next/server/app/index.segments/_full.segment.rsc +7 -7
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login/page.js +2 -2
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +6 -6
- package/.next/server/app/login.segments/_full.segment.rsc +6 -6
- package/.next/server/app/login.segments/_tree.segment.rsc +3 -3
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/manifest.webmanifest.body +1 -1
- package/.next/server/app/page.js +21 -21
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +10 -11
- package/.next/server/chunks/102.js +90 -0
- package/.next/server/chunks/11.js +1 -0
- package/.next/server/chunks/1286.js +1 -0
- package/.next/server/chunks/{4563.js → 1412.js} +1 -1
- package/.next/server/chunks/1605.js +1 -0
- package/.next/server/chunks/169.js +1 -0
- package/.next/server/chunks/{3186.js → 18.js} +1 -1
- package/.next/server/chunks/2022.js +1 -0
- package/.next/server/chunks/{4267.js → 2156.js} +1 -1
- package/.next/server/chunks/2157.js +1 -0
- package/.next/server/chunks/2243.js +1 -1
- package/.next/server/chunks/2325.js +3 -3
- package/.next/server/chunks/2838.js +1 -0
- package/.next/server/chunks/2897.js +79 -0
- package/.next/server/chunks/3227.js +1 -0
- package/.next/server/chunks/3266.js +1 -0
- package/.next/server/chunks/3379.js +1 -1
- package/.next/server/chunks/3428.js +32 -0
- package/.next/server/chunks/3479.js +1 -0
- package/.next/server/chunks/367.js +115 -0
- package/.next/server/chunks/3698.js +93 -0
- package/.next/server/chunks/{8713.js → 3709.js} +4 -4
- package/.next/server/chunks/4107.js +62 -0
- package/.next/server/chunks/426.js +10 -10
- package/.next/server/chunks/{7799.js → 4569.js} +1 -1
- package/.next/server/chunks/{8782.js → 4755.js} +2 -2
- package/.next/server/chunks/5002.js +1 -0
- package/.next/server/chunks/5112.js +1 -0
- package/.next/server/chunks/5289.js +8 -0
- package/.next/server/chunks/5452.js +23 -0
- package/.next/server/chunks/5453.js +1 -0
- package/.next/server/chunks/5582.js +3 -3
- package/.next/server/chunks/5749.js +27 -0
- package/.next/server/chunks/5782.js +36 -0
- package/.next/server/chunks/6081.js +1 -0
- package/.next/server/chunks/{6253.js → 6163.js} +1 -1
- package/.next/server/chunks/6169.js +64 -0
- package/.next/server/chunks/{1094.js → 6208.js} +17 -5
- package/.next/server/chunks/6399.js +24 -0
- package/.next/server/chunks/6429.js +3 -3
- package/.next/server/chunks/6496.js +1 -0
- package/.next/server/chunks/6823.js +215 -0
- package/.next/server/chunks/{4548.js → 6888.js} +1 -1
- package/.next/server/chunks/7245.js +77 -0
- package/.next/server/chunks/7307.js +1 -1
- package/.next/server/chunks/7372.js +287 -0
- package/.next/server/chunks/7384.js +226 -0
- package/.next/server/chunks/7516.js +1 -0
- package/.next/server/chunks/7531.js +24 -0
- package/.next/server/chunks/7591.js +1 -0
- package/.next/server/chunks/7755.js +138 -0
- package/.next/server/chunks/7916.js +1 -0
- package/.next/server/chunks/8078.js +94 -0
- package/.next/server/chunks/8253.js +41 -0
- package/.next/server/chunks/8635.js +1 -0
- package/.next/server/chunks/8688.js +1 -0
- package/.next/server/chunks/8872.js +1 -0
- package/.next/server/chunks/9006.js +1 -0
- package/.next/server/chunks/9018.js +1 -0
- package/.next/server/chunks/9047.js +1 -0
- package/.next/server/chunks/9108.js +1 -0
- package/.next/server/chunks/9280.js +91 -90
- package/.next/server/chunks/9419.js +1 -0
- package/.next/server/chunks/9430.js +1 -0
- package/.next/server/chunks/9586.js +1 -0
- package/.next/server/chunks/9775.js +1 -0
- package/.next/server/chunks/992.js +1 -0
- package/.next/server/chunks/9926.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1213.e5c6e70a79b5f7e6.js +24 -0
- package/.next/static/chunks/1278-8765826bf835aae1.js +1 -0
- package/.next/static/chunks/1519.2f596e5f5af9ef57.js +62 -0
- package/.next/static/chunks/1974.9f7176c5854f9939.js +32 -0
- package/.next/static/chunks/2280.e03ab3748922284c.js +1 -0
- package/.next/static/chunks/{398.ffa02af9062a3950.js → 2521.7f745f50d30076e7.js} +1 -1
- package/.next/static/chunks/2585.4d6aa847c780c666.js +1 -0
- package/.next/static/chunks/2589.e456c324416f9615.js +1 -0
- package/.next/static/chunks/2600.45ba17a0f756fc31.js +1 -0
- package/.next/static/chunks/26d302b2.b77b53a34ca944aa.js +122 -0
- package/.next/static/chunks/2768.1a75ba9e2be767cf.js +1 -0
- package/.next/static/chunks/2931.c2acdbf72808b646.js +41 -0
- package/.next/static/chunks/3016.406e568aa95ff867.js +1 -0
- package/.next/static/chunks/{4004.74b9bcf5478b1663.js → 3022.972047558a20553a.js} +30 -18
- package/.next/static/chunks/3064.3a2a1e7cd4fdca5f.js +1 -0
- package/.next/static/chunks/3174.03fbed7b7d7a8256.js +1 -0
- package/.next/static/chunks/3189.b048866768087750.js +1 -0
- package/.next/static/chunks/3217.1a053843c58b70b5.js +24 -0
- package/.next/static/chunks/3308.b58803a5e26a56d8.js +74 -0
- package/.next/static/chunks/331.fc5d78e1e91daf43.js +1 -0
- package/.next/static/chunks/3510.5d4d1c79533e080c.js +1 -0
- package/.next/static/chunks/364.ce5400a9dd70b9dc.js +1 -0
- package/.next/static/chunks/3658-625de9bc05634c7f.js +7 -0
- package/.next/static/chunks/{9793.4567af813117ad25.js → 3789.c418b69121761983.js} +1 -1
- package/.next/static/chunks/3831.25ae62d10dccc27a.js +1 -0
- package/.next/static/chunks/395.3621e96c2bdfec18.js +90 -0
- package/.next/static/chunks/{da12927c.476aa688a637649c.js → 3a7aa434.280905293fc59b77.js} +3 -3
- package/.next/static/chunks/4020.3cc19c463c49f969.js +23 -0
- package/.next/static/chunks/{1063.775c442bdbeef08b.js → 4035.0acc428926d5c8dd.js} +1 -1
- package/.next/static/chunks/405.0902e4f6eb7bd9a2.js +215 -0
- package/.next/static/chunks/4159.bb7124776cbd5f2d.js +138 -0
- package/.next/static/chunks/{4405.7a19458960a1058e.js → 4208.8ea72bb20afa959e.js} +2 -2
- package/.next/static/chunks/4263.ffa8d9bd8a0faaae.js +1 -0
- package/.next/static/chunks/4561.d1a3aaca8bae3224.js +34 -0
- package/.next/static/chunks/4592.507c41f345e21bee.js +93 -0
- package/.next/static/chunks/4799.3c6182ded3f32244.js +1 -0
- package/.next/static/chunks/514.b804c51b26f5e126.js +1 -0
- package/.next/static/chunks/{3336.a76f9485fe7cb762.js → 5270.28592864d38e881c.js} +1 -1
- package/.next/static/chunks/52733464.b343531c2f886252.js +1 -0
- package/.next/static/chunks/5354.b559c717a607dc5c.js +1 -0
- package/.next/static/chunks/{3995.eca0f5bef1fc3ae5.js → 5448.d3972d9fb464b54f.js} +2 -2
- package/.next/static/chunks/587.d52737d7288c11b4.js +1 -0
- package/.next/static/chunks/5909.9e37f7b495b11995.js +115 -0
- package/.next/static/chunks/{7331.2add3c4e125a2dba.js → 5949.5504b3545fcc3d34.js} +1 -1
- package/.next/static/chunks/{9698.4d09a99b9d99f3e5.js → 6361.893d04ac34fa1b49.js} +3 -3
- package/.next/static/chunks/{5526.ff46471041fdcb79.js → 6774.8cd53427dbf32cac.js} +1 -1
- package/.next/static/chunks/6968.b80277c724dbc96e.js +1 -0
- package/.next/static/chunks/{973.88e865b52eff479a.js → 7113.93146ac5e46c1859.js} +1 -1
- package/.next/static/chunks/7236.55a9728d35f5b8a6.js +1 -0
- package/.next/static/chunks/7390.bc7f4ed9f76fe9e1.js +1 -0
- package/.next/static/chunks/7806.a903780fcfa3a30e.js +1 -0
- package/.next/static/chunks/7997.517120d5fcd77d6b.js +1 -0
- package/.next/static/chunks/8216.64a72d4d35ea7be0.js +1 -0
- package/.next/static/chunks/830.a6da04c322e3204a.js +1 -0
- package/.next/static/chunks/{4202.8440832386f023c7.js → 8378.fa91de3406f554c9.js} +1 -1
- package/.next/static/chunks/8501.c34c2a9170eb458d.js +79 -0
- package/.next/static/chunks/8663.6ec5792fb4952e45.js +27 -0
- package/.next/static/chunks/872.96937e758ddce860.js +1 -0
- package/.next/static/chunks/8803.75bde095fe3613f5.js +1 -0
- package/.next/static/chunks/8863.72f5dbb820a0e4c3.js +1 -0
- package/.next/static/chunks/90542734.90283a0c0c838d51.js +1 -0
- package/.next/static/chunks/9379.5bc9c9343ec5a16c.js +64 -0
- package/.next/static/chunks/9389.906fe7aa9cd6a170.js +1 -0
- package/.next/static/chunks/9472.8d21dc4771024c26.js +94 -0
- package/.next/static/chunks/966.50e905df30903189.js +1 -0
- package/.next/static/chunks/{2703.495a65ed14b2f094.js → 9884.c6cac4659c50ebfa.js} +3 -3
- package/.next/static/chunks/app/{layout-f900e4d3794672ad.js → layout-900d990b4229e169.js} +1 -1
- package/.next/static/chunks/app/page-6e8e4795e738ba8b.js +232 -0
- package/.next/static/chunks/{1ba63609.b2ae90f43319a29e.js → e413bedd.3a12a8cb02e28fdf.js} +1 -1
- package/.next/static/chunks/ea233666.ebaeaf2eb673ecfa.js +62 -0
- package/.next/static/chunks/framework-3a41051109d8ea39.js +1 -0
- package/.next/static/chunks/webpack-d022bdbc1a873e3c.js +1 -0
- package/.next/static/css/{89aae141d5b3edde.css → 725eb03c18cc730c.css} +1 -1
- package/.next/static/css/be8ae7904992a245.css +1 -0
- package/.next/static/gQm9NqajOt7lJ9sjH6Hab/_buildManifest.js +1 -0
- package/.next/trace +7 -7
- package/.next/trace-build +1 -1
- package/README.md +1 -1
- package/next.config.ts +17 -1
- package/package.json +5 -5
- package/public/favicon.ico +0 -0
- package/public/favicon.svg +16 -0
- package/public/icons/apple-touch-icon.png +0 -0
- package/public/icons/icon-192.png +0 -0
- package/public/icons/icon-512.png +0 -0
- package/public/pi-web-mark.svg +3 -0
- package/.next/server/app/favicon.ico/route.js +0 -1
- package/.next/server/app/favicon.ico/route.js.nft.json +0 -1
- package/.next/server/app/favicon.ico.body +0 -0
- package/.next/server/app/favicon.ico.meta +0 -1
- package/.next/server/chunks/1515.js +0 -1
- package/.next/server/chunks/1555.js +0 -1
- package/.next/server/chunks/1601.js +0 -24
- package/.next/server/chunks/1625.js +0 -1
- package/.next/server/chunks/1800.js +0 -1
- package/.next/server/chunks/1860.js +0 -1
- package/.next/server/chunks/2075.js +0 -23
- package/.next/server/chunks/2106.js +0 -1
- package/.next/server/chunks/2169.js +0 -36
- package/.next/server/chunks/2190.js +0 -1
- package/.next/server/chunks/2408.js +0 -1
- package/.next/server/chunks/2452.js +0 -93
- package/.next/server/chunks/2744.js +0 -1
- package/.next/server/chunks/2903.js +0 -1
- package/.next/server/chunks/295.js +0 -1
- package/.next/server/chunks/3012.js +0 -1
- package/.next/server/chunks/3383.js +0 -27
- package/.next/server/chunks/3569.js +0 -1
- package/.next/server/chunks/3869.js +0 -8
- package/.next/server/chunks/3894.js +0 -1
- package/.next/server/chunks/4315.js +0 -1
- package/.next/server/chunks/4367.js +0 -1
- package/.next/server/chunks/4372.js +0 -1
- package/.next/server/chunks/4538.js +0 -24
- package/.next/server/chunks/4674.js +0 -1
- package/.next/server/chunks/4980.js +0 -1
- package/.next/server/chunks/5029.js +0 -1
- package/.next/server/chunks/5974.js +0 -77
- package/.next/server/chunks/6052.js +0 -141
- package/.next/server/chunks/611.js +0 -1
- package/.next/server/chunks/6337.js +0 -1
- package/.next/server/chunks/6366.js +0 -80
- package/.next/server/chunks/673.js +0 -287
- package/.next/server/chunks/6916.js +0 -226
- package/.next/server/chunks/703.js +0 -1
- package/.next/server/chunks/7233.js +0 -1
- package/.next/server/chunks/7265.js +0 -215
- package/.next/server/chunks/7561.js +0 -1
- package/.next/server/chunks/7710.js +0 -1
- package/.next/server/chunks/7744.js +0 -64
- package/.next/server/chunks/7790.js +0 -1
- package/.next/server/chunks/7872.js +0 -1
- package/.next/server/chunks/8106.js +0 -1
- package/.next/server/chunks/8294.js +0 -1
- package/.next/server/chunks/8333.js +0 -79
- package/.next/server/chunks/835.js +0 -1
- package/.next/server/chunks/8397.js +0 -41
- package/.next/server/chunks/8604.js +0 -115
- package/.next/server/chunks/8679.js +0 -1
- package/.next/server/chunks/8920.js +0 -62
- package/.next/server/chunks/922.js +0 -5
- package/.next/server/chunks/9486.js +0 -1
- package/.next/server/chunks/9509.js +0 -1
- package/.next/server/chunks/9510.js +0 -90
- package/.next/static/LkMtlo9B5W74YX7J-8ccI/_buildManifest.js +0 -1
- package/.next/static/chunks/103.23142a67b02246a8.js +0 -215
- package/.next/static/chunks/1032.12b382a9096ab2a4.js +0 -1
- package/.next/static/chunks/1278-b81177f3a674e4e0.js +0 -1
- package/.next/static/chunks/1327.09252bb80616cc3a.js +0 -1
- package/.next/static/chunks/1708.d029f8776e4578de.js +0 -1
- package/.next/static/chunks/1781.866132cea8e77cd0.js +0 -1
- package/.next/static/chunks/2081.47b6e9391094055f.js +0 -1
- package/.next/static/chunks/2181.ba21239d3ac39f81.js +0 -1
- package/.next/static/chunks/2258.4defa30121ef44a5.js +0 -1
- package/.next/static/chunks/2325.23caf22075e51aa5.js +0 -1
- package/.next/static/chunks/2356.523277bb8c6bf72a.js +0 -23
- package/.next/static/chunks/2418.b5d9e177e10a686e.js +0 -1
- package/.next/static/chunks/2480.cf27ca02e5b19761.js +0 -24
- package/.next/static/chunks/2539.c5a4f2fd8e421c70.js +0 -41
- package/.next/static/chunks/268.72794ee2773c2060.js +0 -80
- package/.next/static/chunks/2695.6f49435bae1e6f33.js +0 -90
- package/.next/static/chunks/2821.934bcf60fbdc28c6.js +0 -1
- package/.next/static/chunks/3251.0dce7a0a0ff67235.js +0 -1
- package/.next/static/chunks/3308.be8762955e7155d1.js +0 -73
- package/.next/static/chunks/3716.72bf4c9d7325debd.js +0 -1
- package/.next/static/chunks/4238.6f102dcbcf2ae339.js +0 -141
- package/.next/static/chunks/4424.fd0c93a807a333e1.js +0 -1
- package/.next/static/chunks/4866.d1060b4faf2ae1e2.js +0 -1
- package/.next/static/chunks/4970.8a63b4953b0e4946.js +0 -1
- package/.next/static/chunks/5020.9ac8d0dc8390bb6e.js +0 -1
- package/.next/static/chunks/5137.f163e94c74a94d01.js +0 -1
- package/.next/static/chunks/5242.7b643c6b3394cac1.js +0 -1
- package/.next/static/chunks/5361.afc00ab2626bacbf.js +0 -1
- package/.next/static/chunks/5521.cfdf2cfc6db31407.js +0 -1
- package/.next/static/chunks/5681.dd0e66b0de16e54b.js +0 -27
- package/.next/static/chunks/6121.eb9023b1cbc78ee2.js +0 -1
- package/.next/static/chunks/6161.4836cd7d031026bf.js +0 -1
- package/.next/static/chunks/6195.1153369f5f8b13a2.js +0 -24
- package/.next/static/chunks/6294.24f510c0c3e3714c.js +0 -1
- package/.next/static/chunks/6654.16f727522ec47f5a.js +0 -1
- package/.next/static/chunks/6794.f746d8fbbf248ecf.js +0 -93
- package/.next/static/chunks/7256.e07cf52d87d40252.js +0 -1
- package/.next/static/chunks/7268.236544be8e242c16.js +0 -1
- package/.next/static/chunks/7543.89f7b805ed0f2901.js +0 -1
- package/.next/static/chunks/8200.a36b9f8c983c6b9e.js +0 -5
- package/.next/static/chunks/869.7152372b662e31af.js +0 -1
- package/.next/static/chunks/8863.fa0320ea586efb3b.js +0 -1
- package/.next/static/chunks/8885.cf60cac98bf8b70c.js +0 -79
- package/.next/static/chunks/8901.e117d206a917bda0.js +0 -1
- package/.next/static/chunks/90542734.ae439f2382f58c51.js +0 -1
- package/.next/static/chunks/918.6a9bbe564e4a2d0f.js +0 -115
- package/.next/static/chunks/934.9006461bd0548660.js +0 -1
- package/.next/static/chunks/9445-fde6feabcb39142c.js +0 -7
- package/.next/static/chunks/9522.c7c6e9c330f9ba6b.js +0 -1
- package/.next/static/chunks/9614.3221013d7f0af27f.js +0 -64
- package/.next/static/chunks/9705.40a82b97f214e28b.js +0 -1
- package/.next/static/chunks/9764.2669775c6e107a01.js +0 -62
- package/.next/static/chunks/993e5495.8797001fcfcf2889.js +0 -62
- package/.next/static/chunks/9974.9a0f79beca65e8c4.js +0 -34
- package/.next/static/chunks/app/page-3c64134d63e2eff9.js +0 -232
- package/.next/static/chunks/bf2ff291.3a109dffc1fe84af.js +0 -122
- package/.next/static/chunks/db9d41be.e72ce090a86a3691.js +0 -1
- package/.next/static/chunks/framework-b33a8f5d57cd8d87.js +0 -1
- package/.next/static/chunks/webpack-25464d90fe89e601.js +0 -1
- package/.next/static/css/2ac0338d70747eca.css +0 -1
- /package/.next/static/{LkMtlo9B5W74YX7J-8ccI → gQm9NqajOt7lJ9sjH6Hab}/_ssgManifest.js +0 -0
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-webpack","duration":
|
|
1
|
+
[{"name":"run-webpack","duration":9120981,"timestamp":4166095680665,"id":14,"parentId":1,"tags":{},"startTime":1789892002816,"traceId":"5b1799bf775e5320"},{"name":"run-typescript","duration":2232506,"timestamp":4166104802780,"id":729,"parentId":1,"tags":{},"startTime":1789892011938,"traceId":"5b1799bf775e5320"},{"name":"static-check","duration":1856338,"timestamp":4166107053460,"id":732,"parentId":1,"tags":{},"startTime":1789892014189,"traceId":"5b1799bf775e5320"},{"name":"static-generation","duration":3625602,"timestamp":4166109077668,"id":864,"parentId":1,"tags":{},"startTime":1789892016213,"traceId":"5b1799bf775e5320"},{"name":"collect-build-traces","duration":23573998,"timestamp":4166108912031,"id":861,"parentId":1,"tags":{},"startTime":1789892016047,"traceId":"5b1799bf775e5320"},{"name":"telemetry-flush","duration":30,"timestamp":4166132488679,"id":873,"parentId":1,"tags":{},"startTime":1789892039624,"traceId":"5b1799bf775e5320"},{"name":"next-build","duration":36882082,"timestamp":4166095606632,"id":1,"tags":{"buildMode":"default","version":"16.3.1","bundler":"webpack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1789892002742,"traceId":"5b1799bf775e5320"}]
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Pi Web
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
这是 [pi](https://github.com/earendil-works/pi) 的本地浏览器界面,基于原版 [agegr/pi-web](https://github.com/agegr/pi-web)。共用本机 `~/.pi/agent` 配置和会话文件。这个分支主要改日常使用:多标签分屏、中文与代码排版、工具过程折叠、对话生图、内置子代理,以及移动端和若干交互修复。
|
|
4
4
|
|
|
5
5
|
## 安装与运行
|
|
6
6
|
|
package/next.config.ts
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
import type { NextConfig } from "next";
|
|
2
|
-
import {
|
|
2
|
+
import { createHash } from "crypto";
|
|
3
|
+
import { existsSync, readFileSync } from "fs";
|
|
3
4
|
import { dirname, join } from "path";
|
|
4
5
|
import { fileURLToPath } from "url";
|
|
5
6
|
|
|
6
7
|
const configDir = dirname(fileURLToPath(import.meta.url));
|
|
7
8
|
const { version } = JSON.parse(readFileSync(join(configDir, "package.json"), "utf8")) as { version: string };
|
|
8
9
|
|
|
10
|
+
function getIconVersion(): string {
|
|
11
|
+
try {
|
|
12
|
+
const hash = createHash("md5");
|
|
13
|
+
for (const file of ["icons/icon-192.png", "icons/icon-512.png", "icons/apple-touch-icon.png", "favicon.ico", "favicon.svg"]) {
|
|
14
|
+
const path = join(configDir, "public", file);
|
|
15
|
+
if (existsSync(path)) hash.update(readFileSync(path));
|
|
16
|
+
}
|
|
17
|
+
return hash.digest("hex").slice(0, 8);
|
|
18
|
+
} catch {
|
|
19
|
+
return version;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
9
23
|
const nextConfig: NextConfig = {
|
|
10
24
|
outputFileTracingRoot: configDir,
|
|
11
25
|
serverExternalPackages: [
|
|
@@ -41,6 +55,7 @@ const nextConfig: NextConfig = {
|
|
|
41
55
|
"172.30.*.*",
|
|
42
56
|
"172.31.*.*",
|
|
43
57
|
"192.168.*.*",
|
|
58
|
+
"nuc.tailb8ef79.ts.net",
|
|
44
59
|
],
|
|
45
60
|
async headers() {
|
|
46
61
|
return [
|
|
@@ -67,6 +82,7 @@ const nextConfig: NextConfig = {
|
|
|
67
82
|
},
|
|
68
83
|
env: {
|
|
69
84
|
NEXT_PUBLIC_APP_VERSION: version,
|
|
85
|
+
NEXT_PUBLIC_ICON_VERSION: getIconVersion(),
|
|
70
86
|
},
|
|
71
87
|
};
|
|
72
88
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@calmabacus/pi-web",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Web UI for the pi coding agent",
|
|
5
5
|
"author": "calmabacus",
|
|
6
6
|
"homepage": "https://github.com/zhudatou630/pi-web#readme",
|
|
@@ -47,10 +47,10 @@
|
|
|
47
47
|
"release": "npm version patch --no-git-tag-version && npm run build && npm publish --access public"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@earendil-works/pi-agent-core": "0.
|
|
51
|
-
"@earendil-works/pi-ai": "0.
|
|
52
|
-
"@earendil-works/pi-coding-agent": "0.
|
|
53
|
-
"@earendil-works/pi-tui": "0.
|
|
50
|
+
"@earendil-works/pi-agent-core": "0.86.0",
|
|
51
|
+
"@earendil-works/pi-ai": "0.86.0",
|
|
52
|
+
"@earendil-works/pi-coding-agent": "0.86.0",
|
|
53
|
+
"@earendil-works/pi-tui": "0.86.0",
|
|
54
54
|
"@xterm/addon-fit": "0.11.0",
|
|
55
55
|
"@xterm/xterm": "6.0.0",
|
|
56
56
|
"ansi_up": "^6.0.6",
|
|
Binary file
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="560" height="560" fill="none" viewBox="0 0 560 560">
|
|
2
|
+
<style>
|
|
3
|
+
.mark {
|
|
4
|
+
fill: #111111;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
@media (prefers-color-scheme: dark) {
|
|
8
|
+
.mark {
|
|
9
|
+
fill: #f6f6f6;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
</style>
|
|
13
|
+
<path class="mark" d="M420 280H280V140H0V0H420V280Z"/>
|
|
14
|
+
<path class="mark" d="M560 560H420V280H560V560Z"/>
|
|
15
|
+
<path class="mark" d="M140 560H0V140H140V280H280V420H140V560Z"/>
|
|
16
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 82 32">
|
|
2
|
+
<path fill="currentColor" d="M0 0H24V16H16V8H0ZM0 8H8V16H16V24H8V32H0ZM24 16H32V32H24ZM44 16H46V26H44ZM46 26H48V32H46ZM48 22H50V26H48ZM50 26H52V32H50ZM52 16H54V26H52ZM60 16H68V18H60ZM58 18H60V30H58ZM60 22H66V24H60ZM60 30H68V32H60ZM72 16H80V18H74V22H80V24H74V30H80V32H72ZM80 18H82V22H80ZM80 24H82V30H80Z"/>
|
|
3
|
+
</svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(()=>{var a={};a.id=3230,a.ids=[3230],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8128:a=>{a.exports=require("next/dist/server/runtime-reacts.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},46424:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>z,patchFetch:()=>y,routeModule:()=>u,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var d=c(19225),e=c(84006),f=c(8317),g=c(99373),h=c(34775),i=c(24235),j=c(261),k=c(54365),l=c(90771),m=c(73461),n=c(67798),o=c(92280),p=c(62018),q=c(45696),r=c(47929),s=c(86439),t=c(37527);let u=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/favicon.ico/route",pathname:"/favicon.ico",filename:"favicon",bundlePath:"app/favicon.ico/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"next-metadata-route-loader?filePath=%2Fopt%2Fpi-web%2Fapp%2Ffavicon.ico&isDynamicRouteExtension=0!?__next_metadata_route__",nextConfigOutput:"",userland:()=>c(64560),...{}}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=u;function y(){return(0,f.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}async function z(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),u.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/favicon.ico/route";"/index"===d&&(d="/");let f=await u.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:v,deploymentId:w,params:x,nextConfig:y,parsedUrl:z,isDraftMode:A,prerenderManifest:B,routerServerContext:C,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,resolvedPathname:F,clientReferenceManifest:G,serverActionsManifest:H}=f,I=(0,j.normalizeAppPath)(d),J=!!(B.dynamicRoutes[I]||B.routes[F]),K=async()=>((null==C?void 0:C.render404)?await C.render404(a,b,z,!1):b.end("This page could not be found"),null);if(J&&!A){let a=!!B.routes[F],b=B.dynamicRoutes[I];if(b&&!1===b.fallback&&!a){if(y.adapterPath)return await K();throw new s.NoFallbackError}}let L=null;!J||u.isDev||A||(L="/index"===(L=F)?"/":L);let M=!0===u.isDev||!J,N=J&&!M;H&&G&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:G,serverActionsManifest:H});let O=a.method||"GET",P=(0,h.getTracer)(),Q=P.getActiveScopeSpan(),R=!!(null==C?void 0:C.isWrappedByNextServer),S=!!(0,g.getRequestMeta)(a,"minimalMode"),T=(0,g.getRequestMeta)(a,"incrementalCache")||await u.getIncrementalCache(a,y,B,S);null==T||T.resetRequestCache(),globalThis.__incrementalCache=T;let U={params:x,previewProps:B.preview,renderOpts:{experimental:{authInterrupts:!!y.experimental.authInterrupts,useCacheTimeout:y.experimental.useCacheTimeout},cacheComponents:!!y.cacheComponents,validationLevel:y.experimental.instantInsights.validationLevel,supportsDynamicResponse:M,incrementalCache:T,hmrRefreshHash:(0,g.getRequestMeta)(a,"hmrRefreshHash"),cacheLifeProfiles:y.cacheLife,staticPageGenerationTimeout:y.staticPageGenerationTimeout,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>u.onRequestError(a,b,d,e,C)},sharedContext:{buildId:v,deploymentId:w}},V=new k.NodeNextRequest(a),W=new k.NodeNextResponse(b),X=l.NextRequestAdapter.fromNodeNextRequest(V,(0,l.signalFromNodeResponse)(b)),Y=async({previousCacheEntry:e})=>{try{if(!S&&D&&E&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await u.handle(X,U);a.fetchMetrics=U.renderOpts.fetchMetrics;let f=U.renderOpts.pendingWaitUntil;f&&c.waitUntil&&(c.waitUntil(f),f=void 0);let g=U.renderOpts.collectedTags;if(!J)return await (0,o.I)(V,W,d,f),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);g&&(b[r.NEXT_CACHE_TAGS_HEADER]=g),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==U.renderOpts.collectedRevalidate&&!(U.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&U.renderOpts.collectedRevalidate,e=void 0===U.renderOpts.collectedExpire||U.renderOpts.collectedExpire>=r.INFINITE_CACHE?!1!==c&&c>0?y.expireTime:void 0:U.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await u.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),b}},Z=async(d,f)=>{try{var g,i;let d=await u.handleResponse({req:a,nextConfig:y,cacheKey:L,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:B,isRoutePPREnabled:!1,isOnDemandRevalidate:D,revalidateOnlyGenerated:E,responseGenerator:Y,waitUntil:c.waitUntil,isMinimalMode:S});if(!J)return;if((null==d||null==(g=d.value)?void 0:g.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==d||null==(i=d.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});S||b.setHeader("x-nextjs-cache",D?"REVALIDATED":d.isMiss?"MISS":d.isStale?"STALE":"HIT"),A&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let f=(0,p.fromNodeOutgoingHttpHeaders)(d.value.headers);S&&J||f.delete(r.NEXT_CACHE_TAGS_HEADER),!d.cacheControl||b.getHeader("Cache-Control")||f.get("Cache-Control")||f.set("Cache-Control",(0,q.getCacheControlHeader)(d.cacheControl)),await (0,o.I)(V,W,new Response(d.value.body,{headers:f,status:d.value.status||200}));return}catch(b){if(b instanceof s.NoFallbackError||await u.onRequestError(a,b,{routerKind:"App Router",routePath:I,routeType:"route",revalidateReason:(0,n.getRevalidateReason)({isStaticGeneration:N,isOnDemandRevalidate:D})},!1,C),J)throw b;await (0,o.I)(V,W,new Response(null,{status:500}));return}finally{(()=>{if(!d)return;let a=b.statusCode;d.setAttributes({"http.status_code":a,"next.rsc":!1}),a&&a>=500&&(d.setStatus({code:h.SpanStatusCode.ERROR}),d.setAttribute("error.type",a.toString()));let c=P.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route")||I,g=`${O} ${e}`;d.setAttributes({"next.route":e,"http.route":e,"next.span_name":g}),d.updateName(g),f&&f!==d&&(f.setAttribute("http.route",e),f.updateName(g))})()}};if(R&&Q)await Z(Q,void 0);else{let b=P.getActiveScopeSpan();await P.withPropagatedContext(a.headers,()=>P.trace(m.BaseServerSpan.handleRequest,{spanName:`${O} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":O,"http.target":a.url}},a=>Z(a,b)),void 0,!R)}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64560:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>f,dynamic:()=>g});var d=c(23211);let e=Buffer.from("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","base64");function f(){return new d.NextResponse(e,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=0, must-revalidate"}})}let g="force-static"},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[4741,1813],()=>b(b.s=46424));module.exports=c})();
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":1,"files":["../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/esm/_interop_require_default.js","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/blocking-route-messages.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/sync-io-messages.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/instant-messages.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../../../package.json","../../../package.json","../../chunks/1813.js","../../chunks/4741.js","../../webpack-runtime.js"]}
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"status":200,"headers":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1515,exports.ids=[1515],exports.modules={41515:(a,b,c)=>{c.d(b,{createRailroadEbnfServices:()=>d.W});var d=c(87974);c(7274)}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1555,exports.ids=[1555],exports.modules={51555:(a,b,c)=>{c.d(b,{diagram:()=>q});var d=c(77139),e=c(4328);c(71904),c(45313);var f=c(58715),g=c(95097),h=c(92325),i=(0,h.sB)().RailroadAbnf.parser.LangiumParser,j=(0,g.K)(a=>{let b=a.alternatives.map(k);return 1===b.length?b[0]:{type:"choice",alternatives:b}},"transformAlternation"),k=(0,g.K)(a=>{let b=a.elements.map(m);return 1===b.length?b[0]:{type:"sequence",elements:b}},"transformConcatenation"),l=(0,g.K)(a=>{if(a.includes("*")){let[b,c]=a.split("*");return{min:b?parseInt(b,10):0,max:c?parseInt(c,10):1/0}}let b=parseInt(a,10);return{min:b,max:b}},"parseRepeat"),m=(0,g.K)(a=>{let b=n(a.primary);if(!a.repeat)return b;let{min:c,max:d}=l(a.repeat);return 0===c&&1===d?{type:"optional",element:b}:{type:"repetition",element:b,min:c,max:d}},"transformElement"),n=(0,g.K)(a=>{switch(a.$type){case"AbnfStringLiteral":case"AbnfNumVal":return{type:"terminal",value:a.value};case"AbnfRuleName":return{type:"nonterminal",name:a.name};case"AbnfGroup":return j(a.element);case"AbnfOptionalGroup":return{type:"optional",element:j(a.element)};default:throw Error(`Unsupported ABNF primary node: ${a.$type}`)}},"transformPrimary"),o=(0,g.K)(a=>({name:a.name,definition:j(a.definition)}),"transformRule"),p=(0,g.K)(a=>{(0,e.S)(a,d.db),a.title&&d.db.setTitle(a.title),a.rules.map(a=>d.db.addRule(o(a)))},"populateDb"),q={parser:{parse:(0,g.K)(a=>{d.db.clear(),f.R.debug("[ABNF Parser] Starting Langium parse");let b=i.parse(a);if(b.lexerErrors.length>0||b.parserErrors.length>0)throw new h.zg(b);let c=b.value;f.R.debug("[ABNF Parser] Parsed rules:",c.rules.length),p(c),f.R.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:d.db}},db:d.db,renderer:d.U,styles:d.$}}};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1601,exports.ids=[1601],exports.modules={1487:(a,b,c)=>{c.d(b,{P:()=>g});var d=c(45313),e=c(58715),f=c(95097),g=(0,f.K)((a,b,c,f)=>{a.attr("class",c);let{width:g,height:j,x:k,y:l}=h(a,b);(0,d.a$)(a,j,g,f);let m=i(k,l,g,j,b);a.attr("viewBox",m),e.R.debug(`viewBox configured: ${m} with padding: ${b}`)},"setupViewPortForSVG"),h=(0,f.K)((a,b)=>{let c=a.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:c.width+2*b,height:c.height+2*b,x:c.x,y:c.y}},"calculateDimensionsWithPadding"),i=(0,f.K)((a,b,c,d,e)=>`${a-e} ${b-e} ${c} ${d}`,"createViewBox")},4328:(a,b,c)=>{function d(a,b){a.accDescr&&b.setAccDescription?.(a.accDescr),a.accTitle&&b.setAccTitle?.(a.accTitle),a.title&&b.setDiagramTitle?.(a.title)}c.d(b,{S:()=>d}),(0,c(95097).K)(d,"populateCommonDb")},21601:(a,b,c)=>{c.d(b,{diagram:()=>v});var d=c(4328),e=c(71904),f=c(1487),g=c(8312),h=c(64922),i=c(45313),j=c(58715),k=c(95097),l=c(92325),m=c(69085),n=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=i.SV,this.getAccTitle=i.iN,this.setDiagramTitle=i.ke,this.getDiagramTitle=i.ab,this.getAccDescription=i.m7,this.setAccDescription=i.EI}static{(0,k.K)(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){let a=i.UI,b=(0,i.zj)();return(0,h.$t)({...a.treemap,...b.treemap??{}})}addNode(a,b){this.nodes.push(a),this.levels.set(a,b),0===b&&(this.outerNodes.push(a),this.root??=a)}getRoot(){return{name:"",children:this.outerNodes}}addClass(a,b){let c=this.classes.get(a)??{id:a,styles:[],textStyles:[]},d=b.replace(/\\,/g,"\xa7\xa7\xa7").replace(/,/g,";").replace(/§§§/g,",").split(";");d&&d.forEach(a=>{(0,g.KX)(a)&&(c?.textStyles?c.textStyles.push(a):c.textStyles=[a]),c?.styles?c.styles.push(a):c.styles=[a]}),this.classes.set(a,c)}getClasses(){return this.classes}getStylesForClass(a){return this.classes.get(a)?.styles??[]}clear(){(0,i.IU)(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function o(a){if(!a.length)return[];let b=[],c=[];return a.forEach(a=>{let d={name:a.name,children:"Leaf"===a.type?void 0:[]};for(d.classSelector=a?.classSelector,a?.cssCompiledStyles&&(d.cssCompiledStyles=a.cssCompiledStyles),"Leaf"===a.type&&void 0!==a.value&&(d.value=a.value);c.length>0&&c[c.length-1].level>=a.level;)c.pop();if(0===c.length)b.push(d);else{let a=c[c.length-1].node;a.children?a.children.push(d):a.children=[d]}"Leaf"!==a.type&&c.push({node:d,level:a.level})}),b}(0,k.K)(o,"buildHierarchy");var p=(0,k.K)((a,b)=>{(0,d.S)(a,b);let c=[];for(let c of a.TreemapRows??[])"ClassDefStatement"===c.$type&&b.addClass(c.className??"",c.styleText??"");for(let d of a.TreemapRows??[]){let a=d.item;if(!a)continue;let e=d.indent?parseInt(d.indent):0,f=q(a),g=a.classSelector?b.getStylesForClass(a.classSelector):[],h=g.length>0?g:void 0,i={level:e,name:f,type:a.$type,value:a.value,classSelector:a.classSelector,cssCompiledStyles:h};c.push(i)}let e=o(c),f=(0,k.K)((a,c)=>{for(let d of a)b.addNode(d,c),d.children&&d.children.length>0&&f(d.children,c+1)},"addNodesRecursively");f(e,0)},"populate"),q=(0,k.K)(a=>a.name?String(a.name):"","getItemName"),r={parser:{yy:void 0},parse:(0,k.K)(async a=>{try{let b=l.qg,c=await b("treemap",a);j.R.debug("Treemap AST:",c);let d=r.parser?.yy;if(!(d instanceof n))throw Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");p(c,d)}catch(a){throw j.R.error("Error parsing treemap:",a),a}},"parse")},s=(0,k.K)((a,b,c,d)=>{let h,l=d.db,n=l.getConfig(),o=n.padding??10,p=l.getDiagramTitle(),q=l.getRoot(),{themeVariables:r}=(0,i.zj)();if(!q)return;let s=30*!!p,t=(0,e.D)(b),u=n.nodeWidth?10*n.nodeWidth:960,v=n.nodeHeight?10*n.nodeHeight:500,w=v+s;t.attr("viewBox",`0 0 ${u} ${w}`),(0,i.a$)(t,w,u,n.useMaxWidth);try{let a=n.valueFormat||",";if("$0,0"===a)h=(0,k.K)(a=>"$"+(0,m.GPZ)(",")(a),"valueFormat");else if(a.startsWith("$")&&a.includes(",")){let b=/\.\d+/.exec(a),c=b?b[0]:"";h=(0,k.K)(a=>"$"+(0,m.GPZ)(","+c)(a),"valueFormat")}else if(a.startsWith("$")){let b=a.substring(1);h=(0,k.K)(a=>"$"+(0,m.GPZ)(b||"")(a),"valueFormat")}else h=(0,m.GPZ)(a)}catch(a){j.R.error("Error creating format function:",a),h=(0,m.GPZ)(",")}let x=(0,m.UMr)().range(["transparent",r.cScale0,r.cScale1,r.cScale2,r.cScale3,r.cScale4,r.cScale5,r.cScale6,r.cScale7,r.cScale8,r.cScale9,r.cScale10,r.cScale11]),y=(0,m.UMr)().range(["transparent",r.cScalePeer0,r.cScalePeer1,r.cScalePeer2,r.cScalePeer3,r.cScalePeer4,r.cScalePeer5,r.cScalePeer6,r.cScalePeer7,r.cScalePeer8,r.cScalePeer9,r.cScalePeer10,r.cScalePeer11]),z=(0,m.UMr)().range([r.cScaleLabel0,r.cScaleLabel1,r.cScaleLabel2,r.cScaleLabel3,r.cScaleLabel4,r.cScaleLabel5,r.cScaleLabel6,r.cScaleLabel7,r.cScaleLabel8,r.cScaleLabel9,r.cScaleLabel10,r.cScaleLabel11]);p&&t.append("text").attr("x",u/2).attr("y",s/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(p);let A=t.append("g").attr("transform",`translate(0, ${s})`).attr("class","treemapContainer"),B=(0,m.Sk5)(q).sum(a=>a.value??0).sort((a,b)=>(b.value??0)-(a.value??0)),C=(0,m.hkb)().size([u,v]).paddingTop(a=>a.children&&a.children.length>0?35:0).paddingInner(o).paddingLeft(a=>a.children&&a.children.length>0?10:0).paddingRight(a=>a.children&&a.children.length>0?10:0).paddingBottom(a=>a.children&&a.children.length>0?10:0).round(!0)(B),D=C.descendants().filter(a=>a.children&&a.children.length>0),E=A.selectAll(".treemapSection").data(D).enter().append("g").attr("class","treemapSection").attr("transform",a=>`translate(${a.x0},${a.y0})`);E.append("rect").attr("width",a=>a.x1-a.x0).attr("height",25).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",a=>0===a.depth?"display: none;":""),E.append("clipPath").attr("id",(a,c)=>`clip-section-${b}-${c}`).append("rect").attr("width",a=>Math.max(0,a.x1-a.x0-12)).attr("height",25),E.append("rect").attr("width",a=>a.x1-a.x0).attr("height",a=>a.y1-a.y0).attr("class",(a,b)=>`treemapSection section${b}`).attr("fill",a=>x(a.data.name)).attr("fill-opacity",.6).attr("stroke",a=>y(a.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",a=>{if(0===a.depth)return"display: none;";let b=(0,g.GX)({cssCompiledStyles:a.data.cssCompiledStyles});return b.nodeStyles+";"+b.borderStyles.join(";")}),E.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",12.5).attr("dominant-baseline","middle").text(a=>0===a.depth?"":a.data.name).attr("font-weight","bold").attr("clip-path",(a,c)=>`url(#clip-section-${b}-${c})`).attr("style",a=>0===a.depth?"display: none;":"dominant-baseline: middle; font-size: 12px; fill:"+z(a.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,g.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).each(function(a){if(0===a.depth)return;let b=(0,m.Ltv)(this),c=a.data.name;b.text(c);let d=a.x1-a.x0,e=Math.max(15,!1!==n.showValues&&a.value?d-10-30-10-6:d-6-6),f=b.node();if(f.getComputedTextLength()>e){let a=c;for(;a.length>0;){if(0===(a=c.substring(0,a.length-1)).length){b.text("..."),f.getComputedTextLength()>e&&b.text("");break}if(b.text(a+"..."),f.getComputedTextLength()<=e)break}}}),!1!==n.showValues&&E.append("text").attr("class","treemapSectionValue").attr("x",a=>a.x1-a.x0-10).attr("y",12.5).attr("text-anchor","end").attr("dominant-baseline","middle").text(a=>a.value?h(a.value):"").attr("font-style","italic").attr("style",a=>0===a.depth?"display: none;":"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+z(a.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;"+(0,g.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:"));let F=C.leaves(),G=F.length>20,H=G?16:38,I=G?14:28,J=G?4:8,K=G?4:6,L=G?2:4,M=G?8:10,N=G?1:2,O=A.selectAll(".treemapLeafGroup").data(F).enter().append("g").attr("class",(a,b)=>`treemapNode treemapLeafGroup leaf${b}${a.data.classSelector?` ${a.data.classSelector}`:""}x`).attr("transform",a=>`translate(${a.x0},${a.y0})`);O.append("rect").attr("width",a=>a.x1-a.x0).attr("height",a=>a.y1-a.y0).attr("class","treemapLeaf").attr("fill",a=>a.parent?x(a.parent.data.name):x(a.data.name)).attr("style",a=>(0,g.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",a=>a.parent?x(a.parent.data.name):x(a.data.name)).attr("stroke-width",3),O.append("clipPath").attr("id",(a,c)=>`clip-${b}-${c}`).append("rect").attr("width",a=>Math.max(0,a.x1-a.x0-4)).attr("height",a=>Math.max(0,a.y1-a.y0-4)),O.append("text").attr("class","treemapLabel").attr("x",a=>(a.x1-a.x0)/2).attr("y",a=>(a.y1-a.y0)/2).attr("style",a=>`text-anchor: middle; dominant-baseline: middle; font-size: ${H}px;fill:`+z(a.data.name)+";"+(0,g.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(a,c)=>`url(#clip-${b}-${c})`).text(a=>a.data.name).each(function(a){let b=(0,m.Ltv)(this),c=a.x1-a.x0,d=a.y1-a.y0,e=b.node(),f=c-2*L,g=d-2*L;if(f<M||g<M)return void b.style("display","none");let h=parseInt(b.style("font-size"),10);for(;e.getComputedTextLength()>f&&h>J;)h--,b.style("font-size",`${h}px`);let i=Math.max(K,Math.min(I,Math.round(.6*h))),j=h+N+i;for(;j>g&&h>J&&(!((i=Math.max(K,Math.min(I,Math.round(.6*--h))))<K)||h!==J);)b.style("font-size",`${h}px`),j=h+N+i;b.style("font-size",`${h}px`),G?(h<J||g<J)&&b.style("display","none"):(e.getComputedTextLength()>f||h<J||g<h)&&b.style("display","none")}),!1!==n.showValues&&O.append("text").attr("class","treemapValue").attr("x",a=>(a.x1-a.x0)/2).attr("y",function(a){return(a.y1-a.y0)/2}).attr("style",a=>`text-anchor: middle; dominant-baseline: hanging; font-size: ${I}px;fill:`+z(a.data.name)+";"+(0,g.GX)({cssCompiledStyles:a.data.cssCompiledStyles}).labelStyles.replace("color:","fill:")).attr("clip-path",(a,c)=>`url(#clip-${b}-${c})`).text(a=>a.value?h(a.value):"").each(function(a){let b=(0,m.Ltv)(this),c=this.parentNode;if(!c)return void b.style("display","none");let d=(0,m.Ltv)(c).select(".treemapLabel");if(d.empty()||"none"===d.style("display"))return void b.style("display","none");let e=parseFloat(d.style("font-size")),f=Math.max(K,Math.min(I,Math.round(.6*e)));b.style("font-size",`${f}px`);let g=(a.y1-a.y0)/2+e/2+N;b.attr("y",g);let h=a.x1-a.x0,i=a.y1-a.y0;b.node().getComputedTextLength()>h-2*L||g+f>i-4||f<K?b.style("display","none"):b.style("display",null)});let P=n.diagramPadding??8;(0,f.P)(t,P,"flowchart",n?.useMaxWidth||!1)},"draw"),t=(0,k.K)(function(a,b){return b.db.getClasses()},"getClasses"),u={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},v={parser:r,get db(){return new n},renderer:{draw:s,getClasses:t},styles:(0,k.K)(({treemap:a}={})=>{let b=(0,i.P$)(),c=(0,i.zj)(),d=(0,h.$t)(b,c.themeVariables),e=(0,h.$t)(u,a),f=e.titleColor??d.titleColor,g=e.labelColor??d.textColor,j=e.valueColor??d.textColor;return`
|
|
2
|
-
.treemapNode.section {
|
|
3
|
-
stroke: ${e.sectionStrokeColor};
|
|
4
|
-
stroke-width: ${e.sectionStrokeWidth};
|
|
5
|
-
fill: ${e.sectionFillColor};
|
|
6
|
-
}
|
|
7
|
-
.treemapNode.leaf {
|
|
8
|
-
stroke: ${e.leafStrokeColor};
|
|
9
|
-
stroke-width: ${e.leafStrokeWidth};
|
|
10
|
-
fill: ${e.leafFillColor};
|
|
11
|
-
}
|
|
12
|
-
.treemapLabel {
|
|
13
|
-
fill: ${g};
|
|
14
|
-
font-size: ${e.labelFontSize};
|
|
15
|
-
}
|
|
16
|
-
.treemapValue {
|
|
17
|
-
fill: ${j};
|
|
18
|
-
font-size: ${e.valueFontSize};
|
|
19
|
-
}
|
|
20
|
-
.treemapTitle {
|
|
21
|
-
fill: ${f};
|
|
22
|
-
font-size: ${e.titleFontSize};
|
|
23
|
-
}
|
|
24
|
-
`},"getStyles")}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1625,exports.ids=[1625],exports.modules={24006:(a,b,c)=>{c.d(b,{diagram:()=>r});var d=c(77139),e=c(4328);c(71904),c(45313);var f=c(58715),g=c(95097),h=c(92325),i=(0,h.Pz)().RailroadPeg.parser.LangiumParser,j=(0,g.K)(a=>{let b=a.alternatives.map(k);return 1===b.length?b[0]:{type:"choice",alternatives:b}},"transformOrderedChoice"),k=(0,g.K)(a=>{let b=a.elements.map(l);return 1===b.length?b[0]:{type:"sequence",elements:b}},"transformSequence"),l=(0,g.K)(a=>{let b=n(a.suffix);return a.operator?{type:"special",text:"&"===a.operator?`&${m(b)}`:`!${m(b)}`}:b},"transformPrefix"),m=(0,g.K)(a=>{switch(a.type){case"terminal":return`"${a.value}"`;case"nonterminal":return a.name;case"special":return a.text;default:return"(...)"}},"nodeToLabel"),n=(0,g.K)(a=>{let b=o(a.primary);if(!a.operator)return b;switch(a.operator){case"?":return{type:"optional",element:b};case"*":return{type:"repetition",element:b,min:0,max:1/0};case"+":return{type:"repetition",element:b,min:1,max:1/0};default:throw Error(`Unsupported PEG suffix operator: ${a.operator}`)}},"transformSuffix"),o=(0,g.K)(a=>{switch(a.$type){case"PegLiteral":return{type:"terminal",value:a.value};case"PegIdentifier":return{type:"nonterminal",name:a.name};case"PegGroup":return j(a.element);case"PegAny":return{type:"special",text:a.dot};default:throw Error(`Unsupported PEG primary node: ${a.$type}`)}},"transformPrimary"),p=(0,g.K)(a=>({name:a.name,definition:j(a.definition)}),"transformRule"),q=(0,g.K)(a=>{(0,e.S)(a,d.db),a.title&&d.db.setTitle(a.title),a.rules.map(a=>d.db.addRule(p(a)))},"populateDb"),r={parser:{parse:(0,g.K)(a=>{d.db.clear(),f.R.debug("[PEG Parser] Starting Langium parse");let b=i.parse(a);if(b.lexerErrors.length>0||b.parserErrors.length>0)throw new h.zg(b);let c=b.value;f.R.debug("[PEG Parser] Parsed rules:",c.rules.length),q(c),f.R.debug("[PEG Parser] Parse complete")},"parse"),parser:{yy:d.db}},db:d.db,renderer:d.U,styles:d.$}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1800,exports.ids=[1800],exports.modules={1800:(a,b,c)=>{c.d(b,{diagram:()=>f});var d=c(57265);c(23464),c(30917),c(1487),c(78832),c(87836),c(32844),c(11878),c(8312),c(7423),c(69819),c(59343),c(73669),c(64922),c(45313),c(58715);var e=c(95097),f={parser:d._$,get db(){return new d.NM},renderer:d.Lh,styles:d.tM,init:(0,e.K)(a=>{a.class||(a.class={}),a.class.arrowMarkerAbsolute=a.arrowMarkerAbsolute},"init")}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=1860,exports.ids=[1860],exports.modules={11860:(a,b,c)=>{c.d(b,{diagram:()=>E});var d,e=c(16916);c(30917),c(1487),c(78832),c(87836),c(32844),c(11878),c(8312),c(7423),c(69819),c(59343),c(73669);var f=c(64922),g=c(45313),h=c(58715),i=c(95097),j=c(69085),k=c(64980),l=c(74367),m=(0,i.K)(a=>a.append("circle").attr("class","start-state").attr("r",(0,g.D7)().state.sizeUnit).attr("cx",(0,g.D7)().state.padding+(0,g.D7)().state.sizeUnit).attr("cy",(0,g.D7)().state.padding+(0,g.D7)().state.sizeUnit),"drawStartState"),n=(0,i.K)(a=>a.append("line").style("stroke","grey").style("stroke-dasharray","3").attr("x1",(0,g.D7)().state.textHeight).attr("class","divider").attr("x2",2*(0,g.D7)().state.textHeight).attr("y1",0).attr("y2",0),"drawDivider"),o=(0,i.K)((a,b)=>{let c=a.append("text").attr("x",2*(0,g.D7)().state.padding).attr("y",(0,g.D7)().state.textHeight+2*(0,g.D7)().state.padding).attr("font-size",(0,g.D7)().state.fontSize).attr("class","state-title").text(b.id),d=c.node().getBBox();return a.insert("rect",":first-child").attr("x",(0,g.D7)().state.padding).attr("y",(0,g.D7)().state.padding).attr("width",d.width+2*(0,g.D7)().state.padding).attr("height",d.height+2*(0,g.D7)().state.padding).attr("rx",(0,g.D7)().state.radius),c},"drawSimpleState"),p=(0,i.K)((a,b)=>{let c=(0,i.K)(function(a,b,c){let d=a.append("tspan").attr("x",2*(0,g.D7)().state.padding).text(b);c||d.attr("dy",(0,g.D7)().state.textHeight)},"addTspan"),d=a.append("text").attr("x",2*(0,g.D7)().state.padding).attr("y",(0,g.D7)().state.textHeight+1.3*(0,g.D7)().state.padding).attr("font-size",(0,g.D7)().state.fontSize).attr("class","state-title").text(b.descriptions[0]).node().getBBox(),e=d.height,f=a.append("text").attr("x",(0,g.D7)().state.padding).attr("y",e+.4*(0,g.D7)().state.padding+(0,g.D7)().state.dividerMargin+(0,g.D7)().state.textHeight).attr("class","state-description"),h=!0,j=!0;b.descriptions.forEach(function(a){h||(c(f,a,j),j=!1),h=!1});let k=a.append("line").attr("x1",(0,g.D7)().state.padding).attr("y1",(0,g.D7)().state.padding+e+(0,g.D7)().state.dividerMargin/2).attr("y2",(0,g.D7)().state.padding+e+(0,g.D7)().state.dividerMargin/2).attr("class","descr-divider"),l=f.node().getBBox(),m=Math.max(l.width,d.width);return k.attr("x2",m+3*(0,g.D7)().state.padding),a.insert("rect",":first-child").attr("x",(0,g.D7)().state.padding).attr("y",(0,g.D7)().state.padding).attr("width",m+2*(0,g.D7)().state.padding).attr("height",l.height+e+2*(0,g.D7)().state.padding).attr("rx",(0,g.D7)().state.radius),a},"drawDescrState"),q=(0,i.K)((a,b,c)=>{let d,e=(0,g.D7)().state.padding,f=2*(0,g.D7)().state.padding,h=a.node().getBBox(),i=h.width,j=h.x,k=a.append("text").attr("x",0).attr("y",(0,g.D7)().state.titleShift).attr("font-size",(0,g.D7)().state.fontSize).attr("class","state-title").text(b.id),l=k.node().getBBox().width+f,m=Math.max(l,i);m===i&&(m+=f);let n=a.node().getBBox();b.doc,d=j-e,l>i&&(d=(i-m)/2+e),Math.abs(j-n.x)<e&&l>i&&(d=j-(l-i)/2);let o=1-(0,g.D7)().state.textHeight;return a.insert("rect",":first-child").attr("x",d).attr("y",o).attr("class",c?"alt-composit":"composit").attr("width",m).attr("height",n.height+(0,g.D7)().state.textHeight+(0,g.D7)().state.titleShift+1).attr("rx","0"),k.attr("x",d+e),l<=i&&k.attr("x",j+(m-f)/2-l/2+e),a.insert("rect",":first-child").attr("x",d).attr("y",(0,g.D7)().state.titleShift-(0,g.D7)().state.textHeight-(0,g.D7)().state.padding).attr("width",m).attr("height",3*(0,g.D7)().state.textHeight).attr("rx",(0,g.D7)().state.radius),a.insert("rect",":first-child").attr("x",d).attr("y",(0,g.D7)().state.titleShift-(0,g.D7)().state.textHeight-(0,g.D7)().state.padding).attr("width",m).attr("height",n.height+3+2*(0,g.D7)().state.textHeight).attr("rx",(0,g.D7)().state.radius),a},"addTitleAndBox"),r=(0,i.K)(a=>(a.append("circle").attr("class","end-state-outer").attr("r",(0,g.D7)().state.sizeUnit+(0,g.D7)().state.miniPadding).attr("cx",(0,g.D7)().state.padding+(0,g.D7)().state.sizeUnit+(0,g.D7)().state.miniPadding).attr("cy",(0,g.D7)().state.padding+(0,g.D7)().state.sizeUnit+(0,g.D7)().state.miniPadding),a.append("circle").attr("class","end-state-inner").attr("r",(0,g.D7)().state.sizeUnit).attr("cx",(0,g.D7)().state.padding+(0,g.D7)().state.sizeUnit+2).attr("cy",(0,g.D7)().state.padding+(0,g.D7)().state.sizeUnit+2)),"drawEndState"),s=(0,i.K)((a,b)=>{let c=(0,g.D7)().state.forkWidth,d=(0,g.D7)().state.forkHeight;if(b.parentId){let a=c;c=d,d=a}return a.append("rect").style("stroke","black").style("fill","black").attr("width",c).attr("height",d).attr("x",(0,g.D7)().state.padding).attr("y",(0,g.D7)().state.padding)},"drawForkJoinState"),t=(0,i.K)((a,b,c,d)=>{let e=0,f=d.append("text");f.style("text-anchor","start"),f.attr("class","noteText");let h=a.replace(/\r\n/g,"<br/>"),i=(h=h.replace(/\n/g,"<br/>")).split(g.Y2.lineBreakRegex),j=1.25*(0,g.D7)().state.noteMargin;for(let a of i){let d=a.trim();if(d.length>0){let a=f.append("tspan");a.text(d),0===j&&(j+=a.node().getBBox().height),e+=j,a.attr("x",b+(0,g.D7)().state.noteMargin),a.attr("y",c+e+1.25*(0,g.D7)().state.noteMargin)}}return{textWidth:f.node().getBBox().width,textHeight:e}},"_drawLongText"),u=(0,i.K)((a,b)=>{b.attr("class","state-note");let c=b.append("rect").attr("x",0).attr("y",(0,g.D7)().state.padding),{textWidth:d,textHeight:e}=t(a,0,0,b.append("g"));return c.attr("height",e+2*(0,g.D7)().state.noteMargin),c.attr("width",d+2*(0,g.D7)().state.noteMargin),c},"drawNote"),v=(0,i.K)(function(a,b){let c=b.id,d={id:c,label:b.id,width:0,height:0},e=a.append("g").attr("id",c).attr("class","stateGroup");"start"===b.type&&m(e),"end"===b.type&&r(e),("fork"===b.type||"join"===b.type)&&s(e,b),"note"===b.type&&u(b.note.text,e),"divider"===b.type&&n(e),"default"===b.type&&0===b.descriptions.length&&o(e,b),"default"===b.type&&b.descriptions.length>0&&p(e,b);let f=e.node().getBBox();return d.width=f.width+2*(0,g.D7)().state.padding,d.height=f.height+2*(0,g.D7)().state.padding,d},"drawState"),w=0,x=(0,i.K)(function(a,b,c){let d=(0,i.K)(function(a){switch(a){case e.u4.relationType.AGGREGATION:return"aggregation";case e.u4.relationType.EXTENSION:return"extension";case e.u4.relationType.COMPOSITION:return"composition";case e.u4.relationType.DEPENDENCY:return"dependency"}},"getRelationType");b.points=b.points.filter(a=>!Number.isNaN(a.y));let k=b.points,l=(0,j.n8j)().x(function(a){return a.x}).y(function(a){return a.y}).curve(j.qrM),m=a.append("path").attr("d",l(k)).attr("id","edge"+w).attr("class","transition"),n="";if((0,g.D7)().state.arrowMarkerAbsolute&&(n=(0,g.ID)(!0)),m.attr("marker-end","url("+n+"#"+d(e.u4.relationType.DEPENDENCY)+"End)"),void 0!==c.title){let d=a.append("g").attr("class","stateLabel"),{x:e,y:i}=f._K.calcLabelPosition(b.points),j=g.Y2.getRows(c.title),k=0,l=[],m=0,n=0;for(let a=0;a<=j.length;a++){let b=d.append("text").attr("text-anchor","middle").text(j[a]).attr("x",e).attr("y",i+k),c=b.node().getBBox();m=Math.max(m,c.width),n=Math.min(n,c.x),h.R.info(c.x,e,i+k),0===k&&(k=b.node().getBBox().height,h.R.info("Title height",k,i)),l.push(b)}let o=k*j.length;if(j.length>1){let a=(j.length-1)*k*.5;l.forEach((b,c)=>b.attr("y",i+c*k-a)),o=k*j.length}let p=d.node().getBBox();d.insert("rect",":first-child").attr("class","box").attr("x",e-m/2-(0,g.D7)().state.padding/2).attr("y",i-o/2-(0,g.D7)().state.padding/2-3.5).attr("width",m+(0,g.D7)().state.padding).attr("height",o+(0,g.D7)().state.padding),h.R.info(p)}w++},"drawEdge"),y={},z=(0,i.K)(function(){},"setConf"),A=(0,i.K)(function(a){a.append("defs").append("marker").attr("id","dependencyEnd").attr("refX",19).attr("refY",7).attr("markerWidth",20).attr("markerHeight",28).attr("orient","auto").append("path").attr("d","M 19,7 L9,13 L14,7 L9,1 Z")},"insertMarkers"),B=(0,i.K)(function(a,b,c,e){let f;d=(0,g.D7)().state;let i=(0,g.D7)().securityLevel;"sandbox"===i&&(f=(0,j.Ltv)("#i"+b));let k="sandbox"===i?(0,j.Ltv)(f.nodes()[0].contentDocument.body):(0,j.Ltv)("body"),l="sandbox"===i?f.nodes()[0].contentDocument:document;h.R.debug("Rendering diagram "+a);let m=k.select(`[id='${b}']`);A(m),D(e.db.getRootDoc(),m.append("g").attr("id",b+"-root"),void 0,!1,k,l,e);let n=d.padding,o=m.node().getBBox(),p=o.width+2*n,q=o.height+2*n;(0,g.a$)(m,q,1.75*p,d.useMaxWidth),m.attr("viewBox",`${o.x-d.padding} ${o.y-d.padding} `+p+" "+q)},"draw"),C=(0,i.K)(a=>a?a.length*d.fontSizeFactor:1,"getLabelWidth"),D=(0,i.K)((a,b,c,e,f,i,j)=>{let m,n=new l.T({compound:!0,multigraph:!0}),o=!0;for(m=0;m<a.length;m++)if("relation"===a[m].stmt){o=!1;break}c?n.setGraph({rankdir:"LR",multigraph:!0,compound:!0,ranker:"tight-tree",ranksep:o?1:d.edgeLengthFactor,nodeSep:o?1:50,isMultiGraph:!0}):n.setGraph({rankdir:"TB",multigraph:!0,compound:!0,ranksep:o?1:d.edgeLengthFactor,nodeSep:o?1:50,ranker:"tight-tree",isMultiGraph:!0}),n.setDefaultEdgeLabel(function(){return{}});let p=j.db.getStates(),r=j.db.getRelations();for(let a of Object.keys(p)){let g,h=p[a];if(c&&(h.parentId=c),h.doc){let a=b.append("g").attr("id",h.id).attr("class","stateGroup");g=D(h.doc,a,h.id,!e,f,i,j);{let b=(a=q(a,h,e)).node().getBBox();g.width=b.width,g.height=b.height+d.padding/2,y[h.id]={y:d.compositTitleSize}}}else g=v(b,h,n);if(h.note){let a=v(b,{descriptions:[],id:h.id+"-note",note:h.note,type:"note"},n);"left of"===h.note.position?(n.setNode(g.id+"-note",a),n.setNode(g.id,g)):(n.setNode(g.id,g),n.setNode(g.id+"-note",a)),n.setParent(g.id,g.id+"-group"),n.setParent(g.id+"-note",g.id+"-group")}else n.setNode(g.id,g)}h.R.debug("Count=",n.nodeCount(),n);let s=0;r.forEach(function(a){s++,h.R.debug("Setting edge",a),n.setEdge(a.id1,a.id2,{relation:a,width:C(a.title),height:d.labelHeight*g.Y2.getRows(a.title).length,labelpos:"c"},"id"+s)}),(0,k.Zp)(n),h.R.debug("Graph after layout",n.nodes());let t=b.node();n.nodes().forEach(function(a){void 0!==a&&void 0!==n.node(a)?(h.R.warn("Node "+a+": "+JSON.stringify(n.node(a))),f.select("#"+t.id+" #"+a).attr("transform","translate("+(n.node(a).x-n.node(a).width/2)+","+(n.node(a).y+(y[a]?y[a].y:0)-n.node(a).height/2)+" )"),f.select("#"+t.id+" #"+a).attr("data-x-shift",n.node(a).x-n.node(a).width/2),i.querySelectorAll("#"+t.id+" #"+a+" .divider").forEach(a=>{let b=a.parentElement,c=0,d=0;b&&(b.parentElement&&(c=b.parentElement.getBBox().width),Number.isNaN(d=parseInt(b.getAttribute("data-x-shift"),10))&&(d=0)),a.setAttribute("x1",0-d+8),a.setAttribute("x2",c-d-8)})):h.R.debug("No Node "+a+": "+JSON.stringify(n.node(a)))});let u=t.getBBox();n.edges().forEach(function(a){void 0!==a&&void 0!==n.edge(a)&&(h.R.debug("Edge "+a.v+" -> "+a.w+": "+JSON.stringify(n.edge(a))),x(b,n.edge(a),n.edge(a).relation))});let w={id:c||"root",label:c||"root",width:0,height:0};return w.width=(u=t.getBBox()).width+2*d.padding,w.height=u.height+2*d.padding,h.R.debug("Doc rendered",w,n),w},"renderDoc"),E={parser:e.Zk,get db(){return new e.u4(1)},renderer:{setConf:z,draw:B},styles:e.tM,init:(0,i.K)(a=>{a.state||(a.state={}),a.state.arrowMarkerAbsolute=a.arrowMarkerAbsolute},"init")}}};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2075,exports.ids=[2075],exports.modules={92075:(a,b,c)=>{c.d(b,{diagram:()=>ar});var d,e=c(71904),f=c(64922),g=c(45313);c(58715);var h=c(95097),i=c(69085),j=c(67821),k=c(57689);let l=(a,b)=>(0,k.A)(a,"a",-b);var m=c(61255),n=c(30089);function o(a,b){let c=function(a){let b=[];for(let c=0;c<a.length;++c)for(let d=c+1;d<a.length;++d)for(let e of s(a[c],a[d]))e.parentIndex=[c,d],b.push(e);return b}(a),d=c.filter(b=>{var c;return c=b,a.every(a=>q(c,a)<a.radius+1e-10)}),e=0,f=0,g=[];if(d.length>1){let b=t(d);for(let a=0;a<d.length;++a){let c=d[a];c.angle=Math.atan2(c.x-b.x,c.y-b.y)}d.sort((a,b)=>b.angle-a.angle);let c=d[d.length-1];for(let b=0;b<d.length;++b){let h=d[b];f+=(c.x+h.x)*(h.y-c.y);let i={x:(h.x+c.x)/2,y:(h.y+c.y)/2},j=null;for(let b=0;b<h.parentIndex.length;++b)if(c.parentIndex.includes(h.parentIndex[b])){let d=a[h.parentIndex[b]],e=Math.atan2(h.x-d.x,h.y-d.y),f=Math.atan2(c.x-d.x,c.y-d.y),g=f-e;g<0&&(g+=2*Math.PI);let k=f-g/2,l=q(i,{x:d.x+d.radius*Math.sin(k),y:d.y+d.radius*Math.cos(k)});l>2*d.radius&&(l=2*d.radius),(null==j||j.width>l)&&(j={circle:d,width:l,p1:h,p2:c,large:l>d.radius,sweep:!0})}null!=j&&(g.push(j),e+=p(j.circle.radius,j.width),c=h)}}else{let b=a[0];for(let c=1;c<a.length;++c)a[c].radius<b.radius&&(b=a[c]);let c=!1;for(let d=0;d<a.length;++d)if(q(a[d],b)>Math.abs(b.radius-a[d].radius)){c=!0;break}c?e=f=0:(e=b.radius*b.radius*Math.PI,g.push({circle:b,p1:{x:b.x,y:b.y+b.radius},p2:{x:b.x-1e-10,y:b.y+b.radius},width:2*b.radius,large:!0,sweep:!0}))}return f/=2,b&&(b.area=e+f,b.arcArea=e,b.polygonArea=f,b.arcs=g,b.innerPoints=d,b.intersectionPoints=c),e+f}function p(a,b){return a*a*Math.acos(1-b/a)-(a-b)*Math.sqrt(b*(2*a-b))}function q(a,b){return Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))}function r(a,b,c){return c>=a+b?0:c<=Math.abs(a-b)?Math.PI*Math.min(a,b)*Math.min(a,b):p(a,a-(c*c-b*b+a*a)/(2*c))+p(b,b-(c*c-a*a+b*b)/(2*c))}function s(a,b){let c=q(a,b),d=a.radius,e=b.radius;if(c>=d+e||c<=Math.abs(d-e))return[];let f=(d*d-e*e+c*c)/(2*c),g=Math.sqrt(d*d-f*f),h=a.x+f*(b.x-a.x)/c,i=a.y+f*(b.y-a.y)/c,j=-(b.y-a.y)*(g/c),k=-(b.x-a.x)*(g/c);return[{x:h+j,y:i-k},{x:h-j,y:i+k}]}function t(a){let b={x:0,y:0};for(let c of a)b.x+=c.x,b.y+=c.y;return b.x/=a.length,b.y/=a.length,b}function u(a){let b=Array(a);for(let c=0;c<a;++c)b[c]=0;return b}function v(a,b){return u(a).map(()=>u(b))}function w(a,b){let c=0;for(let d=0;d<a.length;++d)c+=a[d]*b[d];return c}function x(a){return Math.sqrt(w(a,a))}function y(a,b,c){for(let d=0;d<b.length;++d)a[d]=b[d]*c}function z(a,b,c,d,e){for(let f=0;f<a.length;++f)a[f]=b*c[f]+d*e[f]}function A(a,b,c){let d,e=(c=c||{}).maxIterations||200*b.length,f=c.nonZeroDelta||1.05,g=c.zeroDelta||.001,h=c.minErrorDelta||1e-6,i=c.minErrorDelta||1e-5,j=void 0!==c.rho?c.rho:1,k=void 0!==c.chi?c.chi:2,l=void 0!==c.psi?c.psi:-.5,m=void 0!==c.sigma?c.sigma:.5,n=b.length,o=Array(n+1);o[0]=b,o[0].fx=a(b),o[0].id=0;for(let c=0;c<n;++c){let d=b.slice();d[c]=d[c]?d[c]*f:g,o[c+1]=d,o[c+1].fx=a(d),o[c+1].id=c+1}function p(a){for(let b=0;b<a.length;b++)o[n][b]=a[b];o[n].fx=a.fx}let q=(a,b)=>a.fx-b.fx,r=b.slice(),s=b.slice(),t=b.slice(),u=b.slice();for(let b=0;b<e;++b){if(o.sort(q),c.history){let a=o.map(a=>{let b=a.slice();return b.fx=a.fx,b.id=a.id,b});a.sort((a,b)=>a.id-b.id),c.history.push({x:o[0].slice(),fx:o[0].fx,simplex:a})}d=0;for(let a=0;a<n;++a)d=Math.max(d,Math.abs(o[0][a]-o[1][a]));if(Math.abs(o[0].fx-o[n].fx)<h&&d<i)break;for(let a=0;a<n;++a){r[a]=0;for(let b=0;b<n;++b)r[a]+=o[b][a];r[a]/=n}let b=o[n];if(z(s,1+j,r,-j,b),s.fx=a(s),s.fx<o[0].fx)z(u,1+k,r,-k,b),u.fx=a(u),p(u.fx<s.fx?u:s);else if(s.fx>=o[n-1].fx){let c=!1;if(s.fx>b.fx?(z(t,1+l,r,-l,b),t.fx=a(t),t.fx<b.fx?p(t):c=!0):(z(t,1-l*j,r,l*j,b),t.fx=a(t),t.fx<s.fx?p(t):c=!0),c){if(m>=1)break;for(let b=1;b<o.length;++b)z(o[b],1-m,o[0],m,o[b]),o[b].fx=a(o[b])}}else p(s)}return o.sort(q),{fx:o[0].fx,x:o[0]}}function B(a,b={}){b.maxIterations=b.maxIterations||500;let c=b.initialLayout||D,d=b.lossFunction||E,e=function(a,b={}){let c=b.distinct,d=a.map(a=>Object.assign({},a));function e(a){return a.join(";")}if(c){let a=new Map;for(let b of d)for(let c=0;c<b.sets.length;c++){let d=String(b.sets[c]);a.set(d,b.size+(a.get(d)||0));for(let e=c+1;e<b.sets.length;e++){let c=String(b.sets[e]),f=`${d};${c}`,g=`${c};${d}`;a.set(f,b.size+(a.get(f)||0)),a.set(g,b.size+(a.get(g)||0))}}for(let b of d)b.sets.length<3&&(b.size=a.get(e(b.sets)))}let f=[],g=new Set;for(let a of d)if(1===a.sets.length)f.push(a.sets[0]);else if(2===a.sets.length){let b=a.sets[0],c=a.sets[1];g.add(e(a.sets)),g.add(e([c,b]))}f.sort((a,b)=>a===b?0:a<b?-1:1);for(let a=0;a<f.length;++a){let b=f[a];for(let c=a+1;c<f.length;++c){let a=f[c];g.has(e([b,a]))||d.push({sets:[b,a],size:0})}}return d}(a,b),f=c(e,b),g=Object.keys(f),h=[];for(let a of g)h.push(f[a].x),h.push(f[a].y);let i=A(a=>{let b={};for(let c=0;c<g.length;++c){let d=g[c];b[d]={x:a[2*c],y:a[2*c+1],radius:f[d].radius}}return d(b,e)},h,b).x;for(let a=0;a<g.length;++a){let b=g[a];f[b].x=i[2*a],f[b].y=i[2*a+1]}return f}function C(a,b,c){return Math.min(a,b)*Math.min(a,b)*Math.PI<=c+1e-10?Math.abs(a-b):function(a,b,c,d){let e=(d=d||{}).maxIterations||100,f=d.tolerance||1e-10,g=a(b),h=a(c),i=c-b;if(g*h>0)throw"Initial bisect points must have opposite signs";if(0===g)return b;if(0===h)return c;for(let c=0;c<e;++c){let c=b+(i/=2),d=a(c);if(d*g>=0&&(b=c),Math.abs(i)<f||0===d)return c}return b+i}(d=>r(a,b,d)-c,0,a+b)}function D(a,b={}){let c=function(a,b){let c=b&&b.lossFunction?b.lossFunction:E,d={},e={};for(let b of a)if(1===b.sets.length){let a=b.sets[0];d[a]={x:1e10,y:1e10,rowid:d.length,size:b.size,radius:Math.sqrt(b.size/Math.PI)},e[a]=[]}for(let b of a=a.filter(a=>2===a.sets.length)){let a=null!=b.weight?b.weight:1,c=b.sets[0],f=b.sets[1];b.size+1e-10>=Math.min(d[c].size,d[f].size)&&(a=0),e[c].push({set:f,size:b.size,weight:a}),e[f].push({set:c,size:b.size,weight:a})}let f=[];function g(a,b){return b.size-a.size}Object.keys(e).forEach(a=>{let b=0;for(let c=0;c<e[a].length;++c)b+=e[a][c].size*e[a][c].weight;f.push({set:a,size:b})}),f.sort(g);let h={};function i(a){return a.set in h}function j(a,b){d[b].x=a.x,d[b].y=a.y,h[b]=!0}j({x:0,y:0},f[0].set);for(let b=1;b<f.length;++b){let h=f[b].set,l=e[h].filter(i),m=d[h];if(l.sort(g),0===l.length)throw"ERROR: missing pairwise overlap information";let n=[];for(var k=0;k<l.length;++k){let a=d[l[k].set],b=C(m.radius,a.radius,l[k].size);n.push({x:a.x+b,y:a.y}),n.push({x:a.x-b,y:a.y}),n.push({y:a.y+b,x:a.x}),n.push({y:a.y-b,x:a.x});for(let c=k+1;c<l.length;++c){let e=d[l[c].set],f=C(m.radius,e.radius,l[c].size),g=s({x:a.x,y:a.y,radius:b},{x:e.x,y:e.y,radius:f});n.push(...g)}}let o=1e50,p=n[0];for(let b of n){d[h].x=b.x,d[h].y=b.y;let e=c(d,a);e<o&&(o=e,p=b)}j(p,h)}return d}(a,b),d=b.lossFunction||E;if(a.length>=8){let e=function(a,b={}){let c,d,e=b.restarts||10,f=[],g={};for(let b of a)1===b.sets.length&&(g[b.sets[0]]=f.length,f.push(b));let{distances:h,constraints:i}=(c=v(f.length,f.length),d=v(f.length,f.length),a.filter(a=>2===a.sets.length).forEach(a=>{let b=g[a.sets[0]],e=g[a.sets[1]],h=C(Math.sqrt(f[b].size/Math.PI),Math.sqrt(f[e].size/Math.PI),a.size);c[b][e]=c[e][b]=h;let i=0;a.size+1e-10>=Math.min(f[b].size,f[e].size)?i=1:a.size<=1e-10&&(i=-1),d[b][e]=d[e][b]=i}),{distances:c,constraints:d}),j=x(h.map(x))/h.length;h=h.map(a=>a.map(a=>a/j));let k=(a,b)=>(function(a,b,c,d){for(let a=0;a<b.length;++a)b[a]=0;let e=0;for(let f=0;f<c.length;++f){let g=a[2*f],h=a[2*f+1];for(let i=f+1;i<c.length;++i){let j=a[2*i],k=a[2*i+1],l=c[f][i],m=d[f][i],n=(j-g)*(j-g)+(k-h)*(k-h),o=Math.sqrt(n),p=n-l*l;m>0&&o<=l||m<0&&o>=l||(e+=2*p*p,b[2*f]+=4*p*(g-j),b[2*f+1]+=4*p*(h-k),b[2*i]+=4*p*(j-g),b[2*i+1]+=4*p*(k-h))}}return e})(a,b,h,i),l=null;for(let a=0;a<e;++a){let a=function(a,b,c){let d,e,f,g={x:b.slice(),fx:0,fxprime:b.slice()},h={x:b.slice(),fx:0,fxprime:b.slice()},i=b.slice(),j=1;f=(c=c||{}).maxIterations||20*b.length,g.fx=a(g.x,g.fxprime),y(d=g.fxprime.slice(),g.fxprime,-1);for(let b=0;b<f;++b){if(j=function(a,b,c,d,e,f,g){let h=c.fx,i=w(c.fxprime,b),j=h,k=h,l=i,m=0;function n(k,m,n){for(let o=0;o<16;++o)if(e=(k+m)/2,z(d.x,1,c.x,e,b),j=d.fx=a(d.x,d.fxprime),l=w(d.fxprime,b),j>h+f*e*i||j>=n)m=e;else{if(Math.abs(l)<=-g*i)return e;l*(m-k)>=0&&(m=k),k=e,n=j}return 0}e=e||1,f=f||1e-6,g=g||.1;for(let o=0;o<10;++o){if(z(d.x,1,c.x,e,b),j=d.fx=a(d.x,d.fxprime),l=w(d.fxprime,b),j>h+f*e*i||o&&j>=k)return n(m,e,k);if(Math.abs(l)<=-g*i)break;if(l>=0)return n(e,m,j);k=j,m=e,e*=2}return e}(a,d,g,h,j),c.history&&c.history.push({x:g.x.slice(),fx:g.fx,fxprime:g.fxprime.slice(),alpha:j}),j){z(i,1,h.fxprime,-1,g.fxprime);let a=w(g.fxprime,g.fxprime);z(d,Math.max(0,w(i,h.fxprime)/a),d,-1,h.fxprime),e=g,g=h,h=e}else y(d,g.fxprime,-1);if(1e-5>=x(g.fxprime))break}return c.history&&c.history.push({x:g.x.slice(),fx:g.fx,fxprime:g.fxprime.slice(),alpha:j}),g}(k,u(2*h.length).map(Math.random),b);(!l||a.fx<l.fx)&&(l=a)}let m=l.x,n={};for(let a=0;a<f.length;++a){let b=f[a];n[b.sets[0]]={x:m[2*a]*j,y:m[2*a+1]*j,radius:Math.sqrt(b.size/Math.PI)}}if(b.history)for(let a of b.history)y(a.x,j);return n}(a,b);d(e,a)+1e-8<d(c,a)&&(c=e)}return c}function E(a,b){let c=0;for(let d of b){let b;if(1!==d.sets.length){if(2===d.sets.length){let c=a[d.sets[0]],e=a[d.sets[1]];b=r(c.radius,e.radius,q(c,e))}else b=o(d.sets.map(b=>a[b]));c+=(null!=d.weight?d.weight:1)*(b-d.size)*(b-d.size)}}return c}function F(a,b){let c=0;for(let d of b){let b;if(1===d.sets.length)continue;if(2===d.sets.length){let c=a[d.sets[0]],e=a[d.sets[1]];b=r(c.radius,e.radius,q(c,e))}else b=o(d.sets.map(b=>a[b]));let e=null!=d.weight?d.weight:1,f=Math.log((b+1)/(d.size+1));c+=e*f*f}return c}function G(a){let b=b=>({max:a.reduce((a,c)=>Math.max(a,c[b]+c.radius),-1/0),min:a.reduce((a,c)=>Math.min(a,c[b]-c.radius),1/0)});return{xRange:b("x"),yRange:b("y")}}function H(a,b,c){null==b&&(b=Math.PI/2);let d=K(a).map(a=>Object.assign({},a)),e=function(a){function b(a){return a.parent!==a&&(a.parent=b(a.parent)),a.parent}a.forEach(a=>{a.parent=a});for(let e=0;e<a.length;++e)for(let f=e+1;f<a.length;++f){var c,d;let g=a[e].radius+a[f].radius;q(a[e],a[f])+1e-10<g&&(c=a[f],d=a[e],b(c).parent=b(d))}let e=new Map;for(let c=0;c<a.length;++c){let d=b(a[c]).parent.setid;e.has(d)||e.set(d,[]),e.get(d).push(a[c])}return a.forEach(a=>{delete a.parent}),Array.from(e.values())}(d);for(let a of e){!function(a,b,c){if(null==c?a.sort((a,b)=>b.radius-a.radius):a.sort(c),a.length>0){let b=a[0].x,c=a[0].y;for(let d of a)d.x-=b,d.y-=c}if(2===a.length&&q(a[0],a[1])<Math.abs(a[1].radius-a[0].radius)&&(a[1].x=a[0].x+a[0].radius-a[1].radius-1e-10,a[1].y=a[0].y),a.length>1){let c=Math.atan2(a[1].x,a[1].y)-b,d=Math.cos(c),e=Math.sin(c);for(let b of a){let a=b.x,c=b.y;b.x=d*a-e*c,b.y=e*a+d*c}}if(a.length>2){let c=Math.atan2(a[2].x,a[2].y)-b;for(;c<0;)c+=2*Math.PI;for(;c>2*Math.PI;)c-=2*Math.PI;if(c>Math.PI){let b=a[1].y/(1e-10+a[1].x);for(let c of a){var d=(c.x+b*c.y)/(1+b*b);c.x=2*d-c.x,c.y=2*d*b-c.y}}}}(a,b,c);let d=G(a);a.size=(d.xRange.max-d.xRange.min)*(d.yRange.max-d.yRange.min),a.bounds=d}e.sort((a,b)=>b.size-a.size);let f=(d=e[0]).bounds,g=(f.xRange.max-f.xRange.min)/50;function h(a,b,c){let e,h;if(!a)return;let i=a.bounds;if(b)e=f.xRange.max-i.xRange.min+g;else{e=f.xRange.max-i.xRange.max;let a=(i.xRange.max-i.xRange.min)/2-(f.xRange.max-f.xRange.min)/2;a<0&&(e+=a)}if(c)h=f.yRange.max-i.yRange.min+g;else{h=f.yRange.max-i.yRange.max;let a=(i.yRange.max-i.yRange.min)/2-(f.yRange.max-f.yRange.min)/2;a<0&&(h+=a)}for(let b of a)b.x+=e,b.y+=h,d.push(b)}let i=1;for(;i<e.length;)h(e[i],!0,!1),h(e[i+1],!1,!0),h(e[i+2],!0,!0),i+=3,f=G(d);return J(d)}function I(a,b,c,d,e){let f,g,h=K(a);b-=2*d,c-=2*d;let{xRange:i,yRange:j}=G(h);if(i.max===i.min||j.max===j.min)return console.log("not scaling solution: zero size detected"),a;if(e){let a=2*Math.sqrt(e/Math.PI);f=b/a,g=c/a}else f=b/(i.max-i.min),g=c/(j.max-j.min);let k=Math.min(g,f),l=(b-(i.max-i.min)*k)/2,m=(c-(j.max-j.min)*k)/2;return J(h.map(a=>({radius:k*a.radius,x:d+l+(a.x-i.min)*k,y:d+m+(a.y-j.min)*k,setid:a.setid})))}function J(a){let b={};for(let c of a)b[c.setid]=c;return b}function K(a){return Object.keys(a).map(b=>Object.assign(a[b],{setid:b}))}function L(a,b){return function(c){let d=this,e=a[c.sets[0]].radius||50,f=b(c)||"",g=f.split(/\s+/).reverse(),h=(f.length+g.length)/3,i=g.pop(),j=[i],k=0;d.textContent=null;let l=[];function m(a){let b=d.ownerDocument.createElementNS(d.namespaceURI,"tspan");return b.textContent=a,l.push(b),d.append(b),b}let n=m(i);for(;i=g.pop();){j.push(i);let a=j.join(" ");n.textContent=a,a.length>h&&n.getComputedTextLength()>e&&(j.pop(),n.textContent=j.join(" "),j=[i],n=m(i),k++)}let o=.35-1.1*k/2,p=d.getAttribute("x"),q=d.getAttribute("y");l.forEach((a,b)=>{a.setAttribute("x",p),a.setAttribute("y",q),a.setAttribute("dy",`${o+1.1*b}em`)})}}function M(a,b,c){let d=b[0].radius-q(b[0],a);for(let c=1;c<b.length;++c){let e=b[c].radius-q(b[c],a);e<=d&&(d=e)}for(let b=0;b<c.length;++b){let e=q(c[b],a)-c[b].radius;e<=d&&(d=e)}return d}function N(a,b,c){let d={},e=function(a){let b={},c=Object.keys(a);for(let a of c)b[a]=[];for(let d=0;d<c.length;d++){let e=c[d],f=a[e];for(let g=d+1;g<c.length;++g){let d=c[g],h=a[d],i=q(f,h);i+h.radius<=f.radius+1e-10?b[d].push(e):i+f.radius<=h.radius+1e-10&&b[e].push(d)}}return b}(a);for(let f=0;f<b.length;++f){let g=b[f].sets,h={},i={};for(let a=0;a<g.length;++a){h[g[a]]=!0;let b=e[g[a]];for(let a=0;a<b.length;++a)i[b[a]]=!0}let j=[],k=[];for(let b in a)b in h?j.push(a[b]):b in i||k.push(a[b]);let l=function a(b,c,d){let e=[];for(let a of b)e.push({x:a.x,y:a.y}),e.push({x:a.x+a.radius/2,y:a.y}),e.push({x:a.x-a.radius/2,y:a.y}),e.push({x:a.x,y:a.y+a.radius/2}),e.push({x:a.x,y:a.y-a.radius/2});let f=e[0],g=M(e[0],b,c);for(let a=1;a<e.length;++a){let d=M(e[a],b,c);d>=g&&(f=e[a],g=d)}let h=A(a=>-1*M({x:a[0],y:a[1]},b,c),[f.x,f.y],{maxIterations:500,minErrorDelta:1e-10}).x,i={x:d?0:h[0],y:h[1]},j=!0;for(let a of b)if(q(i,a)>a.radius){j=!1;break}for(let a of c)if(q(i,a)<a.radius){j=!1;break}if(j)return i;if(1==b.length)return{x:b[0].x,y:b[0].y};let k={};return(o(b,k),0===k.arcs.length)?{x:0,y:-1e3,disjoint:!0}:1==k.arcs.length?{x:k.arcs[0].circle.x,y:k.arcs[0].circle.y}:c.length?a(b,[]):t(k.arcs.map(a=>a.p1))}(j,k,c);d[g]=l,l.disjoint&&b[f].size>0&&console.log("WARNING: area "+g+" not represented on screen")}return d}function O(a){if(0===a.length)return[];let b={};return o(a,b),b.arcs}function P(a,b){if(0===a.length)return"M 0 0";let c=Math.pow(10,b||0),d=null!=b?a=>Math.round(a*c)/c:a=>a;if(1==a.length){var e,f,g;let b,c=a[0].circle;return e=d(c.x),f=d(c.y),g=d(c.radius),(b=[]).push("\nM",e,f),b.push("\nm",-g,0),b.push("\na",g,g,0,1,0,2*g,0),b.push("\na",g,g,0,1,0,-(2*g),0),b.join(" ")}let h=["\nM",d(a[0].p2.x),d(a[0].p2.y)];for(let b of a){let a=d(b.circle.radius);h.push("\nA",a,a,0,+!!b.large,+!!b.sweep,d(b.p1.x),d(b.p1.y))}return h.join(" ")}var Q=c(81509),R=function(){var a=(0,h.K)(function(a,b,c,d){for(c=c||{},d=a.length;d--;c[a[d]]=b);return c},"o"),b=[5,8],c=[7,8,11,12,17,19,22,24],d=[1,17],e=[1,18],f=[7,8,11,12,14,15,16,17,19,20,21,22,24,27],g=[1,31],i=[1,39],j=[7,8,11,12,17,19,22,24,27],k=[1,57],l=[1,56],m=[1,58],n=[1,59],o=[1,60],p=[7,8,11,12,16,17,19,20,22,24,27,31,32,33],q={trace:(0,h.K)(function(){},"trace"),yy:{},symbols_:{error:2,start:3,optNewlines:4,VENN:5,document:6,EOF:7,NEWLINE:8,line:9,statement:10,TITLE:11,SET:12,identifier:13,BRACKET_LABEL:14,COLON:15,NUMERIC:16,UNION:17,identifierList:18,TEXT:19,IDENTIFIER:20,STRING:21,INDENT_TEXT:22,indentedTextTail:23,STYLE:24,stylesOpt:25,styleField:26,COMMA:27,styleValue:28,valueTokens:29,valueToken:30,HEXCOLOR:31,RGBCOLOR:32,RGBACOLOR:33,$accept:0,$end:1},terminals_:{2:"error",5:"VENN",7:"EOF",8:"NEWLINE",11:"TITLE",12:"SET",14:"BRACKET_LABEL",15:"COLON",16:"NUMERIC",17:"UNION",19:"TEXT",20:"IDENTIFIER",21:"STRING",22:"INDENT_TEXT",24:"STYLE",27:"COMMA",31:"HEXCOLOR",32:"RGBCOLOR",33:"RGBACOLOR"},productions_:[0,[3,4],[4,0],[4,2],[6,0],[6,2],[9,1],[9,1],[10,1],[10,2],[10,3],[10,4],[10,5],[10,2],[10,3],[10,4],[10,5],[10,3],[10,3],[10,3],[10,4],[10,4],[10,2],[10,3],[23,1],[23,1],[23,1],[23,2],[23,2],[25,1],[25,3],[26,3],[28,1],[28,1],[29,1],[29,2],[30,1],[30,1],[30,1],[30,1],[30,1],[18,1],[18,3],[13,1],[13,1]],performAction:(0,h.K)(function(a,b,c,d,e,f,g){var h=f.length-1;switch(e){case 1:return f[h-1];case 2:case 3:case 4:case 6:this.$=[];break;case 5:case 35:f[h-1].push(f[h]),this.$=f[h-1];break;case 7:case 22:case 32:case 36:case 37:case 38:case 39:case 40:case 43:case 44:this.$=f[h];break;case 8:d.setDiagramTitle(f[h].substr(6)),this.$=f[h].substr(6);break;case 9:d.addSubsetData([f[h]],void 0,void 0),d.setIndentMode&&d.setIndentMode(!0);break;case 10:d.addSubsetData([f[h-1]],f[h],void 0),d.setIndentMode&&d.setIndentMode(!0);break;case 11:d.addSubsetData([f[h-2]],void 0,parseFloat(f[h])),d.setIndentMode&&d.setIndentMode(!0);break;case 12:d.addSubsetData([f[h-3]],f[h-2],parseFloat(f[h])),d.setIndentMode&&d.setIndentMode(!0);break;case 13:if(f[h].length<2)throw Error("union requires multiple identifiers");d.validateUnionIdentifiers&&d.validateUnionIdentifiers(f[h]),d.addSubsetData(f[h],void 0,void 0),d.setIndentMode&&d.setIndentMode(!0);break;case 14:if(f[h-1].length<2)throw Error("union requires multiple identifiers");d.validateUnionIdentifiers&&d.validateUnionIdentifiers(f[h-1]),d.addSubsetData(f[h-1],f[h],void 0),d.setIndentMode&&d.setIndentMode(!0);break;case 15:if(f[h-2].length<2)throw Error("union requires multiple identifiers");d.validateUnionIdentifiers&&d.validateUnionIdentifiers(f[h-2]),d.addSubsetData(f[h-2],void 0,parseFloat(f[h])),d.setIndentMode&&d.setIndentMode(!0);break;case 16:if(f[h-3].length<2)throw Error("union requires multiple identifiers");d.validateUnionIdentifiers&&d.validateUnionIdentifiers(f[h-3]),d.addSubsetData(f[h-3],f[h-2],parseFloat(f[h])),d.setIndentMode&&d.setIndentMode(!0);break;case 17:case 18:case 19:d.addTextData(f[h-1],f[h],void 0);break;case 20:case 21:d.addTextData(f[h-2],f[h-1],f[h]);break;case 23:d.addStyleData(f[h-1],f[h]);break;case 24:case 25:case 26:var i=d.getCurrentSets();if(!i)throw Error("text requires set");d.addTextData(i,f[h],void 0);break;case 27:case 28:var i=d.getCurrentSets();if(!i)throw Error("text requires set");d.addTextData(i,f[h-1],f[h]);break;case 29:case 41:case 34:this.$=[f[h]];break;case 30:case 42:this.$=[...f[h-2],f[h]];break;case 31:this.$=[f[h-2],f[h]];break;case 33:this.$=f[h].join(" ")}},"anonymous"),table:[a(b,[2,2],{3:1,4:2}),{1:[3]},{5:[1,3],8:[1,4]},a(c,[2,4],{6:5}),a(b,[2,3]),{7:[1,6],8:[1,8],9:7,10:9,11:[1,10],12:[1,11],17:[1,12],19:[1,13],22:[1,14],24:[1,15]},{1:[2,1]},a(c,[2,5]),a(c,[2,6]),a(c,[2,7]),a(c,[2,8]),{13:16,20:d,21:e},{13:20,18:19,20:d,21:e},{13:20,18:21,20:d,21:e},{16:[1,25],20:[1,23],21:[1,24],23:22},{13:20,18:26,20:d,21:e},a(c,[2,9],{14:[1,27],15:[1,28]}),a(f,[2,43]),a(f,[2,44]),a(c,[2,13],{14:[1,29],15:[1,30],27:g}),a(f,[2,41]),{16:[1,34],20:[1,32],21:[1,33],27:g},a(c,[2,22]),a(c,[2,24],{14:[1,35]}),a(c,[2,25],{14:[1,36]}),a(c,[2,26]),{20:i,25:37,26:38,27:g},a(c,[2,10],{15:[1,40]}),{16:[1,41]},a(c,[2,14],{15:[1,42]}),{16:[1,43]},{13:44,20:d,21:e},a(c,[2,17],{14:[1,45]}),a(c,[2,18],{14:[1,46]}),a(c,[2,19]),a(c,[2,27]),a(c,[2,28]),a(c,[2,23],{27:[1,47]}),a(j,[2,29]),{15:[1,48]},{16:[1,49]},a(c,[2,11]),{16:[1,50]},a(c,[2,15]),a(f,[2,42]),a(c,[2,20]),a(c,[2,21]),{20:i,26:51},{16:k,20:l,21:[1,53],28:52,29:54,30:55,31:m,32:n,33:o},a(c,[2,12]),a(c,[2,16]),a(j,[2,30]),a(j,[2,31]),a(j,[2,32]),a(j,[2,33],{30:61,16:k,20:l,31:m,32:n,33:o}),a(p,[2,34]),a(p,[2,36]),a(p,[2,37]),a(p,[2,38]),a(p,[2,39]),a(p,[2,40]),a(p,[2,35])],defaultActions:{6:[2,1]},parseError:(0,h.K)(function(a,b){if(b.recoverable)this.trace(a);else{var c=Error(a);throw c.hash=b,c}},"parseError"),parse:(0,h.K)(function(a){var b=this,c=[0],d=[],e=[null],f=[],g=this.table,i="",j=0,k=0,l=0,m=f.slice.call(arguments,1),n=Object.create(this.lexer),o={};for(var p in this.yy)Object.prototype.hasOwnProperty.call(this.yy,p)&&(o[p]=this.yy[p]);n.setInput(a,o),o.lexer=n,o.parser=this,void 0===n.yylloc&&(n.yylloc={});var q=n.yylloc;f.push(q);var r=n.options&&n.options.ranges;function s(){var a;return"number"!=typeof(a=d.pop()||n.lex()||1)&&(a instanceof Array&&(a=(d=a).pop()),a=b.symbols_[a]||a),a}"function"==typeof o.parseError?this.parseError=o.parseError:this.parseError=Object.getPrototypeOf(this).parseError,(0,h.K)(function(a){c.length=c.length-2*a,e.length=e.length-a,f.length=f.length-a},"popStack"),(0,h.K)(s,"lex");for(var t,u,v,w,x,y,z,A,B,C={};;){if(v=c[c.length-1],this.defaultActions[v]?w=this.defaultActions[v]:(null==t&&(t=s()),w=g[v]&&g[v][t]),void 0===w||!w.length||!w[0]){var D="";for(y in B=[],g[v])this.terminals_[y]&&y>2&&B.push("'"+this.terminals_[y]+"'");D=n.showPosition?"Parse error on line "+(j+1)+":\n"+n.showPosition()+"\nExpecting "+B.join(", ")+", got '"+(this.terminals_[t]||t)+"'":"Parse error on line "+(j+1)+": Unexpected "+(1==t?"end of input":"'"+(this.terminals_[t]||t)+"'"),this.parseError(D,{text:n.match,token:this.terminals_[t]||t,line:n.yylineno,loc:q,expected:B})}if(w[0]instanceof Array&&w.length>1)throw Error("Parse Error: multiple actions possible at state: "+v+", token: "+t);switch(w[0]){case 1:c.push(t),e.push(n.yytext),f.push(n.yylloc),c.push(w[1]),t=null,u?(t=u,u=null):(k=n.yyleng,i=n.yytext,j=n.yylineno,q=n.yylloc,l>0&&l--);break;case 2:if(z=this.productions_[w[1]][1],C.$=e[e.length-z],C._$={first_line:f[f.length-(z||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(z||1)].first_column,last_column:f[f.length-1].last_column},r&&(C._$.range=[f[f.length-(z||1)].range[0],f[f.length-1].range[1]]),void 0!==(x=this.performAction.apply(C,[i,k,j,o,w[1],e,f].concat(m))))return x;z&&(c=c.slice(0,-1*z*2),e=e.slice(0,-1*z),f=f.slice(0,-1*z)),c.push(this.productions_[w[1]][0]),e.push(C.$),f.push(C._$),A=g[c[c.length-2]][c[c.length-1]],c.push(A);break;case 3:return!0}}return!0},"parse")};function r(){this.yy={}}return q.lexer={EOF:1,parseError:(0,h.K)(function(a,b){if(this.yy.parser)this.yy.parser.parseError(a,b);else throw Error(a)},"parseError"),setInput:(0,h.K)(function(a,b){return this.yy=b||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:(0,h.K)(function(){var a=this._input[0];return this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a,a.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},"input"),unput:(0,h.K)(function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this.yyleng=this.yytext.length,this},"unput"),more:(0,h.K)(function(){return this._more=!0,this},"more"),reject:(0,h.K)(function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError("Lexical error on line "+(this.yylineno+1)+". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"reject"),less:(0,h.K)(function(a){this.unput(this.match.slice(a))},"less"),pastInput:(0,h.K)(function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:(0,h.K)(function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:(0,h.K)(function(){var a=this.pastInput(),b=Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},"showPosition"),test_match:(0,h.K)(function(a,b){var c,d,e;if(this.options.backtrack_lexer&&(e={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(e.yylloc.range=this.yylloc.range.slice(0))),(d=a[0].match(/(?:\r\n?|\n).*/g))&&(this.yylineno+=d.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:d?d[d.length-1].length-d[d.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+a[0].length},this.yytext+=a[0],this.match+=a[0],this.matches=a,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(a[0].length),this.matched+=a[0],c=this.performAction.call(this,this.yy,this,b,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),c)return c;if(this._backtrack)for(var f in e)this[f]=e[f];return!1},"test_match"),next:(0,h.K)(function(){if(this.done)return this.EOF;this._input||(this.done=!0),this._more||(this.yytext="",this.match="");for(var a,b,c,d,e=this._currentRules(),f=0;f<e.length;f++)if((c=this._input.match(this.rules[e[f]]))&&(!b||c[0].length>b[0].length)){if(b=c,d=f,this.options.backtrack_lexer){if(!1!==(a=this.test_match(c,e[f])))return a;if(!this._backtrack)return!1;b=!1;continue}if(!this.options.flex)break}return b?!1!==(a=this.test_match(b,e[d]))&&a:""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},"next"),lex:(0,h.K)(function(){var a=this.next();return a||this.lex()},"lex"),begin:(0,h.K)(function(a){this.conditionStack.push(a)},"begin"),popState:(0,h.K)(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},"popState"),_currentRules:(0,h.K)(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},"_currentRules"),topState:(0,h.K)(function(a){return(a=this.conditionStack.length-1-Math.abs(a||0))>=0?this.conditionStack[a]:"INITIAL"},"topState"),pushState:(0,h.K)(function(a){this.begin(a)},"pushState"),stateStackSize:(0,h.K)(function(){return this.conditionStack.length},"stateStackSize"),options:{"case-insensitive":!0},performAction:(0,h.K)(function(a,b,c,d){switch(c){case 0:case 1:case 2:case 4:case 7:case 8:break;case 3:if(a.getIndentMode&&a.getIndentMode())return a.consumeIndentText=!0,this.begin("INITIAL"),22;break;case 5:a.setIndentMode&&a.setIndentMode(!1),this.begin("INITIAL"),this.unput(b.yytext);break;case 6:return this.begin("bol"),8;case 9:return 7;case 10:return 11;case 11:return 5;case 12:return 12;case 13:return 17;case 14:if(!a.consumeIndentText)return 19;a.consumeIndentText=!1;break;case 15:return 24;case 16:return b.yytext=b.yytext.slice(2,-2),14;case 17:return b.yytext=b.yytext.slice(1,-1).trim(),14;case 18:return 16;case 19:return 31;case 20:return 33;case 21:return 32;case 22:return 20;case 23:return 21;case 24:return 27;case 25:return 15}},"anonymous"),rules:[/^(?:%%(?!\{)[^\n]*)/i,/^(?:[^\}]%%[^\n]*)/i,/^(?:[ \t]+(?=[\n\r]))/i,/^(?:[ \t]+(?=text\b))/i,/^(?:[ \t]+)/i,/^(?:[^ \t\n\r])/i,/^(?:[\n\r]+)/i,/^(?:%%[^\n]*)/i,/^(?:[ \t]+)/i,/^(?:$)/i,/^(?:title\s[^#\n;]+)/i,/^(?:venn-beta\b)/i,/^(?:set\b)/i,/^(?:union\b)/i,/^(?:text\b)/i,/^(?:style\b)/i,/^(?:\["[^\"]*"\])/i,/^(?:\[[^\]\"]+\])/i,/^(?:[+-]?(\d+(\.\d+)?|\.\d+))/i,/^(?:#[0-9a-fA-F]{3,8})/i,/^(?:rgba\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:rgb\(\s*[0-9.]+\s*[,]\s*[0-9.]+\s*[,]\s*[0-9.]+\s*\))/i,/^(?:[A-Za-z_][A-Za-z0-9\-_]*)/i,/^(?:"[^\"]*")/i,/^(?:,)/i,/^(?::)/i],conditions:{bol:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0},INITIAL:{rules:[0,1,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}},(0,h.K)(r,"Parser"),r.prototype=q,q.Parser=r,new r}();R.parser=R;var S=[],T=[],U=[],V=new Set,W=!1,X=(0,h.K)((a,b,c)=>{let e=ac(a).sort(),f=c??10/Math.pow(a.length,2);d=e,1===e.length&&V.add(e[0]),S.push({sets:e,size:f,label:b?Z(b):void 0})},"addSubsetData"),Y=(0,h.K)(()=>S,"getSubsetData"),Z=(0,h.K)(a=>{let b=a.trim();return b.length>=2&&b.startsWith('"')&&b.endsWith('"')?b.slice(1,-1):b},"normalizeText"),$=(0,h.K)(a=>a?Z(a):a,"normalizeStyleValue"),_=(0,h.K)((a,b,c)=>{let d=Z(b);T.push({sets:ac(a).sort(),id:d,label:c?Z(c):void 0})},"addTextData"),aa=(0,h.K)((a,b)=>{let c=ac(a).sort(),d={};for(let[a,c]of b)d[a]=$(c)??c;U.push({targets:c,styles:d})},"addStyleData"),ab=(0,h.K)(()=>U,"getStyleData"),ac=(0,h.K)(a=>a.map(a=>Z(a)),"normalizeIdentifierList"),ad=(0,h.K)(a=>{let b=ac(a).filter(a=>!V.has(a));if(b.length>0)throw Error(`unknown set identifier: ${b.join(", ")}`)},"validateUnionIdentifiers"),ae=(0,h.K)(()=>T,"getTextData"),af=(0,h.K)(()=>d,"getCurrentSets"),ag=(0,h.K)(()=>W,"getIndentMode"),ah=(0,h.K)(a=>{W=a},"setIndentMode"),ai=g.UI.venn;function aj(){return(0,f.$t)(ai,(0,g.zj)().venn)}(0,h.K)(aj,"getConfig");var ak={getConfig:aj,clear:(0,h.K)(()=>{(0,g.IU)(),S.length=0,T.length=0,U.length=0,V.clear(),d=void 0,W=!1},"customClear"),setAccTitle:g.SV,getAccTitle:g.iN,setDiagramTitle:g.ke,getDiagramTitle:g.ab,getAccDescription:g.m7,setAccDescription:g.EI,addSubsetData:X,getSubsetData:Y,addTextData:_,addStyleData:aa,validateUnionIdentifiers:ad,getTextData:ae,getStyleData:ab,getCurrentSets:af,getIndentMode:ag,setIndentMode:ah},al=(0,h.K)(a=>`
|
|
2
|
-
.venn-title {
|
|
3
|
-
font-size: 32px;
|
|
4
|
-
fill: ${a.vennTitleTextColor};
|
|
5
|
-
font-family: ${a.fontFamily};
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.venn-circle text {
|
|
9
|
-
font-size: 48px;
|
|
10
|
-
font-family: ${a.fontFamily};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
.venn-intersection text {
|
|
14
|
-
font-size: 48px;
|
|
15
|
-
fill: ${a.vennSetTextColor};
|
|
16
|
-
font-family: ${a.fontFamily};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.venn-text-node {
|
|
20
|
-
font-family: ${a.fontFamily};
|
|
21
|
-
color: ${a.vennSetTextColor};
|
|
22
|
-
}
|
|
23
|
-
`,"getStyles");function am(a){let b=new Map;for(let c of a){let a=c.targets.join("|"),d=b.get(a);d?Object.assign(d,c.styles):b.set(a,{...c.styles})}return b}(0,h.K)(am,"buildStyleByKey");var an=(0,h.K)((a,b,c,d)=>{let f=d.db,h=f.getConfig?.(),{themeVariables:k,look:o,handDrawnSeed:p}=(0,g.zj)(),q="handDrawn"===o,r=[k.venn1,k.venn2,k.venn3,k.venn4,k.venn5,k.venn6,k.venn7,k.venn8].filter(Boolean),s=f.getDiagramTitle?.(),t=f.getSubsetData(),u=f.getTextData(),v=am(f.getStyleData()),w=aq(t),x=h?.width??800,y=h?.height??450,z=x/1600,A=s?48*z:0,C=k.primaryTextColor??k.textColor,D=(0,e.D)(b);D.attr("viewBox",`0 0 ${x} ${y}`),s&&D.append("text").text(s).attr("class","venn-title").attr("font-size",`${32*z}px`).attr("text-anchor","middle").attr("dominant-baseline","middle").attr("x","50%").attr("y",32*z).style("fill",k.vennTitleTextColor||k.titleColor);let G=(0,i.Ltv)(document.createElement("div")),J=(function(a={}){let b=!1,c=600,d=350,e=15,f=1e3,g=Math.PI/2,h=!0,i=null,j=!0,k=!0,l=null,m=null,n=!1,o=null,p=!!a&&!!a.symmetricalTextCentre&&a.symmetricalTextCentre,q={},r=a&&a.colourScheme?a.colourScheme:a&&a.colorScheme?a.colorScheme:["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"],s=0,t=function(a){if(a in q)return q[a];var b=q[a]=r[s];return(s+=1)>=r.length&&(s=0),b},u=B,v=E;function w(q){let r=q.datum(),s=new Set;r.forEach(a=>{0==a.size&&1==a.sets.length&&s.add(a.sets[0])});let w={},x={};if((r=r.filter(a=>!a.sets.some(a=>s.has(a)))).length>0){let a=u(r,{lossFunction:v,distinct:n});h&&(a=H(a,g,m)),x=N(w=I(a,c,d,e,i),r,p)}let y={};function z(a){return a.sets in y?y[a.sets]:1==a.sets.length?""+a.sets[0]:void 0}r.forEach(a=>{a.label&&(y[a.sets]=a.label)}),q.selectAll("svg").data([w]).enter().append("svg");let A=q.select("svg");b?A.attr("viewBox",`0 0 ${c} ${d}`):A.attr("width",c).attr("height",d);let B={},C=!1;function D(a){return b=>{var e,f;return e=a.sets.map(a=>{let e=B[a],f=w[a];return e||(e={x:c/2,y:d/2,radius:1}),f||(f={x:c/2,y:d/2,radius:1}),{x:e.x*(1-b)+f.x*b,y:e.y*(1-b)+f.y*b,radius:e.radius*(1-b)+f.radius*b}}),f=o,P(O(e),f)}}A.selectAll(".venn-area path").each(function(a){let b,c=this.getAttribute("d");1==a.sets.length&&c&&!n&&(C=!0,B[a.sets[0]]={x:Number.parseFloat((b=c.split(" "))[1]),y:Number.parseFloat(b[2]),radius:-Number.parseFloat(b[4])})});let E=A.selectAll(".venn-area").data(r,a=>a.sets),F=E.enter().append("g").attr("class",a=>`venn-area venn-${1==a.sets.length?"circle":"intersection"}${a.colour||a.color?" venn-coloured":""}`).attr("data-venn-sets",a=>a.sets.join("_")),G=F.append("path"),J=F.append("text").attr("class","label").text(a=>z(a)).attr("text-anchor","middle").attr("dy",".35em").attr("x",c/2).attr("y",d/2);function K(a){return"function"==typeof a.transition?a.transition("venn").duration(f):a}k&&(G.style("fill-opacity","0").filter(a=>1==a.sets.length).style("fill",a=>a.colour?a.colour:a.color?a.color:t(a.sets)).style("fill-opacity",".25"),J.style("fill",b=>b.colour||b.color?"#FFF":a.textFill?a.textFill:1==b.sets.length?t(b.sets):"#444"));let M=q;C&&"function"==typeof M.transition?(M=K(q)).selectAll("path").attrTween("d",D):M.selectAll("path").attr("d",a=>P(O(a.sets.map(a=>w[a])),void 0),o);let Q=M.selectAll("text").filter(a=>a.sets in x).text(a=>z(a)).attr("x",a=>Math.floor(x[a.sets].x)).attr("y",a=>Math.floor(x[a.sets].y));j&&(C?"on"in Q?Q.on("end",L(w,z)):Q.each("end",L(w,z)):Q.each(L(w,z)));let R=K(E.exit()).remove();"function"==typeof E.transition&&R.selectAll("path").attrTween("d",D);let S=R.selectAll("text").attr("x",c/2).attr("y",d/2);return null!==l&&(J.style("font-size","0px"),Q.style("font-size",l),S.style("font-size","0px")),{circles:w,textCentres:x,nodes:E,enter:F,update:M,exit:R}}return w.wrap=function(a){return arguments.length?(j=a,w):j},w.useViewBox=function(){return b=!0,w},w.width=function(a){return arguments.length?(c=a,w):c},w.height=function(a){return arguments.length?(d=a,w):d},w.padding=function(a){return arguments.length?(e=a,w):e},w.distinct=function(a){return arguments.length?(n=a,w):n},w.colours=function(a){return arguments.length?(t=a,w):t},w.colors=function(a){return arguments.length?(t=a,w):t},w.fontSize=function(a){return arguments.length?(l=a,w):l},w.round=function(a){return arguments.length?(o=a,w):o},w.duration=function(a){return arguments.length?(f=a,w):f},w.layoutFunction=function(a){return arguments.length?(u=a,w):u},w.normalize=function(a){return arguments.length?(h=a,w):h},w.scaleToFit=function(a){return arguments.length?(i=a,w):i},w.styled=function(a){return arguments.length?(k=a,w):k},w.orientation=function(a){return arguments.length?(g=a,w):g},w.orientationOrder=function(a){return arguments.length?(m=a,w):m},w.lossFunction=function(a){return arguments.length?(v="default"===a?E:"logRatio"===a?F:a,w):v},w})().width(x).height(y-A);G.datum(w).call(J);let K=q?Q.A.svg(G.select("svg").node()):void 0,M=function(a,b={}){let{lossFunction:c,layoutFunction:d=B,normalize:e=!0,orientation:f=Math.PI/2,orientationOrder:g,width:h=600,height:i=350,padding:j=15,scaleToFit:k=!1,symmetricalTextCentre:l=!1,distinct:m,round:n=2}=b,o=d(a,{lossFunction:"default"!==c&&c?"logRatio"===c?F:c:E,distinct:m});e&&(o=H(o,f,g));let p=I(o,h,i,j,k),q=N(p,a,l),r=new Map(Object.keys(p).map(a=>[a,{set:a,x:p[a].x,y:p[a].y,radius:p[a].radius}])),s=a.map(a=>{let b=a.sets.map(a=>r.get(a)),c=O(b),d=P(c,n);return{circles:b,arcs:c,path:d,area:a,has:new Set(a.sets)}});return s.map(({circles:a,arcs:b,path:c,area:d})=>({data:d,text:q[d.sets],circles:a,arcs:b,path:c,distinctPath:c+function(a){let b="";for(let c of s)c.has.size>a.length&&a.every(a=>c.has.has(a))&&(b+=" "+c.path);return b}(d.sets)}))}(w,{width:x,height:y-A,padding:h?.padding??15}),R=new Map;for(let a of M){let b=ao([...a.data.sets].sort());R.set(b,a)}u.length>0&&ap(h,R,G,u,z,v);let S=(0,j.A)(k.background||"#f4f4f4");G.selectAll(".venn-circle").each(function(a,b){let c=(0,i.Ltv)(this),d=ao([...a.sets].sort()),e=v.get(d),f=e?.fill||r[b%r.length]||k.primaryColor;c.classed(`venn-set-${b%8}`,!0);let g=e?.["fill-opacity"]??.1,h=e?.stroke||f,j=e?.["stroke-width"]||`${5*z}`;if(q&&K){let a=R.get(d);if(a&&a.circles.length>0){let d=a.circles[0],e=K.circle(d.x,d.y,2*d.radius,{roughness:.7,seed:p,fill:l(f,.7),fillStyle:"hachure",fillWeight:2,hachureGap:8,hachureAngle:-41+60*b,stroke:h,strokeWidth:parseFloat(String(j))});c.select("path").remove(),c.node()?.insertBefore(e,c.select("text").node())}}else c.select("path").style("fill",f).style("fill-opacity",g).style("stroke",h).style("stroke-width",j).style("stroke-opacity",.95);let o=e?.color||(S?(0,m.A)(f,30):(0,n.A)(f,30));c.select("text").style("font-size",`${48*z}px`).style("fill",o)}),q&&K?G.selectAll(".venn-intersection").each(function(a){let b=(0,i.Ltv)(this),c=ao([...a.sets].sort()),d=v.get(c),e=d?.fill;if(e){let a=b.select("path"),c=a.attr("d");if(c){let b=K.path(c,{roughness:.7,seed:p,fill:l(e,.3),fillStyle:"cross-hatch",fillWeight:2,hachureGap:6,hachureAngle:60,stroke:"none"}),d=a.node();d?.parentNode?.insertBefore(b,d),a.remove()}}else b.select("path").style("fill-opacity",0);b.select("text").style("font-size",`${48*z}px`).style("fill",d?.color??k.vennSetTextColor??C)}):(G.selectAll(".venn-intersection text").style("font-size",`${48*z}px`).style("fill",a=>{let b=ao([...a.sets].sort());return v.get(b)?.color??k.vennSetTextColor??C}),G.selectAll(".venn-intersection path").style("fill-opacity",a=>{let b=ao([...a.sets].sort());return+!!v.get(b)?.fill}).style("fill",a=>{let b=ao([...a.sets].sort());return v.get(b)?.fill??"transparent"}));let T=D.append("g").attr("transform",`translate(0, ${A})`),U=G.select("svg").node();if(U&&"childNodes"in U)for(let a of[...U.childNodes])T.node()?.appendChild(a);(0,g.a$)(D,y,x,h?.useMaxWidth??!0)},"draw");function ao(a){return a.join("|")}function ap(a,b,c,d,e,f){let g=a?.useDebugLayout??!1,h=c.select("svg").append("g").attr("class","venn-text-nodes"),i=new Map;for(let a of d){let b=ao(a.sets),c=i.get(b);c?c.push(a):i.set(b,[a])}for(let[a,c]of i.entries()){let d=b.get(a);if(!d?.text)continue;let i=d.text.x,j=d.text.y,k=Math.min(...d.circles.map(a=>a.radius)),l=Math.min(...d.circles.map(a=>a.radius-Math.hypot(i-a.x,j-a.y))),m=Number.isFinite(l)?Math.max(0,l):0;0===m&&Number.isFinite(k)&&(m=.6*k);let n=h.append("g").attr("class","venn-text-area").attr("font-size",`${40*e}px`);g&&n.append("circle").attr("class","venn-text-debug-circle").attr("cx",i).attr("cy",j).attr("r",m).attr("fill","none").attr("stroke","purple").attr("stroke-width",1.5*e).attr("stroke-dasharray",`${6*e} ${4*e}`);let o=Math.max(80*e,2*m*.95),p=Math.max(60*e,2*m*.95),q=(d.data.label&&d.data.label.length>0?Math.min(32*e,.25*m):0)+(c.length<=2?30*e:0),r=i-o/2,s=j-p/2+q,t=Math.max(1,Math.ceil(Math.sqrt(c.length))),u=Math.max(1,Math.ceil(c.length/t)),v=o/t,w=p/u;for(let[a,b]of c.entries()){let c=a%t,d=Math.floor(a/t),h=r+v*(c+.5),i=s+w*(d+.5);g&&n.append("rect").attr("class","venn-text-debug-cell").attr("x",r+v*c).attr("y",s+w*d).attr("width",v).attr("height",w).attr("fill","none").attr("stroke","teal").attr("stroke-width",+e).attr("stroke-dasharray",`${4*e} ${3*e}`);let j=.9*v,k=.9*w,l=n.append("foreignObject").attr("class","venn-text-node-fo").attr("width",j).attr("height",k).attr("x",h-j/2).attr("y",i-k/2).attr("overflow","visible"),m=f.get(b.id)?.color,o=l.append("xhtml:span").attr("class","venn-text-node").style("display","flex").style("width","100%").style("height","100%").style("white-space","normal").style("align-items","center").style("justify-content","center").style("text-align","center").style("overflow-wrap","normal").style("word-break","normal").text(b.label??b.id);m&&o.style("color",m)}}}function aq(a){let b=new Set(a.map(a=>[...a.sets].sort().join("|"))),c=new Map(a.filter(a=>1===a.sets.length&&void 0!==a.size).map(a=>[a.sets[0],a.size])),d=[];for(let e of a){if(e.sets.length<3)continue;let a=[...e.sets].sort();for(let e=0;e<a.length-1;e++)for(let f=e+1;f<a.length;f++){let g=[a[e],a[f]],h=g.join("|");if(!b.has(h)){b.add(h);let a=c.get(g[0]),e=c.get(g[1]),f=void 0!==a&&void 0!==e?Math.min(a,e)/4:2.5;d.push({sets:g,size:f,label:""})}}}return d.length>0?[...a,...d]:a}(0,h.K)(ao,"stableSetsKey"),(0,h.K)(ap,"renderTextNodes"),(0,h.K)(aq,"ensurePairwiseSubsets");var ar={parser:R,db:ak,renderer:{draw:an},styles:al}}};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";exports.id=2106,exports.ids=[2106],exports.modules={12106:(a,b,c)=>{c.d(b,{createArchitectureServices:()=>d.S});var d=c(8903);c(7274)}};
|