@tequila99/githuman 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -0
- package/dist/cli/config.js +13 -1
- package/dist/cli/server-runtime.js +3 -0
- package/dist/server/app.js +36 -4
- package/dist/server/config/agents.js +2 -1
- package/dist/server/config/openapi.js +4 -0
- package/dist/server/db/migrations.js +55 -0
- package/dist/server/errors/notes.js +3 -0
- package/dist/server/hooks/notes/same-origin.js +37 -0
- package/dist/server/hooks/terminal/local-origin.js +2 -1
- package/dist/server/repositories/notes-catalog.repo.js +128 -0
- package/dist/server/repositories/notes.repo.js +402 -0
- package/dist/server/routes/notes.js +167 -0
- package/dist/server/routes/terminal.js +2 -1
- package/dist/server/services/git.service.js +15 -11
- package/dist/server/services/notes-identity.service.js +726 -0
- package/dist/server/services/notes-operations.service.js +298 -0
- package/dist/server/services/notes-watcher.service.js +44 -0
- package/dist/server/services/notes-writer.service.js +116 -0
- package/dist/server/services/notes.service.js +125 -0
- package/dist/server/services/terminal/backend.js +6 -3
- package/dist/server/services/terminal/channel.js +6 -3
- package/dist/server/services/terminal/registry.js +10 -5
- package/dist/server/services/terminal/session.js +10 -5
- package/dist/server/services/terminal/tokens.js +4 -2
- package/dist/server/utils/hash.js +4 -0
- package/dist/server/utils/note-asset-format.js +19 -0
- package/dist/server/utils/system-error.js +14 -0
- package/dist/shared/events/types.js +1 -0
- package/dist/shared/notes/asset-formats.js +39 -0
- package/dist/shared/notes/constants.js +2 -0
- package/dist/shared/notes/document.js +118 -0
- package/dist/shared/notes/identity.js +24 -0
- package/dist/shared/notes/links.js +44 -0
- package/dist/shared/notes/reference-path.js +54 -0
- package/dist/shared/notes/references.js +190 -0
- package/dist/shared/notes/schemas.js +164 -0
- package/dist/shared/notes/types.js +1 -0
- package/dist/shared/utils/heading-slug.js +7 -0
- package/dist/shared/utils/is-uuid.js +5 -0
- package/dist/shared/utils/safe-decode.js +9 -0
- package/dist/web/assets/AppPage-cl-3VfAl.js +1 -0
- package/dist/web/assets/ClosePopup-D2_HzWXW.js +1 -0
- package/dist/web/assets/CreateButton-pmDRGwna.js +93 -0
- package/dist/web/assets/CreateReviewFabButton-CcXWnmSN.js +1 -0
- package/dist/web/assets/{ErrorNotFound-CYOZg8yN.js → ErrorNotFound-Cq0wNQMu.js} +1 -1
- package/dist/web/assets/IndexPage-CmBmgu4A.js +1 -0
- package/dist/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/web/assets/KaTeX_Size3-Regular-gV2CO0n9.woff2 +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/web/assets/MainLayout-DM30ynlR.css +1 -0
- package/dist/web/assets/MainLayout-DOGoQ-1m.js +6 -0
- package/dist/web/assets/NoteVisualEditor-CClIKW0X.css +1 -0
- package/dist/web/assets/NoteVisualEditor-zjZr9aod.js +1056 -0
- package/dist/web/assets/NotesPage-C5VXA9Bb.css +1 -0
- package/dist/web/assets/NotesPage-Jeva3Jta.js +114 -0
- package/dist/web/assets/{PdfPreview-CIiKnzQN.js → PdfPreview-CdgeqqEv.js} +1 -1
- package/dist/web/assets/QBtn-DoggJe1Q.js +1 -0
- package/dist/web/assets/QFab-DyUFgj0W.js +1 -0
- package/dist/web/assets/QForm-BiRkV9BY.js +4 -0
- package/dist/web/assets/QInput-DJgTh2Qy.js +1 -0
- package/dist/web/assets/QScrollArea-DfPW35JQ.js +1 -0
- package/dist/web/assets/QSelect-BpZ5KfWP.js +1 -0
- package/dist/web/assets/QSpace-BRLIXkHB.js +1 -0
- package/dist/web/assets/ReviewDetailPage-CpJPrSKO.js +1 -0
- package/dist/web/assets/ReviewsPage-BaxUZzUZ.js +1 -0
- package/dist/web/assets/{StatusSwitcher-DTD5inU1.css → StatusSwitcher-BCv_9MtI.css} +1 -1
- package/dist/web/assets/StatusSwitcher-D5UG_YWP.js +1 -0
- package/dist/web/assets/{TerminalView-BurzSD2L.css → TerminalView-C1jFlfLH.css} +1 -1
- package/dist/web/assets/{TerminalView-Ch-ndYr6.js → TerminalView-DMJTXE-G.js} +2 -2
- package/dist/web/assets/_baseMerge-BzZFQ6mI.js +1 -0
- package/dist/web/assets/{abnfDiagram-O67JEVCF-Cab71FlB.js → abnfDiagram-O67JEVCF-CiOkMSRz.js} +1 -1
- package/dist/web/assets/agent-icon-Dx8WBYX_.js +1 -0
- package/dist/web/assets/agent-store-B1VK6S0D.js +1 -0
- package/dist/web/assets/apl-gfMMiTNf.js +1 -0
- package/dist/web/assets/{app-info-store-BmD_P8q2.js → app-info-store-D76h_OdJ.js} +1 -1
- package/dist/web/assets/architecture-7GRP2DOG-Byc4Oz95.js +1 -0
- package/dist/web/assets/{architectureDiagram-NJMV4G6O-Dl1WKOEi.js → architectureDiagram-NJMV4G6O-BexHJffj.js} +1 -1
- package/dist/web/assets/asciiarmor-C_eisQCp.js +1 -0
- package/dist/web/assets/asn1-DCl_8MCW.js +1 -0
- package/dist/web/assets/asterisk-BEn0Cwpx.js +1 -0
- package/dist/web/assets/{blockDiagram-BEXU5L5S-CZ3Lxybj.js → blockDiagram-BEXU5L5S-CEyB_5a1.js} +1 -1
- package/dist/web/assets/brainfuck-D5EjA2JK.js +1 -0
- package/dist/web/assets/{c4Diagram-YGBWAQC7-ULi06PEd.js → c4Diagram-YGBWAQC7-BRNWA7xI.js} +1 -1
- package/dist/web/assets/ccount-CcG1m-Yh.js +1 -0
- package/dist/web/assets/channel-DbRAFIx1.js +1 -0
- package/dist/web/assets/{chunk-3FUC2YCW-B1f60wx3.js → chunk-3FUC2YCW-BcQR1JDF.js} +1 -1
- package/dist/web/assets/{chunk-5DYCD2WN-f6Pcl3dF.js → chunk-5DYCD2WN-D6aQ1hFt.js} +1 -1
- package/dist/web/assets/{chunk-742MDFTN-szX1QirW.js → chunk-742MDFTN-BRgrFtkf.js} +1 -1
- package/dist/web/assets/{chunk-7INBJB4K-CP_ynmAQ.js → chunk-7INBJB4K-3RBjXeq6.js} +1 -1
- package/dist/web/assets/{chunk-7M6MHVWA-DPL74uZE.js → chunk-7M6MHVWA-Malugc_N.js} +5 -5
- package/dist/web/assets/{chunk-7PRAP22T-DH9TawZY.js → chunk-7PRAP22T-Bb3gaISA.js} +1 -1
- package/dist/web/assets/{chunk-GTNCS2PH-CKAuGvnf.js → chunk-GTNCS2PH-Cps7XhUC.js} +1 -1
- package/dist/web/assets/{chunk-GWA4HPMP-DTbHCHSN.js → chunk-GWA4HPMP-Bfp2Tg3_.js} +1 -1
- package/dist/web/assets/{chunk-MBY4JIJT-ClgvJMtC.js → chunk-MBY4JIJT-IfXbX1Ur.js} +1 -1
- package/dist/web/assets/{chunk-NETBCI7D-Dq5Z7z8S.js → chunk-NETBCI7D-r2fmahwk.js} +1 -1
- package/dist/web/assets/{chunk-O7XYJQB3-C0By5mcm.js → chunk-O7XYJQB3-sadsiWmA.js} +1 -1
- package/dist/web/assets/{chunk-UA2S7LBM-BtquYpxe.js → chunk-UA2S7LBM-DibfwtDn.js} +1 -1
- package/dist/web/assets/{chunk-WEXAMYUT-BlZL42XJ.js → chunk-WEXAMYUT-DBouMgEO.js} +1 -1
- package/dist/web/assets/{chunk-Z7XXMR3K-BbtQbAvv.js → chunk-Z7XXMR3K-fAHToON5.js} +1 -1
- package/dist/web/assets/{chunk-ZIGJFQKS-tC_YdRrm.js → chunk-ZIGJFQKS-CJG1UIHO.js} +1 -1
- package/dist/web/assets/{classDiagram-v2-NBCMYWYE-CvlA_A4N.js → classDiagram-v2-NBCMYWYE-CPHP5ynj.js} +4 -4
- package/dist/web/assets/clike-D_6L3tnO.js +1 -0
- package/dist/web/assets/clojure-BflJGmDX.js +1 -0
- package/dist/web/assets/cmake-84nbDH0I.js +1 -0
- package/dist/web/assets/cobol-DHLQUbN7.js +1 -0
- package/dist/web/assets/coffeescript-De_zI4J0.js +1 -0
- package/dist/web/assets/commonlisp-DgAKBe0r.js +1 -0
- package/dist/web/assets/core-Bumj8M77.js +12 -0
- package/dist/web/assets/crystal-Bsdphhtm.js +1 -0
- package/dist/web/assets/css-CnaYoQib.js +1 -0
- package/dist/web/assets/{cynefin-OW5HDTMX-DFbhKkIi.js → cynefin-OW5HDTMX-BU7_LYGR.js} +1 -1
- package/dist/web/assets/{cynefinDiagram-VND7K2PF-DHGaLNQN.js → cynefinDiagram-VND7K2PF-BXFEy9Io.js} +1 -1
- package/dist/web/assets/cypher-p9eYesGn.js +1 -0
- package/dist/web/assets/d-DWkQyNnU.js +1 -0
- package/dist/web/assets/dagre-6A5THRUB-aKpdpQ18.js +4 -0
- package/dist/web/assets/{diagram-22UHCM2B-Djjo5ftL.js → diagram-22UHCM2B-ddbRgIQ9.js} +8 -8
- package/dist/web/assets/{diagram-3UASUU5V-BcP7pJru.js → diagram-3UASUU5V-vNYy6WP_.js} +1 -1
- package/dist/web/assets/{diagram-ATOU4E4O-o_vsc8em.js → diagram-ATOU4E4O-B9Z3zFfp.js} +1 -1
- package/dist/web/assets/{diagram-CDSNMT55-eyN9Aru8.js → diagram-CDSNMT55-D3TaDPXU.js} +1 -1
- package/dist/web/assets/{diagram-MLGK6HIB-Dfjipnvb.js → diagram-MLGK6HIB-DOXcXm2Y.js} +1 -1
- package/dist/web/assets/{diagram-MPIPVDR6-C2chocRe.js → diagram-MPIPVDR6-B5E2J8pO.js} +1 -1
- package/dist/web/assets/diff-ChtP43wD.js +1 -0
- package/dist/web/assets/dist-3B0OaUZ-.js +1 -0
- package/dist/web/assets/dist-BFbA030x.js +1 -0
- package/dist/web/assets/dist-BGzvKGEu.js +1 -0
- package/dist/web/assets/dist-BX8UA0fl.js +11 -0
- package/dist/web/assets/dist-BXUopzfH.js +2 -0
- package/dist/web/assets/dist-BY24_62d.js +1 -0
- package/dist/web/assets/dist-C3sBgvRy.js +1 -0
- package/dist/web/assets/dist-C9STut2J.js +1 -0
- package/dist/web/assets/dist-C9cJQvJH.js +23 -0
- package/dist/web/assets/dist-CRoJr3t6.js +6 -0
- package/dist/web/assets/dist-CqGqStPp.js +1 -0
- package/dist/web/assets/dist-Cxd9qKh7.js +1 -0
- package/dist/web/assets/dist-D2Ce45aH.js +13 -0
- package/dist/web/assets/dist-D7Llw4iH.js +1 -0
- package/dist/web/assets/dist-DSPzgfNo.js +1 -0
- package/dist/web/assets/dist-DUt0feNB.js +1 -0
- package/dist/web/assets/dist-DZQ2IsS9.js +1 -0
- package/dist/web/assets/dist-DpKJcdvz.js +1 -0
- package/dist/web/assets/dist-DuZv0LJj.js +1 -0
- package/dist/web/assets/dist-Kd0W7Y_b.js +9 -0
- package/dist/web/assets/dist-LFPPEX39.js +1 -0
- package/dist/web/assets/dist-PDsGXJi3.js +1 -0
- package/dist/web/assets/dist-lC0EKTFH.js +1 -0
- package/dist/web/assets/dockerfile-DJkHQgkl.js +1 -0
- package/dist/web/assets/dtd-DTF72YNO.js +1 -0
- package/dist/web/assets/dylan-BCDoL_-p.js +1 -0
- package/dist/web/assets/ebnf-D4c0_ac3.js +1 -0
- package/dist/web/assets/{ebnfDiagram-ZINNZB2B-CE58dwC-.js → ebnfDiagram-ZINNZB2B-D-OCB_ud.js} +1 -1
- package/dist/web/assets/ecl-BVIeWmwY.js +1 -0
- package/dist/web/assets/eiffel-BEjRio4Q.js +1 -0
- package/dist/web/assets/{elk-276RUBZZ-KyTn9aJi.js → elk-276RUBZZ-CzjP8RHy.js} +1 -1
- package/dist/web/assets/elm-Cshzl8qu.js +1 -0
- package/dist/web/assets/equal-arrays-GA_7ZCAb.js +1 -0
- package/dist/web/assets/{erDiagram-OPXOYQCR-D9aOi7ZD.js → erDiagram-OPXOYQCR-Clohps7p.js} +1 -1
- package/dist/web/assets/erlang-BV0c4Hdn.js +1 -0
- package/dist/web/assets/eventmodeling-NTZA5JFV-FWK4tnN_.js +1 -0
- package/dist/web/assets/factor-LKH5gN8L.js +1 -0
- package/dist/web/assets/fcl-ClOhbFR7.js +1 -0
- package/dist/web/assets/flowDiagram-KWPJA3E3-C10B5_6J.js +1 -0
- package/dist/web/assets/forth-D6RzAl64.js +1 -0
- package/dist/web/assets/fortran-Bt6PBEDR.js +1 -0
- package/dist/web/assets/{ganttDiagram-FUAMR5RP-DRAI6xWM.js → ganttDiagram-FUAMR5RP-ZWH4HYq5.js} +1 -1
- package/dist/web/assets/gas-BHEdbvp9.js +1 -0
- package/dist/web/assets/gherkin-oBAE_ms0.js +1 -0
- package/dist/web/assets/{gitGraph-4MIJSDKK-D1lAB6tr.js → gitGraph-4MIJSDKK-C3AfRnC8.js} +1 -1
- package/dist/web/assets/{gitGraphDiagram-X574FWY7-77GVnwya.js → gitGraphDiagram-X574FWY7-BobkQARX.js} +1 -1
- package/dist/web/assets/graphlib-C64HifUL.js +1 -0
- package/dist/web/assets/groovy-CUpZ7dEl.js +1 -0
- package/dist/web/assets/haskell-BRsoo5mP.js +1 -0
- package/dist/web/assets/haxe-DjVOVvNP.js +1 -0
- package/dist/web/assets/http-CLVgA2GD.js +1 -0
- package/dist/web/assets/i18n-CC_rvfan.js +1 -0
- package/dist/web/assets/idl-BUZw3wgd.js +1 -0
- package/dist/web/assets/index-Ic8yFbJg.js +2 -0
- package/dist/web/assets/{info-A6RAGUB7-Di1qRpwO.js → info-A6RAGUB7-Dh_SAe09.js} +1 -1
- package/dist/web/assets/{infoDiagram-VRGFBTTK-gceHneJ0.js → infoDiagram-VRGFBTTK-izDlhNTw.js} +1 -1
- package/dist/web/assets/{init-app-IHgDyoRH.js → init-app-C1a6BWWN.js} +1 -1
- package/dist/web/assets/{is-DssfAlMe.js → is-CE4jkrGQ.js} +1 -1
- package/dist/web/assets/isArrayLikeObject-BbaDyxId.js +1 -0
- package/dist/web/assets/{ishikawaDiagram-OU5B5YK6-B9QDQoSG.js → ishikawaDiagram-OU5B5YK6-BJ89XzVJ.js} +1 -1
- package/dist/web/assets/javascript-Bu8mWwtz.js +1 -0
- package/dist/web/assets/{journeyDiagram-ZHPQQLJL-CVTMW0pg.js → journeyDiagram-ZHPQQLJL-poV-f08K.js} +1 -1
- package/dist/web/assets/julia-CQfgDRfP.js +1 -0
- package/dist/web/assets/{kanban-definition-PNTS6WVX-TNoWYrUr.js → kanban-definition-PNTS6WVX-Cn3FEnH7.js} +1 -1
- package/dist/web/assets/{line-B_1CHIjZ.js → line-bE9Mqcqy.js} +1 -1
- package/dist/web/assets/livescript-BXxG0Yva.js +1 -0
- package/dist/web/assets/lua-DPCEkfD_.js +1 -0
- package/dist/web/assets/markdown-D85iiL_9.js +15 -0
- package/dist/web/assets/mathematica-u8YMmbU0.js +1 -0
- package/dist/web/assets/mbox-BEMVcqjs.js +1 -0
- package/dist/web/assets/{mermaid-parser.core-LAeoGxkL.js → mermaid-parser.core-Cua7H5pF.js} +3 -3
- package/dist/web/assets/{mermaid.core-DMppSzfM.js → mermaid.core-BMPOA8T-.js} +7 -7
- package/dist/web/assets/{mindmap-definition-NLK3R4M7-DJ-6nTWg.js → mindmap-definition-NLK3R4M7-DaTGr8Fs.js} +1 -1
- package/dist/web/assets/mirc-C9zpzAZU.js +1 -0
- package/dist/web/assets/mllike-B45xgp2S.js +1 -0
- package/dist/web/assets/modelica-CqHI_q-D.js +1 -0
- package/dist/web/assets/mscgen-qgSLujhx.js +1 -0
- package/dist/web/assets/mumps-BSzj6Xyz.js +1 -0
- package/dist/web/assets/nginx-8H7HVH4w.js +1 -0
- package/dist/web/assets/nsis-viPvXFiq.js +1 -0
- package/dist/web/assets/ntriples-B9h1VB_g.js +1 -0
- package/dist/web/assets/octave-D2Q8cUp1.js +1 -0
- package/dist/web/assets/oz-BwTct_5T.js +1 -0
- package/dist/web/assets/{packet-AYTQ26CC-B4tvN4nf.js → packet-AYTQ26CC-DmLfghd9.js} +1 -1
- package/dist/web/assets/pascal-Dp_KdFgX.js +1 -0
- package/dist/web/assets/{pegDiagram-GJSIUBJH-BwQ6jaVw.js → pegDiagram-GJSIUBJH-CTlxXcbf.js} +1 -1
- package/dist/web/assets/perl-BkSkiI9m.js +1 -0
- package/dist/web/assets/{pie-WAS4IAKB-ZwlyCxls.js → pie-WAS4IAKB-52oNsEtc.js} +1 -1
- package/dist/web/assets/{pieDiagram-5QR66LMP-BDYLBnB1.js → pieDiagram-5QR66LMP-CbJtB1te.js} +1 -1
- package/dist/web/assets/pig-AF4Hwhju.js +1 -0
- package/dist/web/assets/pinia-BlCzIRX-.js +1 -0
- package/dist/web/assets/powershell-BcIto6Sf.js +1 -0
- package/dist/web/assets/properties-C357ku5U.js +1 -0
- package/dist/web/assets/protobuf-D1ij_kNL.js +1 -0
- package/dist/web/assets/pug-3K-JMW4g.js +1 -0
- package/dist/web/assets/puppet-BZyAS7I4.js +1 -0
- package/dist/web/assets/purify.es--06brOip.js +3 -0
- package/dist/web/assets/python-B_1Jd8HM.js +1 -0
- package/dist/web/assets/q-B9NhS7L_.js +1 -0
- package/dist/web/assets/{quadrantDiagram-O4NWA36T-CkmLCxOG.js → quadrantDiagram-O4NWA36T-DCg-uD08.js} +1 -1
- package/dist/web/assets/r-CxDmU1I4.js +1 -0
- package/dist/web/assets/{radar-RG4KPBEZ-Ca7H5QOY.js → radar-RG4KPBEZ-9uA3AOZR.js} +1 -1
- package/dist/web/assets/{railroad-74A4TZTK-CX3Z2QYJ.js → railroad-74A4TZTK-BPxQfpxv.js} +1 -1
- package/dist/web/assets/railroad-abnf-HS5TGJTU-CPVHNg05.js +1 -0
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-DAjTaOUg.js +1 -0
- package/dist/web/assets/railroad-peg-WCYAUIDC-DkxyKsj4.js +1 -0
- package/dist/web/assets/{railroadDiagram-XR7U4H2S-D8ii6sM4.js → railroadDiagram-XR7U4H2S-CwBNr6fr.js} +1 -1
- package/dist/web/assets/{requirementDiagram-PLB6GJNP-iHY-tE7c.js → requirementDiagram-PLB6GJNP-BbtZt0St.js} +1 -1
- package/dist/web/assets/rpm-gpDK5sbt.js +1 -0
- package/dist/web/assets/ruby-ChfNwlCY.js +1 -0
- package/dist/web/assets/{safe-storage-BCP757jk.js → safe-storage-Bn-sHAYw.js} +1 -1
- package/dist/web/assets/{sankeyDiagram-IPEJSGJF-CBprSUZk.js → sankeyDiagram-IPEJSGJF-DRWdMnFl.js} +1 -1
- package/dist/web/assets/sas-C2OyD2Y6.js +1 -0
- package/dist/web/assets/scheme-D9qYN0V5.js +1 -0
- package/dist/web/assets/{sequenceDiagram-PO4LG4MO-BkphpOQ_.js → sequenceDiagram-PO4LG4MO-C4tWeWpt.js} +1 -1
- package/dist/web/assets/shell-DwuoZtxw.js +1 -0
- package/dist/web/assets/sieve-tLWDfEkZ.js +1 -0
- package/dist/web/assets/simple-mode-DXiLM1-G.js +1 -0
- package/dist/web/assets/smalltalk-BLp5-jwC.js +1 -0
- package/dist/web/assets/solr-B78wSQJQ.js +1 -0
- package/dist/web/assets/sparql-Dz-mlCAC.js +1 -0
- package/dist/web/assets/spreadsheet-CTIncYxj.js +1 -0
- package/dist/web/assets/sql-DuQMFDvy.js +1 -0
- package/dist/web/assets/{stateDiagram-v2-GCMORJYK-HN1RwAPZ.js → stateDiagram-v2-GCMORJYK-pE0T1U5E.js} +2 -2
- package/dist/web/assets/stex-DNzd62Q_.js +1 -0
- package/dist/web/assets/stylus-BOVgKnng.js +1 -0
- package/dist/web/assets/swift-DKB6_1j6.js +1 -0
- package/dist/web/assets/{swimlanes-2SLR337P-Cc8jyETz.js → swimlanes-2SLR337P-DKky6E3p.js} +1 -1
- package/dist/web/assets/swimlanesDiagram-TC7HE7FX-CPhibEqM.js +8 -0
- package/dist/web/assets/tcl-BGfruO1u.js +1 -0
- package/dist/web/assets/textile-C4jVoHG1.js +1 -0
- package/dist/web/assets/theme-B-g7wQEs.js +1 -0
- package/dist/web/assets/tiddlywiki-VlUiK86J.js +1 -0
- package/dist/web/assets/tiki-AK6FwT8q.js +1 -0
- package/dist/web/assets/{timeline-definition-EJHVYXUP-Bas0Ksw6.js → timeline-definition-EJHVYXUP-CsRzcMLr.js} +1 -1
- package/dist/web/assets/toml-BPTmHmyx.js +1 -0
- package/dist/web/assets/{treeView-Q6P3EWNA-Ck-xt3KO.js → treeView-Q6P3EWNA-CQYqoPG3.js} +1 -1
- package/dist/web/assets/{treemap-WGGIJYW6-k9Ay9d-c.js → treemap-WGGIJYW6-BzFw4gFs.js} +1 -1
- package/dist/web/assets/troff-C2dAgh7P.js +1 -0
- package/dist/web/assets/ttcn-PPSTk1ow.js +1 -0
- package/dist/web/assets/ttcn-cfg-2b4Gb5sE.js +1 -0
- package/dist/web/assets/turtle-Cx3rYX2g.js +1 -0
- package/dist/web/assets/{use-app-theme-BfRqhHi_.js → use-app-theme-9qFZUBqz.js} +1 -1
- package/dist/web/assets/use-dark-BHObfh0O.js +1 -0
- package/dist/web/assets/use-panel-width-Dyh49bod.js +1 -0
- package/dist/web/assets/use-router-link-BGc0noIO.js +1 -0
- package/dist/web/assets/use-server-events-24_soFuj.js +1 -0
- package/dist/web/assets/use-virtual-scroll-BSXYZjZ5.js +1 -0
- package/dist/web/assets/{usecaseDiagram-POWQR4AR-BlzYgvXB.js → usecaseDiagram-POWQR4AR-IMfiBw6h.js} +1 -1
- package/dist/web/assets/vb-BthdM_4N.js +1 -0
- package/dist/web/assets/vbscript-D9f6rSsU.js +1 -0
- package/dist/web/assets/velocity-CqftRsjg.js +1 -0
- package/dist/web/assets/{vennDiagram-UO4OBE2U-gjloIQdf.js → vennDiagram-UO4OBE2U-JKdzpNy2.js} +1 -1
- package/dist/web/assets/verilog-CjI9Y6RI.js +1 -0
- package/dist/web/assets/vhdl-kS471soi.js +1 -0
- package/dist/web/assets/{wardley-WFR3VGLG-BnsYd7B2.js → wardley-WFR3VGLG-B9Yiwlp8.js} +1 -1
- package/dist/web/assets/{wardleyDiagram-VNRHLVJA-ktflnFLZ.js → wardleyDiagram-VNRHLVJA-BVoc2hGS.js} +1 -1
- package/dist/web/assets/webidl-D5jiJvOU.js +1 -0
- package/dist/web/assets/xquery-BKJx4mf9.js +1 -0
- package/dist/web/assets/{xychartDiagram-PMCCYNJV-Ch5MYgz0.js → xychartDiagram-PMCCYNJV-B_XV1aim.js} +1 -1
- package/dist/web/assets/yacas-CXXgtw0p.js +1 -0
- package/dist/web/assets/z80-Co3PbHdE.js +1 -0
- package/dist/web/index.html +6 -3
- package/package.json +8 -2
- package/dist/web/assets/AppPage-BGcEFW_o.js +0 -93
- package/dist/web/assets/CreateReviewFabButton-CdUXVriU.js +0 -1
- package/dist/web/assets/IndexPage-OqgW0yH8.js +0 -1
- package/dist/web/assets/MainLayout-Bi0JE3ER.js +0 -11
- package/dist/web/assets/MainLayout-DPkSlqMr.css +0 -1
- package/dist/web/assets/QBtn-CzrOO1zA.js +0 -1
- package/dist/web/assets/QScrollArea-C4BKutrt.js +0 -1
- package/dist/web/assets/QSelect-BXUaq4ky.js +0 -1
- package/dist/web/assets/QSpace-BMpRu3a-.js +0 -13
- package/dist/web/assets/ReviewDetailPage-DlR7Vxkw.js +0 -1
- package/dist/web/assets/ReviewsPage-DM8XtlUK.js +0 -1
- package/dist/web/assets/StatusSwitcher-Blg5JmAa.js +0 -1
- package/dist/web/assets/agent-store-CDuiBhST.js +0 -1
- package/dist/web/assets/architecture-7GRP2DOG-DMgDJZyQ.js +0 -1
- package/dist/web/assets/channel-BnUyOMnk.js +0 -1
- package/dist/web/assets/core-C37KF-j0.js +0 -12
- package/dist/web/assets/dagre-6A5THRUB-Bk3Po5o5.js +0 -4
- package/dist/web/assets/eventmodeling-NTZA5JFV-7YdTAmVS.js +0 -1
- package/dist/web/assets/flowDiagram-KWPJA3E3-eOIiY2oF.js +0 -1
- package/dist/web/assets/graphlib-DS17s2tU.js +0 -1
- package/dist/web/assets/i18n-C5Xnmkwe.js +0 -1
- package/dist/web/assets/index-BqedItFI.js +0 -2
- package/dist/web/assets/pinia-BKoxNmoW.js +0 -1
- package/dist/web/assets/railroad-abnf-HS5TGJTU-DZSn8MK2.js +0 -1
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-BVTJtDBq.js +0 -1
- package/dist/web/assets/railroad-peg-WCYAUIDC-DMzsNGzj.js +0 -1
- package/dist/web/assets/swimlanesDiagram-TC7HE7FX-BxXXHQ70.js +0 -8
- package/dist/web/assets/theme-CPoPdFci.js +0 -1
- package/dist/web/assets/use-panel-width-C9dWftsJ.js +0 -1
- package/dist/web/assets/use-server-events-znzHKZZx.js +0 -1
- package/dist/web/assets/use-virtual-scroll-CIwaJCUj.js +0 -1
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Type } from '@sinclair/typebox';
|
|
2
|
+
import { Nullable } from "../utils/schemas.js";
|
|
3
|
+
import { NOTE_ASSET_ID_PATTERN } from "./asset-formats.js";
|
|
4
|
+
// Relative paths are resolved within the configured notes root.
|
|
5
|
+
const Path = Type.String({
|
|
6
|
+
minLength: 1,
|
|
7
|
+
maxLength: 1024,
|
|
8
|
+
description: 'Path relative to the notes root.'
|
|
9
|
+
});
|
|
10
|
+
const Id = Type.String({
|
|
11
|
+
format: 'uuid',
|
|
12
|
+
description: 'Stable note or storage UUID.'
|
|
13
|
+
});
|
|
14
|
+
export const NotePresenceSchema = Type.Union([Type.Literal('present'), Type.Literal('missing'), Type.Literal('deleted')], { description: 'Whether the file is available.' });
|
|
15
|
+
export const NoteRecordSchema = Type.Object({
|
|
16
|
+
id: Id,
|
|
17
|
+
path: Path,
|
|
18
|
+
presence: NotePresenceSchema,
|
|
19
|
+
version: Type.String({ description: 'Last indexed content version.' }),
|
|
20
|
+
createdAt: Type.String({
|
|
21
|
+
description: 'Creation or first registration time.'
|
|
22
|
+
}),
|
|
23
|
+
updatedAt: Type.String({
|
|
24
|
+
description: 'Last observed content change time.'
|
|
25
|
+
})
|
|
26
|
+
}, { description: 'Persistent identity of a note, including absent files.' });
|
|
27
|
+
export const NoteIssueSchema = Type.Object({
|
|
28
|
+
id: Type.String({ description: 'Diagnostic identifier.' }),
|
|
29
|
+
kind: Type.Union([
|
|
30
|
+
Type.Literal('identity'),
|
|
31
|
+
Type.Literal('rewrite'),
|
|
32
|
+
Type.Literal('metadata')
|
|
33
|
+
], { description: 'Diagnostic category.' }),
|
|
34
|
+
message: Type.String({ description: 'Actionable diagnostic.' }),
|
|
35
|
+
noteId: Nullable(Id),
|
|
36
|
+
candidateId: Nullable(Id)
|
|
37
|
+
}, { description: 'Identity or file update requiring attention.' });
|
|
38
|
+
export const NoteMutationSchema = Type.Object({
|
|
39
|
+
operationId: Id,
|
|
40
|
+
complete: Type.Boolean({
|
|
41
|
+
description: 'Whether all relative links were updated.'
|
|
42
|
+
})
|
|
43
|
+
}, { description: 'Result of a recoverable file operation.' });
|
|
44
|
+
export const NoteIdQuery = Type.Object({ id: Id, storageId: Id }, { description: 'A note within a specific storage.' });
|
|
45
|
+
export const NoteResolveBody = Type.Object({
|
|
46
|
+
sourceId: Id,
|
|
47
|
+
storageId: Id,
|
|
48
|
+
text: Type.String({
|
|
49
|
+
maxLength: 1000000,
|
|
50
|
+
description: 'Current source, including an unsaved draft.'
|
|
51
|
+
}),
|
|
52
|
+
href: Type.String({ description: 'Clicked internal address.' }),
|
|
53
|
+
occurrence: Type.Optional(Type.Integer({
|
|
54
|
+
minimum: 0,
|
|
55
|
+
description: 'Ordinal among identical displayed addresses.'
|
|
56
|
+
}))
|
|
57
|
+
}, { description: 'Resolve a note link without losing its identity.' });
|
|
58
|
+
export const ResolveIdentityBody = Type.Object({
|
|
59
|
+
issueId: Type.String({ description: 'Pending identity diagnostic ID.' }),
|
|
60
|
+
candidateId: Type.Optional(Id),
|
|
61
|
+
restore: Type.Boolean({
|
|
62
|
+
description: 'Whether the candidate is the previous note.'
|
|
63
|
+
})
|
|
64
|
+
}, { description: 'Confirm a restored or moved file, or keep it as a new note.' });
|
|
65
|
+
export const NoteGraphSchema = Type.Object({
|
|
66
|
+
storageId: Id,
|
|
67
|
+
nodes: Type.Array(NoteRecordSchema, {
|
|
68
|
+
description: 'Notes and absent targets.'
|
|
69
|
+
}),
|
|
70
|
+
edges: Type.Array(Type.Object({ sourceId: Id, targetId: Id }, { description: 'A directed note relationship.' }), { description: 'Resolved relationships, including absent targets.' })
|
|
71
|
+
}, { description: 'Portable graph data without a visualization.' });
|
|
72
|
+
export const NoteResolutionSchema = Type.Object({ id: Id, anchor: Type.String({ description: 'Decoded heading fragment.' }) }, { description: 'Resolved target identity.' });
|
|
73
|
+
export const NoteDescriptorSchema = Type.Object({
|
|
74
|
+
note: NoteRecordSchema,
|
|
75
|
+
backlinks: Type.Array(NoteRecordSchema, {
|
|
76
|
+
description: 'Present notes linking to this identity.'
|
|
77
|
+
})
|
|
78
|
+
}, { description: 'A note identity and its backlinks.' });
|
|
79
|
+
export const NoteQuery = Type.Object({ path: Path }, { description: 'Relative path within notes storage.' });
|
|
80
|
+
export const NoteSchema = Type.Object({
|
|
81
|
+
id: Type.Optional(Id),
|
|
82
|
+
storageId: Type.Optional(Id),
|
|
83
|
+
path: Path,
|
|
84
|
+
text: Type.String({ description: 'Full Markdown including frontmatter.' }),
|
|
85
|
+
version: Type.String({
|
|
86
|
+
description: 'Opaque content version for conditional writes.'
|
|
87
|
+
})
|
|
88
|
+
}, { description: 'A note and its disk version.' });
|
|
89
|
+
export const NoteEntrySchema = Type.Object({
|
|
90
|
+
path: Path,
|
|
91
|
+
id: Type.Optional(Id),
|
|
92
|
+
presence: Type.Optional(NotePresenceSchema),
|
|
93
|
+
folder: Type.Boolean({ description: 'Whether this entry is a directory.' }),
|
|
94
|
+
tags: Type.Array(Type.String(), {
|
|
95
|
+
description: 'Tags from YAML frontmatter.'
|
|
96
|
+
}),
|
|
97
|
+
error: Nullable(Type.String({ description: 'Metadata or file read error, if present.' }))
|
|
98
|
+
}, { description: 'Entry in the notes tree.' });
|
|
99
|
+
export const NotesIndexSchema = Type.Object({
|
|
100
|
+
entries: Type.Array(NoteEntrySchema, { description: 'Notes and folders.' }),
|
|
101
|
+
storageId: Type.Optional(Id),
|
|
102
|
+
revision: Type.Optional(Type.String({
|
|
103
|
+
description: 'Opaque catalog and filesystem revision for mutations.'
|
|
104
|
+
})),
|
|
105
|
+
issues: Type.Optional(Type.Array(NoteIssueSchema, {
|
|
106
|
+
description: 'Pending identity or rewrite diagnostics.'
|
|
107
|
+
})),
|
|
108
|
+
storage: Type.String({ description: 'Configured notes directory.' }),
|
|
109
|
+
warning: Nullable(Type.String({ description: 'Storage visibility warning, if present.' }))
|
|
110
|
+
}, { description: 'Project notes index.' });
|
|
111
|
+
export const CreateNoteBody = Type.Object({
|
|
112
|
+
path: Path,
|
|
113
|
+
text: Type.String({
|
|
114
|
+
maxLength: 1000000,
|
|
115
|
+
description: 'Initial Markdown text.'
|
|
116
|
+
})
|
|
117
|
+
}, { description: 'New note contents and relative path.' });
|
|
118
|
+
export const SaveNoteBody = Type.Object({
|
|
119
|
+
id: Type.Optional(Id),
|
|
120
|
+
storageId: Type.Optional(Id),
|
|
121
|
+
path: Path,
|
|
122
|
+
text: Type.String({
|
|
123
|
+
maxLength: 1000000,
|
|
124
|
+
description: 'New Markdown text.'
|
|
125
|
+
}),
|
|
126
|
+
version: Type.String({ description: 'Expected current version.' })
|
|
127
|
+
}, { description: 'Note update guarded by its current version.' });
|
|
128
|
+
export const RenameNoteBody = Type.Object({
|
|
129
|
+
path: Path,
|
|
130
|
+
id: Type.Optional(Id),
|
|
131
|
+
revision: Type.Optional(Type.String({ description: 'Expected catalog revision.' })),
|
|
132
|
+
target: Type.Optional(Path),
|
|
133
|
+
name: Type.String({
|
|
134
|
+
minLength: 1,
|
|
135
|
+
maxLength: 255,
|
|
136
|
+
description: 'New entry name without parent directories.'
|
|
137
|
+
}),
|
|
138
|
+
folder: Type.Boolean({ description: 'Whether the entry is a directory.' })
|
|
139
|
+
}, { description: 'Rename a note or directory within its current parent.' });
|
|
140
|
+
export const CreateFolderBody = Type.Object({ path: Path }, { description: 'New notes folder.' });
|
|
141
|
+
export const UploadNoteAssetBody = Type.Object({
|
|
142
|
+
file: Type.Any({
|
|
143
|
+
isFile: true,
|
|
144
|
+
description: 'Raster image file, at most 10 MB.'
|
|
145
|
+
})
|
|
146
|
+
}, {
|
|
147
|
+
additionalProperties: false,
|
|
148
|
+
description: 'Multipart image attachment upload.'
|
|
149
|
+
});
|
|
150
|
+
export const NoteAssetSchema = Type.Object({
|
|
151
|
+
url: Type.String({
|
|
152
|
+
description: 'Origin-relative permanent attachment URL.'
|
|
153
|
+
})
|
|
154
|
+
}, { description: 'Stored note attachment.' });
|
|
155
|
+
export const NoteAssetParams = Type.Object({
|
|
156
|
+
id: Type.String({
|
|
157
|
+
pattern: NOTE_ASSET_ID_PATTERN,
|
|
158
|
+
description: 'Content hash and image extension.'
|
|
159
|
+
})
|
|
160
|
+
}, { description: 'Stored attachment identifier.' });
|
|
161
|
+
export const NoteAssetContentSchema = Type.String({
|
|
162
|
+
description: 'Raster image bytes.',
|
|
163
|
+
format: 'binary'
|
|
164
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{J as e,L as t,P as n,S as r,_ as i,b as a,l as o,s}from"./runtime-core.esm-bundler-BKFI1w28.js";import{_ as c,m as l,o as u,p as d}from"./use-router-link-BGc0noIO.js";import{t as f}from"./create-BSmXD9Zr.js";var p=f({name:`QPage`,props:{padding:Boolean,styleFn:Function},setup(e,{slots:t}){let n=d(),i=r(c,l);if(i===l)return console.error(`QPage needs to be a deep child of QLayout`),l;if(r(`_q_pc_`,l)===l)return console.error(`QPage needs to be child of QPageContainer`),l;let o=s(()=>{let t=(i.header.space?i.header.size:0)+(i.footer.space?i.footer.size:0);if(typeof e.styleFn==`function`){let r=i.isContainer.value?i.containerHeight.value:n.screen.height;return e.styleFn(t,r)}return{minHeight:i.isContainer.value?i.containerHeight.value-t+`px`:n.screen.height===0?t===0?`100vh`:`calc(100vh - ${t}px)`:n.screen.height-t+`px`}}),f=s(()=>`q-page${e.padding?` q-layout-padding`:``}`);return()=>a(`main`,{class:f.value,style:o.value},u(t.default))}}),m=i({__name:`AppPage`,setup(r){function i(e,t){return{height:`${t-e}px`}}return(r,a)=>(n(),o(p,{"style-fn":i},{default:e(()=>[t(r.$slots,`default`)]),_:3}))}});export{m as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{F as e,K as t,O as n,S as r,b as i,ct as a,ot as o,s,v as c}from"./runtime-core.esm-bundler-BKFI1w28.js";import{l,o as u,p as ee,r as d,s as f,t as p,v as m,w as te,x as h}from"./use-router-link-BGc0noIO.js";import{a as g,c as _,i as v,l as y,o as b,r as x,s as S,u as C}from"./event-rR76ioXz.js";import{s as w}from"./is-CE4jkrGQ.js";import{n as T,t as E}from"./create-BSmXD9Zr.js";import{p as ne}from"./QInput-DJgTh2Qy.js";import{p as re}from"./QBtn-DoggJe1Q.js";import{n as D,t as ie}from"./use-dark-BHObfh0O.js";import{$ as ae,B as oe,F as O,G as se,H as ce,I as le,J as ue,K as de,L as fe,M as pe,N as me,P as he,Q as ge,R as _e,U as ve,V as ye,W as k,X as be,Y as A,Z as xe,et as j,l as Se,q as Ce,tt as M,u as we,x as Te,z as N}from"./index-Ic8yFbJg.js";var P=E({name:`QItemSection`,props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:t}){let n=s(()=>`q-item__section column q-item__section--${e.avatar||e.side||e.thumbnail?`side`:`main`}`+(e.top?` q-item__section--top justify-start`:` justify-center`)+(e.avatar?` q-item__section--avatar`:``)+(e.thumbnail?` q-item__section--thumbnail`:``)+(e.noWrap?` q-item__section--nowrap`:``));return()=>i(`div`,{class:n.value},u(t.default))}}),Ee=E({name:`QItem`,props:{...D,...d,tag:{type:String,default:`div`},active:{type:Boolean,default:null},clickable:{type:Boolean,default:null},onClick:Function,dense:Boolean,insetLevel:Number,role:String,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:[`keyup`],setup(e,{slots:t,emit:n}){let o=ee(),c=ie(e,o),{hasLink:l,linkAttrs:u,linkClass:d,linkTag:te,navigateOnClick:g}=p(),_=a(null),v=a(null),y=s(()=>(e.clickable===null?e.onClick!==void 0:e.clickable)||l.value||e.tag===`label`),b=s(()=>!e.disable&&y.value),x=r(m,null),S=s(()=>{if(e.role!==void 0)return e.role;let t=x===null?null:x.value;if(t===`menu`||t===`menubar`)return y.value?`menuitem`:void 0;if(!l.value)return b.value?`button`:t===`list`?`listitem`:void 0}),w=s(()=>`q-item q-item-type row no-wrap`+(e.dense?` q-item--dense`:``)+(c()?` q-item--dark`:``)+(l.value&&e.active===null?d.value:e.active?` q-item--active${e.activeClass===void 0?``:` ${e.activeClass}`}`:``)+(e.disable?` disabled`:``)+(b.value?` q-item--clickable q-link cursor-pointer `+(e.manualFocus?`q-manual-focusable`:`q-focusable q-hoverable`)+(e.focused?` q-manual-focusable--focused`:``):``)),T=s(()=>e.insetLevel===void 0?null:{[`padding`+(o.lang.rtl?`Right`:`Left`)]:16+e.insetLevel*56+`px`});function E(e){b.value&&(v.value!==null&&!e.qAvoidFocus&&(!e.qKeyEvent&&document.activeElement===_.value?v.value.focus({preventScroll:!0}):document.activeElement===v.value&&_.value.focus({preventScroll:!0})),g(e))}function ne(e){if(b.value&&h(e,[13,32])){C(e),e.qKeyEvent=!0;let t=new MouseEvent(`click`,e);t.qKeyEvent=!0,_.value.dispatchEvent(t)}n(`keyup`,e)}function re(e){b.value&&e.keyCode===32&&C(e)}function D(){let e=f(t.default,[]);return b.value&&e.unshift(i(`div`,{class:`q-focus-helper`,tabindex:-1,ref:v})),e}return()=>{let t={ref:_,class:w.value,style:T.value,role:S.value,onKeyup:ne};return b.value?(t.onClick=E,t.onKeydown=re,t.tabindex=e.tabindex||`0`,Object.assign(t,u.value)):y.value&&(t[`aria-disabled`]=`true`),i(te.value,t,D())}}}),De=[`ul`,`ol`],F=E({name:`QList`,props:{...D,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,role:String,tag:{type:String,default:`div`}},setup(t,{slots:n}){let r=ee(),a=ie(t,r),o=s(()=>t.role===void 0?De.includes(t.tag)?null:`list`:t.role);e(m,s(()=>t.role===void 0?`list`:t.role));let c=s(()=>`q-list`+(t.bordered?` q-list--bordered`:``)+(t.dense?` q-list--dense`:``)+(t.separator?` q-list--separator`:``)+(a()?` q-list--dark`:``)+(t.padding?` q-list--padding`:``));return()=>i(t.tag,{class:c.value,role:o.value},u(n.default))}}),I={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},Oe=Object.keys(I);I.all=!0;function ke(e){let t={};for(let n of Oe)e[n]&&(t[n]=!0);return Object.keys(t).length===0?I:(t.horizontal?t.left=t.right=!0:t.left&&t.right&&(t.horizontal=!0),t.vertical?t.up=t.down=!0:t.up&&t.down&&(t.vertical=!0),t.horizontal&&t.vertical&&(t.all=!0),t)}var L=[`INPUT`,`TEXTAREA`];function R(e,t){return t.event===void 0&&e.target!==void 0&&!e.target.draggable&&typeof t.handler==`function`&&!L.includes(e.target.nodeName.toUpperCase())&&(e.qClonedBy===void 0||!e.qClonedBy.includes(t.uid))}var{passive:z,passiveCapture:B,notPassiveCapture:V}=v,Ae=0;function H(e,t,n){let r=b(e),i,a=r.left-t.event.x,o=r.top-t.event.y,s=Math.abs(a),c=Math.abs(o),l=t.direction;l.horizontal&&!l.vertical?i=a<0?`left`:`right`:!l.horizontal&&l.vertical?i=o<0?`up`:`down`:l.up&&o<0?(i=`up`,s>c&&(l.left&&a<0?i=`left`:l.right&&a>0&&(i=`right`))):l.down&&o>0?(i=`down`,s>c&&(l.left&&a<0?i=`left`:l.right&&a>0&&(i=`right`))):l.left&&a<0?(i=`left`,s<c&&(l.up&&o<0?i=`up`:l.down&&o>0&&(i=`down`))):l.right&&a>0&&(i=`right`,s<c&&(l.up&&o<0?i=`up`:l.down&&o>0&&(i=`down`)));let u=!1;if(i===void 0&&n===!1){if(t.event.isFirst||t.event.lastDir===void 0)return{};i=t.event.lastDir,u=!0,i===`left`||i===`right`?(r.left-=a,s=0,a=0):(r.top-=o,c=0,o=0)}return{synthetic:u,payload:{evt:e,touch:t.event.mouse!==!0,mouse:t.event.mouse===!0,position:r,direction:i,isFirst:t.event.isFirst,isFinal:n===!0,duration:Date.now()-t.event.time,distance:{x:s,y:c},offset:{x:a,y:o},delta:{x:r.left-t.event.lastX,y:r.top-t.event.lastY}}}}function U(e,t,n){t.modifiers=n,t.direction=ke(n),t.stop=n.stop===!0,t.prevent=n.prevent===!0,t.mouseAllDir=n.mouseAllDir===!0||n.mousealldir===!0,t.preserveCursor=n.preserveCursor===!0||n.preservecursor===!0;let r=n.mouse?n.mouseCapture||n.mousecapture?B:z:null;r!==t.mouseOpts&&(t.mouseOpts!==null&&e.removeEventListener(`mousedown`,W,t.mouseOpts),r!==null&&e.addEventListener(`mousedown`,W,r),t.mouseOpts=r);let i=w.has.touch?n.capture?B:z:null;i!==t.touchOpts&&(t.touchOpts!==null&&e.removeEventListener(`touchstart`,G,t.touchOpts),i!==null&&e.addEventListener(`touchstart`,G,i),t.touchOpts=i)}function W(e){let t=e.currentTarget.__qtouchpan;R(e,t)&&x(e)&&(t.target=document,document.addEventListener(`mousemove`,t,V),document.addEventListener(`mouseup`,t,B),Ne(t,e,!0))}function G(e){let t=e.currentTarget.__qtouchpan;if(R(e,t)){let{target:n}=e;t.target=n,n.addEventListener(`touchmove`,t,V),n.addEventListener(`touchcancel`,t,B),n.addEventListener(`touchend`,t,B),Ne(t,e,!1)}}function je(e){e.type===`mousemove`||e.type===`touchmove`?q(this,e):J(this,e)}function Me(e,t,n){n?C(t):(e.stop&&y(t),e.prevent&&S(t))}function Ne(e,t,n){if(w.is.firefox&&_(e.el,!0),e.lastEvt=t,n||e.stop){if(!e.direction.all&&(!n||!e.mouseAllDir)){let n=t.type.includes(`mouse`)?new MouseEvent(t.type,t):new TouchEvent(t.type,t);t.defaultPrevented&&S(n),t.cancelBubble&&y(n),Object.assign(n,{qKeyEvent:t.qKeyEvent,qClickOutside:t.qClickOutside,qAnchorHandled:t.qAnchorHandled,qClonedBy:t.qClonedBy===void 0?[e.uid]:t.qClonedBy.concat(e.uid)}),e.initialEvent={target:t.target,event:n}}y(t)}let{left:r,top:i}=b(t);e.event={x:r,y:i,time:Date.now(),mouse:n,detected:!1,isFirst:!0,isFinal:!1,lastX:r,lastY:i,lastDir:void 0}}function K(e,t,n){Me(e,t,n),e.styled=!0,e.preserveCursor||(e.cursor=document.documentElement.style.cursor||``,document.documentElement.style.cursor=`grabbing`),n&&document.body.classList.add(`no-pointer-events--children`),document.body.classList.add(`non-selectable`),M()}function Pe(e,t){e.styled=!1,e.cursor!==void 0&&(document.documentElement.style.cursor=e.cursor,e.cursor=void 0),document.body.classList.remove(`non-selectable`),t&&document.body.classList.remove(`no-pointer-events--children`)}function q(e,t){let{event:n}=e;if(n===void 0)return;let r=b(t),i=r.left-n.x,a=r.top-n.y;if(i===0&&a===0)return;e.lastEvt=t;let{mouse:o}=n;if(n.detected){n.isFirst||Me(e,t,o);let{payload:r,synthetic:i}=H(t,e,!1);r!==void 0&&(e.handler(r)===!1?J(e,t):(!e.styled&&n.isFirst&&K(e,t,o),n.lastX=r.position.left,n.lastY=r.position.top,n.lastDir=i?void 0:r.direction,n.isFirst=!1));return}let{direction:s}=e;if(s.all||o&&e.mouseAllDir){K(e,t,o),n.detected=!0,q(e,t);return}let c=Math.abs(i),l=Math.abs(a);c!==l&&(s.horizontal&&c>l||s.vertical&&c<l||s.up&&c<l&&a<0||s.down&&c<l&&a>0||s.left&&c>l&&i<0||s.right&&c>l&&i>0?(n.detected=!0,q(e,t)):J(e,t,!0))}function J(e,t,n){let{event:r,target:i}=e;if(r===void 0)return;let{mouse:a}=r;if(a?(i.removeEventListener(`mousemove`,e,V),i.removeEventListener(`mouseup`,e,B)):(i.removeEventListener(`touchmove`,e,V),i.removeEventListener(`touchcancel`,e,B),i.removeEventListener(`touchend`,e,B)),w.is.firefox&&_(e.el,!1),n)e.styled&&Pe(e,a),!r.detected&&e.initialEvent!==void 0&&e.initialEvent.target.dispatchEvent(e.initialEvent.event);else if(r.detected){t===void 0&&(t=e.lastEvt),r.isFirst&&e.handler(H(t,e).payload);let{payload:n}=H(t,e,!0),{handler:i}=e;e.styled?(Pe(e,a),a?setTimeout(i,50,n):i(n)):i(n)}e.event=void 0,e.initialEvent=void 0,e.lastEvt=void 0,e.target=null}var Fe=T({name:`touch-pan`,beforeMount(e,{value:t,modifiers:n}){let r={handleEvent:je,el:e,uid:`qvtp_`+Ae++,handler:t,modifiers:void 0,direction:void 0,stop:!1,prevent:!1,mouseAllDir:!1,preserveCursor:!1,mouseOpts:null,touchOpts:null,target:null,event:void 0,initialEvent:void 0,lastEvt:void 0,styled:!1,cursor:void 0};e.__qtouchpan=r,U(e,r,n),r.touchOpts!==null&&e.addEventListener(`touchmove`,g,V)},updated(e,{oldValue:t,value:n,modifiers:r}){let i=e.__qtouchpan;i!==void 0&&(t!==n&&(typeof n!=`function`&&J(i),i.handler=n),r!==i.modifiers&&U(e,i,r))},beforeUnmount(e){let t=e.__qtouchpan;t!==void 0&&(J(t),t.mouseOpts!==null&&e.removeEventListener(`mousedown`,W,t.mouseOpts),t.touchOpts!==null&&(e.removeEventListener(`touchstart`,G,t.touchOpts),e.removeEventListener(`touchmove`,g,V)),e.__qtouchpan=void 0)}}),Ie={hover:Boolean,hoverDelay:{type:Number,default:0},hoverHideDelay:{type:Number,default:150}};function Le({props:e,canShow:t,show:n,canHide:r,hide:i}){let{removeTimeout:a,registerTimeout:o}=ye();function s(r){e.hover===!0&&r.pointerType!==`touch`&&(a(),t(r)&&(e.hoverDelay>0?o(()=>{n(r)},e.hoverDelay):n(r)))}function c(t){a(),r(t)&&o(()=>{i(t)},e.hoverHideDelay)}function l(t){e.hover===!0&&t.pointerType!==`touch`&&c(t)}function u(e){e.pointerType!==`touch`&&a()}return{clearHoverTimer:a,hoverShow:s,hoverHide:l,scheduleHoverHide:c,onHoverContentEnter:u}}var Y=null,{notPassiveCapture:X,passiveCapture:Re}=v,Z=[];function Q(e){Y!==null&&(clearTimeout(Y),Y=null);let t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains(`no-pointer-events`))return;let n=null,r=!1;for(let e=A.length-1;e>=0;e--){let t=A[e].$,i=t.type.name;if(i!==`QTooltip`){if(i===`QDialog`){if(t.props.seamless!==!0){if(r===!1)return;n=new Set(A.slice(e+1).map(e=>e.contentEl));break}continue}r=!0}}for(let r=Z.length-1;r>=0;r--){let i=Z[r];if(n!==null&&!n.has(i.innerRef.value))return;if((i.anchorEl.value===null||!i.anchorEl.value.contains(t)&&!O(i.anchorEl.value,t))&&(t===document.body||i.innerRef.value!==null&&!i.innerRef.value.contains(t)&&!O(i.innerRef.value,t)))e.qClickOutside=!0,i.onClickOutside(e);else return}}function ze(e){e.pointerType!==`touch`&&(Y!==null&&clearTimeout(Y),Y=setTimeout(()=>{Y=null,Q(e)},0))}function Be(e){Z.push(e),Z.length===1&&(document.addEventListener(`pointerdown`,ze,Re),document.addEventListener(`mousedown`,Q,X),document.addEventListener(`touchstart`,Q,X))}function Ve(e){let t=Z.indexOf(e);t!==-1&&(Z.splice(t,1),Z.length===0&&(Y!==null&&(clearTimeout(Y),Y=null),document.removeEventListener(`pointerdown`,ze,Re),document.removeEventListener(`mousedown`,Q,X),document.removeEventListener(`touchstart`,Q,X)))}var He=`a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex^="-"])`,Ue=E({name:`QMenu`,inheritAttrs:!1,props:{...j,...ge,...D,...k,persistent:Boolean,autoClose:Boolean,separateClosePopup:Boolean,noEscDismiss:Boolean,noRouteDismiss:Boolean,noRefocus:Boolean,noFocus:Boolean,fit:Boolean,cover:Boolean,square:Boolean,anchor:{type:String,validator:N},self:{type:String,validator:N},offset:{type:Array,validator:_e},touchPosition:Boolean,...Ie,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null}},emits:[...xe,`click`,`escapeKey`],setup(e,{slots:r,emit:d,attrs:f}){let p,m=!1,h=c(),{proxy:g}=h,_=ee(),v=a(null),y=o(!1),b=s(()=>!e.persistent&&!e.noRouteDismiss),x=ie(e,_),{registerTick:S,removeTick:w}=ce(),{registerTransitionEnd:T}=oe(e),{transitionProps:E,transitionStyle:D}=ve(e),{anchorEl:O,canShow:ge,anchorEvents:_e}=ae({showing:y,getPopupRole:()=>f.role}),{show:ye,hide:k}=be({showing:y,canShow:ge,canHide(e){return m&&P()?e?.type!==`click`:!0},handleShow:je,handleHide:Me,handleRouteChange:Ne,hideOnRouteChange:b,processOnMount:!0}),{clearHoverTimer:A,hoverShow:xe,scheduleHoverHide:j,onHoverContentEnter:Ce}=Le({props:e,canShow:()=>!y.value,show:ye,canHide:e=>y.value&&!W(e.relatedTarget),hide:k});Object.assign(_e,{hoverShow:xe,hoverHide:G});let{showPortal:M,hidePortal:N,portalIsOpening:P,renderPortal:Ee}=se(h,v,Ie,`menu`),{captureRefocusTarget:De,clearRefocusTarget:F,restoreFocus:I,restoreFocusSync:Oe,adoptRefocusTarget:ke}=Te(e,()=>!e.noFocus&&!m&&P()),L={anchorEl:O,innerRef:v,onClickOutside(t){if(!e.persistent&&y.value)return k(t),(t.type===`touchstart`||t.target.classList.contains(`q-dialog__backdrop`))&&C(t),!0}},R=s(()=>fe(e.anchor||(e.cover?`center middle`:`bottom start`),_.lang.rtl)),z=s(()=>e.cover?R.value:fe(e.self||`top start`,_.lang.rtl)),B=he({props:e,$q:_,anchorEl:O,innerRef:v,showing:y,anchorOrigin:R,selfOrigin:z}),V=s(()=>`q-menu scroll`+(B.viaCssAnchor?``:` q-position-engine`)+(e.square?` q-menu--square`:``)+(x()?` q-menu--dark q-dark`:``)),Ae=s(()=>e.autoClose?{onClick:Pe}:{}),H=s(()=>y.value&&!e.persistent);t(H,e=>{e?(pe(J),Be(L)):(me(J),Ve(L))});function U(){ne(()=>{let e=v.value;e&&e.contains!==void 0&&!e.contains(document.activeElement)&&(e=e.querySelector(`[autofocus][tabindex], [data-autofocus][tabindex]`)||e.querySelector(`[autofocus] [tabindex], [data-autofocus] [tabindex]`)||e.querySelector(`[autofocus], [data-autofocus]`)||e,e.focus({preventScroll:!0}))})}function W(e){if(e==null)return!1;if(O.value!==null&&O.value.contains(e)||v.value!==null&&v.value.contains(e))return!0;let t=ue(e);for(;t!=null;){if(t===g)return!0;t=l(t)}return!1}function G(e){if(e.pointerType===`touch`)return;j(e);let t=l(g);for(;t!=null;)t.$options.name===`QMenu`&&t.$props.hover===!0&&t.__qHoverHide?.(e),t=l(t)}function je(t){m=e.hover&&t?.type===`pointerenter`,A(),De(m),Se(q),M(!1,m),B.handleShow(!m&&(e.touchPosition||e.contextMenu)?t:void 0),!e.noFocus&&!m&&document.activeElement.blur(),S(()=>{B.handleTick(),!e.noFocus&&!m&&U()}),T(()=>{_.platform.is.ios&&(p=e.autoClose,v.value.click()),B.viaCssAnchor||B.track(),M(!0),d(`show`,t)})}function Me(e){m=!1,w(),N(),K(!0),e===void 0||!e.qClickOutside?I(e):F(),T(()=>{N(!0),B.releaseAnchor(!1),d(`hide`,e)})}function Ne(){F()}function K(e){A(),B.releaseAnchor(e),(e||y.value)&&(we(q),Ve(L),me(J)),e||F()}function Pe(e){p?p=!1:(de(g,e),d(`click`,e))}function q(t){H.value&&!e.noFocus&&!m&&!re(v.value,t.target)&&!le(v.value,t.target)&&U()}function J(t){e.noEscDismiss||(d(`escapeKey`),k(t))}function Fe(e){if(e.keyCode!==9||e.defaultPrevented||!H.value||v.value===null)return;let t=v.value,n=t.querySelectorAll(He),r=n.length===0?null:n[e.shiftKey?0:n.length-1];(r===null||document.activeElement===r||e.shiftKey&&document.activeElement===t)&&(we(q),Oe(e),k(e))}function Ie(){return i(te,E(),()=>y.value?i(`div`,{...f,ref:v,tabindex:-1,onKeydown:[].concat(f.onKeydown||[],Fe),...e.hover?{onPointerenter:[].concat(f.onPointerenter||[],Ce),onPointerleave:[].concat(f.onPointerleave||[],G)}:{},class:[V.value,f.class],style:[f.style,D(),B.positionStyle.value],...Ae.value},u(r.default)):null)}return n(()=>{K(!1)}),Object.assign(g,{focus:U,updatePosition:B.updatePosition,__adoptRefocusTarget:ke}),g.__qHoverHide=j,Ee}});function We(e){return e===!1?0:e===!0||e===void 0?1:Number.parseInt(e,10)||0}function $(e){let t=e.currentTarget,n=t.__qclosepopup;n!==0&&setTimeout(()=>{let r=ue(t);r!==void 0&&Ce(r,e,n)},0)}function Ge(e){h(e,13)&&$(e)}var Ke=T({name:`close-popup`,beforeMount(e,{value:t}){e.__qclosepopup=We(t),e.addEventListener(`click`,$),e.addEventListener(`keyup`,Ge)},updated(e,{value:t,oldValue:n}){t!==n&&e.__qclosepopup!==void 0&&(e.__qclosepopup=We(t))},beforeUnmount(e){e.__qclosepopup!==void 0&&(e.removeEventListener(`click`,$),e.removeEventListener(`keyup`,Ge),e.__qclosepopup=void 0)}});export{Fe as a,P as c,Ie as i,Ue as n,F as o,Le as r,Ee as s,Ke as t};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/typescript-Utq2Cl8c.js","assets/typescript-j_1H8WHN.js","assets/javascript-Yelw-5ZN.js","assets/javascript-BzbQS41l.js","assets/vue-CSBlZ1UP.js","assets/css-LbU1hoFO.js","assets/html-BcACZWSP.js","assets/json-B88Oqtu5.js","assets/json-CaljABEy.js","assets/css-CdtkT07m.js","assets/scss-DHtrkMkT.js","assets/html-DDNsd9lV.js","assets/core-Bumj8M77.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/ccount-CcG1m-Yh.js","assets/engine-oniguruma-B4iNeJbd.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{P as e,_ as t,ct as n,l as r,ot as i,pt as a,s as o,w as s}from"./runtime-core.esm-bundler-BKFI1w28.js";import{t as c}from"./QBtn-DoggJe1Q.js";import{O as l}from"./index-Ic8yFbJg.js";import{n as u}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as d}from"./pinia-DCsnCHsH.js";import{d as f,f as p,l as m,o as h,s as g,u as _}from"./use-server-events-24_soFuj.js";function v(e){if(e.length<2||e[0]!==`"`||e[e.length-1]!==`"`)return e;let t=e.slice(1,-1),n=[];for(let e=0;e<t.length;e++){let r=t[e];r===`\\`&&/^[0-7]{3}$/.test(t.slice(e+1,e+4))?(n.push(parseInt(t.slice(e+1,e+4),8)),e+=3):r===`\\`&&t[e+1]===`"`?(n.push(34),e+=1):r===`\\`&&t[e+1]===`\\`?(n.push(92),e+=1):n.push((r??``).charCodeAt(0))}return new TextDecoder(`utf-8`).decode(new Uint8Array(n))}function y(e){return e.newPath||e.oldPath}function b(e,t){return`${e}:${t}`}function x(e,t){let n=new Map,r=0;function i(e){let t=n.get(e);if(t)return n.delete(e),n.set(e,t),t.value}function a(i,a){o(i);let s=t(a);n.set(i,{value:a,weight:s}),r+=s;for(let[t,i]of n){if(r<=e||n.size<=1)break;n.delete(t),r-=i.weight}}function o(e){let t=n.get(e);t&&(n.delete(e),r-=t.weight)}return{get:i,set:a,remove:o,size:()=>n.size}}var S={typescript:()=>l(()=>import(`./typescript-Utq2Cl8c.js`),__vite__mapDeps([0,1])),tsx:()=>l(()=>import(`./tsx-udAQXfEw.js`),[]),javascript:()=>l(()=>import(`./javascript-Yelw-5ZN.js`),__vite__mapDeps([2,3])),jsx:()=>l(()=>import(`./jsx-Bz0zcwM4.js`),[]),vue:()=>l(()=>import(`./vue-CSBlZ1UP.js`),__vite__mapDeps([4,5,3,6,7,1])),json:()=>l(()=>import(`./json-CaljABEy.js`),__vite__mapDeps([8,7])),markdown:()=>l(()=>import(`./markdown-BYOwaDjH.js`),[]),css:()=>l(()=>import(`./css-CdtkT07m.js`),__vite__mapDeps([9,5])),scss:()=>l(()=>import(`./scss-DHtrkMkT.js`),__vite__mapDeps([10,5])),html:()=>l(()=>import(`./html-DDNsd9lV.js`),__vite__mapDeps([11,6,5,3])),yaml:()=>l(()=>import(`./yaml-rwi0_p6S.js`),[]),bash:()=>l(()=>import(`./bash-CLZ0U2zV.js`),[]),python:()=>l(()=>import(`./python-gzcpVVnB.js`),[]),go:()=>l(()=>import(`./go-rLFTqkRN.js`),[]),rust:()=>l(()=>import(`./rust-Cfkwpbl8.js`),[]),java:()=>l(()=>import(`./java-BXcb2rRD.js`),[]),kotlin:()=>l(()=>import(`./kotlin-DhhofPvG.js`),[])},C={light:()=>l(()=>import(`./github-light-EUqPIrTm.js`),[]),dark:()=>l(()=>import(`./github-dark-C-LZuMrd.js`),[])},w={light:`github-light`,dark:`github-dark`},T=null,E=new Set,D=new Map;function O(e){return S[e]!==void 0}async function k(e,t){try{await e.loadLanguage(S[t]()),E.add(t)}finally{D.delete(t)}}async function A(e){T||=(async()=>{let[{createHighlighterCore:e},{createOnigurumaEngine:t}]=await Promise.all([l(()=>import(`./core-Bumj8M77.js`),__vite__mapDeps([12,13,14])),l(()=>import(`./engine-oniguruma-B4iNeJbd.js`),__vite__mapDeps([15,13]))]);return e({themes:[C.light(),C.dark()],langs:[],engine:t(()=>l(()=>import(`./wasm-BnjxR4X6.js`),[]))})})();let t=await T;if(!E.has(e)){let n=D.get(e);n||(n=k(t,e),D.set(e,n)),await n}return t}async function ee(e,t,n={}){if(!O(e)||t.length===0)return`failed`;let r=n.documents??[{length:t.length,skip:0}];if(r.reduce((e,t)=>e+t.length,0)!==t.length)return`failed`;let{signal:i}=n;try{let a=await A(e),o=0,s=0,c=!0;for(let l of r){let r,u=Math.max(1,n.sliceSize??l.length);for(let d=0;d<l.length;d+=u){if(c||await n.yieldBetween?.(),c=!1,i?.aborted)return`aborted`;let f=Math.min(d+u,l.length),p=a.codeToTokensWithThemes(t.slice(o+d,o+f).join(`
|
|
3
|
+
`),{lang:e,themes:w,...r?{grammarState:r}:{}});r=a.getLastGrammarState(p);let m=Math.max(d,l.skip);f<=m||(n.onSlice?.(p.slice(m-d).map(e=>e.map(e=>({content:e.content,colorLight:e.variants.light?.color,colorDark:e.variants.dark?.color}))),s),s+=f-m)}o+=l.length}return`done`}catch{return`failed`}}var j=null,M=!1,N=1,P=new Map;function F(){return typeof Worker<`u`&&!M}function I(){let e=new Worker(new URL(`/assets/highlight.worker-BHCdEX06.js`,``+import.meta.url),{type:`module`});return e.addEventListener(`message`,e=>{let t=e.data,n=P.get(t.id);n&&(t.type===`slice`?n.onSlice(t.tokens,t.start):(P.delete(t.id),n.finish(t.ok?`done`:`failed`)))}),e.addEventListener(`error`,t=>{console.error(`The highlight worker failed, the main thread does the work now`,t),M=!0;for(let e of P.values())e.finish(`failed`);P.clear(),e.terminate(),j=null}),e}function L(e,t){e.postMessage(t)}function te(e,t,n){let{signal:r}=n;if(r?.aborted)return Promise.resolve(`aborted`);if(!j)try{j=I()}catch(e){return console.error(`The highlight worker did not start`,e),M=!0,Promise.resolve(`unsent`)}let i=j;return new Promise(a=>{let o=N++,s=()=>{P.delete(o)&&(j&&L(j,{type:`cancel`,id:o}),a(`aborted`))};P.set(o,{onSlice:(e,t)=>n.onSlice?.(e,t),finish:e=>{r?.removeEventListener(`abort`,s),a(e)}});try{L(i,{type:`tokenize`,id:o,lang:e,lines:Array.from(t),...n.documents?{documents:n.documents.map(e=>({...e}))}:{},sliceSize:n.sliceSize})}catch(e){console.error(`The highlight worker did not get the request`,e),P.delete(o),a(`unsent`);return}r?.addEventListener(`abort`,s,{once:!0})})}function R(){return typeof MessageChannel>`u`?new Promise(e=>setTimeout(e,0)):new Promise(e=>{let{port1:t,port2:n}=new MessageChannel;t.addEventListener(`message`,()=>{t.close(),e()},{once:!0}),t.start(),n.postMessage(null)})}var z=`import { ref, type Ref } from 'vue'
|
|
4
|
+
import * as path from 'node:path'
|
|
5
|
+
// A comment with a TODO and a URL: https://example.com
|
|
6
|
+
/** JSDoc with a {@link link} and @param tag */
|
|
7
|
+
export interface Item<T extends object = {}> {
|
|
8
|
+
readonly id: number
|
|
9
|
+
name?: string | null
|
|
10
|
+
tags: Array<Record<string, T>>
|
|
11
|
+
}
|
|
12
|
+
export enum Mode { Fast = 1, Slow = 'slow' }
|
|
13
|
+
@decorator()
|
|
14
|
+
export default class Store<T> extends Base implements Item {
|
|
15
|
+
private static count = 0n
|
|
16
|
+
#secret: unknown = /ab+c/gi.test('x')
|
|
17
|
+
constructor(public readonly id: number, protected items: Map<string, T> = new Map()) {
|
|
18
|
+
super()
|
|
19
|
+
}
|
|
20
|
+
async *load(this: Store<T>, ...rest: string[]): AsyncGenerator<number, void> {
|
|
21
|
+
const value = (await fetch(\`/api/\${this.id}?q=\${rest.join(',')}\`)).json() as unknown as T
|
|
22
|
+
for (const [key, item] of this.items) {
|
|
23
|
+
if (key === 'a' && item !== undefined) continue
|
|
24
|
+
else if (!key) { throw new TypeError("bad \${key}") }
|
|
25
|
+
switch (typeof item) { case 'string': break; default: yield 1.5e3 }
|
|
26
|
+
}
|
|
27
|
+
try { return } catch (err: unknown) { console.error(err) } finally { void 0 }
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export const handler = <K extends keyof Item>(key: K): Item[K] | undefined => items.get(key)?.[key] ?? null
|
|
31
|
+
type Mapped = { [P in keyof Item]?: Item[P] extends string ? P : never }
|
|
32
|
+
`,B=`@use 'sass:math';
|
|
33
|
+
$gap: 8px;
|
|
34
|
+
// A comment
|
|
35
|
+
.card:not(.card--open) > .title, a[href^='http']::after {
|
|
36
|
+
--accent: #1976d2;
|
|
37
|
+
margin: math.div($gap, 2) auto calc(100% - #{$gap});
|
|
38
|
+
background: linear-gradient(to right, rgba(0, 0, 0, 0.5), var(--accent) 50%);
|
|
39
|
+
font: 600 1.2rem/1.4 'Inter', sans-serif !important;
|
|
40
|
+
@media (min-width: 600px) and (prefers-color-scheme: dark) { display: none; }
|
|
41
|
+
&:hover { transition: color .2s ease-in-out; }
|
|
42
|
+
}
|
|
43
|
+
@mixin box($size: 10px) { width: $size; height: $size; }
|
|
44
|
+
`,V={vue:`<script setup lang="ts">
|
|
45
|
+
import { computed, ref } from 'vue'
|
|
46
|
+
const props = withDefaults(defineProps<{ title: string; items?: string[] }>(), { items: () => [] })
|
|
47
|
+
const emit = defineEmits<{ (e: 'pick', value: string): void }>()
|
|
48
|
+
const count = ref(0)
|
|
49
|
+
const label = computed(() => \`\${props.title}: \${count.value}\`)
|
|
50
|
+
<\/script>
|
|
51
|
+
|
|
52
|
+
<template>
|
|
53
|
+
<q-list v-if="items.length > 0" class="list" @click="emit('pick', label)">
|
|
54
|
+
<q-item v-for="(item, index) in items" :key="item" :class="{ active: index === 0 }">
|
|
55
|
+
{{ item }} <!-- row -->
|
|
56
|
+
</q-item>
|
|
57
|
+
</q-list>
|
|
58
|
+
<p v-else>{{ $t('empty') }}</p>
|
|
59
|
+
</template>
|
|
60
|
+
|
|
61
|
+
<style scoped lang="scss">
|
|
62
|
+
.list { margin: 0 auto; &:hover { color: var(--accent); } }
|
|
63
|
+
</style>
|
|
64
|
+
`,css:B,scss:B,html:`<!doctype html>
|
|
65
|
+
<html lang="en">
|
|
66
|
+
<head><meta charset="utf-8" /><title>Sample</title></head>
|
|
67
|
+
<body class="app" data-id="1">
|
|
68
|
+
<!-- A comment -->
|
|
69
|
+
<a href="https://example.com" @click.prevent="open(item)" :class="{ active: on }">Link & text</a>
|
|
70
|
+
<input v-model="text" disabled />
|
|
71
|
+
</body>
|
|
72
|
+
</html>
|
|
73
|
+
`,markdown:`# Title
|
|
74
|
+
|
|
75
|
+
Some *emphasis*, **strong** text, \`inline code\` and a [link](https://example.com).
|
|
76
|
+
|
|
77
|
+
- First item
|
|
78
|
+
- Second item with 
|
|
79
|
+
|
|
80
|
+
> A quote
|
|
81
|
+
|
|
82
|
+
1. Step one
|
|
83
|
+
2. Step two
|
|
84
|
+
|
|
85
|
+
| Name | Value |
|
|
86
|
+
| ---- | ----- |
|
|
87
|
+
| a | 1 |
|
|
88
|
+
|
|
89
|
+
\`\`\`ts
|
|
90
|
+
const answer: number = 42
|
|
91
|
+
\`\`\`
|
|
92
|
+
`,typescript:z,javascript:z,tsx:z,jsx:z};function ne(e){return(V[e]??`x`).split(`
|
|
93
|
+
`)}var re=2e4,H=100,ie={ts:`typescript`,tsx:`tsx`,js:`javascript`,jsx:`jsx`,mjs:`javascript`,cjs:`javascript`,vue:`vue`,json:`json`,md:`markdown`,css:`css`,scss:`scss`,html:`html`,yml:`yaml`,yaml:`yaml`,sh:`bash`,py:`python`,go:`go`,rs:`rust`,java:`java`,kt:`kotlin`,kts:`kotlin`};function U(e){let t=e.split(`.`);return t.length<2?`text`:ie[t.pop().toLowerCase()]??`text`}function ae(e){return O(U(e))}function W(e,t,n,r,i){return ee(e,t,{documents:n,sliceSize:H,yieldBetween:R,signal:r,onSlice:i})}async function G(e,t,n,r,i){let a=[],o=(e,t)=>{a.splice(t,e.length,...e),r?.(a.slice())};if(!F())return K(await W(e,t,i,n,o),a);let s=await te(e,t,{sliceSize:H,documents:i,signal:n,onSlice:o});return(s===`unsent`||s===`failed`&&!F())&&(s=await W(e,t,i,n,o)),K(s,a)}function K(e,t){return e===`done`?t:e===`aborted`?void 0:null}var q=new Set;async function oe(e){await G(e,ne(e)).catch(()=>null)===null&&q.delete(e)}function se(e){if(!F())return;let t=new Set(e.map(U).filter(O));for(let e of t)q.has(e)||(q.add(e),oe(e))}var J=x(re,e=>e?.length??1),Y=Promise.resolve();function ce(e){let t=Y.then(()=>new Promise(e=>setTimeout(e,0))).then(e);return Y=t.catch(()=>void 0),t}function le(e,t,n,r,i,a){return ce(async()=>{let o=J.get(e);if(o!==void 0)return o;if(r?.aborted)return;let s=n(),c=await G(U(t),s,r,i,a?.());if(c!==void 0)return J.set(e,c),c})}function ue(e){return J.get(e)}function X(e){return{...e,oldPath:v(e.oldPath),newPath:v(e.newPath)}}function de(e){let{signature:t,...n}=e;return{...n,hunks:[]}}function Z(e,t,n){let r=new Map(e.map(e=>[y(e),e])),i=new Map;return{files:n.map(e=>{let n=y(e);i.set(n,e.signature);let a=r.get(n);return a&&t.get(n)===e.signature?a:de(e)}),signatures:i}}var Q=d(`diff`,()=>{let e=i([]),t=i([]),r=new Map,a=new Map,s=i(!1),c=i(!1),l=i(null),u=o(()=>s.value&&!c.value),d=o(()=>[...e.value,...t.value].map(e=>e.newPath||e.oldPath)),f=n(new Map),p=n(new Map),m=new Map;function v(n){return n===`staged`?e.value:t.value}function x(e,t){return f.value.get(b(e,y(t)))?.file}function S(e,t){return f.value.get(b(e,y(t)))?.for===t}function C(e,t){let n=p.value.get(b(e,y(t)));return n?.for===t?n.message:void 0}function w(e,t){let n=b(e,y(t));if(!p.value.has(n))return;let r=new Map(p.value);r.delete(n),p.value=r}function T(e,t){return w(e,t),E(e,t)}async function E(e,t){let n=b(e,y(t));if(S(e,t)||m.get(n)===t)return;m.set(n,t);let r=new URLSearchParams({path:t.newPath,oldPath:t.oldPath,status:t.status});try{let i=X(await _(`/api/diff/${e}/file?${r}`));if(!v(e).includes(t))return;f.value=new Map(f.value).set(n,{file:i,for:t}),w(e,t)}catch(r){if(!v(e).includes(t))return;p.value=new Map(p.value).set(n,{message:g(r),for:t})}finally{m.get(n)===t&&m.delete(n)}}function D(){let n=new Set([...e.value.map(e=>b(`staged`,y(e))),...t.value.map(e=>b(`unstaged`,y(e)))]),r=new Map([...f.value].filter(([e])=>n.has(e)));r.size!==f.value.size&&(f.value=r);let i=new Map([...p.value].filter(([e])=>n.has(e)));i.size!==p.value.size&&(p.value=i)}let O=h(k);async function k(){s.value=!0;try{let[n,i]=await Promise.all([_(`/api/diff/staged/files`),_(`/api/diff/unstaged/files`)]),o=Z(e.value,r,n.map(X)),s=Z(t.value,a,i.map(X));e.value=o.files,r=o.signatures,t.value=s.files,a=s.signatures,D(),se([...o.files,...s.files].map(y)),l.value=null}catch(n){c.value||(e.value=[],t.value=[],r=new Map,a=new Map),l.value=g(n)}finally{s.value=!1,c.value=!0}}return{stagedFiles:e,unstagedFiles:t,loading:s,loaded:c,initialLoading:u,error:l,changedPaths:d,hunksOf:x,hunksFresh:S,hunksError:C,clearHunksError:w,ensureHunks:E,retryHunks:T,fetchDiff:O}});function $(e){let{snapshotData:t,...n}=e;return n}var fe=d(`active-review`,()=>{let e=i(null),t=i([]),n=i(!1),r=o(()=>{let e=new Map;for(let n of t.value){let t=e.get(n.filePath);t?t.push(n):e.set(n.filePath,[n])}return e});async function a(){n.value=!0;try{let n=(await _(`/api/reviews`)).filter(e=>e.status===`in_progress`).sort((e,t)=>t.createdAt.localeCompare(e.createdAt));e.value=n[0]??null,t.value=e.value?await _(`/api/reviews/${e.value.id}/comments`):[]}finally{n.value=!1}}function s(n){e.value=$(n),t.value=[]}async function c(t){e.value&&(await f(`/api/reviews/${e.value.id}`,{status:t}),await a())}async function l(n){if(!e.value)throw Error(`No active review`);let r=await p(`/api/reviews/${e.value.id}/comments`,n);return t.value=[...t.value,r],r}async function u(e,n){let r=await f(`/api/comments/${e}`,{content:n});t.value=t.value.map(t=>t.id===e?r:t)}async function d(e){await m(`/api/comments/${e}`),t.value=t.value.filter(t=>t.id!==e)}async function h(e){let n=await f(`/api/comments/${e}/resolve`);t.value=t.value.map(t=>t.id===e?n:t)}async function g(e){let n=await f(`/api/comments/${e}/unresolve`);t.value=t.value.map(t=>t.id===e?n:t)}return{activeReview:e,comments:t,loading:n,commentsByFile:r,refresh:a,setActiveReview:s,setStatus:c,createComment:l,editComment:u,deleteComment:d,resolveComment:h,unresolveComment:g}}),pe=t({__name:`CancelButton`,setup(t){let{t:n}=u();return(t,i)=>(e(),r(c,s({padding:`2px 8px`},t.$attrs,{dense:``,flat:``,color:`warning`,label:a(n)(`reviews.comments.cancel`)}),null,16,[`label`]))}}),me=t({__name:`CreateButton`,setup(t){let{t:n}=u();return(t,i)=>(e(),r(c,s({padding:`2px 8px`,label:a(n)(`reviews.create.submit`)},t.$attrs,{unelevated:``,dense:``,color:`accent`}),null,16,[`label`]))}});export{Q as a,le as c,b as d,y as f,$ as i,U as l,pe as n,ue as o,v as p,fe as r,ae as s,me as t,x as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,J as t,P as n,S as r,U as i,Y as a,_ as o,b as s,c,d as l,h as u,kt as d,l as f,ot as p,pt as m,r as h,s as g,v as _,w as v}from"./runtime-core.esm-bundler-BKFI1w28.js";import{O as y,_ as b,m as x,o as S,p as C}from"./use-router-link-BGc0noIO.js";import{t as w}from"./create-BSmXD9Zr.js";import{t as T}from"./QInput-DJgTh2Qy.js";import{l as E}from"./QBtn-DoggJe1Q.js";import{a as D,c as O,o as k,s as A}from"./index-Ic8yFbJg.js";import{n as j}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as M,r as N}from"./pinia-DCsnCHsH.js";import{f as P,s as F,u as I}from"./use-server-events-24_soFuj.js";import{a as L,t as R}from"./ClosePopup-D2_HzWXW.js";import{t as z}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as B,i as V,n as H,r as U,t as W}from"./CreateButton-pmDRGwna.js";import{t as G}from"./QFab-DyUFgj0W.js";var K=o({__name:`SearchInput`,props:{modelValue:{},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let r=i(e,`modelValue`);return(e,i)=>(n(),f(T,v({modelValue:r.value,"onUpdate:modelValue":i[0]||=e=>r.value=e},e.$attrs,{dense:``,outlined:``,clearable:``}),{prepend:t(()=>[u(E,{name:`search`,size:`xs`})]),_:1},16,[`modelValue`]))}}),q={position:{type:String,default:`bottom-right`,validator:e=>[`top-right`,`top-left`,`bottom-right`,`bottom-left`,`top`,`right`,`bottom`,`left`].includes(e)},offset:{type:Array,validator:e=>e.length===2},expand:Boolean};function J(){let{props:e}=_(),t=C(),n=r(b,x);if(n===x)return console.error(`QPageSticky needs to be child of QLayout`),x;let i=g(()=>{let t=e.position;return{top:t.includes(`top`),right:t.includes(`right`),bottom:t.includes(`bottom`),left:t.includes(`left`),vertical:t===`top`||t===`bottom`,horizontal:t===`left`||t===`right`}}),a=g(()=>n.header.offset),o=g(()=>n.right.offset),c=g(()=>n.footer.offset),l=g(()=>n.left.offset),u=g(()=>{let n=0,r=0,s=i.value,u=t.lang.rtl?-1:1;s.top&&a.value!==0?r=`${a.value}px`:s.bottom&&c.value!==0&&(r=`${-c.value}px`),s.left&&l.value!==0?n=`${u*l.value}px`:s.right&&o.value!==0&&(n=`${-u*o.value}px`);let d={transform:`translate(${n}, ${r})`};return e.offset&&(d.margin=`${e.offset[1]}px ${e.offset[0]}px`),s.vertical?(l.value!==0&&(d[t.lang.rtl?`right`:`left`]=`${l.value}px`),o.value!==0&&(d[t.lang.rtl?`left`:`right`]=`${o.value}px`)):s.horizontal&&(a.value!==0&&(d.top=`${a.value}px`),c.value!==0&&(d.bottom=`${c.value}px`)),d}),d=g(()=>`q-page-sticky row flex-center fixed-${e.position} q-page-sticky--${e.expand?`expand`:`shrink`}`);function f(t){let n=S(t.default);return s(`div`,{class:d.value,style:u.value},e.expand?n:[s(`div`,n)])}return{$layout:n,getStickyContent:f}}var Y=w({name:`QPageSticky`,props:q,setup(e,{slots:t}){let{getStickyContent:n}=J();return()=>n(t)}});function X(e){let t=new URLSearchParams;e.search&&t.set(`search`,e.search),e.createdFrom&&t.set(`createdFrom`,e.createdFrom),e.createdTo&&t.set(`createdTo`,e.createdTo),e.files&&e.files.length>0&&t.set(`files`,e.files.join(`,`));let n=t.toString();return n?`?${n}`:``}var Z=M(`reviews`,()=>{let e=p([]),t=p(!1),n=p(null);async function r(r={}){t.value=!0,n.value=null;try{e.value=await I(`/api/reviews${X(r)}`)}catch(t){e.value=[],n.value=F(t)}finally{t.value=!1}}async function i(t){let n=await P(`/api/reviews`,t);return e.value=[V(n),...e.value],n}return{reviews:e,loading:t,error:n,fetchReviews:r,createReview:i}}),Q={class:`text-h6`},$=z(o({__name:`ReviewCreateDialog`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:e([`created`,`hide`],[`update:modelValue`]),setup(e,{emit:r}){let o=i(e,`modelValue`),s=r,{t:l}=j(),h=Z(),g=p(``),_=p(!1),v=p(null);function b(){g.value=``,_.value=!1,v.value=null}async function x(){_.value=!0,v.value=null;try{let e=g.value.trim(),t=await h.createReview(e?{name:e}:{});o.value=!1,b(),s(`created`,t)}catch(e){v.value=F(e)}finally{_.value=!1}}function S(){b(),s(`hide`)}return(e,r)=>(n(),f(O,{modelValue:o.value,"onUpdate:modelValue":r[1]||=e=>o.value=e,onHide:S},{default:t(()=>[u(A,{class:`review-create-dialog`},{default:t(()=>[u(k,null,{default:t(()=>[c(`div`,Q,d(m(l)(`reviews.create.title`)),1)]),_:1}),u(k,{class:`q-gutter-y-md`},{default:t(()=>[u(T,{modelValue:g.value,"onUpdate:modelValue":r[0]||=e=>g.value=e,dense:``,outlined:``,label:m(l)(`reviews.create.nameLabel`),hint:m(l)(`reviews.create.nameHint`),error:!!v.value,"error-message":v.value??void 0,onKeyup:y(x,[`enter`])},null,8,[`modelValue`,`label`,`hint`,`error`,`error-message`])]),_:1}),u(D,{align:`right`},{default:t(()=>[a(u(H,null,null,512),[[R]]),u(W,{loading:_.value,onClick:x},null,8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]))}}),[[`__scopeId`,`data-v-095646d6`]]),ee=o({__name:`CreateReviewFabButton`,emits:[`created`],setup(e,{emit:r}){let i=r,o=U(),s=B(),{activeReview:c}=N(o),{changedPaths:d}=N(s),f=p(!1),m=p(!1),_=p([18,18]),v=p(!1),y=g(()=>d.value.length===0||c.value!==null);function b(e){v.value=e.isFirst!==!0&&e.isFinal!==!0,_.value=[_.value[0]-(e.delta?.x??0),_.value[1]-(e.delta?.y??0)]}function x(e){o.setActiveReview(e),i(`created`,e)}return(e,r)=>(n(),l(h,null,[u(Y,{position:`bottom-right`,offset:_.value},{default:t(()=>[a(u(G,{modelValue:m.value,"onUpdate:modelValue":r[0]||=e=>m.value=e,icon:`add`,color:`accent`,disable:y.value||v.value,onClick:r[1]||=e=>f.value=!0},null,8,[`modelValue`,`disable`]),[[L,b,void 0,{prevent:!0,mouse:!0}]])]),_:1},8,[`offset`]),u($,{modelValue:f.value,"onUpdate:modelValue":r[2]||=e=>f.value=e,onCreated:x,onHide:r[3]||=e=>m.value=!1},null,8,[`modelValue`])],64))}});export{Z as n,K as r,ee as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as e,c as t,d as n,h as r}from"./runtime-core.esm-bundler-BKFI1w28.js";import{t as i}from"./QBtn-
|
|
1
|
+
import{P as e,c as t,d as n,h as r}from"./runtime-core.esm-bundler-BKFI1w28.js";import{t as i}from"./QBtn-DoggJe1Q.js";import{t as a}from"./_plugin-vue_export-helper-BDNMzG2s.js";var o={},s={class:`fullscreen bg-blue text-white text-center q-pa-md flex flex-center`};function c(a,o){return e(),n(`div`,s,[t(`div`,null,[o[0]||=t(`div`,{style:{"font-size":`30vh`}},`404`,-1),o[1]||=t(`div`,{class:`text-h2`,style:{opacity:`0.4`}},`Oops. Nothing here...`,-1),r(i,{class:`q-mt-xl`,color:`white`,"text-color":`blue`,unelevated:``,to:`/`,label:`Go Home`,"no-caps":``})])])}var l=a(o,[[`render`,c]]);export{l as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as e,Dt as t,F as n,I as r,J as i,K as a,L as o,M as s,O as c,Ot as l,P as u,R as d,T as f,U as p,W as m,Y as h,_ as g,b as _,c as v,ct as y,d as b,ft as x,h as S,j as C,kt as w,l as T,m as E,ot as D,pt as O,r as k,rt as A,s as j,tt as M,u as N}from"./runtime-core.esm-bundler-BKFI1w28.js";import{i as P,k as F,o as I,p as L}from"./use-router-link-BGc0noIO.js";import{u as ee}from"./event-rR76ioXz.js";import{t as te}from"./create-BSmXD9Zr.js";import{d as ne}from"./QInput-DJgTh2Qy.js";import{a as R,i as z,l as B,t as V}from"./QBtn-DoggJe1Q.js";import{n as H,t as re}from"./use-dark-BHObfh0O.js";import{i as U,j as ie,t as ae}from"./index-Ic8yFbJg.js";import{n as W}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as oe,r as G}from"./pinia-DCsnCHsH.js";import{f as se,m as ce,n as le,o as ue,s as de,u as fe}from"./use-server-events-24_soFuj.js";import{t as pe}from"./agent-store-B1VK6S0D.js";import{t as me}from"./safe-storage-Bn-sHAYw.js";import{t as he}from"./QSpace-BRLIXkHB.js";import{r as ge}from"./use-virtual-scroll-BSXYZjZ5.js";import{a as _e,c as K,s as q}from"./ClosePopup-D2_HzWXW.js";import{t as J}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as ve,t as ye}from"./QScrollArea-DfPW35JQ.js";import{r as be,t as xe}from"./agent-icon-Dx8WBYX_.js";import{a as Se,i as Ce,n as we,o as Te,t as Ee}from"./use-panel-width-Dyh49bod.js";import{a as Y,d as De,f as X,p as Oe,r as Z}from"./CreateButton-pmDRGwna.js";import{t as ke}from"./equal-arrays-GA_7ZCAb.js";import{S as Ae,_ as je,a as Me,b as Ne,c as Pe,d as Fe,f as Ie,g as Le,h as Re,i as ze,l as Be,m as Ve,n as He,o as Ue,p as We,r as Ge,s as Ke,t as qe,u as Je,v as Ye,x as Xe,y as Ze}from"./StatusSwitcher-D5UG_YWP.js";import{r as Qe,t as $e}from"./CreateReviewFabButton-CcXWnmSN.js";import{t as et}from"./AppPage-cl-3VfAl.js";var tt=8,nt=12,rt=20;function Q(e,t){return tt+e*nt+(t?rt:0)}function it(e){return e.toSorted((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1).map(e=>({...e,children:e.children?it(e.children):void 0}))}function at(e,t){let n=[],r=new Map,i=e=>{let t=r.get(e);return t||(t=new Map,r.set(e,t)),t};for(let r of e){let e=r.split(`/`),a=n,o=``;for(let n=0;n<e.length;n++){let s=e[n];if(!s)continue;let c=n===e.length-1;o=o===``?s:`${o}/${s}`;let l=`${c?`f`:`d`}:${s}`,u=i(a),d=u.get(l);d||(d={name:s,path:c?r:o,type:c?`file`:`directory`,isChanged:c?t.has(r):!1,children:c?void 0:[]},a.push(d),u.set(l,d)),!c&&d.children&&(a=d.children)}}return it(n)}function ot(e,t){if(!t.trim())return e;let n=t.toLowerCase(),r=e=>{if(e.type===`file`)return e.path.toLowerCase().includes(n)?e:null;let t=e.children?.map(r).filter(e=>e!==null);return t&&t.length>0?{...e,children:t}:e.name.toLowerCase().includes(n)?e:null};return e.map(r).filter(e=>e!==null)}function st(e,t,n){let r=[],i=(e,a)=>{for(let o of e){if(o.type===`file`){r.push({kind:`file`,path:o.path,name:o.name,depth:a});continue}let e=o,s=[e.path],c=[e.name];for(;e.children?.length===1&&e.children[0]?.type===`directory`;)e=e.children[0],s.push(e.path),c.push(e.name);let l=n||!s.some(e=>t.has(e));r.push({kind:`folder`,path:e.path,paths:s,name:c.join(`/`),depth:a,expanded:l}),l&&i(e.children??[],a+1)}};return i(e,0),r}function ct(){let e=D([]),t=D(!1),n=D(!1),r=D(null),i=j(()=>!n.value),a=0;async function o(i,o=[]){let s=++a;t.value=!0;try{let t=await fe(`/api/git/tree/${encodeURIComponent(i)}`);if(s!==a)return;e.value=at(t.files.map(Oe),new Set(o)),r.value=null}catch(e){if(s!==a)return;r.value=de(e)}finally{s===a&&(t.value=!1,n.value=!0)}}function s(){++a,e.value=[],t.value=!1,n.value=!1,r.value=null}return{tree:e,loading:t,initialLoading:i,error:r,fetchTree:o,reset:s}}var lt=`githuman.diffListMode`;function ut(){return me.get(lt)===`tree`?`tree`:`list`}function dt(e,t=new Set){for(let n of e)n.type===`directory`&&(t.add(n.path),dt(n.children??[],t));return t}function ft(e){return e.type===`file`?e.isChanged:e.children?.some(ft)??!1}var $=oe(`file-explorer`,()=>{let e=Y(),{tree:t,initialLoading:n,error:r,fetchTree:i,reset:o}=ct(),{lines:s,isBinary:c,loading:l,error:u,fetchContent:d,reset:f}=Ae(),p=D(`unstaged`),m=D(!1),h=D(``),g=D(null),_=D(new Set),v=D(new Set),y=D(ut()),b=D(new Set),x=D(null),S=D(0),C=j(()=>p.value===`staged`?e.stagedFiles:e.unstagedFiles),w=j(()=>new Map(C.value.map(e=>[X(e),e]))),T=j(()=>y.value===`tree`?at(C.value.map(X),new Set):[]),E=j(()=>{let e=C.value;if(y.value===`list`)return e;let t=w.value,n=st(T.value,new Set,!0).flatMap(e=>e.kind===`file`?t.get(e.path)??[]:[]),r=new Set(n);return[...n,...e.filter(e=>!r.has(e))]}),O=j(()=>(h.value??``).trim()!==``),k=j(()=>{let e=(h.value??``).trim().toLowerCase();return e?E.value.filter(t=>X(t).toLowerCase().includes(e)):E.value}),A=j(()=>{let e=w.value;return st(ot(T.value,(h.value??``).trim()),b.value,O.value).flatMap(t=>{if(t.kind===`folder`)return[t];let n=e.get(t.path);return n?[{...t,file:n}]:[]})}),M=j(()=>ot(t.value,h.value??``)),N=j(()=>{let e=0,n=t=>{for(let r of t)r.type===`file`?e++:r.children&&n(r.children)};return n(t.value),e});a(t,e=>{let t=new Set,n=e=>{for(let r of e)r.type===`directory`&&r.children&&(ft(r)&&t.add(r.path),n(r.children))};n(e),_.value=t},{immediate:!0}),a(p,()=>{g.value=null,v.value=new Set,b.value=new Set,x.value=null,S.value++}),a(T,e=>{if(y.value!==`tree`||b.value.size===0)return;let t=dt(e),n=[...b.value].filter(e=>t.has(e));n.length<b.value.size&&(b.value=new Set(n))}),a(g,e=>{if(m.value){if(!e){f();return}d(e,`WORKTREE`)}}),a(y,e=>{me.set(lt,e),g.value&&!m.value&&z(g.value)});function P(e){let t=new Set(b.value),n=e.some(e=>t.has(e));for(let r of e)n?t.delete(r):t.add(r);b.value=t}function F(e){let t=new Set(_.value);t.has(e)?t.delete(e):t.add(e),_.value=t}function I(e){let t=new Set(v.value);t.has(e)?t.delete(e):t.add(e),v.value=t}function L(e){g.value=e,I(e)}function ee(e){g.value=e,v.value.has(e)||(v.value=new Set(v.value).add(e))}function te(){v.value=new Set(E.value.map(X)),S.value++}function ne(){v.value=new Set,S.value++}function R(e){g.value=e,!m.value&&(v.value.has(e)||(v.value=new Set(v.value).add(e)),z(e))}function z(e){let t=E.value.findIndex(t=>X(t)===e);t<0||(x.value={path:e,index:t,seq:(x.value?.seq??0)+1})}let B=0,V=D(!1),H=ue(async()=>{V.value=!0;try{await e.fetchDiff(),m.value&&(await i(`WORKTREE`,e.changedPaths),g.value&&await d(g.value,`WORKTREE`))}finally{V.value=!1}});a(m,e=>{h.value=``,g.value=null,e?H():(o(),f())});async function re(){B=Date.now(),await H()}async function U(){Date.now()-B<400||await H()}return{source:p,browseMode:m,filter:h,selectedPath:g,expandedFolders:_,expandedFiles:v,diffListMode:y,collapsedDiffFolders:b,scrollRequest:x,layoutVersion:S,tree:t,treeInitialLoading:n,treeError:r,refreshing:V,browseFileLines:s,browseFileIsBinary:c,browseFileLoading:l,browseFileError:u,diffFiles:E,filtering:O,filteredDiffFiles:k,diffTreeRows:A,filteredTree:M,totalTreeFiles:N,toggleFolder:F,toggleDiffFolder:P,toggleFileCard:I,handleCardToggle:L,expandFile:ee,expandAllFiles:te,collapseAllFiles:ne,selectFile:R,refresh:re,refreshFromServerEvent:U}}),pt=te({name:`QSplitter`,props:{...H,modelValue:{type:Number,required:!0},reverse:Boolean,unit:{type:String,default:`%`,validator:e=>[`%`,`px`].includes(e)},limits:{type:Array,validator:e=>e.length!==2||typeof e[0]!=`number`||typeof e[1]!=`number`?!1:e[0]>=0&&e[0]<=e[1]},emitImmediately:Boolean,horizontal:Boolean,disable:Boolean,beforeClass:[Array,String,Object],afterClass:[Array,String,Object],separatorClass:[Array,String,Object],separatorStyle:[Array,String,Object],separatorAriaLabel:String},emits:[`update:modelValue`],setup(e,{slots:t,emit:n}){let r=L(),i=re(e,r),o=y(null),s={before:y(null),after:y(null)},c=ne(),l=j(()=>`q-splitter no-wrap ${e.horizontal?`q-splitter--horizontal column`:`q-splitter--vertical row`} q-splitter--${e.disable?`disabled`:`workable`}`+(i()?` q-splitter--dark`:``)),u=j(()=>e.horizontal?`height`:`width`),d=j(()=>e.reverse?`after`:`before`),p=j(()=>e.limits===void 0?e.unit===`%`?[10,90]:[50,1/0]:e.limits);function m(t){return(e.unit===`%`?t:Math.round(t))+e.unit}let g=j(()=>({[d.value]:{[u.value]:m(e.modelValue)}})),v,b,x,S,C;function w(t){if(t.isFirst){let t=o.value.getBoundingClientRect()[u.value];v=e.horizontal?`up`:`left`,b=e.unit===`%`?100:t,x=Math.min(b,p.value[1],Math.max(p.value[0],e.modelValue)),S=(e.reverse?-1:1)*(e.horizontal?1:r.lang.rtl?-1:1)*(e.unit===`%`?t===0?0:100/t:1),o.value.classList.add(`q-splitter--active`);return}if(t.isFinal){C!==e.modelValue&&n(`update:modelValue`,C),o.value.classList.remove(`q-splitter--active`);return}let i=x+S*(t.direction===v?-1:1)*t.distance[e.horizontal?`y`:`x`];C=Math.min(b,p.value[1],Math.max(p.value[0],i)),s[d.value].value.style[u.value]=m(C),e.emitImmediately&&e.modelValue!==C&&n(`update:modelValue`,C)}let T=j(()=>[[_e,e.disable?void 0:w,void 0,{[e.horizontal?`vertical`:`horizontal`]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]),E=j(()=>{let t={role:`separator`,"aria-orientation":e.horizontal?`horizontal`:`vertical`,"aria-label":e.separatorAriaLabel||r.lang.label.resize};if(e.disable)t[`aria-disabled`]=`true`;else{let n=p.value;t.tabindex=0,t[`aria-controls`]=c.value,t[`aria-valuemin`]=n[0],n[1]!==1/0&&(t[`aria-valuemax`]=n[1]),t[`aria-valuenow`]=Math.round(e.modelValue*100)/100}return t}),D=null;function O(t){let{keyCode:i}=t,a=e.horizontal?[38,40]:[37,39];if(i!==13&&i!==36&&i!==35&&!a.includes(i))return;ee(t);let s=p.value,c=e.unit===`%`?100:o.value.getBoundingClientRect()[u.value],l;if(i===13)e.modelValue===s[0]?l=D===null?e.modelValue:D:(D=e.modelValue,l=s[0]);else if(i===36)l=s[0];else if(i===35)l=s[1];else{let t=(i===a[0]?-1:1)*(e.reverse?-1:1)*(e.horizontal?1:r.lang.rtl?-1:1);l=e.modelValue+t*(e.unit===`%`?1:10)}let d=Math.min(c,s[1],Math.max(s[0],l));d!==e.modelValue&&n(`update:modelValue`,d)}function k(e,t){e<t[0]?n(`update:modelValue`,t[0]):e>t[1]&&n(`update:modelValue`,t[1])}return a(()=>e.modelValue,e=>{k(e,p.value)}),a(()=>e.limits,()=>{f(()=>{k(e.modelValue,p.value)})}),()=>{let n=[_(`div`,{ref:s.before,id:d.value===`before`?c.value:void 0,class:[`q-splitter__panel q-splitter__before`+(e.reverse?` col`:``),e.beforeClass],style:g.value.before},I(t.before)),_(`div`,{class:[`q-splitter__separator`,e.separatorClass],style:e.separatorStyle,...E.value,onKeydown:e.disable?void 0:O},[h(_(`div`,{class:`q-splitter__separator-area absolute-full`},I(t.separator)),T.value)]),_(`div`,{ref:s.after,id:d.value===`after`?c.value:void 0,class:[`q-splitter__panel q-splitter__after`+(e.reverse?``:` col`),e.afterClass],style:g.value.after},I(t.after))];return _(`div`,{class:l.value,ref:o},P(t.default,n))}}}),mt=`githuman.fileListWidth`,ht=260,gt=220,_t=600,vt=J(g({__name:`PanelResize`,setup(e){let t=D(we(mt,gt,_t)??ht),n=j(()=>[gt,_t]);function r(e){ce(e)&&(t.value=Ee(e,gt,_t),me.set(mt,String(t.value)))}return(e,a)=>(u(),T(pt,{"model-value":t.value,limits:n.value,unit:`px`,class:`file-explorer`,"before-class":`file-explorer__panel`,"after-class":`file-explorer__content`,"onUpdate:modelValue":r},{before:i(()=>[o(e.$slots,`panel`,{},void 0,!0)]),after:i(()=>[o(e.$slots,`content`,{},void 0,!0)]),_:3},8,[`model-value`,`limits`]))}}),[[`__scopeId`,`data-v-d0bbc6dd`]]),yt={class:`row items-center no-wrap q-gutter-x-xs`},bt={class:`row items-center no-wrap q-gutter-x-xs`},xt=g({__name:`FileExplorerTabs`,props:e({stagedFilesLength:{},unstagedFilesLength:{}},{modelValue:{default:`unstaged`},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=p(e,`modelValue`),{t:n}=W();return(r,a)=>(u(),T(Se,{modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,dense:``,"no-caps":``,align:`left`,"narrow-indicator":``,class:`text-primary q-mb-sm`},{default:i(()=>[S(Te,{name:`unstaged`},{default:i(()=>[v(`div`,yt,[v(`span`,null,w(O(n)(`changes.unstaged`)),1),S(ve,{color:`warning`,rounded:``},{default:i(()=>[E(w(e.unstagedFilesLength),1)]),_:1})])]),_:1}),S(Te,{name:`staged`},{default:i(()=>[v(`div`,bt,[v(`span`,null,w(O(n)(`changes.staged`)),1),S(ve,{color:`positive`,rounded:``},{default:i(()=>[E(w(e.stagedFilesLength),1)]),_:1})])]),_:1})]),_:1},8,[`modelValue`]))}}),St={class:`file-tree-node`},Ct={class:`row items-center no-wrap q-gutter-x-xs`},wt=[`data-tooltip`],Tt=[`data-tooltip`],Et={key:2},Dt=J(g({__name:`FileTreeNode`,props:{node:{},selectedPath:{},expandedFolders:{},level:{}},emits:[`toggle-folder`,`file-select`],setup(e,{emit:n}){let a=n;return(n,o)=>{let s=d(`FileTreeNode`,!0);return u(),b(`div`,St,[e.node.type===`directory`?h((u(),T(q,{key:0,clickable:``,dense:``,style:l({paddingLeft:`${O(Q)(e.level,!1)}px`}),onClick:o[0]||=t=>a(`toggle-folder`,e.node.path)},{default:i(()=>[S(K,{avatar:``,class:`file-tree-node__icon-section`},{default:i(()=>[v(`div`,Ct,[S(B,{name:`chevron_right`,size:`xs`,class:t([`file-tree-node__chevron`,{"file-tree-node__chevron--expanded":e.expandedFolders.has(e.node.path)}])},null,8,[`class`]),S(B,{name:e.expandedFolders.has(e.node.path)?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),S(K,{class:`text-mono`},{default:i(()=>[v(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},w(e.node.name),9,wt)]),_:1}),e.node.children?(u(),T(K,{key:0,side:``,class:`text-caption text-grey-6`},{default:i(()=>[E(w(e.node.children.length),1)]),_:1})):N(``,!0)]),_:1},8,[`style`])),[[z]]):h((u(),T(q,{key:1,clickable:``,dense:``,active:e.node.path===e.selectedPath,"active-class":`file-tree-node--selected`,style:l({paddingLeft:`${O(Q)(e.level,!0)}px`}),onClick:o[1]||=t=>a(`file-select`,e.node.path)},{default:i(()=>[S(K,{avatar:``,class:`file-tree-node__icon-section`},{default:i(()=>[S(B,{name:`insert_drive_file`,size:`xs`,color:`grey-6`})]),_:1}),S(K,{class:`text-mono`},{default:i(()=>[v(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},w(e.node.name),9,Tt)]),_:1}),e.node.isChanged?(u(),T(K,{key:0,side:``},{default:i(()=>[S(B,{name:`fiber_manual_record`,size:`8px`,color:`warning`})]),_:1})):N(``,!0)]),_:1},8,[`active`,`style`])),[[z]]),e.node.type===`directory`&&e.expandedFolders.has(e.node.path)&&e.node.children?(u(),b(`div`,Et,[(u(!0),b(k,null,r(e.node.children,t=>(u(),T(s,{key:t.path,node:t,"selected-path":e.selectedPath,"expanded-folders":e.expandedFolders,level:e.level+1,onToggleFolder:o[2]||=e=>a(`toggle-folder`,e),onFileSelect:o[3]||=e=>a(`file-select`,e)},null,8,[`node`,`selected-path`,`expanded-folders`,`level`]))),128))])):N(``,!0)])}}}),[[`__scopeId`,`data-v-ef4a1d44`]]);function Ot(){let e=L(),{t}=W(),n=be(),r=$(),i=Z();async function a(e,i,a){try{await se(i,{paths:[e]}),await r.refresh()}catch(e){n(t(a),e)}}function o(n){let r=(i.commentsByFile.get(n)??[]).filter(e=>!e.resolved).length;if(r===0)return a(n,`/api/git/stage`,`changes.actions.stageError`);e.dialog({title:t(`changes.actions.stageUnresolvedTitle`),message:t(`changes.actions.stageUnresolvedMessage`,{path:n,count:r}),persistent:!0,ok:{label:t(`changes.actions.stageUnresolvedOk`),flat:!0},cancel:{label:t(`changes.actions.discardConfirmCancel`),flat:!0}}).onOk(()=>{a(n,`/api/git/stage`,`changes.actions.stageError`)})}function s(e){return a(e,`/api/git/unstage`,`changes.actions.unstageError`)}function c(n){e.dialog({title:t(`changes.actions.discardConfirmTitle`),message:t(`changes.actions.discardConfirmMessage`,{path:n}),persistent:!0,ok:{label:t(`changes.actions.discardConfirmOk`),color:`negative`,flat:!0},cancel:{label:t(`changes.actions.discardConfirmCancel`),flat:!0}}).onOk(()=>{a(n,`/api/git/discard`,`changes.actions.discardError`)})}return{stage:o,unstage:s,discard:c}}var kt={class:`file-list-item__path-row row no-wrap items-center`},At=[`data-tooltip`],jt={class:`text-caption`},Mt={class:`text-positive`},Nt={class:`text-negative q-ml-xs`},Pt=J(g({__name:`FileListItem`,props:{file:{},selected:{type:Boolean},source:{},label:{},depth:{}},emits:[`click`],setup(e){let n={added:`A`,modified:`M`,deleted:`D`,renamed:`R`},r={added:`positive`,modified:`warning`,deleted:`negative`,renamed:`purple`},a=e,{t:o}=W(),{stage:s,unstage:c,discard:d}=Ot(),f=Z(),p=j(()=>X(a.file)),m=j(()=>f.commentsByFile.get(p.value)?.length??0);return(a,f)=>h((u(),T(q,{clickable:``,dense:``,class:`file-list-item`,active:e.selected,"active-class":`file-list-item--selected`,"aria-label":e.label===void 0?void 0:p.value,style:l(e.depth===void 0?void 0:{paddingLeft:`${O(Q)(e.depth,!0)}px`}),onClick:f[3]||=e=>a.$emit(`click`)},{default:i(()=>[S(K,{avatar:``,class:`file-list-item__icon-section`},{default:i(()=>[v(`span`,{class:t([`text-caption text-weight-bold text-mono`,`text-${r[e.file.status]}`])},w(n[e.file.status]),3)]),_:1}),S(K,{class:`text-mono`},{default:i(()=>[v(`div`,kt,[v(`span`,{class:`ellipsis file-list-item__path-label`,"data-tooltip":p.value},w(e.label??p.value),9,At),m.value>0?(u(),T(Xe,{key:0,compact:``,class:`file-list-item__badge`,count:m.value},null,8,[`count`])):N(``,!0)])]),_:1}),S(K,{side:``,class:`file-list-item__stats`},{default:i(()=>[v(`span`,jt,[v(`span`,Mt,`+`+w(e.file.additions),1),v(`span`,Nt,`-`+w(e.file.deletions),1)])]),_:1}),S(K,{side:``,class:`file-list-item__actions`},{default:i(()=>[e.source===`unstaged`?(u(),b(k,{key:0},[h(S(V,{flat:``,dense:``,round:``,size:`sm`,icon:`undo`,"aria-label":O(o)(`changes.actions.discard`),"data-tooltip":O(o)(`changes.actions.discard`),onClick:f[0]||=F(e=>O(d)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`]),[[z]]),h(S(V,{flat:``,dense:``,round:``,size:`sm`,icon:`add`,"aria-label":O(o)(`changes.actions.stage`),"data-tooltip":O(o)(`changes.actions.stage`),onClick:f[1]||=F(e=>O(s)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`]),[[z]])],64)):h((u(),T(V,{key:1,flat:``,dense:``,round:``,size:`sm`,icon:`remove`,"aria-label":O(o)(`changes.actions.unstage`),"data-tooltip":O(o)(`changes.actions.unstage`),onClick:f[2]||=F(e=>O(c)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`])),[[z]])]),_:1})]),_:1},8,[`active`,`aria-label`,`style`])),[[z]])}}),[[`__scopeId`,`data-v-a94df6a5`]]),Ft=g({__name:`BrowseModeToggle`,props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=p(e,`modelValue`),{t:n}=W();return(e,r)=>(u(),T(q,null,{default:i(()=>[S(K,null,{default:i(()=>[S(ge,null,{default:i(()=>[E(w(O(n)(`browse.toggle`)),1)]),_:1})]),_:1}),S(K,{side:``},{default:i(()=>[S(ae,{modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e,dense:``,size:`xs`},null,8,[`modelValue`])]),_:1})]),_:1}))}}),It={class:`row items-center no-wrap q-gutter-x-xs`},Lt=[`data-tooltip`],Rt=J(g({__name:`DiffTreeFolderRow`,props:{name:{},path:{},depth:{},expanded:{type:Boolean},locked:{type:Boolean}},emits:[`toggle`],setup(e){let{t:n}=W();return(r,a)=>h((u(),T(q,{clickable:!e.locked,dense:``,class:`file-list-item diff-tree-folder-row`,style:l({paddingLeft:`${O(Q)(e.depth,!1)}px`}),"aria-expanded":e.locked?void 0:e.expanded,"aria-label":e.locked?void 0:O(n)(`changes.listMode.folder`,{path:e.path}),onClick:a[0]||=e=>r.$emit(`toggle`)},{default:i(()=>[S(K,{avatar:``,class:`diff-tree-folder-row__icons`},{default:i(()=>[v(`div`,It,[S(B,{name:`chevron_right`,size:`xs`,class:t([`diff-tree-folder-row__chevron`,{"diff-tree-folder-row__chevron--expanded":e.expanded,invisible:e.locked}])},null,8,[`class`]),S(B,{name:e.expanded?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),S(K,{class:`text-mono`},{default:i(()=>[v(`span`,{class:`ellipsis`,"data-tooltip":e.path},w(e.name),9,Lt)]),_:1})]),_:1},8,[`clickable`,`style`,`aria-expanded`,`aria-label`])),[[z,!e.locked]])}}),[[`__scopeId`,`data-v-e82c6cd4`]]),zt={class:`file-list-panel__header q-pa-sm`},Bt={key:1,class:`text-subtitle2 q-mb-sm`},Vt={key:0,class:`text-primary`},Ht={class:`row no-wrap items-center q-gutter-x-xs`},Ut={key:0,class:`row justify-center q-pa-lg`},Wt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},Gt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},Kt=32,qt=J(g({__name:`FileListPanel`,setup(e){let{t}=W(),{stagedFiles:n,unstagedFiles:a,initialLoading:o,error:s}=G(Y()),c=$(),{source:l,browseMode:d,filter:f,selectedPath:p,expandedFolders:m,treeInitialLoading:h,treeError:g,filteredDiffFiles:_,diffTreeRows:y,diffListMode:x,filtering:C,filteredTree:A,totalTreeFiles:P}=G(c),F=D(null),I=j(()=>F.value?.getScrollTarget()??null);return(e,D)=>(u(),b(k,null,[v(`div`,zt,[O(d)?(u(),b(`div`,Bt,[E(w(O(t)(`browse.allFiles`))+` `,1),O(P)>0||!O(g)?(u(),b(`span`,Vt,`(`+w(O(P))+`)`,1)):N(``,!0)])):(u(),T(xt,{key:0,modelValue:O(l),"onUpdate:modelValue":D[0]||=e=>M(l)?l.value=e:null,"staged-files-length":O(n).length,"unstaged-files-length":O(a).length},null,8,[`modelValue`,`staged-files-length`,`unstaged-files-length`])),v(`div`,Ht,[S(Qe,{modelValue:O(f),"onUpdate:modelValue":D[1]||=e=>M(f)?f.value=e:null,class:`col`,placeholder:O(d)?O(t)(`browse.searchPlaceholder`):O(t)(`changes.filterPlaceholder`)},null,8,[`modelValue`,`placeholder`]),O(d)?N(``,!0):(u(),T(V,{key:0,flat:``,dense:``,round:``,size:`sm`,icon:`account_tree`,color:O(x)===`tree`?`primary`:void 0,"aria-label":O(t)(`changes.listMode.tree`),"aria-pressed":O(x)===`tree`,onClick:D[2]||=e=>x.value=O(x)===`tree`?`list`:`tree`},{default:i(()=>[S(ie,{delay:O(500)},{default:i(()=>[E(w(O(t)(`changes.listMode.tree`)),1)]),_:1},8,[`delay`])]),_:1},8,[`color`,`aria-label`,`aria-pressed`]))])]),S(U),S(ye,{ref_key:`scrollArea`,ref:F,class:`col file-list-panel__scroll`,"content-style":`padding: 4px 0`,"content-active-style":`padding: 4px 0`},{default:i(()=>[(O(d)?O(h):O(o))?(u(),b(`div`,Ut,[S(R,{color:`primary`,size:`2em`})])):O(d)?(u(),b(k,{key:1},[O(A).length===0&&(!O(g)||O(f)&&O(P)>0)?(u(),b(`p`,Wt,w(O(f)?O(t)(`browse.noMatchingFiles`):O(t)(`browse.noFiles`)),1)):N(``,!0),(u(!0),b(k,null,r(O(A),e=>(u(),T(Dt,{key:e.path,node:e,"selected-path":O(p),"expanded-folders":O(m),level:0,onToggleFolder:O(c).toggleFolder,onFileSelect:O(c).selectFile},null,8,[`node`,`selected-path`,`expanded-folders`,`onToggleFolder`,`onFileSelect`]))),128))],64)):(u(),b(k,{key:2},[O(_).length===0&&(O(f)||!O(s))?(u(),b(`p`,Gt,w(O(f)?O(t)(`browse.noMatchingFiles`):O(t)(`changes.emptyFileList`)),1)):N(``,!0),I.value&&O(x)===`tree`?(u(),T(Ce,{key:`${O(l)}:tree`,"scroll-target":I.value,items:O(y),"virtual-scroll-item-size":Kt},{default:i(({item:e})=>[e.kind===`folder`?(u(),T(Rt,{key:`d:${e.path}`,name:e.name,path:e.path,depth:e.depth,expanded:e.expanded,locked:O(C),onToggle:t=>O(c).toggleDiffFolder(e.paths)},null,8,[`name`,`path`,`depth`,`expanded`,`locked`,`onToggle`])):(u(),T(Pt,{key:`f:${e.path}`,file:e.file,label:e.name,depth:e.depth,selected:O(p)===e.path,source:O(l),onClick:t=>O(c).selectFile(e.path)},null,8,[`file`,`label`,`depth`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):I.value?(u(),T(Ce,{key:`${O(l)}:list`,"scroll-target":I.value,items:O(_),"virtual-scroll-item-size":Kt},{default:i(({item:e})=>[(u(),T(Pt,{key:O(X)(e),file:e,selected:O(p)===O(X)(e),source:O(l),onClick:t=>O(c).selectFile(O(X)(e))},null,8,[`file`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):N(``,!0)],64))]),_:1},512),S(U),S(Ft,{modelValue:O(d),"onUpdate:modelValue":D[3]||=e=>M(d)?d.value=e:null},null,8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-bdc095b7`]]),Jt=[`wheel`,`pointerdown`,`keydown`,`touchstart`];function Yt(e){let t=e.inputTarget??(typeof document>`u`?null:document),n=e.follow??Ye,r=null,i;function o(){r=x(e.request),i?.(),i=void 0}for(let e of Jt)t?.addEventListener(e,o,{capture:!0,passive:!0});let s=a([()=>x(e.request),()=>x(e.list),()=>x(e.root)],([t,a,o],s,c)=>{if(!t||t===r||!a||!o)return;let l=!1,u,d=()=>{l=!0,u?.(),u=void 0};i=d,c(()=>{d(),x(e.request)===t&&(r=t),i===d&&(i=void 0)}),f().then(()=>{l||t===r||(a.scrollTo(t.index,`start`),u=n({root:o,target:()=>e.target?e.target(t):document.getElementById(`diff-file-${t.path}`)}))})},{immediate:!0,flush:`post`});A(()=>{s(),i?.();for(let e of Jt)t?.removeEventListener(e,o,!0)})}var Xt={class:`diff-status-bar row items-center q-gutter-x-md q-pa-sm text-body2`},Zt={class:`text-weight-medium`},Qt={class:`text-positive`},$t={class:`text-negative`},en={key:0,class:`text-grey-6`},tn={key:1,class:`text-grey-6`},nn={key:2,class:`text-grey-6`},rn={key:3,class:`text-grey-6`},an=g({__name:`DiffStatusBar`,props:{files:{}},emits:[`expand-all`,`collapse-all`],setup(e,{emit:t}){let n=e,r=t,{t:i}=W(),a=j(()=>{let e=n.files.reduce((e,t)=>e+t.additions,0),t=n.files.reduce((e,t)=>e+t.deletions,0),r=n.files.filter(e=>e.status===`added`).length,i=n.files.filter(e=>e.status===`modified`).length,a=n.files.filter(e=>e.status===`deleted`).length,o=n.files.filter(e=>e.status===`renamed`).length;return{total:n.files.length,additions:e,deletions:t,added:r,modified:i,deleted:a,renamed:o}});return(e,t)=>(u(),b(`div`,Xt,[v(`span`,Zt,w(O(i)(`changes.filesChanged`,{count:a.value.total})),1),v(`span`,Qt,` +`+w(a.value.additions)+` `+w(O(i)(`changes.additions`)),1),v(`span`,$t,` -`+w(a.value.deletions)+` `+w(O(i)(`changes.deletions`)),1),a.value.added?(u(),b(`span`,en,w(a.value.added)+` `+w(O(i)(`changes.added`)),1)):N(``,!0),a.value.modified?(u(),b(`span`,tn,w(a.value.modified)+` `+w(O(i)(`changes.modified`)),1)):N(``,!0),a.value.deleted?(u(),b(`span`,nn,w(a.value.deleted)+` `+w(O(i)(`changes.deletedPlural`)),1)):N(``,!0),a.value.renamed?(u(),b(`span`,rn,w(a.value.renamed)+` `+w(O(i)(`changes.renamed`)),1)):N(``,!0),S(he),S(V,{dense:``,flat:``,"no-caps":``,size:`sm`,icon:`unfold_more`,label:O(i)(`changes.expandAll`),onClick:t[0]||=e=>r(`expand-all`)},null,8,[`label`]),S(V,{dense:``,flat:``,"no-caps":``,size:`sm`,icon:`unfold_less`,label:O(i)(`changes.collapseAll`),onClick:t[1]||=e=>r(`collapse-all`)},null,8,[`label`])]))}}),on=6e3,sn=40;function cn(e,t,n){let r=y(n(t())?.clientWidth??0),i=j(()=>JSON.stringify([e.version,r.value])),a=We({get minHeight(){return e.minHeight},get heightOwner(){return e.owner},heightKey:`card-reserve`,get heightVersion(){return i.value},get cacheHeight(){return e.cacheHeight},get keep(){return e.keep},cost:sn,mountMargin:on},t),o;function s(){let e=n(t());e&&(r.value=e.clientWidth,o=Ve(e,()=>{r.value=e.clientWidth})),a.start(e)}function c(){a.stop(),o?.(),o=void 0}return A(c),{mounted:a.mounted,height:a.height,start:s,stop:c}}var ln={key:1,class:`card-shell-placeholder__title text-mono`,"aria-busy":`true`},un=J(g({__name:`ChangesFileCard`,props:{file:{}},setup(e){let n=e,r=$(),i=Y(),a=Z(),{expandedFiles:o}=G(r),{activeReview:s,commentsByFile:d}=G(a),f=j(()=>X(n.file)),p=j(()=>De(r.source,f.value)),h=j(()=>i.hunksOf(r.source,n.file)),g=j(()=>i.hunksFresh(r.source,n.file)),_=j(()=>i.hunksError(r.source,n.file)),v=j(()=>o.value.has(f.value)),y=j(()=>d.value.get(f.value)),x=j(()=>!!s.value),S={key:p.value},E=Ie(`wrap`,()=>Be(f.value),S),D=Ie(`viewMode`,()=>`diff`,S),k=Fe(S),A=Je(S),M=j(()=>D.value===`full`?A.value:k.value),N=j(()=>46+(v.value?je(n.file,h.value)+Le(y.value??[],D.value)+(M.value?90:0):0)),P=j(()=>JSON.stringify([v.value,D.value,E.value,x.value,M.value?[M.value.column,M.value.startKey,M.value.endKey]:null,y.value?.map(e=>[e.id,e.lineType,e.lineNumberEnd,e.content,e.suggestion,e.resolved])])),F=m(`el`),{mounted:I,height:L,start:ee,stop:te}=cn({get minHeight(){return N.value},get owner(){return h.value??n.file},get version(){return P.value},get cacheHeight(){return v.value&&g.value&&D.value===`diff`&&!E.value&&!y.value?.length&&!M.value},get keep(){return!!M.value}},()=>F.value,Ne());C(ee),c(te);function ne(){i.ensureHunks(r.source,n.file)}function R(){i.retryHunks(r.source,n.file)}return(n,a)=>(u(),b(`div`,{ref_key:`el`,ref:F,class:t({"card-shell-placeholder":!O(I)}),style:l(O(I)?void 0:{height:`${O(L)}px`})},[O(I)?(u(),T(He,{key:0,file:e.file,"state-key":p.value,detail:h.value,"hunks-loaded":g.value,"hunks-error":_.value,expanded:v.value,"agent-source":O(r).source,commentable:x.value,"comments-editable":x.value,comments:y.value,onLoadHunks:ne,onRetryHunks:R,onClearHunksError:a[0]||=t=>O(i).clearHunksError(O(r).source,e.file),onToggle:a[1]||=e=>O(r).handleCardToggle(f.value),onExpand:a[2]||=e=>O(r).expandFile(f.value)},null,8,[`file`,`state-key`,`detail`,`hunks-loaded`,`hunks-error`,`expanded`,`agent-source`,`commentable`,`comments-editable`,`comments`])):(u(),b(`div`,ln,w(f.value),1))],6))}}),[[`__scopeId`,`data-v-c1bd4d06`]]),dn={key:0,class:`active-review-bar row items-center q-gutter-x-sm q-px-sm no-wrap`},fn={class:`text-body2 ellipsis`},pn=J(g({__name:`ActiveReviewBar`,setup(e){let{t}=W(),n=be(),r=Z(),{activeReview:i}=G(r),a=pe(),o=Me();function s(e){r.setStatus(e).catch(e=>{n(t(`reviews.comments.error`),e)})}return(e,n)=>O(i)?(u(),b(`div`,dn,[S(B,{name:`rate_review`,size:`18px`,color:`primary`}),v(`span`,fn,w(O(i).name??O(t)(`reviews.list.unnamed`)),1),S(he),O(a).enabled?(u(),T(V,{key:0,flat:``,dense:``,"no-caps":``,size:`sm`,icon:O(xe),label:O(t)(`agent.context.addReview`),onClick:n[0]||=e=>O(o)({kind:`review`,reviewId:O(i).id})},null,8,[`icon`,`label`])):N(``,!0),S(qe,{status:O(i).status,onChange:s},null,8,[`status`])])):N(``,!0)}}),[[`__scopeId`,`data-v-2b6e4bdd`]]),mn={key:1,class:`q-pa-md text-grey-6`},hn=12,gn=1.5,_n=2,vn=J(g({__name:`DiffPanel`,setup(e){let{t}=W(),r=$(),{diffFiles:o}=G(r),{error:s,loading:c}=G(Y()),l=Z(),{activeReview:d}=G(l);Re({create:e=>l.createComment(e),edit:(e,t)=>l.editComment(e,t),remove:e=>l.deleteComment(e),resolve:e=>l.resolveComment(e),unresolve:e=>l.unresolveComment(e)});let p=D(null),m=j(()=>p.value?.getScrollTarget()??null);n(Ze,()=>m.value);let h=D(null);return Yt({request:()=>r.scrollRequest,list:h,root:m}),a(()=>r.layoutVersion,async()=>{await f(),h.value?.reset()}),a(o,async(e,t)=>{ke(e,t,(e,t)=>X(e)===X(t))||(await f(),h.value?.reset())}),(e,n)=>(u(),b(k,null,[O(s)?(u(),T(Ke,{key:0,title:O(t)(`changes.loadError`),message:O(s),loading:O(c),onRetry:n[0]||=e=>O(r).refresh()},null,8,[`title`,`message`,`loading`])):N(``,!0),O(o).length===0&&!O(s)?(u(),b(`div`,mn,w(O(t)(`changes.emptyDiffPanel`)),1)):O(o).length>0?(u(),b(k,{key:2},[S(pn),O(d)?(u(),T(U,{key:0})):N(``,!0),S(an,{files:O(o),onExpandAll:O(r).expandAllFiles,onCollapseAll:O(r).collapseAllFiles},null,8,[`files`,`onExpandAll`,`onCollapseAll`]),S(U),S(ye,{ref_key:`scrollArea`,ref:p,class:`col sticky-header-scroll`,"content-style":`padding: 8px; width: 100%; max-width: 100%`,"content-active-style":`padding: 8px; width: 100%; max-width: 100%`},{default:i(()=>[m.value?(u(),T(Ce,{key:O(r).source,ref_key:`virtualScroll`,ref:h,"scroll-target":m.value,items:O(o),"virtual-scroll-item-size":O(46),"virtual-scroll-slice-size":hn,"virtual-scroll-slice-ratio-before":gn,"virtual-scroll-slice-ratio-after":_n},{default:i(({item:e})=>[(u(),b(`div`,{key:O(X)(e),class:`diff-virtual-slot`},[S(un,{file:e},null,8,[`file`])]))]),_:1},8,[`scroll-target`,`items`,`virtual-scroll-item-size`])):N(``,!0)]),_:1},512)],64)):N(``,!0),!O(d)&&O(o).length>0?(u(),T($e,{key:3})):N(``,!0)],64))}}),[[`__scopeId`,`data-v-44aabadb`]]),yn={key:1,class:`q-pa-md text-grey-6`},bn={key:0,class:`row justify-center q-pa-lg`},xn={key:1,class:`q-pa-md text-grey-6`},Sn={class:`text-caption`},Cn={key:2,class:`q-pa-md text-grey-6`},wn=g({__name:`FileContentPanel`,setup(e){let{t}=W(),n=$(),{selectedPath:r,browseFileLines:o,browseFileIsBinary:s,browseFileLoading:c,browseFileError:l,treeError:d,refreshing:f}=G(n),{error:p}=G(Y()),m=j(()=>p.value?{title:t(`changes.loadError`),message:p.value}:d.value?{title:t(`browse.treeLoadError`),message:d.value}:null),h=D(!1);return a(r,e=>{h.value=e?Be(e):!1},{immediate:!0}),(e,a)=>(u(),b(k,null,[m.value?(u(),T(Ke,{key:0,title:m.value.title,message:m.value.message,loading:O(f),onRetry:a[0]||=e=>O(n).refresh()},null,8,[`title`,`message`,`loading`])):N(``,!0),O(r)?(u(),T(Ge,{key:2,class:`col`},{header:i(()=>[S(Ue,{path:O(r)},{default:i(()=>[S(ze,{modelValue:h.value,"onUpdate:modelValue":a[1]||=e=>h.value=e,path:O(r)},null,8,[`modelValue`,`path`])]),_:1},8,[`path`])]),default:i(()=>[O(c)&&O(o).length===0&&!O(l)?(u(),b(`div`,bn,[S(R,{color:`primary`,size:`2em`})])):O(l)?(u(),b(`div`,xn,[E(w(O(t)(`changes.fullFileLoadError`))+` `,1),v(`div`,Sn,w(O(l)),1),S(V,{flat:``,dense:``,color:`primary`,class:`q-mt-sm`,label:O(t)(`changes.retry`),loading:O(f),onClick:a[2]||=e=>O(n).refresh()},null,8,[`label`,`loading`])])):O(s)?(u(),b(`div`,Cn,w(O(t)(`changes.binaryFile`)),1)):(u(),T(ye,{key:3,class:`col`,"content-style":`padding: 8px`,"content-active-style":`padding: 8px`},{default:i(()=>[S(Pe,{path:O(r),lines:O(o),wrap:h.value},null,8,[`path`,`lines`,`wrap`])]),_:1}))]),_:1})):(u(),b(`div`,yn,w(O(t)(`browse.selectFile`)),1))],64))}}),Tn=g({__name:`FileExplorer`,setup(e){let t=$(),n=Z(),{browseMode:r}=G(t);C(()=>{t.refresh(),n.refresh()});let a=le([`files:changed`],()=>void t.refreshFromServerEvent());s(()=>a.close());let o=le([`review:created`,`review:updated`,`review:deleted`,`comment:created`,`comment:updated`,`comment:deleted`],()=>void n.refresh());return s(()=>o.close()),(e,t)=>(u(),T(vt,null,{panel:i(()=>[S(qt)]),content:i(()=>[O(r)?(u(),T(wn,{key:0})):(u(),T(vn,{key:1}))]),_:1}))}}),En=g({__name:`IndexPage`,setup(e){return(e,t)=>(u(),T(et,null,{default:i(()=>[S(Tn)]),_:1}))}});export{En as default};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|