uigraph 1.0.0 → 1.0.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/dist/bin.mjs +134 -56911
- package/dist/viewer/assets/abnfDiagram-VCTEODGH-D7zWJuPJ.js +1 -0
- package/dist/viewer/assets/actor-avatar-Bu-mKKXB.js +1 -0
- package/dist/viewer/assets/{api-adapters-CnQpLiWI.js → api-adapters-tfr51BsS.js} +1 -1
- package/dist/viewer/assets/{api-endpoints-DCA5GNpC.js → api-endpoints-D-Whnnwd.js} +9 -9
- package/dist/viewer/assets/{api-group-endpoints-page-Di42W69y.js → api-group-endpoints-page-B9R1EI4i.js} +9 -9
- package/dist/viewer/assets/{arc-Cn8owoDw.js → arc-DauzQXFu.js} +1 -1
- package/dist/viewer/assets/architectureDiagram-5GKGNRK7-CXzgHd-c.js +36 -0
- package/dist/viewer/assets/{arrow-left-DWcMgM2U.js → arrow-left-DpQqmf17.js} +1 -1
- package/dist/viewer/assets/avatar-DAFUyk1i.js +43 -0
- package/dist/viewer/assets/badge-hR3QvPWv.js +1 -0
- package/dist/viewer/assets/better-delete-confirmation-modal-CGEQ5O4X.js +1 -0
- package/dist/viewer/assets/better-dialog-DcIxFWwk.js +1 -0
- package/dist/viewer/assets/{blockDiagram-I7D4REHJ-CbYzOsL_.js → blockDiagram-I7D4REHJ-CFHWUw4z.js} +2 -2
- package/dist/viewer/assets/{brands-Bd4RklRx.js → brands-DtmA1AhP.js} +1 -1
- package/dist/viewer/assets/button-DZj74qS7.js +1 -0
- package/dist/viewer/assets/{c4Diagram-7LVT6UL2-CLkVbphC.js → c4Diagram-7LVT6UL2-BHSggPKI.js} +6 -6
- package/dist/viewer/assets/{calendar-C0xdI_ag.js → calendar-Bolgc8E5.js} +1 -1
- package/dist/viewer/assets/channel-CNRSofFP.js +1 -0
- package/dist/viewer/assets/{check-XjanpAFg.js → check-BpmCQNbj.js} +1 -1
- package/dist/viewer/assets/checkbox-CFJfXL6R.js +1 -0
- package/dist/viewer/assets/{chevron-down-R7pQzyLD.js → chevron-down-DDsUE_xz.js} +1 -1
- package/dist/viewer/assets/{chevron-up-CRPypfOs.js → chevron-up-DVznKMGv.js} +1 -1
- package/dist/viewer/assets/{chunk-2Q5K7J3B-CcvtugCu.js → chunk-2Q5K7J3B-CNfz5YDQ.js} +1 -1
- package/dist/viewer/assets/{chunk-5VM5RSS4-CpZHHr12.js → chunk-5VM5RSS4-CwIhjvMe.js} +1 -1
- package/dist/viewer/assets/{chunk-F27PBJKO-DeAl4iOc.js → chunk-F27PBJKO-YFexFJof.js} +1 -1
- package/dist/viewer/assets/{chunk-IMKFNOWR-BfrPe7pS.js → chunk-IMKFNOWR-GY2yrvuo.js} +1 -1
- package/dist/viewer/assets/{chunk-JWPE2WC7-DDjyvUmZ.js → chunk-JWPE2WC7-xd0JGvne.js} +1 -1
- package/dist/viewer/assets/chunk-OB3PAWPO-DJIP1M4r.js +12 -0
- package/dist/viewer/assets/{chunk-POPQ4Y6H-DkDb0mzz.js → chunk-POPQ4Y6H-Bh6rizEy.js} +1 -1
- package/dist/viewer/assets/{chunk-SVP7TREG-D-K2XIGs.js → chunk-SVP7TREG-DtNrjvpq.js} +1 -1
- package/dist/viewer/assets/{chunk-TICWLB2K-DWMQQx6z.js → chunk-TICWLB2K-DrERwtw8.js} +1 -1
- package/dist/viewer/assets/{chunk-XXDRQBXY-DfkljAyM.js → chunk-XXDRQBXY-fYo04iwY.js} +1 -1
- package/dist/viewer/assets/{circle-alert-pm13M-Ef.js → circle-alert-Bl7DXYD_.js} +1 -1
- package/dist/viewer/assets/classDiagram-ZZMXUADV-D7PO-ME9.js +1 -0
- package/dist/viewer/assets/classDiagram-v2-VYDZK3BY-D7PO-ME9.js +1 -0
- package/dist/viewer/assets/color-input-ClkkG_kZ.js +11 -0
- package/dist/viewer/assets/{common-Y7ySZBdh.js → common-DLCsGQ-t.js} +1 -1
- package/dist/viewer/assets/{component-icons-D1BDAuEt.js → component-icons-MJ61E9nt.js} +2 -2
- package/dist/viewer/assets/{copy-CN4K2f_R.js → copy-DMJJonQF.js} +1 -1
- package/dist/viewer/assets/cose-bilkent-JH36ORCC-Dplz8nVT.js +1 -0
- package/dist/viewer/assets/cross-button-D5qst1tj.js +1 -0
- package/dist/viewer/assets/{cynefin-OW5HDTMX-yz-uw9Kz.js → cynefin-OW5HDTMX-DiBs4CI8.js} +1 -1
- package/dist/viewer/assets/cynefinDiagram-5FMLGOSQ-COXS8-dI.js +62 -0
- package/dist/viewer/assets/{dagre-GXQ25YYZ-zjZDwXOe.js → dagre-GXQ25YYZ-K8qvfG8D.js} +2 -2
- package/dist/viewer/assets/dashboard-diagrams-page-Cb0xNr4W.js +2 -0
- package/dist/viewer/assets/dashboard-diagrams-page-inner-CD--zr5q.js +1 -0
- package/dist/viewer/assets/dashboard-docs-page-BfWR9Ai9.js +2 -0
- package/dist/viewer/assets/dashboard-docs-page-inner-BLbX-YwF.js +67 -0
- package/dist/viewer/assets/dashboard-layout-sTeeHNsZ.js +1 -0
- package/dist/viewer/assets/dashboard-lens-layout-D-tu_4kn.js +1 -0
- package/dist/viewer/assets/dashboard-map-frame-page-7pDmbTSe.js +1 -0
- package/dist/viewer/assets/dashboard-plans-page-CfwOZ34A.js +1 -0
- package/dist/viewer/assets/dashboard-service-apis-k93fjW51.js +1 -0
- package/dist/viewer/assets/{dashboard-service-diagrams-CIjk95Jk.js → dashboard-service-diagrams-BIWUxX-Y.js} +3 -3
- package/dist/viewer/assets/dashboard-service-docs-CnniTD6Q.js +1 -0
- package/dist/viewer/assets/{dashboard-service-overview-CzePVPjl.js → dashboard-service-overview-CGBu4omY.js} +5 -5
- package/dist/viewer/assets/dashboard-services-DEscIO2O.js +1 -0
- package/dist/viewer/assets/{db-type-badge-DOgu1Pyc.js → db-type-badge-UbPgpwQf.js} +2 -2
- package/dist/viewer/assets/debounce-Cp8eREM4-D7o-Pzb-.js +2 -0
- package/dist/viewer/assets/{dependencies-CYdEztHw.js → dependencies-DK2GDlhQ.js} +1 -1
- package/dist/viewer/assets/{dependency-graph-DbyfN-rC.js → dependency-graph-xBEnCS0J.js} +3 -3
- package/dist/viewer/assets/{diagram-S7CK7UJ4-q-NHkUCx.js → diagram-S7CK7UJ4-D-liadVe.js} +2 -2
- package/dist/viewer/assets/diagram-UQ7AKVKN-CnA8mgXp.js +41 -0
- package/dist/viewer/assets/{diagram-VSXAHHWV-DZc1kHGx.js → diagram-VSXAHHWV-Ck7dgRFR.js} +2 -2
- package/dist/viewer/assets/diagram-VX7I27RA-Cm1LHbu3.js +24 -0
- package/dist/viewer/assets/diagram-Z3DM3KII-DV3yBUCB.js +24 -0
- package/dist/viewer/assets/diagram-live-preview-DzJ7Nxp1.js +2 -0
- package/dist/viewer/assets/{diagram-portal-page-CWxuok9E.js → diagram-portal-page-gguGLULH.js} +24 -24
- package/dist/viewer/assets/{diagrams-C1xkRPqT.js → diagrams-BqBSv2eb.js} +4 -4
- package/dist/viewer/assets/dialog-D7wzTt0L.js +6 -0
- package/dist/viewer/assets/{doc-file-content-B06roi8L.js → doc-file-content-Be0au9Vo.js} +4 -4
- package/dist/viewer/assets/{download-CLdCXVsO.js → download-DhyZ3g4F.js} +1 -1
- package/dist/viewer/assets/ebnfDiagram-PWID7BFC-BXbHVQvG.js +1 -0
- package/dist/viewer/assets/{editor-vqK4qAnB.js → editor-F9o4zoeB.js} +2 -2
- package/dist/viewer/assets/{erDiagram-RLTQ6QDP-BWuA-aqV.js → erDiagram-RLTQ6QDP-DMfiWput.js} +2 -2
- package/dist/viewer/assets/{file-text-BvszilVL.js → file-text-BFqJQ67P.js} +1 -1
- package/dist/viewer/assets/flow-diagram-preview-B83UU1n_.js +1 -0
- package/dist/viewer/assets/{flowDiagram-HODETNUW-Db0QtNj4.js → flowDiagram-HODETNUW-BNFS2Mkr.js} +1 -1
- package/dist/viewer/assets/ganttDiagram-EL5Y4UJY-DFDsYJNp.js +292 -0
- package/dist/viewer/assets/gitGraphDiagram-WWUBYQGX-BVHabPDp.js +106 -0
- package/dist/viewer/assets/global-loader-XJO9_e0l.js +1 -0
- package/dist/viewer/assets/{globe-Jl6eIZmG.js → globe-CJ35KsQW.js} +1 -1
- package/dist/viewer/assets/gql-FFIj8zdp.js +1 -0
- package/dist/viewer/assets/{grid-scroll-body-CPqSxU6-.js → grid-scroll-body-DC5pYDPJ.js} +2 -2
- package/dist/viewer/assets/iconBase-DtqdW2XR.js +1 -0
- package/dist/viewer/assets/index-B6MxYIzs.js +1 -0
- package/dist/viewer/assets/index-BC5xdBQU.js +48 -0
- package/dist/viewer/assets/index-BIrx3oY4.js +1 -0
- package/dist/viewer/assets/{index-jm22RWpY.js → index-BZGsDmUx.js} +5 -5
- package/dist/viewer/assets/{index-Poftp9f1.js → index-BZXhpoWr.js} +4 -4
- package/dist/viewer/assets/index-Bn2bqqMd.js +1 -0
- package/dist/viewer/assets/{index-HU5pz3kj.js → index-BpCVYTvP.js} +36 -36
- package/dist/viewer/assets/{index-Bt2YHgxl.js → index-CBOYhBKJ.js} +1 -1
- package/dist/viewer/assets/index-CH7cEAxj.js +17 -0
- package/dist/viewer/assets/index-CIf0GId3.js +74 -0
- package/dist/viewer/assets/{index-D7MEHpJf.js → index-Ck66Ic_p.js} +4 -4
- package/dist/viewer/assets/index-Cp9mIQ8F.js +1 -0
- package/dist/viewer/assets/{index-c6Bxcoqm.js → index-DDmBuMKI.js} +1 -1
- package/dist/viewer/assets/{index-BSyJbFDG.js → index-DY3BFyb6.js} +1 -1
- package/dist/viewer/assets/{index-BS94XVnd.js → index-DkzZ-ZvR.js} +1 -1
- package/dist/viewer/assets/{index-C_43VC19.js → index-PglMbhys.js} +1 -1
- package/dist/viewer/assets/infoDiagram-27XIBGKW-CG-wwxBf.js +2 -0
- package/dist/viewer/assets/input--C59pq6j.js +1 -0
- package/dist/viewer/assets/{ishikawaDiagram-5VMMS53U-C4PzFnZ4.js → ishikawaDiagram-5VMMS53U-BlgV7ceJ.js} +2 -2
- package/dist/viewer/assets/{journeyDiagram-3NMN7TZE-Dpn3bBNo.js → journeyDiagram-3NMN7TZE-Cn03_Xl6.js} +2 -2
- package/dist/viewer/assets/{kanban-definition-UXKFOSKX-CJ99H4G6.js → kanban-definition-UXKFOSKX-CJogvDPY.js} +6 -6
- package/dist/viewer/assets/{layout-Bfvxt_D5.js → layout-B26eC4yQ.js} +1 -1
- package/dist/viewer/assets/{lens-run-page-DZneics-.js → lens-run-page-Ba1ppzJt.js} +3 -3
- package/dist/viewer/assets/lens-runs-page-BnUS57LM.js +1 -0
- package/dist/viewer/assets/{link-2-C75goIOt.js → link-2-D1e0xznG.js} +1 -1
- package/dist/viewer/assets/linked-project-dot-BY1gEES9.js +543 -0
- package/dist/viewer/assets/{loader-circle-C5jZoM7X.js → loader-circle-CiqyoJF7.js} +1 -1
- package/dist/viewer/assets/{merge-Cy7YkrN7.js → merge-BhOMvhW1.js} +1 -1
- package/dist/viewer/assets/mermaid.core-BDgZg3kW.js +312 -0
- package/dist/viewer/assets/method-badge-DErZP7y5.js +1 -0
- package/dist/viewer/assets/{mindmap-definition-YA3MSWOX-yQCKA-K4.js → mindmap-definition-YA3MSWOX-DFkLu0ac.js} +2 -2
- package/dist/viewer/assets/nav-links-DZWMpwMR.js +61 -0
- package/dist/viewer/assets/{network-COWNXGMM.js → network-B1apzT1s.js} +1 -1
- package/dist/viewer/assets/{nosql-editor-modal-DTiWkc_r.js → nosql-editor-modal-CvH0SWAi.js} +5 -5
- package/dist/viewer/assets/not-found-page-C-fn8QeM.js +1 -0
- package/dist/viewer/assets/organization-dependency-graph-page-BryP-iJL.js +1 -0
- package/dist/viewer/assets/pegDiagram-XKGWAZYB-g1cM14-L.js +1 -0
- package/dist/viewer/assets/{pieDiagram-E7YTZNPT-DqnkpCX4.js → pieDiagram-E7YTZNPT-WEnDsMY3.js} +2 -2
- package/dist/viewer/assets/{plus-DQakmTjA.js → plus-DbyuOgKB.js} +1 -1
- package/dist/viewer/assets/popover-476u3TN0.js +1 -0
- package/dist/viewer/assets/preload-helper-BlTxHScW.js +1 -0
- package/dist/viewer/assets/{quadrantDiagram-AXDQQJYC-iQjJfars.js → quadrantDiagram-AXDQQJYC-NdfQCpzF.js} +2 -2
- package/dist/viewer/assets/query-D9oj6LGx.js +50 -0
- package/dist/viewer/assets/{quill-rCHj4fCw.js → quill-Cde5JMRD.js} +1 -1
- package/dist/viewer/assets/railroadDiagram-O6MQD6OU-BYhlXlMY.js +1 -0
- package/dist/viewer/assets/{react-BNzYaZuG.js → react-Bx48XWN4.js} +1 -1
- package/dist/viewer/assets/react-flow-wrapper-BcbvHgxz.js +277 -0
- package/dist/viewer/assets/{requirementDiagram-BXWQKSXE-Bv-Vh1dW.js → requirementDiagram-BXWQKSXE-C25Bcm2L.js} +2 -2
- package/dist/viewer/assets/{sankeyDiagram-P5KCCOFB-C__uD07f.js → sankeyDiagram-P5KCCOFB-h8LiCsgk.js} +2 -2
- package/dist/viewer/assets/scroll-area-RagrStGj.js +6 -0
- package/dist/viewer/assets/{search-DW-qhXLk.js → search-vw7ucoOs.js} +1 -1
- package/dist/viewer/assets/section-loader-C4hOfhQS.js +1 -0
- package/dist/viewer/assets/section-not-found-BnrXiPog.js +1 -0
- package/dist/viewer/assets/select-D9fbrr7O.js +1 -0
- package/dist/viewer/assets/{sequenceDiagram-WJ2MYXX4-1RbvcHwO.js → sequenceDiagram-WJ2MYXX4-CDRVvD30.js} +2 -2
- package/dist/viewer/assets/{service-context-C17u_Fw9.js → service-context-D5nBtU18.js} +1 -1
- package/dist/viewer/assets/{service-database-list-page-cYuDHIls.js → service-database-list-page-DBjaDLVy.js} +2 -2
- package/dist/viewer/assets/service-database-page-CenNCgwf.js +2 -0
- package/dist/viewer/assets/service-database-page-inner-gS51TQTZ.js +85 -0
- package/dist/viewer/assets/{service-doc-Dir8g83J.js → service-doc-C-jHqT1U.js} +4 -4
- package/dist/viewer/assets/{service-doc-preview-modal-bJ6tJ5YR.js → service-doc-preview-modal-5sX6FOu1.js} +2 -2
- package/dist/viewer/assets/service-layout-Bf0vZBCH.js +1 -0
- package/dist/viewer/assets/service-pages-CFikvX4t.js +1 -0
- package/dist/viewer/assets/{services-Crqkffr5.js → services-Ivav34WC.js} +4 -4
- package/dist/viewer/assets/{share-2-BmYmqN4k.js → share-2-CQEaWbfH.js} +1 -1
- package/dist/viewer/assets/sizeCapture-INFHLROL-BJ6ndnPM.js +1 -0
- package/dist/viewer/assets/stateDiagram-D77RDMKH-B_tNCX3o.js +1 -0
- package/dist/viewer/assets/stateDiagram-v2-MP3YSRHH-Dl9wqdli.js +1 -0
- package/dist/viewer/assets/{style-DgSU0bQl.js → style-BPesJvJr.js} +8 -8
- package/dist/viewer/assets/super-circle-loader-DSkos6uP.js +1 -0
- package/dist/viewer/assets/super-logo-loader-Cxlbn6MB.js +1 -0
- package/dist/viewer/assets/swimlanes-42K2YHIH-CzURzYwf.js +1 -0
- package/dist/viewer/assets/swimlanesDiagram-VR7AAH4N-DrIlwFtk.js +8 -0
- package/dist/viewer/assets/table-B4pFND-o.js +1 -0
- package/dist/viewer/assets/textarea-Clgdv3Oi.js +1 -0
- package/dist/viewer/assets/{timeline-definition-24CTP7MA-C4yuLwUH.js → timeline-definition-24CTP7MA-D0YXQE1U.js} +2 -2
- package/dist/viewer/assets/ui-graph-logo-gHowu5gP.js +1 -0
- package/dist/viewer/assets/{upload-CRsS43j9.js → upload-CYb3nN_5.js} +1 -1
- package/dist/viewer/assets/{uploads-BOQHX9l4.js → uploads-CX2kdXbM.js} +8 -8
- package/dist/viewer/assets/{use-debounced-value-Ba-kkCUY.js → use-debounced-value-BpNFJd3C.js} +1 -1
- package/dist/viewer/assets/{use-localstorage-DIisTx-J.js → use-localstorage-D233xVb0.js} +1 -1
- package/dist/viewer/assets/use-permissions-BvmxJJ5r.js +1 -0
- package/dist/viewer/assets/{use-scoped-storage-C4RzED-E.js → use-scoped-storage-DL1XVp1j.js} +1 -1
- package/dist/viewer/assets/useMutation-D5ZHwHsx.js +1 -0
- package/dist/viewer/assets/useQuery-Dhe6uxrL.js +1 -0
- package/dist/viewer/assets/{vennDiagram-4TSXK5OY-BCtqXZqe.js → vennDiagram-4TSXK5OY-SSjHlqCQ.js} +2 -2
- package/dist/viewer/assets/{wardleyDiagram-VM6X3IG4-D3OtZJoT.js → wardleyDiagram-VM6X3IG4-CZWNdQxH.js} +2 -2
- package/dist/viewer/assets/{xychartDiagram-S5SC5T6Z-DxLL2CHH.js → xychartDiagram-S5SC5T6Z-B2qAGeb0.js} +2 -2
- package/dist/viewer/assets/zod-BMU4UTQt.js +1 -0
- package/dist/viewer/index.html +10 -1
- package/package.json +56 -56
- package/dist/abort-signals-B4fc3ahg.mjs +0 -34
- package/dist/anthropic-messages-KPxCHqBN.mjs +0 -14327
- package/dist/auth-storage-BvNH97p9.mjs +0 -2180
- package/dist/azure-openai-config-BbeCSg4y.mjs +0 -55
- package/dist/azure-openai-responses-BRzy8RfL.mjs +0 -182
- package/dist/classifier-shared-DBUHiTGw.mjs +0 -105
- package/dist/cli-2R6QQFp1.mjs +0 -451
- package/dist/cloudflare-workers-ai-system-one-BfqwmRQf.mjs +0 -44
- package/dist/config-D8DMGzIq.mjs +0 -647
- package/dist/cross-spawn-B2jIQPlu.mjs +0 -404
- package/dist/diagnostics-xdSgQR8t.mjs +0 -131
- package/dist/dist-BRyghrKX.mjs +0 -404
- package/dist/dist-D0EzrblG.mjs +0 -12161
- package/dist/dist-EKhnHWHG.mjs +0 -140221
- package/dist/dist-pQtuusFv.mjs +0 -1243
- package/dist/easter-egg-3d-C9_btlWn.mjs +0 -1225
- package/dist/env-api-keys-uytNub6O.mjs +0 -122
- package/dist/error-body-FhmCtR7m.mjs +0 -101
- package/dist/esm-D5isprgl.mjs +0 -1533
- package/dist/esm-DnqE4pfM.mjs +0 -104876
- package/dist/execute-BoTKl80U.mjs +0 -1715
- package/dist/github-copilot-headers-DWcTgoXr.mjs +0 -22
- package/dist/google-generative-ai-Brs5YpJo.mjs +0 -332
- package/dist/google-shared-2CyYa4VE.mjs +0 -33438
- package/dist/google-vertex-DZDUQPKa.mjs +0 -378
- package/dist/hash-DN7ukSfd.mjs +0 -16
- package/dist/headers-GhQHLk-3.mjs +0 -17
- package/dist/jiti-9kWALm4Y.mjs +0 -5439
- package/dist/jiti-loader-f21DrY1K.mjs +0 -27
- package/dist/jiti-static-loader-BI_w28l7.mjs +0 -41704
- package/dist/json-parse-B2mHg7o7.mjs +0 -381
- package/dist/keybinding-hints-D0nLU3ZH.mjs +0 -17899
- package/dist/lib-Dj1gKQJc.mjs +0 -24379
- package/dist/llama-cpp-classify-C73BoMYd.mjs +0 -344
- package/dist/mistral-conversations-DXVR7znL.mjs +0 -698
- package/dist/models-DBdii9gQ.mjs +0 -1255
- package/dist/multipart-parser-DLw9Z0uJ.mjs +0 -298
- package/dist/node-B0NU8X55.mjs +0 -2479
- package/dist/node-B8gaKm9g.mjs +0 -23
- package/dist/openai-I3_AqKDX.mjs +0 -17357
- package/dist/openai-codex-responses-PcZHDuBD.mjs +0 -1198
- package/dist/openai-completions-a_mH01ii.mjs +0 -994
- package/dist/openai-decisions-Du8y4mQG.mjs +0 -142
- package/dist/openai-prompt-cache-Bc6qNWt0.mjs +0 -8
- package/dist/openai-responses-a9lV_U7O.mjs +0 -270
- package/dist/openai-responses-shared-CDs_PBiH.mjs +0 -598
- package/dist/openrouter-images-D0Zc8Cjs.mjs +0 -125
- package/dist/photon_rs-DCvMOMu0.mjs +0 -4252
- package/dist/pi-messages-B5ietIBq.mjs +0 -306
- package/dist/provider-env-BJhgA66g.mjs +0 -37
- package/dist/provider-retry-DXYM7rVE.mjs +0 -79
- package/dist/runtime-DTkBxiaM.mjs +0 -2822
- package/dist/sanitize-unicode-CqChtoM6.mjs +0 -26
- package/dist/shell-836_JFnI.mjs +0 -162
- package/dist/source-CKPndhKl.mjs +0 -478
- package/dist/src-DNm2QRm3.mjs +0 -5028
- package/dist/system-one-shared-DUAFtNa8.mjs +0 -75
- package/dist/token-DEUkymby.mjs +0 -56
- package/dist/token-util-Cx5S4eKt.mjs +0 -3
- package/dist/tool-DHDYqsyG.mjs +0 -6673
- package/dist/transform-messages-BClk99Vn.mjs +0 -477
- package/dist/typesafe-system-one-D2d8j8hZ.mjs +0 -24
- package/dist/typescript-Br-vsRJV.mjs +0 -6737
- package/dist/uuid-CNCZqNBb.mjs +0 -49
- package/dist/v2-1z8ijsD3.mjs +0 -6120
- package/dist/viewer/assets/abnfDiagram-VCTEODGH-j5YaKnl9.js +0 -1
- package/dist/viewer/assets/actor-avatar-DqmoY8Xc.js +0 -1
- package/dist/viewer/assets/architectureDiagram-5GKGNRK7-D80cJKz_.js +0 -36
- package/dist/viewer/assets/avatar-BI7D-Aia.js +0 -43
- package/dist/viewer/assets/badge-870-A4Y6.js +0 -1
- package/dist/viewer/assets/better-delete-confirmation-modal-Dib31LVb.js +0 -1
- package/dist/viewer/assets/better-dialog-D3AAiahr.js +0 -1
- package/dist/viewer/assets/button-DadqadpO.js +0 -1
- package/dist/viewer/assets/channel-DRkt3LIn.js +0 -1
- package/dist/viewer/assets/checkbox-BXpR079x.js +0 -1
- package/dist/viewer/assets/classDiagram-ZZMXUADV-G5CebNaC.js +0 -1
- package/dist/viewer/assets/classDiagram-v2-VYDZK3BY-G5CebNaC.js +0 -1
- package/dist/viewer/assets/color-input-Efm-lxDy.js +0 -11
- package/dist/viewer/assets/cose-bilkent-JH36ORCC-CrSHFmnp.js +0 -1
- package/dist/viewer/assets/cross-button-5Sr5rWVP.js +0 -1
- package/dist/viewer/assets/cynefinDiagram-5FMLGOSQ-Bdl_eBdu.js +0 -62
- package/dist/viewer/assets/dashboard-diagrams-page-DMupOe1m.js +0 -2
- package/dist/viewer/assets/dashboard-diagrams-page-inner-Dh0yKh2A.js +0 -1
- package/dist/viewer/assets/dashboard-docs-page-DWJ1qOQz.js +0 -2
- package/dist/viewer/assets/dashboard-docs-page-inner-Fs6G3oGo.js +0 -67
- package/dist/viewer/assets/dashboard-layout-D36InAaB.js +0 -1
- package/dist/viewer/assets/dashboard-lens-layout-Cv1Xx3hY.js +0 -1
- package/dist/viewer/assets/dashboard-map-frame-page-CTn61NUO.js +0 -1
- package/dist/viewer/assets/dashboard-plans-page-DxFJkrgK.js +0 -1
- package/dist/viewer/assets/dashboard-service-apis-BHtD9s5z.js +0 -1
- package/dist/viewer/assets/dashboard-service-docs-Uv_1uxxO.js +0 -1
- package/dist/viewer/assets/dashboard-services-CUP-L4Jg.js +0 -1
- package/dist/viewer/assets/diagram-UQ7AKVKN-DhFcurW6.js +0 -41
- package/dist/viewer/assets/diagram-VX7I27RA-DE1nREE8.js +0 -24
- package/dist/viewer/assets/diagram-Z3DM3KII-CSrYcCbc.js +0 -24
- package/dist/viewer/assets/diagram-live-preview-i5doxXLH.js +0 -2
- package/dist/viewer/assets/dialog-D_HtNS17.js +0 -6
- package/dist/viewer/assets/ebnfDiagram-PWID7BFC-BfL8m_sf.js +0 -1
- package/dist/viewer/assets/flow-diagram-preview-T0Z4iMVU.js +0 -1
- package/dist/viewer/assets/ganttDiagram-EL5Y4UJY-CsITpniw.js +0 -292
- package/dist/viewer/assets/gitGraphDiagram-WWUBYQGX-B4eCBGoe.js +0 -106
- package/dist/viewer/assets/iconBase-BoDZfJgC.js +0 -1
- package/dist/viewer/assets/index-5E1tJ7yK.js +0 -125
- package/dist/viewer/assets/index-7XpV2DRw.js +0 -1
- package/dist/viewer/assets/index-C0Rs3s9Z.js +0 -1
- package/dist/viewer/assets/index-CzHjJWeV.js +0 -1
- package/dist/viewer/assets/index-DcEA6SIV.js +0 -74
- package/dist/viewer/assets/infoDiagram-27XIBGKW-lTebN5Ix.js +0 -2
- package/dist/viewer/assets/input-YvHTVS0E.js +0 -1
- package/dist/viewer/assets/lens-runs-page-DoAOObxx.js +0 -1
- package/dist/viewer/assets/linked-project-dot-Ds2uEmJ9.js +0 -543
- package/dist/viewer/assets/mermaid.core-BCRBv8Us.js +0 -312
- package/dist/viewer/assets/method-badge-DMYDKdDZ.js +0 -1
- package/dist/viewer/assets/nav-links-8vT2ixiI.js +0 -61
- package/dist/viewer/assets/not-found-page-CnfLlhS4.js +0 -1
- package/dist/viewer/assets/organization-dependency-graph-page-3xqIxjNx.js +0 -1
- package/dist/viewer/assets/pegDiagram-XKGWAZYB-CMXqeAum.js +0 -1
- package/dist/viewer/assets/popover-CN9ni1N3.js +0 -1
- package/dist/viewer/assets/railroadDiagram-O6MQD6OU-CfqToX3W.js +0 -1
- package/dist/viewer/assets/react-flow-wrapper-BPlRstyO.js +0 -276
- package/dist/viewer/assets/scroll-area-BodE-n7W.js +0 -6
- package/dist/viewer/assets/section-loader-BzpYM_Nx.js +0 -1
- package/dist/viewer/assets/select-DDtnmSET.js +0 -1
- package/dist/viewer/assets/service-database-page-CMi1wF4h.js +0 -2
- package/dist/viewer/assets/service-database-page-inner-CoqAj93L.js +0 -85
- package/dist/viewer/assets/service-layout-0NMm_bKG.js +0 -1
- package/dist/viewer/assets/service-pages-dfnc91SU.js +0 -1
- package/dist/viewer/assets/sizeCapture-INFHLROL-BRJi3gCg.js +0 -1
- package/dist/viewer/assets/stateDiagram-D77RDMKH-DdLsfxgy.js +0 -1
- package/dist/viewer/assets/stateDiagram-v2-MP3YSRHH-DFwg8Qki.js +0 -1
- package/dist/viewer/assets/super-circle-loader-D8MElOMh.js +0 -1
- package/dist/viewer/assets/super-logo-loader-DJYiRbCS.js +0 -1
- package/dist/viewer/assets/swimlanes-42K2YHIH-AuYjrPqh.js +0 -1
- package/dist/viewer/assets/swimlanesDiagram-VR7AAH4N-0nIGA8_4.js +0 -8
- package/dist/viewer/assets/table-Bi4Auk9Z.js +0 -1
- package/dist/viewer/assets/textarea-MgxZ5x6-.js +0 -1
- package/dist/viewer/assets/ui-graph-logo-D4jRhd4z.js +0 -1
- package/dist/viewer/assets/use-permissions-6JVET753.js +0 -1
- package/dist/viewer/assets/useMutation-CmVaR9zz.js +0 -1
- package/dist/viewer/assets/useQuery-B8yYhO0c.js +0 -1
- package/dist/viewer/assets/zod-Dc4H6VVJ.js +0 -1
- package/dist/virtual-modules-DnCx0Gdx.mjs +0 -340
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as b,j as e}from"./index-CH7cEAxj.js";import{u as z,a as U}from"./query-D9oj6LGx.js";import{c as H,P as D}from"./nav-links-DZWMpwMR.js";import{DashboardSectionHeader as $,DashboardSectionContent as L}from"./index-Bn2bqqMd.js";import{a as P}from"./dependencies-DK2GDlhQ.js";import{u as _}from"./service-context-D5nBtU18.js";import{n as O}from"./git-BilAlIQ8.js";import{c as j,L as S}from"./chunk-OB3PAWPO-DJIP1M4r.js";import{G as A}from"./iconBase-DtqdW2XR.js";import{g as N,S as k}from"./gql-FFIj8zdp.js";import{B as T,a as M}from"./better-dialog-DcIxFWwk.js";import{B as I}from"./button-DZj74qS7.js";import{B as R}from"./badge-hR3QvPWv.js";import{I as V}from"./input--C59pq6j.js";import{S as q}from"./search-vw7ucoOs.js";import{L as w}from"./loader-circle-CiqyoJF7.js";import{C as Q}from"./check-BpmCQNbj.js";import{u as y}from"./useQuery-Dhe6uxrL.js";import{t as v}from"./index-B6MxYIzs.js";import{u as C}from"./useMutation-D5ZHwHsx.js";import{u as Y}from"./use-permissions-BvmxJJ5r.js";import{F as J}from"./file-text-BFqJQ67P.js";import{f as W}from"./format-BquKoU4D.js";import"./scroll-area-RagrStGj.js";import"./ui-graph-logo-gHowu5gP.js";import"./dashboard-layout-sTeeHNsZ.js";import"./grid-scroll-body-DC5pYDPJ.js";import"./popover-476u3TN0.js";import"./index-Ck66Ic_p.js";import"./react-Bx48XWN4.js";import"./services-Ivav34WC.js";import"./dialog-D7wzTt0L.js";import"./en-US-B1Lg1a1H.js";/**
|
|
2
2
|
* @license lucide-react v0.514.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const
|
|
6
|
+
*/const K=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],B=H("arrow-up-right",K);/**
|
|
7
7
|
* @license lucide-react v0.514.0 - ISC
|
|
8
8
|
*
|
|
9
9
|
* This source code is licensed under the ISC license.
|
|
@@ -34,11 +34,11 @@ import{g as N,r as b,j as e,c as j,t as v,K as D,u as z,n as U,L as S}from"./ind
|
|
|
34
34
|
mutation GitHubImportInstallURL($orgID: ID!) {
|
|
35
35
|
githubAppInstallURL(orgId: $orgID)
|
|
36
36
|
}
|
|
37
|
-
`),
|
|
37
|
+
`),ie=N(`
|
|
38
38
|
mutation GitHubImportDisconnect($orgID: ID!) {
|
|
39
39
|
disconnectGitHubApp(orgId: $orgID)
|
|
40
40
|
}
|
|
41
|
-
`);function E(t){return`https://github.com/settings/installations/${t}`}function
|
|
41
|
+
`);function E(t){return`https://github.com/settings/installations/${t}`}function ae({orgID:t,github:s,selected:i,listClassName:c,searchTrailing:a,onSelect:m}){const[p,g]=b.useState(""),d=b.useDeferredValue(p),o=y(se,{variables:{orgID:t},fetchPolicy:"network-only"}),x=o.data?.githubRepositories??[],l=x.filter(r=>r.fullName.toLowerCase().includes(d.trim().toLowerCase()));return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-2.5",children:[e.jsxs("div",{className:"relative flex-1",children:[e.jsx(q,{className:"text-paragraph pointer-events-none absolute top-1/2 left-3.5 size-4 -translate-y-1/2"}),e.jsx(V,{"aria-label":"Search repositories",value:p,placeholder:"Search repositories",className:"h-10 rounded-[0.625rem] pl-10",onChange:r=>g(r.target.value)})]}),a]}),e.jsxs("div",{className:j("border-stock bg-shading/40 mt-3 flex h-[22rem] flex-col overflow-hidden rounded-xl border",c),children:[o.loading&&!o.data&&e.jsxs("div",{className:"text-paragraph flex flex-1 items-center justify-center gap-2 text-sm",children:[e.jsx(w,{className:"size-4 animate-spin"})," Loading repositories"]}),!o.loading&&l.length===0&&!s.connected&&e.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-8 text-center",children:[e.jsx("p",{className:"text-paragraph text-sm",children:"UIGraph reads your repositories through a GitHub App. Install it to pick one."}),e.jsxs(I,{preset:"primary",className:"rounded-[0.625rem]",disabled:s.isStarting||s.isConnecting,onClick:s.connect,children:[(s.isStarting||s.isConnecting)&&e.jsx(w,{className:"size-4 animate-spin"}),s.isConnecting&&"Waiting for GitHub…",!s.isConnecting&&"Install GitHub App",!s.isStarting&&!s.isConnecting&&e.jsx(Z,{className:"size-4"})]})]}),!o.loading&&l.length===0&&s.connected&&x.length===0&&e.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-8 text-center",children:[e.jsx("p",{className:"text-paragraph text-sm",children:"The GitHub App is installed but cannot read any repository yet. Grant it access on GitHub, then reopen this list."}),s.installation&&e.jsxs("a",{href:E(s.installation.installationId),target:"_blank",rel:"noreferrer",className:"text-primary inline-flex items-center gap-1.5 text-sm hover:underline",children:["Manage repository access",e.jsx(B,{className:"size-3.5"})]})]}),!o.loading&&l.length===0&&s.connected&&x.length>0&&e.jsxs("div",{className:"flex flex-1 flex-col items-center justify-center gap-3 px-8 text-center",children:[e.jsx("p",{className:"text-paragraph text-sm",children:"No repositories match this search."}),s.installation&&e.jsxs("a",{href:E(s.installation.installationId),target:"_blank",rel:"noreferrer",className:"text-paragraph/70 hover:text-foreground inline-flex items-center gap-1.5 text-xs transition-colors",children:["Missing one? Check repository access on GitHub",e.jsx(B,{className:"size-3"})]})]}),l.length>0&&e.jsx("div",{role:"radiogroup","aria-label":"Repositories",className:"better-scrollbar divide-stock min-h-0 flex-1 divide-y overflow-y-auto",children:l.map(r=>e.jsxs("button",{type:"button",role:"radio","aria-checked":i?.fullName===r.fullName,disabled:r.archived,className:j("hover:bg-stock/25 flex w-full items-center gap-3 px-4 py-2.5 text-left transition-colors",r.archived&&"cursor-not-allowed opacity-50 hover:bg-transparent",i?.fullName===r.fullName&&"bg-primary/10 hover:bg-primary/10"),onClick:()=>m({githubId:r.githubId,owner:r.owner,name:r.name,fullName:r.fullName}),children:[e.jsx("span",{className:j("flex size-4 shrink-0 items-center justify-center rounded-full border transition-colors",i?.fullName===r.fullName&&"border-primary bg-primary text-primary-foreground",i?.fullName!==r.fullName&&"border-stock"),children:i?.fullName===r.fullName&&e.jsx(Q,{className:"size-2.5"})}),e.jsxs("span",{className:"min-w-0 flex-1",children:[e.jsx("span",{className:"block truncate text-sm",children:r.fullName}),e.jsx("span",{className:"text-paragraph mt-0.5 block font-mono text-[0.6875rem]",children:r.defaultBranch})]}),r.private&&e.jsx(R,{variant:"outline",className:"shrink-0",children:"Private"}),r.archived&&e.jsx(R,{variant:"secondary",className:"shrink-0",children:"Archived"})]},r.githubId))})]})]})}function oe(t){const[s,i]=b.useState(!1),c=b.useRef(null),a=y(re,{variables:{orgID:t},fetchPolicy:"network-only",pollInterval:s?5e3:0,onError:n=>v.error(n.message),onCompleted:n=>{!n.githubApp||n.githubApp.suspended||(c.current?.close(),c.current=null,i(!1))}}),[m,{loading:p}]=C(ne),[g,{loading:d}]=C(ie);b.useEffect(()=>()=>c.current?.close(),[]);const{refetch:o}=a;b.useEffect(()=>{if(!s)return;const n=window.setInterval(()=>{c.current?.closed&&(c.current=null,i(!1),o().then(f=>{const h=f.data?.githubApp;h&&!h.suspended||v.error("GitHub was not connected. The installation was closed.")}))},1e3);return()=>window.clearInterval(n)},[s,o]);async function x(){const n=window.open("","uigraph-github-app");if(!n){v.error("Allow UIGraph to open new tabs, then try again.");return}c.current=n;try{const h=(await m({variables:{orgID:t}})).data?.githubAppInstallURL;if(!h)throw new Error("GitHub did not return an installation URL");const u=new URL(h);if(u.protocol!=="https:")throw new Error("GitHub returned an invalid installation URL");n.opener=null,n.location.href=u.href,i(!0),await a.refetch()}catch(f){n.close(),c.current=null,v.error(f instanceof Error?f.message:"Could not connect GitHub")}}async function l(){try{return await g({variables:{orgID:t}}),i(!1),await a.refetch(),!0}catch(n){return v.error(n instanceof Error?n.message:"Could not disconnect GitHub"),!1}}const r=a.data?.githubApp??null;return{installation:r,connected:r!==null&&!r.suspended,isLoading:a.loading&&!a.data,isStarting:p,isConnecting:s,isDisconnecting:d,connect:x,disconnect:l}}const ce=N(`
|
|
42
42
|
query ServiceGitHubRepository($orgId: ID!, $serviceId: ID!) {
|
|
43
43
|
serviceGitHubRepository(orgId: $orgId, serviceId: $serviceId) {
|
|
44
44
|
serviceId
|
|
@@ -80,4 +80,4 @@ import{g as N,r as b,j as e,c as j,t as v,K as D,u as z,n as U,L as S}from"./ind
|
|
|
80
80
|
mutation DisconnectServiceGitHubRepository($orgId: ID!, $serviceId: ID!) {
|
|
81
81
|
disconnectServiceGitHubRepository(orgId: $orgId, serviceId: $serviceId)
|
|
82
82
|
}
|
|
83
|
-
`);function me({orgId:t,serviceId:s}){const{isAdmin:
|
|
83
|
+
`);function me({orgId:t,serviceId:s}){const{isAdmin:i}=Y(),[c,a]=b.useState(!1),[m,p]=b.useState(null),g=oe(t),d=y(ce,{variables:{orgId:t,serviceId:s},fetchPolicy:"cache-and-network"}),[o,{loading:x}]=C(le,{refetchQueries:["Service","ServiceGitHubRepository"]}),[l,{loading:r}]=C(de,{refetchQueries:["Service","ServiceGitHubRepository"]}),n=d.data?.serviceGitHubRepository??null;async function f(){if(m)try{await o({variables:{orgId:t,serviceId:s,owner:m.owner,repo:m.name}}),a(!1),p(null)}catch(u){v.error(u instanceof Error?u.message:"Could not connect the repository")}}async function h(){try{await l({variables:{orgId:t,serviceId:s}})}catch(u){v.error(u instanceof Error?u.message:"Could not disconnect the repository")}}return e.jsxs("div",{className:"flex items-center gap-3 rounded-xl border border-[#2A3242] bg-[#1E2533] px-4 py-3",children:[e.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-[#2A3242] shadow-sm ring-1 ring-[#3B4658]",children:e.jsx(G,{className:"size-4 text-[#F4F7FC]"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-[13px] font-medium text-[#F4F7FC]",children:"Repository"}),d.loading&&!d.data&&e.jsx("p",{className:"text-[11px] text-[#828DA3]",children:"Loading connection…"}),!n&&!d.loading&&e.jsx("p",{className:"text-[11px] text-[#828DA3]",children:"No repository connected. Diagrams in this service cannot open pull requests."}),n&&e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsx("a",{href:n.url,target:"_blank",rel:"noreferrer",className:"truncate font-mono text-[11px] text-[#5B9DF9] hover:text-[#7DB2FB]",children:n.fullName}),e.jsx("span",{className:"font-mono text-[11px] text-[#828DA3]",children:n.defaultBranch}),n.status===k.Archived&&e.jsx("span",{className:"rounded-md bg-[#232B3A] px-2 py-0.5 text-[11px] text-[#9AA6BC]",children:"Archived"}),n.status===k.Unavailable&&e.jsx("span",{className:"rounded-md bg-[#3A1D1D] px-2 py-0.5 text-[11px] text-[#F29B9B]",children:"Unavailable — check the GitHub App installation"})]})]}),i&&e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(T,{open:c,onOpenChange:u=>{a(u),u||p(null)},trigger:e.jsx(I,{preset:"outline",className:"h-8 px-3 text-[12px]",onClick:()=>a(!0),children:n?"Change":"Connect"}),children:e.jsx(M,{title:"Connect a repository",description:"Diagram pull requests for this service go to this repository.",footerCancel:!0,footerSubmit:"Connect",footerSubmitLoading:x,onFooterSubmitClick:()=>void f(),children:e.jsx(ae,{orgID:t,github:g,selected:m,onSelect:p})})}),n&&e.jsxs(I,{preset:"outline",className:"h-8 px-3 text-[12px]",disabled:r,onClick:()=>void h(),children:[r&&e.jsx(w,{className:"animate-spin"}),"Disconnect"]})]})]})}const pe={backend:"#2563EB",frontend:"#16A34A",mobile:"#0891B2",database:"#D97706",worker:"#7C3AED",messaging:"#DB2777",cache:"#EA580C",gateway:"#0369A1",infrastructure:"#64748B",library:"#059669",other:"#374151"},F=["#2563EB","#0D9488","#7C3AED","#D97706","#DB2777","#0891B2","#16A34A","#9333EA","#EA580C","#0369A1","#7E22CE","#065F46"];function ue(t){return t?pe[t.toLowerCase()]??"#94A3B8":"#94A3B8"}function xe(t){let s=5381;for(let i=0;i<t.length;i++)s=(s<<5)+s+t.charCodeAt(i)>>>0;return F[s%F.length]}function he(t){const s=t.trim().split(/\s+/);return s.length>=2?`${s[0][0]}${s[1][0]}`.toUpperCase():t.substring(0,2).toUpperCase()}function fe(t){try{return new URL(t).hostname}catch{return"Open link"}}function ge(){const{service:t}=_(),s=z().id,i=U(r=>r.features.github),c=y(P,{fetchPolicy:"cache-first",variables:{orgId:s,serviceId:t?.id??"",direction:null,criticality:null},skip:!s||!t?.id});if(!t)return null;const a=ue(t.category),m=xe(t.id||t.name||""),p=O(t.gitRepoUrl),g=t.labels?.filter(Boolean)??[],d=c.data?.dependencies??[],o=d.filter(r=>r.direction==="downstream"),x=d.filter(r=>r.direction==="upstream"),l=[!i&&p&&{icon:e.jsx(G,{className:"size-4 text-[#F4F7FC]"}),label:"Repository",sub:"View on GitHub",href:p},t.jiraProjectUrl&&{icon:e.jsx(te,{className:"size-4 text-[#0052CC]"}),label:"Jira Project",sub:"View Project",href:t.jiraProjectUrl},t.slackChannelUrl&&{icon:e.jsx(ee,{className:"size-4 text-[#4A154B]"}),label:"Slack Channel",sub:"View Channel",href:t.slackChannelUrl},...(t.docLinks??[]).filter(Boolean).map(r=>({icon:e.jsx(J,{className:"size-4 text-[#F4F7FC]"}),label:r.label,sub:fe(r.url),href:r.url}))].filter(Boolean);return e.jsx("div",{className:"flex flex-col gap-4",children:e.jsxs("div",{className:"rounded-2xl border border-[#2A3242] bg-[#141925] p-6",children:[e.jsxs("div",{className:"mb-5 flex items-center gap-4",children:[e.jsx("div",{className:"flex size-12 shrink-0 items-center justify-center rounded-xl text-[14px] font-bold tracking-wide",style:{backgroundColor:`${m}18`,color:m},children:he(t.name||"")}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("h2",{className:"text-[18px] font-semibold tracking-tight text-[#F4F7FC]",children:t.name}),t.description&&e.jsx("p",{className:"mt-0.5 text-[13px] text-[#828DA3]",children:t.description})]}),e.jsxs("div",{className:"ml-auto shrink-0 text-right",children:[e.jsx("p",{className:"mb-1 text-[10px] font-semibold tracking-widest text-[#828DA3] uppercase",children:"Updated"}),e.jsx("p",{className:"text-[13px] font-medium text-[#F4F7FC]",children:W(new Date(t.updatedAt),"MMM d, yyyy")})]})]}),(t.category||g.length>0)&&e.jsxs("div",{className:"mb-6 flex flex-wrap gap-1.5",children:[t.category&&e.jsx("span",{className:"inline-flex items-center rounded-md px-2.5 py-1 text-[12px] font-medium",style:{backgroundColor:`${a}14`,color:a},children:t.category}),g.map(r=>e.jsx("span",{className:"inline-flex items-center rounded-md bg-[#1E2533] px-2.5 py-1 text-[12px] font-medium text-[#D2D9E6]",children:r},r))]}),d.length>0&&e.jsxs("div",{className:"mt-6 border-t border-[#2A3242] pt-5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("h4",{className:"text-[13px] font-semibold text-[#F4F7FC]",children:"Service dependencies"}),e.jsx("p",{className:"mt-0.5 text-[11px] text-[#828DA3]",children:"From the dependencies in .uigraph.yaml"})]}),e.jsx(S,{to:D.services.dependency,className:"shrink-0 text-[12px] font-medium text-[#5B9DF9] hover:text-[#7DB2FB]",children:"View full graph →"})]}),e.jsx("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:[{heading:`↓ Downstream · calls (${o.length})`,dependencies:o},{heading:`↑ Upstream · called by (${x.length})`,dependencies:x}].filter(r=>r.dependencies.length>0).map(r=>e.jsxs(S,{to:D.services.dependencies(t.id),className:"rounded-xl border border-[#2A3242] bg-[#1E2533] px-4 py-3 transition-colors hover:border-[#3B4658] hover:bg-[#252E3E]",children:[e.jsx("span",{className:"text-[12px] font-semibold text-[#D2D9E6]",children:r.heading}),r.dependencies.map(n=>e.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2 text-[12px]",children:[e.jsx("span",{className:"truncate text-[#F4F7FC]",children:n.dependency?.name??n.dependencyName}),e.jsxs("span",{className:j("shrink-0 rounded-md px-2 py-0.5 text-[11px] capitalize",n.criticality==="hard"?"bg-[#3A1D1D] text-[#F29B9B]":"bg-[#232B3A] text-[#9AA6BC]"),children:[n.criticality," · ",n.type]})]},n.id))]},r.heading))})]}),(i||l.length>0)&&e.jsxs(e.Fragment,{children:[e.jsx("h4",{className:"mt-6 mb-3 text-[13px] font-semibold text-[#F4F7FC]",children:"Integrations"}),i&&s&&e.jsx("div",{className:"mb-3",children:e.jsx(me,{orgId:s,serviceId:t.id})}),e.jsx("div",{className:j("grid gap-3",l.length===1?"max-w-xs grid-cols-1":"sm:grid-cols-3"),children:l.map(({icon:r,label:n,sub:f,href:h})=>e.jsxs("a",{href:h,target:"_blank",className:"flex items-center gap-3 rounded-xl border border-[#2A3242] bg-[#1E2533] px-4 py-3 transition-colors hover:border-[#3B4658] hover:bg-[#2A3242]",rel:"noreferrer",children:[e.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-lg bg-[#2A3242] shadow-sm ring-1 ring-[#3B4658]",children:r}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-[13px] font-medium text-[#F4F7FC]",children:n}),e.jsx("p",{className:"truncate font-mono text-[11px] text-[#828DA3]",children:f})]})]},h))})]})]})})}function Ke(){return e.jsxs("div",{className:"flex h-full flex-col",children:[e.jsx($,{title:"Overview",description:"Service summary, technologies and dependencies from the .uigraph artifacts."}),e.jsx(L,{children:e.jsx(ge,{})})]})}export{Ke as DashboardServiceOverview};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as p,j as t}from"./index-CH7cEAxj.js";import{S as O}from"./section-loader-C4hOfhQS.js";import{S as w}from"./section-not-found-BnrXiPog.js";import{B as I}from"./button-DZj74qS7.js";import{I as U}from"./input--C59pq6j.js";import{x as _,T as P,v as $,w as z,M as V,P as G}from"./nav-links-DZWMpwMR.js";import{L as Q,c as u,u as H}from"./chunk-OB3PAWPO-DJIP1M4r.js";import{u as L}from"./query-D9oj6LGx.js";import{DashboardPageSectionLayout as W}from"./index-Bn2bqqMd.js";import{S as Y,D as q}from"./services-Ivav34WC.js";import{u as J}from"./use-debounced-value-BpNFJd3C.js";import{a as A}from"./index-Dj_05fqk.js";import{u as K}from"./useQuery-Dhe6uxrL.js";import{B as X}from"./better-delete-confirmation-modal-CGEQ5O4X.js";import{D as Z,a as ee,b as te,c as se}from"./scroll-area-RagrStGj.js";import{u as re}from"./use-permissions-BvmxJJ5r.js";import{t as D}from"./index-B6MxYIzs.js";import{f as oe}from"./format-BquKoU4D.js";import{u as ae}from"./useMutation-D5ZHwHsx.js";import{N as ne}from"./network-B1apzT1s.js";import"./super-logo-loader-Cxlbn6MB.js";import"./iconBase-DtqdW2XR.js";import"./dashboard-layout-sTeeHNsZ.js";import"./grid-scroll-body-DC5pYDPJ.js";import"./popover-476u3TN0.js";import"./gql-FFIj8zdp.js";import"./dialog-D7wzTt0L.js";import"./super-circle-loader-DSkos6uP.js";import"./ui-graph-logo-gHowu5gP.js";import"./en-US-B1Lg1a1H.js";function ie(){const e=L().id,[s,a]=p.useState(""),i=J(s),{data:c,loading:x}=K(Y,{variables:{orgId:e,teamId:null,search:i||null,sortBy:"name",sortDir:"asc"},fetchPolicy:"cache-and-network"}),h=p.useMemo(()=>{const f=new Map;for(const m of A(c?.services.items))m?.stats?.serviceId&&f.set(m.stats.serviceId,m.stats);return f},[c?.services.items]),g=p.useMemo(()=>A(c?.services.items),[c?.services.items]);return{isServicesLoading:x&&!c?.services,isStatsLoading:x&&!c?.services,services:g,statsByServiceId:h,search:s,setSearch:a}}const le={backend:"#2563EB",frontend:"#16A34A",mobile:"#0891B2",database:"#D97706",worker:"#7C3AED",messaging:"#DB2777",cache:"#EA580C",gateway:"#0369A1",infrastructure:"#64748B",library:"#059669",other:"#374151"};function ce(e){return e?le[e.toLowerCase()]??"#94A3B8":"#94A3B8"}const N=["#2563EB","#0D9488","#7C3AED","#D97706","#DB2777","#0891B2","#16A34A","#9333EA","#EA580C","#0369A1","#7E22CE","#065F46"];function de(e){let s=5381;for(let a=0;a<e.length;a++)s=(s<<5)+s+e.charCodeAt(a)>>>0;return N[s%N.length]}function me(e){const s=e.trim().split(/\s+/);return s.length>=2?`${s[0][0]}${s[1][0]}`.toUpperCase():e.substring(0,2).toUpperCase()}function S(e){try{return new URL(e).hostname.replace("www.","")+new URL(e).pathname}catch{return e}}function pe(e){return e.gitRepoUrl?S(e.gitRepoUrl):e.jiraProjectUrl?S(e.jiraProjectUrl):e.slackChannelUrl?e.slackChannelUrl:null}function E(e){return/^[0-9a-f-]{20,}$/i.test(e)||/^[a-z]+_[0-9a-f-]{8,}/i.test(e)||/^\{.+\}$/.test(e)||/^[a-z]+_\{.+\}$/i.test(e)}function ue({service:e,index:s=0,stats:a,statsLoading:i=!1}){const{canWrite:c}=re(),x=L().id,[h,g]=p.useState(!1),[f,m]=p.useState(!1),[b]=ae(q,{awaitRefetchQueries:!0,refetchQueries:["Services"]}),r=ce(e.category),n=de(e.id||e.name||""),l=pe(e),M=[...e.teamId&&!E(e.teamId)?[e.teamId]:[],...(e.labels||[]).flatMap(o=>o&&!E(o)?[o]:[])],v=new Set,C=M.filter(o=>{const d=o.toLowerCase();return v.has(d)?!1:(v.add(d),!0)}),B=C.slice(0,3),j=C.length-3,T=a?.endpointCount??0,F=a?.diagramCount??0,R=a?.dbTableCount??0,y=e.updatedAt?new Date(e.updatedAt):null;return t.jsxs("div",{className:"group relative",style:{animation:"serviceCardIn 0.35s ease both",animationDelay:`${s*55}ms`},children:[t.jsxs(Q,{to:`/services/${e.id}`,className:"relative flex flex-col overflow-hidden rounded-2xl bg-[#141925] ring-1 ring-[#2A3242] transition-all duration-200 hover:-translate-y-px hover:shadow-[0_0_0_2px_rgba(37,99,235,0.25),0_6px_20px_rgba(0,0,0,0.4)] hover:ring-[#015AEB]",children:[t.jsx("div",{className:"h-[2px] w-full shrink-0",style:{backgroundColor:r}}),t.jsxs("div",{className:"flex flex-1 flex-col p-5",children:[t.jsxs("div",{className:u("mb-4 flex gap-3 pr-6",l?"items-start":"items-center"),children:[t.jsx("div",{className:u("flex size-10 shrink-0 items-center justify-center rounded-xl text-[12px] font-bold tracking-wider",l&&"mt-0.5"),style:{backgroundColor:`${n}18`,color:n},children:me(e.name||"")}),t.jsxs("div",{className:"min-w-0",children:[t.jsx("h3",{className:"text-[14px] leading-5 font-semibold tracking-[-0.01em] text-[#F4F7FC]",children:e.name}),l&&t.jsx("p",{className:"mt-0.5 truncate font-mono text-[11px] text-[#828DA3]",children:l})]})]}),e.description&&t.jsx("p",{className:"mb-3 line-clamp-2 text-[13px] leading-[1.5] text-[#828DA3]",children:e.description}),C.length>0&&t.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-1",children:[B.map((o,d)=>t.jsx("span",{className:"inline-flex max-w-[120px] items-center truncate rounded-md px-2 py-0.5 text-[11px] font-medium",style:d===0?{backgroundColor:`${r}14`,color:r}:{backgroundColor:"#1E2533",color:"#D2D9E6"},children:o},d)),j>0&&t.jsx(_,{children:t.jsxs(P,{children:[t.jsx($,{asChild:!0,children:t.jsxs("span",{className:"cursor-help rounded-md bg-[#1E2533] px-2 py-0.5 text-[11px] text-[#828DA3]",children:["+",j]})}),t.jsx(z,{children:t.jsx("div",{className:"flex flex-col gap-1",children:C.slice(3).map((o,d)=>t.jsx("span",{className:"text-xs",children:o},d))})})]})})]}),t.jsx("div",{className:"mt-4 grid grid-cols-3 gap-1.5 border-t border-[#2A3242] pt-3",children:[{value:T,label:"ENDPOINTS"},{value:F,label:"DIAGRAMS"},{value:R,label:"TABLES"}].map(({value:o,label:d})=>t.jsxs("div",{className:u("flex flex-col items-start rounded-lg bg-[#1E2533] px-2.5 py-2",o===0&&"opacity-50"),children:[t.jsx("span",{className:u("text-[20px] leading-none font-bold tracking-tight tabular-nums",o>0?"text-[#F4F7FC]":"text-[#586378]"),children:i?"—":o}),t.jsx("span",{className:"mt-1.5 text-[9px] font-semibold tracking-widest text-[#828DA3]",children:d})]},d))}),y&&t.jsx("p",{className:"mt-2 text-right text-[11px] text-[#586378]",children:oe(y,"d MMM yyyy")})]})]}),t.jsxs(Z,{open:h,onOpenChange:g,children:[t.jsx(ee,{asChild:!0,children:t.jsx(I,{size:"icon",variant:"ghost",className:u("absolute top-4 right-3 h-6 w-6 rounded-md bg-[#1E2533]/90 opacity-0 shadow-sm backdrop-blur-sm transition-opacity group-hover:opacity-100 hover:bg-[#1E2533]",h&&"opacity-100"),children:t.jsx(V,{className:"h-3.5 w-3.5 text-[#828DA3]"})})}),t.jsx(te,{align:"end",children:t.jsx(se,{variant:"destructive",disabled:!c,onClick:()=>m(!0),children:"Delete"})})]}),t.jsx(X,{open:f,onOpenChange:m,title:"Do you want to delete this service?",description:`This removes the service's project from UIGraph, including any other services it defines. No files are deleted from the project. Run "uigraph sync" in the project to add it back.`,deleteButtonText:"Delete",onConfirm:async()=>{try{await b({variables:{orgId:x,id:e.id}}),m(!1),D.success("Service deleted")}catch(o){D.error(o instanceof Error?o.message:"Failed to delete service")}}})]})}function Ge(){const e=H(),[s,a]=p.useState(null),{services:i,isServicesLoading:c,statsByServiceId:x,isStatsLoading:h,search:g,setSearch:f}=ie(),m=p.useMemo(()=>{const r=new Map;for(const n of i)if(n.category){const l=n.category.toLowerCase();r.set(l,(r.get(l)??0)+1)}return Array.from(r.entries()).sort((n,l)=>l[1]-n[1]).map(([n,l])=>[n.charAt(0).toUpperCase()+n.slice(1),l])},[i]),b=p.useMemo(()=>s?i.filter(r=>r.category?.toLowerCase()===s.toLowerCase()):i,[i,s]);return t.jsxs(W,{title:"Service Catalog",description:"Services, APIs and dependencies from your registered projects",crumbs:[{to:"/services",label:"Services"}],headerContent:t.jsxs(I,{preset:"outline",onClick:()=>e(G.services.dependency),children:[t.jsx(ne,{}),"Dependency graph"]}),children:[t.jsxs("div",{className:"mb-6 flex flex-wrap items-center gap-3",children:[t.jsx(U,{value:g,onChange:r=>f(r.target.value),placeholder:"Search services...",className:"h-10 w-52 rounded-lg border-[#2A3242] bg-[#1E2533] text-[13px] shadow-none focus-visible:bg-[#1E2533]"}),t.jsxs("div",{className:"flex items-center gap-0.5 rounded-lg bg-[#1E2533] p-0.5 ring-1 ring-[#2A3242]",children:[t.jsx(k,{label:"All",count:i.length,active:s===null,onClick:()=>a(null)}),m.map(([r,n])=>t.jsx(k,{label:r,count:n,active:s===r,onClick:()=>a(s===r?null:r)},r))]})]}),c?t.jsx(O,{label:"Loading services..."}):i.length===0&&!g?t.jsx(w,{label:"The .uigraph artifacts have no services."}):b.length===0?t.jsx(w,{label:"No services match your search."}):t.jsx("div",{className:"grid grid-cols-1 gap-4 pb-6",style:{gridTemplateColumns:"repeat(auto-fill, minmax(300px, 1fr))"},children:b.map((r,n)=>t.jsx(ue,{service:r,index:n,stats:x.get(r.id),statsLoading:h},r.id))})]})}function k({label:e,count:s,active:a,onClick:i}){return t.jsxs("button",{type:"button",onClick:i,className:u("inline-flex h-8 items-center gap-2 rounded-lg px-3 text-[13px] font-medium transition-all duration-150",a?"bg-[#2A3242] text-[#F4F7FC]":"text-[#828DA3] hover:bg-[#2A3242]/50 hover:text-[#F4F7FC]"),children:[e,t.jsx("span",{className:u("rounded px-1 py-px text-[10px] font-semibold tabular-nums",a?"bg-white/15 text-white":"bg-[#141925] text-[#828DA3]"),children:s})]})}export{Ge as DashboardServices,k as FilterPill};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{c as S}from"./nav-links-
|
|
1
|
+
import{c as S}from"./nav-links-DZWMpwMR.js";import{r as i,j as n}from"./index-CH7cEAxj.js";import{c as d}from"./chunk-OB3PAWPO-DJIP1M4r.js";import{B as j}from"./badge-hR3QvPWv.js";import{S as I,a as B,b as D,c as k}from"./index-DY3BFyb6.js";import{D as x}from"./style-BPesJvJr.js";/**
|
|
2
2
|
* @license lucide-react v0.514.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
5
5
|
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const A=[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]],
|
|
6
|
+
*/const A=[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]],O=S("table-2",A);function V(t,e){const[a,r]=i.useState(t[0]?.id||"");return[new E(t,a,r),a,r]}class E{constructor(e,a,r){this.tabs=e,this.activeTab=a,this.setActiveTab=r}}function _({control:t,className:e,overlayClassName:a,triggerClassName:r,activeTriggerClassName:u}){return n.jsx("div",{className:d("bg-muted relative mx-auto w-fit rounded-full p-1",e),children:n.jsx(P,{items:t.tabs,activeTab:t.activeTab,setActiveTab:t.setActiveTab,style:{gridTemplateColumns:`repeat(${t.tabs.length}, 1fr)`},renderTrigger:(o,{id:m,label:c,isActive:f})=>i.createElement("button",{...o,key:m,type:"button",className:d("text-paragraph h-8 rounded-full bg-transparent px-3 transition-colors hover:bg-transparent",r,f&&"text-foreground",f&&u)},c),renderOverlay:o=>n.jsx("div",{...o,className:d(o.className,"bg-accent rounded-full shadow-sm",a)})})})}function P({items:t,activeTab:e,setActiveTab:a,renderOverlay:r,renderTrigger:u,...o}){const m=i.useRef(null),[c,f]=i.useState(null),[y,T]=i.useState({}),l=y[e];return i.useEffect(()=>{const s=m.current;if(!s)return;const h=Array.from(s.children).filter(b=>!b.hasAttribute("data-overlay"));function g(){const b=s.getBoundingClientRect();f({left:b.left,width:b.width}),h.forEach(N=>{const p=N.getBoundingClientRect();T(w=>({...w,[N.id]:{left:p.left,width:p.width}}))})}const v=new ResizeObserver(g);h.forEach(b=>v.observe(b)),v.observe(s),g();const C=setInterval(g,1e3);return()=>{v.disconnect(),clearInterval(C)}},[m]),n.jsxs("div",{...o,ref:m,className:d("relative isolate flex",o.className),children:[t.map(s=>n.jsx(i.Fragment,{children:u({id:s.id,onClick:()=>a(s.id)},{...s,isActive:s.id===e})},s.id)),c&&l&&(r?r({"data-overlay":"",className:"pointer-events-none absolute inset-0 -z-50 bg-red-500 transition-all",style:{width:l.width,left:l.left-c.left}},{width:l.width,left:l.left-c.left}):n.jsx("div",{"data-overlay":!0,className:"bg-stock pointer-events-none absolute inset-0 -z-50 transition-all",style:{width:l.width,left:l.left-c.left}}))]})}function L(t){const e=t?.toLowerCase();return e==="postgresql"||e==="postgres"?{label:"PostgreSQL",Icon:I,className:"border-sky-500/30 bg-sky-500/10 text-sky-300",iconClassName:"text-sky-400"}:e==="mysql"?{label:"MySQL",Icon:B,className:"border-amber-500/30 bg-amber-500/10 text-amber-300",iconClassName:"text-amber-400"}:e==="mongodb"||e==="document"?{label:"MongoDB",Icon:D,className:"border-emerald-500/30 bg-emerald-500/10 text-emerald-300",iconClassName:"text-emerald-400"}:e==="dynamodb"?{label:"DynamoDB",Icon:x,className:"border-violet-500/30 bg-violet-500/10 text-violet-300",iconClassName:"text-violet-400"}:e==="json"?{label:"NoSQL JSON",Icon:x,className:"border-teal-500/30 bg-teal-500/10 text-teal-300",iconClassName:"text-teal-400"}:e==="sqlite"?{label:"SQLite",Icon:k,className:"border-blue-500/30 bg-blue-500/10 text-blue-300",iconClassName:"text-blue-400"}:{label:t??"Unknown",Icon:x,className:"border-[#2A3242] bg-[#1E2533] text-[#C7D0E0]",iconClassName:"text-[#828DA3]"}}function F({type:t,className:e}){const a=L(t);return n.jsxs(j,{className:d("gap-1.5 border px-2 py-0.5 text-xs font-medium",a.className,e),children:[n.jsx(a.Icon,{className:d("h-3.5 w-3.5",a.iconClassName)}),a.label]})}export{_ as B,F as D,O as T,V as u};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as c}from"./index-CH7cEAxj.js";function l(e,...t){}function F(e,...t){}const M={303:"Multiple adapter contexts detected. This might happen in monorepos.",404:"nuqs requires an adapter to work with your framework.",409:"Multiple versions of the library are loaded. This may lead to unexpected behavior. Currently using `%s`, but `%s` (via the %s adapter) was about to load on top.",414:"Max safe URL length exceeded. Some browsers may not be able to accept this URL. Consider limiting the amount of state stored in the URL.",429:"URL update rate-limited by the browser. Consider increasing `throttleMs` for key(s) `%s`. %O",500:"Empty search params cache. Search params can't be accessed in Layouts.",501:"Search params cache already populated. Have you called `parse` twice?",502:"`processUrlSearchParams` threw while processing key(s) `%s`. %O"};function p(e){return`[nuqs] ${M[e]}
|
|
2
|
+
See https://nuqs.dev/NUQS-${e}`}function V(e){if(e.size===0)return"";const t=[];for(const[n,s]of e.entries()){const o=n.replace(/#/g,"%23").replace(/&/g,"%26").replace(/\+/g,"%2B").replace(/=/g,"%3D").replace(/\?/g,"%3F");t.push(`${o}=${Q(s)}`)}return"?"+t.join("&")}function Q(e){return e.replace(/%/g,"%25").replace(/\+/g,"%2B").replace(/ /g,"+").replace(/#/g,"%23").replace(/&/g,"%26").replace(/"/g,"%22").replace(/'/g,"%27").replace(/`/g,"%60").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/[\x00-\x1F]/g,t=>encodeURIComponent(t))}const S="2.10.2",x={};function y(e,t){const r=Symbol.for(`nuqs.${S}.${e}`),n=globalThis;if(n[r]!=null)return n[r];const s=Object.isExtensible(n)?n:x;return s[r]??=t()}function P(e,t,r){const n=y(e,()=>new WeakMap);return n.has(t)||n.set(t,r()),n.get(t)}const f=P("adapter-context",c.createContext,()=>{const e=c.createContext({useAdapter(){throw new Error(p(404))}});return e.displayName="NuqsAdapterContext",e});typeof window<"u"&&(window.__NuqsAdapterContext&&window.__NuqsAdapterContext!==f&&console.error(p(303)),window.__NuqsAdapterContext=f);function _(e){return({children:t,defaultOptions:r,processUrlSearchParams:n,...s})=>c.createElement(f.Provider,{...s,value:{useAdapter:e,defaultOptions:r,processUrlSearchParams:n}},t)}function $(e){const t=c.useContext(f);if(!("useAdapter"in t))throw new Error(p(404));return t.useAdapter(e)}const D=()=>c.useContext(f).defaultOptions,k=()=>c.useContext(f).processUrlSearchParams;function A(){if(typeof window>"u"||!window.GestureEvent)return 50;try{const e=navigator.userAgent?.match(/version\/([\d\.]+) safari/i);return parseFloat(e[1])>=17?120:320}catch{return 320}}function R(e){return{method:"throttle",timeMs:e}}const m=R(A());function B(e){return e===null||Array.isArray(e)&&e.length===0}function C(e,t,r){if(typeof r=="string")e.set(t,r);else{e.delete(t);for(const n of r)e.append(t,n);e.has(t)||e.set(t,"")}return e}function I(e){if(e instanceof URL)return e.searchParams;if(e.startsWith("?")){const t=e.indexOf("#");return new URLSearchParams(t===-1?e:e.slice(0,t))}try{return new URL(e,location.href).searchParams}catch{return new URLSearchParams(e)}}function W(e,t){return e===t}function g(e,t){return e===t?!0:e===null||t===null||typeof e=="string"||typeof t=="string"||e.length!==t.length?!1:e.every((r,n)=>r===t[n])}function U(){const e=new Map;return{on(t,r){const n=e.get(t)||[];return n.push(r),e.set(t,n),()=>this.off(t,r)},off(t,r){const n=e.get(t);n&&e.set(t,n.filter(s=>s!==r))},emit(t,r){e.get(t)?.forEach(n=>n(r))}}}function w(e,t,r){function n(){e(),r.removeEventListener("abort",o)}const s=setTimeout(n,t);function o(){clearTimeout(s),r.removeEventListener("abort",o)}r.addEventListener("abort",o)}function v(){const e=Promise;if(Promise.hasOwnProperty("withResolvers"))return Promise.withResolvers();let t=()=>{},r=()=>{};return{promise:new e((n,s)=>{t=n,r=s}),resolve:t,reject:r}}function O(e,t){let r=t;for(let n=e.length-1;n>=0;n--){const s=e[n];if(!s)continue;const o=r;r=()=>s(o)}r()}function d(){return new URLSearchParams(location.search)}var q=class{updateMap=new Map;flushedMap=new Map;options={history:"replace",scroll:!1,shallow:!0};timeMs=m.timeMs;transitions=new Set;resolvers=null;controller=null;lastFlushedAt=0;resetQueueOnNextPush=!1;push({key:e,query:t,options:r},n=m.timeMs){if(this.resetQueueOnNextPush){const{flushedMap:s}=this;this.reset(),this.flushedMap=s,this.resetQueueOnNextPush=!1}l(7,e,t,r),this.updateMap.set(e,t),r.history==="push"&&(this.options.history="push"),r.scroll&&(this.options.scroll=!0),r.shallow===!1&&(this.options.shallow=!1),r.startTransition&&this.transitions.add(r.startTransition),(!Number.isFinite(this.timeMs)||n>this.timeMs)&&(this.timeMs=n)}getQueuedQuery(e){return(this.updateMap.has(e)?this.updateMap:this.flushedMap).get(e)}acknowledge(e,t=d){const r=t(),n=[];return this.flushedMap.forEach((s,o)=>{const u=e.getAll(o),a=r.getAll(o),i=s===null?[]:[s].flat();(g(u,a)||!g(i,a))&&(this.flushedMap.delete(o),g(u,i)||n.push(o))}),n}getPendingPromise({getSearchParamsSnapshot:e=d}){return this.resolvers?.promise??Promise.resolve(e())}flush({getSearchParamsSnapshot:e=d,rateLimitFactor:t=1,...r},n){if(this.controller??=new AbortController,!Number.isFinite(this.timeMs))return l(),Promise.resolve(e());if(this.resolvers)return this.resolvers.promise;this.resolvers=v();const s=()=>{this.lastFlushedAt=performance.now();const[u,a]=this.applyPendingUpdates({...r,autoResetQueueOnUpdate:r.autoResetQueueOnUpdate??!0,getSearchParamsSnapshot:e},n);a===null?(this.resolvers.resolve(u),this.resetQueueOnNextPush=!0,this.flushedMap=new Map([...this.flushedMap,...this.updateMap])):this.resolvers.reject(u),this.resolvers=null};return w(()=>{const u=performance.now()-this.lastFlushedAt,a=this.timeMs,i=t*Math.max(0,a-u);l(9,i,a,t),i===0?s():w(s,i,this.controller.signal)},0,this.controller.signal),this.resolvers.promise}abort(){return this.controller?.abort(),this.controller=new AbortController,this.resolvers?.resolve(new URLSearchParams),this.resolvers=null,this.reset()}reset(){const e=[...this.updateMap.keys(),...this.flushedMap.keys()];return l(10,JSON.stringify(Object.fromEntries(this.updateMap))),this.updateMap.clear(),this.flushedMap=new Map,this.transitions.clear(),this.options={history:"replace",scroll:!1,shallow:!0},this.timeMs=m.timeMs,e}applyPendingUpdates(e,t){const{updateUrl:r,getSearchParamsSnapshot:n}=e;let s=n();if(l(11,this.updateMap.size,s.toString()),this.updateMap.size===0)return[s,null];const o=Array.from(this.updateMap.entries()),u={...this.options},a=Array.from(this.transitions);e.autoResetQueueOnUpdate&&this.reset(),l(12,o,u);for(const[i,h]of o)h===null?s.delete(i):s=C(s,i,h);if(t)try{s=t(s)}catch(i){return console.error(p(502),o.map(([h])=>h).join(),i),this.resetQueueOnNextPush=!0,[s,i]}try{return O(a,()=>r(s,u)),[s,null]}catch(i){return console.error(p(429),o.map(([h])=>h).join(),i),[s,i]}}};const E=y("throttle-queue",()=>new q);function N(e,t,r){const n=c.useCallback(()=>{const o=Object.fromEntries(e.map(u=>[u,r(u)]));return[JSON.stringify(o),o]},[e.join(","),r]),s=c.useRef(null);return s.current===null&&(s.current=n()),c.useSyncExternalStore(c.useCallback(o=>{const u=e.map(a=>t(a,o));return()=>u.forEach(a=>a())},[e.join(","),t]),()=>{const[o,u]=n();return s.current[0]===o?s.current[1]:(s.current=[o,u],u)},()=>s.current[1])}var L=class{resolvers=v();controller=new AbortController;queuedValue=void 0;abort(){this.controller.abort(),this.queuedValue=void 0}push(e,t,r){return this.queuedValue=e,this.controller.abort(),this.controller=new AbortController,w(()=>{const n=this.resolvers;try{l(13,e);const s=r(e);l(14,this.queuedValue),this.queuedValue=void 0,this.resolvers=v(),s.then(o=>n.resolve(o)).catch(o=>n.reject(o))}catch(s){this.queuedValue=void 0,n.reject(s)}},t,this.controller.signal),this.resolvers.promise}},j=class{throttleQueue;queues=new Map;queuedQuerySync=U();constructor(e=new q){this.throttleQueue=e}push(e,t,r,n){if(!Number.isFinite(t)){const i=r.getSearchParamsSnapshot??d;return Promise.resolve(i())}const s=e.key;let o=this.queues.get(s);o||(l(15,s),o=new L,this.queues.set(s,o)),l(17,e);const u=()=>(this.throttleQueue.push(e),this.throttleQueue.flush(r,n).finally(()=>{this.queues.get(s)?.queuedValue===void 0&&(l(16,s),this.queues.delete(s)),this.queuedQuerySync.emit(s)})),a=o.push(e,t,u);return this.queuedQuerySync.emit(s),a}abort(e){const t=this.queues.get(e);return t?(l(18,e,t.queuedValue?.query),this.queues.delete(e),t.abort(),this.queuedQuerySync.emit(e),r=>(r.then(t.resolvers.resolve,t.resolvers.reject),r)):r=>r}abortAll(){for(const[e,t]of this.queues.entries())l(18,e,t.queuedValue?.query),t.abort(),t.resolvers.resolve(new URLSearchParams),this.queuedQuerySync.emit(e);this.queues.clear()}getQueuedQuery(e){const t=this.queues.get(e)?.queuedValue?.query;return t!==void 0?t:this.throttleQueue.getQueuedQuery(e)}};const b=y("debounce-controller",()=>new j(E));function J(e){return N(e,(t,r)=>b.queuedQuerySync.on(t,r),t=>b.getQueuedQuery(t))}export{k as a,$ as b,J as c,m as d,b as e,l as f,E as g,g as h,W as i,B as j,y as k,U as l,p as m,I as n,_ as o,V as r,D as u,S as v,F as w};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./
|
|
1
|
+
import"./query-D9oj6LGx.js";import{g as a}from"./index-Ck66Ic_p.js";function s(c){const n=new Map,r=[];for(const e of c){const i=e.service;if(!i)continue;n.has(i.id)||n.set(i.id,{id:i.id,name:i.name,service:{id:i.id,description:i.description,gitRepoUrl:i.gitRepoUrl,updatedAt:i.updatedAt}});const t=e.dependency;let d;t?(d=t.id,n.has(d)||n.set(d,{id:d,name:t.name,service:{id:t.id,description:t.description,gitRepoUrl:t.gitRepoUrl,updatedAt:t.updatedAt}})):(d=`ghost:${e.dependencyName}`,n.has(d)||n.set(d,{id:d,name:e.dependencyName,service:null})),r.push({id:e.id,source:i.id,target:d,direction:e.direction,type:e.type,criticality:e.criticality,apiGroupName:e.apiGroupName,apiEndpointNames:e.apiEndpointNames,databaseName:e.databaseName})}return{nodes:[...n.values()],edges:r}}const m=a(`
|
|
2
2
|
query ServiceDependencies(
|
|
3
3
|
$orgId: ID!
|
|
4
4
|
$serviceId: ID!
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as E,j as t
|
|
1
|
+
import{r as E,j as t}from"./index-CH7cEAxj.js";import{C as pe}from"./checkbox-CFJfXL6R.js";import{c as Q,T as O,v as H,w as V,P as J}from"./nav-links-DZWMpwMR.js";import{A as xe,a as he}from"./api-endpoints-D-Whnnwd.js";import{i as me,P as fe,B as ge,a as ue,E as ye,H as K,D as oe,S as be}from"./style-BPesJvJr.js";import{u as je}from"./query-D9oj6LGx.js";import{d as ee,P,M as ve,g as we}from"./index-BIrx3oY4.js";import{G as Ne}from"./globe-CJ35KsQW.js";import{S as ke}from"./share-2-CQEaWbfH.js";import{L as Ce}from"./link-2-D1e0xznG.js";import{L as te}from"./loader-circle-CiqyoJF7.js";import{C as se}from"./circle-alert-Bl7DXYD_.js";import{u as U}from"./useQuery-Dhe6uxrL.js";/**
|
|
2
2
|
* @license lucide-react v0.514.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -13,10 +13,10 @@ import{r as E,j as t,u as pe}from"./index-5E1tJ7yK.js";import{C as xe}from"./che
|
|
|
13
13
|
*
|
|
14
14
|
* This source code is licensed under the ISC license.
|
|
15
15
|
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
-
*/const Se=[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]],Le=Q("radio",Se);function Re(a){return a==="database"?oe:a==="http"?Ne:a==="graphql"?ke:a==="grpc"?Le:Ce}const Ie={http:"HTTP API",graphql:"GraphQL API",grpc:"gRPC API",database:"Database"};function ne({data:a}){const f=pe().id,S=a?.edgeType==="http"||a?.edgeType==="graphql"||a?.edgeType==="grpc",h=a?.dependencyServiceId??"",g=a?.apiGroupName??"",j=a?.endpoints??[],L=S&&!!f&&!!h&&!h.startsWith("ghost:")&&!!g&&j.length>0,C=U(he,{variables:{orgId:f,serviceId:h},skip:!L}),u=C.data?.apiGroups?.find(n=>n.name===g||n.label===g),p=U(me,{variables:{orgId:f,serviceId:h,apiGroupId:u?.id??""},skip:!L||!u?.id}),A=a?.databaseName??"",v=a?.edgeType==="database"&&!!f&&!!h&&!h.startsWith("ghost:")&&!!A,w=U(je,{variables:{orgId:f,serviceId:h},skip:!v}),r=w.data?.serviceDBs?.find(n=>n.dbName===A);if(!a)return null;const B=a.edgeType?Ie[a.edgeType]??a.edgeType:"Untyped dependency";if(a.edgeType==="database"){const n=r?t.jsx("div",{className:"text-[11px] opacity-60",children:[r.dbType,r.dialect&&r.dialect.toLowerCase()!==r.dbType?.toLowerCase()?r.dialect:null,r.tables&&r.tables.length>0?`${r.tables.length} table${r.tables.length===1?"":"s"}`:null].filter(Boolean).join(" · ")}):null,i=t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[t.jsx(oe,{className:"size-3 shrink-0 opacity-70"}),t.jsx("span",{className:"font-mono",children:A||B})]}),w.loading?t.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] opacity-70",children:[t.jsx(te,{className:"size-3 animate-spin"}),"Loading database…"]}):r?n:t.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] opacity-55",children:[t.jsx(se,{className:"size-3 shrink-0 text-amber-400"}),"Database not found"]})]});return r?.id?t.jsx("a",{href:J.services.database(h,r.id),target:"_blank",rel:"noreferrer",onClick:k=>k.stopPropagation(),className:"flex flex-col gap-1 rounded px-1 py-0.5 text-left hover:bg-white/5",children:i}):t.jsx("div",{className:"flex flex-col gap-1 text-left",children:i})}if(!S||j.length===0)return t.jsx("div",{className:"text-xs",children:B});if(C.loading||p.loading)return t.jsxs("div",{className:"flex items-center gap-1.5 text-xs opacity-70",children:[t.jsx(te,{className:"size-3 animate-spin"}),"Loading endpoints…"]});const N=new Map((p.data?.apiEndpoints??[]).map(n=>[n.operationId,n]));return t.jsx("div",{className:"flex flex-col gap-1 text-left",children:j.map(n=>{const i=N.get(n);if(!i)return t.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1 text-xs leading-snug",children:[t.jsx(se,{className:"size-3.5 shrink-0 text-amber-400/90"}),t.jsx("span",{className:"font-mono opacity-90",children:n}),t.jsx("span",{className:"opacity-50",children:g?`· not found in ${g}`:"· not found"})]},n);const k=t.jsxs(t.Fragment,{children:[i.method?t.jsx("span",{className:"shrink-0 rounded bg-white/10 px-1 py-px font-mono text-[10px] font-semibold opacity-80",children:i.method.toUpperCase()}):null,t.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[t.jsx("span",{className:"font-mono opacity-90",children:n}),i.path?t.jsx("span",{className:"font-mono break-words opacity-60",children:i.path}):null]})]});return u?.id?t.jsx("a",{href:J.services.apiEndpoint(h,u.id,i.id),target:"_blank",rel:"noreferrer",onClick:_=>_.stopPropagation(),className:"flex items-center gap-2 rounded px-1.5 py-1 text-xs leading-snug hover:bg-white/10",children:k},n):t.jsx("div",{className:"flex items-center gap-2 px-1.5 py-1 text-xs leading-snug",children:k},n)})})}function ze({sourceX:a,sourceY:f,targetX:S,targetY:h,sourcePosition:g,targetPosition:j,markerStart:L,markerEnd:C,style:u,data:p}){const[A,v,w]=we({sourceX:a,sourceY:f,sourcePosition:g,targetX:S,targetY:h,targetPosition:j}),r=p?.showDetails??!0,B=Re(p?.edgeType),I=!!p?.edgeType,N=p?.labelOffsetY??0;return t.jsxs(t.Fragment,{children:[t.jsx(ye,{path:A,markerStart:L,markerEnd:C,style:u}),t.jsx(be,{children:r&&p?.detailText?t.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${v}px, ${w+N}px)`,pointerEvents:"all"},children:(()=>{const n=t.jsxs("div",{style:{alignItems:"center",background:"#1A2130",border:"1px solid #2B3444",borderRadius:4,color:"#AAB4C5",display:"flex",fontSize:10,gap:4,lineHeight:1.2,padding:"2px 6px",whiteSpace:"nowrap"},children:[t.jsx(B,{className:"size-3 shrink-0 opacity-70"}),p.detailText]});return I?t.jsxs(O,{children:[t.jsx(H,{asChild:!0,children:n}),t.jsx(V,{className:"max-w-[520px] p-1 [text-wrap:wrap]",children:t.jsx(ne,{data:p})})]}):n})()}):t.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${v}px, ${w+N}px)`,pointerEvents:"all"},children:(()=>{const n=t.jsx("div",{style:{alignItems:"center",background:"#1A2130",border:"1px solid #2B3444",borderRadius:6,color:"#AAB4C5",display:"flex",height:22,justifyContent:"center",width:22},children:t.jsx(B,{className:"size-3"})});return I?t.jsxs(O,{children:[t.jsx(H,{asChild:!0,children:n}),t.jsx(V,{className:"max-w-[520px] p-1 [text-wrap:wrap]",children:t.jsx(ne,{data:p})})]}):n})()})})]})}function De({data:a}){return t.jsxs(t.Fragment,{children:[t.jsx(K,{type:"target",position:P.Left,isConnectable:!1,style:{opacity:0}}),t.jsx("div",{style:a.cardStyle,children:a.label}),t.jsx(K,{type:"source",position:P.Right,isConnectable:!1,style:{opacity:0}})]})}const Pe={service_dependency:De},_e={dependency:ze},ae={padding:{top:"64px",right:"32px",bottom:"64px",left:"32px"},maxZoom:1};function Ze({nodes:a,edges:f,focusId:S,onNodeClick:h,marks:g,edgeMarks:j,selectedId:L}){const C=E.useRef(null),u=E.useRef(null),[p,A]=E.useState({width:0,height:0}),[v,w]=E.useState(1),[r,B]=E.useState(!0);E.useEffect(()=>{const e=C.current;if(!e)return;const o=new ResizeObserver(([c])=>{A({width:c.contentRect.width,height:c.contentRect.height})});return o.observe(e),()=>o.disconnect()},[]);const I=a.map(e=>e.id).join(" ");E.useEffect(()=>{u.current?.fitView({...ae,duration:300})},[p.width,p.height,I]);const N=new Map;for(const e of f)for(const o of[e.source,e.target])N.has(o)||N.set(o,{type:e.type,criticality:e.criticality});const n=240,i=new ee.graphlib.Graph;i.setDefaultEdgeLabel(()=>({})),i.setGraph({rankdir:"LR",nodesep:42,ranksep:240});for(const e of a)i.setNode(e.id,{width:n,height:128});for(const e of f)if(e.direction==="downstream")i.setEdge(e.source,e.target);else if(e.direction==="upstream")i.setEdge(e.target,e.source);else throw new Error(`unknown dependency direction: ${e.direction}`);ee.layout(i);const k=a.map(e=>{const o=i.node(e.id),c=e.id===S,d=!!e.service?.id,l=N.get(e.id),x=l?.criticality?.toLowerCase()==="hard",s=g?.get(e.id),y=e.id===L,b=s?`1px solid ${s.color}`:c?"1px solid #3B82F6":d?x?"1px solid #C2703F":"1px solid #3B4658":"1px dashed #8A4B4B",T=s?!0:!c&&!!e.service?.id,m=e.service,z=m?.gitRepoUrl?m.gitRepoUrl.replace(/^https?:\/\/(www\.)?github\.com\//i,"").replace(/\.git$/i,""):"",R=m?.updatedAt?new Date(m.updatedAt).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"}):"";return{id:e.id,type:"service_dependency",position:{x:o.x-n/2,y:o.y-64},sourcePosition:P.Right,targetPosition:P.Left,data:{...e,label:(()=>{const D=t.jsxs("div",{className:"flex flex-col text-left leading-snug",children:[t.jsx("span",{className:"block font-semibold",children:e.name}),s||l?.criticality||l?.type?t.jsxs("div",{className:"mt-[3px] ml-[-1px] flex flex-wrap items-center gap-1",children:[s?t.jsxs("span",{className:"flex items-center gap-1 rounded px-1.5 py-[1px] text-[9px] leading-[15px] font-medium",style:{background:`color-mix(in srgb, ${s.color} 16%, transparent)`,color:s.color},children:[t.jsx("span",{className:"size-1.5 rounded-full",style:{background:s.color}}),s.label]}):null,l?.criticality?t.jsx("span",{className:"rounded px-1.5 py-[1px] text-[9px] leading-[15px] font-medium capitalize",style:{background:x?"rgba(194, 112, 63, 0.16)":"rgba(96, 116, 148, 0.22)",color:x?"#E0A97F":"#A6B6CC"},children:l.criticality}):null,l?.type?t.jsx("span",{className:"rounded px-1.5 py-[1px] text-[9px] leading-[15px] font-medium",style:{background:"rgba(59, 130, 246, 0.14)",color:"#8AB0EA"},children:l.type}):null]}):null,m?.description?t.jsx("span",{className:"mt-1.5 line-clamp-2 text-[11px] font-normal opacity-60",children:m.description}):null,m?.gitRepoUrl||R?t.jsxs("div",{className:"mt-2 flex flex-col gap-1",children:[m?.gitRepoUrl?t.jsxs("a",{href:m.gitRepoUrl,target:"_blank",rel:"noreferrer",onClick:de=>de.stopPropagation(),className:"flex items-center gap-1.5 text-[10px] font-normal text-[#7FA8E0] hover:underline",children:[t.jsx(Ee,{className:"size-3 shrink-0"}),t.jsx("span",{className:"truncate",children:z})]}):null,R?t.jsxs("span",{className:"flex items-center gap-1.5 text-[10px] font-normal opacity-50",children:[t.jsx(Be,{className:"size-3 shrink-0"}),"Updated ",R]}):null]}):null]});return d?D:t.jsxs(O,{children:[t.jsx(H,{asChild:!0,children:D}),t.jsx(V,{className:"bg-destructive [&_svg]:bg-destructive [&_svg]:fill-destructive max-w-[200px] text-center text-white",children:"This service is not available or onboarded to UIGraph."})]})})(),cardStyle:{animation:s?`dependency-node-in 420ms ease-out ${Math.floor(o.x/(n+240))*120}ms both`:void 0,background:s?`color-mix(in srgb, ${s.color} 8%, #1A2030)`:d?"#1E2533":"#1C1416",border:b,borderRadius:10,boxShadow:y?`0 0 0 2px #111722, 0 0 0 4px ${s?.color??"#3B82F6"}`:c?"0 0 0 4px rgba(59, 130, 246, 0.18), 0 0 22px 4px rgba(59, 130, 246, 0.45)":s?`0 6px 22px -8px color-mix(in srgb, ${s.color} 55%, transparent)`:d?"0 4px 12px rgba(0, 0, 0, 0.22)":"none",color:d||s?"#F4F7FC":"#C79A9A",transition:"box-shadow 200ms ease",cursor:T?"pointer":"default",fontSize:13,opacity:d||s?1:.72,padding:"11px 13px",width:n}},draggable:!1}}),_=128;let M=1/0,$=1/0,F=-1/0,G=-1/0;for(const e of k)M=Math.min(M,e.position.x),$=Math.min($,e.position.y),F=Math.max(F,e.position.x+n),G=Math.max(G,e.position.y+_);const ie=(p.width||400)/v,re=(p.height||400)/v,W=120/v,X=Math.max(ie-W,0),Z=Math.max(re-W,0),le=k.length?[[M-X,$-Z],[F+X,G+Z]]:void 0,q=f.map(e=>{const o=e.apiEndpointNames??[],c=o.length>0?o[0]:e.databaseName?e.databaseName:e.type,d=c&&c.length>14?c.slice(0,13).trimEnd()+"…":c,l=o.length>1?`${d} +${o.length-1}`:d,x=i.node(e.source),s=i.node(e.target),y=r&&!!l;return{edge:e,endpoints:o,detailText:l,x:(x.x+s.x)/2,y:(x.y+s.y)/2,width:y?(l?.length??0)*5.8+32:22,height:y?18:22,offsetY:0}}),Y=[];for(const e of[...q].sort((o,c)=>o.y-c.y)){const o=e.x-e.width/2,c=e.x+e.width/2;let d=e.y;for(let l=0;l<=Y.length;l++){let x=!1;for(const s of Y){const y=o<s.x1+6&&c>s.x0-6,b=d-e.height/2<s.y1+6&&d+e.height/2>s.y0-6;y&&b&&(d=s.y1+6+e.height/2,x=!0)}if(!x)break}Y.push({x0:o,x1:c,y0:d-e.height/2,y1:d+e.height/2}),e.offsetY=d-e.y}const ce=q.map(({edge:e,endpoints:o,detailText:c,offsetY:d})=>{const l=e.criticality?.toLowerCase()==="hard",x=j?.get(e.id),s=x??(l?"#C2703F":"#64748B"),y={type:ve.ArrowClosed,color:s};let b,T;if(e.direction==="downstream")b=e.source,T=e.target;else if(e.direction==="upstream")b=e.target,T=e.source;else throw new Error(`unknown dependency direction: ${e.direction}`);let m,z,R,D;return i.node(b).x<=i.node(T).x?(m=b,z=T,D=y):(m=T,z=b,R=y),{id:e.id,source:m,target:z,type:"dependency",animated:!!x,markerStart:R,markerEnd:D,data:{detailText:c,edgeType:e.type,criticality:e.criticality,apiGroupName:e.apiGroupName,databaseName:e.databaseName,endpoints:o,dependencyServiceId:e.target,hard:l,showDetails:r,labelOffsetY:d},style:{stroke:s,strokeWidth:x?2.5:l?2:1.5,strokeDasharray:x?"6 4":l?void 0:"5 4",opacity:j&&!x?.35:1}}});return t.jsxs("div",{ref:C,className:"dependency-graph-canvas h-full min-h-[26rem] overflow-hidden rounded-xl border border-[#2A3242] bg-[#111722]",children:[t.jsx("style",{children:`
|
|
16
|
+
*/const Se=[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]],Le=Q("radio",Se);function Re(a){return a==="database"?oe:a==="http"?Ne:a==="graphql"?ke:a==="grpc"?Le:Ce}const Ie={http:"HTTP API",graphql:"GraphQL API",grpc:"gRPC API",database:"Database"};function ne({data:a}){const f=je().id,S=a?.edgeType==="http"||a?.edgeType==="graphql"||a?.edgeType==="grpc",h=a?.dependencyServiceId??"",g=a?.apiGroupName??"",j=a?.endpoints??[],L=S&&!!f&&!!h&&!h.startsWith("ghost:")&&!!g&&j.length>0,C=U(xe,{variables:{orgId:f,serviceId:h},skip:!L}),u=C.data?.apiGroups?.find(n=>n.name===g||n.label===g),p=U(he,{variables:{orgId:f,serviceId:h,apiGroupId:u?.id??""},skip:!L||!u?.id}),A=a?.databaseName??"",v=a?.edgeType==="database"&&!!f&&!!h&&!h.startsWith("ghost:")&&!!A,w=U(be,{variables:{orgId:f,serviceId:h},skip:!v}),r=w.data?.serviceDBs?.find(n=>n.dbName===A);if(!a)return null;const B=a.edgeType?Ie[a.edgeType]??a.edgeType:"Untyped dependency";if(a.edgeType==="database"){const n=r?t.jsx("div",{className:"text-[11px] opacity-60",children:[r.dbType,r.dialect&&r.dialect.toLowerCase()!==r.dbType?.toLowerCase()?r.dialect:null,r.tables&&r.tables.length>0?`${r.tables.length} table${r.tables.length===1?"":"s"}`:null].filter(Boolean).join(" · ")}):null,i=t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[t.jsx(oe,{className:"size-3 shrink-0 opacity-70"}),t.jsx("span",{className:"font-mono",children:A||B})]}),w.loading?t.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] opacity-70",children:[t.jsx(te,{className:"size-3 animate-spin"}),"Loading database…"]}):r?n:t.jsxs("div",{className:"flex items-center gap-1.5 text-[11px] opacity-55",children:[t.jsx(se,{className:"size-3 shrink-0 text-amber-400"}),"Database not found"]})]});return r?.id?t.jsx("a",{href:J.services.database(h,r.id),target:"_blank",rel:"noreferrer",onClick:k=>k.stopPropagation(),className:"flex flex-col gap-1 rounded px-1 py-0.5 text-left hover:bg-white/5",children:i}):t.jsx("div",{className:"flex flex-col gap-1 text-left",children:i})}if(!S||j.length===0)return t.jsx("div",{className:"text-xs",children:B});if(C.loading||p.loading)return t.jsxs("div",{className:"flex items-center gap-1.5 text-xs opacity-70",children:[t.jsx(te,{className:"size-3 animate-spin"}),"Loading endpoints…"]});const N=new Map((p.data?.apiEndpoints??[]).map(n=>[n.operationId,n]));return t.jsx("div",{className:"flex flex-col gap-1 text-left",children:j.map(n=>{const i=N.get(n);if(!i)return t.jsxs("div",{className:"flex items-center gap-1.5 px-1.5 py-1 text-xs leading-snug",children:[t.jsx(se,{className:"size-3.5 shrink-0 text-amber-400/90"}),t.jsx("span",{className:"font-mono opacity-90",children:n}),t.jsx("span",{className:"opacity-50",children:g?`· not found in ${g}`:"· not found"})]},n);const k=t.jsxs(t.Fragment,{children:[i.method?t.jsx("span",{className:"shrink-0 rounded bg-white/10 px-1 py-px font-mono text-[10px] font-semibold opacity-80",children:i.method.toUpperCase()}):null,t.jsxs("div",{className:"flex min-w-0 flex-col gap-0.5",children:[t.jsx("span",{className:"font-mono opacity-90",children:n}),i.path?t.jsx("span",{className:"font-mono break-words opacity-60",children:i.path}):null]})]});return u?.id?t.jsx("a",{href:J.services.apiEndpoint(h,u.id,i.id),target:"_blank",rel:"noreferrer",onClick:_=>_.stopPropagation(),className:"flex items-center gap-2 rounded px-1.5 py-1 text-xs leading-snug hover:bg-white/10",children:k},n):t.jsx("div",{className:"flex items-center gap-2 px-1.5 py-1 text-xs leading-snug",children:k},n)})})}function ze({sourceX:a,sourceY:f,targetX:S,targetY:h,sourcePosition:g,targetPosition:j,markerStart:L,markerEnd:C,style:u,data:p}){const[A,v,w]=we({sourceX:a,sourceY:f,sourcePosition:g,targetX:S,targetY:h,targetPosition:j}),r=p?.showDetails??!0,B=Re(p?.edgeType),I=!!p?.edgeType,N=p?.labelOffsetY??0;return t.jsxs(t.Fragment,{children:[t.jsx(ue,{path:A,markerStart:L,markerEnd:C,style:u}),t.jsx(ye,{children:r&&p?.detailText?t.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${v}px, ${w+N}px)`,pointerEvents:"all"},children:(()=>{const n=t.jsxs("div",{style:{alignItems:"center",background:"#1A2130",border:"1px solid #2B3444",borderRadius:4,color:"#AAB4C5",display:"flex",fontSize:10,gap:4,lineHeight:1.2,padding:"2px 6px",whiteSpace:"nowrap"},children:[t.jsx(B,{className:"size-3 shrink-0 opacity-70"}),p.detailText]});return I?t.jsxs(O,{children:[t.jsx(H,{asChild:!0,children:n}),t.jsx(V,{className:"max-w-[520px] p-1 [text-wrap:wrap]",children:t.jsx(ne,{data:p})})]}):n})()}):t.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${v}px, ${w+N}px)`,pointerEvents:"all"},children:(()=>{const n=t.jsx("div",{style:{alignItems:"center",background:"#1A2130",border:"1px solid #2B3444",borderRadius:6,color:"#AAB4C5",display:"flex",height:22,justifyContent:"center",width:22},children:t.jsx(B,{className:"size-3"})});return I?t.jsxs(O,{children:[t.jsx(H,{asChild:!0,children:n}),t.jsx(V,{className:"max-w-[520px] p-1 [text-wrap:wrap]",children:t.jsx(ne,{data:p})})]}):n})()})})]})}function De({data:a}){return t.jsxs(t.Fragment,{children:[t.jsx(K,{type:"target",position:P.Left,isConnectable:!1,style:{opacity:0}}),t.jsx("div",{style:a.cardStyle,children:a.label}),t.jsx(K,{type:"source",position:P.Right,isConnectable:!1,style:{opacity:0}})]})}const Pe={service_dependency:De},_e={dependency:ze},ae={padding:{top:"64px",right:"32px",bottom:"64px",left:"32px"},maxZoom:1};function qe({nodes:a,edges:f,focusId:S,onNodeClick:h,marks:g,edgeMarks:j,selectedId:L}){const C=E.useRef(null),u=E.useRef(null),[p,A]=E.useState({width:0,height:0}),[v,w]=E.useState(1),[r,B]=E.useState(!0);E.useEffect(()=>{const e=C.current;if(!e)return;const o=new ResizeObserver(([c])=>{A({width:c.contentRect.width,height:c.contentRect.height})});return o.observe(e),()=>o.disconnect()},[]);const I=a.map(e=>e.id).join(" ");E.useEffect(()=>{u.current?.fitView({...ae,duration:300})},[p.width,p.height,I]);const N=new Map;for(const e of f)for(const o of[e.source,e.target])N.has(o)||N.set(o,{type:e.type,criticality:e.criticality});const n=240,i=new ee.graphlib.Graph;i.setDefaultEdgeLabel(()=>({})),i.setGraph({rankdir:"LR",nodesep:42,ranksep:240});for(const e of a)i.setNode(e.id,{width:n,height:128});for(const e of f)if(e.direction==="downstream")i.setEdge(e.source,e.target);else if(e.direction==="upstream")i.setEdge(e.target,e.source);else throw new Error(`unknown dependency direction: ${e.direction}`);ee.layout(i);const k=a.map(e=>{const o=i.node(e.id),c=e.id===S,d=!!e.service?.id,l=N.get(e.id),x=l?.criticality?.toLowerCase()==="hard",s=g?.get(e.id),y=e.id===L,b=s?`1px solid ${s.color}`:c?"1px solid #3B82F6":d?x?"1px solid #C2703F":"1px solid #3B4658":"1px dashed #8A4B4B",T=s?!0:!c&&!!e.service?.id,m=e.service,z=m?.gitRepoUrl?m.gitRepoUrl.replace(/^https?:\/\/(www\.)?github\.com\//i,"").replace(/\.git$/i,""):"",R=m?.updatedAt?new Date(m.updatedAt).toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"}):"";return{id:e.id,type:"service_dependency",position:{x:o.x-n/2,y:o.y-64},sourcePosition:P.Right,targetPosition:P.Left,data:{...e,label:(()=>{const D=t.jsxs("div",{className:"flex flex-col text-left leading-snug",children:[t.jsx("span",{className:"block font-semibold",children:e.name}),s||l?.criticality||l?.type?t.jsxs("div",{className:"mt-[3px] ml-[-1px] flex flex-wrap items-center gap-1",children:[s?t.jsxs("span",{className:"flex items-center gap-1 rounded px-1.5 py-[1px] text-[9px] leading-[15px] font-medium",style:{background:`color-mix(in srgb, ${s.color} 16%, transparent)`,color:s.color},children:[t.jsx("span",{className:"size-1.5 rounded-full",style:{background:s.color}}),s.label]}):null,l?.criticality?t.jsx("span",{className:"rounded px-1.5 py-[1px] text-[9px] leading-[15px] font-medium capitalize",style:{background:x?"rgba(194, 112, 63, 0.16)":"rgba(96, 116, 148, 0.22)",color:x?"#E0A97F":"#A6B6CC"},children:l.criticality}):null,l?.type?t.jsx("span",{className:"rounded px-1.5 py-[1px] text-[9px] leading-[15px] font-medium",style:{background:"rgba(59, 130, 246, 0.14)",color:"#8AB0EA"},children:l.type}):null]}):null,m?.description?t.jsx("span",{className:"mt-1.5 line-clamp-2 text-[11px] font-normal opacity-60",children:m.description}):null,m?.gitRepoUrl||R?t.jsxs("div",{className:"mt-2 flex flex-col gap-1",children:[m?.gitRepoUrl?t.jsxs("a",{href:m.gitRepoUrl,target:"_blank",rel:"noreferrer",onClick:de=>de.stopPropagation(),className:"flex items-center gap-1.5 text-[10px] font-normal text-[#7FA8E0] hover:underline",children:[t.jsx(Ee,{className:"size-3 shrink-0"}),t.jsx("span",{className:"truncate",children:z})]}):null,R?t.jsxs("span",{className:"flex items-center gap-1.5 text-[10px] font-normal opacity-50",children:[t.jsx(Be,{className:"size-3 shrink-0"}),"Updated ",R]}):null]}):null]});return d?D:t.jsxs(O,{children:[t.jsx(H,{asChild:!0,children:D}),t.jsx(V,{className:"bg-destructive [&_svg]:bg-destructive [&_svg]:fill-destructive max-w-[200px] text-center text-white",children:"This service is not available or onboarded to UIGraph."})]})})(),cardStyle:{animation:s?`dependency-node-in 420ms ease-out ${Math.floor(o.x/(n+240))*120}ms both`:void 0,background:s?`color-mix(in srgb, ${s.color} 8%, #1A2030)`:d?"#1E2533":"#1C1416",border:b,borderRadius:10,boxShadow:y?`0 0 0 2px #111722, 0 0 0 4px ${s?.color??"#3B82F6"}`:c?"0 0 0 4px rgba(59, 130, 246, 0.18), 0 0 22px 4px rgba(59, 130, 246, 0.45)":s?`0 6px 22px -8px color-mix(in srgb, ${s.color} 55%, transparent)`:d?"0 4px 12px rgba(0, 0, 0, 0.22)":"none",color:d||s?"#F4F7FC":"#C79A9A",transition:"box-shadow 200ms ease",cursor:T?"pointer":"default",fontSize:13,opacity:d||s?1:.72,padding:"11px 13px",width:n}},draggable:!1}}),_=128;let M=1/0,$=1/0,F=-1/0,G=-1/0;for(const e of k)M=Math.min(M,e.position.x),$=Math.min($,e.position.y),F=Math.max(F,e.position.x+n),G=Math.max(G,e.position.y+_);const ie=(p.width||400)/v,re=(p.height||400)/v,W=120/v,X=Math.max(ie-W,0),Z=Math.max(re-W,0),le=k.length?[[M-X,$-Z],[F+X,G+Z]]:void 0,q=f.map(e=>{const o=e.apiEndpointNames??[],c=o.length>0?o[0]:e.databaseName?e.databaseName:e.type,d=c&&c.length>14?c.slice(0,13).trimEnd()+"…":c,l=o.length>1?`${d} +${o.length-1}`:d,x=i.node(e.source),s=i.node(e.target),y=r&&!!l;return{edge:e,endpoints:o,detailText:l,x:(x.x+s.x)/2,y:(x.y+s.y)/2,width:y?(l?.length??0)*5.8+32:22,height:y?18:22,offsetY:0}}),Y=[];for(const e of[...q].sort((o,c)=>o.y-c.y)){const o=e.x-e.width/2,c=e.x+e.width/2;let d=e.y;for(let l=0;l<=Y.length;l++){let x=!1;for(const s of Y){const y=o<s.x1+6&&c>s.x0-6,b=d-e.height/2<s.y1+6&&d+e.height/2>s.y0-6;y&&b&&(d=s.y1+6+e.height/2,x=!0)}if(!x)break}Y.push({x0:o,x1:c,y0:d-e.height/2,y1:d+e.height/2}),e.offsetY=d-e.y}const ce=q.map(({edge:e,endpoints:o,detailText:c,offsetY:d})=>{const l=e.criticality?.toLowerCase()==="hard",x=j?.get(e.id),s=x??(l?"#C2703F":"#64748B"),y={type:ve.ArrowClosed,color:s};let b,T;if(e.direction==="downstream")b=e.source,T=e.target;else if(e.direction==="upstream")b=e.target,T=e.source;else throw new Error(`unknown dependency direction: ${e.direction}`);let m,z,R,D;return i.node(b).x<=i.node(T).x?(m=b,z=T,D=y):(m=T,z=b,R=y),{id:e.id,source:m,target:z,type:"dependency",animated:!!x,markerStart:R,markerEnd:D,data:{detailText:c,edgeType:e.type,criticality:e.criticality,apiGroupName:e.apiGroupName,databaseName:e.databaseName,endpoints:o,dependencyServiceId:e.target,hard:l,showDetails:r,labelOffsetY:d},style:{stroke:s,strokeWidth:x?2.5:l?2:1.5,strokeDasharray:x?"6 4":l?void 0:"5 4",opacity:j&&!x?.35:1}}});return t.jsxs("div",{ref:C,className:"dependency-graph-canvas h-full min-h-[26rem] overflow-hidden rounded-xl border border-[#2A3242] bg-[#111722]",children:[t.jsx("style",{children:`
|
|
17
17
|
.dependency-graph-canvas .react-flow__handle { opacity: 0; }
|
|
18
18
|
.dependency-graph-canvas .react-flow__edge.animated path { animation-duration: 1.2s; }
|
|
19
19
|
@keyframes dependency-node-in {
|
|
20
20
|
from { opacity: 0; transform: translateY(6px) scale(0.97); }
|
|
21
21
|
}
|
|
22
|
-
`}),t.jsxs(
|
|
22
|
+
`}),t.jsxs(me,{nodes:k,edges:ce,nodeTypes:Pe,edgeTypes:_e,fitView:!0,fitViewOptions:ae,minZoom:.2,maxZoom:1.5,translateExtent:le,nodesConnectable:!1,nodesDraggable:!1,elementsSelectable:!1,onInit:e=>{u.current=e,w(e.getViewport().zoom)},onMove:(e,o)=>w(o.zoom),onNodeClick:(e,o)=>h?.(o.data),children:[t.jsx(fe,{position:"top-left",children:t.jsxs("label",{className:"flex cursor-pointer items-center gap-2 rounded-lg border border-[#2A3242] bg-[#141925]/95 px-3 py-2 text-[11px] font-medium text-[#AAB4C5] shadow-lg",children:["Dependency details",t.jsx(pe,{checked:r,onCheckedChange:e=>B(e===!0)})]})}),t.jsx(ge,{color:"#2A3242",gap:20,size:1})]})]})}export{qe as D};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{I as W}from"./chunk-2Q5K7J3B-
|
|
1
|
+
import{I as W}from"./chunk-2Q5K7J3B-CNfz5YDQ.js";import{p as X}from"./chunk-JWPE2WC7-xd0JGvne.js";import{m as O,b as G,s as Y,n as F,g as P,a as Z,_ as g,z as N,l as A,F as j,d as q,x as E,o as U,i as J,aj as K,A as Q,ak as ee}from"./mermaid.core-BDgZg3kW.js";import{p as te}from"./cynefin-OW5HDTMX-DiBs4CI8.js";import"./preload-helper-BlTxHScW.js";import"./index-CH7cEAxj.js";import"./transform-BqqRT-Iy.js";var L=/[─━│┃└┗├┣]/,D=/[└┗├┣]/,ne=/[─━]/,k=/^[\s│┃]+$/,T=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,V=/^\s*%%/,re=" ";function _(n){return n.some(t=>L.test(t))}g(_,"isBoxDrawingFormat");function M(n){for(const t of n){const e=D.exec(t);if(e?.index&&e.index>0)return e.index}return 4}g(M,"inferSegmentWidth");function S(n,t){return n.replace(/\bline\s+(\d+)\b/gi,(e,r)=>{const s=parseInt(r,10),i=t.get(s);return i?`line ${i}`:e})}g(S,"remapErrorLines");function R(n){const t=n.split(`
|
|
2
2
|
`),e=new Map;let r=-1;for(const[p,c]of t.entries())if(c.trim()==="treeView-beta"){r=p;break}if(r===-1)return{text:n,lineMap:e};const s=[];for(let p=r+1;p<t.length;p++){const c=t[p];c.trim()===""||V.test(c)||T.test(c)||k.test(c)||s.push(c.replace(/\t/g," "))}if(!_(s))return{text:n,lineMap:e};const i=M(s),o=[];let a=0;for(let p=0;p<=r;p++)o.push(t[p]),a++,e.set(a,p+1);for(let p=r+1;p<t.length;p++){const c=t[p],d=c.trim(),h=p+1;if(d===""){o.push(c),a++,e.set(a,h);continue}if(V.test(c)){o.push(c),a++,e.set(a,h);continue}if(T.test(c)){o.push(c),a++,e.set(a,h);continue}if(k.test(c))continue;const l=c.replace(/\t/g," "),m=D.exec(l);if(m?.index!==void 0){const f=m.index,w=Math.round(f/i)+1;let u=f+1;for(;u<l.length&&ne.test(l[u]);)u++;for(;u<l.length&&l[u]===" ";)u++;const v=l.slice(u).trimEnd();if(!v)throw new Error(`Line ${h}: Empty node — expected a filename or directory name after the box-drawing prefix`);const z=re.repeat(w);o.push(z+v),a++,e.set(a,h)}else{if(/^[\s─━│┃└┗├┣]+$/.test(l))continue;if(L.test(l))o.push(c),a++,e.set(a,h);else{if(/^\s+/.test(l))throw new Error(`Line ${h}: Unexpected indentation without box-drawing characters. In box-drawing format, use ├── or └── prefixes for indented nodes.`);o.push(c),a++,e.set(a,h)}}}return{text:o.join(`
|
|
3
3
|
`),lineMap:e}}g(R,"preprocessBoxDrawing");var x=new W(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",nodeType:"directory",children:[]}]})),ie=g(()=>{x.reset(),U()},"clear"),oe=g(()=>x.records.stack[0],"getRoot"),se=g(()=>x.records.cnt,"getCount"),ae=Q.treeView,ce=g(()=>N(ae,E().treeView),"getConfig"),le=g((n,t,e,r,s,i)=>{for(;n<=x.records.stack[x.records.stack.length-1].level;)x.records.stack.pop();const o={id:x.records.cnt++,level:n,name:t,nodeType:e,icon:s,cssClass:r,description:i,children:[]};x.records.stack[x.records.stack.length-1].children.push(o),x.records.stack.push(o)},"addNode"),de={clear:ie,addNode:le,getRoot:oe,getCount:se,getConfig:ce,getAccTitle:Z,getAccDescription:P,getDiagramTitle:F,setAccDescription:Y,setAccTitle:G,setDiagramTitle:O},I=de,he=g(n=>{X(n,I);for(const t of n.nodes){const e=typeof t.indent=="number"?t.indent:0;let r=t.name;const s=r.endsWith("/");s&&(r=r.slice(0,-1));const i=s?"directory":"file",o=t.classAnnotation||void 0,a=t.iconAnnotation,p=a!==void 0?a||"none":void 0,c=t.descAnnotation||void 0,d=c?J(c,E()):void 0;I.addNode(e,r,i,o,p,d)}},"populate"),pe={parse:g(async n=>{const{text:t,lineMap:e}=R(n);try{const r=await te("treeView",t);A.debug(r),he(r)}catch(r){throw e.size>0&&r instanceof Error&&(r.message=S(r.message,e)),r}},"parse")},b={prefix:"mermaid-treeview",height:24,width:24,icons:{folder:{body:'<path fill="currentColor" d="M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z"/>'},file:{body:'<path fill="currentColor" fill-rule="evenodd" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z" clip-rule="evenodd"/>'}}};function H(n,t){const e=t?.filenameIcons?.[n];if(e)return e;const r=n.lastIndexOf(".");if(r>0){const s=n.substring(r).toLowerCase(),i=t?.extensionIcons;return i?.[s]??i?.[s.slice(1)]}}g(H,"detectIcon");function C(n,t){return n.includes(":")?n:n in b.icons||!t?`${b.prefix}:${n}`:`${t}:${n}`}g(C,"qualifyIcon");function B(n,t){if(n.icon!=="none"){if(n.icon)return C(n.icon,t.defaultIconPack);if(t.showIcons){if(n.nodeType==="file"){const e=H(n.name,t);if(e==="none")return;if(e)return C(e,t.defaultIconPack)}return`${b.prefix}:${n.nodeType==="directory"?"folder":"file"}`}}}g(B,"getNodeIcon");ee([{name:b.prefix,icons:b}]);var y=14,ge=4,fe=16,ue=g(async(n,t)=>{const e=[],r=g(i=>{const o=B(i,t);o&&e.push({icon:o,node:i}),i.children.forEach(r)},"collect");r(n);const s=await Promise.all(e.map(async({icon:i,node:o})=>({id:o.id,svg:await K(i,{height:y,width:y})})));return new Map(s.map(({id:i,svg:o})=>[i,o]))},"resolveNodeIcons"),me=g((n,t,e,r,s,i)=>{const o=r.append("g");let a="treeView-node-label";e.nodeType==="directory"&&(a+=" treeView-node-dir"),e.cssClass&&(a+=` ${e.cssClass}`);const p=y+ge,c=B(e,s),d=c!==void 0;c&&o.append("g").attr("class","treeView-node-icon").attr("transform",`translate(${n+s.paddingX}, ${t+s.paddingY})`).html(i.get(e.id)??"");const h=o.append("text").text(e.name).attr("dominant-baseline","middle").attr("class",a),{height:l,width:m}=h.node().getBBox(),f=l+s.paddingY*2,w=n+s.paddingX+(d?p:0);h.attr("x",w),h.attr("y",t+f/2);const u=w+m,v=m+s.paddingX*2+(d?p:0);return e.BBox={x:n,y:t,width:v,height:f},e.cssClass?.split(/\s+/).includes("highlight")&&o.insert("rect",":first-child").attr("x",n).attr("y",t+1).attr("width",0).attr("height",f-2).attr("rx",3).attr("class","treeView-highlight-bg"),{node:e,nodeGroup:o,labelRightEdge:u,centerY:t+f/2}},"positionLabel"),$=g((n,t,e,r,s,i)=>n.append("line").attr("x1",t).attr("y1",e).attr("x2",r).attr("y2",s).attr("stroke-width",i).attr("class","treeView-node-line"),"positionLine"),we=g((n,t,e,r)=>{let s=0,i=0;const o=[],a=g((d,h,l,m)=>{const f=m*(l.rowIndent+l.paddingX),w=me(f,s,h,d,l,r);o.push(w);const{height:u,width:v}=h.BBox;$(d,f-l.rowIndent,s+u/2,f,s+u/2,l.lineThickness),i=Math.max(i,f+v),s+=u},"drawNode"),p=g((d,h=0)=>{a(n,d,e,h),d.children.forEach(w=>{p(w,h+1)});const{x:l,y:m,height:f}=d.BBox;if(d.children.length){const{y:w,height:u}=d.children[d.children.length-1].BBox;$(n,l+e.paddingX,m+f,l+e.paddingX,w+u/2+e.lineThickness/2,e.lineThickness)}},"processNode");p(t);const c=o.filter(d=>d.node.description);if(c.length>0){const h=Math.max(...o.map(l=>l.labelRightEdge))+fe;for(const l of c){const f=l.nodeGroup.append("text").text(l.node.description).attr("dominant-baseline","middle").attr("class","treeView-node-description").attr("x",h).attr("y",l.centerY).node().getBBox();i=Math.max(i,h+f.width+e.paddingX)}}for(const d of o)if(d.node.cssClass?.split(/\s+/).includes("highlight")){const h=d.nodeGroup.select(".treeView-highlight-bg");if(!h.empty()){const l=i-d.node.BBox.x+8;h.attr("width",l),i=Math.max(i,d.node.BBox.x+l+2)}}return{totalHeight:s,totalWidth:i}},"drawTree"),xe=g(async(n,t,e,r)=>{A.debug(`Rendering treeView diagram
|
|
4
4
|
`+n);const s=r.db,i=s.getRoot(),o=s.getConfig(),a=j(t),p=a.append("g");p.attr("class","tree-view");const c=await ue(i,o),{totalHeight:d,totalWidth:h}=we(p,i,o,c);a.attr("viewBox",`-${o.lineThickness/2} 0 ${h} ${d}`),q(a,d,h,o.useMaxWidth)},"draw"),ve={draw:xe},be=ve,Ie={labelFontSize:"16px",labelColor:"black",lineColor:"black",iconColor:"#546e7a",descriptionColor:"#6a9955",highlightBg:"rgba(255, 193, 7, 0.15)",highlightStroke:"#ffc107"},Ce=g(({treeView:n})=>{const{labelFontSize:t,labelColor:e,lineColor:r,iconColor:s,descriptionColor:i,highlightBg:o,highlightStroke:a}=N(Ie,n);return`
|
|
@@ -27,4 +27,4 @@ import{I as W}from"./chunk-2Q5K7J3B-CcvtugCu.js";import{p as X}from"./chunk-JWPE
|
|
|
27
27
|
stroke: ${a};
|
|
28
28
|
stroke-width: 1;
|
|
29
29
|
}
|
|
30
|
-
`},"styles"),ye=Ce,
|
|
30
|
+
`},"styles"),ye=Ce,Ee={db:I,renderer:be,parser:pe,styles:ye};export{Ee as diagram};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import{p as I}from"./chunk-JWPE2WC7-xd0JGvne.js";import{s as _,g as F,n as E,m as D,a as z,b as P,_ as c,F as G,o as W,z as w,x as C,A as B,l as b,W as V,d as H}from"./mermaid.core-BDgZg3kW.js";import{p as j}from"./cynefin-OW5HDTMX-DiBs4CI8.js";import"./preload-helper-BlTxHScW.js";import"./index-CH7cEAxj.js";import"./transform-BqqRT-Iy.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},y=32,A={axes:[],curves:[],options:x},m=structuredClone(A),U=B.radar,X=c(()=>w({...U,...C().radar}),"getConfig"),M=c(()=>m.axes,"getAxes"),K=c(()=>m.curves,"getCurves"),N=c(()=>m.options,"getOptions"),Y=c(a=>{m.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Z=c(a=>{m.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:q(t.entries)}))},"setCurves"),q=c(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=M();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>s.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=c(a=>{const t=a.reduce((e,r)=>(e[r.name]=r,e),{});m.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule},m.options.ticks>y&&(b.warn(`Radar diagram ticks (${m.options.ticks}) exceeds maximum allowed (${y}). Using ${y} instead.`),m.options.ticks=y)},"setOptions"),Q=c(()=>{W(),m=structuredClone(A)},"clear"),$={getAxes:M,getCurves:K,getOptions:N,setAxes:Y,setCurves:Z,setOptions:J,getConfig:X,clear:Q,setAccTitle:P,getAccTitle:z,setDiagramTitle:D,getDiagramTitle:E,getAccDescription:F,setAccDescription:_},tt=c(a=>{I(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),et={parse:c(async a=>{const t=await j("radar",a);b.debug(t),tt(t)},"parse")},at=c((a,t,e,r)=>{const s=r.db,i=s.getAxes(),l=s.getCurves(),n=s.getOptions(),o=s.getConfig(),d=s.getDiagramTitle(),p=G(t),u=rt(p,o),g=n.max??Math.max(...l.map(f=>Math.max(...f.entries))),h=n.min,v=Math.min(o.width,o.height)/2;st(u,i,v,n.ticks,n.graticule),nt(u,i,v,o),L(u,i,l,h,g,n.graticule,o),k(u,l,n.showLegend,o),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-o.height/2-o.marginTop)},"draw"),rt=c((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return H(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`).attr("overflow","visible"),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),st=c((a,t,e,r,s)=>{if(s==="circle")for(let i=0;i<r;i++){const l=e*(i+1)/r;a.append("circle").attr("r",l).attr("class","radarGraticule")}else if(s==="polygon"){const i=t.length;for(let l=0;l<r;l++){const n=e*(l+1)/r,o=t.map((d,p)=>{const u=2*p*Math.PI/i-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",o).attr("class","radarGraticule")}}},"drawGraticule"),nt=c((a,t,e,r)=>{const s=t.length;for(let i=0;i<s;i++){const l=t[i].label,n=2*i*Math.PI/s-Math.PI/2,o=Math.cos(n),d=Math.sin(n);a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*o).attr("y2",e*r.axisScaleFactor*d).attr("class","radarAxisLine");const p=o>.01?"start":o<-.01?"end":"middle",u=d>.01?"hanging":d<-.01?"auto":"central",g=4;a.append("text").text(l).attr("x",e*r.axisLabelFactor*o+g*o).attr("y",e*r.axisLabelFactor*d+g*d).attr("text-anchor",p).attr("dominant-baseline",u).attr("class","radarAxisLabel")}},"drawAxes");function L(a,t,e,r,s,i,l){const n=t.length,o=Math.min(l.width,l.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,f=T(g,r,s,o),O=f*Math.cos(v),R=f*Math.sin(v);return{x:O,y:R}});i==="circle"?a.append("path").attr("d",S(u,l.curveTension)).attr("class",`radarCurve-${p}`):i==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}c(L,"drawCurves");function T(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}c(T,"relativeRadius");function S(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const i=a[(s-1+e)%e],l=a[s],n=a[(s+1)%e],o=a[(s+2)%e],d={x:l.x+(n.x-i.x)*t,y:l.y+(n.y-i.y)*t},p={x:n.x-(o.x-l.x)*t,y:n.y-(o.y-l.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`}return`${r} Z`}c(S,"closedRoundCurve");function k(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,i=-(r.height/2+r.marginTop)*3/4,l=20;t.forEach((n,o)=>{const d=a.append("g").attr("transform",`translate(${s}, ${i+o*l})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${o}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}c(k,"drawLegend");var ot={draw:at},it=c((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
|
|
2
|
+
.radarCurve-${r} {
|
|
3
|
+
color: ${s};
|
|
4
|
+
fill: ${s};
|
|
5
|
+
fill-opacity: ${t.curveOpacity};
|
|
6
|
+
stroke: ${s};
|
|
7
|
+
stroke-width: ${t.curveStrokeWidth};
|
|
8
|
+
}
|
|
9
|
+
.radarLegendBox-${r} {
|
|
10
|
+
fill: ${s};
|
|
11
|
+
fill-opacity: ${t.curveOpacity};
|
|
12
|
+
stroke: ${s};
|
|
13
|
+
}
|
|
14
|
+
`}return e},"genIndexStyles"),lt=c(a=>{const t=V(),e=C(),r=w(t,e.themeVariables),s=w(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),ct=c(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=lt(a);return`
|
|
15
|
+
.radarTitle {
|
|
16
|
+
font-size: ${t.fontSize};
|
|
17
|
+
color: ${t.titleColor};
|
|
18
|
+
dominant-baseline: hanging;
|
|
19
|
+
text-anchor: middle;
|
|
20
|
+
}
|
|
21
|
+
.radarAxisLine {
|
|
22
|
+
stroke: ${e.axisColor};
|
|
23
|
+
stroke-width: ${e.axisStrokeWidth};
|
|
24
|
+
}
|
|
25
|
+
.radarAxisLabel {
|
|
26
|
+
font-size: ${e.axisLabelFontSize}px;
|
|
27
|
+
color: ${e.axisColor};
|
|
28
|
+
}
|
|
29
|
+
.radarGraticule {
|
|
30
|
+
fill: ${e.graticuleColor};
|
|
31
|
+
fill-opacity: ${e.graticuleOpacity};
|
|
32
|
+
stroke: ${e.graticuleColor};
|
|
33
|
+
stroke-width: ${e.graticuleStrokeWidth};
|
|
34
|
+
}
|
|
35
|
+
.radarLegendText {
|
|
36
|
+
text-anchor: start;
|
|
37
|
+
font-size: ${e.legendFontSize}px;
|
|
38
|
+
dominant-baseline: hanging;
|
|
39
|
+
}
|
|
40
|
+
${it(t,e)}
|
|
41
|
+
`},"styles"),ht={parser:et,db:$,renderer:ot,styles:ct};export{ht as diagram};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{p as re}from"./chunk-JWPE2WC7-
|
|
1
|
+
import{p as re}from"./chunk-JWPE2WC7-xd0JGvne.js";import{n as oe,m as se,s as le,g as de,a as ce,b as me,_ as o,l as g,c as T,y as ue,o as xe,z as fe,x as M,A as ge,i as y,w as P,al as he}from"./mermaid.core-BDgZg3kW.js";import{p as pe,i as be}from"./cynefin-OW5HDTMX-DiBs4CI8.js";import{s as ve}from"./transform-BqqRT-Iy.js";import"./preload-helper-BlTxHScW.js";import"./index-CH7cEAxj.js";var $="position frame",D="frame positioned",S="position relation",N="relation positioned",we=o(function(e){g.debug("options str",e)},"setOptions"),ye=o(function(){return{}},"getOptions"),Pe=o(function(){C(),xe()},"clear");function C(){B={}}o(C,"reset");var Se=ge.eventmodeling,ke=o(()=>fe({...Se,...M().eventmodeling}),"getConfig"),B={};function O(){let e=Fe;const{ast:n}=B,t=E();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=G(i,n.dataEntities,t);e=v(e,{$kind:$,index:a,frame:i,textProps:r});let l;K(i)?(g.debug("source frame",i.sourceFrames),l=n.frames.filter(d=>i.sourceFrames.some(c=>c.$refText===d.name)),l.forEach(d=>{e=v(e,{$kind:S,index:a,frame:i,sourceFrame:d})})):e=v(e,{$kind:S,index:a,frame:i})}),e={...e,sortedSwimlanesArray:A(e.swimlanes)},e}o(O,"getState");function I(e){B.ast=e}o(I,"setAst");var s={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function E(){return s}o(E,"getDiagramProps");var Fe={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function W(e){const n=e.split(".");if(n.length===2)return n[0]}o(W,"extractNamespace");function H(e){const n=e.split(".");return n.length===2?n[1]:e}o(H,"extractName");function U(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(U,"findSwimlaneByNamespace");function b(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&a<t}).map(i=>Number.parseInt(i)))+1}o(b,"findNextAvailableIndex");function _(e,n){const t=W(e.entityIdentifier),i=U(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:b(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:b(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:b(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(_,"calculateSwimlaneProps");function L(e){const{themeVariables:n}=M();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(L,"calculateEntityVisualProps");function G(e,n,t){const i=M(),a=y(H(e.entityIdentifier)??"",i);let r;const l={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"};let c=`<b>${P(a,t.textMaxWidth,l)}</b>`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,l),r=r.replaceAll(" "," ")),e.dataReference){const p=n.find(w=>w.name===e.dataReference?.$refText);p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{
|
|
2
2
|
`)+2),r=r.substring(0,r.lastIndexOf("}")-1),r=y(r,i),r=P(r,t.textMaxWidth,l),r=r.replaceAll(" "," "),r+="<br/>")}const m=r!==void 0;m&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${t.textMaxWidth}px">${r}</code>`);const x={fontSize:l.fontSize,fontWeight:l.fontWeight,fontFamily:l.fontFamily},u=he(c,x),h=m?u.width/3:u.width,f={content:c,width:h,height:u.height};return g.debug(`[${e.name}] ${e.entityIdentifier} text`,f),f}o(G,"calculateTextProps");function V(e,n){const t=n,i=L(t.frame),a={width:t.textProps.width+2*s.boxTextPadding,height:t.textProps.height+2*s.boxTextPadding};return[{$kind:D,frame:t.frame,index:t.index,visual:i,dimension:a,textProps:t.textProps}]}o(V,"decidePositionFrame");function X(e,n,t){return n===void 0?s.contentStartX:n.index===e.index&&e.r?e.r+s.boxPadding:t===void 0?s.contentStartX:t.r-s.boxOverlap+s.boxPadding}o(X,"calculateX");function j(e,n){const t=[...e.map(i=>i.r),n];return Math.max(...t)}o(j,"calculateMaxRight");function A(e){return Object.values(e).sort((n,t)=>n.index-t.index)}o(A,"sortedSwimlanesArray");function Y(e,n){const t=n,i=_(t.frame,e.swimlanes);let a;i.index in e.swimlanes?a=e.swimlanes[i.index]:a={index:i.index,label:i.label,r:0,y:i.index*s.swimlaneMinHeight+s.swimlaneGap,height:s.swimlaneMinHeight,maxHeight:s.swimlaneMinHeight};const r=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,l=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,d={width:Math.max(s.boxMinWidth,Math.min(s.boxMaxWidth,t.dimension.width))+2*s.boxPadding,height:Math.max(s.boxMinHeight,Math.min(s.boxMaxHeight,t.dimension.height))+2*s.boxPadding},c=X(a,l,r),m=c+d.width+s.boxPadding,x=j(Object.values(e.swimlanes),m);a.r=c+d.width,a.maxHeight=Math.max(a.maxHeight,d.height),a.height=Math.max(s.swimlaneMinHeight,a.maxHeight)+2*s.swimlanePadding;const u={x:c,y:s.swimlanePadding+a.y,r:m,dimension:d,leftSibling:!1,swimlane:a,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},h={...e,boxes:[...e.boxes,u],swimlanes:{...e.swimlanes,[`${a.index}`]:a},previousSwimlaneNumber:i.index,previousFrame:t.frame,maxR:x},f=A(h.swimlanes);f.length>0&&(f[0].y=0);for(let p=1;p<f.length;p++){const w=f[p],R=f[p-1];w.y=R.y+R.height+s.swimlaneGap}return h}o(Y,"evolveFramePositioned");function z(e,n){return e===0&&n.sourceFrames.length===0}o(z,"isFirstFrame");function K(e){return e.sourceFrames!==void 0&&e.sourceFrames!==null&&e.sourceFrames.length>0}o(K,"hasSourceFrame");function k(e,n){if(n!=null)return e.find(t=>t.frame.name===n.name)}o(k,"findBoxByFrame");function q(e,n,t){if(!(t<0))for(let i=t;i>=0;i--){const a=e[i];if(a.swimlane.index!==n)return a}}o(q,"findBoxByLineIndex");function J(e,n){const t=n;if(be(t.frame)||z(t.index,t.frame))return[];const i=k(e.boxes,t.frame);if(i===void 0)throw new Error(`Target box not found for frame ${t.frame.name}`);let a;return t.sourceFrame?a=k(e.boxes,t.sourceFrame):a=q(e.boxes,i.swimlane.index,t.index-1),a===void 0?[]:[{$kind:N,frame:t.frame,index:t.index,sourceBox:a,targetBox:i}]}o(J,"decidePositionRelation");function Q(e,n){const t=n,i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}o(Q,"evolveRelationPositioned");var Me={[$]:V,[S]:J},Be={[D]:Y,[N]:Q};function Z(e,n){const t=Me[n.$kind];if(t==null)return[];const i=t(e,n);return g.debug("decided events",i),i}o(Z,"decide");function ee(e,n){const t=n.reduce((i,a)=>{const r=Be[a.$kind];return r==null?i:r(i,a)},e);return g.debug("evolve events",{state:e,newState:t,events:n}),t}o(ee,"evolve");function v(e,n){const t=Z(e,n);return ee(e,t)}o(v,"dispatch");var F={getConfig:ke,setOptions:we,getOptions:ye,clear:Pe,setAccTitle:me,getAccTitle:ce,getAccDescription:de,setAccDescription:le,setDiagramTitle:se,getDiagramTitle:oe,setAst:I,getDiagramProps:E,getState:O},Ee={parse:o(async e=>{const n=await pe("eventmodeling",e);g.debug(n),F.setAst(n),re(n,F)},"parse")},Ae=T(),Re=Ae?.eventmodeling;function te(e,n){return t=>{const i=t.swimlane.y+n.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",t.x).attr("y",i).attr("rx","3").attr("width",t.dimension.width).attr("height",t.dimension.height).attr("stroke",t.visual.stroke).attr("fill",t.visual.fill),a.append("foreignObject").attr("x",t.x+n.boxPadding).attr("y",i+10).attr("width",t.dimension.width-2*n.boxPadding).attr("height",t.dimension.height-2*n.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(t.text)}}o(te,"renderD3Box");function ne(e,n){return e>n}o(ne,"dirUpwards");function ie(e,n,t,i){return a=>{const r=a.sourceBox.swimlane.y+n.swimlanePadding,l=a.targetBox.swimlane.y+n.swimlanePadding,d=ne(r,l),c=a.sourceBox.x+a.sourceBox.dimension.width*2/3,m=a.targetBox.x+a.targetBox.dimension.width/3;let x,u;g.debug(`rendering relation up=${d} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),d?(x=r,u=l+a.targetBox.dimension.height):(x=r+a.sourceBox.dimension.height,u=l);const h=i.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",h).attr("stroke-width","1").attr("marker-end",`url(#${t})`).attr("d",`M${c} ${x} L${m} ${u}`)}}o(ie,"renderD3Relation");function ae(e,n,t,i){return a=>{const r=e.append("g").attr("class","em-swimlane"),l=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",d=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",n+t.swimlanePadding).attr("height",a.height).attr("fill",l).attr("stroke",d),r.append("text").attr("font-weight",t.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}o(ae,"renderD3Swimlane");var Te=o(function(e,n,t,i){if(g.debug("in eventmodeling renderer",e+`
|
|
3
|
-
`,"id:",n,t),!Re)throw new Error("EventModeling config not found");const a=i.db,{themeVariables:r,eventmodeling:l}=T(),d=ve(`[id="${n}"]`),c=a.getDiagramProps(),m=a.getState(),x=`em-arrowhead-${n}`,u=r.emArrowhead??"#000000";m.sortedSwimlanesArray.forEach(ae(d,m.maxR,c,r)),m.boxes.forEach(te(d,c)),m.relations.forEach(ie(d,c,x,r)),d.append("defs").append("marker").attr("id",x).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",u),ue(void 0,d,l?.padding??30,l?.useMaxWidth)},"draw"),$e={draw:Te},De=o(e=>"","getStyles"),Ne=De,
|
|
3
|
+
`,"id:",n,t),!Re)throw new Error("EventModeling config not found");const a=i.db,{themeVariables:r,eventmodeling:l}=T(),d=ve(`[id="${n}"]`),c=a.getDiagramProps(),m=a.getState(),x=`em-arrowhead-${n}`,u=r.emArrowhead??"#000000";m.sortedSwimlanesArray.forEach(ae(d,m.maxR,c,r)),m.boxes.forEach(te(d,c)),m.relations.forEach(ie(d,c,x,r)),d.append("defs").append("marker").attr("id",x).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",u),ue(void 0,d,l?.padding??30,l?.useMaxWidth)},"draw"),$e={draw:Te},De=o(e=>"","getStyles"),Ne=De,_e={parser:Ee,db:F,renderer:$e,styles:Ne};export{_e as diagram};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{p as me}from"./chunk-JWPE2WC7-xd0JGvne.js";import{_ as w,W as ge,x as te,z as Q,F as ye,d as Se,l as ee,b8 as B,b as ve,a as xe,m as be,n as we,g as Ce,s as Te,A as Le,b9 as $e,o as Ae}from"./mermaid.core-BDgZg3kW.js";import{s as Fe}from"./chunk-POPQ4Y6H-Bh6rizEy.js";import{p as Ne}from"./cynefin-OW5HDTMX-DiBs4CI8.js";import{s as j}from"./transform-BqqRT-Iy.js";import{b as I}from"./defaultLocale-DX6XiGOO.js";import{o as K}from"./ordinal-Cboi1Yqb.js";import"./preload-helper-BlTxHScW.js";import"./index-CH7cEAxj.js";import"./init-Gi6I4Gst.js";function Me(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}function _e(){return this.eachAfter(Me)}function ke(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}function ze(e,a){for(var n=this,l=[n],r,o,h=-1;n=l.pop();)if(e.call(a,n,++h,this),r=n.children)for(o=r.length-1;o>=0;--o)l.push(r[o]);return this}function Ve(e,a){for(var n=this,l=[n],r=[],o,h,d,g=-1;n=l.pop();)if(r.push(n),o=n.children)for(h=0,d=o.length;h<d;++h)l.push(o[h]);for(;n=r.pop();)e.call(a,n,++g,this);return this}function De(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}function Pe(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,r=l&&l.length;--r>=0;)n+=l[r].value;a.value=n})}function Be(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}function We(e){for(var a=this,n=Ee(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var r=l.length;e!==n;)l.splice(r,0,e),e=e.parent;return l}function Ee(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),r=null;for(e=n.pop(),a=l.pop();e===a;)r=e,e=n.pop(),a=l.pop();return r}function Re(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}function He(){return Array.from(this)}function Ie(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}function Oe(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}function*Ge(){var e=this,a,n=[e],l,r,o;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(r=0,o=l.length;r<o;++r)n.push(l[r]);while(n.length)}function ae(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Ye)):a===void 0&&(a=Xe);for(var n=new U(e),l,r=[n],o,h,d,g;l=r.pop();)if((h=a(l.data))&&(g=(h=Array.from(h)).length))for(l.children=h,d=g-1;d>=0;--d)r.push(o=h[d]=new U(h[d])),o.parent=l,o.depth=l.depth+1;return n.eachBefore(Ue)}function qe(){return ae(this).eachBefore(je)}function Xe(e){return e.children}function Ye(e){return Array.isArray(e)?e[1]:null}function je(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function Ue(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}function U(e){this.data=e,this.depth=this.height=0,this.parent=null}U.prototype=ae.prototype={constructor:U,count:_e,each:ke,eachAfter:Ve,eachBefore:ze,find:De,sum:Pe,sort:Be,path:We,ancestors:Re,descendants:He,leaves:Ie,links:Oe,copy:qe,[Symbol.iterator]:Ge};function Ze(e){if(typeof e!="function")throw new Error;return e}function O(){return 0}function G(e){return function(){return e}}function Je(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}function Ke(e,a,n,l,r){for(var o=e.children,h,d=-1,g=o.length,c=e.value&&(l-a)/e.value;++d<g;)h=o[d],h.y0=n,h.y1=r,h.x0=a,h.x1=a+=h.value*c}function Qe(e,a,n,l,r){for(var o=e.children,h,d=-1,g=o.length,c=e.value&&(r-n)/e.value;++d<g;)h=o[d],h.x0=a,h.x1=l,h.y0=n,h.y1=n+=h.value*c}var et=(1+Math.sqrt(5))/2;function tt(e,a,n,l,r,o){for(var h=[],d=a.children,g,c,p=0,b=0,s=d.length,x,S,v=a.value,u,y,N,$,V,E,M;p<s;){x=r-n,S=o-l;do u=d[b++].value;while(!u&&b<s);for(y=N=u,E=Math.max(S/x,x/S)/(v*e),M=u*u*E,V=Math.max(N/M,M/y);b<s;++b){if(u+=c=d[b].value,c<y&&(y=c),c>N&&(N=c),M=u*u*E,$=Math.max(N/M,M/y),$>V){u-=c;break}V=$}h.push(g={value:u,dice:x<S,children:d.slice(p,b)}),g.dice?Ke(g,n,l,r,v?l+=S*u/v:o):Qe(g,n,l,v?n+=x*u/v:r,o),v-=u,p=b}return h}const at=(function e(a){function n(l,r,o,h,d){tt(a,l,r,o,h,d)}return n.ratio=function(l){return e((l=+l)>1?l:1)},n})(et);function nt(){var e=at,a=!1,n=1,l=1,r=[0],o=O,h=O,d=O,g=O,c=O;function p(s){return s.x0=s.y0=0,s.x1=n,s.y1=l,s.eachBefore(b),r=[0],a&&s.eachBefore(Je),s}function b(s){var x=r[s.depth],S=s.x0+x,v=s.y0+x,u=s.x1-x,y=s.y1-x;u<S&&(S=u=(S+u)/2),y<v&&(v=y=(v+y)/2),s.x0=S,s.y0=v,s.x1=u,s.y1=y,s.children&&(x=r[s.depth+1]=o(s)/2,S+=c(s)-x,v+=h(s)-x,u-=d(s)-x,y-=g(s)-x,u<S&&(S=u=(S+u)/2),y<v&&(v=y=(v+y)/2),e(s,S,v,u,y))}return p.round=function(s){return arguments.length?(a=!!s,p):a},p.size=function(s){return arguments.length?(n=+s[0],l=+s[1],p):[n,l]},p.tile=function(s){return arguments.length?(e=Ze(s),p):e},p.padding=function(s){return arguments.length?p.paddingInner(s).paddingOuter(s):p.paddingInner()},p.paddingInner=function(s){return arguments.length?(o=typeof s=="function"?s:G(+s),p):o},p.paddingOuter=function(s){return arguments.length?p.paddingTop(s).paddingRight(s).paddingBottom(s).paddingLeft(s):p.paddingTop()},p.paddingTop=function(s){return arguments.length?(h=typeof s=="function"?s:G(+s),p):h},p.paddingRight=function(s){return arguments.length?(d=typeof s=="function"?s:G(+s),p):d},p.paddingBottom=function(s){return arguments.length?(g=typeof s=="function"?s:G(+s),p):g},p.paddingLeft=function(s){return arguments.length?(c=typeof s=="function"?s:G(+s),p):c},p}var ie=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=ve,this.getAccTitle=xe,this.setDiagramTitle=be,this.getDiagramTitle=we,this.getAccDescription=Ce,this.setAccDescription=Te}static{w(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=Le,a=te();return Q({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(r=>{$e(r)&&(n?.textStyles?n.textStyles.push(r):n.textStyles=[r]),n?.styles?n.styles.push(r):n.styles=[r]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){Ae(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function oe(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const r={name:l.name,children:l.type==="Leaf"?void 0:[]};for(r.classSelector=l?.classSelector,l?.cssCompiledStyles&&(r.cssCompiledStyles=l.cssCompiledStyles),l.type==="Leaf"&&l.value!==void 0&&(r.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(r);else{const o=n[n.length-1].node;o.children?o.children.push(r):o.children=[r]}l.type!=="Leaf"&&n.push({node:r,level:l.level})}),a}w(oe,"buildHierarchy");var lt=w((e,a)=>{me(e,a);const n=[];for(const o of e.TreemapRows??[])o.$type==="ClassDefStatement"&&a.addClass(o.className??"",o.styleText??"");for(const o of e.TreemapRows??[]){const h=o.item;if(!h)continue;const d=o.indent?parseInt(o.indent):0,g=rt(h),c=h.classSelector?a.getStylesForClass(h.classSelector):[],p=c.length>0?c:void 0,b={level:d,name:g,type:h.$type,value:h.value,classSelector:h.classSelector,cssCompiledStyles:p};n.push(b)}const l=oe(n),r=w((o,h)=>{for(const d of o)a.addNode(d,h),d.children&&d.children.length>0&&r(d.children,h+1)},"addNodesRecursively");r(l,0)},"populate"),rt=w(e=>e.name?String(e.name):"","getItemName"),ce={parser:{yy:void 0},parse:w(async e=>{try{const n=await Ne("treemap",e);ee.debug("Treemap AST:",n);const l=ce.parser?.yy;if(!(l instanceof ie))throw new 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.");lt(n,l)}catch(a){throw ee.error("Error parsing treemap:",a),a}},"parse")},st=10,W=10,q=25,it=w((e,a,n,l)=>{const r=l.db,o=r.getConfig(),h=o.padding??st,d=r.getDiagramTitle(),g=r.getRoot(),{themeVariables:c}=te();if(!g)return;const p=d?30:0,b=ye(a),s=o.nodeWidth?o.nodeWidth*W:960,x=o.nodeHeight?o.nodeHeight*W:500,S=s,v=x+p;b.attr("viewBox",`0 0 ${S} ${v}`),Se(b,v,S,o.useMaxWidth);let u;try{const t=o.valueFormat||",";if(t==="$0,0")u=w(i=>"$"+I(",")(i),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const i=/\.\d+/.exec(t),f=i?i[0]:"";u=w(C=>"$"+I(","+f)(C),"valueFormat")}else if(t.startsWith("$")){const i=t.substring(1);u=w(f=>"$"+I(i||"")(f),"valueFormat")}else u=I(t)}catch(t){ee.error("Error creating format function:",t),u=I(",")}const y=K().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),N=K().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),$=K().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);d&&b.append("text").attr("x",S/2).attr("y",p/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(d);const V=b.append("g").attr("transform",`translate(0, ${p})`).attr("class","treemapContainer"),E=ae(g).sum(t=>t.value??0).sort((t,i)=>(i.value??0)-(t.value??0)),ne=nt().size([s,x]).paddingTop(t=>t.children&&t.children.length>0?q+W:0).paddingInner(h).paddingLeft(t=>t.children&&t.children.length>0?W:0).paddingRight(t=>t.children&&t.children.length>0?W:0).paddingBottom(t=>t.children&&t.children.length>0?W:0).round(!0)(E),he=ne.descendants().filter(t=>t.children&&t.children.length>0),R=V.selectAll(".treemapSection").data(he).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",q).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),R.append("clipPath").attr("id",(t,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",q),R.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,i)=>`treemapSection section${i}`).attr("fill",t=>y(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>N(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const i=B({cssCompiledStyles:t.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),R.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",q/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("clip-path",(t,i)=>`url(#clip-section-${a}-${i})`).attr("style",t=>{if(t.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+$(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const i=j(this),f=t.data.name;i.text(f);const C=t.x1-t.x0,L=6;let T;o.showValues!==!1&&t.value?T=C-10-30-10-L:T=C-L-6;const m=Math.max(15,T),_=i.node();if(_.getComputedTextLength()>m){let z=f;for(;z.length>0;){if(z=f.substring(0,z.length-1),z.length===0){i.text("..."),_.getComputedTextLength()>m&&i.text("");break}if(i.text(z+"..."),_.getComputedTextLength()<=m)break}}}),o.showValues!==!1&&R.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",q/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?u(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+$(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const le=ne.leaves(),A=le.length>20,de=A?16:38,X=A?14:28,D=A?4:8,H=A?4:6,Z=A?2:4,re=A?8:10,J=A?1:2,Y=V.selectAll(".treemapLeafGroup").data(le).enter().append("g").attr("class",(t,i)=>`treemapNode treemapLeafGroup leaf${i}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);Y.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("style",t=>B({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("stroke-width",3),Y.append("clipPath").attr("id",(t,i)=>`clip-${a}-${i}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),Y.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const i=`text-anchor: middle; dominant-baseline: middle; font-size: ${de}px;fill:`+$(t.data.name)+";",f=B({cssCompiledStyles:t.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,i)=>`url(#clip-${a}-${i})`).text(t=>t.data.name).each(function(t){const i=j(this),f=t.x1-t.x0,C=t.y1-t.y0,L=i.node(),T=f-2*Z,P=C-2*Z;if(T<re||P<re){i.style("display","none");return}let m=parseInt(i.style("font-size"),10);const _=.6;for(;L.getComputedTextLength()>T&&m>D;)m--,i.style("font-size",`${m}px`);let F=Math.max(H,Math.min(X,Math.round(m*_))),k=m+J+F;for(;k>P&&m>D&&(m--,F=Math.max(H,Math.min(X,Math.round(m*_))),!(F<H&&m===D));)i.style("font-size",`${m}px`),k=m+J+F;i.style("font-size",`${m}px`),A?(m<D||P<D)&&i.style("display","none"):(L.getComputedTextLength()>T||m<D||P<m)&&i.style("display","none")}),o.showValues!==!1&&Y.append("text").attr("class","treemapValue").attr("x",i=>(i.x1-i.x0)/2).attr("y",function(i){return(i.y1-i.y0)/2}).attr("style",i=>{const f=`text-anchor: middle; dominant-baseline: hanging; font-size: ${X}px;fill:`+$(i.data.name)+";",C=B({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?u(i.value):"").each(function(i){const f=j(this),C=this.parentNode;if(!C){f.style("display","none");return}const L=j(C).select(".treemapLabel");if(L.empty()||L.style("display")==="none"){f.style("display","none");return}const T=parseFloat(L.style("font-size")),m=Math.max(H,Math.min(X,Math.round(T*.6)));f.style("font-size",`${m}px`);const F=(i.y1-i.y0)/2+T/2+J;f.attr("y",F);const k=i.x1-i.x0,se=i.y1-i.y0-4,fe=k-2*Z;f.node().getComputedTextLength()>fe||F+m>se||m<H?f.style("display","none"):f.style("display",null)});const pe=o.diagramPadding??8;Fe(b,pe,"flowchart",o?.useMaxWidth||!1)},"draw"),ot=w(function(e,a){return a.db.getClasses()},"getClasses"),ct={draw:it,getClasses:ot},ht={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},dt=w(({treemap:e}={})=>{const a=ge(),n=te(),l=Q(a,n.themeVariables),r=Q(ht,e),o=r.titleColor??l.titleColor,h=r.labelColor??l.textColor,d=r.valueColor??l.textColor;return`
|
|
2
|
+
.treemapNode.section {
|
|
3
|
+
stroke: ${r.sectionStrokeColor};
|
|
4
|
+
stroke-width: ${r.sectionStrokeWidth};
|
|
5
|
+
fill: ${r.sectionFillColor};
|
|
6
|
+
}
|
|
7
|
+
.treemapNode.leaf {
|
|
8
|
+
stroke: ${r.leafStrokeColor};
|
|
9
|
+
stroke-width: ${r.leafStrokeWidth};
|
|
10
|
+
fill: ${r.leafFillColor};
|
|
11
|
+
}
|
|
12
|
+
.treemapLabel {
|
|
13
|
+
fill: ${h};
|
|
14
|
+
font-size: ${r.labelFontSize};
|
|
15
|
+
}
|
|
16
|
+
.treemapValue {
|
|
17
|
+
fill: ${d};
|
|
18
|
+
font-size: ${r.valueFontSize};
|
|
19
|
+
}
|
|
20
|
+
.treemapTitle {
|
|
21
|
+
fill: ${o};
|
|
22
|
+
font-size: ${r.titleFontSize};
|
|
23
|
+
}
|
|
24
|
+
`},"getStyles"),pt=dt,Tt={parser:ce,get db(){return new ie},renderer:ct,styles:pt};export{Tt as diagram};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import{p as $}from"./chunk-JWPE2WC7-xd0JGvne.js";import{_ as b,z as u,F as B,d as C,l as m,b as S,a as D,m as T,n as z,g as F,s as P,x as A,A as E,o as W}from"./mermaid.core-BDgZg3kW.js";import{p as _}from"./cynefin-OW5HDTMX-DiBs4CI8.js";import"./preload-helper-BlTxHScW.js";import"./index-CH7cEAxj.js";import"./transform-BqqRT-Iy.js";var N=E.packet,w=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=D,this.setDiagramTitle=T,this.getDiagramTitle=z,this.getAccDescription=F,this.setAccDescription=P}static{b(this,"PacketDB")}getConfig(){const t=u({...N,...A().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){W(),this.packet=[]}},L=1e4,M=b((t,e)=>{$(t,e);let r=-1,o=[],n=1;const{bitsPerRow:l}=e.getConfig();for(let{start:a,end:i,bits:d,label:c}of t.blocks){if(a!==void 0&&i!==void 0&&i<a)throw new Error(`Packet block ${a} - ${i} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${i??a} is not contiguous. It should start from ${r+1}.`);if(d===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(i??=a+(d??1)-1,d??=i-a+1,r=i,m.debug(`Packet block ${a} - ${r} with label ${c}`);o.length<=l+1&&e.getPacket().length<L;){const[p,s]=Y({start:a,end:i,bits:d,label:c},n,l);if(o.push(p),p.end+1===n*l&&(e.pushWord(o),o=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}e.pushWord(o)},"populate"),Y=b((t,e,r)=>{if(t.start===void 0)throw new Error("start should have been set during first phase");if(t.end===void 0)throw new Error("end should have been set during first phase");if(t.start>t.end)throw new Error(`Block start ${t.start} is greater than block end ${t.end}.`);if(t.end+1<=e*r)return[t,void 0];const o=e*r-1,n=e*r;return[{start:t.start,end:o,label:t.label,bits:o-t.start},{start:n,end:t.end,label:t.label,bits:t.end-n}]},"getNextFittingBlock"),v={parser:{yy:void 0},parse:b(async t=>{const e=await _("packet",t),r=v.parser?.yy;if(!(r instanceof w))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");m.debug(e),M(e,r)},"parse")},I=b((t,e,r,o)=>{const n=o.db,l=n.getConfig(),{rowHeight:a,paddingY:i,bitWidth:d,bitsPerRow:c}=l,p=n.getPacket(),s=n.getDiagramTitle(),h=a+i,g=h*(p.length+1)-(s?0:a),k=d*c+2,f=B(e);f.attr("viewBox",`0 0 ${k} ${g}`),C(f,g,k,l.useMaxWidth);for(const[x,y]of p.entries())O(f,y,x,l);f.append("text").text(s).attr("x",k/2).attr("y",g-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=b((t,e,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=t.append("g"),p=r*(o+l)+l;for(const s of e){const h=s.start%i*a+1,g=(s.end-s.start+1)*a-n;if(c.append("rect").attr("x",h).attr("y",p).attr("width",g).attr("height",o).attr("class","packetBlock"),c.append("text").attr("x",h+g/2).attr("y",p+o/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(s.label),!d)continue;const k=s.end===s.start,f=p-2;c.append("text").attr("x",h+(k?g/2:0)).attr("y",f).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(s.start),k||c.append("text").attr("x",h+g).attr("y",f).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(s.end)}},"drawWord"),j={draw:I},G={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},H=b(({packet:t}={})=>{const e=u(G,t);return`
|
|
2
|
+
.packetByte {
|
|
3
|
+
font-size: ${e.byteFontSize};
|
|
4
|
+
}
|
|
5
|
+
.packetByte.start {
|
|
6
|
+
fill: ${e.startByteColor};
|
|
7
|
+
}
|
|
8
|
+
.packetByte.end {
|
|
9
|
+
fill: ${e.endByteColor};
|
|
10
|
+
}
|
|
11
|
+
.packetLabel {
|
|
12
|
+
fill: ${e.labelColor};
|
|
13
|
+
font-size: ${e.labelFontSize};
|
|
14
|
+
}
|
|
15
|
+
.packetTitle {
|
|
16
|
+
fill: ${e.titleColor};
|
|
17
|
+
font-size: ${e.titleFontSize};
|
|
18
|
+
}
|
|
19
|
+
.packetBlock {
|
|
20
|
+
stroke: ${e.blockStrokeColor};
|
|
21
|
+
stroke-width: ${e.blockStrokeWidth};
|
|
22
|
+
fill: ${e.blockFillColor};
|
|
23
|
+
}
|
|
24
|
+
`},"styles"),Q={parser:v,get db(){return new w},renderer:j,styles:H};export{Q as diagram};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flow-diagram-preview-B83UU1n_.js","assets/index-CH7cEAxj.js","assets/react-flow-wrapper-BcbvHgxz.js","assets/index-BpCVYTvP.js","assets/preload-helper-BlTxHScW.js","assets/index-CIf0GId3.js","assets/index-Dj_05fqk.js","assets/mermaid.core-BDgZg3kW.js","assets/transform-BqqRT-Iy.js","assets/last-DXTTfs9a.js","assets/index-BIrx3oY4.js","assets/value-wA6veExk.js","assets/react-Bx48XWN4.js","assets/nav-links-DZWMpwMR.js","assets/query-D9oj6LGx.js","assets/iconBase-DtqdW2XR.js","assets/chunk-OB3PAWPO-DJIP1M4r.js","assets/component-icons-MJ61E9nt.js","assets/component-icons-BD8MpcyB.css","assets/style-BPesJvJr.js","assets/gql-FFIj8zdp.js","assets/index-Ck66Ic_p.js","assets/style-BnuhLJ6X.css","assets/index-B6MxYIzs.js","assets/use-localstorage-D233xVb0.js","assets/avatar-DAFUyk1i.js","assets/useMutation-D5ZHwHsx.js","assets/useQuery-Dhe6uxrL.js","assets/index-PglMbhys.js","assets/chevron-down-DDsUE_xz.js","assets/super-circle-loader-DSkos6uP.js","assets/button-DZj74qS7.js","assets/better-delete-confirmation-modal-CGEQ5O4X.js","assets/dialog-D7wzTt0L.js","assets/scroll-area-RagrStGj.js","assets/ui-graph-logo-gHowu5gP.js","assets/check-BpmCQNbj.js","assets/badge-hR3QvPWv.js","assets/table-B4pFND-o.js","assets/services-Ivav34WC.js","assets/common-DLCsGQ-t.js","assets/react-flow-wrapper-ClwlSOam.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as s}from"./preload-helper-BlTxHScW.js";import{r as t,j as e}from"./index-CH7cEAxj.js";import{D as m,c as u}from"./avatar-DAFUyk1i.js";import{u as c}from"./query-D9oj6LGx.js";import{u as l}from"./useQuery-Dhe6uxrL.js";const d=t.lazy(()=>s(()=>import("./flow-diagram-preview-B83UU1n_.js"),__vite__mapDeps([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,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41])).then(r=>({default:r.FlowDiagramPreview})));function _({diagramId:r}){const i=c().id,{data:a}=l(m,{variables:{orgId:i,id:r},fetchPolicy:"cache-first"}),o=t.useMemo(()=>{const n=a?.diagram?.content;return n?u(n):null},[a?.diagram?.content]);return o?e.jsx("div",{className:"pointer-events-none h-full w-full",children:e.jsx(t.Suspense,{fallback:null,children:e.jsx(d,{data:o,options:{forceNoBackground:!0},name:a?.diagram?.name})})}):null}export{_ as D};
|