@band-app/server 0.18.0 → 0.19.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/client/assets/DockviewBrowserContainer-4SeBGy5m.js +5 -0
- package/dist/client/assets/DockviewTerminalContainer-DWva1wNl.js +2 -0
- package/dist/client/assets/TerminalPanel-CEmBYkjb.js +5 -0
- package/dist/client/assets/_basePickBy-CV44VSwA.js +1 -0
- package/dist/client/assets/{_baseUniq-P2cIT3Cg.js → _baseUniq-Bqa44Er5.js} +1 -1
- package/dist/client/assets/arc-4rU3SEWf.js +1 -0
- package/dist/client/assets/{architectureDiagram-VXUJARFQ-Co2omcgc.js → architectureDiagram-VXUJARFQ-CapSrTlr.js} +1 -1
- package/dist/client/assets/{blockDiagram-VD42YOAC-CawreF4Q.js → blockDiagram-VD42YOAC-DnapbSnI.js} +5 -5
- package/dist/client/assets/{c4Diagram-YG6GDRKO-DGgImgFg.js → c4Diagram-YG6GDRKO-9mZ9PPiM.js} +1 -1
- package/dist/client/assets/channel-NIcS3uxn.js +1 -0
- package/dist/client/assets/{chunk-4BX2VUAB-CdUSDb5d.js → chunk-4BX2VUAB--rr32b4E.js} +1 -1
- package/dist/client/assets/{chunk-55IACEB6-CZzsVv3f.js → chunk-55IACEB6-DfxuD1M3.js} +1 -1
- package/dist/client/assets/{chunk-B4BG7PRW-CglmZrjp.js → chunk-B4BG7PRW-CxvnNatf.js} +5 -5
- package/dist/client/assets/{chunk-DI55MBZ5-Cj2wjbCm.js → chunk-DI55MBZ5-F51NTwRL.js} +1 -1
- package/dist/client/assets/{chunk-FMBD7UC4-BNnnH8qi.js → chunk-FMBD7UC4-S03fYfOP.js} +1 -1
- package/dist/client/assets/chunk-QN33PNHL-BQWA4OqL.js +1 -0
- package/dist/client/assets/{chunk-QZHKN3VN-DQ2f1Og9.js → chunk-QZHKN3VN-DuLFP0og.js} +1 -1
- package/dist/client/assets/{chunk-TZMSLE5B-BkXj9bDE.js → chunk-TZMSLE5B-BXGn_e4G.js} +1 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-8p3oACYV.js +1 -0
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-8p3oACYV.js +1 -0
- package/dist/client/assets/clike-B9uivgTg.js +1 -0
- package/dist/client/assets/clone-Be31g1pc.js +1 -0
- package/dist/client/assets/{cose-bilkent-S5V4N54A-CWt-uxWy.js → cose-bilkent-S5V4N54A-BD5JLmQ6.js} +1 -1
- package/dist/client/assets/dagre-6UL2VRFP-jd9MqFa1.js +4 -0
- package/dist/client/assets/diagram-PSM6KHXK-Bv0WGkj7.js +24 -0
- package/dist/client/assets/{diagram-QEK2KX5R-bcjaRpQy.js → diagram-QEK2KX5R-oszH6q3s.js} +2 -2
- package/dist/client/assets/diagram-S2PKOQOG-D7rVDuLY.js +24 -0
- package/dist/client/assets/{erDiagram-Q2GNP2WA-CaMPsNqm.js → erDiagram-Q2GNP2WA-BL9gntWo.js} +4 -4
- package/dist/client/assets/{flowDiagram-NV44I4VS-DGQOeo3P.js → flowDiagram-NV44I4VS-1FCz1fgN.js} +4 -4
- package/dist/client/assets/ganttDiagram-JELNMOA3-DggjOINy.js +267 -0
- package/dist/client/assets/{gitGraphDiagram-V2S2FVAM-DCGODyFn.js → gitGraphDiagram-V2S2FVAM-uoayvKXp.js} +3 -3
- package/dist/client/assets/{graph-CfCyZ7oE.js → graph-CKeOhxc0.js} +1 -1
- package/dist/client/assets/{highlighted-body-B3W2YXNL-CxMJmJBc.js → highlighted-body-B3W2YXNL-BfaZeU0X.js} +1 -1
- package/dist/client/assets/{index-DU9qIaIU.js → index-BOdO7r_p.js} +1 -1
- package/dist/client/assets/{index-6kWpovKB.js → index-BVhi8EPL.js} +1 -1
- package/dist/client/assets/{index-DTmrp96f.js → index-BZW8u43a.js} +1 -1
- package/dist/client/assets/{index-BomE98r3.js → index-Be24TlVT.js} +1 -1
- package/dist/client/assets/{index-DLyLpX_A.js → index-BhrvrUs_.js} +1 -1
- package/dist/client/assets/{index-BPTxGmQw.js → index-BmEmzTZO.js} +1 -1
- package/dist/client/assets/{index-plMivlE6.js → index-CdwShVnF.js} +1 -1
- package/dist/client/assets/{index-BkI1MMcx.js → index-ChvBXbK8.js} +1 -1
- package/dist/client/assets/{index-DgA9NKMV.js → index-Cx9QoFI1.js} +1 -1
- package/dist/client/assets/{index-DvwEAnql.js → index-DTOEFzQN.js} +1 -1
- package/dist/client/assets/{index-BahJEMSD.js → index-Ddvrjwlp.js} +1 -1
- package/dist/client/assets/{index-DyzP8Zt_.js → index-Doe-oMI1.js} +1 -1
- package/dist/client/assets/{index-CeneentR.js → index-DsvlvI8i.js} +1 -1
- package/dist/client/assets/{index-DxSYOqNl.js → index-DtoczokG.js} +1 -1
- package/dist/client/assets/{index-DawFiDM_.js → index-SC22AP5M.js} +1 -1
- package/dist/client/assets/{index-BJC5nbeg.js → index-bY8CiPGQ.js} +1 -1
- package/dist/client/assets/{index-DL6FOBAZ.js → index-kGHlsI7U.js} +1 -1
- package/dist/client/assets/{index-CUSuiGMh.js → index-ro4XgOVe.js} +1 -1
- package/dist/client/assets/infoDiagram-HS3SLOUP-9HRNM_Iq.js +2 -0
- package/dist/client/assets/{journeyDiagram-XKPGCS4Q-DK-VcCfU.js → journeyDiagram-XKPGCS4Q-BYEjH_SV.js} +4 -4
- package/dist/client/assets/{kanban-definition-3W4ZIXB7-DqVZenrn.js → kanban-definition-3W4ZIXB7-s6ZYKbvm.js} +8 -8
- package/dist/client/assets/{layout-DBSNY4Lg.js → layout-DlcfRJkl.js} +1 -1
- package/dist/client/assets/{main-BMyWFWYN.js → main-Ct1o5WmJ.js} +386 -354
- package/dist/client/assets/main-DsoPLGrb.css +1 -0
- package/dist/client/assets/{mindmap-definition-VGOIOE7T-C0d6PFL2.js → mindmap-definition-VGOIOE7T-CDeQcF1U.js} +3 -3
- package/dist/client/assets/pieDiagram-ADFJNKIX-CWdMTKnD.js +30 -0
- package/dist/client/assets/{quadrantDiagram-AYHSOK5B-CQyKjYLy.js → quadrantDiagram-AYHSOK5B-C-Zcxmv2.js} +3 -3
- package/dist/client/assets/{requirementDiagram-UZGBJVZJ-DdSXmDi9.js → requirementDiagram-UZGBJVZJ-B3JunJUh.js} +4 -4
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-BRUxMlQD.js +10 -0
- package/dist/client/assets/{sequenceDiagram-WL72ISMW-DyxawmBP.js → sequenceDiagram-WL72ISMW--nulyPWN.js} +6 -6
- package/dist/client/assets/{square-terminal-BXuSt2dW.js → square-terminal-xTmJg69x.js} +1 -1
- package/dist/client/assets/stateDiagram-FKZM4ZOC-DUZeZHou.js +1 -0
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-nq3cGsuB.js +1 -0
- package/dist/client/assets/{timeline-definition-IT6M3QCI-BN5646-s.js → timeline-definition-IT6M3QCI-DgsIAJxu.js} +4 -4
- package/dist/client/assets/{treemap-GDKQZRPO-TYUv7aqt.js → treemap-GDKQZRPO-DzbbBVNz.js} +1 -1
- package/dist/client/assets/{workspace._workspaceId-BVuxUwhR.js → workspace._workspaceId-C2eftsxg.js} +1 -1
- package/dist/client/assets/workspace._workspaceId-CX0zbe5I.js +2 -0
- package/dist/client/assets/xychartDiagram-PRI3JC2R-B11oaEXR.js +7 -0
- package/dist/migrations/20260530114329_elite_smasher/migration.sql +22 -0
- package/dist/migrations/20260530114329_elite_smasher/snapshot.json +1091 -0
- package/dist/migrations/20260530141216_next_prowler/migration.sql +9 -0
- package/dist/migrations/20260530141216_next_prowler/snapshot.json +1167 -0
- package/dist/openapi.json +4461 -4127
- package/dist/server/assets/{DockviewBrowserContainer-BHlHNdlw.js → DockviewBrowserContainer-BcfLe0jL.js} +33 -14
- package/dist/server/assets/{DockviewTerminalContainer-B4s5M71S.js → DockviewTerminalContainer-zVckKR1x.js} +35 -20
- package/dist/server/assets/{TerminalPanel-NJ_oHfHq.js → TerminalPanel-7JfdUecD.js} +250 -143
- package/dist/server/assets/{_basePickBy-BstQwUjx.js → _basePickBy-3tZLkfZU.js} +2 -2
- package/dist/server/assets/{_baseUniq-BloU0u1p.js → _baseUniq-Dz_kdarY.js} +1 -1
- package/dist/server/assets/_tanstack-start-manifest_v-BBzH3QaA.js +4 -0
- package/dist/server/assets/{arc-D6eCV6DV.js → arc-B7a2pVpn.js} +1 -1
- package/dist/server/assets/{architecture-7HQA4BMR-CaZikjMP.js → architecture-7HQA4BMR-9XWqJEVf.js} +6 -6
- package/dist/server/assets/{architectureDiagram-VXUJARFQ-B4vqMbhE.js → architectureDiagram-VXUJARFQ-Vt3dNClh.js} +6 -6
- package/dist/server/assets/{blockDiagram-VD42YOAC-CO_-9S_E.js → blockDiagram-VD42YOAC-DR7gt_eL.js} +6 -6
- package/dist/server/assets/{c4Diagram-YG6GDRKO-CD7rCwaq.js → c4Diagram-YG6GDRKO-DYC3sqOW.js} +2 -2
- package/dist/server/assets/{channel-BMp2wZD3.js → channel-DzI1wGYl.js} +1 -1
- package/dist/server/assets/{chunk-4BX2VUAB-DepEjWoL.js → chunk-4BX2VUAB-DVHBGPAd.js} +1 -1
- package/dist/server/assets/{chunk-55IACEB6-Bi12nYoO.js → chunk-55IACEB6-BXeWT-V1.js} +1 -1
- package/dist/server/assets/{chunk-B4BG7PRW-C_aztpTA.js → chunk-B4BG7PRW-BngOdF6s.js} +4 -4
- package/dist/server/assets/{chunk-DI55MBZ5-DyEwLpXK.js → chunk-DI55MBZ5-Co1ugmE2.js} +3 -3
- package/dist/server/assets/{chunk-FMBD7UC4-BInQidDU.js → chunk-FMBD7UC4-BSvY40K1.js} +1 -1
- package/dist/server/assets/{chunk-QN33PNHL-BzMgQvmo.js → chunk-QN33PNHL-Bld2F-bV.js} +1 -1
- package/dist/server/assets/{chunk-QZHKN3VN-DyvushgJ.js → chunk-QZHKN3VN-CbcRrDQ5.js} +1 -1
- package/dist/server/assets/{chunk-TZMSLE5B-Gk23cBC5.js → chunk-TZMSLE5B-FZqT6NRx.js} +1 -1
- package/dist/server/assets/{classDiagram-v2-WZHVMYZB-C2IXOi-1.js → classDiagram-2ON5EDUG-CqTf3oAt.js} +5 -5
- package/dist/server/assets/{classDiagram-2ON5EDUG-C2IXOi-1.js → classDiagram-v2-WZHVMYZB-CqTf3oAt.js} +5 -5
- package/dist/server/assets/clike-xqXYL6ge.js +805 -0
- package/dist/server/assets/{clone-Dw9tAHpg.js → clone-DFaP-n7G.js} +1 -1
- package/dist/server/assets/{cose-bilkent-S5V4N54A-CnP5PKtl.js → cose-bilkent-S5V4N54A-Cm4DnyNk.js} +1 -1
- package/dist/server/assets/{dagre-6UL2VRFP-Hm-Wejtu.js → dagre-6UL2VRFP-DWtR7ypz.js} +6 -6
- package/dist/server/assets/{diagram-PSM6KHXK-C6URVSbQ.js → diagram-PSM6KHXK-3K0tKsmi.js} +7 -10
- package/dist/server/assets/{diagram-QEK2KX5R-D595vsyp.js → diagram-QEK2KX5R-C_GABXU2.js} +6 -6
- package/dist/server/assets/{diagram-S2PKOQOG-C69I055N.js → diagram-S2PKOQOG-x_2H2okG.js} +6 -6
- package/dist/server/assets/{erDiagram-Q2GNP2WA-DKL3OoDz.js → erDiagram-Q2GNP2WA-DYAuTF-e.js} +4 -4
- package/dist/server/assets/{flowDiagram-NV44I4VS-vb-7BBaz.js → flowDiagram-NV44I4VS-CMgKpatm.js} +5 -5
- package/dist/server/assets/{ganttDiagram-JELNMOA3-CryNIjT5.js → ganttDiagram-JELNMOA3-BqUjIeN-.js} +11 -965
- package/dist/server/assets/{gitGraph-G5XIXVHT-DizYGNvA.js → gitGraph-G5XIXVHT-BOFl30qK.js} +6 -6
- package/dist/server/assets/{gitGraphDiagram-V2S2FVAM-BrIjiO3l.js → gitGraphDiagram-V2S2FVAM-CSFtzM0S.js} +7 -7
- package/dist/server/assets/{graph-mppr1RdG.js → graph-Da9wNyd4.js} +2 -2
- package/dist/server/assets/{highlighted-body-B3W2YXNL-CTUp2Nbw.js → highlighted-body-B3W2YXNL-CSDiX8tu.js} +1 -1
- package/dist/server/assets/{index-Be6X1xir.js → index-Av31QpwJ.js} +2 -2
- package/dist/server/assets/{index-HTfoqKS_.js → index-B9YQ_ief.js} +5 -5
- package/dist/server/assets/{index-D8W-WZ8Y.js → index-BXCk5sug.js} +1 -1
- package/dist/server/assets/{index-BCNeT6hv.js → index-BZPQn4AB.js} +3 -3
- package/dist/server/assets/{index-Cb8rr1Cd.js → index-C-7KLTyL.js} +2 -2
- package/dist/server/assets/{index-B69XH0ed.js → index-CFVkYUnG.js} +2 -2
- package/dist/server/assets/{index-CVOspA2K.js → index-CFt-wi4p.js} +2 -2
- package/dist/server/assets/{index-DJTGOXyp.js → index-CS2NcwnS.js} +2 -2
- package/dist/server/assets/{index-CDaDncKA.js → index-CjJe7VSH.js} +4 -4
- package/dist/server/assets/{index-Om1fUMxJ.js → index-CqNkm5pZ.js} +2 -2
- package/dist/server/assets/{index-BIskkFyK.js → index-CrGR0Fcd.js} +2 -2
- package/dist/server/assets/{index-BQJWbe4d.js → index-D9Pfuy6s.js} +2 -2
- package/dist/server/assets/{index-DC7cATF0.js → index-DC0ng9YX.js} +2 -2
- package/dist/server/assets/{index-CNkj1XIM.js → index-DkCUbYql.js} +2 -2
- package/dist/server/assets/{index-CIHMj9rA.js → index-DwBbgNmR.js} +5 -5
- package/dist/server/assets/{index-BzMgAG0v.js → index-ZFp3vFxe.js} +3 -3
- package/dist/server/assets/{index-CbH_b9nh.js → index-iQ9auLjI.js} +2 -2
- package/dist/server/assets/{index-Dpy7oNI-.js → index-ki-c1Gyj.js} +1 -1
- package/dist/server/assets/{info-VBDWY6EO-B627l6on.js → info-VBDWY6EO-mGUaI27c.js} +6 -6
- package/dist/server/assets/{infoDiagram-HS3SLOUP-Bx-2RIP1.js → infoDiagram-HS3SLOUP-CMic1Hhh.js} +5 -5
- package/dist/server/assets/{journeyDiagram-XKPGCS4Q-COrw3Dj9.js → journeyDiagram-XKPGCS4Q-CravZq_h.js} +4 -4
- package/dist/server/assets/{kanban-definition-3W4ZIXB7-CexmIyEk.js → kanban-definition-3W4ZIXB7-Ik9j3Xny.js} +2 -2
- package/dist/server/assets/{layout-CpkjZ_rj.js → layout-DNctAx-v.js} +4 -4
- package/dist/server/assets/{mermaid-3ZIDBTTL-8k9Pr9Qn.js → mermaid-3ZIDBTTL-Bo2_mtnV.js} +1 -1
- package/dist/server/assets/{mermaid-parser.core-ueKoLtpn.js → mermaid-parser.core-oaV6PZnA.js} +11 -11
- package/dist/server/assets/{mindmap-definition-VGOIOE7T-Lf0rrgEi.js → mindmap-definition-VGOIOE7T-DNTQXwUn.js} +3 -3
- package/dist/server/assets/{packet-DYOGHKS2-Bv6REKYk.js → packet-DYOGHKS2-Bm5PEDRe.js} +6 -6
- package/dist/server/assets/{pie-VRWISCQL-DRcS7bNz.js → pie-VRWISCQL-BOs-4VKW.js} +6 -6
- package/dist/server/assets/{pieDiagram-ADFJNKIX-m0hjxyCj.js → pieDiagram-ADFJNKIX-CEDLfCSy.js} +7 -9
- package/dist/server/assets/{quadrantDiagram-AYHSOK5B-omed34Wz.js → quadrantDiagram-AYHSOK5B-CWfJcZnB.js} +1 -4
- package/dist/server/assets/{radar-ZZBFDIW7-Ba1phWAD.js → radar-ZZBFDIW7-CMUO9a2O.js} +6 -6
- package/dist/server/assets/{requirementDiagram-UZGBJVZJ-BCx5DoGU.js → requirementDiagram-UZGBJVZJ-0SINZ3cV.js} +3 -3
- package/dist/server/assets/{router-DXfwP2_o.js → router-PewB2VMR.js} +28930 -6188
- package/dist/server/assets/{sankeyDiagram-TZEHDZUN-9M4Rn44L.js → sankeyDiagram-TZEHDZUN-U0rb6LX8.js} +1 -3
- package/dist/server/assets/{sequenceDiagram-WL72ISMW-DXMFuhl3.js → sequenceDiagram-WL72ISMW-BV5_vSVf.js} +3 -3
- package/dist/server/assets/{square-terminal-CfM5f-d7.js → square-terminal-DdT3sDE4.js} +1 -1
- package/dist/server/assets/{stateDiagram-FKZM4ZOC-CY6AEWa2.js → stateDiagram-FKZM4ZOC-C3wAlRbY.js} +8 -8
- package/dist/server/assets/{stateDiagram-v2-4FDKWEC3-BNKDdzaI.js → stateDiagram-v2-4FDKWEC3-BvzsTmR_.js} +4 -4
- package/dist/server/assets/{timeline-definition-IT6M3QCI-D_io-Tfq.js → timeline-definition-IT6M3QCI-BwVTrWyj.js} +2 -2
- package/dist/server/assets/{treemap-GDKQZRPO-p84SlzEZ.js → treemap-GDKQZRPO-Bohb153V.js} +6 -6
- package/dist/server/assets/{workspace._workspaceId-CJcudFN3.js → workspace._workspaceId-BWs5oKO5.js} +16 -14
- package/dist/server/assets/{workspace._workspaceId-BnLo-dj-.js → workspace._workspaceId-DkyiAy0e.js} +1 -1
- package/dist/server/assets/{xychartDiagram-PRI3JC2R-Y3f7rM8c.js → xychartDiagram-PRI3JC2R-XlYGoU4Z.js} +9 -71
- package/dist/server/server.js +17 -14
- package/dist/start-server.mjs +33664 -29191
- package/package.json +6 -4
- package/dist/client/assets/DockviewBrowserContainer-DjUjHPic.js +0 -5
- package/dist/client/assets/DockviewTerminalContainer-Ms5Ihp7N.js +0 -2
- package/dist/client/assets/TerminalPanel-DFA3TNjT.js +0 -5
- package/dist/client/assets/_basePickBy-arnwX_WB.js +0 -1
- package/dist/client/assets/arc-CQ9imgVi.js +0 -1
- package/dist/client/assets/channel-DufC8eM3.js +0 -1
- package/dist/client/assets/chunk-QN33PNHL-CPGopyck.js +0 -1
- package/dist/client/assets/classDiagram-2ON5EDUG-6OTp0Ijn.js +0 -1
- package/dist/client/assets/classDiagram-v2-WZHVMYZB-6OTp0Ijn.js +0 -1
- package/dist/client/assets/clone-BnAVnjoT.js +0 -1
- package/dist/client/assets/dagre-6UL2VRFP-CjtHExws.js +0 -4
- package/dist/client/assets/defaultLocale-DX6XiGOO.js +0 -1
- package/dist/client/assets/diagram-PSM6KHXK-D63FxUPX.js +0 -24
- package/dist/client/assets/diagram-S2PKOQOG-BNgqexx6.js +0 -24
- package/dist/client/assets/ganttDiagram-JELNMOA3-BFJUVCan.js +0 -267
- package/dist/client/assets/infoDiagram-HS3SLOUP-CNf_MNW6.js +0 -2
- package/dist/client/assets/init-Gi6I4Gst.js +0 -1
- package/dist/client/assets/linear-hC1V8gzM.js +0 -1
- package/dist/client/assets/main-evBJruhw.css +0 -1
- package/dist/client/assets/ordinal-Cboi1Yqb.js +0 -1
- package/dist/client/assets/pieDiagram-ADFJNKIX-BMZI-9Ki.js +0 -30
- package/dist/client/assets/sankeyDiagram-TZEHDZUN-BslS_Swn.js +0 -10
- package/dist/client/assets/stateDiagram-FKZM4ZOC-D_5xUVRu.js +0 -1
- package/dist/client/assets/stateDiagram-v2-4FDKWEC3-DDClSQGJ.js +0 -1
- package/dist/client/assets/workspace._workspaceId-DCDakxld.js +0 -2
- package/dist/client/assets/xychartDiagram-PRI3JC2R-TNRUAqXa.js +0 -7
- package/dist/server/assets/_tanstack-start-manifest_v-DxI647M-.js +0 -4
- package/dist/server/assets/defaultLocale-B2RvLBDe.js +0 -206
- package/dist/server/assets/init-ZxktEp_H.js +0 -16
- package/dist/server/assets/linear-DhOj0qpX.js +0 -340
- package/dist/server/assets/ordinal-CxptdPJm.js +0 -76
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@band-app/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"band-server": "./bin/band-server.mjs"
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"@vscode/ripgrep": "^1.18.0",
|
|
25
25
|
"@xterm/addon-search": "^0.16.0",
|
|
26
26
|
"@xterm/addon-webgl": "0.20.0-beta.215",
|
|
27
|
+
"fzf": "0.5.2",
|
|
27
28
|
"node-pty": "^1.1.0",
|
|
28
29
|
"prettier": "^3.8.3",
|
|
29
30
|
"react-resizable-panels": "^4.9.0",
|
|
@@ -100,6 +101,7 @@
|
|
|
100
101
|
"radix-ui": "^1.4.3",
|
|
101
102
|
"react": "^19.0.0",
|
|
102
103
|
"react-dom": "^19.0.0",
|
|
104
|
+
"recharts": "^3.8.1",
|
|
103
105
|
"remark-breaks": "^4.0.0",
|
|
104
106
|
"sirv": "^3.0.0",
|
|
105
107
|
"streamdown": "^2.3.0",
|
|
@@ -114,9 +116,9 @@
|
|
|
114
116
|
"ws": "^8.18.0",
|
|
115
117
|
"zod": "^3.25.67",
|
|
116
118
|
"zustand": "^5.0.0",
|
|
117
|
-
"@band-app/
|
|
118
|
-
"@band-app/
|
|
119
|
-
"@band-app/
|
|
119
|
+
"@band-app/logger": "^0.19.1",
|
|
120
|
+
"@band-app/coding-agent": "^0.19.1",
|
|
121
|
+
"@band-app/ui": "^0.19.1"
|
|
120
122
|
},
|
|
121
123
|
"scripts": {
|
|
122
124
|
"dev": "NODE_ENV=development tsx watch start-server.ts",
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{F as he,r,bP as B,ch as L,ci as M,cj as De,o as F,ck as Pe,cl as Te,j as a,cm as ae,cb as Ae,cn as Ee,co as Ie,cp as Be,cq as Fe,cr as qe,cs as Ue,ct as Le,cu as Me,cv as ze,cw as V,cx as Oe,bV as Ke,c4 as $e,X as be,cy as Ge,u as He,m as Ve,n as Qe,p as We,q as Je,v as Xe,w as Ye,x as Ze,B as ce,E as ie,y as et,C as tt,z as rt,A as nt}from"./main-BMyWFWYN.js";const st=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M12 7v5l4 2",key:"1fdv2h"}]],ot=he("history",st);const at=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],ct=he("wrench",at);function it(e,o){if(!o||o.size===0||typeof e!="object"||e===null)return e;const n=e.panels;if(typeof n!="object"||n===null)return e;let u=!1;const d={};for(const[i,w]of Object.entries(n)){const g=o.get(i);if(g&&typeof w=="object"&&w!==null&&typeof w.params=="object"&&w.params!==null){const h=w.params;if(!h.initialUrl){d[i]={...w,params:{...h,initialUrl:g}},u=!0;continue}}d[i]=w}return u?{...e,panels:d}:e}const lt={caseSensitive:!1,wholeWord:!1,regex:!1};function ut({key:e,keyName:o}){const[n,u]=r.useState(!1),[d,i]=r.useState(""),[w,g]=r.useState(lt),[h,C]=r.useState(null),_=r.useRef(null),k=r.useRef(e);k.current=e;const I=r.useRef(null),y=r.useCallback(S=>o==="browserId"?S.browser_id:S.workspace_id,[o]),R=r.useCallback((S={})=>({[o]:k.current,...S}),[o]),T=r.useCallback(()=>{requestAnimationFrame(()=>{_.current?.focus(),_.current?.select()})},[]),j=r.useCallback(async(S,t={})=>{if(B){if(!S){C(null),I.current=null;try{await L("browser_stop_find_in_page",R({action:"clearSelection"}))}catch{}return}(t.findNext??!1)||(C(null),I.current=null);try{const c=await L("browser_find_in_page",R({text:S,options:{matchCase:w.caseSensitive,findNext:t.findNext??!1,forward:t.forward??!0}}));typeof c=="number"&&(I.current=c)}catch(c){console.error("browser_find_in_page failed:",c)}}},[R,w.caseSensitive]),E=r.useCallback(()=>{u(!1),i(""),C(null),I.current=null,B&&L("browser_stop_find_in_page",R({action:"clearSelection"})).catch(()=>{})},[R]),v=r.useCallback(()=>{u(!0),T()},[T]);r.useEffect(()=>{n&&j(d)},[d,n,j]),r.useEffect(()=>{if(!B)return;let S;return(async()=>S=await M("browser-found-in-page",t=>{y(t.payload)===k.current&&(I.current!==null&&t.payload.request_id!==I.current||C({total:t.payload.matches,current:t.payload.active_match_ordinal}))}))(),()=>S?.()},[y]),r.useEffect(()=>{if(!B)return;let S;return(async()=>S=await M("browser-find-shortcut",t=>{y(t.payload)===k.current&&(u(!0),T())}))(),()=>S?.()},[T,y]),r.useEffect(()=>{if(!B)return;let S;return(async()=>S=await M("browser-url-changed",t=>{y(t.payload)===k.current&&t.payload.loading&&E()}))(),()=>S?.()},[E,y]);const N=r.useCallback(()=>{d&&j(d,{findNext:!0,forward:!0})},[d,j]),z=r.useCallback(()=>{d&&j(d,{findNext:!0,forward:!1})},[d,j]);return{isOpen:n,open:v,close:E,query:d,setQuery:i,options:w,setOptions:g,matchInfo:h,findNext:N,findPrevious:z,searchBarRef:_}}const dt=50,ft=100;function pt(e){const{key:o,keyName:n,workspaceId:u,currentUrlRef:d,setInputUrl:i,inputUrl:w,onNavigate:g}=e,h=ut({key:o,keyName:n}),C=r.useRef(!1),[_,k]=r.useState([]),[I,y]=r.useState(!1),[R,T]=r.useState(0);De(I);const j=r.useCallback(()=>{y(!1),k([]),T(0)},[]);r.useEffect(()=>{if(!C.current)return;const t=w.trim();if(t===""){j();return}if(t===d.current.trim()){j();return}let c=!1;const p=setTimeout(()=>{F.history.search.query({workspaceId:u,query:t,limit:8}).then(l=>{if(!c){if(l.entries.length===0){j();return}k(l.entries),y(!0),T(0)}}).catch(()=>{c||j()})},dt);return()=>{c=!0,clearTimeout(p)}},[w,u,j,d]);const E=r.useCallback(t=>{C.current=!0,t.target.select()},[]),v=r.useCallback(()=>{C.current=!1,i(d.current),setTimeout(()=>{C.current||j()},ft)},[d,i,j]),N=r.useCallback(t=>{if(I){if(t.key==="ArrowDown"){t.preventDefault(),T(c=>Math.min(c+1,_.length-1));return}if(t.key==="ArrowUp"){t.preventDefault(),T(c=>Math.max(c-1,0));return}if(t.key==="Enter"){const c=_[R];if(c){t.preventDefault(),j(),g(c.url);return}}if(t.key==="Escape"){t.preventDefault(),j();return}}if(t.key==="Enter"){t.preventDefault(),j(),g(w);return}if(t.key==="Escape"){t.preventDefault(),i(d.current);const c=t.currentTarget;requestAnimationFrame(()=>{c.isConnected&&c.select()})}},[w,g,i,d,I,_,R,j]),z=r.useCallback(t=>{t.key.toLowerCase()!=="f"||t.shiftKey||t.altKey||!(/mac/i.test(navigator.userAgent)?t.metaKey&&!t.ctrlKey:t.ctrlKey&&!t.metaKey)||(t.preventDefault(),t.stopPropagation(),h.open())},[h]),S=r.useCallback(async()=>{if(B)try{await L("browser_toggle_dev_tools",{[n]:o})}catch(t){console.error("browser_toggle_dev_tools failed:",t)}},[o,n]);return{find:h,addressInputFocusedRef:C,handleAddressFocus:E,handleAddressBlur:v,handleAddressKeyDown:N,handlePaneKeyDown:z,handleToggleDevTools:S,autocomplete:{isOpen:I,items:_,selectedIndex:R,close:j,setSelectedIndex:T},paneDataAttrs:{"data-band-browser-pane":"","data-band-browser-pane-key":o,"data-band-browser-pane-keyname":n}}}function le(){return new Promise(e=>{requestAnimationFrame(()=>requestAnimationFrame(()=>e()))})}function ht(e){const{created:o,visible:n,ipcKeyRef:u}=e,d=Pe(),[i,w]=r.useState(null),g=r.useRef(!1);return r.useEffect(()=>{if(!B||!o)return;let h=!1;if(d){if(!n)return;const C=u.current;(async()=>{try{const _=await L("browser_capture_page",C);!h&&_&&(Te.flushSync(()=>w(_)),await le())}catch{}h||(g.current=!0,L("browser_pause_media",C).catch(()=>{}),L("browser_hide",C).catch(()=>{}))})()}else if(g.current){g.current=!1;const C=u.current;L("browser_show",C).catch(()=>{}),L("browser_resume_media",C).catch(()=>{}),(async()=>(await le(),h||w(null)))()}else w(null);return()=>{h=!0}},[d,o,n,u]),{snapshot:i}}let G=new Set;const ee=new Set;let X=!1;function bt(e){const o=e(G);if(o!==G){G=o;for(const n of ee)n()}}function ue(e){const o=e.toLowerCase();!o||G.has(o)||bt(n=>{const u=new Set(n);return u.add(o),u})}function mt(){X||B&&(X=!0,M("browser-host-overridden",e=>{e.payload.host&&ue(e.payload.host)}).catch(e=>{console.error("browser-host-overridden listen failed:",e),X=!1}),L("browser_get_overridden_hosts").then(e=>{if(Array.isArray(e))for(const o of e)ue(o)}).catch(e=>{console.error("browser_get_overridden_hosts failed:",e)}))}function wt(e){return mt(),ee.add(e),()=>{ee.delete(e)}}function de(){return G}function yt(){const e=r.useSyncExternalStore(wt,de,de);return{isOverriddenHost:r.useCallback(n=>{if(!n)return!1;let u;try{u=new URL(n).hostname.toLowerCase()}catch{return!1}return e.has(u)},[e])}}function gt({state:e,onSelect:o}){return!e.isOpen||e.items.length===0?null:a.jsx("div",{className:"absolute top-full left-0 right-0 z-20 mx-2 mt-1 overflow-hidden rounded-md border border-border bg-popover shadow-md",onMouseDown:n=>{n.preventDefault()},children:a.jsx("ul",{className:"max-h-80 overflow-y-auto py-1",children:e.items.map((n,u)=>{const d=u===e.selectedIndex;return a.jsx("li",{children:a.jsxs("button",{type:"button",onMouseDown:i=>{i.preventDefault(),o(n.url),e.close()},onMouseEnter:()=>e.setSelectedIndex(u),className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors ${d?"bg-accent text-foreground":"text-foreground hover:bg-accent/60"}`,children:[n.faviconUrl?a.jsx("img",{src:n.faviconUrl,alt:"",className:"size-4 shrink-0 rounded-sm",onError:i=>{i.currentTarget.style.display="none"}}):a.jsx(ae,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsxs("div",{className:"flex min-w-0 flex-1 flex-col",children:[n.title?a.jsx("span",{className:"truncate font-medium leading-tight",children:n.title}):null,a.jsx("span",{className:`truncate text-xs leading-tight ${n.title?"text-muted-foreground":"text-foreground"}`,children:n.url})]})]})},n.id)})})})}function xt({find:e}){return e.isOpen?a.jsx(Ae,{ref:e.searchBarRef,query:e.query,onQueryChange:e.setQuery,options:e.options,onOptionsChange:e.setOptions,placeholder:"Find in page",matchInfo:e.matchInfo??void 0,onNext:e.findNext,onPrevious:e.findPrevious,onClose:e.close,visibleOptions:["caseSensitive"]}):null}const vt=150,jt=200;function Ct(e){const o=new Map,n=[];for(const u of e){const d=te(u.lastVisitedAt);let i=o.get(d);i||(i={label:Nt(d),entries:[]},o.set(d,i),n.push(d)),i.entries.push(u)}return n.map(u=>o.get(u))}function te(e){const o=new Date(e),n=o.getFullYear(),u=String(o.getMonth()+1).padStart(2,"0"),d=String(o.getDate()).padStart(2,"0");return`${n}-${u}-${d}`}function Nt(e){const o=new Date,n=te(o.getTime()),u=new Date(o.getFullYear(),o.getMonth(),o.getDate()-1),d=te(u.getTime());if(e===n)return"Today";if(e===d)return"Yesterday";const[i,w,g]=e.split("-").map(Number),h=new Date(i,w-1,g);return Math.floor((Date.now()-h.getTime())/(1440*60*1e3))<=7?h.toLocaleDateString(void 0,{weekday:"long",month:"short",day:"numeric"}):h.toLocaleDateString(void 0,{year:"numeric",month:"short",day:"numeric"})}function _t(e){return new Date(e).toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"})}function St({workspaceId:e,onNavigate:o}){const n=r.useId(),[u,d]=r.useState(!1),[i,w]=r.useState(""),[g,h]=r.useState([]),[C,_]=r.useState(!1),[k,I]=r.useState(0),y=r.useCallback(()=>{I(v=>v+1)},[]);r.useEffect(()=>{if(!u)return;let v=!1;_(!0);const N=i.trim(),t=setTimeout(()=>{(N?F.history.search.query({workspaceId:e,query:N,limit:50}):F.history.list.query({workspaceId:e,limit:jt})).then(p=>{v||h(p.entries)}).catch(()=>{v||h([])}).finally(()=>{v||_(!1)})},N?vt:0);return()=>{v=!0,clearTimeout(t)}},[u,i,e,k]);const R=r.useMemo(()=>Ct(g),[g]),T=r.useCallback(v=>{o(v),d(!1)},[o]),j=r.useCallback(async v=>{await F.history.delete.mutate({id:v,workspaceId:e}).catch(()=>{}),y()},[y,e]),E=r.useCallback(async v=>{await F.history.clear.mutate({workspaceId:e,range:v}).catch(()=>{}),y()},[y,e]);return a.jsxs(Ee,{open:u,onOpenChange:d,children:[a.jsx(Ie,{asChild:!0,children:a.jsx("button",{type:"button",className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"History","aria-label":"Browser history",children:a.jsx(ot,{className:"size-4"})})}),a.jsxs(Be,{align:"end",sideOffset:6,className:"w-[440px] p-0",onOpenAutoFocus:v=>{v.preventDefault();const N=document.getElementById(n);N&&N.focus()},children:[a.jsxs("div",{className:"flex items-center gap-2 border-b border-border px-3 py-2",children:[a.jsx(Fe,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsx("input",{id:n,type:"text",value:i,onChange:v=>w(v.target.value),placeholder:"Search history",className:"min-w-0 flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"})]}),a.jsx("div",{className:"max-h-[420px] overflow-y-auto",children:C&&g.length===0?a.jsx("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:"Loading…"}):R.length===0?a.jsx("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:i?"No matching history":"No history yet"}):R.map(v=>a.jsxs("div",{children:[a.jsx("div",{className:"sticky top-0 z-10 border-b border-border bg-popover px-3 py-1 text-xs font-medium text-muted-foreground",children:v.label}),a.jsx("ul",{children:v.entries.map(N=>a.jsxs("li",{className:"group relative flex min-w-0 items-center gap-2 py-1.5 pl-3 pr-2 hover:bg-accent/60",children:[N.faviconUrl?a.jsx("img",{src:N.faviconUrl,alt:"",className:"size-4 shrink-0 rounded-sm",onError:z=>{z.currentTarget.style.display="none"}}):a.jsx(ae,{className:"size-4 shrink-0 text-muted-foreground"}),a.jsxs("button",{type:"button",onClick:()=>T(N.url),className:"flex min-w-0 flex-1 flex-col items-stretch gap-0.5 overflow-hidden pr-6 text-left",children:[a.jsx("span",{className:"block truncate text-sm font-medium leading-tight text-foreground",children:N.title||N.url}),a.jsxs("span",{className:"flex min-w-0 items-baseline gap-2 leading-tight",children:[a.jsx("span",{className:"min-w-0 flex-1 truncate text-xs text-muted-foreground",children:N.url}),a.jsx("span",{className:"shrink-0 text-[11px] text-muted-foreground tabular-nums",children:_t(N.lastVisitedAt)})]})]}),a.jsx("button",{type:"button",onClick:()=>j(N.id),className:"absolute right-2 top-1/2 -translate-y-1/2 rounded p-0.5 text-muted-foreground opacity-0 transition-opacity hover:bg-destructive/10 hover:text-destructive group-hover:opacity-100",title:"Delete entry","aria-label":"Delete entry",children:a.jsx(qe,{className:"size-3.5"})})]},N.id))})]},v.label))}),a.jsx("div",{className:"flex items-center justify-end border-t border-border px-3 py-2",children:a.jsxs(Ue,{children:[a.jsx(Le,{asChild:!0,children:a.jsxs("button",{type:"button",className:"flex items-center gap-1 rounded px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",children:["Clear ",a.jsx(Me,{className:"size-3"})]})}),a.jsxs(ze,{align:"end",children:[a.jsx(V,{onSelect:()=>E("hour"),children:"Last hour"}),a.jsx(V,{onSelect:()=>E("day"),children:"Last 24 hours"}),a.jsx(V,{onSelect:()=>E("week"),children:"Last week"}),a.jsx(V,{onSelect:()=>E("all"),children:"All time"})]})]})})]})]})}function kt(){return a.jsxs("span",{className:"inline-flex shrink-0 items-center gap-1 rounded bg-destructive/10 px-1.5 py-0.5 text-[10px] font-medium uppercase tracking-wide text-destructive",title:"The certificate for this site was overridden for the current session. Use with caution.","data-testid":"cert-not-secure-badge",children:[a.jsx(Oe,{className:"size-3","aria-hidden":!0}),"Not secure"]})}const fe="",$="about:blank",re=new Map,ne=new Set;function Rt(e,o){if(re.get(e)!==o){re.set(e,o);for(const n of ne)n()}}function Dt(e){return ne.add(e),()=>{ne.delete(e)}}function Pt(e){return r.useSyncExternalStore(Dt,()=>re.get(e))}function Tt({params:e,api:o}){const{browserId:n,initialUrl:u,workspaceId:d}=e,[i,w]=r.useState(()=>u??fe),[g,h]=r.useState(()=>u??fe),[C,_]=r.useState(!1),[k,I]=r.useState(!1),y=r.useRef(!1),R=r.useRef(null),T=r.useRef(!1),j=r.useRef(null),E=r.useRef(n);E.current=n;const v=r.useRef(i);v.current=i;const[N,z]=r.useState(d??""),S=r.useRef(N);S.current=N;const t=r.useRef({browserId:n});t.current={browserId:n};const{snapshot:c}=ht({created:k,visible:o.isVisible&&e.wsActive!==!1,ipcKeyRef:t}),{isOverriddenHost:p}=yt(),l=r.useCallback(()=>{const x=R.current;if(!x)return null;const b=x.getBoundingClientRect();return{x:b.left+1,y:b.top,width:Math.max(0,b.width-2),height:b.height}},[]),s=r.useCallback(async(x,b)=>{if(B)return L(x,b)},[]);r.useEffect(()=>{if(!n||u)return;let x=!1;return F.browsers.get.query({browserId:n}).then(b=>{if(x)return;const m=b.browser?.workspaceId;m&&!S.current&&z(m);const P=b.browser?.url;!P||P===""||P===$||(w(P),h(P),y.current?s("browser_navigate",{browserId:n,url:P}).catch(()=>{}):j.current=P)}).catch(()=>{}),()=>{x=!0}},[n,u,s]),r.useEffect(()=>{if(!B||k||T.current)return;const x=R.current;if(!x)return;let b=!1;const m=async()=>{if(b||y.current||T.current)return;const K=l();if(!(!K||K.width===0||K.height===0)){P.disconnect(),T.current=!0;try{await s("browser_create",{browserId:n,...K,url:v.current||$}),y.current=!0,I(!0);const H=j.current;H&&(j.current=null,await s("browser_navigate",{browserId:E.current,url:H}))}catch(H){console.error("Failed to create browser webview:",H)}finally{T.current=!1}}},P=new ResizeObserver(()=>{m()});P.observe(x);const U=setTimeout(m,50);return()=>{b=!0,clearTimeout(U),P.disconnect()}},[k,l,s,n]);const f=r.useRef(null);r.useEffect(()=>{if(!B)return;let x,b;return(async()=>(x=await M("browser-url-changed",m=>{if(m.payload.browser_id!==E.current)return;const P=m.payload.url;if(_(m.payload.loading),P===$)return;w(P),ve.current||h(P),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{F.browsers.navigate.mutate({browserId:E.current,url:P}).catch(()=>{})},500);let U;try{U=`${new URL(P).origin}/favicon.ico`,Rt(E.current,U)}catch{}!m.payload.loading&&S.current&&F.history.record.mutate({workspaceId:S.current,url:P,faviconUrl:U}).catch(()=>{})}),b=await M("browser-title-changed",m=>{if(m.payload.browser_id===E.current&&m.payload.title){o.setTitle(m.payload.title);const P=v.current;P&&P!==$&&S.current&&F.history.updateMeta.mutate({workspaceId:S.current,url:P,title:m.payload.title}).catch(()=>{})}})))(),()=>{if(x?.(),b?.(),f.current){clearTimeout(f.current),f.current=null;const m=v.current;m&&m!==$&&F.browsers.navigate.mutate({browserId:E.current,url:m}).catch(()=>{})}}},[o]),r.useEffect(()=>{if(!B||!k)return;const x=U=>K=>console.error(`[BrowserPane] ${U} failed`,K),b=()=>{const U=l();U&&U.width>0&&U.height>0&&s("browser_set_bounds",{browserId:n,...U}).catch(x("browser_set_bounds")),s("browser_show",{browserId:n}).catch(x("browser_show"))},m=()=>{s("browser_hide",{browserId:n}).catch(x("browser_hide"))},P=o.onDidVisibilityChange(U=>{U.isVisible?b():m()});return()=>{P.dispose()}},[o,k,l,s,n]),r.useEffect(()=>{if(!B||!k)return;const x=e.wsActive!==!1,b=m=>P=>console.error(`[BrowserPane] ${m} failed`,P);if(!x)s("browser_hide",{browserId:n}).catch(b("browser_hide"));else if(o.isVisible){const m=l();m&&m.width>0&&m.height>0&&s("browser_set_bounds",{browserId:n,...m}).catch(b("browser_set_bounds")),s("browser_show",{browserId:n}).catch(b("browser_show"))}},[e.wsActive,o,k,l,s,n]),r.useEffect(()=>{if(!B||!k)return;const x=R.current;if(!x)return;const b=new ResizeObserver(()=>{const m=l();!m||m.width===0||m.height===0||s("browser_set_bounds",{browserId:n,...m}).catch(()=>{})});return b.observe(x),()=>b.disconnect()},[k,l,s,n]),r.useEffect(()=>()=>{if(B){const x=E.current;L("browser_destroy",{browserId:x}).catch(()=>{})}},[]);const A=r.useCallback(async x=>{let b=x.trim();if(!b){if(w(""),h(""),_(!1),y.current)try{await s("browser_navigate",{browserId:n,url:$})}catch(m){console.error("browser_navigate failed:",m)}else j.current=$;return}if(!b.startsWith("http://")&&!b.startsWith("https://")&&(b.includes(".")&&!b.includes(" ")?b=`https://${b}`:b=`https://www.google.com/search?q=${encodeURIComponent(b)}`),w(b),h(b),_(!0),y.current)try{await s("browser_navigate",{browserId:n,url:b})}catch(m){console.error("browser_navigate failed:",m)}else j.current=b},[s,n]),D=r.useCallback(async()=>{try{await s("browser_go_back",{browserId:n})}catch(x){console.error("browser_go_back failed:",x)}},[s,n]),q=r.useCallback(async()=>{try{await s("browser_go_forward",{browserId:n})}catch(x){console.error("browser_go_forward failed:",x)}},[s,n]),O=r.useCallback(async()=>{try{_(!0),await s("browser_reload",{browserId:n})}catch(x){console.error("browser_reload failed:",x)}},[s,n]),J=r.useCallback(async()=>{try{await s("browser_eval",{browserId:n,js:"window.stop()"}),_(!1)}catch{_(!1)}},[s,n]),{find:xe,addressInputFocusedRef:ve,handleAddressFocus:je,handleAddressBlur:Ce,handleAddressKeyDown:Ne,handlePaneKeyDown:_e,handleToggleDevTools:Se,autocomplete:ke,paneDataAttrs:Re}=pt({key:n,keyName:"browserId",workspaceId:N,currentUrlRef:v,setInputUrl:h,inputUrl:g,onNavigate:A});return n?B?a.jsxs("div",{className:"flex h-full w-full flex-col",onKeyDown:_e,...Re,children:[a.jsx("style",{children:`@keyframes browser-bar-slide {
|
|
2
|
-
0% { transform: translateX(-100%); }
|
|
3
|
-
50% { transform: translateX(200%); }
|
|
4
|
-
100% { transform: translateX(-100%); }
|
|
5
|
-
}`}),a.jsxs("div",{className:"relative flex h-10 shrink-0 items-center gap-1 border-b border-border bg-background px-2",children:[a.jsx("button",{type:"button",onClick:D,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Back",children:a.jsx(Ke,{className:"size-4"})}),a.jsx("button",{type:"button",onClick:q,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Forward",children:a.jsx($e,{className:"size-4"})}),C?a.jsx("button",{type:"button",onClick:J,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Stop",children:a.jsx(be,{className:"size-4"})}):a.jsx("button",{type:"button",onClick:O,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Reload",children:a.jsx(Ge,{className:"size-4"})}),p(i)?a.jsx(kt,{}):null,a.jsx("input",{type:"text",value:g,onChange:x=>h(x.target.value),onKeyDown:Ne,onFocus:je,onBlur:Ce,className:"min-w-0 flex-1 rounded border border-transparent bg-muted/50 px-3 py-1.5 text-sm text-foreground outline-none transition-colors focus:border-border",placeholder:"Enter URL or search...","data-band-address-input":""}),N?a.jsx(St,{workspaceId:N,onNavigate:A}):null,a.jsx("button",{type:"button",onClick:Se,className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-accent hover:text-foreground",title:"Toggle DevTools",children:a.jsx(ct,{className:"size-4"})}),C&&a.jsx("div",{className:"absolute inset-x-0 bottom-0 h-0.5 overflow-hidden bg-blue-500/10",children:a.jsx("div",{className:"h-full w-2/5 rounded-full bg-blue-500",style:{animation:"browser-bar-slide 1.4s ease-in-out infinite"}})}),a.jsx(gt,{state:ke,onSelect:A})]}),a.jsx(xt,{find:xe}),a.jsx("div",{ref:R,className:"relative min-h-0 flex-1",children:c?a.jsx("img",{src:c,alt:"",className:"pointer-events-none absolute inset-0 size-full object-contain object-top",draggable:!1}):null})]}):a.jsx("div",{className:"flex h-full items-center justify-center text-muted-foreground",children:"Browser panel is only available in the desktop app"}):null}const me=new Set;function pe(e){me.add(e)}function zt(e){return me.delete(e)}function At(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const o=Array.from(e,n=>n.toString(16).padStart(2,"0")).join("");return`${o.slice(0,8)}-${o.slice(8,12)}-${o.slice(12,16)}-${o.slice(16,20)}-${o.slice(20)}`}function se(){return`browser_${At()}`}function oe(e){return["browserLayout",e]}const Y=new Map;function Et(e){if(typeof e=="object"&&e!==null){const o=e.panels;if(typeof o=="object"&&o!==null)return new Set(Object.keys(o))}return new Set}function Z(e,o,n){if(n?.queryClient){const d=n.queryClient.getQueryData(oe(e));n.queryClient.setQueryData(oe(e),{layout:o,browserIds:Et(o),urls:d?.urls??new Map})}const u=Y.get(e);u&&clearTimeout(u),Y.set(e,setTimeout(()=>{Y.delete(e),F.browserLayout.save.mutate({workspaceId:e,tree:o}).catch(d=>{console.error("[DockviewBrowserContainer] failed to persist layout:",d)})},500))}function It(e){if(typeof e!="object"||e===null)return!1;const o=e;return typeof o.grid=="object"&&typeof o.panels=="object"}const Bt={name:"band",className:"dockview-theme-band dockview-browser-tabs"},we=r.createContext({visible:!0,wsActive:!0});function Ft({params:e,api:o}){const{visible:n}=r.useContext(we);if(!e.workspaceId||!e.browserId)return null;const u={workspaceId:e.workspaceId,browserId:e.browserId,wsActive:n,initialUrl:e.initialUrl};return a.jsx("div",{className:"flex h-full w-full flex-col overflow-hidden",children:a.jsx(Tt,{params:u,api:o})})}function ye(e){const[o,n]=r.useState(e.api.title??"New Tab"),[u,d]=r.useState(e.containerApi.panels.length),[i,w]=r.useState(!1),g=e.params.browserId,h=Pt(g),C=r.useRef(h);h!==C.current&&(C.current=h,i&&w(!1)),r.useEffect(()=>{const y=e.api.onDidTitleChange(()=>n(e.api.title??"New Tab"));return()=>y.dispose()},[e.api]),r.useEffect(()=>{const y=e.containerApi,R=()=>d(y.panels.length),T=y.onDidAddPanel(R),j=y.onDidRemovePanel(R);return()=>{T.dispose(),j.dispose()}},[e.containerApi]);const _=r.useCallback(y=>{y.stopPropagation(),ge.current?.(g)},[g]),k=u>1,I=h&&!i;return a.jsxs("div",{className:"dv-default-tab",children:[a.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[I?a.jsx("img",{src:h,alt:"",className:"size-3.5 shrink-0",onError:()=>w(!0)}):a.jsx(ae,{className:"size-3.5 shrink-0 text-muted-foreground"}),a.jsx("span",{className:"truncate",children:o})]}),k&&a.jsx("button",{type:"button",className:"ml-1 inline-flex size-4 items-center justify-center rounded-sm opacity-60 hover:opacity-100 hover:bg-accent transition-colors",onClick:_,title:"Close tab",children:a.jsx(be,{className:"size-3"})})]})}const W={current:{onAdd:()=>{},onSplit:()=>{}}},ge={current:null},qt=et.memo(function(o){const n=(o.location?.type??"grid")==="grid",u=o.group.id;return a.jsxs("div",{className:"flex h-full w-full items-center justify-center",children:[n&&a.jsxs(a.Fragment,{children:[a.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>W.current.onSplit(u,"right"),title:"Split right",children:a.jsx(tt,{className:"size-3.5"})}),a.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>W.current.onSplit(u,"below"),title:"Split down",children:a.jsx(rt,{className:"size-3.5"})})]}),a.jsx("button",{type:"button",className:"inline-flex size-8 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>W.current.onAdd(u),title:"New browser tab",children:a.jsx(nt,{className:"size-4"})})]})}),Ut={browserTab:Ft},Lt={browserTab:ye};function Ot({workspaceId:e,visible:o,wsActive:n}){const u=He(),d=Ve(),i=r.useRef(null),w=r.useRef(!1),g=r.useRef(null),h=r.useRef(null),C=r.useRef(null),{data:_}=Qe({queryKey:oe(e),queryFn:async()=>{const[{tree:t},{browsers:c}]=await Promise.all([F.browserLayout.get.query({workspaceId:e}).catch(()=>({tree:null})),F.browsers.list.query({workspaceId:e}).catch(()=>({browsers:[]}))]),p=new Map;for(const l of c)l.url&&l.url!=="about:blank"&&p.set(l.id,l.url);return{layout:t,browserIds:new Set(c.map(l=>l.id)),urls:p}},staleTime:Number.POSITIVE_INFINITY}),k=r.useRef(d);k.current=d;const I=r.useCallback(()=>{if(w.current)return;const t=i.current;t&&Z(e,t.toJSON(),{queryClient:k.current})},[e]),y=r.useCallback(async(t,c)=>{const p=i.current;if(!p)return;const l=se();pe(l);const s=c?.initialUrl,f={id:l,component:"browserTab",tabComponent:"browserTab",title:"New Tab",params:{workspaceId:e,browserId:l,...s?{initialUrl:s}:{}}};t&&(f.position={referenceGroup:t}),p.addPanel(f);try{await F.browsers.create.mutate({workspaceId:e,id:l,...s?{url:s}:{}})}catch(A){console.error("[DockviewBrowserContainer] error pre-creating browser:",A)}},[e]),R=r.useCallback(async(t,c)=>{const p=i.current;if(!p)return;const l=se();pe(l);try{p.addPanel({id:l,component:"browserTab",tabComponent:"browserTab",title:"New Tab",params:{workspaceId:e,browserId:l},position:{referenceGroup:t,direction:c}})}catch(s){console.error("[DockviewBrowserContainer] split addPanel threw:",s);return}try{await F.browsers.create.mutate({workspaceId:e,id:l})}catch(s){console.error("[DockviewBrowserContainer] error creating split browser:",s)}},[e]),T=r.useCallback(t=>{const c=i.current;if(!c||c.panels.length<=1)return;We(c,t);const p=c.getPanel(t);p&&c.removePanel(p),requestAnimationFrame(()=>{const l=c.activePanel;l&&l.view.content.element.querySelector("[data-band-address-input]")?.focus()}),F.browsers.remove.mutate({browserId:t}).catch(l=>{console.error("[DockviewBrowserContainer] failed to remove browser:",l)})},[]);r.useEffect(()=>{if(!o)return;const t=()=>{const s=i.current?.activePanel;s&&s.view.content.element.querySelector("[data-band-address-input]")?.focus()},c=s=>{ce(i.current,s,()=>{requestAnimationFrame(t)})},p=s=>{ie(i.current,s,()=>{requestAnimationFrame(t)})},l=s=>{if(!g.current?.contains(document.activeElement))return;const f=s.key.toLowerCase();if(s.ctrlKey&&!s.metaKey&&f==="tab"){s.preventDefault(),s.stopPropagation(),c(s.shiftKey?-1:1);return}if(s.metaKey||s.ctrlKey){if(s.shiftKey&&(f==="["||f==="]")){s.preventDefault(),s.stopPropagation(),c(f==="]"?1:-1);return}if(!s.shiftKey&&(f==="["||f==="]")){s.preventDefault(),s.stopPropagation(),p(f==="]"?1:-1);return}if(f==="t"&&!s.shiftKey)s.preventDefault(),s.stopPropagation(),y().then(()=>{requestAnimationFrame(()=>{const D=i.current?.activePanel;D&&D.view.content.element.querySelector("[data-band-address-input]")?.focus()})});else if(f==="w"&&!s.shiftKey){const D=i.current;if(!D||D.panels.length<=1)return;s.preventDefault(),s.stopPropagation();const q=D.activePanel;q&&T(q.id)}else if(f==="d"){s.preventDefault(),s.stopPropagation();const D=i.current;if(!D)return;const q=D.activeGroup;if(!q)return;const O=s.shiftKey?"below":"right";R(q.id,O)}else if(f==="r"&&!s.shiftKey&&B){const D=i.current;if(!D)return;const O=D.activePanel?.params?.browserId;if(!O)return;s.preventDefault(),s.stopPropagation(),L("browser_reload",{browserId:O}).catch(J=>{console.error("[DockviewBrowserContainer] browser_reload failed:",J)})}}};return window.addEventListener("keydown",l,!0),()=>window.removeEventListener("keydown",l,!0)},[o,T,R,y]),r.useLayoutEffect(()=>{if(!o)return;const t=i.current,c=g.current;if(!t||!c)return;const p=c.getBoundingClientRect();if(p.width>0&&p.height>0){t.layout(Math.round(p.width),Math.round(p.height),!0);return}const l=new ResizeObserver(s=>{const f=s[0];if(!f)return;const{width:A,height:D}=f.contentRect;A<=0||D<=0||(l.disconnect(),t.layout(Math.round(A),Math.round(D),!0))});return l.observe(c),()=>l.disconnect()},[o]),r.useEffect(()=>{if(!o)return;const t=requestAnimationFrame(()=>{const c=i.current?.activePanel;c&&c.view.content.element.querySelector("[data-band-address-input]")?.focus()});return()=>cancelAnimationFrame(t)},[o]),r.useEffect(()=>{if(!B)return;let t;return(async()=>t=await M("browser-new-tab-shortcut",c=>{const p=i.current;if(!p)return;const l=c.payload.browser_id;!l||!p.getPanel(l)||y().then(()=>{requestAnimationFrame(()=>{i.current?.activePanel?.view.content.element.querySelector("[data-band-address-input]")?.focus()})})}))(),()=>t?.()},[y]),r.useEffect(()=>{if(!B)return;let t,c=!1;return(async()=>{const p=await M("browser-open-window",l=>{const s=i.current;if(!s)return;const f=l.payload.browser_id,A=f?s.getPanel(f):void 0;if(!A)return;const D=A.group?.id,q=l.payload.url;q&&y(D,{initialUrl:q}).then(()=>{requestAnimationFrame(()=>{i.current?.activePanel?.view.content.element.querySelector("[data-band-address-input]")?.focus()})}).catch(O=>{console.error("[DockviewBrowserContainer] browser-open-window add-tab failed:",O)})});c?p():t=p})(),()=>{c=!0,t?.()}},[y]),r.useEffect(()=>{if(!B)return;const t=[];let c=!1;const p=()=>{i.current?.activePanel?.view.content.element.querySelector("[data-band-address-input]")?.focus()};return(async()=>{const l=await Promise.all([M("browser-split-shortcut",s=>{const f=i.current;if(!f)return;const A=f.getPanel(s.payload.browser_id);A?.group&&R(A.group.id,s.payload.direction)}),M("browser-close-shortcut",s=>{const f=i.current;if(!f)return;const A=s.payload.browser_id;f.getPanel(A)&&T(A)}),M("browser-cycle-shortcut",s=>{const f=i.current;if(!f)return;const A=f.getPanel(s.payload.browser_id);if(!A)return;A.api.setActive();const D=()=>requestAnimationFrame(p);s.payload.target==="tabs"?ce(i.current,s.payload.direction,D):ie(i.current,s.payload.direction,D)})]);if(c)for(const s of l)s();else t.push(...l)})(),()=>{c=!0;for(const l of t)l()}},[R,T]),r.useEffect(()=>{const t=()=>{const c=g.current;if(!c||c.offsetParent===null)return;const p=c.querySelectorAll("[data-band-address-input]");for(const l of p)if(l.offsetParent!==null){l.focus({preventScroll:!0});return}};return window.addEventListener("band:focus-browser",t),()=>window.removeEventListener("band:focus-browser",t)},[]),r.useEffect(()=>u.subscribeStatusEvents(t=>{if(t.workspaceId!==e)return;const c=i.current;if(c){if(t.kind==="browser-created"&&typeof t.browserId=="string"){if(c.getPanel(t.browserId))return;c.addPanel({id:t.browserId,component:"browserTab",tabComponent:"browserTab",title:"New Tab",params:{workspaceId:e,browserId:t.browserId}})}else if(t.kind==="browser-removed"&&typeof t.browserId=="string"){const p=c.getPanel(t.browserId);p&&(c.removePanel(p),c.panels.length===0&&Q(c,e))}}}),[u,e]),W.current={onAdd:y,onSplit:R},ge.current=T,r.useEffect(()=>()=>{h.current?.(),h.current=null,C.current?.(),C.current=null},[]);const j=r.useRef(null);j.current=_?.layout??null;const E=r.useRef(null);E.current=_?.browserIds??null;const v=r.useRef(null);v.current=_?.urls??null;const N=r.useRef(o);N.current=o;const z=r.useCallback(t=>{i.current=t.api;const c=j.current,p=E.current,l=v.current;if(c&&It(c)){w.current=!0;const f=it(c,l);try{t.api.fromJSON(f)}catch(D){console.error("[DockviewBrowserContainer] fromJSON failed, creating default:",D),Q(t.api,e)}let A=0;if(p){const D=t.api.panels.filter(q=>!p.has(q.id));for(const q of D)t.api.removePanel(q),A++;t.api.panels.length===0&&(Q(t.api,e),A++)}setTimeout(()=>{w.current=!1},0),A>0&&Z(e,t.api.toJSON(),{queryClient:k.current})}else Q(t.api,e),Z(e,t.api.toJSON(),{queryClient:k.current});Je(t.api),h.current?.(),h.current=Xe(t.api),C.current?.(),g.current&&(C.current=Ye(g.current,t.api));const s=()=>I();if(t.api.onDidLayoutChange(s),t.api.onDidAddPanel(s),t.api.onDidRemovePanel(s),t.api.onDidActivePanelChange(s),t.api.onDidAddGroup(s),t.api.onDidRemoveGroup(s),N.current&&g.current){const f=g.current.getBoundingClientRect();f.width>0&&f.height>0&&t.api.layout(Math.round(f.width),Math.round(f.height),!0)}},[e,I]),S=r.useMemo(()=>({visible:o&&n!==!1,wsActive:n!==!1}),[o,n]);return _?a.jsx("div",{ref:g,className:"flex h-full w-full flex-col overflow-hidden",children:a.jsx(we.Provider,{value:S,children:a.jsx(Ze,{theme:Bt,className:"h-full",components:Ut,tabComponents:Lt,defaultTabComponent:ye,onReady:z,rightHeaderActionsComponent:qt})})}):a.jsx("div",{className:"flex h-full w-full items-center justify-center"})}function Q(e,o){const n=se();F.browsers.create.mutate({workspaceId:o,id:n}).catch(u=>{console.error("[DockviewBrowserContainer] error creating default browser:",u)}),e.addPanel({id:n,component:"browserTab",tabComponent:"browserTab",title:"Browser",params:{workspaceId:o,browserId:n}})}export{Ot as DockviewBrowserContainer,zt as consumeBrowserFresh,pe as markBrowserFresh,se as newBrowserId};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/TerminalPanel-DFA3TNjT.js","assets/main-BMyWFWYN.js","assets/main-evBJruhw.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{u as J,m as U,r as o,n as $,o as h,p as B,q as H,v as Q,w as X,j as m,x as Y,y as W,C as Z,z as ee,A as te,X as ne,B as re,E as ie,_ as ae}from"./main-BMyWFWYN.js";import{S as oe}from"./square-terminal-BXuSt2dW.js";const le=o.lazy(()=>ae(()=>import("./TerminalPanel-DFA3TNjT.js"),__vite__mapDeps([0,1,2])).then(e=>({default:e.TerminalPanel})));function ce(){if(typeof crypto<"u"&&typeof crypto.randomUUID=="function")return crypto.randomUUID();const e=crypto.getRandomValues(new Uint8Array(16));e[6]=e[6]&15|64,e[8]=e[8]&63|128;const r=Array.from(e,l=>l.toString(16).padStart(2,"0")).join("");return`${r.slice(0,8)}-${r.slice(8,12)}-${r.slice(12,16)}-${r.slice(16,20)}-${r.slice(20)}`}function R(){return ce()}function L(e){return["terminalLayout",e]}const S=new Map;function se(e){if(typeof e=="object"&&e!==null){const r=e.panels;if(typeof r=="object"&&r!==null)return new Set(Object.keys(r))}return new Set}function q(e,r,l){l?.queryClient&&l.queryClient.setQueryData(L(e),{layout:r,terminalIds:se(r)});const a=S.get(e);a&&clearTimeout(a),S.set(e,setTimeout(()=>{S.delete(e),h.terminalLayout.save.mutate({workspaceId:e,tree:r}).catch(p=>{console.error("[DockviewTerminalContainer] failed to persist layout:",p)})},500))}function ue(e){if(typeof e!="object"||e===null)return!1;const r=e;return typeof r.grid=="object"&&typeof r.panels=="object"}const me={name:"band",className:"dockview-theme-band dockview-terminal-tabs"},z=o.createContext({visible:!0,wsActive:!0});function fe({params:e,api:r}){const{visible:l}=o.useContext(z),a=o.useCallback(c=>{r.setTitle(c)},[r]);if(!e.workspaceId||!e.terminalId)return null;const p=e.command||e.cwd||e.env?{command:e.command,cwd:e.cwd,env:e.env}:void 0;return m.jsx("div",{className:"flex h-full w-full flex-col overflow-hidden",children:m.jsx(o.Suspense,{fallback:null,children:m.jsx(le,{workspaceId:e.workspaceId,terminalId:e.terminalId,visible:l,paneMetadata:p,autoFocus:e.autoFocus,onTitleChange:a})})})}function O(e){const[r,l]=o.useState(e.api.title??"Terminal"),[a,p]=o.useState(e.containerApi.panels.length);o.useEffect(()=>{const d=e.api.onDidTitleChange(()=>{l(e.api.title??"Terminal")});return()=>d.dispose()},[e.api]),o.useEffect(()=>{const d=e.containerApi,g=()=>p(d.panels.length),T=d.onDidAddPanel(g),C=d.onDidRemovePanel(g);return()=>{T.dispose(),C.dispose()}},[e.containerApi]);const c=o.useCallback(d=>{d.stopPropagation(),M.current?.(e.params.terminalId)},[e.params.terminalId]),y=a>1;return m.jsxs("div",{className:"dv-default-tab",children:[m.jsxs("div",{className:"flex items-center gap-1.5 min-w-0",children:[m.jsx(oe,{className:"size-3.5 shrink-0 text-muted-foreground"}),m.jsx("span",{className:"truncate",children:r})]}),y&&m.jsx("button",{type:"button",className:"ml-1 inline-flex size-4 items-center justify-center rounded-sm opacity-60 hover:opacity-100 hover:bg-accent transition-colors",onClick:c,title:"Close terminal",children:m.jsx(ne,{className:"size-3"})})]})}const w={current:{onAdd:()=>{},onSplit:()=>{}}},M={current:null},de=W.memo(function(r){const l=(r.location?.type??"grid")==="grid",a=r.group.id;return m.jsxs("div",{className:"flex h-full w-full items-center justify-center",children:[l&&m.jsxs(m.Fragment,{children:[m.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>w.current.onSplit(a,"right"),title:"Split right",children:m.jsx(Z,{className:"size-3.5"})}),m.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>w.current.onSplit(a,"below"),title:"Split down",children:m.jsx(ee,{className:"size-3.5"})})]}),m.jsx("button",{type:"button",className:"inline-flex size-7 items-center justify-center text-muted-foreground hover:text-foreground hover:bg-accent rounded transition-colors",onClick:()=>w.current.onAdd(a),title:"New terminal",children:m.jsx(te,{className:"size-4"})})]})}),pe={terminalTab:fe},ye={terminalTab:O};function Te({workspaceId:e,visible:r,wsActive:l}){const a=J(),p=U(),c=o.useRef(null),y=o.useRef(!1),d=o.useRef(null),g=o.useRef(null),T=o.useRef(null),{data:C}=$({queryKey:L(e),queryFn:async()=>{const[{tree:n},{terminals:i}]=await Promise.all([h.terminalLayout.get.query({workspaceId:e}).catch(()=>({tree:null})),h.terminal.list.query({workspaceId:e}).catch(()=>({terminals:[]}))]);return{layout:n,terminalIds:new Set(i.map(u=>u.terminalId))}},staleTime:Number.POSITIVE_INFINITY}),P=o.useRef(p);P.current=p;const E=o.useCallback(()=>{if(y.current)return;const n=c.current;n&&q(e,n.toJSON(),{queryClient:P.current})},[e]),j=o.useCallback(async n=>{const i=c.current;if(!i)return;const u=R(),s={id:u,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:u,autoFocus:!0}};n&&(s.position={referenceGroup:n}),i.addPanel(s);try{await h.terminal.create.mutate({workspaceId:e,id:u})}catch(t){console.error("[DockviewTerminalContainer] error creating terminal:",t)}},[e]),A=o.useCallback(async(n,i)=>{const u=c.current;if(!u)return;const s=R();u.addPanel({id:s,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:s,autoFocus:!0},position:{referenceGroup:n,direction:i}});try{await h.terminal.create.mutate({workspaceId:e,id:s})}catch(t){console.error("[DockviewTerminalContainer] error creating split terminal:",t)}},[e]),N=o.useCallback(n=>{const i=c.current;if(!i||i.panels.length<=1)return;B(i,n);const u=i.getPanel(n);u&&i.removePanel(u),requestAnimationFrame(()=>{const s=i.activePanel;s&&s.view.content.element.querySelector(".xterm-helper-textarea")?.focus()}),h.terminal.kill.mutate({terminalId:n}).catch(s=>{console.error("[DockviewTerminalContainer] failed to kill terminal:",s)})},[]);o.useEffect(()=>{if(!r)return;const n=()=>{const t=c.current?.activePanel;t&&t.view.content.element.querySelector(".xterm-helper-textarea")?.focus()},i=t=>{re(c.current,t,()=>{requestAnimationFrame(n)})},u=t=>{ie(c.current,t,()=>{requestAnimationFrame(n)})},s=t=>{if(!d.current?.contains(document.activeElement))return;const f=t.key.toLowerCase();if(t.ctrlKey&&!t.metaKey&&f==="tab"){t.preventDefault(),t.stopPropagation(),i(t.shiftKey?-1:1);return}if(!(t.metaKey||t.ctrlKey))return;if(t.shiftKey&&(f==="["||f==="]")){t.preventDefault(),t.stopPropagation(),i(f==="]"?1:-1);return}if(!t.shiftKey&&(f==="["||f==="]")){t.preventDefault(),t.stopPropagation(),u(f==="]"?1:-1);return}const x=()=>{const v=c.current;if(!v||v.panels.length<=1)return!1;const G=v.activePanel;return G?(N(G.id),!0):!1};if(f==="t"&&!t.shiftKey)t.preventDefault(),t.stopPropagation(),j();else if(f==="w"&&!t.shiftKey)x()&&(t.preventDefault(),t.stopPropagation());else if(f==="d")if(t.metaKey&&!t.ctrlKey){t.preventDefault(),t.stopPropagation();const v=c.current?.activeGroup;if(!v)return;A(v.id,t.shiftKey?"below":"right")}else t.ctrlKey&&!t.metaKey&&!t.shiftKey?x()&&(t.preventDefault(),t.stopPropagation()):(t.preventDefault(),t.stopPropagation())};return window.addEventListener("keydown",s,!0),()=>window.removeEventListener("keydown",s,!0)},[r,N,A,j]),o.useLayoutEffect(()=>{if(!r)return;const n=c.current,i=d.current;if(!n||!i)return;const u=i.getBoundingClientRect();if(u.width>0&&u.height>0){n.layout(Math.round(u.width),Math.round(u.height),!0);return}const s=new ResizeObserver(t=>{const f=t[0];if(!f)return;const{width:b,height:x}=f.contentRect;b<=0||x<=0||(s.disconnect(),n.layout(Math.round(b),Math.round(x),!0))});return s.observe(i),()=>s.disconnect()},[r]),o.useEffect(()=>{if(!r)return;const n=requestAnimationFrame(()=>{const i=c.current?.activePanel;i&&i.view.content.element.querySelector(".xterm-helper-textarea")?.focus()});return()=>cancelAnimationFrame(n)},[r]),o.useEffect(()=>a.subscribeStatusEvents(n=>{if(n.workspaceId!==e)return;const i=c.current;if(i){if(n.kind==="terminal-created"&&typeof n.terminalId=="string"){if(i.getPanel(n.terminalId))return;i.addPanel({id:n.terminalId,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:e,terminalId:n.terminalId}})}else if(n.kind==="terminal-killed"&&typeof n.terminalId=="string"){const u=i.getPanel(n.terminalId);u&&(i.removePanel(u),i.panels.length===0&&D(i,e))}}}),[a,e]),w.current={onAdd:j,onSplit:A},M.current=N,o.useEffect(()=>()=>{g.current?.(),g.current=null,T.current?.(),T.current=null},[]);const K=o.useRef(null);K.current=C?.layout??null;const k=o.useRef(null);k.current=C?.terminalIds??null;const F=o.useRef(r);F.current=r;const I=o.useCallback(n=>{c.current=n.api;const i=K.current,u=k.current;if(i&&ue(i)){y.current=!0;try{n.api.fromJSON(i)}catch(f){console.error("[DockviewTerminalContainer] fromJSON failed, creating default:",f),D(n.api,e)}let t=0;if(u){const f=n.api.panels.filter(b=>!u.has(b.id));for(const b of f)n.api.removePanel(b),t++;n.api.panels.length===0&&(D(n.api,e),t++)}setTimeout(()=>{y.current=!1},0),t>0&&q(e,n.api.toJSON(),{queryClient:P.current})}else he(n.api,e,P.current);H(n.api),g.current?.(),g.current=Q(n.api),T.current?.(),d.current&&(T.current=X(d.current,n.api));const s=()=>E();if(n.api.onDidLayoutChange(s),n.api.onDidAddPanel(s),n.api.onDidRemovePanel(s),n.api.onDidActivePanelChange(s),n.api.onDidAddGroup(s),n.api.onDidRemoveGroup(s),F.current&&d.current){const t=d.current.getBoundingClientRect();t.width>0&&t.height>0&&n.api.layout(Math.round(t.width),Math.round(t.height),!0)}},[e,E]),V=o.useMemo(()=>({visible:r&&l!==!1,wsActive:l!==!1}),[r,l]);return C?m.jsx("div",{ref:d,className:"flex h-full w-full flex-col overflow-hidden",children:m.jsx(z.Provider,{value:V,children:m.jsx(Y,{theme:me,className:"h-full",components:pe,tabComponents:ye,defaultTabComponent:O,onReady:I,rightHeaderActionsComponent:de})})}):m.jsx("div",{className:"flex h-full w-full items-center justify-center"})}function D(e,r){const l=R();e.addPanel({id:l,component:"terminalTab",tabComponent:"terminalTab",title:"Terminal",params:{workspaceId:r,terminalId:l}}),h.terminal.create.mutate({workspaceId:r,id:l}).catch(a=>{console.error("[DockviewTerminalContainer] error creating default terminal:",a)})}async function he(e,r,l){try{const{config:a}=await h.workspace.getTerminalConfig.query({workspaceId:r});if(a?.layout){const p=_(a.layout);if(p.length>0){for(const c of p)try{const y=R();e.addPanel({id:y,component:"terminalTab",tabComponent:"terminalTab",title:c.name??"Terminal",params:{workspaceId:r,terminalId:y,command:c.command,cwd:c.cwd,env:c.env}}),await h.terminal.create.mutate({workspaceId:r,id:y,command:c.command,cwd:c.cwd,env:c.env})}catch(y){console.error("[DockviewTerminalContainer] error creating terminal from config:",y)}q(r,e.toJSON(),{queryClient:l});return}}}catch{}D(e,r)}function _(e,r=0){if(r>10||typeof e!="object"||e===null)return[];const l=e;if("pane"in l&&typeof l.pane=="object"&&l.pane!==null){const a=l.pane;return[{name:typeof a.name=="string"?a.name:void 0,command:typeof a.command=="string"?a.command:void 0,cwd:typeof a.cwd=="string"?a.cwd:void 0,env:typeof a.env=="object"&&a.env!==null?a.env:void 0}]}if("children"in l&&Array.isArray(l.children)){const a=[];for(const p of l.children)a.push(..._(p,r+1));return a}return[]}export{Te as DockviewTerminalContainer,R as newTerminalId};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/xterm-AZ511Krh.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{F as ze,r as o,bV as ke,c4 as Oe,c5 as Pe,c6 as Ne,j as i,X as ft,c7 as ht,b$ as mt,_ as B,c8 as pt,c9 as wt,ca as vt,cb as bt,cc as xt}from"./main-BMyWFWYN.js";const yt=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],gt=ze("clipboard-copy",yt);const Et=[["path",{d:"M12 20h-1a2 2 0 0 1-2-2 2 2 0 0 1-2 2H6",key:"1528k5"}],["path",{d:"M13 8h7a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-7",key:"13ksps"}],["path",{d:"M5 16H4a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2h1",key:"1n9rhb"}],["path",{d:"M6 4h1a2 2 0 0 1 2 2 2 2 0 0 1 2-2h1",key:"1mj8rg"}],["path",{d:"M9 6v12",key:"velyjx"}]],St=ze("text-cursor-input",Et),Lt=49,Me="(hover: none) and (pointer: coarse)";function Be(){const[t,n]=o.useState(()=>typeof window>"u"?!1:window.matchMedia(Me).matches),[s,c]=o.useState(0);return o.useEffect(()=>{if(typeof window>"u")return;const a=window.matchMedia(Me),m=f=>n(f.matches);return n(a.matches),a.addEventListener("change",m),()=>a.removeEventListener("change",m)},[]),o.useEffect(()=>{if(typeof window>"u")return;if(!t){c(0);return}const a=window.visualViewport;if(!a)return;const m=()=>{const f=Math.max(0,window.innerHeight-(a.offsetTop+a.height));c(f)};return m(),a.addEventListener("resize",m),a.addEventListener("scroll",m),window.addEventListener("resize",m),()=>{a.removeEventListener("resize",m),a.removeEventListener("scroll",m),window.removeEventListener("resize",m)}},[t]),{enabled:t,bottomOffset:s,contentBottomInset:t?Lt:0}}const ae=/[A-Za-z0-9_./:\-+@~]/;function Rt(t,n,s,c){const a=c.getBoundingClientRect();if(a.width<=0||a.height<=0||s.cols<=0||s.rows<=0)return{col:0,row:s.buffer.active.viewportY};const m=a.width/s.cols,f=a.height/s.rows,w=le(Math.floor((t-a.left)/m),0,s.cols-1),E=le(Math.floor((n-a.top)/f),0,s.rows-1);return{col:w,row:s.buffer.active.viewportY+E}}function Ct(t,n){if(n<0||n>=t.length||!ae.test(t[n])){const a=le(n,0,Math.max(0,t.length));return{start:a,end:a+1}}let s=n;for(;s>0&&ae.test(t[s-1]);)s--;let c=n+1;for(;c<t.length&&ae.test(t[c]);)c++;return{start:s,end:c}}function At(t,n){return t.buffer.active.getLine(n)?.translateToString(!1)??""}function Tt(t,n,s){const c=s.cols,a=Math.max(0,s.buffer.active.length-1);switch(n){case"left":return t.col>0?{col:t.col-1,row:t.row}:t.row>0?{col:c-1,row:t.row-1}:t;case"right":return t.col<c-1?{col:t.col+1,row:t.row}:t.row<a?{col:0,row:t.row+1}:t;case"up":return t.row>0?{col:t.col,row:t.row-1}:t;case"down":return t.row<a?{col:t.col,row:t.row+1}:t}}function J(t,n,s){const c=t.cols;if(c<=0)return;const a=n.row*c+n.col,m=s.row*c+s.col,f=Math.min(a,m),E=Math.max(a,m)-f+1,g=Math.floor(f/c),S=f-g*c;t.select(S,g,E)}function _t(t,n){const{start:s,end:c}=Ct(n,t.col);return{anchor:{col:s,row:t.row},head:{col:Math.max(s,c-1),row:t.row}}}function le(t,n,s){return t<n?n:t>s?s:t}async function kt(t){if(typeof navigator<"u"&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(t),!0}catch{}return Ot(t)}function Ot(t){if(typeof document>"u")return!1;const n=document.createElement("textarea");n.value=t,n.setAttribute("readonly",""),n.style.position="fixed",n.style.top="0",n.style.left="0",n.style.width="1px",n.style.height="1px",n.style.padding="0",n.style.border="0",n.style.opacity="0",n.style.pointerEvents="none",document.body.appendChild(n);const s=document.activeElement;try{return n.focus(),n.select(),n.setSelectionRange(0,t.length),document.execCommand("copy")}catch{return!1}finally{document.body.removeChild(n),s?.focus?.()}}async function Pt(){if(typeof navigator>"u"||!navigator.clipboard?.readText)return"";try{return await navigator.clipboard.readText()}catch{return""}}const Nt="\x1B",Mt=" ",Dt="\x1B[A",jt="\x1B[B",It="\x1B[C",zt="\x1B[D",A=t=>n=>{n.preventDefault(),t()};function Bt({terminal:t,sendInput:n,pendingCtrl:s,onToggleCtrl:c,selectionMode:a,onExtendSelection:m,onExitSelection:f,onSelectAll:w}){const{enabled:E,bottomOffset:g}=Be(),S=o.useCallback(async()=>{if(!t.hasSelection())return;const v=t.getSelection();if(!v)return;await kt(v)||console.warn("[TerminalToolbar] clipboard write failed")},[t]),N=o.useCallback(async()=>{await S(),f()},[S,f]),W=o.useCallback(async()=>{const v=await Pt();v&&n(v)},[n]),ee=o.useMemo(()=>[{label:"Esc",seq:Nt,ariaLabel:"Send Escape"},{label:"Tab",seq:Mt,ariaLabel:"Send Tab"}],[]),G=o.useMemo(()=>[{Icon:ke,seq:zt,ariaLabel:"Arrow Left"},{Icon:Oe,seq:It,ariaLabel:"Arrow Right"},{Icon:Pe,seq:Dt,ariaLabel:"Arrow Up"},{Icon:Ne,seq:jt,ariaLabel:"Arrow Down"}],[]),Q=o.useMemo(()=>[{Icon:ke,dir:"left",ariaLabel:"Extend selection left"},{Icon:Oe,dir:"right",ariaLabel:"Extend selection right"},{Icon:Pe,dir:"up",ariaLabel:"Extend selection up"},{Icon:Ne,dir:"down",ariaLabel:"Extend selection down"}],[]);return E?i.jsx("div",{"data-testid":"terminal-toolbar","data-mode":a?"selection":"idle",role:"toolbar","aria-label":a?"Terminal selection controls":"Terminal accessory keys",style:{bottom:g},className:"fixed inset-x-0 z-50 flex justify-center border-t border-border bg-background/95 shadow-lg backdrop-blur-md",children:i.jsx("div",{className:"flex w-full max-w-3xl items-center gap-1 overflow-x-auto px-2 py-1.5",children:a?i.jsxs(i.Fragment,{children:[i.jsxs(T,{ariaLabel:"Copy selection and exit",title:"Copy",onPointerDown:A(N),variant:"primary",children:[i.jsx(gt,{className:"size-4"}),i.jsx("span",{className:"text-xs",children:"Copy"})]}),i.jsxs(T,{ariaLabel:"Exit selection mode",title:"Done",onPointerDown:A(f),children:[i.jsx(ft,{className:"size-4"}),i.jsx("span",{className:"text-xs",children:"Done"})]}),i.jsx("div",{className:"mx-1 h-6 w-px shrink-0 bg-border","aria-hidden":"true"}),i.jsx("span",{className:"mr-1 shrink-0 select-none text-xs font-medium uppercase tracking-wide text-muted-foreground","aria-hidden":"true",children:"Extend"}),Q.map(({Icon:v,dir:L,ariaLabel:p})=>i.jsx(T,{ariaLabel:p,title:p,onPointerDown:A(()=>m(L)),children:i.jsx(v,{className:"size-4"})},L))]}):i.jsxs(i.Fragment,{children:[i.jsxs(T,{ariaLabel:"Paste from clipboard",title:"Paste",onPointerDown:A(W),children:[i.jsx(ht,{className:"size-4"}),i.jsx("span",{className:"text-xs",children:"Paste"})]}),i.jsxs(T,{ariaLabel:"Select all",title:"Select all",onPointerDown:A(w),children:[i.jsx(St,{className:"size-4"}),i.jsx("span",{className:"text-xs",children:"All"})]}),i.jsx("div",{className:"mx-1 h-6 w-px shrink-0 bg-border","aria-hidden":"true"}),ee.map(({label:v,seq:L,ariaLabel:p})=>i.jsx(T,{ariaLabel:p,title:v,onPointerDown:A(()=>n(L)),children:i.jsx("span",{className:"text-xs font-medium",children:v})},v)),i.jsx(T,{ariaLabel:s?"Cancel pending Ctrl":"Arm Ctrl modifier",title:"Ctrl (sticky — taps the next key as Ctrl+key)",onPointerDown:A(c),active:s,children:i.jsx("span",{className:"text-xs font-medium",children:"Ctrl"})}),i.jsx("div",{className:"mx-1 h-6 w-px shrink-0 bg-border","aria-hidden":"true"}),G.map(({Icon:v,seq:L,ariaLabel:p})=>i.jsx(T,{ariaLabel:p,title:p,onPointerDown:A(()=>n(L)),children:i.jsx(v,{className:"size-4"})},p))]})})}):null}function T({ariaLabel:t,title:n,onPointerDown:s,active:c,variant:a="default",disabled:m,children:f}){const w=c?"bg-primary text-primary-foreground":a==="primary"?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-muted/60 hover:bg-muted active:bg-muted";return i.jsx("button",{type:"button","aria-label":t,"aria-pressed":c,title:n,onPointerDown:s,disabled:m,className:["inline-flex h-9 min-w-9 shrink-0 items-center justify-center gap-1 rounded-md px-2","text-foreground transition-colors",w,"disabled:opacity-40"].join(" "),children:f})}const De=13,Wt=500,je=10,Ht={matchBackground:"#515c6a",activeMatchBackground:"#a9913680",matchOverviewRuler:"#a9913680",activeMatchColorOverviewRuler:"#a99136"},Ft={caseSensitive:!1,wholeWord:!1,regex:!1};function ie(t){return{caseSensitive:t.caseSensitive,wholeWord:t.wholeWord,regex:t.regex,decorations:Ht}}const Kt={background:"#1e1e1e",foreground:"#e8e8e8",cursor:"#e8e8e8",selectionBackground:"rgba(255, 255, 255, 0.2)"},qt={background:"#ffffff",foreground:"#1e1e1e",cursor:"#1e1e1e",cursorAccent:"#ffffff",selectionBackground:"rgba(0, 0, 0, 0.15)",black:"#000000",red:"#cd3131",green:"#0a8043",yellow:"#946800",blue:"#0451a5",magenta:"#bc05bc",cyan:"#0598bc",white:"#555555",brightBlack:"#666666",brightRed:"#cd3131",brightGreen:"#0a8043",brightYellow:"#946800",brightBlue:"#0451a5",brightMagenta:"#bc05bc",brightCyan:"#0598bc",brightWhite:"#1e1e1e"};function Xt(){return document.documentElement.classList.contains("dark")}function Ie(){return Xt()?Kt:qt}function Qt({workspaceId:t,terminalId:n,visible:s,paneMetadata:c,autoFocus:a,onTitleChange:m}){const f=o.useRef(null),w=o.useRef(null),E=o.useRef(null),g=o.useRef(null),S=o.useRef(null),N=o.useRef(null),W=o.useRef(m);W.current=m;const{settings:ee}=mt(),G=ee.useWebGLTerminalRenderer??!0,Q=o.useRef(G);Q.current=G;const[v,L]=o.useState(!1),[p,ue]=o.useState(""),[_,We]=o.useState(Ft),[He,te]=o.useState({total:0,current:0}),ne=o.useRef(null),de=o.useRef(()=>{}),[Fe,fe]=o.useState(!1),M=o.useRef(!1),[Ke,U]=o.useState(!1),qe=o.useCallback(()=>{const u=!M.current;M.current=u,U(u)},[]),R=o.useRef(null),C=o.useRef(null),[Xe,H]=o.useState(!1),Ye=o.useCallback(()=>{R.current=null,C.current=null,H(!1),w.current?.clearSelection()},[]),Ge=o.useCallback(u=>{const b=w.current,D=R.current,k=C.current;if(!b||!D||!k)return;const V=Tt(k,u,b);C.current=V,J(b,D,V)},[]),Qe=o.useCallback(()=>{const u=w.current;if(!u)return;const b={col:0,row:0},D=Math.max(0,u.buffer.active.length-1),k={col:Math.max(0,u.cols-1),row:D};J(u,b,k),R.current=b,C.current=k,H(!0),u.blur()},[]);o.useEffect(()=>{if(!f.current)return;let u=!1,b;return Promise.all([B(()=>import("./xterm-iwIWEtGc.js"),[]),B(()=>import("./addon-fit-DX4qG4td.js"),[]),B(()=>import("./addon-web-links-DIbG5aQx.js"),[]),B(()=>import("./addon-search-DCE88ROn.js"),[]),B(()=>import("./addon-webgl-CeRvQWkA.js"),[])]).then(([D,k,V,et,tt])=>{const{Terminal:nt}=D,{FitAddon:rt}=k,{WebLinksAddon:ot}=V,{SearchAddon:st}=et,{WebglAddon:ct}=tt;if(u||!f.current)return;const he=Q.current;B(()=>Promise.resolve({}),__vite__mapDeps([0]));const r=new nt({allowProposedApi:!0,cursorBlink:!0,fontSize:De*pt(),fontFamily:"'SF Mono', Menlo, Monaco, 'Courier New', monospace",lineHeight:he?1.2:1,macOptionIsMeta:!0,scrollback:1e4,theme:Ie()}),me=new MutationObserver(()=>{r.options.theme=Ie()});me.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]});const F=new rt;r.loadAddon(F),r.loadAddon(new ot((e,l)=>wt(l))),r.open(f.current);let re;const oe=()=>{try{const e=new ct({customGlyphs:!0});r.loadAddon(e);const h=f.current?.querySelector(".xterm-screen")?.querySelector(":scope > canvas:last-of-type");return h&&(h.style.pointerEvents="none",h.style.touchAction="none"),S.current=e,re?.dispose(),re=e.onContextLoss(()=>{console.warn("[TerminalPanel] WebGL context lost, reattaching addon"),e.dispose(),S.current=null,oe()}),!0}catch(e){return console.warn("[TerminalPanel] WebGL renderer unavailable, falling back to DOM",e),!1}};he&&oe();const se=new st;r.loadAddon(se);const at=se.onDidChangeResults(e=>{te({total:e.resultCount,current:e.resultIndex>=0?e.resultIndex+1:0})});r.attachCustomKeyEventHandler(e=>{if(e.type==="keydown"){if(M.current&&e.key.length===1&&!e.metaKey&&!e.altKey&&!e.ctrlKey){const h=e.key.toLowerCase().charCodeAt(0);if(h>=97&&h<=122)return r.input(String.fromCharCode(h-96)),M.current=!1,U(!1),e.preventDefault(),!1;M.current=!1,U(!1)}if((e.metaKey||e.ctrlKey)&&!e.shiftKey&&!e.altKey&&e.key.toLowerCase()==="f")return e.preventDefault(),de.current(),!1;if(e.key==="Enter"&&e.shiftKey&&!e.altKey&&!e.metaKey&&!e.ctrlKey)return e.preventDefault(),r.input(`
|
|
3
|
-
`),!1;if(e.altKey&&!e.metaKey&&!e.ctrlKey){if(e.key==="ArrowLeft")return r.input("\x1Bb"),!1;if(e.key==="ArrowRight")return r.input("\x1Bf"),!1}}return!0}),w.current=r,E.current=F,g.current=se,fe(!0);const d=f.current;let K=null;const pe=e=>{K=e.touches.length===1?e.touches[0].clientY:null},we=e=>{if(e.touches.length!==1||K===null)return;const l=e.touches[0].clientY,h=K-l,x=d.querySelector(".xterm-viewport"),P=x&&r.rows>0?x.clientHeight/r.rows:17,Y=Math.trunc(h/P);Y!==0&&(r.scrollLines(Y),K=l+(h-Y*P),e.preventDefault())},Z=()=>{K=null};d.addEventListener("touchstart",pe,{passive:!0}),d.addEventListener("touchmove",we,{passive:!1}),d.addEventListener("touchend",Z,{passive:!0}),d.addEventListener("touchcancel",Z,{passive:!0});let q=null,j=null;const O=()=>{q!==null&&(window.clearTimeout(q),q=null),j=null},ve=e=>{if(O(),e.touches.length!==1)return;const l=e.touches[0];j={x:l.clientX,y:l.clientY},q=window.setTimeout(()=>{q=null;const h=j;if(!h)return;const x=d.querySelector(".xterm-screen");if(!x)return;const P=Rt(h.x,h.y,r,x),Y=At(r,P.row),{anchor:Te,head:_e}=_t(P,Y);if(J(r,Te,_e),R.current=Te,C.current=_e,H(!0),I=null,z=null,r.blur(),typeof navigator.vibrate=="function")try{navigator.vibrate(15)}catch{}},Wt)},be=e=>{if(!j||e.touches.length!==1)return;const l=e.touches[0],h=Math.abs(l.clientX-j.x),x=Math.abs(l.clientY-j.y);(h>je||x>je)&&O()};d.addEventListener("touchstart",ve,{passive:!0}),d.addEventListener("touchmove",be,{passive:!0}),d.addEventListener("touchend",O,{passive:!0}),d.addEventListener("touchcancel",O,{passive:!0});let I=null,z=null;const xe=e=>{e.touches.length===1?(I=e.touches[0].clientX,z=e.touches[0].clientY):(I=null,z=null)},ye=e=>{const l=I,h=z;if(I=null,z=null,l===null||h===null||e.changedTouches.length!==1)return;const x=Math.abs(e.changedTouches[0].clientX-l),P=Math.abs(e.changedTouches[0].clientY-h);x<10&&P<10&&(R.current!==null&&(R.current=null,C.current=null,H(!1),r.clearSelection()),r.focus())},ge=()=>{I=null,z=null};d.addEventListener("touchstart",xe,{passive:!0}),d.addEventListener("touchend",ye,{passive:!0}),d.addEventListener("touchcancel",ge,{passive:!0});const it=location.protocol==="https:"?"wss:":"ws:",y=new WebSocket(`${it}//${location.host}/terminal?workspaceId=${encodeURIComponent(t)}&terminalId=${encodeURIComponent(n)}`);N.current=y,y.binaryType="arraybuffer",y.onopen=()=>{if(c&&(c.command||c.cwd||c.env)){const e={type:"init"};c.command&&(e.command=c.command),c.cwd&&(e.cwd=c.cwd),c.env&&(e.env=c.env),y.send(JSON.stringify(e))}F.fit(),y.send(JSON.stringify({type:"resize",cols:r.cols,rows:r.rows})),a&&r.focus()},y.onmessage=e=>{if(e.data instanceof ArrayBuffer)r.write(new Uint8Array(e.data));else try{const l=JSON.parse(e.data);l.type==="title"&&typeof l.title=="string"&&W.current?.(l.title)}catch{r.write(e.data)}},y.onclose=()=>{r.write(`\r
|
|
4
|
-
\x1B[90m[Terminal disconnected]\x1B[0m\r
|
|
5
|
-
`)},r.onData(e=>{y.readyState===WebSocket.OPEN&&y.send(e)}),r.onTitleChange(e=>{W.current?.(e)});let X=null;const lt=()=>{X===null&&(!R.current||!C.current||(X=requestAnimationFrame(()=>{X=null;const e=R.current,l=C.current;e&&l&&J(r,e,l)})))},ut=r.onResize(lt);let Ee=window.devicePixelRatio;const Se=()=>{y.readyState===WebSocket.OPEN&&(r.cols<=0||r.rows<=0||y.send(JSON.stringify({type:"resize",cols:r.cols,rows:r.rows})))},Le=(e={})=>{const{newFontSize:l}=e;if(l!==void 0)r.options.fontSize!==l&&(r.options.fontSize=l);else{const x=r.options.fontSize;typeof x=="number"&&(r.options.fontSize=x+1,r.options.fontSize=x)}const h=S.current;h&&(h.dispose(),S.current=null,oe()),F.fit()},Re=()=>{const e=window.devicePixelRatio;return e===Ee?!1:(Ee=e,Le(),!0)},Ce=new ResizeObserver(e=>{const l=e[0];if(!l||l.contentRect.width===0||l.contentRect.height===0)return;Re()||F.fit(),Se()});Ce.observe(f.current);const dt=vt(e=>{const l=Math.round(De*e*100)/100;r.options.fontSize!==l&&(Le({newFontSize:l}),Se())});let $;const Ae=()=>{$=window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),$.addEventListener("change",ce)},ce=()=>{Re(),$?.removeEventListener("change",ce),Ae()};Ae(),b=()=>{me.disconnect(),Ce.disconnect(),at.dispose(),ut.dispose(),X!==null&&cancelAnimationFrame(X),re?.dispose(),$?.removeEventListener("change",ce),dt(),O(),d.removeEventListener("touchstart",pe),d.removeEventListener("touchmove",we),d.removeEventListener("touchend",Z),d.removeEventListener("touchcancel",Z),d.removeEventListener("touchstart",ve),d.removeEventListener("touchmove",be),d.removeEventListener("touchend",O),d.removeEventListener("touchcancel",O),d.removeEventListener("touchstart",xe),d.removeEventListener("touchend",ye),d.removeEventListener("touchcancel",ge),y.close(),r.dispose(),w.current=null,E.current=null,g.current=null,S.current=null,N.current=null,R.current=null,C.current=null,M.current=!1,H(!1),U(!1),fe(!1)}}),()=>{u=!0,b?.()}},[n,t,c,a]),o.useEffect(()=>{s&&E.current&&requestAnimationFrame(()=>{E.current?.fit();const u=w.current,b=N.current;u&&b?.readyState===WebSocket.OPEN&&u.cols>0&&u.rows>0&&b.send(JSON.stringify({type:"resize",cols:u.cols,rows:u.rows}))})},[s]),o.useEffect(()=>{const u=()=>{s&&w.current?.focus()};return window.addEventListener("band:focus-terminal",u),()=>window.removeEventListener("band:focus-terminal",u)},[s]);const Ue=o.useCallback(()=>{L(!0),requestAnimationFrame(()=>{ne.current?.focus(),ne.current?.select()})},[]);de.current=Ue;const Ve=o.useCallback(()=>{g.current?.clearDecorations(),L(!1),ue(""),te({total:0,current:0}),w.current?.focus()},[]),Ze=o.useCallback(()=>{p&&g.current?.findNext(p,ie(_))},[p,_]),$e=o.useCallback(()=>{p&&g.current?.findPrevious(p,ie(_))},[p,_]);o.useEffect(()=>{const u=g.current;if(u){if(!p){u.clearDecorations(),te({total:0,current:0});return}u.findNext(p,ie(_))}},[p,_]);const{contentBottomInset:Je}=Be();return i.jsxs("div",{className:"relative flex h-full w-full flex-col",children:[v&&i.jsx(bt,{ref:ne,query:p,onQueryChange:ue,options:_,onOptionsChange:We,placeholder:"Find in terminal...",matchInfo:He,onNext:Ze,onPrevious:$e,onClose:Ve}),i.jsx("div",{className:"relative min-h-0 flex-1",children:i.jsx("div",{ref:f,className:"absolute inset-x-2 top-2 overflow-hidden",style:{bottom:8+Je,zoom:`calc(1 / var(${xt}, 1))`}})}),Fe&&w.current&&i.jsx(Bt,{terminal:w.current,sendInput:u=>{const b=N.current;b?.readyState===WebSocket.OPEN&&b.send(u)},pendingCtrl:Ke,onToggleCtrl:qe,selectionMode:Xe,onExtendSelection:Ge,onExitSelection:Ye,onSelectAll:Qe})]})}export{Qt as TerminalPanel};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as x,c as b,g as m,k as O,h as P,j as p,l as w,m as A,n as I,t as E,o as F}from"./_baseUniq-P2cIT3Cg.js";import{cz as g,bs as N,cA as B,cB as M,cC as _,cD as c,cE as $,cF as T,cG as y,cH as G}from"./main-BMyWFWYN.js";var H=/\s/;function S(n){for(var r=n.length;r--&&H.test(n.charAt(r)););return r}var z=/^\s+/;function C(n){return n&&n.slice(0,S(n)+1).replace(z,"")}var o=NaN,L=/^[-+]0x[0-9a-f]+$/i,R=/^0b[01]+$/i,q=/^0o[0-7]+$/i,D=parseInt;function K(n){if(typeof n=="number")return n;if(x(n))return o;if(g(n)){var r=typeof n.valueOf=="function"?n.valueOf():n;n=g(r)?r+"":r}if(typeof n!="string")return n===0?n:+n;n=C(n);var t=R.test(n);return t||q.test(n)?D(n.slice(2),t?2:8):L.test(n)?o:+n}var v=1/0,W=17976931348623157e292;function X(n){if(!n)return n===0?n:0;if(n=K(n),n===v||n===-v){var r=n<0?-1:1;return r*W}return n===n?n:0}function Y(n){var r=X(n),t=r%1;return r===r?t?r-t:r:0}function fn(n){var r=n==null?0:n.length;return r?b(n):[]}var l=Object.prototype,J=l.hasOwnProperty,dn=N(function(n,r){n=Object(n);var t=-1,a=r.length,e=a>2?r[2]:void 0;for(e&&B(r[0],r[1],e)&&(a=1);++t<a;)for(var f=r[t],i=M(f),s=-1,d=i.length;++s<d;){var u=i[s],h=n[u];(h===void 0||_(h,l[u])&&!J.call(n,u))&&(n[u]=f[u])}return n});function un(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}function Q(n){return function(r,t,a){var e=Object(r);if(!c(r)){var f=m(t);r=O(r),t=function(s){return f(e[s],s,e)}}var i=n(r,t,a);return i>-1?e[f?r[i]:i]:void 0}}var U=Math.max;function Z(n,r,t){var a=n==null?0:n.length;if(!a)return-1;var e=t==null?0:Y(t);return e<0&&(e=U(a+e,0)),P(n,m(r),e)}var hn=Q(Z);function V(n,r){var t=-1,a=c(n)?Array(n.length):[];return p(n,function(e,f,i){a[++t]=r(e,f,i)}),a}function gn(n,r){var t=$(n)?w:V;return t(n,m(r))}var j=Object.prototype,k=j.hasOwnProperty;function nn(n,r){return n!=null&&k.call(n,r)}function mn(n,r){return n!=null&&A(n,r,nn)}function rn(n,r){return n<r}function tn(n,r,t){for(var a=-1,e=n.length;++a<e;){var f=n[a],i=r(f);if(i!=null&&(s===void 0?i===i&&!x(i):t(i,s)))var s=i,d=f}return d}function on(n){return n&&n.length?tn(n,T,rn):void 0}function en(n,r,t,a){if(!g(n))return n;r=I(r,n);for(var e=-1,f=r.length,i=f-1,s=n;s!=null&&++e<f;){var d=E(r[e]),u=t;if(d==="__proto__"||d==="constructor"||d==="prototype")return n;if(e!=i){var h=s[d];u=void 0,u===void 0&&(u=g(h)?h:y(r[e+1])?[]:{})}G(s,d,u),s=s[d]}return n}function vn(n,r,t){for(var a=-1,e=r.length,f={};++a<e;){var i=r[a],s=F(n,i);t(s,i)&&en(f,I(i,n),s)}return f}export{rn as a,tn as b,V as c,vn as d,on as e,fn as f,hn as g,mn as h,dn as i,Y as j,un as l,gn as m,X as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{at as ln,au as an,av as y,aw as tn,ax as j,ay as D,az as _,aA as un,aB as rn,aC as L,aD as o,aE as H,aF as sn,aG as on,aH as fn}from"./main-BMyWFWYN.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,z,E,v,A,I,a){var B=z-l,i=E-h,n=I-v,d=a-A,u=d*B-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*B,h+u*i]}function W(l,h,z,E,v,A,I){var a=l-z,B=h-E,i=(I?A:-A)/L(a*a+B*B),n=i*B,d=-i*a,u=l+n,s=h+d,f=z+n,c=E+d,O=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,C=(g<0?-1:1)*L(fn(0,T*T*R-P*P)),F=(P*g-m*C)/R,G=(-P*m-g*C)/R,w=(P*g+m*C)/R,p=(-P*m+g*C)/R,x=F-O,e=G-t,r=w-O,S=p-t;return x*x+e*e>r*r+S*S&&(F=w,G=p),{cx:F,cy:G,x01:-n,y01:-d,x11:F*(v/T-1),y11:G*(v/T-1)}}function hn(){var l=cn,h=yn,z=H(0),E=null,v=gn,A=dn,I=mn,a=null,B=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,O=un(c-f),t=c>f;if(a||(a=n=B()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(O>tn-y)a.moveTo(s*j(f),s*D(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*j(c),u*D(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=O,C=O,F=I.apply(this,arguments)/2,G=F>y&&(E?+E.apply(this,arguments):L(u*u+s*s)),w=_(un(s-u)/2,+z.apply(this,arguments)),p=w,x=w,e,r;if(G>y){var S=sn(G/u*D(F)),M=sn(G/s*D(F));(P-=S*2)>y?(S*=t?1:-1,R+=S,T-=S):(P=0,R=T=(f+c)/2),(C-=M*2)>y?(M*=t?1:-1,m+=M,g-=M):(C=0,m=g=(f+c)/2)}var J=s*j(m),K=s*D(m),N=u*j(T),Q=u*D(T);if(w>y){var U=s*j(g),V=s*D(g),X=u*j(R),Y=u*D(R),q;if(O<rn)if(q=pn(J,K,X,Y,U,V,N,Q)){var Z=J-q[0],$=K-q[1],k=U-q[0],b=V-q[1],nn=1/D(on((Z*k+$*b)/(L(Z*Z+$*$)*L(k*k+b*b)))/2),en=L(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}C>y?x>y?(e=W(X,Y,J,K,s,x,t),r=W(U,V,N,Q,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(J,K),a.arc(0,0,s,m,g,!t)):a.moveTo(J,K),!(u>y)||!(P>y)?a.lineTo(N,Q):p>y?(e=W(N,Q,U,V,u,-p,t),r=W(J,K,X,Y,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[j(d)*n,D(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:H(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:H(+n),i):h},i.cornerRadius=function(n){return arguments.length?(z=typeof n=="function"?n:H(+n),i):z},i.padRadius=function(n){return arguments.length?(E=n==null?null:typeof n=="function"?n:H(+n),i):E},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:H(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:H(+n),i):A},i.padAngle=function(n){return arguments.length?(I=typeof n=="function"?n:H(+n),i):I},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{aj as o,ak as n}from"./main-BMyWFWYN.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{S as a,Y as w,W as x}from"./main-BMyWFWYN.js";var g=a((e,t,i,r)=>{e.attr("class",i);const{width:o,height:h,x:n,y:c}=u(e,t);w(e,h,o,r);const s=B(n,c,o,h,t);e.attr("viewBox",s),x.debug(`viewBox configured: ${s} with padding: ${t}`)},"setupViewPortForSVG"),u=a((e,t)=>{const i=e.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:i.width+t*2,height:i.height+t*2,x:i.x,y:i.y}},"calculateDimensionsWithPadding"),B=a((e,t,i,r,o)=>`${e-o} ${t-o} ${i} ${r}`,"createViewBox");export{g as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-CglmZrjp.js";import{S as i}from"./main-BMyWFWYN.js";import"./chunk-FMBD7UC4-BNnnH8qi.js";import"./chunk-55IACEB6-CZzsVv3f.js";import"./chunk-QN33PNHL-CPGopyck.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as a,c as s,a as e,C as t}from"./chunk-B4BG7PRW-CglmZrjp.js";import{S as i}from"./main-BMyWFWYN.js";import"./chunk-FMBD7UC4-BNnnH8qi.js";import"./chunk-55IACEB6-CZzsVv3f.js";import"./chunk-QN33PNHL-CPGopyck.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{b as r}from"./_baseUniq-P2cIT3Cg.js";var e=4;function a(o){return r(o,e)}export{a as c};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{S as w,bx as Y,by as j,bz as _,bA as H,W as i,U,bB as V,bC as z,aZ as W,b2 as Z,a_ as P,aY as $,bD as q,bE as K,bF as Q}from"./main-BMyWFWYN.js";import{G as B}from"./graph-CfCyZ7oE.js";import{l as I}from"./layout-DBSNY4Lg.js";import{i as N}from"./_baseUniq-P2cIT3Cg.js";import{c as L}from"./clone-BnAVnjoT.js";import{m as A}from"./_basePickBy-arnwX_WB.js";function h(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ee(e),edges:ne(e)};return N(e.graph())||(t.value=L(e.graph())),t}function ee(e){return A(e.nodes(),function(t){var n=e.node(t),a=e.parent(t),r={v:t};return N(n)||(r.value=n),N(a)||(r.parent=a),r})}function ne(e){return A(e.edges(),function(t){var n=e.edge(t),a={v:t.v,w:t.w};return N(t.name)||(a.name=t.name),N(n)||(a.value=n),a})}var d=new Map,X=new Map,J=new Map,te=w(()=>{X.clear(),J.clear(),d.clear()},"clear"),D=w((e,t)=>{const n=X.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),se=w((e,t)=>{const n=X.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||D(e.v,t)||D(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),G=w((e,t,n,a)=>{i.warn("Copying children of ",e,"root",a,"data",t.node(e),a);const r=t.children(e)||[];e!==a&&r.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",r),r.forEach(o=>{if(t.children(o).length>0)G(o,t,n,a);else{const l=t.node(o);i.info("cp ",o," to ",a," with parent ",e),n.setNode(o,l),a!==t.parent(o)&&(i.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==a&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",a,"data",t.node(e),a),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==a,"node!==clusterId",o!==e));const u=t.edges(o);i.debug("Copying Edges",u),u.forEach(c=>{i.info("Edge",c);const m=t.edge(c.v,c.w,c.name);i.info("Edge data",m,a);try{se(c,a)?(i.info("Copying as ",c.v,c.w,m,c.name),n.setEdge(c.v,c.w,m,c.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",c.v,"-->",c.w," rootId: ",a," clusterId:",e)}catch(v){i.error(v)}})}i.debug("Removing node",o),t.removeNode(o)})},"copy"),R=w((e,t)=>{const n=t.children(e);let a=[...n];for(const r of n)J.set(r,e),a=[...a,...R(r,t)];return a},"extractDescendants"),ie=w((e,t,n)=>{const a=e.edges().filter(c=>c.v===t||c.w===t),r=e.edges().filter(c=>c.v===n||c.w===n),o=a.map(c=>({v:c.v===t?n:c.v,w:c.w===t?t:c.w})),l=r.map(c=>({v:c.v,w:c.w}));return o.filter(c=>l.some(m=>c.v===m.v&&c.w===m.w))},"findCommonEdges"),C=w((e,t,n)=>{const a=t.children(e);if(i.trace("Searching children of id ",e,a),a.length<1)return e;let r;for(const o of a){const l=C(o,t,n),u=ie(t,n,l);if(l)if(u.length>0)r=l;else return l}return r},"findNonClusterChild"),k=w(e=>!d.has(e)||!d.get(e).externalConnections?e:d.has(e)?d.get(e).id:e,"getAnchorId"),re=w((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",C(n,e,n)),X.set(n,R(n,e)),d.set(n,{id:C(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const a=e.children(n),r=e.edges();a.length>0?(i.debug("Cluster identified",n,X),r.forEach(o=>{const l=D(o.v,n),u=D(o.w,n);l^u&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",X.get(n)),d.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,X)});for(let n of d.keys()){const a=d.get(n).id,r=e.parent(a);r!==n&&d.has(r)&&!d.get(r).externalConnections&&(d.get(n).id=r)}e.edges().forEach(function(n){const a=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let r=n.v,o=n.w;if(i.warn("Fix XXX",d,"ids:",n.v,n.w,"Translating: ",d.get(n.v)," --- ",d.get(n.w)),d.get(n.v)||d.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),r=k(n.v),o=k(n.w),e.removeEdge(n.v,n.w,n.name),r!==n.v){const l=e.parent(r);d.get(l).externalConnections=!0,a.fromCluster=n.v}if(o!==n.w){const l=e.parent(o);d.get(l).externalConnections=!0,a.toCluster=n.w}i.warn("Fix Replacing with XXX",r,o,n.name),e.setEdge(r,o,a,n.name)}}),i.warn("Adjusted Graph",h(e)),T(e,0),i.trace(d)},"adjustClustersAndEdges"),T=w((e,t)=>{if(i.warn("extractor - ",t,h(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),a=!1;for(const r of n){const o=e.children(r);a=a||o.length>0}if(!a){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,d,d.has(r)&&!d.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!d.has(r))i.debug("Not a cluster",r,t);else if(!d.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";d.get(r)?.clusterData?.dir&&(l=d.get(r).clusterData.dir,i.warn("Fixing dir",d.get(r).clusterData.dir,l));const u=new B({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",h(e)),G(r,e,u,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:d.get(r).clusterData,label:d.get(r).label,graph:u}),i.warn("New graph after copy node: (",r,")",h(u)),i.debug("Old graph after copy",h(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!d.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(d);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const o=e.node(r);i.warn(" Now next level",r,o),o?.clusterNode&&T(o.graph,t+1)}},"extractor"),M=w((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(a=>{const r=e.children(a),o=M(e,r);n=[...n,...o]}),n},"sorter"),oe=w(e=>M(e,e.children()),"sortNodesByHierarchy"),F=w(async(e,t,n,a,r,o)=>{i.warn("Graph in recursive render:XAX",h(t),r);const l=t.graph().rankdir;i.trace("Dir in recursive render - dir:",l);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const c=u.insert("g").attr("class","clusters"),m=u.insert("g").attr("class","edgePaths"),v=u.insert("g").attr("class","edgeLabels"),b=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(f){const s=t.node(f);if(r!==void 0){const g=JSON.parse(JSON.stringify(r.clusterData));i.trace(`Setting data for parent cluster XXX
|
|
2
|
-
Node.id = `,f,`
|
|
3
|
-
data=`,g.height,`
|
|
4
|
-
Parent cluster`,r.height),t.setNode(r.id,g),t.parent(f)||(i.trace("Setting parent",f,r.id),t.setParent(f,r.id,g))}if(i.info("(Insert) Node XXX"+f+": "+JSON.stringify(t.node(f))),s?.clusterNode){i.info("Cluster identified XBX",f,s.width,t.node(f));const{ranksep:g,nodesep:p}=t.graph();s.graph.setGraph({...s.graph.graph(),ranksep:g+25,nodesep:p});const E=await F(b,s.graph,n,a,t.node(f),o),x=E.elem;V(s,x),s.diff=E.diff||0,i.info("New compound node after recursive render XAX",f,"width",s.width,"height",s.height),z(x,s)}else t.children(f).length>0?(i.trace("Cluster - the non recursive path XBX",f,s.id,s,s.width,"Graph:",t),i.trace(C(s.id,t)),d.set(s.id,{id:C(s.id,t),node:s})):(i.trace("Node - the non recursive path XAX",f,b,t.node(f),l),await W(b,t.node(f),{config:o,dir:l}))})),await w(async()=>{const f=t.edges().map(async function(s){const g=t.edge(s.v,s.w,s.name);i.info("Edge "+s.v+" -> "+s.w+": "+JSON.stringify(s)),i.info("Edge "+s.v+" -> "+s.w+": ",s," ",JSON.stringify(t.edge(s))),i.info("Fix",d,"ids:",s.v,s.w,"Translating: ",d.get(s.v),d.get(s.w)),await Q(v,g)});await Promise.all(f)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(h(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),I(t),i.info("Graph after layout:",JSON.stringify(h(t)));let O=0,{subGraphTitleTotalMargin:S}=Z(o);return await Promise.all(oe(t).map(async function(f){const s=t.node(f);if(i.info("Position XBX => "+f+": ("+s.x,","+s.y,") width: ",s.width," height: ",s.height),s?.clusterNode)s.y+=S,i.info("A tainted cluster node XBX1",f,s.id,s.width,s.height,s.x,s.y,t.parent(f)),d.get(s.id).node=s,P(s);else if(t.children(f).length>0){i.info("A pure cluster node XBX1",f,s.id,s.x,s.y,s.width,s.height,t.parent(f)),s.height+=S,t.node(s.parentId);const g=s?.padding/2||0,p=s?.labelBBox?.height||0,E=p-g||0;i.debug("OffsetY",E,"labelHeight",p,"halfPadding",g),await $(c,s),d.get(s.id).node=s}else{const g=t.node(s.parentId);s.y+=S/2,i.info("A regular node XBX1 - using the padding",s.id,"parent",s.parentId,s.width,s.height,s.x,s.y,"offsetY",s.offsetY,"parent",g,g?.offsetY,s),P(s)}})),t.edges().forEach(function(f){const s=t.edge(f);i.info("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(s),s),s.points.forEach(x=>x.y+=S/2);const g=t.node(f.v);var p=t.node(f.w);const E=q(m,s,d,n,g,p,a);K(s,E)}),t.nodes().forEach(function(f){const s=t.node(f);i.info(f,s.type,s.diff),s.isGroup&&(O=s.diff)}),i.warn("Returning from recursive render XAX",u,O),{elem:u,diff:O}},"recursiveRender"),ge=w(async(e,t)=>{const n=new B({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),a=t.select("g");Y(a,e.markers,e.type,e.diagramId),j(),_(),H(),te(),e.nodes.forEach(o=>{n.setNode(o.id,{...o}),o.parentId&&n.setParent(o.id,o.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(o=>{if(o.start===o.end){const l=o.start,u=l+"---"+l+"---1",c=l+"---"+l+"---2",m=n.node(l);n.setNode(u,{domId:u,id:u,parentId:m.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(u,m.parentId),n.setNode(c,{domId:c,id:c,parentId:m.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(c,m.parentId);const v=structuredClone(o),b=structuredClone(o),y=structuredClone(o);v.label="",v.arrowTypeEnd="none",v.id=l+"-cyclic-special-1",b.arrowTypeStart="none",b.arrowTypeEnd="none",b.id=l+"-cyclic-special-mid",y.label="",m.isGroup&&(v.fromCluster=l,y.toCluster=l),y.id=l+"-cyclic-special-2",y.arrowTypeStart="none",n.setEdge(l,u,v,l+"-cyclic-special-0"),n.setEdge(u,c,b,l+"-cyclic-special-1"),n.setEdge(c,l,y,l+"-cyc<lic-special-2")}else n.setEdge(o.start,o.end,{...o},o.id)}),i.warn("Graph at first:",JSON.stringify(h(n))),re(n),i.warn("Graph after XAX:",JSON.stringify(h(n)));const r=U();await F(a,n,e.type,e.diagramId,void 0,r)},"render");export{ge as render};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function J(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function j(n,t){if(!isFinite(n)||n===0)return null;var e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"),i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function K(n){return n=j(Math.abs(n)),n?n[1]:NaN}function Q(n,t){return function(e,i){for(var o=e.length,a=[],c=0,h=n[0],M=0;o>0&&h>0&&(M+h+1>i&&(h=Math.max(1,i-M)),a.push(e.substring(o-=h,o+h)),!((M+=h+1)>i));)h=n[c=(c+1)%n.length];return a.reverse().join(t)}}function V(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var W=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $(n){if(!(t=W.exec(n)))throw new Error("invalid format: "+n);var t;return new L({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}$.prototype=L.prototype;function L(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}L.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function _(n){n:for(var t=n.length,e=1,i=-1,o;e<t;++e)switch(n[e]){case".":i=o=e;break;case"0":i===0&&(i=e),o=e;break;default:if(!+n[e])break n;i>0&&(i=0);break}return i>0?n.slice(0,i)+n.slice(o+1):n}var N;function v(n,t){var e=j(n,t);if(!e)return N=void 0,n.toPrecision(t);var i=e[0],o=e[1],a=o-(N=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,c=i.length;return a===c?i:a>c?i+new Array(a-c+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+j(n,Math.max(0,t+a-1))[0]}function X(n,t){var e=j(n,t);if(!e)return n+"";var i=e[0],o=e[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}const O={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:J,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>X(n*100,t),r:X,s:v,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function R(n){return n}var U=Array.prototype.map,Y=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function nn(n){var t=n.grouping===void 0||n.thousands===void 0?R:Q(U.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",i=n.currency===void 0?"":n.currency[1]+"",o=n.decimal===void 0?".":n.decimal+"",a=n.numerals===void 0?R:V(U.call(n.numerals,String)),c=n.percent===void 0?"%":n.percent+"",h=n.minus===void 0?"−":n.minus+"",M=n.nan===void 0?"NaN":n.nan+"";function T(f,g){f=$(f);var b=f.fill,p=f.align,m=f.sign,w=f.symbol,S=f.zero,E=f.width,F=f.comma,y=f.precision,C=f.trim,d=f.type;d==="n"?(F=!0,d="g"):O[d]||(y===void 0&&(y=12),C=!0,d="g"),(S||b==="0"&&p==="=")&&(S=!0,b="0",p="=");var q=(g&&g.prefix!==void 0?g.prefix:"")+(w==="$"?e:w==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():""),B=(w==="$"?i:/[%p]/.test(d)?c:"")+(g&&g.suffix!==void 0?g.suffix:""),D=O[d],H=/[defgprs%]/.test(d);y=y===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function G(r){var l=q,u=B,x,I,k;if(d==="c")u=D(r)+u,r="";else{r=+r;var P=r<0||1/r<0;if(r=isNaN(r)?M:D(Math.abs(r),y),C&&(r=_(r)),P&&+r==0&&m!=="+"&&(P=!1),l=(P?m==="("?m:h:m==="-"||m==="("?"":m)+l,u=(d==="s"&&!isNaN(r)&&N!==void 0?Y[8+N/3]:"")+u+(P&&m==="("?")":""),H){for(x=-1,I=r.length;++x<I;)if(k=r.charCodeAt(x),48>k||k>57){u=(k===46?o+r.slice(x+1):r.slice(x))+u,r=r.slice(0,x);break}}}F&&!S&&(r=t(r,1/0));var z=l.length+r.length+u.length,s=z<E?new Array(E-z+1).join(b):"";switch(F&&S&&(r=t(s+r,s.length?E-u.length:1/0),s=""),p){case"<":r=l+r+u+s;break;case"=":r=l+s+r+u;break;case"^":r=s.slice(0,z=s.length>>1)+l+r+u+s.slice(z);break;default:r=s+l+r+u;break}return a(r)}return G.toString=function(){return f+""},G}function Z(f,g){var b=Math.max(-8,Math.min(8,Math.floor(K(g)/3)))*3,p=Math.pow(10,-b),m=T((f=$(f),f.type="f",f),{suffix:Y[8+b/3]});return function(w){return m(p*w)}}return{format:T,formatPrefix:Z}}var A,tn,rn;en({thousands:",",grouping:[3],currency:["$",""]});function en(n){return A=nn(n),tn=A.format,rn=A.formatPrefix,A}export{rn as a,tn as b,K as e,$ as f};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import{S as w,an as te,ap as ae,ar as he,Y as ue,W as K,cN as P,V as j,O as pe,M as fe,aa as me,ab as ge,J as ye,H as Se,ao as ve,cO as xe,ag as be}from"./main-BMyWFWYN.js";import{s as we}from"./chunk-QN33PNHL-CPGopyck.js";import{p as Ce}from"./chunk-4BX2VUAB-CdUSDb5d.js";import{p as Te}from"./treemap-GDKQZRPO-TYUv7aqt.js";import{b as O}from"./defaultLocale-DX6XiGOO.js";import{o as Z}from"./ordinal-Cboi1Yqb.js";import"./_baseUniq-P2cIT3Cg.js";import"./_basePickBy-arnwX_WB.js";import"./clone-BnAVnjoT.js";import"./init-Gi6I4Gst.js";function Le(t){var a=0,l=t.children,n=l&&l.length;if(!n)a=1;else for(;--n>=0;)a+=l[n].value;t.value=a}function $e(){return this.eachAfter(Le)}function Ae(t,a){let l=-1;for(const n of this)t.call(a,n,++l,this);return this}function Fe(t,a){for(var l=this,n=[l],o,s,d=-1;l=n.pop();)if(t.call(a,l,++d,this),o=l.children)for(s=o.length-1;s>=0;--s)n.push(o[s]);return this}function Ne(t,a){for(var l=this,n=[l],o=[],s,d,h,m=-1;l=n.pop();)if(o.push(l),s=l.children)for(d=0,h=s.length;d<h;++d)n.push(s[d]);for(;l=o.pop();)t.call(a,l,++m,this);return this}function ke(t,a){let l=-1;for(const n of this)if(t.call(a,n,++l,this))return n}function Me(t){return this.eachAfter(function(a){for(var l=+t(a.data)||0,n=a.children,o=n&&n.length;--o>=0;)l+=n[o].value;a.value=l})}function _e(t){return this.eachBefore(function(a){a.children&&a.children.sort(t)})}function ze(t){for(var a=this,l=Ve(a,t),n=[a];a!==l;)a=a.parent,n.push(a);for(var o=n.length;t!==l;)n.splice(o,0,t),t=t.parent;return n}function Ve(t,a){if(t===a)return t;var l=t.ancestors(),n=a.ancestors(),o=null;for(t=l.pop(),a=n.pop();t===a;)o=t,t=l.pop(),a=n.pop();return o}function De(){for(var t=this,a=[t];t=t.parent;)a.push(t);return a}function Pe(){return Array.from(this)}function Be(){var t=[];return this.eachBefore(function(a){a.children||t.push(a)}),t}function Re(){var t=this,a=[];return t.each(function(l){l!==t&&a.push({source:l.parent,target:l})}),a}function*We(){var t=this,a,l=[t],n,o,s;do for(a=l.reverse(),l=[];t=a.pop();)if(yield t,n=t.children)for(o=0,s=n.length;o<s;++o)l.push(n[o]);while(l.length)}function Q(t,a){t instanceof Map?(t=[void 0,t],a===void 0&&(a=Ie)):a===void 0&&(a=He);for(var l=new J(t),n,o=[l],s,d,h,m;n=o.pop();)if((d=a(n.data))&&(m=(d=Array.from(d)).length))for(n.children=d,h=m-1;h>=0;--h)o.push(s=d[h]=new J(d[h])),s.parent=n,s.depth=n.depth+1;return l.eachBefore(Ge)}function Ee(){return Q(this).eachBefore(Oe)}function He(t){return t.children}function Ie(t){return Array.isArray(t)?t[1]:null}function Oe(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function Ge(t){var a=0;do t.height=a;while((t=t.parent)&&t.height<++a)}function J(t){this.data=t,this.depth=this.height=0,this.parent=null}J.prototype=Q.prototype={constructor:J,count:$e,each:Ae,eachAfter:Ne,eachBefore:Fe,find:ke,sum:Me,sort:_e,path:ze,ancestors:De,descendants:Pe,leaves:Be,links:Re,copy:Ee,[Symbol.iterator]:We};function qe(t){if(typeof t!="function")throw new Error;return t}function G(){return 0}function q(t){return function(){return t}}function Xe(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Ye(t,a,l,n,o){for(var s=t.children,d,h=-1,m=s.length,c=t.value&&(n-a)/t.value;++h<m;)d=s[h],d.y0=l,d.y1=o,d.x0=a,d.x1=a+=d.value*c}function je(t,a,l,n,o){for(var s=t.children,d,h=-1,m=s.length,c=t.value&&(o-l)/t.value;++h<m;)d=s[h],d.x0=a,d.x1=n,d.y0=l,d.y1=l+=d.value*c}var Je=(1+Math.sqrt(5))/2;function Ue(t,a,l,n,o,s){for(var d=[],h=a.children,m,c,u=0,b=0,r=h.length,x,S,v=a.value,p,g,k,N,V,W,M;u<r;){x=o-l,S=s-n;do p=h[b++].value;while(!p&&b<r);for(g=k=p,W=Math.max(S/x,x/S)/(v*t),M=p*p*W,V=Math.max(k/M,M/g);b<r;++b){if(p+=c=h[b].value,c<g&&(g=c),c>k&&(k=c),M=p*p*W,N=Math.max(k/M,M/g),N>V){p-=c;break}V=N}d.push(m={value:p,dice:x<S,children:h.slice(u,b)}),m.dice?Ye(m,l,n,o,v?n+=S*p/v:s):je(m,l,n,v?l+=x*p/v:o,s),v-=p,u=b}return d}const Ze=(function t(a){function l(n,o,s,d,h){Ue(a,n,o,s,d,h)}return l.ratio=function(n){return t((n=+n)>1?n:1)},l})(Je);function Ke(){var t=Ze,a=!1,l=1,n=1,o=[0],s=G,d=G,h=G,m=G,c=G;function u(r){return r.x0=r.y0=0,r.x1=l,r.y1=n,r.eachBefore(b),o=[0],a&&r.eachBefore(Xe),r}function b(r){var x=o[r.depth],S=r.x0+x,v=r.y0+x,p=r.x1-x,g=r.y1-x;p<S&&(S=p=(S+p)/2),g<v&&(v=g=(v+g)/2),r.x0=S,r.y0=v,r.x1=p,r.y1=g,r.children&&(x=o[r.depth+1]=s(r)/2,S+=c(r)-x,v+=d(r)-x,p-=h(r)-x,g-=m(r)-x,p<S&&(S=p=(S+p)/2),g<v&&(v=g=(v+g)/2),t(r,S,v,p,g))}return u.round=function(r){return arguments.length?(a=!!r,u):a},u.size=function(r){return arguments.length?(l=+r[0],n=+r[1],u):[l,n]},u.tile=function(r){return arguments.length?(t=qe(r),u):t},u.padding=function(r){return arguments.length?u.paddingInner(r).paddingOuter(r):u.paddingInner()},u.paddingInner=function(r){return arguments.length?(s=typeof r=="function"?r:q(+r),u):s},u.paddingOuter=function(r){return arguments.length?u.paddingTop(r).paddingRight(r).paddingBottom(r).paddingLeft(r):u.paddingTop()},u.paddingTop=function(r){return arguments.length?(d=typeof r=="function"?r:q(+r),u):d},u.paddingRight=function(r){return arguments.length?(h=typeof r=="function"?r:q(+r),u):h},u.paddingBottom=function(r){return arguments.length?(m=typeof r=="function"?r:q(+r),u):m},u.paddingLeft=function(r){return arguments.length?(c=typeof r=="function"?r:q(+r),u):c},u}var R,ne=(R=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=pe,this.getAccTitle=fe,this.setDiagramTitle=me,this.getDiagramTitle=ge,this.getAccDescription=ye,this.setAccDescription=Se}getNodes(){return this.nodes}getConfig(){const a=ve,l=ae();return te({...a.treemap,...l.treemap??{}})}addNode(a,l){this.nodes.push(a),this.levels.set(a,l),l===0&&(this.outerNodes.push(a),this.root??=a)}getRoot(){return{name:"",children:this.outerNodes}}addClass(a,l){const n=this.classes.get(a)??{id:a,styles:[],textStyles:[]},o=l.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");o&&o.forEach(s=>{xe(s)&&(n?.textStyles?n.textStyles.push(s):n.textStyles=[s]),n?.styles?n.styles.push(s):n.styles=[s]}),this.classes.set(a,n)}getClasses(){return this.classes}getStylesForClass(a){return this.classes.get(a)?.styles??[]}clear(){be(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}},w(R,"TreeMapDB"),R);function le(t){if(!t.length)return[];const a=[],l=[];return t.forEach(n=>{const o={name:n.name,children:n.type==="Leaf"?void 0:[]};for(o.classSelector=n?.classSelector,n?.cssCompiledStyles&&(o.cssCompiledStyles=[n.cssCompiledStyles]),n.type==="Leaf"&&n.value!==void 0&&(o.value=n.value);l.length>0&&l[l.length-1].level>=n.level;)l.pop();if(l.length===0)a.push(o);else{const s=l[l.length-1].node;s.children?s.children.push(o):s.children=[o]}n.type!=="Leaf"&&l.push({node:o,level:n.level})}),a}w(le,"buildHierarchy");var Qe=w((t,a)=>{Ce(t,a);const l=[];for(const s of t.TreemapRows??[])s.$type==="ClassDefStatement"&&a.addClass(s.className??"",s.styleText??"");for(const s of t.TreemapRows??[]){const d=s.item;if(!d)continue;const h=s.indent?parseInt(s.indent):0,m=et(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],u=c.length>0?c.join(";"):void 0,b={level:h,name:m,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:u};l.push(b)}const n=le(l),o=w((s,d)=>{for(const h of s)a.addNode(h,d),h.children&&h.children.length>0&&o(h.children,d+1)},"addNodesRecursively");o(n,0)},"populate"),et=w(t=>t.name?String(t.name):"","getItemName"),re={parser:{yy:void 0},parse:w(async t=>{try{const l=await Te("treemap",t);K.debug("Treemap AST:",l);const n=re.parser?.yy;if(!(n instanceof ne))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.");Qe(l,n)}catch(a){throw K.error("Error parsing treemap:",a),a}},"parse")},tt=10,B=10,X=25,at=w((t,a,l,n)=>{const o=n.db,s=o.getConfig(),d=s.padding??tt,h=o.getDiagramTitle(),m=o.getRoot(),{themeVariables:c}=ae();if(!m)return;const u=h?30:0,b=he(a),r=s.nodeWidth?s.nodeWidth*B:960,x=s.nodeHeight?s.nodeHeight*B:500,S=r,v=x+u;b.attr("viewBox",`0 0 ${S} ${v}`),ue(b,v,S,s.useMaxWidth);let p;try{const e=s.valueFormat||",";if(e==="$0,0")p=w(i=>"$"+O(",")(i),"valueFormat");else if(e.startsWith("$")&&e.includes(",")){const i=/\.\d+/.exec(e),f=i?i[0]:"";p=w(C=>"$"+O(","+f)(C),"valueFormat")}else if(e.startsWith("$")){const i=e.substring(1);p=w(f=>"$"+O(i||"")(f),"valueFormat")}else p=O(e)}catch(e){K.error("Error creating format function:",e),p=O(",")}const g=Z().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]),k=Z().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]),N=Z().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]);h&&b.append("text").attr("x",S/2).attr("y",u/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const V=b.append("g").attr("transform",`translate(0, ${u})`).attr("class","treemapContainer"),W=Q(m).sum(e=>e.value??0).sort((e,i)=>(i.value??0)-(e.value??0)),ee=Ke().size([r,x]).paddingTop(e=>e.children&&e.children.length>0?X+B:0).paddingInner(d).paddingLeft(e=>e.children&&e.children.length>0?B:0).paddingRight(e=>e.children&&e.children.length>0?B:0).paddingBottom(e=>e.children&&e.children.length>0?B:0).round(!0)(W),se=ee.descendants().filter(e=>e.children&&e.children.length>0),E=V.selectAll(".treemapSection").data(se).enter().append("g").attr("class","treemapSection").attr("transform",e=>`translate(${e.x0},${e.y0})`);E.append("rect").attr("width",e=>e.x1-e.x0).attr("height",X).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",e=>e.depth===0?"display: none;":""),E.append("clipPath").attr("id",(e,i)=>`clip-section-${a}-${i}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-12)).attr("height",X),E.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class",(e,i)=>`treemapSection section${i}`).attr("fill",e=>g(e.data.name)).attr("fill-opacity",.6).attr("stroke",e=>k(e.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",e=>{if(e.depth===0)return"display: none;";const i=P({cssCompiledStyles:e.data.cssCompiledStyles});return i.nodeStyles+";"+i.borderStyles.join(";")}),E.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",X/2).attr("dominant-baseline","middle").text(e=>e.depth===0?"":e.data.name).attr("font-weight","bold").attr("style",e=>{if(e.depth===0)return"display: none;";const i="dominant-baseline: middle; font-size: 12px; fill:"+N(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:e.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).each(function(e){if(e.depth===0)return;const i=j(this),f=e.data.name;i.text(f);const C=e.x1-e.x0,L=6;let $;s.showValues!==!1&&e.value?$=C-10-30-10-L:$=C-L-6;const A=Math.max(15,$),y=i.node();if(y.getComputedTextLength()>A){let T=f;for(;T.length>0;){if(T=f.substring(0,T.length-1),T.length===0){i.text("..."),y.getComputedTextLength()>A&&i.text("");break}if(i.text(T+"..."),y.getComputedTextLength()<=A)break}}}),s.showValues!==!1&&E.append("text").attr("class","treemapSectionValue").attr("x",e=>e.x1-e.x0-10).attr("y",X/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(e=>e.value?p(e.value):"").attr("font-style","italic").attr("style",e=>{if(e.depth===0)return"display: none;";const i="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:e.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")});const ie=ee.leaves(),Y=V.selectAll(".treemapLeafGroup").data(ie).enter().append("g").attr("class",(e,i)=>`treemapNode treemapLeafGroup leaf${i}${e.data.classSelector?` ${e.data.classSelector}`:""}x`).attr("transform",e=>`translate(${e.x0},${e.y0})`);Y.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class","treemapLeaf").attr("fill",e=>e.parent?g(e.parent.data.name):g(e.data.name)).attr("style",e=>P({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",e=>e.parent?g(e.parent.data.name):g(e.data.name)).attr("stroke-width",3),Y.append("clipPath").attr("id",(e,i)=>`clip-${a}-${i}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-4)).attr("height",e=>Math.max(0,e.y1-e.y0-4)),Y.append("text").attr("class","treemapLabel").attr("x",e=>(e.x1-e.x0)/2).attr("y",e=>(e.y1-e.y0)/2).attr("style",e=>{const i="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(e.data.name)+";",f=P({cssCompiledStyles:e.data.cssCompiledStyles});return i+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(e,i)=>`url(#clip-${a}-${i})`).text(e=>e.data.name).each(function(e){const i=j(this),f=e.x1-e.x0,C=e.y1-e.y0,L=i.node(),$=4,D=f-2*$,A=C-2*$;if(D<10||A<10){i.style("display","none");return}let y=parseInt(i.style("font-size"),10);const _=8,F=28,T=.6,z=6,H=2;for(;L.getComputedTextLength()>D&&y>_;)y--,i.style("font-size",`${y}px`);let I=Math.max(z,Math.min(F,Math.round(y*T))),U=y+H+I;for(;U>A&&y>_&&(y--,I=Math.max(z,Math.min(F,Math.round(y*T))),!(I<z&&y===_));)i.style("font-size",`${y}px`),U=y+H+I;i.style("font-size",`${y}px`),(L.getComputedTextLength()>D||y<_||A<y)&&i.style("display","none")}),s.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: 28px;fill:"+N(i.data.name)+";",C=P({cssCompiledStyles:i.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(i,f)=>`url(#clip-${a}-${f})`).text(i=>i.value?p(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 $=parseFloat(L.style("font-size")),D=28,A=.6,y=6,_=2,F=Math.max(y,Math.min(D,Math.round($*A)));f.style("font-size",`${F}px`);const z=(i.y1-i.y0)/2+$/2+_;f.attr("y",z);const H=i.x1-i.x0,ce=i.y1-i.y0-4,de=H-8;f.node().getComputedTextLength()>de||z+F>ce||F<y?f.style("display","none"):f.style("display",null)});const oe=s.diagramPadding??8;we(b,oe,"flowchart",s?.useMaxWidth||!1)},"draw"),nt=w(function(t,a){return a.db.getClasses()},"getClasses"),lt={draw:at,getClasses:nt},rt={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},st=w(({treemap:t}={})=>{const a=te(rt,t);return`
|
|
2
|
-
.treemapNode.section {
|
|
3
|
-
stroke: ${a.sectionStrokeColor};
|
|
4
|
-
stroke-width: ${a.sectionStrokeWidth};
|
|
5
|
-
fill: ${a.sectionFillColor};
|
|
6
|
-
}
|
|
7
|
-
.treemapNode.leaf {
|
|
8
|
-
stroke: ${a.leafStrokeColor};
|
|
9
|
-
stroke-width: ${a.leafStrokeWidth};
|
|
10
|
-
fill: ${a.leafFillColor};
|
|
11
|
-
}
|
|
12
|
-
.treemapLabel {
|
|
13
|
-
fill: ${a.labelColor};
|
|
14
|
-
font-size: ${a.labelFontSize};
|
|
15
|
-
}
|
|
16
|
-
.treemapValue {
|
|
17
|
-
fill: ${a.valueColor};
|
|
18
|
-
font-size: ${a.valueFontSize};
|
|
19
|
-
}
|
|
20
|
-
.treemapTitle {
|
|
21
|
-
fill: ${a.titleColor};
|
|
22
|
-
font-size: ${a.titleFontSize};
|
|
23
|
-
}
|
|
24
|
-
`},"getStyles"),it=st,vt={parser:re,get db(){return new ne},renderer:lt,styles:it};export{vt as diagram};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import{S as b,an as m,ar as B,Y as C,W as w,O as S,M as D,aa as T,ab as P,J as z,H as E,ao as F,ap as A,ag as W}from"./main-BMyWFWYN.js";import{p as _}from"./chunk-4BX2VUAB-CdUSDb5d.js";import{p as M}from"./treemap-GDKQZRPO-TYUv7aqt.js";import"./_baseUniq-P2cIT3Cg.js";import"./_basePickBy-arnwX_WB.js";import"./clone-BnAVnjoT.js";var N=F.packet,u,v=(u=class{constructor(){this.packet=[],this.setAccTitle=S,this.getAccTitle=D,this.setDiagramTitle=T,this.getDiagramTitle=P,this.getAccDescription=z,this.setAccDescription=E}getConfig(){const t=m({...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=[]}},b(u,"PacketDB"),u),Y=1e4,L=b((e,t)=>{_(e,t);let r=-1,o=[],n=1;const{bitsPerRow:l}=t.getConfig();for(let{start:a,end:i,bits:d,label:c}of e.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,w.debug(`Packet block ${a} - ${r} with label ${c}`);o.length<=l+1&&t.getPacket().length<Y;){const[p,s]=O({start:a,end:i,bits:d,label:c},n,l);if(o.push(p),p.end+1===n*l&&(t.pushWord(o),o=[],n++),!s)break;({start:a,end:i,bits:d,label:c}=s)}}t.pushWord(o)},"populate"),O=b((e,t,r)=>{if(e.start===void 0)throw new Error("start should have been set during first phase");if(e.end===void 0)throw new Error("end should have been set during first phase");if(e.start>e.end)throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*r)return[e,void 0];const o=t*r-1,n=t*r;return[{start:e.start,end:o,label:e.label,bits:o-e.start},{start:n,end:e.end,label:e.label,bits:e.end-n}]},"getNextFittingBlock"),x={parser:{yy:void 0},parse:b(async e=>{const t=await M("packet",e),r=x.parser?.yy;if(!(r instanceof v))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.");w.debug(t),L(t,r)},"parse")},H=b((e,t,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(t);f.attr("viewbox",`0 0 ${k} ${g}`),C(f,g,k,l.useMaxWidth);for(const[y,$]of p.entries())I(f,$,y,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"),I=b((e,t,r,{rowHeight:o,paddingX:n,paddingY:l,bitWidth:a,bitsPerRow:i,showBits:d})=>{const c=e.append("g"),p=r*(o+l)+l;for(const s of t){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:H},G={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},J=b(({packet:e}={})=>{const t=m(G,e);return`
|
|
2
|
-
.packetByte {
|
|
3
|
-
font-size: ${t.byteFontSize};
|
|
4
|
-
}
|
|
5
|
-
.packetByte.start {
|
|
6
|
-
fill: ${t.startByteColor};
|
|
7
|
-
}
|
|
8
|
-
.packetByte.end {
|
|
9
|
-
fill: ${t.endByteColor};
|
|
10
|
-
}
|
|
11
|
-
.packetLabel {
|
|
12
|
-
fill: ${t.labelColor};
|
|
13
|
-
font-size: ${t.labelFontSize};
|
|
14
|
-
}
|
|
15
|
-
.packetTitle {
|
|
16
|
-
fill: ${t.titleColor};
|
|
17
|
-
font-size: ${t.titleFontSize};
|
|
18
|
-
}
|
|
19
|
-
.packetBlock {
|
|
20
|
-
stroke: ${t.blockStrokeColor};
|
|
21
|
-
stroke-width: ${t.blockStrokeWidth};
|
|
22
|
-
fill: ${t.blockFillColor};
|
|
23
|
-
}
|
|
24
|
-
`},"styles"),V={parser:x,get db(){return new v},renderer:j,styles:J};export{V as diagram};
|