prefect 3.6.14.dev6__py3-none-any.whl → 3.6.14.dev7__py3-none-any.whl
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.
- prefect/_build_info.py +3 -3
- prefect/server/ui-v2/assets/{artifact-card-fXxwNG3f.js → artifact-card-9Cw_dMVb.js} +2 -2
- prefect/server/ui-v2/assets/{artifact-card-fXxwNG3f.js.map → artifact-card-9Cw_dMVb.js.map} +1 -1
- prefect/server/ui-v2/assets/{artifact._id-BIyzb0Jb.js → artifact._id-zuZ8P2RD.js} +2 -2
- prefect/server/ui-v2/assets/{artifact._id-BIyzb0Jb.js.map → artifact._id-zuZ8P2RD.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation-wizard-bDZICLpV.js → automation-wizard-D7nVgckT.js} +2 -2
- prefect/server/ui-v2/assets/{automation-wizard-bDZICLpV.js.map → automation-wizard-D7nVgckT.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation._id-CmDL_Eta.js → automation._id-BhEFaDc6.js} +2 -2
- prefect/server/ui-v2/assets/{automation._id-CmDL_Eta.js.map → automation._id-BhEFaDc6.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation_._id.edit-DY7_SAuk.js → automation_._id.edit-CffnUlbj.js} +2 -2
- prefect/server/ui-v2/assets/{automation_._id.edit-DY7_SAuk.js.map → automation_._id.edit-CffnUlbj.js.map} +1 -1
- prefect/server/ui-v2/assets/{automations-header-CgxOgR53.js → automations-header-qb94agIp.js} +2 -2
- prefect/server/ui-v2/assets/{automations-header-CgxOgR53.js.map → automations-header-qb94agIp.js.map} +1 -1
- prefect/server/ui-v2/assets/{base-job-template-form-section-DilLn1Ul.js → base-job-template-form-section-DdDSFAJa.js} +2 -2
- prefect/server/ui-v2/assets/{base-job-template-form-section-DilLn1Ul.js.map → base-job-template-form-section-DdDSFAJa.js.map} +1 -1
- prefect/server/ui-v2/assets/{block-type-details-Cx4npO8Y.js → block-type-details-2rIqbqoZ.js} +2 -2
- prefect/server/ui-v2/assets/{block-type-details-Cx4npO8Y.js.map → block-type-details-2rIqbqoZ.js.map} +1 -1
- prefect/server/ui-v2/assets/block-type-logo-DV1pSkV0.js +2 -0
- prefect/server/ui-v2/assets/{block-type-logo-FrtMLMYr.js.map → block-type-logo-DV1pSkV0.js.map} +1 -1
- prefect/server/ui-v2/assets/{block._id-CWi9g5N3.js → block._id-OeCbdPeL.js} +2 -2
- prefect/server/ui-v2/assets/{block._id-CWi9g5N3.js.map → block._id-OeCbdPeL.js.map} +1 -1
- prefect/server/ui-v2/assets/{block_._id.edit-wf0QVPUL.js → block_._id.edit-CD22VllN.js} +2 -2
- prefect/server/ui-v2/assets/{block_._id.edit-wf0QVPUL.js.map → block_._id.edit-CD22VllN.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog-Iv1gLDUd.js → catalog-Dj7lYV7b.js} +2 -2
- prefect/server/ui-v2/assets/{catalog-Iv1gLDUd.js.map → catalog-Dj7lYV7b.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog_._slug-DEHFXZzp.js → catalog_._slug-NLgWS8vG.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug-DEHFXZzp.js.map → catalog_._slug-NLgWS8vG.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog_._slug_.create-C-vFPUOy.js → catalog_._slug_.create-D0vc1Piy.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug_.create-C-vFPUOy.js.map → catalog_._slug_.create-D0vc1Piy.js.map} +1 -1
- prefect/server/ui-v2/assets/{collapsible-BlEqjqQu.js → collapsible-Dgk2Qvjj.js} +2 -2
- prefect/server/ui-v2/assets/{collapsible-BlEqjqQu.js.map → collapsible-Dgk2Qvjj.js.map} +1 -1
- prefect/server/ui-v2/assets/{concurrency-limit._id-VfgyonlO.js → concurrency-limit._id-BZiyM0NT.js} +2 -2
- prefect/server/ui-v2/assets/{concurrency-limit._id-VfgyonlO.js.map → concurrency-limit._id-BZiyM0NT.js.map} +1 -1
- prefect/server/ui-v2/assets/{create-fSiDZ1kD.js → create-1j1-8yhV.js} +2 -2
- prefect/server/ui-v2/assets/{create-fSiDZ1kD.js.map → create-1j1-8yhV.js.map} +1 -1
- prefect/server/ui-v2/assets/{create-CC32TiFK.js → create-H21iiYVl.js} +2 -2
- prefect/server/ui-v2/assets/{create-CC32TiFK.js.map → create-H21iiYVl.js.map} +1 -1
- prefect/server/ui-v2/assets/{data-table-B2NqBPUR.js → data-table-DHlbTUL7.js} +2 -2
- prefect/server/ui-v2/assets/{data-table-B2NqBPUR.js.map → data-table-DHlbTUL7.js.map} +1 -1
- prefect/server/ui-v2/assets/delete-confirmation-dialog-B9-8JHV7.js +2 -0
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-jlBI67Pk.js.map → delete-confirmation-dialog-B9-8JHV7.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-action-header-C203ndcC.js → deployment-action-header-DlD2GSJB.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-action-header-C203ndcC.js.map → deployment-action-header-DlD2GSJB.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-form-DB4i73UE.js → deployment-form-CFcOIeIi.js} +3 -3
- prefect/server/ui-v2/assets/{deployment-form-DB4i73UE.js.map → deployment-form-CFcOIeIi.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-links-UZYTtmnK.js → deployment-links-DN2Oa0r1.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-links-UZYTtmnK.js.map → deployment-links-DN2Oa0r1.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-Drmf70gG.js → deployment._id-C8NPwIIQ.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-Drmf70gG.js.map → deployment._id-C8NPwIIQ.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-Bk44iuUn.js → deployment._id-DsVQUPNp.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-Bk44iuUn.js.map → deployment._id-DsVQUPNp.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.duplicate-4uYFgdPg.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.duplicate-aUHtHuNO.js.map → deployment_._id.duplicate-4uYFgdPg.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.edit-Z859_W76.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.edit-CPRKkA-W.js.map → deployment_._id.edit-Z859_W76.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment_._id.run-C8EGDJeT.js → deployment_._id.run-MW5q2SRM.js} +2 -2
- prefect/server/ui-v2/assets/{deployment_._id.run-C8EGDJeT.js.map → deployment_._id.run-MW5q2SRM.js.map} +1 -1
- prefect/server/ui-v2/assets/{dropdown-menu-CT6uZu-V.js → dropdown-menu-DF4QR3Cp.js} +2 -2
- prefect/server/ui-v2/assets/{dropdown-menu-CT6uZu-V.js.map → dropdown-menu-DF4QR3Cp.js.map} +1 -1
- prefect/server/ui-v2/assets/{event-resource-display-DmCKu0PD.js → event-resource-display-DR3zL_k_.js} +2 -2
- prefect/server/ui-v2/assets/{event-resource-display-DmCKu0PD.js.map → event-resource-display-DR3zL_k_.js.map} +1 -1
- prefect/server/ui-v2/assets/{event._eventDate._eventId-DqO9viGu.js → event._eventDate._eventId-DfU7SalU.js} +2 -2
- prefect/server/ui-v2/assets/{event._eventDate._eventId-DqO9viGu.js.map → event._eventDate._eventId-DfU7SalU.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run-graph-Bf9t75GK.js +2 -0
- prefect/server/ui-v2/assets/{flow-run-graph-CIvkp1kl.js.map → flow-run-graph-Bf9t75GK.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run._id-33WKPXsZ.js +4 -0
- prefect/server/ui-v2/assets/flow-run._id-33WKPXsZ.js.map +1 -0
- prefect/server/ui-v2/assets/{flow-run._id-xahYswsG.js → flow-run._id-DTsj_xO3.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run._id-xahYswsG.js.map → flow-run._id-DTsj_xO3.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run._id-DyUEsBSd.js → flow-run._id-RL0qeSLl.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run._id-DyUEsBSd.js.map → flow-run._id-RL0qeSLl.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-runs-pagination--FfnMca3.js → flow-runs-pagination-Bfelp8UO.js} +2 -2
- prefect/server/ui-v2/assets/{flow-runs-pagination--FfnMca3.js.map → flow-runs-pagination-Bfelp8UO.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow._id-C_ho4p55.js → flow._id-DuQ5AUjj.js} +2 -2
- prefect/server/ui-v2/assets/{flow._id-C_ho4p55.js.map → flow._id-DuQ5AUjj.js.map} +1 -1
- prefect/server/ui-v2/assets/{form-CxD6-5Qf.js → form-DHWphysD.js} +2 -2
- prefect/server/ui-v2/assets/{form-CxD6-5Qf.js.map → form-DHWphysD.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-iN9gVtk7.js → header-B9SuuoZx.js} +2 -2
- prefect/server/ui-v2/assets/{header-iN9gVtk7.js.map → header-B9SuuoZx.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-CYjjmMrB.js → header-BK_NuSng.js} +2 -2
- prefect/server/ui-v2/assets/{header-CYjjmMrB.js.map → header-BK_NuSng.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-Cjet3B6Z.js → header-nu-ZKuen.js} +2 -2
- prefect/server/ui-v2/assets/{header-Cjet3B6Z.js.map → header-nu-ZKuen.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CfMaY6sy.js → index-BCR-yD58.js} +2 -2
- prefect/server/ui-v2/assets/{index-CfMaY6sy.js.map → index-BCR-yD58.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-ltOkPb3X.js → index-BPXdHXTb.js} +2 -2
- prefect/server/ui-v2/assets/{index-ltOkPb3X.js.map → index-BPXdHXTb.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CTeNzxT9.js → index-BqwU5GSv.js} +2 -2
- prefect/server/ui-v2/assets/{index-CTeNzxT9.js.map → index-BqwU5GSv.js.map} +1 -1
- prefect/server/ui-v2/assets/index-Br7MUvka.css +1 -0
- prefect/server/ui-v2/assets/{index-D-yYhKPg.js → index-C0MMjoUe.js} +2 -2
- prefect/server/ui-v2/assets/{index-D-yYhKPg.js.map → index-C0MMjoUe.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-0opjCZAR.js → index-CPFMHkRh.js} +2 -2
- prefect/server/ui-v2/assets/{index-0opjCZAR.js.map → index-CPFMHkRh.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-D8SbV2Tp.js → index-CYjH7t93.js} +2 -2
- prefect/server/ui-v2/assets/{index-D8SbV2Tp.js.map → index-CYjH7t93.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BF3HB5BS.js → index-Cj5ihRiw.js} +2 -2
- prefect/server/ui-v2/assets/{index-BF3HB5BS.js.map → index-Cj5ihRiw.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-d9_i_klL.js → index-CqUa3fbN.js} +2 -2
- prefect/server/ui-v2/assets/{index-d9_i_klL.js.map → index-CqUa3fbN.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CSQa2wYx.js → index-DFS5GNpT.js} +2 -2
- prefect/server/ui-v2/assets/{index-CSQa2wYx.js.map → index-DFS5GNpT.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-B5eJQPOP.js → index-DNuhJlQK.js} +2 -2
- prefect/server/ui-v2/assets/{index-B5eJQPOP.js.map → index-DNuhJlQK.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DQOPH4Rq.js → index-DSBmxhwG.js} +2 -2
- prefect/server/ui-v2/assets/{index-DQOPH4Rq.js.map → index-DSBmxhwG.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CT2kL3dS.js → index-DVsNA4UN.js} +2 -2
- prefect/server/ui-v2/assets/{index-CT2kL3dS.js.map → index-DVsNA4UN.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-D4df3B9r.js → index-DWGx9irM.js} +2 -2
- prefect/server/ui-v2/assets/{index-D4df3B9r.js.map → index-DWGx9irM.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-Cwd5Gvad.js → index-DcMpyvW7.js} +2 -2
- prefect/server/ui-v2/assets/{index-Cwd5Gvad.js.map → index-DcMpyvW7.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-C2ayqOiQ.js → index-Dl_iSX0z.js} +2 -2
- prefect/server/ui-v2/assets/{index-C2ayqOiQ.js.map → index-Dl_iSX0z.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DI-aZXNg.js → index-DsK1RlS9.js} +2 -2
- prefect/server/ui-v2/assets/{index-DI-aZXNg.js.map → index-DsK1RlS9.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-C3A0XavU.js → index-DtrQRjt_.js} +2 -2
- prefect/server/ui-v2/assets/{index-C3A0XavU.js.map → index-DtrQRjt_.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-nxDkMXcY.js → index-_0OOjqn5.js} +13 -13
- prefect/server/ui-v2/assets/index-_0OOjqn5.js.map +1 -0
- prefect/server/ui-v2/assets/{index-BfXKkd3I.js → index-mj9GNKt7.js} +2 -2
- prefect/server/ui-v2/assets/{index-BfXKkd3I.js.map → index-mj9GNKt7.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-D0ANIqVp.js → index-vRbn9rG4.js} +2 -2
- prefect/server/ui-v2/assets/{index-D0ANIqVp.js.map → index-vRbn9rG4.js.map} +1 -1
- prefect/server/ui-v2/assets/{json-input-BGfZindW.js → json-input-CMZiW5M2.js} +2 -2
- prefect/server/ui-v2/assets/{json-input-BGfZindW.js.map → json-input-CMZiW5M2.js.map} +1 -1
- prefect/server/ui-v2/assets/{key._key-mnO405kp.js → key._key-CdonPtNh.js} +2 -2
- prefect/server/ui-v2/assets/{key._key-mnO405kp.js.map → key._key-CdonPtNh.js.map} +1 -1
- prefect/server/ui-v2/assets/{lazy-markdown-CLclUkkd.js → lazy-markdown-CKcd9ksG.js} +2 -2
- prefect/server/ui-v2/assets/{lazy-markdown-CLclUkkd.js.map → lazy-markdown-CKcd9ksG.js.map} +1 -1
- prefect/server/ui-v2/assets/{login-ST_-h2GY.js → login-Dnd-tV90.js} +2 -2
- prefect/server/ui-v2/assets/{login-ST_-h2GY.js.map → login-Dnd-tV90.js.map} +1 -1
- prefect/server/ui-v2/assets/{markdown-input-DemuemAs.js → markdown-input-D6rfyTa_.js} +2 -2
- prefect/server/ui-v2/assets/{markdown-input-DemuemAs.js.map → markdown-input-D6rfyTa_.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-example-snippet-BUllaeTS.js → python-example-snippet-eWuRXCxE.js} +3 -3
- prefect/server/ui-v2/assets/{python-example-snippet-BUllaeTS.js.map → python-example-snippet-eWuRXCxE.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-input-DTpMdYLs.js → python-input-itfwkkBT.js} +2 -2
- prefect/server/ui-v2/assets/{python-input-DTpMdYLs.js.map → python-input-itfwkkBT.js.map} +1 -1
- prefect/server/ui-v2/assets/{radio-group-CJhtPDwC.js → radio-group-DeN-_krn.js} +2 -2
- prefect/server/ui-v2/assets/{radio-group-CJhtPDwC.js.map → radio-group-DeN-_krn.js.map} +1 -1
- prefect/server/ui-v2/assets/{route-error-state-D0wedcpP.js → route-error-state-tYzhKCqH.js} +2 -2
- prefect/server/ui-v2/assets/{route-error-state-D0wedcpP.js.map → route-error-state-tYzhKCqH.js.map} +1 -1
- prefect/server/ui-v2/assets/{schema-form-Cx-6swYW.js → schema-form-DDUzvjpL.js} +2 -2
- prefect/server/ui-v2/assets/{schema-form-Cx-6swYW.js.map → schema-form-DDUzvjpL.js.map} +1 -1
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-CZkUje5U.js → schema-form-input-string-format-datetime-DrpJmvST.js} +4 -4
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-CZkUje5U.js.map → schema-form-input-string-format-datetime-DrpJmvST.js.map} +1 -1
- prefect/server/ui-v2/assets/{settings-nHtCkknH.js → settings-OdrJDFrk.js} +2 -2
- prefect/server/ui-v2/assets/{settings-nHtCkknH.js.map → settings-OdrJDFrk.js.map} +1 -1
- prefect/server/ui-v2/assets/{sort-filter-QjOHFWPI.js → sort-filter-DaBGDmua.js} +2 -2
- prefect/server/ui-v2/assets/{sort-filter-QjOHFWPI.js.map → sort-filter-DaBGDmua.js.map} +1 -1
- prefect/server/ui-v2/assets/{table-Bx2Ol4j-.js → table-4GUC4YOD.js} +2 -2
- prefect/server/ui-v2/assets/{table-Bx2Ol4j-.js.map → table-4GUC4YOD.js.map} +1 -1
- prefect/server/ui-v2/assets/{tags-input-C7cxdTyV.js → tags-input-BvH9UY8h.js} +2 -2
- prefect/server/ui-v2/assets/{tags-input-C7cxdTyV.js.map → tags-input-BvH9UY8h.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-CG2F0Ufy.js → task-run-concurrency-limits-reset-dialog-CLZz3kwW.js} +2 -2
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-CG2F0Ufy.js.map → task-run-concurrency-limits-reset-dialog-CLZz3kwW.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-CapS5wad.js → task-run._id-DHHzTQ9d.js} +2 -2
- prefect/server/ui-v2/assets/{task-run._id-CapS5wad.js.map → task-run._id-DHHzTQ9d.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-CevQxX-E.js → task-run._id-DgXFfCuq.js} +2 -2
- prefect/server/ui-v2/assets/{task-run._id-CevQxX-E.js.map → task-run._id-DgXFfCuq.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-runs-pagination-Dbwa2yPe.js → task-runs-pagination-fR9zqj38.js} +2 -2
- prefect/server/ui-v2/assets/{task-runs-pagination-Dbwa2yPe.js.map → task-runs-pagination-fR9zqj38.js.map} +1 -1
- prefect/server/ui-v2/assets/{textarea-vy4DM6KG.js → textarea-DL9UCBaB.js} +2 -2
- prefect/server/ui-v2/assets/{textarea-vy4DM6KG.js.map → textarea-DL9UCBaB.js.map} +1 -1
- prefect/server/ui-v2/assets/{timezone-select-DDUTUy-L.js → timezone-select-qBEoPcyO.js} +2 -2
- prefect/server/ui-v2/assets/{timezone-select-DDUTUy-L.js.map → timezone-select-qBEoPcyO.js.map} +1 -1
- prefect/server/ui-v2/assets/{toggle-group-Dx_fy9WJ.js → toggle-group-Cf-ZSSDP.js} +2 -2
- prefect/server/ui-v2/assets/{toggle-group-Dx_fy9WJ.js.map → toggle-group-Cf-ZSSDP.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-ClQsotEa.js → use-delete-automation-confirmation-dialog-DRX9Kvie.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-ClQsotEa.js.map → use-delete-automation-confirmation-dialog-DRX9Kvie.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DM0Dy1PL.js → use-delete-block-document-confirmation-dialog-CogrfdiO.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DM0Dy1PL.js.map → use-delete-block-document-confirmation-dialog-CogrfdiO.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-UhMaQqzZ.js → use-flow-runs-selected-rows-CdMKKvm5.js} +2 -2
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-UhMaQqzZ.js.map → use-flow-runs-selected-rows-CdMKKvm5.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-P8C-ARMZ.js → use-get-artifacts-flow-task-runs-Be1qg-IF.js} +2 -2
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-P8C-ARMZ.js.map → use-get-artifacts-flow-task-runs-Be1qg-IF.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-quick-run-DT0VEa9Z.js → use-quick-run-DXDfXpvs.js} +2 -2
- prefect/server/ui-v2/assets/{use-quick-run-DT0VEa9Z.js.map → use-quick-run-DXDfXpvs.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-state-favicon-DfEAuEQL.js → use-state-favicon-Dhkg1tqx.js} +2 -2
- prefect/server/ui-v2/assets/{use-state-favicon-DfEAuEQL.js.map → use-state-favicon-Dhkg1tqx.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-stepper-1OG0a_eo.js → use-stepper-jTTsXpho.js} +2 -2
- prefect/server/ui-v2/assets/{use-stepper-1OG0a_eo.js.map → use-stepper-jTTsXpho.js.map} +1 -1
- prefect/server/ui-v2/assets/{utilities-DabzLyXd.js → utilities-CgJi7g2F.js} +2 -2
- prefect/server/ui-v2/assets/{utilities-DabzLyXd.js.map → utilities-CgJi7g2F.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool-filter-CTTGgdIN.js → work-pool-filter-DLkRAAHz.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-filter-CTTGgdIN.js.map → work-pool-filter-DLkRAAHz.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-B9KQxNdY.js → work-pool-queue-toggle-BFodtXQe.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-B9KQxNdY.js.map → work-pool-queue-toggle-BFodtXQe.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool._workPoolName-CGqG95Pv.js → work-pool._workPoolName-Bjh_bO5G.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool._workPoolName-CGqG95Pv.js.map → work-pool._workPoolName-Bjh_bO5G.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CcFrethu.js → work-pool_._workPoolName.edit-B-gnp5dc.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CcFrethu.js.map → work-pool_._workPoolName.edit-B-gnp5dc.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CwPnpSI9.js → work-pool_._workPoolName.queue._workQueueName-C7aVwLhH.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CwPnpSI9.js.map → work-pool_._workPoolName.queue._workQueueName-C7aVwLhH.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-queue-icon-text-Bix0rRM1.js → work-queue-icon-text-BK_qfkJJ.js} +2 -2
- prefect/server/ui-v2/assets/{work-queue-icon-text-Bix0rRM1.js.map → work-queue-icon-text-BK_qfkJJ.js.map} +1 -1
- prefect/server/ui-v2/index.html +2 -2
- {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/METADATA +1 -1
- {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/RECORD +202 -202
- prefect/server/ui-v2/assets/block-type-logo-FrtMLMYr.js +0 -2
- prefect/server/ui-v2/assets/delete-confirmation-dialog-jlBI67Pk.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.duplicate-aUHtHuNO.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.edit-CPRKkA-W.js +0 -2
- prefect/server/ui-v2/assets/flow-run-graph-CIvkp1kl.js +0 -2
- prefect/server/ui-v2/assets/flow-run._id-BT3wztDF.js +0 -4
- prefect/server/ui-v2/assets/flow-run._id-BT3wztDF.js.map +0 -1
- prefect/server/ui-v2/assets/index-CYc_PWA3.css +0 -1
- prefect/server/ui-v2/assets/index-nxDkMXcY.js.map +0 -1
- {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/WHEEL +0 -0
- {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/entry_points.txt +0 -0
- {prefect-3.6.14.dev6.dist-info → prefect-3.6.14.dev7.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g,j as e,s as F}from"./vendor-tanstack-BcZfOOfy.js";import{
|
|
2
|
-
//# sourceMappingURL=work-pool_._workPoolName.edit-
|
|
1
|
+
import{g,j as e,s as F}from"./vendor-tanstack-BcZfOOfy.js";import{dA as B,C,o as S,i as m,p as l,q as p,y as d,B as P,g as J,h as i,bs as u,bB as b,bD as E,dB as L,b_ as W}from"./index-_0OOjqn5.js";import{o as _,r as R,n as I,s as U,u as $,c as D}from"./vendor-forms-ClCIacbh.js";import{a as O}from"./zod-Cuos7J7w.js";import{F as Q,b as x,c as j,d as h,e as y,a as k}from"./form-DHWphysD.js";import{T as V}from"./textarea-DL9UCBaB.js";import{B as q}from"./base-job-template-form-section-DdDSFAJa.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-date-wwuDAncJ.js";import"./schema-form-input-string-format-datetime-DrpJmvST.js";import"./use-debounce-callback-CSs1BjLI.js";import"./toggle-group-Cf-ZSSDP.js";import"./timezone-select-qBEoPcyO.js";import"./dropdown-menu-DF4QR3Cp.js";import"./schema-form-DDUzvjpL.js";import"./block-type-logo-DV1pSkV0.js";const A=_({description:U().nullable().optional(),concurrencyLimit:I().min(0).nullable().optional(),baseJobTemplate:R($()).optional()}),G=({workPool:s})=>{const a=g(),{updateWorkPool:v,isPending:t}=B(),r=D({resolver:O(A),defaultValues:{description:s.description??"",concurrencyLimit:s.concurrency_limit??null,baseJobTemplate:s.base_job_template}}),w=r.watch("baseJobTemplate"),N=s.type!=="prefect-agent",T=()=>{a.history.back()},f=o=>{v({name:s.name,workPool:{description:o.description||null,concurrency_limit:o.concurrencyLimit,base_job_template:o.baseJobTemplate}},{onSuccess:()=>{d.success("Work pool updated"),a.navigate({to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s.name}})},onError:n=>{d.error(`Failed to update work pool: ${n instanceof Error?n.message:"Unknown error"}`)}})};return e.jsx(Q,{...r,children:e.jsxs("form",{onSubmit:o=>{r.handleSubmit(f)(o)},className:"space-y-6",children:[e.jsx(C,{children:e.jsxs(S,{className:"pt-6 space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(m,{htmlFor:"work-pool-name",children:"Name"}),e.jsx(l,{id:"work-pool-name",value:s.name,disabled:!0})]}),e.jsx(x,{control:r.control,name:"description",render:({field:o})=>e.jsxs(j,{children:[e.jsx(h,{children:"Description (Optional)"}),e.jsx(y,{children:e.jsx(V,{...o,value:o.value??"",rows:7,placeholder:"Enter a description for your work pool"})}),e.jsx(k,{})]})}),e.jsx(x,{control:r.control,name:"concurrencyLimit",render:({field:o})=>e.jsxs(j,{children:[e.jsx(h,{children:"Flow Run Concurrency (Optional)"}),e.jsx(y,{children:e.jsx(l,{...o,type:"number",min:0,placeholder:"Unlimited",value:o.value??"",onChange:n=>{const c=n.target.value;o.onChange(c===""?null:Number(c))}})}),e.jsx(k,{})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(m,{htmlFor:"work-pool-type",children:"Type"}),e.jsx(l,{id:"work-pool-type",value:s.type,disabled:!0})]})]})}),N&&e.jsx(q,{baseJobTemplate:w,onBaseJobTemplateChange:o=>{r.setValue("baseJobTemplate",o)}}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(p,{type:"button",variant:"outline",onClick:T,disabled:t,children:"Cancel"}),e.jsx(p,{type:"submit",disabled:t,children:t?"Saving...":"Save"})]})]})})},H=({workPool:s})=>e.jsx("header",{className:"mb-6",children:e.jsx(P,{children:e.jsxs(J,{children:[e.jsx(i,{children:e.jsx(u,{to:"/work-pools",className:"text-xl font-semibold",children:"Work Pools"})}),e.jsx(b,{}),e.jsx(i,{children:e.jsx(u,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s.name},className:"text-xl font-semibold",children:s.name})}),e.jsx(b,{}),e.jsx(i,{className:"text-xl font-semibold",children:e.jsx(E,{children:"Edit"})})]})})});function de(){const{workPoolName:s}=L.useParams(),{data:a}=F(W(s));return e.jsxs("div",{className:"container max-w-4xl py-6",children:[e.jsx(H,{workPool:a}),e.jsx(G,{workPool:a})]})}export{de as component};
|
|
2
|
+
//# sourceMappingURL=work-pool_._workPoolName.edit-B-gnp5dc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-pool_._workPoolName.edit-CcFrethu.js","sources":["../../src/components/work-pools/edit/schema.ts","../../src/components/work-pools/edit/work-pool-edit-form.tsx","../../src/components/work-pools/edit/work-pool-edit-page-header.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.edit.tsx?tsr-split=component"],"sourcesContent":["import { z } from \"zod\";\nimport type { WorkerBaseJobTemplate } from \"@/components/work-pools/types\";\n\nexport type { WorkerBaseJobTemplate };\n\nexport const workPoolEditSchema = z.object({\n\tdescription: z.string().nullable().optional(),\n\tconcurrencyLimit: z.number().min(0).nullable().optional(),\n\tbaseJobTemplate: z.record(z.unknown()).optional(),\n});\n\nexport type WorkPoolEditFormValues = z.infer<typeof workPoolEditSchema>;\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useRouter } from \"@tanstack/react-router\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport { useUpdateWorkPool, type WorkPool } from \"@/api/work-pools\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent } from \"@/components/ui/card\";\nimport {\n\tForm,\n\tFormControl,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"@/components/ui/form\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { BaseJobTemplateFormSection } from \"../create/infrastructure-configuration-step/base-job-template-form-section\";\nimport {\n\ttype WorkerBaseJobTemplate,\n\ttype WorkPoolEditFormValues,\n\tworkPoolEditSchema,\n} from \"./schema\";\n\ntype WorkPoolEditFormProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditForm = ({ workPool }: WorkPoolEditFormProps) => {\n\tconst router = useRouter();\n\tconst { updateWorkPool, isPending } = useUpdateWorkPool();\n\n\tconst form = useForm<WorkPoolEditFormValues>({\n\t\tresolver: zodResolver(workPoolEditSchema),\n\t\tdefaultValues: {\n\t\t\tdescription: workPool.description ?? \"\",\n\t\t\tconcurrencyLimit: workPool.concurrency_limit ?? null,\n\t\t\tbaseJobTemplate: workPool.base_job_template as Record<string, unknown>,\n\t\t},\n\t});\n\n\tconst baseJobTemplate = form.watch(\"baseJobTemplate\") as\n\t\t| WorkerBaseJobTemplate\n\t\t| undefined;\n\tconst showBaseJobTemplateSection = workPool.type !== \"prefect-agent\";\n\n\tconst handleCancel = () => {\n\t\trouter.history.back();\n\t};\n\n\tconst handleSubmit = (data: WorkPoolEditFormValues) => {\n\t\tupdateWorkPool(\n\t\t\t{\n\t\t\t\tname: workPool.name,\n\t\t\t\tworkPool: {\n\t\t\t\t\tdescription: data.description || null,\n\t\t\t\t\tconcurrency_limit: data.concurrencyLimit,\n\t\t\t\t\tbase_job_template: data.baseJobTemplate,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\ttoast.success(\"Work pool updated\");\n\t\t\t\t\tvoid router.navigate({\n\t\t\t\t\t\tto: \"/work-pools/work-pool/$workPoolName\",\n\t\t\t\t\t\tparams: { workPoolName: workPool.name },\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonError: (error) => {\n\t\t\t\t\ttoast.error(\n\t\t\t\t\t\t`Failed to update work pool: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn (\n\t\t<Form {...form}>\n\t\t\t<form\n\t\t\t\tonSubmit={(e) => void form.handleSubmit(handleSubmit)(e)}\n\t\t\t\tclassName=\"space-y-6\"\n\t\t\t>\n\t\t\t\t<Card>\n\t\t\t\t\t<CardContent className=\"pt-6 space-y-6\">\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-name\">Name</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-name\" value={workPool.name} disabled />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Description (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Textarea\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\trows={7}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter a description for your work pool\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"concurrencyLimit\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Flow Run Concurrency (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Unlimited\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst value = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(value === \"\" ? null : Number(value));\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-type\">Type</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-type\" value={workPool.type} disabled />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CardContent>\n\t\t\t\t</Card>\n\n\t\t\t\t{showBaseJobTemplateSection && (\n\t\t\t\t\t<BaseJobTemplateFormSection\n\t\t\t\t\t\tbaseJobTemplate={baseJobTemplate}\n\t\t\t\t\t\tonBaseJobTemplateChange={(value) => {\n\t\t\t\t\t\t\tform.setValue(\"baseJobTemplate\", value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"flex justify-end gap-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\tdisabled={isPending}\n\t\t\t\t\t>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button type=\"submit\" disabled={isPending}>\n\t\t\t\t\t\t{isPending ? \"Saving...\" : \"Save\"}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</Form>\n\t);\n};\n","import type { WorkPool } from \"@/api/work-pools\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype WorkPoolEditPageHeaderProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditPageHeader = ({\n\tworkPool,\n}: WorkPoolEditPageHeaderProps) => {\n\treturn (\n\t\t<header className=\"mb-6\">\n\t\t\t<Breadcrumb>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName: workPool.name }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPool.name}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>Edit</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t</header>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetWorkPoolQuery } from \"@/api/work-pools/work-pools\";\nimport {\n\tWorkPoolEditForm,\n\tWorkPoolEditPageHeader,\n} from \"@/components/work-pools/edit\";\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/edit\",\n)({\n\tcomponent: RouteComponent,\n\tloader: async ({ context, params }) => {\n\t\tconst { workPoolName } = params;\n\t\treturn context.queryClient.ensureQueryData(\n\t\t\tbuildGetWorkPoolQuery(workPoolName),\n\t\t);\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName } = Route.useParams();\n\tconst { data: workPool } = useSuspenseQuery(\n\t\tbuildGetWorkPoolQuery(workPoolName),\n\t);\n\n\treturn (\n\t\t<div className=\"container max-w-4xl py-6\">\n\t\t\t<WorkPoolEditPageHeader workPool={workPool} />\n\t\t\t<WorkPoolEditForm workPool={workPool} />\n\t\t</div>\n\t);\n}\n"],"names":["workPoolEditSchema","z.object","z.string","z.number","z.record","z.unknown","WorkPoolEditForm","workPool","router","useRouter","updateWorkPool","isPending","useUpdateWorkPool","form","useForm","zodResolver","baseJobTemplate","showBaseJobTemplateSection","handleCancel","handleSubmit","data","toast","error","jsx","Form","jsxs","e","Card","CardContent","Label","Input","FormField","field","FormItem","FormLabel","FormControl","Textarea","FormMessage","value","BaseJobTemplateFormSection","Button","WorkPoolEditPageHeader","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","RouteComponent","workPoolName","Route","useParams","useSuspenseQuery","buildGetWorkPoolQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"work-pool_._workPoolName.edit-B-gnp5dc.js","sources":["../../src/components/work-pools/edit/schema.ts","../../src/components/work-pools/edit/work-pool-edit-form.tsx","../../src/components/work-pools/edit/work-pool-edit-page-header.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.edit.tsx?tsr-split=component"],"sourcesContent":["import { z } from \"zod\";\nimport type { WorkerBaseJobTemplate } from \"@/components/work-pools/types\";\n\nexport type { WorkerBaseJobTemplate };\n\nexport const workPoolEditSchema = z.object({\n\tdescription: z.string().nullable().optional(),\n\tconcurrencyLimit: z.number().min(0).nullable().optional(),\n\tbaseJobTemplate: z.record(z.unknown()).optional(),\n});\n\nexport type WorkPoolEditFormValues = z.infer<typeof workPoolEditSchema>;\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useRouter } from \"@tanstack/react-router\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport { useUpdateWorkPool, type WorkPool } from \"@/api/work-pools\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent } from \"@/components/ui/card\";\nimport {\n\tForm,\n\tFormControl,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"@/components/ui/form\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { BaseJobTemplateFormSection } from \"../create/infrastructure-configuration-step/base-job-template-form-section\";\nimport {\n\ttype WorkerBaseJobTemplate,\n\ttype WorkPoolEditFormValues,\n\tworkPoolEditSchema,\n} from \"./schema\";\n\ntype WorkPoolEditFormProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditForm = ({ workPool }: WorkPoolEditFormProps) => {\n\tconst router = useRouter();\n\tconst { updateWorkPool, isPending } = useUpdateWorkPool();\n\n\tconst form = useForm<WorkPoolEditFormValues>({\n\t\tresolver: zodResolver(workPoolEditSchema),\n\t\tdefaultValues: {\n\t\t\tdescription: workPool.description ?? \"\",\n\t\t\tconcurrencyLimit: workPool.concurrency_limit ?? null,\n\t\t\tbaseJobTemplate: workPool.base_job_template as Record<string, unknown>,\n\t\t},\n\t});\n\n\tconst baseJobTemplate = form.watch(\"baseJobTemplate\") as\n\t\t| WorkerBaseJobTemplate\n\t\t| undefined;\n\tconst showBaseJobTemplateSection = workPool.type !== \"prefect-agent\";\n\n\tconst handleCancel = () => {\n\t\trouter.history.back();\n\t};\n\n\tconst handleSubmit = (data: WorkPoolEditFormValues) => {\n\t\tupdateWorkPool(\n\t\t\t{\n\t\t\t\tname: workPool.name,\n\t\t\t\tworkPool: {\n\t\t\t\t\tdescription: data.description || null,\n\t\t\t\t\tconcurrency_limit: data.concurrencyLimit,\n\t\t\t\t\tbase_job_template: data.baseJobTemplate,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\ttoast.success(\"Work pool updated\");\n\t\t\t\t\tvoid router.navigate({\n\t\t\t\t\t\tto: \"/work-pools/work-pool/$workPoolName\",\n\t\t\t\t\t\tparams: { workPoolName: workPool.name },\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonError: (error) => {\n\t\t\t\t\ttoast.error(\n\t\t\t\t\t\t`Failed to update work pool: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn (\n\t\t<Form {...form}>\n\t\t\t<form\n\t\t\t\tonSubmit={(e) => void form.handleSubmit(handleSubmit)(e)}\n\t\t\t\tclassName=\"space-y-6\"\n\t\t\t>\n\t\t\t\t<Card>\n\t\t\t\t\t<CardContent className=\"pt-6 space-y-6\">\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-name\">Name</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-name\" value={workPool.name} disabled />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Description (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Textarea\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\trows={7}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter a description for your work pool\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"concurrencyLimit\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Flow Run Concurrency (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Unlimited\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst value = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(value === \"\" ? null : Number(value));\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-type\">Type</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-type\" value={workPool.type} disabled />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CardContent>\n\t\t\t\t</Card>\n\n\t\t\t\t{showBaseJobTemplateSection && (\n\t\t\t\t\t<BaseJobTemplateFormSection\n\t\t\t\t\t\tbaseJobTemplate={baseJobTemplate}\n\t\t\t\t\t\tonBaseJobTemplateChange={(value) => {\n\t\t\t\t\t\t\tform.setValue(\"baseJobTemplate\", value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"flex justify-end gap-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\tdisabled={isPending}\n\t\t\t\t\t>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button type=\"submit\" disabled={isPending}>\n\t\t\t\t\t\t{isPending ? \"Saving...\" : \"Save\"}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</Form>\n\t);\n};\n","import type { WorkPool } from \"@/api/work-pools\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype WorkPoolEditPageHeaderProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditPageHeader = ({\n\tworkPool,\n}: WorkPoolEditPageHeaderProps) => {\n\treturn (\n\t\t<header className=\"mb-6\">\n\t\t\t<Breadcrumb>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName: workPool.name }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPool.name}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>Edit</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t</header>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetWorkPoolQuery } from \"@/api/work-pools/work-pools\";\nimport {\n\tWorkPoolEditForm,\n\tWorkPoolEditPageHeader,\n} from \"@/components/work-pools/edit\";\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/edit\",\n)({\n\tcomponent: RouteComponent,\n\tloader: async ({ context, params }) => {\n\t\tconst { workPoolName } = params;\n\t\treturn context.queryClient.ensureQueryData(\n\t\t\tbuildGetWorkPoolQuery(workPoolName),\n\t\t);\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName } = Route.useParams();\n\tconst { data: workPool } = useSuspenseQuery(\n\t\tbuildGetWorkPoolQuery(workPoolName),\n\t);\n\n\treturn (\n\t\t<div className=\"container max-w-4xl py-6\">\n\t\t\t<WorkPoolEditPageHeader workPool={workPool} />\n\t\t\t<WorkPoolEditForm workPool={workPool} />\n\t\t</div>\n\t);\n}\n"],"names":["workPoolEditSchema","z.object","z.string","z.number","z.record","z.unknown","WorkPoolEditForm","workPool","router","useRouter","updateWorkPool","isPending","useUpdateWorkPool","form","useForm","zodResolver","baseJobTemplate","showBaseJobTemplateSection","handleCancel","handleSubmit","data","toast","error","jsx","Form","jsxs","e","Card","CardContent","Label","Input","FormField","field","FormItem","FormLabel","FormControl","Textarea","FormMessage","value","BaseJobTemplateFormSection","Button","WorkPoolEditPageHeader","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","RouteComponent","workPoolName","Route","useParams","useSuspenseQuery","buildGetWorkPoolQuery"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,r as t,t as g,n as z,s as K}from"./vendor-tanstack-BcZfOOfy.js";import{aW as y,bK as H,bM as T,B as X,g as Y,h as S,bs as Q,bB as D,bD as $,bN as G,aE as P,aC as W,ab as L,O as J,dQ as k,dR as Z,dS as q,c0 as ee,c1 as se,c2 as ae,aw as le,ax as ne,ay as te,az as C,b5 as o}from"./index-nxDkMXcY.js";import{W as oe,a as re,b as ie}from"./work-pool-queue-toggle-B9KQxNdY.js";import{S as ce,a as E,F as V}from"./flow-runs-pagination--FfnMca3.js";import{o as de,e as ue}from"./vendor-forms-ClCIacbh.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-date-wwuDAncJ.js";import"./dropdown-menu-CT6uZu-V.js";import"./zod-Cuos7J7w.js";import"./form-CxD6-5Qf.js";import"./textarea-vy4DM6KG.js";import"./delete-confirmation-dialog-jlBI67Pk.js";const b=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),A=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),h=({children:s,className:a})=>e.jsx("dd",{className:y("text-sm",a),children:s});function me({workPoolName:s,queue:a}){const i=[{field:"Work Pool",ComponentValue:()=>e.jsx(h,{children:s})},{field:"Status",ComponentValue:()=>e.jsx("dd",{children:e.jsx(oe,{status:a.status||"NOT_READY"})})},{field:"Last Polled",ComponentValue:()=>a.last_polled?e.jsx(h,{children:e.jsx(T,{date:a.last_polled})}):e.jsx(h,{className:"text-muted-foreground",children:"Never"})},{field:"Description",ComponentValue:()=>a.description?e.jsx(h,{children:a.description}):null},{field:"Priority",ComponentValue:()=>a.priority!==null&&a.priority!==void 0?e.jsx(h,{children:String(a.priority)}):e.jsx(b,{})}].filter(({ComponentValue:n})=>n()!==null);return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:i.map(({field:n,ComponentValue:u})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(A,{children:n}),e.jsx(u,{})]})},n))})})}function xe({queue:s}){const a=[{field:"Work Queue ID",ComponentValue:()=>s.id?e.jsx(h,{children:s.id}):e.jsx(b,{})},{field:"Flow Run Concurrency",ComponentValue:()=>e.jsx(h,{children:s.concurrency_limit!==null&&s.concurrency_limit!==void 0?String(s.concurrency_limit):"Unlimited"})},{field:"Created",ComponentValue:()=>s.created?e.jsx(h,{children:e.jsx(T,{date:s.created})}):e.jsx(b,{})},{field:"Last Updated",ComponentValue:()=>s.updated?e.jsx(h,{children:e.jsx(T,{date:s.updated})}):e.jsx(b,{})}];return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:a.map(({field:i,ComponentValue:n})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(A,{children:i}),e.jsx(n,{})]})},i))})})}function M({workPoolName:s,queue:a,alternate:i=!1,className:n}){const u=i?"space-y-4":"space-y-6";return e.jsxs("div",{className:y(u,n),children:[e.jsx(me,{workPoolName:s,queue:a}),e.jsx(H,{}),e.jsx(xe,{queue:a})]})}const pe=({workPoolName:s,queue:a,onUpdate:i,className:n})=>e.jsxs("header",{className:y("flex mb-4 flex-row items-center justify-between",n),children:[e.jsx(X,{className:n,children:e.jsxs(Y,{children:[e.jsx(S,{children:e.jsx(Q,{to:"/work-pools",className:"text-xl font-semibold",children:"Work Pools"})}),e.jsx(D,{}),e.jsx(S,{children:e.jsx(Q,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s},className:"text-xl font-semibold",children:s})}),e.jsx(D,{}),e.jsx(S,{className:"text-xl font-semibold",children:e.jsx($,{children:a.name})})]})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(re,{queue:a,onUpdate:i}),e.jsx(ie,{queue:a,onUpdate:i})]})]}),he=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:10,page:1}),[m,w]=t.useState(""),[r,j]=t.useState(new Set),d=G(m,500),N=t.useMemo(()=>{const l={page:n.page,limit:n.limit,sort:"START_TIME_DESC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,n,d,r]),v=t.useMemo(()=>{const l={work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,d,r]),{data:x}=g(P(N)),{data:f}=g(W(v)),p=t.useMemo(()=>[...new Set((x?.results??[]).map(l=>l.flow_id))],[x?.results]),{data:_}=g(L({flows:{operator:"and_",id:{any_:p}},offset:0,sort:"NAME_ASC"},{enabled:p.length>0})),R=t.useMemo(()=>{if(!x?.results)return[];const l=new Map(_?.map(c=>[c.id,c])??[]);return x.results.map(c=>{const F=l.get(c.flow_id);return F?{...c,flow:F}:null}).filter(c=>c!==null)},[x?.results,_]),B=t.useCallback(l=>{w(l.target.value),u(c=>({...c,page:1}))},[]),U=t.useCallback(l=>{u(l)},[]),I=t.useCallback(l=>{j(l),u(c=>({...c,page:1}))},[]),O=t.useCallback(()=>{w(""),j(new Set),u(l=>({...l,page:1}))},[]);return!x||f===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading flow runs..."})}):e.jsxs("div",{className:i,children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:[e.jsx("div",{className:"flex-1",children:e.jsx(J,{placeholder:"Search flow runs by name...",value:m,onChange:B,debounceMs:500})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(ce,{selectedFilters:r,onSelectFilter:I})})]}),e.jsx(E,{flowRuns:R,onClearFilters:R.length===0?O:void 0}),x.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(V,{count:f,pages:x.pages,pagination:n,onChangePagination:U})})]})},fe=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:5,page:1}),m=t.useMemo(()=>({page:n.page,limit:n.limit,sort:"EXPECTED_START_TIME_ASC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name,n]),w=t.useMemo(()=>({work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name]),{data:r}=g(P(m)),{data:j}=g(W(w)),d=t.useMemo(()=>[...new Set((r?.results??[]).map(f=>f.flow_id))],[r?.results]),{data:N}=g(L({flows:{operator:"and_",id:{any_:d}},offset:0,sort:"NAME_ASC"},{enabled:d.length>0})),v=t.useMemo(()=>{if(!r?.results)return[];const f=new Map(N?.map(p=>[p.id,p])??[]);return r.results.map(p=>{const _=f.get(p.flow_id);return _?{...p,flow:_}:null}).filter(p=>p!==null)},[r?.results,N]),x=t.useCallback(f=>{u(f)},[]);return!r||j===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading upcoming runs..."})}):e.jsxs("div",{className:i,children:[e.jsx(E,{flowRuns:v}),r.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(V,{count:j,pages:r.pages,pagination:n,onChangePagination:x})})]})};de({queueTab:ue(["Details","Upcoming Runs","Runs"]).default("Upcoming Runs")});function je(){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(o,{className:"h-4 w-48"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-16"}),e.jsx(o,{className:"h-6 w-24"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-20"}),e.jsx(o,{className:"h-6 w-32"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-24"}),e.jsx(o,{className:"h-6 w-28"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-18"}),e.jsx(o,{className:"h-6 w-36"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(o,{className:"h-5 w-40"}),e.jsx("div",{className:"space-y-2",children:e.jsx(o,{className:"h-32 w-full"})})]})]})}function we(){return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})}function ge(){return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx(o,{className:"h-9 w-full"})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(o,{className:"h-9 w-full"})})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})]})}function Pe(){const{workPoolName:s,workQueueName:a}=k.useParams(),{queueTab:i}=k.useSearch(),n=k.useNavigate(),u=z(),{data:m}=K(Z(s,a)),w=t.useMemo(()=>[{id:"Details",label:"Details",hiddenOnDesktop:!0},{id:"Upcoming Runs",label:"Upcoming Runs",hiddenOnDesktop:!1},{id:"Runs",label:"Runs",hiddenOnDesktop:!1}],[]),r=t.useCallback(d=>{n({to:".",search:{queueTab:d}})},[n]),j=t.useCallback(()=>{u.invalidateQueries({queryKey:q.detail(s,a)})},[u,s,a]);return e.jsx(ee,{children:e.jsxs(se,{children:[e.jsx(ae,{children:e.jsx(pe,{workPoolName:s,queue:m,onUpdate:j})}),e.jsxs("div",{className:"flex flex-col xl:flex-row xl:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs(le,{value:i,onValueChange:r,children:[e.jsx(ne,{className:"flex w-full overflow-x-auto scrollbar-none",children:w.map(d=>e.jsx(te,{value:d.id,className:y("whitespace-nowrap flex-shrink-0",d.hiddenOnDesktop?"xl:hidden":""),children:d.label},d.id))}),e.jsx(C,{value:"Details",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(je,{}),children:e.jsx(M,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Upcoming Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(we,{}),children:e.jsx(fe,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(ge,{}),children:e.jsx(he,{workPoolName:s,queue:m})})})]})}),e.jsx("aside",{className:"w-full xl:w-80 xl:shrink-0 hidden xl:block",children:e.jsx("div",{className:"sticky top-8",children:e.jsx(M,{workPoolName:s,queue:m,alternate:!0})})})]})]})})}export{Pe as component};
|
|
2
|
-
//# sourceMappingURL=work-pool_._workPoolName.queue._workQueueName-
|
|
1
|
+
import{j as e,r as t,t as g,n as z,s as K}from"./vendor-tanstack-BcZfOOfy.js";import{aW as y,bK as H,bM as T,B as X,g as Y,h as S,bs as D,bB as M,bD as $,bN as G,aE as P,aC as W,ab as L,O as J,dS as k,dT as Z,dU as q,c0 as ee,c1 as se,c2 as ae,aw as le,ax as ne,ay as te,az as C,b5 as o}from"./index-_0OOjqn5.js";import{W as oe,a as re,b as ie}from"./work-pool-queue-toggle-BFodtXQe.js";import{S as ce,a as E,F as U}from"./flow-runs-pagination-Bfelp8UO.js";import{o as de,e as ue}from"./vendor-forms-ClCIacbh.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BAN776s_.js";import"./vendor-date-wwuDAncJ.js";import"./dropdown-menu-DF4QR3Cp.js";import"./zod-Cuos7J7w.js";import"./form-DHWphysD.js";import"./textarea-DL9UCBaB.js";import"./delete-confirmation-dialog-B9-8JHV7.js";const b=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),V=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),h=({children:s,className:a})=>e.jsx("dd",{className:y("text-sm",a),children:s});function me({workPoolName:s,queue:a}){const i=[{field:"Work Pool",ComponentValue:()=>e.jsx(h,{children:s})},{field:"Status",ComponentValue:()=>e.jsx("dd",{children:e.jsx(oe,{status:a.status||"NOT_READY"})})},{field:"Last Polled",ComponentValue:()=>a.last_polled?e.jsx(h,{children:e.jsx(T,{date:a.last_polled})}):e.jsx(h,{className:"text-muted-foreground",children:"Never"})},{field:"Description",ComponentValue:()=>a.description?e.jsx(h,{children:a.description}):null},{field:"Priority",ComponentValue:()=>a.priority!==null&&a.priority!==void 0?e.jsx(h,{children:String(a.priority)}):e.jsx(b,{})}].filter(({ComponentValue:n})=>n()!==null);return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:i.map(({field:n,ComponentValue:u})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(V,{children:n}),e.jsx(u,{})]})},n))})})}function xe({queue:s}){const a=[{field:"Work Queue ID",ComponentValue:()=>s.id?e.jsx(h,{children:s.id}):e.jsx(b,{})},{field:"Flow Run Concurrency",ComponentValue:()=>e.jsx(h,{children:s.concurrency_limit!==null&&s.concurrency_limit!==void 0?String(s.concurrency_limit):"Unlimited"})},{field:"Created",ComponentValue:()=>s.created?e.jsx(h,{children:e.jsx(T,{date:s.created})}):e.jsx(b,{})},{field:"Last Updated",ComponentValue:()=>s.updated?e.jsx(h,{children:e.jsx(T,{date:s.updated})}):e.jsx(b,{})}];return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:a.map(({field:i,ComponentValue:n})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(V,{children:i}),e.jsx(n,{})]})},i))})})}function Q({workPoolName:s,queue:a,alternate:i=!1,className:n}){const u=i?"space-y-4":"space-y-6";return e.jsxs("div",{className:y(u,n),children:[e.jsx(me,{workPoolName:s,queue:a}),e.jsx(H,{}),e.jsx(xe,{queue:a})]})}const pe=({workPoolName:s,queue:a,onUpdate:i,className:n})=>e.jsxs("header",{className:y("flex mb-4 flex-row items-center justify-between",n),children:[e.jsx(X,{className:n,children:e.jsxs(Y,{children:[e.jsx(S,{children:e.jsx(D,{to:"/work-pools",className:"text-xl font-semibold",children:"Work Pools"})}),e.jsx(M,{}),e.jsx(S,{children:e.jsx(D,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s},className:"text-xl font-semibold",children:s})}),e.jsx(M,{}),e.jsx(S,{className:"text-xl font-semibold",children:e.jsx($,{children:a.name})})]})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(re,{queue:a,onUpdate:i}),e.jsx(ie,{queue:a,onUpdate:i})]})]}),he=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:10,page:1}),[m,w]=t.useState(""),[r,j]=t.useState(new Set),d=G(m,500),N=t.useMemo(()=>{const l={page:n.page,limit:n.limit,sort:"START_TIME_DESC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,n,d,r]),v=t.useMemo(()=>{const l={work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,d,r]),{data:x}=g(P(N)),{data:f}=g(W(v)),p=t.useMemo(()=>[...new Set((x?.results??[]).map(l=>l.flow_id))],[x?.results]),{data:_}=g(L({flows:{operator:"and_",id:{any_:p}},offset:0,sort:"NAME_ASC"},{enabled:p.length>0})),R=t.useMemo(()=>{if(!x?.results)return[];const l=new Map(_?.map(c=>[c.id,c])??[]);return x.results.map(c=>{const F=l.get(c.flow_id);return F?{...c,flow:F}:null}).filter(c=>c!==null)},[x?.results,_]),A=t.useCallback(l=>{w(l.target.value),u(c=>({...c,page:1}))},[]),B=t.useCallback(l=>{u(l)},[]),I=t.useCallback(l=>{j(l),u(c=>({...c,page:1}))},[]),O=t.useCallback(()=>{w(""),j(new Set),u(l=>({...l,page:1}))},[]);return!x||f===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading flow runs..."})}):e.jsxs("div",{className:i,children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:[e.jsx("div",{className:"flex-1",children:e.jsx(J,{placeholder:"Search flow runs by name...",value:m,onChange:A,debounceMs:500})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(ce,{selectedFilters:r,onSelectFilter:I})})]}),e.jsx(E,{flowRuns:R,onClearFilters:R.length===0?O:void 0}),x.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(U,{count:f,pages:x.pages,pagination:n,onChangePagination:B})})]})},fe=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:5,page:1}),m=t.useMemo(()=>({page:n.page,limit:n.limit,sort:"EXPECTED_START_TIME_ASC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name,n]),w=t.useMemo(()=>({work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name]),{data:r}=g(P(m)),{data:j}=g(W(w)),d=t.useMemo(()=>[...new Set((r?.results??[]).map(f=>f.flow_id))],[r?.results]),{data:N}=g(L({flows:{operator:"and_",id:{any_:d}},offset:0,sort:"NAME_ASC"},{enabled:d.length>0})),v=t.useMemo(()=>{if(!r?.results)return[];const f=new Map(N?.map(p=>[p.id,p])??[]);return r.results.map(p=>{const _=f.get(p.flow_id);return _?{...p,flow:_}:null}).filter(p=>p!==null)},[r?.results,N]),x=t.useCallback(f=>{u(f)},[]);return!r||j===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading upcoming runs..."})}):e.jsxs("div",{className:i,children:[e.jsx(E,{flowRuns:v}),r.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(U,{count:j,pages:r.pages,pagination:n,onChangePagination:x})})]})};de({queueTab:ue(["Details","Upcoming Runs","Runs"]).default("Upcoming Runs")});function je(){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(o,{className:"h-4 w-48"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-16"}),e.jsx(o,{className:"h-6 w-24"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-20"}),e.jsx(o,{className:"h-6 w-32"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-24"}),e.jsx(o,{className:"h-6 w-28"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-18"}),e.jsx(o,{className:"h-6 w-36"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(o,{className:"h-5 w-40"}),e.jsx("div",{className:"space-y-2",children:e.jsx(o,{className:"h-32 w-full"})})]})]})}function we(){return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})}function ge(){return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx(o,{className:"h-9 w-full"})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(o,{className:"h-9 w-full"})})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})]})}function Pe(){const{workPoolName:s,workQueueName:a}=k.useParams(),{queueTab:i}=k.useSearch(),n=k.useNavigate(),u=z(),{data:m}=K(Z(s,a)),w=t.useMemo(()=>[{id:"Details",label:"Details",hiddenOnDesktop:!0},{id:"Upcoming Runs",label:"Upcoming Runs",hiddenOnDesktop:!1},{id:"Runs",label:"Runs",hiddenOnDesktop:!1}],[]),r=t.useCallback(d=>{n({to:".",search:{queueTab:d}})},[n]),j=t.useCallback(()=>{u.invalidateQueries({queryKey:q.detail(s,a)})},[u,s,a]);return e.jsx(ee,{children:e.jsxs(se,{children:[e.jsx(ae,{children:e.jsx(pe,{workPoolName:s,queue:m,onUpdate:j})}),e.jsxs("div",{className:"flex flex-col xl:flex-row xl:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs(le,{value:i,onValueChange:r,children:[e.jsx(ne,{className:"flex w-full overflow-x-auto scrollbar-none",children:w.map(d=>e.jsx(te,{value:d.id,className:y("whitespace-nowrap flex-shrink-0",d.hiddenOnDesktop?"xl:hidden":""),children:d.label},d.id))}),e.jsx(C,{value:"Details",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(je,{}),children:e.jsx(Q,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Upcoming Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(we,{}),children:e.jsx(fe,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(ge,{}),children:e.jsx(he,{workPoolName:s,queue:m})})})]})}),e.jsx("aside",{className:"w-full xl:w-80 xl:shrink-0 hidden xl:block",children:e.jsx("div",{className:"sticky top-8",children:e.jsx(Q,{workPoolName:s,queue:m,alternate:!0})})})]})]})})}export{Pe as component};
|
|
2
|
+
//# sourceMappingURL=work-pool_._workPoolName.queue._workQueueName-C7aVwLhH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-pool_._workPoolName.queue._workQueueName-CwPnpSI9.js","sources":["../../src/components/work-pools/work-pool-queue-details/work-pool-queue-details.tsx","../../src/components/work-pools/work-pool-queue-page-header/work-pool-queue-page-header.tsx","../../src/components/work-pools/work-pool-queue-runs-tab/work-pool-queue-runs-tab.tsx","../../src/components/work-pools/work-pool-queue-upcoming-runs-tab/work-pool-queue-upcoming-runs-tab.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.queue.$workQueueName.tsx?tsr-split=component"],"sourcesContent":["import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FormattedDate } from \"@/components/ui/formatted-date\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { WorkPoolQueueStatusBadge } from \"@/components/work-pools/work-pool-queue-status-badge\";\nimport { cn } from \"@/utils\";\n\ntype WorkPoolQueueDetailsProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\talternate?: boolean;\n\tclassName?: string;\n};\n\n// Helper components for field display\nconst None = () => <dd className=\"text-muted-foreground text-sm\">None</dd>;\nconst FieldLabel = ({ children }: { children: React.ReactNode }) => (\n\t<dt className=\"text-sm text-muted-foreground\">{children}</dt>\n);\nconst FieldValue = ({\n\tchildren,\n\tclassName,\n}: {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}) => <dd className={cn(\"text-sm\", className)}>{children}</dd>;\n\n// Basic Info Section Component\nfunction BasicInfoSection({\n\tworkPoolName,\n\tqueue,\n}: {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n}) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Pool\",\n\t\t\tComponentValue: () => <FieldValue>{workPoolName}</FieldValue>,\n\t\t},\n\t\t{\n\t\t\tfield: \"Status\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<dd>\n\t\t\t\t\t<WorkPoolQueueStatusBadge status={queue.status || \"NOT_READY\"} />\n\t\t\t\t</dd>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Polled\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.last_polled ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.last_polled} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<FieldValue className=\"text-muted-foreground\">Never</FieldValue>\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Description\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.description ? <FieldValue>{queue.description}</FieldValue> : null,\n\t\t},\n\t\t{\n\t\t\tfield: \"Priority\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.priority !== null && queue.priority !== undefined ? (\n\t\t\t\t\t<FieldValue>{String(queue.priority)}</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t].filter(({ ComponentValue }) => ComponentValue() !== null);\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\n// Meta Info Section Component\nfunction MetaInfoSection({ queue }: { queue: WorkPoolQueue }) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Queue ID\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.id ? <FieldValue>{queue.id}</FieldValue> : <None />,\n\t\t},\n\t\t{\n\t\t\tfield: \"Flow Run Concurrency\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<FieldValue>\n\t\t\t\t\t{queue.concurrency_limit !== null &&\n\t\t\t\t\tqueue.concurrency_limit !== undefined\n\t\t\t\t\t\t? String(queue.concurrency_limit)\n\t\t\t\t\t\t: \"Unlimited\"}\n\t\t\t\t</FieldValue>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Created\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.created ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.created} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Updated\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.updated ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.updated} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\nexport function WorkPoolQueueDetails({\n\tworkPoolName,\n\tqueue,\n\talternate = false,\n\tclassName,\n}: WorkPoolQueueDetailsProps) {\n\tconst spacing = alternate ? \"space-y-4\" : \"space-y-6\";\n\n\treturn (\n\t\t<div className={cn(spacing, className)}>\n\t\t\t<BasicInfoSection workPoolName={workPoolName} queue={queue} />\n\t\t\t<Separator />\n\t\t\t<MetaInfoSection queue={queue} />\n\t\t</div>\n\t);\n}\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { cn } from \"@/utils\";\nimport { WorkPoolQueueMenu } from \"../work-pool-queue-menu\";\nimport { WorkPoolQueueToggle } from \"../work-pool-queue-toggle\";\n\nexport type WorkPoolQueuePageHeaderProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueuePageHeader = ({\n\tworkPoolName,\n\tqueue,\n\tonUpdate,\n\tclassName,\n}: WorkPoolQueuePageHeaderProps) => {\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t\"flex mb-4 flex-row items-center justify-between\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Breadcrumb className={className}>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPoolName}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>{queue.name}</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t\t<div className=\"flex items-center space-x-2\">\n\t\t\t\t<WorkPoolQueueToggle queue={queue} onUpdate={onUpdate} />\n\t\t\t\t<WorkPoolQueueMenu queue={queue} onUpdate={onUpdate} />\n\t\t\t</div>\n\t\t</header>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport { StateFilter } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filter\";\nimport type { FlowRunState } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filters.constants\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\nimport { SearchInput } from \"@/components/ui/input\";\nimport useDebounce from \"@/hooks/use-debounce\";\n\ntype WorkPoolQueueRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 10,\n\t\tpage: 1,\n\t});\n\tconst [searchTerm, setSearchTerm] = useState(\"\");\n\tconst [selectedStates, setSelectedStates] = useState<Set<FlowRunState>>(\n\t\tnew Set(),\n\t);\n\n\t// Debounce the search term to avoid too many API calls\n\tconst debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(() => {\n\t\tconst baseFilter: FlowRunsPaginateFilter = {\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"START_TIME_DESC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\t...baseFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseFilter;\n\t}, [\n\t\tworkPoolName,\n\t\tqueue.name,\n\t\tpagination,\n\t\tdebouncedSearchTerm,\n\t\tselectedStates,\n\t]);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(() => {\n\t\tconst baseCountFilter: FlowRunsCountFilter = {\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter to count if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter to count if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseCountFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\t...baseCountFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseCountFilter;\n\t}, [workPoolName, queue.name, debouncedSearchTerm, selectedStates]);\n\n\t// Fetch paginated flow runs data\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\t// Fetch total count for pagination\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\t// Get unique flow IDs for fetching flow details\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\t// Fetch flow details\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\t// Combine flow runs with their corresponding flows\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handleSearchChange = useCallback(\n\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tsetSearchTerm(event.target.value);\n\t\t\t// Reset to first page when searching\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleStateFilterChange = useCallback(\n\t\t(newSelectedStates: Set<FlowRunState>) => {\n\t\t\tsetSelectedStates(newSelectedStates);\n\t\t\t// Reset to first page when filtering\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleClearFilters = useCallback(() => {\n\t\tsetSearchTerm(\"\");\n\t\tsetSelectedStates(new Set());\n\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t}, []);\n\n\t// Show loading only on initial load, not on pagination/filtering changes\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading flow runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{/* Search and Filter Controls */}\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4 mb-6\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tplaceholder=\"Search flow runs by name...\"\n\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\tonChange={handleSearchChange}\n\t\t\t\t\t\tdebounceMs={500}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<StateFilter\n\t\t\t\t\t\tselectedFilters={selectedStates}\n\t\t\t\t\t\tonSelectFilter={handleStateFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Flow Runs List */}\n\t\t\t<FlowRunsList\n\t\t\t\tflowRuns={flowRunsWithFlows}\n\t\t\t\tonClearFilters={\n\t\t\t\t\tflowRunsWithFlows.length === 0 ? handleClearFilters : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{/* Pagination Controls */}\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\n\ntype WorkPoolQueueUpcomingRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueUpcomingRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueUpcomingRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 5,\n\t\tpage: 1,\n\t});\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(\n\t\t() => ({\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"EXPECTED_START_TIME_ASC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name, pagination],\n\t);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(\n\t\t() => ({\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name],\n\t);\n\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading upcoming runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t<FlowRunsList flowRuns={flowRunsWithFlows} />\n\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQueryClient, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { zodValidator } from \"@tanstack/zod-adapter\";\nimport { Suspense, useCallback, useMemo } from \"react\";\nimport { z } from \"zod\";\nimport {\n\tbuildWorkPoolQueueDetailsQuery,\n\tworkPoolQueuesQueryKeyFactory,\n} from \"@/api/work-pool-queues\";\nimport {\n\tLayoutWell,\n\tLayoutWellContent,\n\tLayoutWellHeader,\n} from \"@/components/ui/layout-well\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { WorkPoolQueueDetails } from \"@/components/work-pools/work-pool-queue-details\";\nimport { WorkPoolQueuePageHeader } from \"@/components/work-pools/work-pool-queue-page-header\";\nimport { WorkPoolQueueRunsTab } from \"@/components/work-pools/work-pool-queue-runs-tab\";\nimport { WorkPoolQueueUpcomingRunsTab } from \"@/components/work-pools/work-pool-queue-upcoming-runs-tab\";\nimport { cn } from \"@/utils\";\n\nconst searchParams = z.object({\n\tqueueTab: z\n\t\t.enum([\"Details\", \"Upcoming Runs\", \"Runs\"])\n\t\t.default(\"Upcoming Runs\"),\n});\n\ntype SearchParams = z.infer<typeof searchParams>;\n\nfunction DetailsTabSkeleton() {\n\treturn (\n\t\t<div className=\"space-y-6\">\n\t\t\t<div className=\"space-y-4\">\n\t\t\t\t<Skeleton className=\"h-4 w-48\" />\n\t\t\t\t<div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-16\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-24\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-20\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-32\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-24\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-28\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-18\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-36\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<Skeleton className=\"h-5 w-40\" />\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t<Skeleton className=\"h-32 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction UpcomingRunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t</div>\n\t);\n}\n\nfunction RunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/queue/$workQueueName\",\n)({\n\tvalidateSearch: zodValidator(searchParams),\n\tcomponent: RouteComponent,\n\tloader: async ({ params, context: { queryClient } }) => {\n\t\t// Critical data - must await\n\t\tconst queue = await queryClient.ensureQueryData(\n\t\t\tbuildWorkPoolQueueDetailsQuery(params.workPoolName, params.workQueueName),\n\t\t);\n\n\t\treturn { queue };\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName, workQueueName } = Route.useParams();\n\tconst { queueTab } = Route.useSearch();\n\tconst navigate = Route.useNavigate();\n\tconst queryClient = useQueryClient();\n\n\tconst { data: queue } = useSuspenseQuery(\n\t\tbuildWorkPoolQueueDetailsQuery(workPoolName, workQueueName),\n\t);\n\n\tconst tabs = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: \"Details\",\n\t\t\t\tlabel: \"Details\",\n\t\t\t\thiddenOnDesktop: true, // Hide on xl screens and above\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Upcoming Runs\",\n\t\t\t\tlabel: \"Upcoming Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Runs\",\n\t\t\t\tlabel: \"Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t],\n\t\t[],\n\t);\n\n\tconst handleTabChange = useCallback(\n\t\t(newTab: string) => {\n\t\t\tvoid navigate({\n\t\t\t\tto: \".\",\n\t\t\t\tsearch: { queueTab: newTab as SearchParams[\"queueTab\"] },\n\t\t\t});\n\t\t},\n\t\t[navigate],\n\t);\n\n\tconst handleQueueUpdate = useCallback(() => {\n\t\t// Refresh queue data\n\t\tvoid queryClient.invalidateQueries({\n\t\t\tqueryKey: workPoolQueuesQueryKeyFactory.detail(\n\t\t\t\tworkPoolName,\n\t\t\t\tworkQueueName,\n\t\t\t),\n\t\t});\n\t}, [queryClient, workPoolName, workQueueName]);\n\n\treturn (\n\t\t<LayoutWell>\n\t\t\t<LayoutWellContent>\n\t\t\t\t<LayoutWellHeader>\n\t\t\t\t\t<WorkPoolQueuePageHeader\n\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\tonUpdate={handleQueueUpdate}\n\t\t\t\t\t/>\n\t\t\t\t</LayoutWellHeader>\n\n\t\t\t\t<div className=\"flex flex-col xl:flex-row xl:gap-8\">\n\t\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t\t<Tabs value={queueTab} onValueChange={handleTabChange}>\n\t\t\t\t\t\t\t<TabsList className=\"flex w-full overflow-x-auto scrollbar-none\">\n\t\t\t\t\t\t\t\t{tabs.map((tabItem) => (\n\t\t\t\t\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\t\t\t\t\tkey={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tvalue={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\"whitespace-nowrap flex-shrink-0\",\n\t\t\t\t\t\t\t\t\t\t\ttabItem.hiddenOnDesktop ? \"xl:hidden\" : \"\",\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{tabItem.label}\n\t\t\t\t\t\t\t\t\t</TabsTrigger>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</TabsList>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Details\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<DetailsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Upcoming Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<UpcomingRunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueUpcomingRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<RunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<aside className=\"w-full xl:w-80 xl:shrink-0 hidden xl:block\">\n\t\t\t\t\t\t<div className=\"sticky top-8\">\n\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\talternate\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t</div>\n\t\t\t</LayoutWellContent>\n\t\t</LayoutWell>\n\t);\n}\n"],"names":["None","jsx","FieldLabel","children","FieldValue","className","cn","BasicInfoSection","workPoolName","queue","fields","WorkPoolQueueStatusBadge","FormattedDate","ComponentValue","field","MetaInfoSection","WorkPoolQueueDetails","alternate","spacing","Separator","WorkPoolQueuePageHeader","onUpdate","jsxs","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","WorkPoolQueueToggle","WorkPoolQueueMenu","WorkPoolQueueRunsTab","pagination","setPagination","useState","searchTerm","setSearchTerm","selectedStates","setSelectedStates","debouncedSearchTerm","useDebounce","filter","useMemo","baseFilter","stateFilter","countFilter","baseCountFilter","paginatedData","useQuery","buildPaginateFlowRunsQuery","totalCount","buildCountFlowRunsQuery","flowIds","flowRun","flows","buildListFlowsQuery","flowRunsWithFlows","flowMap","flow","handleSearchChange","useCallback","event","prev","handlePaginationChange","newPagination","handleStateFilterChange","newSelectedStates","handleClearFilters","SearchInput","StateFilter","FlowRunsList","FlowRunsPagination","WorkPoolQueueUpcomingRunsTab","z","queueTab","default","DetailsTabSkeleton","Skeleton","UpcomingRunsTabSkeleton","RunsTabSkeleton","RouteComponent","workQueueName","Route","useParams","useSearch","navigate","useNavigate","queryClient","useQueryClient","data","useSuspenseQuery","buildWorkPoolQueueDetailsQuery","tabs","id","label","hiddenOnDesktop","handleTabChange","newTab","to","search","handleQueueUpdate","invalidateQueries","queryKey","workPoolQueuesQueryKeyFactory","detail","LayoutWell","LayoutWellContent","LayoutWellHeader","Tabs","TabsList","map","TabsTrigger","tabItem","TabsContent","Suspense"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"work-pool_._workPoolName.queue._workQueueName-C7aVwLhH.js","sources":["../../src/components/work-pools/work-pool-queue-details/work-pool-queue-details.tsx","../../src/components/work-pools/work-pool-queue-page-header/work-pool-queue-page-header.tsx","../../src/components/work-pools/work-pool-queue-runs-tab/work-pool-queue-runs-tab.tsx","../../src/components/work-pools/work-pool-queue-upcoming-runs-tab/work-pool-queue-upcoming-runs-tab.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.queue.$workQueueName.tsx?tsr-split=component"],"sourcesContent":["import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FormattedDate } from \"@/components/ui/formatted-date\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { WorkPoolQueueStatusBadge } from \"@/components/work-pools/work-pool-queue-status-badge\";\nimport { cn } from \"@/utils\";\n\ntype WorkPoolQueueDetailsProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\talternate?: boolean;\n\tclassName?: string;\n};\n\n// Helper components for field display\nconst None = () => <dd className=\"text-muted-foreground text-sm\">None</dd>;\nconst FieldLabel = ({ children }: { children: React.ReactNode }) => (\n\t<dt className=\"text-sm text-muted-foreground\">{children}</dt>\n);\nconst FieldValue = ({\n\tchildren,\n\tclassName,\n}: {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}) => <dd className={cn(\"text-sm\", className)}>{children}</dd>;\n\n// Basic Info Section Component\nfunction BasicInfoSection({\n\tworkPoolName,\n\tqueue,\n}: {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n}) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Pool\",\n\t\t\tComponentValue: () => <FieldValue>{workPoolName}</FieldValue>,\n\t\t},\n\t\t{\n\t\t\tfield: \"Status\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<dd>\n\t\t\t\t\t<WorkPoolQueueStatusBadge status={queue.status || \"NOT_READY\"} />\n\t\t\t\t</dd>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Polled\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.last_polled ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.last_polled} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<FieldValue className=\"text-muted-foreground\">Never</FieldValue>\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Description\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.description ? <FieldValue>{queue.description}</FieldValue> : null,\n\t\t},\n\t\t{\n\t\t\tfield: \"Priority\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.priority !== null && queue.priority !== undefined ? (\n\t\t\t\t\t<FieldValue>{String(queue.priority)}</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t].filter(({ ComponentValue }) => ComponentValue() !== null);\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\n// Meta Info Section Component\nfunction MetaInfoSection({ queue }: { queue: WorkPoolQueue }) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Queue ID\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.id ? <FieldValue>{queue.id}</FieldValue> : <None />,\n\t\t},\n\t\t{\n\t\t\tfield: \"Flow Run Concurrency\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<FieldValue>\n\t\t\t\t\t{queue.concurrency_limit !== null &&\n\t\t\t\t\tqueue.concurrency_limit !== undefined\n\t\t\t\t\t\t? String(queue.concurrency_limit)\n\t\t\t\t\t\t: \"Unlimited\"}\n\t\t\t\t</FieldValue>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Created\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.created ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.created} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Updated\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.updated ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.updated} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\nexport function WorkPoolQueueDetails({\n\tworkPoolName,\n\tqueue,\n\talternate = false,\n\tclassName,\n}: WorkPoolQueueDetailsProps) {\n\tconst spacing = alternate ? \"space-y-4\" : \"space-y-6\";\n\n\treturn (\n\t\t<div className={cn(spacing, className)}>\n\t\t\t<BasicInfoSection workPoolName={workPoolName} queue={queue} />\n\t\t\t<Separator />\n\t\t\t<MetaInfoSection queue={queue} />\n\t\t</div>\n\t);\n}\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { cn } from \"@/utils\";\nimport { WorkPoolQueueMenu } from \"../work-pool-queue-menu\";\nimport { WorkPoolQueueToggle } from \"../work-pool-queue-toggle\";\n\nexport type WorkPoolQueuePageHeaderProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueuePageHeader = ({\n\tworkPoolName,\n\tqueue,\n\tonUpdate,\n\tclassName,\n}: WorkPoolQueuePageHeaderProps) => {\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t\"flex mb-4 flex-row items-center justify-between\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Breadcrumb className={className}>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPoolName}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>{queue.name}</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t\t<div className=\"flex items-center space-x-2\">\n\t\t\t\t<WorkPoolQueueToggle queue={queue} onUpdate={onUpdate} />\n\t\t\t\t<WorkPoolQueueMenu queue={queue} onUpdate={onUpdate} />\n\t\t\t</div>\n\t\t</header>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport { StateFilter } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filter\";\nimport type { FlowRunState } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filters.constants\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\nimport { SearchInput } from \"@/components/ui/input\";\nimport useDebounce from \"@/hooks/use-debounce\";\n\ntype WorkPoolQueueRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 10,\n\t\tpage: 1,\n\t});\n\tconst [searchTerm, setSearchTerm] = useState(\"\");\n\tconst [selectedStates, setSelectedStates] = useState<Set<FlowRunState>>(\n\t\tnew Set(),\n\t);\n\n\t// Debounce the search term to avoid too many API calls\n\tconst debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(() => {\n\t\tconst baseFilter: FlowRunsPaginateFilter = {\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"START_TIME_DESC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\t...baseFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseFilter;\n\t}, [\n\t\tworkPoolName,\n\t\tqueue.name,\n\t\tpagination,\n\t\tdebouncedSearchTerm,\n\t\tselectedStates,\n\t]);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(() => {\n\t\tconst baseCountFilter: FlowRunsCountFilter = {\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter to count if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter to count if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseCountFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\t...baseCountFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseCountFilter;\n\t}, [workPoolName, queue.name, debouncedSearchTerm, selectedStates]);\n\n\t// Fetch paginated flow runs data\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\t// Fetch total count for pagination\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\t// Get unique flow IDs for fetching flow details\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\t// Fetch flow details\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\t// Combine flow runs with their corresponding flows\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handleSearchChange = useCallback(\n\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tsetSearchTerm(event.target.value);\n\t\t\t// Reset to first page when searching\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleStateFilterChange = useCallback(\n\t\t(newSelectedStates: Set<FlowRunState>) => {\n\t\t\tsetSelectedStates(newSelectedStates);\n\t\t\t// Reset to first page when filtering\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleClearFilters = useCallback(() => {\n\t\tsetSearchTerm(\"\");\n\t\tsetSelectedStates(new Set());\n\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t}, []);\n\n\t// Show loading only on initial load, not on pagination/filtering changes\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading flow runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{/* Search and Filter Controls */}\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4 mb-6\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tplaceholder=\"Search flow runs by name...\"\n\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\tonChange={handleSearchChange}\n\t\t\t\t\t\tdebounceMs={500}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<StateFilter\n\t\t\t\t\t\tselectedFilters={selectedStates}\n\t\t\t\t\t\tonSelectFilter={handleStateFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Flow Runs List */}\n\t\t\t<FlowRunsList\n\t\t\t\tflowRuns={flowRunsWithFlows}\n\t\t\t\tonClearFilters={\n\t\t\t\t\tflowRunsWithFlows.length === 0 ? handleClearFilters : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{/* Pagination Controls */}\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\n\ntype WorkPoolQueueUpcomingRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueUpcomingRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueUpcomingRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 5,\n\t\tpage: 1,\n\t});\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(\n\t\t() => ({\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"EXPECTED_START_TIME_ASC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name, pagination],\n\t);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(\n\t\t() => ({\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name],\n\t);\n\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading upcoming runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t<FlowRunsList flowRuns={flowRunsWithFlows} />\n\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQueryClient, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { zodValidator } from \"@tanstack/zod-adapter\";\nimport { Suspense, useCallback, useMemo } from \"react\";\nimport { z } from \"zod\";\nimport {\n\tbuildWorkPoolQueueDetailsQuery,\n\tworkPoolQueuesQueryKeyFactory,\n} from \"@/api/work-pool-queues\";\nimport {\n\tLayoutWell,\n\tLayoutWellContent,\n\tLayoutWellHeader,\n} from \"@/components/ui/layout-well\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { WorkPoolQueueDetails } from \"@/components/work-pools/work-pool-queue-details\";\nimport { WorkPoolQueuePageHeader } from \"@/components/work-pools/work-pool-queue-page-header\";\nimport { WorkPoolQueueRunsTab } from \"@/components/work-pools/work-pool-queue-runs-tab\";\nimport { WorkPoolQueueUpcomingRunsTab } from \"@/components/work-pools/work-pool-queue-upcoming-runs-tab\";\nimport { cn } from \"@/utils\";\n\nconst searchParams = z.object({\n\tqueueTab: z\n\t\t.enum([\"Details\", \"Upcoming Runs\", \"Runs\"])\n\t\t.default(\"Upcoming Runs\"),\n});\n\ntype SearchParams = z.infer<typeof searchParams>;\n\nfunction DetailsTabSkeleton() {\n\treturn (\n\t\t<div className=\"space-y-6\">\n\t\t\t<div className=\"space-y-4\">\n\t\t\t\t<Skeleton className=\"h-4 w-48\" />\n\t\t\t\t<div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-16\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-24\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-20\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-32\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-24\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-28\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-18\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-36\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<Skeleton className=\"h-5 w-40\" />\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t<Skeleton className=\"h-32 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction UpcomingRunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t</div>\n\t);\n}\n\nfunction RunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/queue/$workQueueName\",\n)({\n\tvalidateSearch: zodValidator(searchParams),\n\tcomponent: RouteComponent,\n\tloader: async ({ params, context: { queryClient } }) => {\n\t\t// Critical data - must await\n\t\tconst queue = await queryClient.ensureQueryData(\n\t\t\tbuildWorkPoolQueueDetailsQuery(params.workPoolName, params.workQueueName),\n\t\t);\n\n\t\treturn { queue };\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName, workQueueName } = Route.useParams();\n\tconst { queueTab } = Route.useSearch();\n\tconst navigate = Route.useNavigate();\n\tconst queryClient = useQueryClient();\n\n\tconst { data: queue } = useSuspenseQuery(\n\t\tbuildWorkPoolQueueDetailsQuery(workPoolName, workQueueName),\n\t);\n\n\tconst tabs = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: \"Details\",\n\t\t\t\tlabel: \"Details\",\n\t\t\t\thiddenOnDesktop: true, // Hide on xl screens and above\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Upcoming Runs\",\n\t\t\t\tlabel: \"Upcoming Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Runs\",\n\t\t\t\tlabel: \"Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t],\n\t\t[],\n\t);\n\n\tconst handleTabChange = useCallback(\n\t\t(newTab: string) => {\n\t\t\tvoid navigate({\n\t\t\t\tto: \".\",\n\t\t\t\tsearch: { queueTab: newTab as SearchParams[\"queueTab\"] },\n\t\t\t});\n\t\t},\n\t\t[navigate],\n\t);\n\n\tconst handleQueueUpdate = useCallback(() => {\n\t\t// Refresh queue data\n\t\tvoid queryClient.invalidateQueries({\n\t\t\tqueryKey: workPoolQueuesQueryKeyFactory.detail(\n\t\t\t\tworkPoolName,\n\t\t\t\tworkQueueName,\n\t\t\t),\n\t\t});\n\t}, [queryClient, workPoolName, workQueueName]);\n\n\treturn (\n\t\t<LayoutWell>\n\t\t\t<LayoutWellContent>\n\t\t\t\t<LayoutWellHeader>\n\t\t\t\t\t<WorkPoolQueuePageHeader\n\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\tonUpdate={handleQueueUpdate}\n\t\t\t\t\t/>\n\t\t\t\t</LayoutWellHeader>\n\n\t\t\t\t<div className=\"flex flex-col xl:flex-row xl:gap-8\">\n\t\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t\t<Tabs value={queueTab} onValueChange={handleTabChange}>\n\t\t\t\t\t\t\t<TabsList className=\"flex w-full overflow-x-auto scrollbar-none\">\n\t\t\t\t\t\t\t\t{tabs.map((tabItem) => (\n\t\t\t\t\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\t\t\t\t\tkey={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tvalue={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\"whitespace-nowrap flex-shrink-0\",\n\t\t\t\t\t\t\t\t\t\t\ttabItem.hiddenOnDesktop ? \"xl:hidden\" : \"\",\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{tabItem.label}\n\t\t\t\t\t\t\t\t\t</TabsTrigger>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</TabsList>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Details\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<DetailsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Upcoming Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<UpcomingRunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueUpcomingRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<RunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<aside className=\"w-full xl:w-80 xl:shrink-0 hidden xl:block\">\n\t\t\t\t\t\t<div className=\"sticky top-8\">\n\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\talternate\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t</div>\n\t\t\t</LayoutWellContent>\n\t\t</LayoutWell>\n\t);\n}\n"],"names":["None","jsx","FieldLabel","children","FieldValue","className","cn","BasicInfoSection","workPoolName","queue","fields","WorkPoolQueueStatusBadge","FormattedDate","ComponentValue","field","MetaInfoSection","WorkPoolQueueDetails","alternate","spacing","Separator","WorkPoolQueuePageHeader","onUpdate","jsxs","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","WorkPoolQueueToggle","WorkPoolQueueMenu","WorkPoolQueueRunsTab","pagination","setPagination","useState","searchTerm","setSearchTerm","selectedStates","setSelectedStates","debouncedSearchTerm","useDebounce","filter","useMemo","baseFilter","stateFilter","countFilter","baseCountFilter","paginatedData","useQuery","buildPaginateFlowRunsQuery","totalCount","buildCountFlowRunsQuery","flowIds","flowRun","flows","buildListFlowsQuery","flowRunsWithFlows","flowMap","flow","handleSearchChange","useCallback","event","prev","handlePaginationChange","newPagination","handleStateFilterChange","newSelectedStates","handleClearFilters","SearchInput","StateFilter","FlowRunsList","FlowRunsPagination","WorkPoolQueueUpcomingRunsTab","z","queueTab","default","DetailsTabSkeleton","Skeleton","UpcomingRunsTabSkeleton","RunsTabSkeleton","RouteComponent","workQueueName","Route","useParams","useSearch","navigate","useNavigate","queryClient","useQueryClient","data","useSuspenseQuery","buildWorkPoolQueueDetailsQuery","tabs","id","label","hiddenOnDesktop","handleTabChange","newTab","to","search","handleQueueUpdate","invalidateQueries","queryKey","workPoolQueuesQueryKeyFactory","detail","LayoutWell","LayoutWellContent","LayoutWellHeader","Tabs","TabsList","map","TabsTrigger","tabItem","TabsContent","Suspense"],"mappings":"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"}
|
prefect/server/ui-v2/assets/{work-queue-icon-text-Bix0rRM1.js → work-queue-icon-text-BK_qfkJJ.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as s,r as i,s as x,L as n}from"./vendor-tanstack-BcZfOOfy.js";import{b5 as m,ao as d,I as c,
|
|
2
|
-
//# sourceMappingURL=work-queue-icon-text-
|
|
1
|
+
import{j as s,r as i,s as x,L as n}from"./vendor-tanstack-BcZfOOfy.js";import{b5 as m,ao as d,I as c,dd as p}from"./index-_0OOjqn5.js";import{a as f}from"./index-DSBmxhwG.js";const Q=({flowId:e})=>s.jsx(i.Suspense,{fallback:s.jsx(m,{className:"h-4 w-full"}),children:s.jsx(j,{flowId:e})}),j=({flowId:e})=>{const{data:a}=x(d(e));return s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:["Flow",s.jsxs(n,{to:"/flows/flow/$id",params:{id:a.id},className:"flex items-center gap-1",children:[s.jsx(c,{id:"Workflow",className:"size-4"}),a.name]})]})},I=({workPoolName:e})=>s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:["Work Pool",s.jsxs(n,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:e},className:"flex items-center gap-1",children:[s.jsx(c,{id:"Cpu",className:"size-4"}),e]})]}),L=({workPoolName:e,workQueueName:a,showLabel:o=!1,showStatus:l=!1,className:r,iconSize:t})=>s.jsx(i.Suspense,{fallback:s.jsx(m,{className:"h-4 w-full"}),children:s.jsx(k,{workPoolName:e,workQueueName:a,showLabel:o,showStatus:l,className:r,iconSize:t})}),k=({workPoolName:e,workQueueName:a,showLabel:o,showStatus:l,className:r,iconSize:t})=>{const{data:u}=x(p(e,a));return s.jsx(w,{workQueue:u,workPoolName:e,showLabel:o,showStatus:l,className:r,iconSize:t})},w=({workQueue:e,workPoolName:a,showLabel:o=!1,showStatus:l=!1,className:r,iconSize:t})=>s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[o&&s.jsx("span",{children:"Work Queue"}),s.jsxs(n,{to:"/work-pools/work-pool/$workPoolName/queue/$workQueueName",params:{workPoolName:a,workQueueName:e.name},className:r??"flex items-center gap-1",children:[s.jsx(c,{id:"ListOrdered",size:t,className:t?void 0:"size-4"}),e.name]}),l&&e.status&&s.jsx(f,{status:e.status})]});export{Q as F,L as W,I as a};
|
|
2
|
+
//# sourceMappingURL=work-queue-icon-text-BK_qfkJJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-queue-icon-text-
|
|
1
|
+
{"version":3,"file":"work-queue-icon-text-BK_qfkJJ.js","sources":["../../src/components/flows/flow-link.tsx","../../src/components/work-pools/work-pool-link.tsx","../../src/components/work-pools/work-queue-icon-text/work-queue-icon-text.tsx"],"sourcesContent":["import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Link } from \"@tanstack/react-router\";\nimport { Suspense } from \"react\";\nimport { buildFLowDetailsQuery } from \"@/api/flows\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\ntype FlowLinkProps = {\n\tflowId: string;\n};\n\nexport const FlowLink = ({ flowId }: FlowLinkProps) => {\n\treturn (\n\t\t<Suspense fallback={<Skeleton className=\"h-4 w-full\" />}>\n\t\t\t<FlowLinkImplementation flowId={flowId} />\n\t\t</Suspense>\n\t);\n};\n\nconst FlowLinkImplementation = ({ flowId }: FlowLinkProps) => {\n\tconst { data: flow } = useSuspenseQuery(buildFLowDetailsQuery(flowId));\n\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\tFlow\n\t\t\t<Link\n\t\t\t\tto=\"/flows/flow/$id\"\n\t\t\t\tparams={{ id: flow.id }}\n\t\t\t\tclassName=\"flex items-center gap-1\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Workflow\" className=\"size-4\" />\n\t\t\t\t{flow.name}\n\t\t\t</Link>\n\t\t</div>\n\t);\n};\n","import { Link } from \"@tanstack/react-router\";\nimport { Icon } from \"@/components/ui/icons\";\n\ntype WorkPoolLinkProps = {\n\tworkPoolName: string;\n};\n\nexport const WorkPoolLink = ({ workPoolName }: WorkPoolLinkProps) => {\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\tWork Pool\n\t\t\t<Link\n\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\tparams={{ workPoolName }}\n\t\t\t\tclassName=\"flex items-center gap-1\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Cpu\" className=\"size-4\" />\n\t\t\t\t{workPoolName}\n\t\t\t</Link>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Link } from \"@tanstack/react-router\";\nimport { Suspense } from \"react\";\nimport { buildWorkQueueDetailsQuery, type WorkQueue } from \"@/api/work-queues\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { StatusIcon } from \"@/components/ui/status-badge\";\n\ntype WorkQueueIconTextBaseProps = {\n\tworkPoolName: string;\n\tworkQueueName: string;\n\tshowLabel?: boolean;\n\tshowStatus?: boolean;\n\tclassName?: string;\n\ticonSize?: number;\n};\n\ntype WorkQueueIconTextProps = WorkQueueIconTextBaseProps;\n\nexport const WorkQueueIconText = ({\n\tworkPoolName,\n\tworkQueueName,\n\tshowLabel = false,\n\tshowStatus = false,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextProps) => (\n\t<Suspense fallback={<Skeleton className=\"h-4 w-full\" />}>\n\t\t<WorkQueueIconTextFetched\n\t\t\tworkPoolName={workPoolName}\n\t\t\tworkQueueName={workQueueName}\n\t\t\tshowLabel={showLabel}\n\t\t\tshowStatus={showStatus}\n\t\t\tclassName={className}\n\t\t\ticonSize={iconSize}\n\t\t/>\n\t</Suspense>\n);\n\nconst WorkQueueIconTextFetched = ({\n\tworkPoolName,\n\tworkQueueName,\n\tshowLabel,\n\tshowStatus,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextBaseProps) => {\n\tconst { data: workQueue } = useSuspenseQuery(\n\t\tbuildWorkQueueDetailsQuery(workPoolName, workQueueName),\n\t);\n\n\treturn (\n\t\t<WorkQueueIconTextPresentational\n\t\t\tworkQueue={workQueue}\n\t\t\tworkPoolName={workPoolName}\n\t\t\tshowLabel={showLabel}\n\t\t\tshowStatus={showStatus}\n\t\t\tclassName={className}\n\t\t\ticonSize={iconSize}\n\t\t/>\n\t);\n};\n\ntype WorkQueueIconTextPresentationalProps = {\n\tworkQueue: WorkQueue;\n\tworkPoolName: string;\n\tshowLabel?: boolean;\n\tshowStatus?: boolean;\n\tclassName?: string;\n\ticonSize?: number;\n};\n\nconst WorkQueueIconTextPresentational = ({\n\tworkQueue,\n\tworkPoolName,\n\tshowLabel = false,\n\tshowStatus = false,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextPresentationalProps) => {\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\t{showLabel && <span>Work Queue</span>}\n\t\t\t<Link\n\t\t\t\tto=\"/work-pools/work-pool/$workPoolName/queue/$workQueueName\"\n\t\t\t\tparams={{ workPoolName, workQueueName: workQueue.name }}\n\t\t\t\tclassName={className ?? \"flex items-center gap-1\"}\n\t\t\t>\n\t\t\t\t<Icon\n\t\t\t\t\tid=\"ListOrdered\"\n\t\t\t\t\tsize={iconSize}\n\t\t\t\t\tclassName={iconSize ? undefined : \"size-4\"}\n\t\t\t\t/>\n\t\t\t\t{workQueue.name}\n\t\t\t</Link>\n\t\t\t{showStatus && workQueue.status && (\n\t\t\t\t<StatusIcon status={workQueue.status} />\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["FlowLink","flowId","jsx","Suspense","Skeleton","FlowLinkImplementation","flow","useSuspenseQuery","buildFLowDetailsQuery","jsxs","Link","Icon","WorkPoolLink","workPoolName","WorkQueueIconText","workQueueName","showLabel","showStatus","className","iconSize","WorkQueueIconTextFetched","workQueue","buildWorkQueueDetailsQuery","WorkQueueIconTextPresentational","StatusIcon"],"mappings":"+KAWO,MAAMA,EAAW,CAAC,CAAE,OAAAC,KAEzBC,EAAAA,IAACC,EAAAA,SAAA,CAAS,SAAUD,EAAAA,IAACE,EAAA,CAAS,UAAU,YAAA,CAAa,EACpD,SAAAF,EAAAA,IAACG,EAAA,CAAuB,OAAAJ,CAAA,CAAgB,EACzC,EAIII,EAAyB,CAAC,CAAE,OAAAJ,KAA4B,CAC7D,KAAM,CAAE,KAAMK,CAAA,EAASC,EAAiBC,EAAsBP,CAAM,CAAC,EAErE,OACCQ,EAAAA,KAAC,MAAA,CAAI,UAAU,kCAAkC,SAAA,CAAA,OAEhDA,EAAAA,KAACC,EAAA,CACA,GAAG,kBACH,OAAQ,CAAE,GAAIJ,EAAK,EAAA,EACnB,UAAU,0BAEV,SAAA,CAAAJ,EAAAA,IAACS,EAAA,CAAK,GAAG,WAAW,UAAU,SAAS,EACtCL,EAAK,IAAA,CAAA,CAAA,CACP,EACD,CAEF,EC5BaM,EAAe,CAAC,CAAE,aAAAC,KAE7BJ,EAAAA,KAAC,MAAA,CAAI,UAAU,kCAAkC,SAAA,CAAA,YAEhDA,EAAAA,KAACC,EAAA,CACA,GAAG,sCACH,OAAQ,CAAE,aAAAG,CAAA,EACV,UAAU,0BAEV,SAAA,CAAAX,EAAAA,IAACS,EAAA,CAAK,GAAG,MAAM,UAAU,SAAS,EACjCE,CAAA,CAAA,CAAA,CACF,EACD,ECAWC,EAAoB,CAAC,CACjC,aAAAD,EACA,cAAAE,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,UAAAC,EACA,SAAAC,CACD,UACEhB,EAAAA,SAAA,CAAS,eAAWC,EAAA,CAAS,UAAU,aAAa,EACpD,SAAAF,EAAAA,IAACkB,EAAA,CACA,aAAAP,EACA,cAAAE,EACA,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CAAA,CACD,CAAA,CACD,EAGKC,EAA2B,CAAC,CACjC,aAAAP,EACA,cAAAE,EACA,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CACD,IAAkC,CACjC,KAAM,CAAE,KAAME,CAAA,EAAcd,EAC3Be,EAA2BT,EAAcE,CAAa,CAAA,EAGvD,OACCb,EAAAA,IAACqB,EAAA,CACA,UAAAF,EACA,aAAAR,EACA,UAAAG,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CAAA,CAAA,CAGH,EAWMI,EAAkC,CAAC,CACxC,UAAAF,EACA,aAAAR,EACA,UAAAG,EAAY,GACZ,WAAAC,EAAa,GACb,UAAAC,EACA,SAAAC,CACD,IAEEV,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAO,GAAad,EAAAA,IAAC,QAAK,SAAA,YAAA,CAAU,EAC9BO,EAAAA,KAACC,EAAA,CACA,GAAG,2DACH,OAAQ,CAAE,aAAAG,EAAc,cAAeQ,EAAU,IAAA,EACjD,UAAWH,GAAa,0BAExB,SAAA,CAAAhB,EAAAA,IAACS,EAAA,CACA,GAAG,cACH,KAAMQ,EACN,UAAWA,EAAW,OAAY,QAAA,CAAA,EAElCE,EAAU,IAAA,CAAA,CAAA,EAEXJ,GAAcI,EAAU,cACvBG,EAAA,CAAW,OAAQH,EAAU,MAAA,CAAQ,CAAA,EAExC"}
|
prefect/server/ui-v2/index.html
CHANGED
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
|
|
22
22
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
23
23
|
<title>Prefect Server</title>
|
|
24
|
-
<script type="module" crossorigin src="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/index-
|
|
24
|
+
<script type="module" crossorigin src="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/index-_0OOjqn5.js"></script>
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-react-Bce9NwRC.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-tanstack-BcZfOOfy.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-radix-BTiKGWfR.js">
|
|
28
28
|
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-recharts-BAN776s_.js">
|
|
29
29
|
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-forms-ClCIacbh.js">
|
|
30
30
|
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-date-wwuDAncJ.js">
|
|
31
|
-
<link rel="stylesheet" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/index-
|
|
31
|
+
<link rel="stylesheet" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/index-Br7MUvka.css">
|
|
32
32
|
</head>
|
|
33
33
|
<body>
|
|
34
34
|
<div id="root"></div>
|