prefect 3.6.15__py3-none-any.whl → 3.6.16.dev3__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/__init__.py +20 -0
- prefect/_build_info.py +3 -3
- prefect/_internal/analytics/__init__.py +80 -0
- prefect/_internal/analytics/_config.py +2 -0
- prefect/_internal/analytics/ci_detection.py +39 -0
- prefect/_internal/analytics/client.py +132 -0
- prefect/_internal/analytics/device_id.py +55 -0
- prefect/_internal/analytics/emit.py +90 -0
- prefect/_internal/analytics/enabled.py +33 -0
- prefect/_internal/analytics/events.py +14 -0
- prefect/_internal/analytics/milestones.py +177 -0
- prefect/_internal/analytics/notice.py +60 -0
- prefect/_internal/analytics/service.py +238 -0
- prefect/analytics/__init__.py +67 -0
- prefect/deployments/runner.py +20 -0
- prefect/flow_engine.py +16 -0
- prefect/flows.py +8 -0
- prefect/logging/formatters.py +24 -1
- prefect/server/ui-v2/assets/{artifact-card-BBzQR-Cj.js → artifact-card-BclosG8t.js} +2 -2
- prefect/server/ui-v2/assets/{artifact-card-BBzQR-Cj.js.map → artifact-card-BclosG8t.js.map} +1 -1
- prefect/server/ui-v2/assets/artifact._id-C0r4BJr2.js +2 -0
- prefect/server/ui-v2/assets/artifact._id-C0r4BJr2.js.map +1 -0
- prefect/server/ui-v2/assets/{automation-wizard-EYSfXlQ7.js → automation-wizard-Bmgt6nn8.js} +2 -2
- prefect/server/ui-v2/assets/{automation-wizard-EYSfXlQ7.js.map → automation-wizard-Bmgt6nn8.js.map} +1 -1
- prefect/server/ui-v2/assets/automation._id-Ccke3KJz.js +2 -0
- prefect/server/ui-v2/assets/{automation._id-Dn7jABys.js.map → automation._id-Ccke3KJz.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation_._id.edit-COrqswD3.js → automation_._id.edit-BlKPUTVf.js} +2 -2
- prefect/server/ui-v2/assets/{automation_._id.edit-COrqswD3.js.map → automation_._id.edit-BlKPUTVf.js.map} +1 -1
- prefect/server/ui-v2/assets/{automations-header-DN_dmMXW.js → automations-header-Df2zw3SC.js} +2 -2
- prefect/server/ui-v2/assets/{automations-header-DN_dmMXW.js.map → automations-header-Df2zw3SC.js.map} +1 -1
- prefect/server/ui-v2/assets/{base-job-template-form-section-De2ACYbw.js → base-job-template-form-section-oZD6U-RW.js} +2 -2
- prefect/server/ui-v2/assets/{base-job-template-form-section-De2ACYbw.js.map → base-job-template-form-section-oZD6U-RW.js.map} +1 -1
- prefect/server/ui-v2/assets/{block-type-details-Cklc7TkK.js → block-type-details-CYrdaLot.js} +2 -2
- prefect/server/ui-v2/assets/{block-type-details-Cklc7TkK.js.map → block-type-details-CYrdaLot.js.map} +1 -1
- prefect/server/ui-v2/assets/block-type-logo-CyAWq7mC.js +2 -0
- prefect/server/ui-v2/assets/block-type-logo-CyAWq7mC.js.map +1 -0
- prefect/server/ui-v2/assets/{block._id-tuz1Bcj2.js → block._id-CBgHrpTP.js} +2 -2
- prefect/server/ui-v2/assets/{block._id-tuz1Bcj2.js.map → block._id-CBgHrpTP.js.map} +1 -1
- prefect/server/ui-v2/assets/{block_._id.edit-CFEYhF5R.js → block_._id.edit-CW-kdi4O.js} +2 -2
- prefect/server/ui-v2/assets/{block_._id.edit-CFEYhF5R.js.map → block_._id.edit-CW-kdi4O.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog-CCPRo7nY.js → catalog-Brh0kn1I.js} +2 -2
- prefect/server/ui-v2/assets/{catalog-CCPRo7nY.js.map → catalog-Brh0kn1I.js.map} +1 -1
- prefect/server/ui-v2/assets/catalog_._slug-MCgzguIZ.js +2 -0
- prefect/server/ui-v2/assets/{catalog_._slug-Bl2J2oI3.js.map → catalog_._slug-MCgzguIZ.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog_._slug_.create-9UD_SxDN.js → catalog_._slug_.create-DBaeHi9Q.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug_.create-9UD_SxDN.js.map → catalog_._slug_.create-DBaeHi9Q.js.map} +1 -1
- prefect/server/ui-v2/assets/{collapsible-BVQTBG_U.js → collapsible-B_NJS0uJ.js} +2 -2
- prefect/server/ui-v2/assets/{collapsible-BVQTBG_U.js.map → collapsible-B_NJS0uJ.js.map} +1 -1
- prefect/server/ui-v2/assets/{concurrency-limit._id-CsgRxA0a.js → concurrency-limit._id-qzNUQzQa.js} +2 -2
- prefect/server/ui-v2/assets/{concurrency-limit._id-CsgRxA0a.js.map → concurrency-limit._id-qzNUQzQa.js.map} +1 -1
- prefect/server/ui-v2/assets/create-BwXG6EIb.js +2 -0
- prefect/server/ui-v2/assets/{create-D--LHaji.js.map → create-BwXG6EIb.js.map} +1 -1
- prefect/server/ui-v2/assets/{create-BycfZHGQ.js → create-MoiIE9Ms.js} +2 -2
- prefect/server/ui-v2/assets/{create-BycfZHGQ.js.map → create-MoiIE9Ms.js.map} +1 -1
- prefect/server/ui-v2/assets/data-table-CPkppyg6.js +2 -0
- prefect/server/ui-v2/assets/data-table-CPkppyg6.js.map +1 -0
- prefect/server/ui-v2/assets/delete-confirmation-dialog-CwDK_2QS.js +2 -0
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-DHkm2p8m.js.map → delete-confirmation-dialog-CwDK_2QS.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-action-header-D5GOooPm.js → deployment-action-header-Vp9YsCJO.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-action-header-D5GOooPm.js.map → deployment-action-header-Vp9YsCJO.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-form-wfg6HeAJ.js → deployment-form-CJcg_6DJ.js} +3 -3
- prefect/server/ui-v2/assets/{deployment-form-wfg6HeAJ.js.map → deployment-form-CJcg_6DJ.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-links-6iugOgDh.js → deployment-links-CIkJIuHh.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-links-6iugOgDh.js.map → deployment-links-CIkJIuHh.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment._id-C6XrGMp_.js +2 -0
- prefect/server/ui-v2/assets/{deployment._id-Ci9zge5n.js.map → deployment._id-C6XrGMp_.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-whsGcHdu.js → deployment._id-CWgTYmTG.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-whsGcHdu.js.map → deployment._id-CWgTYmTG.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.duplicate-Bg0s0ZJn.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.duplicate-D9ZWkh8H.js.map → deployment_._id.duplicate-Bg0s0ZJn.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.edit-CnoB0UeG.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.edit-CS7sObzC.js.map → deployment_._id.edit-CnoB0UeG.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment_._id.run-g7SZuDFi.js → deployment_._id.run-BqPK6rTB.js} +2 -2
- prefect/server/ui-v2/assets/{deployment_._id.run-g7SZuDFi.js.map → deployment_._id.run-BqPK6rTB.js.map} +1 -1
- prefect/server/ui-v2/assets/{dropdown-menu-0atiOSFo.js → dropdown-menu-D7Gwbd15.js} +2 -2
- prefect/server/ui-v2/assets/{dropdown-menu-0atiOSFo.js.map → dropdown-menu-D7Gwbd15.js.map} +1 -1
- prefect/server/ui-v2/assets/{event-resource-display-DHiAb1Up.js → event-resource-display-CDRgVKd4.js} +2 -2
- prefect/server/ui-v2/assets/{event-resource-display-DHiAb1Up.js.map → event-resource-display-CDRgVKd4.js.map} +1 -1
- prefect/server/ui-v2/assets/event._eventDate._eventId-C73GMDkK.js +2 -0
- prefect/server/ui-v2/assets/{event._eventDate._eventId-D7Twzb22.js.map → event._eventDate._eventId-C73GMDkK.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run-graph-BhzuSJLm.js → flow-run-graph-ckiE3mA9.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run-graph-BhzuSJLm.js.map → flow-run-graph-ckiE3mA9.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run._id-CqpH6bvx.js → flow-run._id-BukrNCAq.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run._id-CqpH6bvx.js.map → flow-run._id-BukrNCAq.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run._id-lIIQBD7H.js → flow-run._id-CtI5VZ2M.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run._id-lIIQBD7H.js.map → flow-run._id-CtI5VZ2M.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run._id-s1UJuakA.js +4 -0
- prefect/server/ui-v2/assets/{flow-run._id-RLy2kBh0.js.map → flow-run._id-s1UJuakA.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-runs-pagination-BATUweRV.js → flow-runs-pagination-SLbYtvaR.js} +2 -2
- prefect/server/ui-v2/assets/{flow-runs-pagination-BATUweRV.js.map → flow-runs-pagination-SLbYtvaR.js.map} +1 -1
- prefect/server/ui-v2/assets/flow._id-CZ5P0v4N.js +2 -0
- prefect/server/ui-v2/assets/{flow._id-BdQGWPKP.js.map → flow._id-CZ5P0v4N.js.map} +1 -1
- prefect/server/ui-v2/assets/{form-DLrbC7rV.js → form-mws4law8.js} +2 -2
- prefect/server/ui-v2/assets/{form-DLrbC7rV.js.map → form-mws4law8.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-BTAWyeXv.js → header-Bes1LmY7.js} +2 -2
- prefect/server/ui-v2/assets/{header-BTAWyeXv.js.map → header-Bes1LmY7.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-ChFAx5uR.js → header-Bj_zBR-a.js} +2 -2
- prefect/server/ui-v2/assets/{header-ChFAx5uR.js.map → header-Bj_zBR-a.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-CyQqOj1w.js → header-CPxTHSvz.js} +2 -2
- prefect/server/ui-v2/assets/{header-CyQqOj1w.js.map → header-CPxTHSvz.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-m48E4KcG.js → index-B8vo2Lrg.js} +5 -5
- prefect/server/ui-v2/assets/{index-m48E4KcG.js.map → index-B8vo2Lrg.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-D5RT-SAp.js → index-BBeh-3Nh.js} +2 -2
- prefect/server/ui-v2/assets/{index-D5RT-SAp.js.map → index-BBeh-3Nh.js.map} +1 -1
- prefect/server/ui-v2/assets/index-BLnEvHia.js +2 -0
- prefect/server/ui-v2/assets/{index-7i4X9TeK.js.map → index-BLnEvHia.js.map} +1 -1
- prefect/server/ui-v2/assets/index-BpKoubXu.js +2 -0
- prefect/server/ui-v2/assets/index-BpKoubXu.js.map +1 -0
- prefect/server/ui-v2/assets/index-By6YGqR3.js +2 -0
- prefect/server/ui-v2/assets/index-By6YGqR3.js.map +1 -0
- prefect/server/ui-v2/assets/index-CEi3BlKI.js +2 -0
- prefect/server/ui-v2/assets/index-CEi3BlKI.js.map +1 -0
- prefect/server/ui-v2/assets/{index-BaWDC4da.js → index-CS-zxv7Z.js} +2 -2
- prefect/server/ui-v2/assets/{index-BaWDC4da.js.map → index-CS-zxv7Z.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-kP_I5Qfd.js → index-CToHKh4q.js} +2 -2
- prefect/server/ui-v2/assets/{index-kP_I5Qfd.js.map → index-CToHKh4q.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CKGj5lSu.js → index-CUVvZndW.js} +2 -2
- prefect/server/ui-v2/assets/{index-CKGj5lSu.js.map → index-CUVvZndW.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CxUfZRkN.js → index-CYVn-I3i.js} +2 -2
- prefect/server/ui-v2/assets/{index-CxUfZRkN.js.map → index-CYVn-I3i.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CnlN-VC_.js → index-Cun0JN4t.js} +2 -2
- prefect/server/ui-v2/assets/{index-CnlN-VC_.js.map → index-Cun0JN4t.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BwCLKpNb.js → index-D6ynV6U7.js} +2 -2
- prefect/server/ui-v2/assets/{index-BwCLKpNb.js.map → index-D6ynV6U7.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CHf6xi9j.js → index-DdNUJLRW.js} +2 -2
- prefect/server/ui-v2/assets/{index-CHf6xi9j.js.map → index-DdNUJLRW.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CQnWiUE5.js → index-DlHOXQhu.js} +2 -2
- prefect/server/ui-v2/assets/{index-CQnWiUE5.js.map → index-DlHOXQhu.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-Eqdr6Ff7.js → index-DyVw8YE8.js} +2 -2
- prefect/server/ui-v2/assets/{index-Eqdr6Ff7.js.map → index-DyVw8YE8.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-Btb_-PDp.js → index-DzRz7D2P.js} +2 -2
- prefect/server/ui-v2/assets/{index-Btb_-PDp.js.map → index-DzRz7D2P.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DQGif3jm.js → index-DzUcVNZg.js} +2 -2
- prefect/server/ui-v2/assets/{index-DQGif3jm.js.map → index-DzUcVNZg.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DNh9ZBy4.js → index-IBvMMs6S.js} +2 -2
- prefect/server/ui-v2/assets/{index-DNh9ZBy4.js.map → index-IBvMMs6S.js.map} +1 -1
- prefect/server/ui-v2/assets/index-_kpA__te.js +2 -0
- prefect/server/ui-v2/assets/{index-CiSFHkhI.js.map → index-_kpA__te.js.map} +1 -1
- prefect/server/ui-v2/assets/index-m9O-nIOl.css +1 -0
- prefect/server/ui-v2/assets/{index-lyQav_XM.js → index-wOvyf10b.js} +2 -2
- prefect/server/ui-v2/assets/{index-lyQav_XM.js.map → index-wOvyf10b.js.map} +1 -1
- prefect/server/ui-v2/assets/{json-input-Ba-BeBcw.js → json-input-Ce-HlRqa.js} +2 -2
- prefect/server/ui-v2/assets/{json-input-Ba-BeBcw.js.map → json-input-Ce-HlRqa.js.map} +1 -1
- prefect/server/ui-v2/assets/{key-value-DkSKn6jE.js → key-value-XHEZOtZX.js} +2 -2
- prefect/server/ui-v2/assets/{key-value-DkSKn6jE.js.map → key-value-XHEZOtZX.js.map} +1 -1
- prefect/server/ui-v2/assets/{key._key-Cjx57ymg.js → key._key-LpsMf3zD.js} +2 -2
- prefect/server/ui-v2/assets/{key._key-Cjx57ymg.js.map → key._key-LpsMf3zD.js.map} +1 -1
- prefect/server/ui-v2/assets/{lazy-markdown-Du2Xu3Yp.js → lazy-markdown-1Hz0xzca.js} +2 -2
- prefect/server/ui-v2/assets/{lazy-markdown-Du2Xu3Yp.js.map → lazy-markdown-1Hz0xzca.js.map} +1 -1
- prefect/server/ui-v2/assets/{login-DxMF9Jvj.js → login-D5uepl9L.js} +2 -2
- prefect/server/ui-v2/assets/{login-DxMF9Jvj.js.map → login-D5uepl9L.js.map} +1 -1
- prefect/server/ui-v2/assets/{markdown-input-DPi8zyRr.js → markdown-input-CG6M9zD0.js} +2 -2
- prefect/server/ui-v2/assets/{markdown-input-DPi8zyRr.js.map → markdown-input-CG6M9zD0.js.map} +1 -1
- prefect/server/ui-v2/assets/python-example-snippet-DRHcUlCX.js +3 -0
- prefect/server/ui-v2/assets/{python-example-snippet-DfCFYPN_.js.map → python-example-snippet-DRHcUlCX.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-input-mr6GD840.js → python-input-BsUS8fw1.js} +2 -2
- prefect/server/ui-v2/assets/{python-input-mr6GD840.js.map → python-input-BsUS8fw1.js.map} +1 -1
- prefect/server/ui-v2/assets/{radio-group-Co3cN0Kv.js → radio-group-BUsmwdrt.js} +2 -2
- prefect/server/ui-v2/assets/{radio-group-Co3cN0Kv.js.map → radio-group-BUsmwdrt.js.map} +1 -1
- prefect/server/ui-v2/assets/{route-error-state-DnBaNT2T.js → route-error-state-BFBpiIhD.js} +2 -2
- prefect/server/ui-v2/assets/{route-error-state-DnBaNT2T.js.map → route-error-state-BFBpiIhD.js.map} +1 -1
- prefect/server/ui-v2/assets/{schema-form-CWDHSME9.js → schema-form-BwTmkvJk.js} +2 -2
- prefect/server/ui-v2/assets/schema-form-BwTmkvJk.js.map +1 -0
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-BSWlW_aQ.js → schema-form-input-string-format-datetime-nrb3g-JJ.js} +4 -4
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-BSWlW_aQ.js.map → schema-form-input-string-format-datetime-nrb3g-JJ.js.map} +1 -1
- prefect/server/ui-v2/assets/{settings-DU5y6tJE.js → settings-CUBtK5aW.js} +2 -2
- prefect/server/ui-v2/assets/{settings-DU5y6tJE.js.map → settings-CUBtK5aW.js.map} +1 -1
- prefect/server/ui-v2/assets/{sort-filter-DpuWNkQo.js → sort-filter-Cv8zAXMp.js} +2 -2
- prefect/server/ui-v2/assets/{sort-filter-DpuWNkQo.js.map → sort-filter-Cv8zAXMp.js.map} +1 -1
- prefect/server/ui-v2/assets/{table-bBL6C0ZK.js → table-BBNGfPra.js} +2 -2
- prefect/server/ui-v2/assets/{table-bBL6C0ZK.js.map → table-BBNGfPra.js.map} +1 -1
- prefect/server/ui-v2/assets/{tags-input-BLPMVWpZ.js → tags-input-DHrnkwjQ.js} +2 -2
- prefect/server/ui-v2/assets/{tags-input-BLPMVWpZ.js.map → tags-input-DHrnkwjQ.js.map} +1 -1
- prefect/server/ui-v2/assets/task-run-concurrency-limits-reset-dialog-Z8-yFZ2_.js +2 -0
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-S69sih55.js.map → task-run-concurrency-limits-reset-dialog-Z8-yFZ2_.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-Dl3Azs8t.js → task-run._id-BY58gqs2.js} +2 -2
- prefect/server/ui-v2/assets/{task-run._id-Dl3Azs8t.js.map → task-run._id-BY58gqs2.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-B_tIDm4K.js → task-run._id-u73Jxfqw.js} +3 -3
- prefect/server/ui-v2/assets/{task-run._id-B_tIDm4K.js.map → task-run._id-u73Jxfqw.js.map} +1 -1
- prefect/server/ui-v2/assets/task-runs-pagination-DUy3147A.js +2 -0
- prefect/server/ui-v2/assets/{task-runs-pagination-VdR-LO4r.js.map → task-runs-pagination-DUy3147A.js.map} +1 -1
- prefect/server/ui-v2/assets/{textarea-B3_TtPRi.js → textarea-DUhh6-kq.js} +2 -2
- prefect/server/ui-v2/assets/{textarea-B3_TtPRi.js.map → textarea-DUhh6-kq.js.map} +1 -1
- prefect/server/ui-v2/assets/timezone-select-D4Q6VBtD.js +2 -0
- prefect/server/ui-v2/assets/{timezone-select-BuPYznge.js.map → timezone-select-D4Q6VBtD.js.map} +1 -1
- prefect/server/ui-v2/assets/{toggle-group-Cn07UIim.js → toggle-group-7WUJn2Tx.js} +2 -2
- prefect/server/ui-v2/assets/{toggle-group-Cn07UIim.js.map → toggle-group-7WUJn2Tx.js.map} +1 -1
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-D4AD5Ndf.js +2 -0
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DpdsLH4t.js.map → use-delete-automation-confirmation-dialog-D4AD5Ndf.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-Cq5nGhzr.js → use-delete-block-document-confirmation-dialog-DnwWEGUY.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-Cq5nGhzr.js.map → use-delete-block-document-confirmation-dialog-DnwWEGUY.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DmQSWBTu.js → use-flow-runs-selected-rows-C-tehPRB.js} +2 -2
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DmQSWBTu.js.map → use-flow-runs-selected-rows-C-tehPRB.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DTwcWiqW.js → use-get-artifacts-flow-task-runs-DRWRrmrb.js} +2 -2
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DTwcWiqW.js.map → use-get-artifacts-flow-task-runs-DRWRrmrb.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-quick-run-CPempwLh.js → use-quick-run-B4Xj-YQQ.js} +2 -2
- prefect/server/ui-v2/assets/{use-quick-run-CPempwLh.js.map → use-quick-run-B4Xj-YQQ.js.map} +1 -1
- prefect/server/ui-v2/assets/use-state-favicon-au2TZdMV.js +2 -0
- prefect/server/ui-v2/assets/{use-state-favicon-M09DmrNy.js.map → use-state-favicon-au2TZdMV.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-stepper-CDucnvzp.js → use-stepper-DyIb3vlq.js} +2 -2
- prefect/server/ui-v2/assets/{use-stepper-CDucnvzp.js.map → use-stepper-DyIb3vlq.js.map} +1 -1
- prefect/server/ui-v2/assets/{utilities-BRCNRcQl.js → utilities-D9Y2wo66.js} +2 -2
- prefect/server/ui-v2/assets/{utilities-BRCNRcQl.js.map → utilities-D9Y2wo66.js.map} +1 -1
- prefect/server/ui-v2/assets/vendor-recharts-BvvJP9Po.js +34 -0
- prefect/server/ui-v2/assets/vendor-recharts-BvvJP9Po.js.map +1 -0
- prefect/server/ui-v2/assets/{work-pool-filter-C2tpSS-w.js → work-pool-filter-CSOATj2D.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-filter-C2tpSS-w.js.map → work-pool-filter-CSOATj2D.js.map} +1 -1
- prefect/server/ui-v2/assets/work-pool-queue-toggle-Dh7B1zMo.js +2 -0
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-BQ9b-Wxy.js.map → work-pool-queue-toggle-Dh7B1zMo.js.map} +1 -1
- prefect/server/ui-v2/assets/work-pool._workPoolName-B_NFWXKS.js +2 -0
- prefect/server/ui-v2/assets/{work-pool._workPoolName-C_LiL3SE.js.map → work-pool._workPoolName-B_NFWXKS.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-DBHlrVVx.js → work-pool_._workPoolName.edit-Cyzn8g-S.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-DBHlrVVx.js.map → work-pool_._workPoolName.edit-Cyzn8g-S.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-DkITxJOP.js → work-pool_._workPoolName.queue._workQueueName-DQzqQWPT.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-DkITxJOP.js.map → work-pool_._workPoolName.queue._workQueueName-DQzqQWPT.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-queue-icon-text-D4BWBVDN.js → work-queue-icon-text-BOpcJ8YU.js} +2 -2
- prefect/server/ui-v2/assets/{work-queue-icon-text-D4BWBVDN.js.map → work-queue-icon-text-BOpcJ8YU.js.map} +1 -1
- prefect/server/ui-v2/index.html +3 -3
- {prefect-3.6.15.dist-info → prefect-3.6.16.dev3.dist-info}/METADATA +2 -1
- {prefect-3.6.15.dist-info → prefect-3.6.16.dev3.dist-info}/RECORD +223 -211
- prefect/server/ui-v2/assets/artifact._id-BFdf1WUA.js +0 -2
- prefect/server/ui-v2/assets/artifact._id-BFdf1WUA.js.map +0 -1
- prefect/server/ui-v2/assets/automation._id-Dn7jABys.js +0 -2
- prefect/server/ui-v2/assets/block-type-logo-Cbpfxded.js +0 -2
- prefect/server/ui-v2/assets/block-type-logo-Cbpfxded.js.map +0 -1
- prefect/server/ui-v2/assets/catalog_._slug-Bl2J2oI3.js +0 -2
- prefect/server/ui-v2/assets/create-D--LHaji.js +0 -2
- prefect/server/ui-v2/assets/data-table-rlbkLcrY.js +0 -2
- prefect/server/ui-v2/assets/data-table-rlbkLcrY.js.map +0 -1
- prefect/server/ui-v2/assets/delete-confirmation-dialog-DHkm2p8m.js +0 -2
- prefect/server/ui-v2/assets/deployment._id-Ci9zge5n.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.duplicate-D9ZWkh8H.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.edit-CS7sObzC.js +0 -2
- prefect/server/ui-v2/assets/event._eventDate._eventId-D7Twzb22.js +0 -2
- prefect/server/ui-v2/assets/flow-run._id-RLy2kBh0.js +0 -4
- prefect/server/ui-v2/assets/flow._id-BdQGWPKP.js +0 -2
- prefect/server/ui-v2/assets/index-7i4X9TeK.js +0 -2
- prefect/server/ui-v2/assets/index-BkiGTHwU.js +0 -2
- prefect/server/ui-v2/assets/index-BkiGTHwU.js.map +0 -1
- prefect/server/ui-v2/assets/index-COouj_0-.css +0 -1
- prefect/server/ui-v2/assets/index-CiSFHkhI.js +0 -2
- prefect/server/ui-v2/assets/index-DATPYZfT.js +0 -2
- prefect/server/ui-v2/assets/index-DATPYZfT.js.map +0 -1
- prefect/server/ui-v2/assets/index-VH4TnZ4e.js +0 -2
- prefect/server/ui-v2/assets/index-VH4TnZ4e.js.map +0 -1
- prefect/server/ui-v2/assets/python-example-snippet-DfCFYPN_.js +0 -3
- prefect/server/ui-v2/assets/schema-form-CWDHSME9.js.map +0 -1
- prefect/server/ui-v2/assets/task-run-concurrency-limits-reset-dialog-S69sih55.js +0 -2
- prefect/server/ui-v2/assets/task-runs-pagination-VdR-LO4r.js +0 -2
- prefect/server/ui-v2/assets/timezone-select-BuPYznge.js +0 -2
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-DpdsLH4t.js +0 -2
- prefect/server/ui-v2/assets/use-state-favicon-M09DmrNy.js +0 -2
- prefect/server/ui-v2/assets/vendor-recharts-BAN776s_.js +0 -34
- prefect/server/ui-v2/assets/vendor-recharts-BAN776s_.js.map +0 -1
- prefect/server/ui-v2/assets/work-pool-queue-toggle-BQ9b-Wxy.js +0 -2
- prefect/server/ui-v2/assets/work-pool._workPoolName-C_LiL3SE.js +0 -2
- {prefect-3.6.15.dist-info → prefect-3.6.16.dev3.dist-info}/WHEEL +0 -0
- {prefect-3.6.15.dist-info → prefect-3.6.16.dev3.dist-info}/entry_points.txt +0 -0
- {prefect-3.6.15.dist-info → prefect-3.6.16.dev3.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{dD as C,C as B,o as S,i as m,p as l,q as p,y as d,B as P,g as E,h as i,bw as u,bF as x,bH as J,dE as L,c1 as W}from"./index-B8vo2Lrg.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 H}from"./zod-Cuos7J7w.js";import{F as O,b,c as j,d as h,e as y,a as k}from"./form-mws4law8.js";import{T as Q}from"./textarea-DUhh6-kq.js";import{B as V}from"./base-job-template-form-section-oZD6U-RW.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./vendor-recharts-BvvJP9Po.js";import"./vendor-date-wwuDAncJ.js";import"./schema-form-input-string-format-datetime-nrb3g-JJ.js";import"./use-debounce-callback-CSs1BjLI.js";import"./toggle-group-7WUJn2Tx.js";import"./timezone-select-D4Q6VBtD.js";import"./dropdown-menu-D7Gwbd15.js";import"./schema-form-BwTmkvJk.js";import"./block-type-logo-CyAWq7mC.js";const q=_({description:U().nullable().optional(),concurrencyLimit:I().min(0).nullable().optional(),baseJobTemplate:R($()).optional()}),G=({workPool:s})=>{const a=g(),{updateWorkPool:v,isPending:t}=C(),r=D({resolver:H(q),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(O,{...r,children:e.jsxs("form",{onSubmit:o=>{r.handleSubmit(f)(o)},className:"space-y-6",children:[e.jsx(B,{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(b,{control:r.control,name:"description",render:({field:o})=>e.jsxs(j,{children:[e.jsx(h,{children:"Description (Optional)"}),e.jsx(y,{children:e.jsx(Q,{...o,value:o.value??"",rows:7,placeholder:"Enter a description for your work pool"})}),e.jsx(k,{})]})}),e.jsx(b,{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(V,{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"})]})]})})},M=({workPool:s})=>e.jsx("header",{className:"mb-6",children:e.jsx(P,{children:e.jsxs(E,{children:[e.jsx(i,{children:e.jsx(u,{to:"/work-pools",className:"text-xl font-semibold",children:"Work Pools"})}),e.jsx(x,{}),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(x,{}),e.jsx(i,{className:"text-xl font-semibold",children:e.jsx(J,{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(M,{workPool:a}),e.jsx(G,{workPool:a})]})}export{de as component};
|
|
2
|
+
//# sourceMappingURL=work-pool_._workPoolName.edit-Cyzn8g-S.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-pool_._workPoolName.edit-DBHlrVVx.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-Cyzn8g-S.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 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-m48E4KcG.js";import{W as oe,a as re,b as ie}from"./work-pool-queue-toggle-BQ9b-Wxy.js";import{S as ce,a as E,F as U}from"./flow-runs-pagination-BATUweRV.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-0atiOSFo.js";import"./zod-Cuos7J7w.js";import"./form-DLrbC7rV.js";import"./textarea-B3_TtPRi.js";import"./delete-confirmation-dialog-DHkm2p8m.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-
|
|
1
|
+
import{j as e,r as t,t as g,n as H,s as z}from"./vendor-tanstack-BcZfOOfy.js";import{a_ as y,bO as K,bP as T,B as X,g as G,h as S,bw as Q,bF as D,bH as Y,bQ as $,aI as M,aG as W,af as L,V as J,dV as k,dW as Z,dX as q,c3 as ee,c4 as se,c5 as ae,aA as le,aB as ne,aC as te,aD as C,b9 as o}from"./index-B8vo2Lrg.js";import{W as oe,a as re,b as ie}from"./work-pool-queue-toggle-Dh7B1zMo.js";import{S as ce,a as V,F as A}from"./flow-runs-pagination-SLbYtvaR.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-BvvJP9Po.js";import"./vendor-date-wwuDAncJ.js";import"./dropdown-menu-D7Gwbd15.js";import"./zod-Cuos7J7w.js";import"./form-mws4law8.js";import"./textarea-DUhh6-kq.js";import"./delete-confirmation-dialog-CwDK_2QS.js";const b=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),E=({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(E,{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(E,{children:i}),e.jsx(n,{})]})},i))})})}function P({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(K,{}),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(G,{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(Y,{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=$(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(M(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})),F=t.useMemo(()=>{if(!x?.results)return[];const l=new Map(_?.map(c=>[c.id,c])??[]);return x.results.map(c=>{const R=l.get(c.flow_id);return R?{...c,flow:R}: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(V,{flowRuns:F,onClearFilters:F.length===0?O:void 0}),x.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(A,{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(M(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(V,{flowRuns:v}),r.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(A,{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 Me(){const{workPoolName:s,workQueueName:a}=k.useParams(),{queueTab:i}=k.useSearch(),n=k.useNavigate(),u=H(),{data:m}=z(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(P,{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(P,{workPoolName:s,queue:m,alternate:!0})})})]})]})})}export{Me as component};
|
|
2
|
+
//# sourceMappingURL=work-pool_._workPoolName.queue._workQueueName-DQzqQWPT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-pool_._workPoolName.queue._workQueueName-DkITxJOP.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-DQzqQWPT.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-D4BWBVDN.js → work-queue-icon-text-BOpcJ8YU.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{
|
|
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{b9 as m,as as d,I as c,dg as p}from"./index-B8vo2Lrg.js";import{a as f}from"./index-CUVvZndW.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]})]})},g=({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]})]}),I=({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,I as W,g as a};
|
|
2
|
+
//# sourceMappingURL=work-queue-icon-text-BOpcJ8YU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-queue-icon-text-
|
|
1
|
+
{"version":3,"file":"work-queue-icon-text-BOpcJ8YU.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-B8vo2Lrg.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
|
-
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-recharts-
|
|
28
|
+
<link rel="modulepreload" crossorigin href="/PREFECT_UI_SERVE_BASE_REPLACE_PLACEHOLDER/assets/vendor-recharts-BvvJP9Po.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-m9O-nIOl.css">
|
|
32
32
|
</head>
|
|
33
33
|
<body>
|
|
34
34
|
<div id="root"></div>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: prefect
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.16.dev3
|
|
4
4
|
Summary: Workflow orchestration and management.
|
|
5
5
|
Project-URL: Changelog, https://github.com/PrefectHQ/prefect/releases
|
|
6
6
|
Project-URL: Documentation, https://docs.prefect.io
|
|
@@ -23,6 +23,7 @@ Classifier: Topic :: Software Development :: Libraries
|
|
|
23
23
|
Requires-Python: <3.15,>=3.10
|
|
24
24
|
Requires-Dist: aiosqlite<1.0.0,>=0.17.0
|
|
25
25
|
Requires-Dist: alembic<2.0.0,>=1.7.5
|
|
26
|
+
Requires-Dist: amplitude-analytics<2.0.0,>=1.2.1
|
|
26
27
|
Requires-Dist: anyio<5.0.0,>=4.4.0
|
|
27
28
|
Requires-Dist: apprise<2.0.0,>=1.1.0
|
|
28
29
|
Requires-Dist: asgi-lifespan<3.0,>=1.0
|