prefect 3.6.12__py3-none-any.whl → 3.6.13.dev2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- prefect/_build_info.py +3 -3
- prefect/_internal/urls.py +29 -0
- prefect/_states.py +4 -1
- prefect/client/orchestration/_concurrency_limits/client.py +16 -16
- prefect/client/subscriptions.py +1 -1
- prefect/events/clients.py +52 -13
- prefect/runner/storage.py +3 -23
- prefect/server/ui-v2/assets/{artifact-card-Ds2tntMW.js → artifact-card-C8JEQRHl.js} +2 -2
- prefect/server/ui-v2/assets/{artifact-card-Ds2tntMW.js.map → artifact-card-C8JEQRHl.js.map} +1 -1
- prefect/server/ui-v2/assets/{artifact._id-erPNL0a8.js → artifact._id-67V8kTg9.js} +2 -2
- prefect/server/ui-v2/assets/{artifact._id-erPNL0a8.js.map → artifact._id-67V8kTg9.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation-wizard-Bx9AQxRV.js → automation-wizard-DuxZ47Nn.js} +2 -2
- prefect/server/ui-v2/assets/{automation-wizard-Bx9AQxRV.js.map → automation-wizard-DuxZ47Nn.js.map} +1 -1
- prefect/server/ui-v2/assets/automation._id-D8S8r4Ji.js +2 -0
- prefect/server/ui-v2/assets/{automation._id-IHh5QJwE.js.map → automation._id-D8S8r4Ji.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation_._id.edit-Ds8vO0c5.js → automation_._id.edit-C1fOM0Hx.js} +2 -2
- prefect/server/ui-v2/assets/{automation_._id.edit-Ds8vO0c5.js.map → automation_._id.edit-C1fOM0Hx.js.map} +1 -1
- prefect/server/ui-v2/assets/{automations-header-C6aUe5Tw.js → automations-header-DrijTNGi.js} +2 -2
- prefect/server/ui-v2/assets/{automations-header-C6aUe5Tw.js.map → automations-header-DrijTNGi.js.map} +1 -1
- prefect/server/ui-v2/assets/{base-job-template-form-section-a-9TFMcW.js → base-job-template-form-section-BDkqOkpe.js} +2 -2
- prefect/server/ui-v2/assets/{base-job-template-form-section-a-9TFMcW.js.map → base-job-template-form-section-BDkqOkpe.js.map} +1 -1
- prefect/server/ui-v2/assets/{block-type-details-eq3Wg2ht.js → block-type-details-CrFHWH5D.js} +2 -2
- prefect/server/ui-v2/assets/{block-type-details-eq3Wg2ht.js.map → block-type-details-CrFHWH5D.js.map} +1 -1
- prefect/server/ui-v2/assets/block-type-logo-WQNm0PzP.js +2 -0
- prefect/server/ui-v2/assets/{block-type-logo-B31LJm5H.js.map → block-type-logo-WQNm0PzP.js.map} +1 -1
- prefect/server/ui-v2/assets/{block._id-OVdz3htC.js → block._id-C3gN1Ae8.js} +2 -2
- prefect/server/ui-v2/assets/{block._id-OVdz3htC.js.map → block._id-C3gN1Ae8.js.map} +1 -1
- prefect/server/ui-v2/assets/block_._id.edit-DzPuSvat.js +2 -0
- prefect/server/ui-v2/assets/{block_._id.edit-CIhIBJrm.js.map → block_._id.edit-DzPuSvat.js.map} +1 -1
- prefect/server/ui-v2/assets/catalog-T-7MqsyE.js +2 -0
- prefect/server/ui-v2/assets/{catalog-CfniU0UV.js.map → catalog-T-7MqsyE.js.map} +1 -1
- prefect/server/ui-v2/assets/catalog_._slug-DMOI61fc.js +2 -0
- prefect/server/ui-v2/assets/{catalog_._slug-C9p86T4s.js.map → catalog_._slug-DMOI61fc.js.map} +1 -1
- prefect/server/ui-v2/assets/catalog_._slug_.create-l9bGUPi-.js +2 -0
- prefect/server/ui-v2/assets/{catalog_._slug_.create-BhSunL__.js.map → catalog_._slug_.create-l9bGUPi-.js.map} +1 -1
- prefect/server/ui-v2/assets/{collapsible-DBD7wjpi.js → collapsible-DM-Ze5-Y.js} +2 -2
- prefect/server/ui-v2/assets/{collapsible-DBD7wjpi.js.map → collapsible-DM-Ze5-Y.js.map} +1 -1
- prefect/server/ui-v2/assets/{concurrency-limit._id-C-XWq7Tf.js → concurrency-limit._id-BHEt9viF.js} +2 -2
- prefect/server/ui-v2/assets/{concurrency-limit._id-C-XWq7Tf.js.map → concurrency-limit._id-BHEt9viF.js.map} +1 -1
- prefect/server/ui-v2/assets/{create-Bj2t5YQq.js → create-BMxUOyN5.js} +2 -2
- prefect/server/ui-v2/assets/{create-Bj2t5YQq.js.map → create-BMxUOyN5.js.map} +1 -1
- prefect/server/ui-v2/assets/{create-noFojqGL.js → create-Cq-EAHVk.js} +2 -2
- prefect/server/ui-v2/assets/{create-noFojqGL.js.map → create-Cq-EAHVk.js.map} +1 -1
- prefect/server/ui-v2/assets/{data-table-BjFlVIyC.js → data-table-Bw8TZx9D.js} +2 -2
- prefect/server/ui-v2/assets/{data-table-BjFlVIyC.js.map → data-table-Bw8TZx9D.js.map} +1 -1
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-COdZmNfa.js → delete-confirmation-dialog-CTdWZlGM.js} +2 -2
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-COdZmNfa.js.map → delete-confirmation-dialog-CTdWZlGM.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-action-header-C6v2kZ6V.js → deployment-action-header-BObYqmI_.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-action-header-C6v2kZ6V.js.map → deployment-action-header-BObYqmI_.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-form-D9d5sZM2.js → deployment-form-CntyhRrK.js} +3 -3
- prefect/server/ui-v2/assets/{deployment-form-D9d5sZM2.js.map → deployment-form-CntyhRrK.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-links-Dy-M1Que.js → deployment-links-DBUSCaxB.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-links-Dy-M1Que.js.map → deployment-links-DBUSCaxB.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-CZlY9261.js → deployment._id-BXanVFA8.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-CZlY9261.js.map → deployment._id-BXanVFA8.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment._id-Q5cvHMX9.js +2 -0
- prefect/server/ui-v2/assets/{deployment._id-DVmqclRz.js.map → deployment._id-Q5cvHMX9.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.duplicate-DB-4hHHc.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.duplicate-DVMjpk5m.js.map → deployment_._id.duplicate-DB-4hHHc.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.edit-CWf1RIGy.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.edit-Ck_P6KDn.js.map → deployment_._id.edit-CWf1RIGy.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment_._id.run-Cht7AHDG.js → deployment_._id.run-CoHGXFoM.js} +2 -2
- prefect/server/ui-v2/assets/{deployment_._id.run-Cht7AHDG.js.map → deployment_._id.run-CoHGXFoM.js.map} +1 -1
- prefect/server/ui-v2/assets/{dropdown-menu-xZ_3w9OP.js → dropdown-menu-CT-s-V7d.js} +2 -2
- prefect/server/ui-v2/assets/{dropdown-menu-xZ_3w9OP.js.map → dropdown-menu-CT-s-V7d.js.map} +1 -1
- prefect/server/ui-v2/assets/{event._eventDate._eventId-CpexuXd6.js → event._eventDate._eventId-BITo_GYL.js} +2 -2
- prefect/server/ui-v2/assets/{event._eventDate._eventId-CpexuXd6.js.map → event._eventDate._eventId-BITo_GYL.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run-graph-DxIl6fzW.js +2 -0
- prefect/server/ui-v2/assets/flow-run-graph-DxIl6fzW.js.map +1 -0
- prefect/server/ui-v2/assets/{flow-run._id-ZBlKBwPO.js → flow-run._id-Bbm9OpDi.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run._id-ZBlKBwPO.js.map → flow-run._id-Bbm9OpDi.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run._id-BtSgRDtA.js +2 -0
- prefect/server/ui-v2/assets/{flow-run._id-OL0YhyLW.js.map → flow-run._id-BtSgRDtA.js.map} +1 -1
- prefect/server/ui-v2/assets/flow-run._id-DJuMECRh.js +4 -0
- prefect/server/ui-v2/assets/flow-run._id-DJuMECRh.js.map +1 -0
- prefect/server/ui-v2/assets/flow-runs-pagination-LrU9Aio8.js +2 -0
- prefect/server/ui-v2/assets/flow-runs-pagination-LrU9Aio8.js.map +1 -0
- prefect/server/ui-v2/assets/flow._id-BJBRokk4.js +2 -0
- prefect/server/ui-v2/assets/{flow._id-DhrCicwR.js.map → flow._id-BJBRokk4.js.map} +1 -1
- prefect/server/ui-v2/assets/{form-BTub_PhK.js → form-CVSlEnl8.js} +2 -2
- prefect/server/ui-v2/assets/{form-BTub_PhK.js.map → form-CVSlEnl8.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-Dp9qi8fq.js → header-4plZZheZ.js} +2 -2
- prefect/server/ui-v2/assets/{header-Dp9qi8fq.js.map → header-4plZZheZ.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-B75eb688.js → header-9rXZ4r39.js} +2 -2
- prefect/server/ui-v2/assets/{header-B75eb688.js.map → header-9rXZ4r39.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-6wmrKLU3.js → header-D3uM8_xM.js} +2 -2
- prefect/server/ui-v2/assets/{header-6wmrKLU3.js.map → header-D3uM8_xM.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BA7ACCoL.js → index-6OsEYhIi.js} +2 -2
- prefect/server/ui-v2/assets/{index-BA7ACCoL.js.map → index-6OsEYhIi.js.map} +1 -1
- prefect/server/ui-v2/assets/index-B7xsJ-QH.js +2 -0
- prefect/server/ui-v2/assets/{index-CT_nG86y.js.map → index-B7xsJ-QH.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CGWoVV2s.js → index-BeoNC2tJ.js} +2 -2
- prefect/server/ui-v2/assets/{index-CGWoVV2s.js.map → index-BeoNC2tJ.js.map} +1 -1
- prefect/server/ui-v2/assets/index-BfJLUM7N.js +2 -0
- prefect/server/ui-v2/assets/index-BfJLUM7N.js.map +1 -0
- prefect/server/ui-v2/assets/{index-DzMGV8GV.js → index-Bj0OOguP.js} +2 -2
- prefect/server/ui-v2/assets/{index-DzMGV8GV.js.map → index-Bj0OOguP.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-zpb5iSCL.js → index-BlpD74iH.js} +2 -2
- prefect/server/ui-v2/assets/{index-zpb5iSCL.js.map → index-BlpD74iH.js.map} +1 -1
- prefect/server/ui-v2/assets/index-BvSl3DKP.js +17 -0
- prefect/server/ui-v2/assets/index-BvSl3DKP.js.map +1 -0
- prefect/server/ui-v2/assets/index-CDwJvjUM.js +2 -0
- prefect/server/ui-v2/assets/{index-Cs8eFQKw.js.map → index-CDwJvjUM.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-UN2Tx4jH.js → index-CDyLkbVG.js} +2 -2
- prefect/server/ui-v2/assets/{index-UN2Tx4jH.js.map → index-CDyLkbVG.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-D08xgmV0.js → index-ChIrfjIW.js} +2 -2
- prefect/server/ui-v2/assets/{index-D08xgmV0.js.map → index-ChIrfjIW.js.map} +1 -1
- prefect/server/ui-v2/assets/index-CzCSgCK-.js +2 -0
- prefect/server/ui-v2/assets/{index-qPlIYf3i.js.map → index-CzCSgCK-.js.map} +1 -1
- prefect/server/ui-v2/assets/index-D5v9S-lB.js +2 -0
- prefect/server/ui-v2/assets/{index-B_3f8Hcb.js.map → index-D5v9S-lB.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DfiNsXba.js → index-D6GJ4go1.js} +2 -2
- prefect/server/ui-v2/assets/{index-DfiNsXba.js.map → index-D6GJ4go1.js.map} +1 -1
- prefect/server/ui-v2/assets/index-DJyKqsFO.js +2 -0
- prefect/server/ui-v2/assets/{index-H6bwm6L6.js.map → index-DJyKqsFO.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DSaSov8V.js → index-DODEq1Pi.js} +2 -2
- prefect/server/ui-v2/assets/{index-DSaSov8V.js.map → index-DODEq1Pi.js.map} +1 -1
- prefect/server/ui-v2/assets/index-DicK6p3K.js +2 -0
- prefect/server/ui-v2/assets/{index-7-r4ia_S.js.map → index-DicK6p3K.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DYOACRXY.js → index-DqCPbST9.js} +2 -2
- prefect/server/ui-v2/assets/{index-DYOACRXY.js.map → index-DqCPbST9.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DOkFJdYY.js → index-DxPoKag8.js} +2 -2
- prefect/server/ui-v2/assets/{index-DOkFJdYY.js.map → index-DxPoKag8.js.map} +1 -1
- prefect/server/ui-v2/assets/index-NY089eTx.css +1 -0
- prefect/server/ui-v2/assets/{index-HGoNWFfP.js → index-h9-QgNjZ.js} +2 -2
- prefect/server/ui-v2/assets/{index-HGoNWFfP.js.map → index-h9-QgNjZ.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-D3ILnEzm.js → index-tBdv6kBF.js} +2 -2
- prefect/server/ui-v2/assets/{index-D3ILnEzm.js.map → index-tBdv6kBF.js.map} +1 -1
- prefect/server/ui-v2/assets/index-udb79rgq.js +2 -0
- prefect/server/ui-v2/assets/{index-7ThYp9SY.js.map → index-udb79rgq.js.map} +1 -1
- prefect/server/ui-v2/assets/{json-input-9UPGqxTw.js → json-input-Dt1icmrn.js} +2 -2
- prefect/server/ui-v2/assets/{json-input-9UPGqxTw.js.map → json-input-Dt1icmrn.js.map} +1 -1
- prefect/server/ui-v2/assets/{key._key-CTFfXO_k.js → key._key-Cyh5MBX_.js} +2 -2
- prefect/server/ui-v2/assets/{key._key-CTFfXO_k.js.map → key._key-Cyh5MBX_.js.map} +1 -1
- prefect/server/ui-v2/assets/{lazy-markdown-BHwIrC8E.js → lazy-markdown-BwIwKFRF.js} +2 -2
- prefect/server/ui-v2/assets/{lazy-markdown-BHwIrC8E.js.map → lazy-markdown-BwIwKFRF.js.map} +1 -1
- prefect/server/ui-v2/assets/{login-kqmT29n7.js → login-DKXFVSwk.js} +2 -2
- prefect/server/ui-v2/assets/{login-kqmT29n7.js.map → login-DKXFVSwk.js.map} +1 -1
- prefect/server/ui-v2/assets/{markdown-input-BesmAbLS.js → markdown-input-Dp0mBlkV.js} +2 -2
- prefect/server/ui-v2/assets/{markdown-input-BesmAbLS.js.map → markdown-input-Dp0mBlkV.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-example-snippet-COTWYn1Y.js → python-example-snippet-BYwPjHI5.js} +3 -3
- prefect/server/ui-v2/assets/{python-example-snippet-COTWYn1Y.js.map → python-example-snippet-BYwPjHI5.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-input-Bjccebi0.js → python-input-y26XMqXw.js} +2 -2
- prefect/server/ui-v2/assets/{python-input-Bjccebi0.js.map → python-input-y26XMqXw.js.map} +1 -1
- prefect/server/ui-v2/assets/{radio-group-DkAK0M2h.js → radio-group-D0van45v.js} +2 -2
- prefect/server/ui-v2/assets/{radio-group-DkAK0M2h.js.map → radio-group-D0van45v.js.map} +1 -1
- prefect/server/ui-v2/assets/route-error-state-CGGpuCGN.js +2 -0
- prefect/server/ui-v2/assets/{route-error-state-ALftyvGl.js.map → route-error-state-CGGpuCGN.js.map} +1 -1
- prefect/server/ui-v2/assets/{schema-form-BR4E-WXE.js → schema-form-2tg5SXM4.js} +2 -2
- prefect/server/ui-v2/assets/{schema-form-BR4E-WXE.js.map → schema-form-2tg5SXM4.js.map} +1 -1
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-BhL8C5NS.js → schema-form-input-string-format-datetime-CZt6AJ4z.js} +4 -4
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-BhL8C5NS.js.map → schema-form-input-string-format-datetime-CZt6AJ4z.js.map} +1 -1
- prefect/server/ui-v2/assets/settings-DDUadk_N.js +2 -0
- prefect/server/ui-v2/assets/settings-DDUadk_N.js.map +1 -0
- prefect/server/ui-v2/assets/{sort-filter-BD4vwJXt.js → sort-filter-D9p3cPx9.js} +2 -2
- prefect/server/ui-v2/assets/{sort-filter-BD4vwJXt.js.map → sort-filter-D9p3cPx9.js.map} +1 -1
- prefect/server/ui-v2/assets/state-colors-CAAf0Eg3.js +2 -0
- prefect/server/ui-v2/assets/state-colors-CAAf0Eg3.js.map +1 -0
- prefect/server/ui-v2/assets/table-vo9Do8sA.js +2 -0
- prefect/server/ui-v2/assets/table-vo9Do8sA.js.map +1 -0
- prefect/server/ui-v2/assets/tags-input-Ci2JQ-k3.js +2 -0
- prefect/server/ui-v2/assets/tags-input-Ci2JQ-k3.js.map +1 -0
- prefect/server/ui-v2/assets/task-run-concurrency-limits-reset-dialog-CJzPc2gw.js +2 -0
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-CG3den1B.js.map → task-run-concurrency-limits-reset-dialog-CJzPc2gw.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-DOcIzVi0.js → task-run._id-CjevSs79.js} +3 -3
- prefect/server/ui-v2/assets/{task-run._id-DOcIzVi0.js.map → task-run._id-CjevSs79.js.map} +1 -1
- prefect/server/ui-v2/assets/task-run._id-D8QKG5UZ.js +2 -0
- prefect/server/ui-v2/assets/{task-run._id-CnIVqU6v.js.map → task-run._id-D8QKG5UZ.js.map} +1 -1
- prefect/server/ui-v2/assets/task-runs-pagination-CifoSGct.js +2 -0
- prefect/server/ui-v2/assets/{task-runs-pagination-DLSAz-Ur.js.map → task-runs-pagination-CifoSGct.js.map} +1 -1
- prefect/server/ui-v2/assets/{textarea-D8LjlIx7.js → textarea-BAtfAxtV.js} +2 -2
- prefect/server/ui-v2/assets/{textarea-D8LjlIx7.js.map → textarea-BAtfAxtV.js.map} +1 -1
- prefect/server/ui-v2/assets/{timezone-select-BG3cL3-U.js → timezone-select-QlQTZSsF.js} +2 -2
- prefect/server/ui-v2/assets/{timezone-select-BG3cL3-U.js.map → timezone-select-QlQTZSsF.js.map} +1 -1
- prefect/server/ui-v2/assets/{toggle-group-D3zeurIL.js → toggle-group-BJN1vjEh.js} +2 -2
- prefect/server/ui-v2/assets/{toggle-group-D3zeurIL.js.map → toggle-group-BJN1vjEh.js.map} +1 -1
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-eOWJYPkD.js +2 -0
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-Bzy2ML2T.js.map → use-delete-automation-confirmation-dialog-eOWJYPkD.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DRAP-Tnu.js → use-delete-block-document-confirmation-dialog-BTwSeHRM.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DRAP-Tnu.js.map → use-delete-block-document-confirmation-dialog-BTwSeHRM.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-D4yWonR8.js → use-flow-runs-selected-rows-BL_Gv9CC.js} +2 -2
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-D4yWonR8.js.map → use-flow-runs-selected-rows-BL_Gv9CC.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DZeBiVd9.js → use-get-artifacts-flow-task-runs-TSCoomjQ.js} +2 -2
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DZeBiVd9.js.map → use-get-artifacts-flow-task-runs-TSCoomjQ.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-quick-run-BxAMqZDM.js → use-quick-run-BMnCkwSv.js} +2 -2
- prefect/server/ui-v2/assets/{use-quick-run-BxAMqZDM.js.map → use-quick-run-BMnCkwSv.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-stepper-T3wAKNvM.js → use-stepper-C1wm66U2.js} +2 -2
- prefect/server/ui-v2/assets/{use-stepper-T3wAKNvM.js.map → use-stepper-C1wm66U2.js.map} +1 -1
- prefect/server/ui-v2/assets/{utilities-B2JMf8iI.js → utilities-DxRXxFOF.js} +2 -2
- prefect/server/ui-v2/assets/{utilities-B2JMf8iI.js.map → utilities-DxRXxFOF.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool-filter-CZz0AJlt.js → work-pool-filter-PudrkZYj.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-filter-CZz0AJlt.js.map → work-pool-filter-PudrkZYj.js.map} +1 -1
- prefect/server/ui-v2/assets/work-pool-queue-toggle-BAOrV_0R.js +2 -0
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-D4eeo-hi.js.map → work-pool-queue-toggle-BAOrV_0R.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool._workPoolName-DrWddu9K.js → work-pool._workPoolName-BOM3849e.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool._workPoolName-DrWddu9K.js.map → work-pool._workPoolName-BOM3849e.js.map} +1 -1
- prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-CIhcG6yr.js +2 -0
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CA0ePjCk.js.map → work-pool_._workPoolName.edit-CIhcG6yr.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-DpUnE86v.js → work-pool_._workPoolName.queue._workQueueName-CjoM77tu.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-DpUnE86v.js.map → work-pool_._workPoolName.queue._workQueueName-CjoM77tu.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-queue-icon-text-BjiA7vAW.js → work-queue-icon-text-CP4yX3uM.js} +2 -2
- prefect/server/ui-v2/assets/{work-queue-icon-text-BjiA7vAW.js.map → work-queue-icon-text-CP4yX3uM.js.map} +1 -1
- prefect/server/ui-v2/index.html +2 -2
- prefect/task_engine.py +16 -0
- prefect/task_worker.py +98 -16
- prefect/testing/fixtures.py +18 -1
- {prefect-3.6.12.dist-info → prefect-3.6.13.dev2.dist-info}/METADATA +1 -1
- {prefect-3.6.12.dist-info → prefect-3.6.13.dev2.dist-info}/RECORD +211 -210
- prefect/server/ui-v2/assets/automation._id-IHh5QJwE.js +0 -2
- prefect/server/ui-v2/assets/block-type-logo-B31LJm5H.js +0 -2
- prefect/server/ui-v2/assets/block_._id.edit-CIhIBJrm.js +0 -2
- prefect/server/ui-v2/assets/catalog-CfniU0UV.js +0 -2
- prefect/server/ui-v2/assets/catalog_._slug-C9p86T4s.js +0 -2
- prefect/server/ui-v2/assets/catalog_._slug_.create-BhSunL__.js +0 -2
- prefect/server/ui-v2/assets/deployment._id-DVmqclRz.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.duplicate-DVMjpk5m.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.edit-Ck_P6KDn.js +0 -2
- prefect/server/ui-v2/assets/flow-run-graph-CfoPEAgQ.js +0 -2
- prefect/server/ui-v2/assets/flow-run-graph-CfoPEAgQ.js.map +0 -1
- prefect/server/ui-v2/assets/flow-run._id-C-qxwEBp.js +0 -4
- prefect/server/ui-v2/assets/flow-run._id-C-qxwEBp.js.map +0 -1
- prefect/server/ui-v2/assets/flow-run._id-OL0YhyLW.js +0 -2
- prefect/server/ui-v2/assets/flow-runs-pagination-DnwkJapB.js +0 -2
- prefect/server/ui-v2/assets/flow-runs-pagination-DnwkJapB.js.map +0 -1
- prefect/server/ui-v2/assets/flow._id-DhrCicwR.js +0 -2
- prefect/server/ui-v2/assets/index-7-r4ia_S.js +0 -2
- prefect/server/ui-v2/assets/index-7ThYp9SY.js +0 -2
- prefect/server/ui-v2/assets/index-B7zHzWQW.css +0 -1
- prefect/server/ui-v2/assets/index-B_3f8Hcb.js +0 -2
- prefect/server/ui-v2/assets/index-BiCd-Iuz.js +0 -2
- prefect/server/ui-v2/assets/index-BiCd-Iuz.js.map +0 -1
- prefect/server/ui-v2/assets/index-CT_nG86y.js +0 -2
- prefect/server/ui-v2/assets/index-Cs8eFQKw.js +0 -2
- prefect/server/ui-v2/assets/index-H6bwm6L6.js +0 -2
- prefect/server/ui-v2/assets/index-WYPZo52S.js +0 -17
- prefect/server/ui-v2/assets/index-WYPZo52S.js.map +0 -1
- prefect/server/ui-v2/assets/index-qPlIYf3i.js +0 -2
- prefect/server/ui-v2/assets/route-error-state-ALftyvGl.js +0 -2
- prefect/server/ui-v2/assets/settings-BL0X8cDU.js +0 -2
- prefect/server/ui-v2/assets/settings-BL0X8cDU.js.map +0 -1
- prefect/server/ui-v2/assets/table-CEAx-qHs.js +0 -2
- prefect/server/ui-v2/assets/table-CEAx-qHs.js.map +0 -1
- prefect/server/ui-v2/assets/tags-input-D1RJZEUA.js +0 -2
- prefect/server/ui-v2/assets/tags-input-D1RJZEUA.js.map +0 -1
- prefect/server/ui-v2/assets/task-run-concurrency-limits-reset-dialog-CG3den1B.js +0 -2
- prefect/server/ui-v2/assets/task-run._id-CnIVqU6v.js +0 -2
- prefect/server/ui-v2/assets/task-runs-pagination-DLSAz-Ur.js +0 -2
- prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-Bzy2ML2T.js +0 -2
- prefect/server/ui-v2/assets/use-local-storage-CpxMp5wR.js +0 -2
- prefect/server/ui-v2/assets/use-local-storage-CpxMp5wR.js.map +0 -1
- prefect/server/ui-v2/assets/work-pool-queue-toggle-D4eeo-hi.js +0 -2
- prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-CA0ePjCk.js +0 -2
- {prefect-3.6.12.dist-info → prefect-3.6.13.dev2.dist-info}/WHEEL +0 -0
- {prefect-3.6.12.dist-info → prefect-3.6.13.dev2.dist-info}/entry_points.txt +0 -0
- {prefect-3.6.12.dist-info → prefect-3.6.13.dev2.dist-info}/licenses/LICENSE +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-pool-queue-toggle-D4eeo-hi.js","sources":["../../node_modules/lucide-react/dist/esm/icons/square-pen.js","../../src/components/work-pools/work-pool-queue-status-badge/work-pool-queue-status-badge.tsx","../../src/components/work-pools/work-pool-queue-create-dialog/use-create-work-pool-queue-form.ts","../../src/components/work-pools/work-pool-queue-create-dialog/work-pool-queue-create-dialog.tsx","../../src/components/work-pools/work-pool-queue-menu/components/delete-work-pool-queue-dialog.tsx","../../src/components/work-pools/work-pool-queue-menu/hooks/use-work-pool-queue-menu.ts","../../src/components/work-pools/work-pool-queue-menu/work-pool-queue-menu.tsx","../../src/components/work-pools/work-pool-queue-toggle/hooks/use-work-pool-queue-toggle.ts","../../src/components/work-pools/work-pool-queue-toggle/work-pool-queue-toggle.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\", key: \"1m0v6g\" }],\n [\n \"path\",\n {\n d: \"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\",\n key: \"ohrbg2\"\n }\n ]\n];\nconst SquarePen = createLucideIcon(\"square-pen\", __iconNode);\n\nexport { __iconNode, SquarePen as default };\n//# sourceMappingURL=square-pen.js.map\n","import { Pause } from \"lucide-react\";\nimport type { WorkPoolQueueStatus } from \"@/api/work-pool-queues\";\nimport { Badge } from \"@/components/ui/badge\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/utils\";\n\ntype WorkPoolQueueStatusBadgeProps = {\n\tstatus: WorkPoolQueueStatus;\n\tclassName?: string;\n};\n\nconst statusConfig = {\n\tREADY: {\n\t\tlabel: \"Ready\",\n\t\tcolor: \"bg-green-500\",\n\t\ttooltip:\n\t\t\t\"Work queue has at least one actively polling worker ready to execute work.\",\n\t},\n\tPAUSED: {\n\t\tlabel: \"Paused\",\n\t\tcolor: \"bg-yellow-500\",\n\t\ttooltip: \"Work queue is paused. No work will be executed.\",\n\t},\n\tNOT_READY: {\n\t\tlabel: \"Not Ready\",\n\t\tcolor: \"bg-red-500\",\n\t\ttooltip:\n\t\t\t\"Work queue does not have any actively polling workers ready to execute work.\",\n\t},\n};\n\nexport const WorkPoolQueueStatusBadge = ({\n\tstatus,\n\tclassName,\n}: WorkPoolQueueStatusBadgeProps) => {\n\tconst config = statusConfig[status];\n\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t<Badge\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tclassName={cn(\"flex items-center space-x-1 cursor-help\", className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{status === \"PAUSED\" ? (\n\t\t\t\t\t\t\t<Pause className=\"h-2 w-2 text-muted-foreground\" />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div className={cn(\"h-2 w-2 rounded-full\", config.color)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<span>{config.label}</span>\n\t\t\t\t\t</Badge>\n\t\t\t\t</TooltipTrigger>\n\t\t\t\t<TooltipContent>\n\t\t\t\t\t<p>{config.tooltip}</p>\n\t\t\t\t</TooltipContent>\n\t\t\t</Tooltip>\n\t\t</TooltipProvider>\n\t);\n};\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useEffect } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport { z } from \"zod\";\nimport {\n\tuseCreateWorkPoolQueueMutation,\n\tuseUpdateWorkPoolQueueMutation,\n\ttype WorkPoolQueue,\n} from \"@/api/work-pool-queues\";\n\nconst formSchema = z.object({\n\tname: z\n\t\t.string()\n\t\t.min(1, { message: \"Name is required\" })\n\t\t.regex(/^[a-zA-Z0-9_-]+$/, {\n\t\t\tmessage:\n\t\t\t\t\"Name can only contain letters, numbers, hyphens, and underscores\",\n\t\t}),\n\tdescription: z.string().nullable().optional(),\n\tis_paused: z.boolean().default(false),\n\tconcurrency_limit: z\n\t\t.union([\n\t\t\tz.string().transform((val) => {\n\t\t\t\tif (val === \"\" || val === null || val === undefined) return null;\n\t\t\t\tconst num = Number(val);\n\t\t\t\tif (Number.isNaN(num)) return null;\n\t\t\t\tif (num <= 0)\n\t\t\t\t\tthrow new Error(\"Flow run concurrency must be greater than 0\");\n\t\t\t\treturn num;\n\t\t\t}),\n\t\t\tz\n\t\t\t\t.number()\n\t\t\t\t.positive({ message: \"Flow run concurrency must be greater than 0\" })\n\t\t\t\t.nullable(),\n\t\t])\n\t\t.nullable()\n\t\t.optional(),\n\tpriority: z\n\t\t.union([\n\t\t\tz.string().transform((val) => {\n\t\t\t\tif (val === \"\" || val === null || val === undefined) return null;\n\t\t\t\tconst num = Number(val);\n\t\t\t\tif (Number.isNaN(num)) return null;\n\t\t\t\tif (num <= 0) throw new Error(\"Priority must be greater than 0\");\n\t\t\t\tif (!Number.isInteger(num))\n\t\t\t\t\tthrow new Error(\"Priority must be a whole number\");\n\t\t\t\treturn num;\n\t\t\t}),\n\t\t\tz\n\t\t\t\t.number()\n\t\t\t\t.int({ message: \"Priority must be a whole number\" })\n\t\t\t\t.positive({ message: \"Priority must be greater than 0\" })\n\t\t\t\t.nullable(),\n\t\t])\n\t\t.nullable()\n\t\t.optional(),\n});\n\nexport const DEFAULT_VALUES = {\n\tname: \"\",\n\tdescription: \"\",\n\tis_paused: false,\n\tconcurrency_limit: null,\n\tpriority: null,\n} as const;\n\ntype UseCreateOrEditWorkPoolQueueFormOptions = {\n\tworkPoolName: string;\n\tqueueToEdit?: WorkPoolQueue;\n\tonSubmit: () => void;\n};\n\nexport const useCreateOrEditWorkPoolQueueForm = ({\n\tworkPoolName,\n\tqueueToEdit,\n\tonSubmit,\n}: UseCreateOrEditWorkPoolQueueFormOptions) => {\n\tconst { mutate: createWorkPoolQueue, isPending: isCreateLoading } =\n\t\tuseCreateWorkPoolQueueMutation();\n\tconst { mutate: updateWorkPoolQueue, isPending: isUpdateLoading } =\n\t\tuseUpdateWorkPoolQueueMutation();\n\n\tconst form = useForm({\n\t\tresolver: zodResolver(formSchema),\n\t\tdefaultValues: DEFAULT_VALUES,\n\t});\n\n\t// Sync form data with queue-to-edit data\n\tuseEffect(() => {\n\t\tif (queueToEdit) {\n\t\t\tform.reset({\n\t\t\t\tname: queueToEdit.name,\n\t\t\t\tdescription: queueToEdit.description ?? \"\",\n\t\t\t\tis_paused: queueToEdit.is_paused ?? false,\n\t\t\t\tconcurrency_limit: queueToEdit.concurrency_limit ?? null,\n\t\t\t\tpriority: queueToEdit.priority ?? null,\n\t\t\t});\n\t\t} else {\n\t\t\tform.reset(DEFAULT_VALUES);\n\t\t}\n\t}, [form, queueToEdit]);\n\n\tconst saveOrUpdate = (values: z.infer<typeof formSchema>) => {\n\t\tconst workQueueData = {\n\t\t\t...values,\n\t\t\tdescription: values.description || null,\n\t\t};\n\n\t\tif (queueToEdit) {\n\t\t\tupdateWorkPoolQueue(\n\t\t\t\t{\n\t\t\t\t\tworkPoolName,\n\t\t\t\t\tqueueName: queueToEdit.name,\n\t\t\t\t\tworkQueueData: {\n\t\t\t\t\t\t...workQueueData,\n\t\t\t\t\t\tis_paused:\n\t\t\t\t\t\t\tworkQueueData.is_paused ?? queueToEdit.is_paused ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(\"Work queue updated\");\n\t\t\t\t\t\tform.reset(DEFAULT_VALUES);\n\t\t\t\t\t\tonSubmit();\n\t\t\t\t\t},\n\t\t\t\t\tonError: (error) => {\n\t\t\t\t\t\tconst message =\n\t\t\t\t\t\t\terror.message || \"Unknown error while updating work queue.\";\n\t\t\t\t\t\tform.setError(\"root\", { message });\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t} else {\n\t\t\tcreateWorkPoolQueue(\n\t\t\t\t{\n\t\t\t\t\tworkPoolName,\n\t\t\t\t\tworkQueueData,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(\"Work queue created\");\n\t\t\t\t\t\tform.reset(DEFAULT_VALUES);\n\t\t\t\t\t\tonSubmit();\n\t\t\t\t\t},\n\t\t\t\t\tonError: (error) => {\n\t\t\t\t\t\tconst message =\n\t\t\t\t\t\t\terror.message || \"Unknown error while creating work queue.\";\n\t\t\t\t\t\tform.setError(\"root\", { message });\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\tform,\n\t\tsaveOrUpdate,\n\t\tisLoading: isCreateLoading || isUpdateLoading,\n\t};\n};\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tDialog,\n\tDialogContent,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from \"@/components/ui/dialog\";\nimport {\n\tForm,\n\tFormControl,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"@/components/ui/form\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Input } from \"@/components/ui/input\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from \"@/components/ui/tooltip\";\n\nimport { useCreateOrEditWorkPoolQueueForm } from \"./use-create-work-pool-queue-form\";\n\ntype WorkPoolQueueCreateOrEditDialogProps = {\n\tworkPoolName: string;\n\tqueueToEdit?: WorkPoolQueue;\n\topen: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tonSubmit: () => void;\n};\n\nexport const WorkPoolQueueCreateOrEditDialog = ({\n\tworkPoolName,\n\tqueueToEdit,\n\topen,\n\tonOpenChange,\n\tonSubmit,\n}: WorkPoolQueueCreateOrEditDialogProps) => {\n\tconst { form, isLoading, saveOrUpdate } = useCreateOrEditWorkPoolQueueForm({\n\t\tworkPoolName,\n\t\tqueueToEdit,\n\t\tonSubmit,\n\t});\n\n\tconst isEditMode = !!queueToEdit;\n\tconst dialogTitle = isEditMode ? \"Edit Work Queue\" : \"Create Work Queue\";\n\tconst submitButtonText = isEditMode ? \"Save\" : \"Create Work Queue\";\n\n\treturn (\n\t\t<Dialog open={open} onOpenChange={onOpenChange}>\n\t\t\t<DialogContent aria-describedby={undefined}>\n\t\t\t\t<DialogHeader>\n\t\t\t\t\t<DialogTitle>{dialogTitle}</DialogTitle>\n\t\t\t\t</DialogHeader>\n\n\t\t\t\t<Form {...form}>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={(e) => void form.handleSubmit(saveOrUpdate)(e)}\n\t\t\t\t\t\tclassName=\"space-y-4\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FormMessage>{form.formState.errors.root?.message}</FormMessage>\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=\"name\"\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>Name</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input type=\"text\" autoComplete=\"off\" {...field} />\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\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</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Textarea {...field} value={field.value || \"\"} />\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\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=\"concurrency_limit\"\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</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input type=\"number\" {...field} value={field.value || \"\"} />\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\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=\"priority\"\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 className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\tPriority\n\t\t\t\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"cursor-help\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon id=\"Info\" className=\"size-4\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"text-xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tWork on higher priority queues is executed first.\n\t\t\t\t\t\t\t\t\t\t\t\t\tLower numbers have higher priority.\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input type=\"number\" {...field} value={field.value || \"\"} />\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\t\t\t\t\t\t<DialogFooter>\n\t\t\t\t\t\t\t<DialogTrigger asChild>\n\t\t\t\t\t\t\t\t<Button variant=\"outline\">Cancel</Button>\n\t\t\t\t\t\t\t</DialogTrigger>\n\t\t\t\t\t\t\t<Button type=\"submit\" loading={isLoading}>\n\t\t\t\t\t\t\t\t{submitButtonText}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</DialogFooter>\n\t\t\t\t\t</form>\n\t\t\t\t</Form>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n};\n","import { toast } from \"sonner\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { useDeleteWorkPoolQueueMutation } from \"@/api/work-pool-queues\";\nimport { DeleteConfirmationDialog } from \"@/components/ui/delete-confirmation-dialog\";\n\ntype DeleteWorkPoolQueueDialogProps = {\n\tqueue: WorkPoolQueue;\n\topen: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tonDeleted?: () => void;\n};\n\nexport const DeleteWorkPoolQueueDialog = ({\n\tqueue,\n\topen,\n\tonOpenChange,\n\tonDeleted,\n}: DeleteWorkPoolQueueDialogProps) => {\n\tconst deleteQueueMutation = useDeleteWorkPoolQueueMutation();\n\n\tconst handleDelete = () => {\n\t\tif (!queue.work_pool_name) {\n\t\t\ttoast.error(\"Work pool name is required\");\n\t\t\treturn;\n\t\t}\n\n\t\tdeleteQueueMutation.mutate(\n\t\t\t{ workPoolName: queue.work_pool_name, queueName: queue.name },\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\ttoast.success(\"Work pool queue deleted successfully\");\n\t\t\t\t\tonDeleted?.();\n\t\t\t\t\tonOpenChange(false);\n\t\t\t\t},\n\t\t\t\tonError: () => {\n\t\t\t\t\ttoast.error(\"Failed to delete work pool queue\");\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn (\n\t\t<DeleteConfirmationDialog\n\t\t\tisOpen={open}\n\t\t\ttitle=\"Delete Work Pool Queue\"\n\t\t\tdescription={`Are you sure you want to delete the work pool queue \"${queue.name}\"? This action cannot be undone.`}\n\t\t\tconfirmText={queue.name}\n\t\t\tisLoading={deleteQueueMutation.isPending}\n\t\t\tloadingText=\"Deleting...\"\n\t\t\tonConfirm={handleDelete}\n\t\t\tonClose={() => onOpenChange(false)}\n\t\t/>\n\t);\n};\n","import { useNavigate } from \"@tanstack/react-router\";\nimport { Copy, Edit, MoreVertical, Trash2, Zap } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { toast } from \"sonner\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\n\nexport const useWorkPoolQueueMenu = (queue: WorkPoolQueue) => {\n\tconst navigate = useNavigate();\n\tconst [showDeleteDialog, setShowDeleteDialog] = useState(false);\n\tconst [showEditDialog, setShowEditDialog] = useState(false);\n\n\tconst handleCopyId = () => {\n\t\tvoid navigator.clipboard.writeText(queue.id);\n\t\ttoast.success(\"ID copied to clipboard\");\n\t};\n\n\tconst handleEdit = () => {\n\t\tsetShowEditDialog(true);\n\t};\n\n\tconst handleAutomate = () => {\n\t\tvoid navigate({\n\t\t\tto: \"/automations/create\",\n\t\t});\n\t};\n\n\tconst isDefaultQueue = queue.name === \"default\";\n\n\tconst menuItems = [\n\t\t{\n\t\t\tlabel: \"Copy ID\",\n\t\t\ticon: Copy,\n\t\t\taction: handleCopyId,\n\t\t\tshow: true,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Edit\",\n\t\t\ticon: Edit,\n\t\t\taction: handleEdit,\n\t\t\tshow: true,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Delete\",\n\t\t\ticon: Trash2,\n\t\t\taction: () => setShowDeleteDialog(true),\n\t\t\tshow: !isDefaultQueue, // Default queue cannot be deleted\n\t\t\tvariant: \"destructive\" as const,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Automate\",\n\t\t\ticon: Zap,\n\t\t\taction: handleAutomate,\n\t\t\tshow: true,\n\t\t},\n\t].filter((item) => item.show);\n\n\treturn {\n\t\tmenuItems,\n\t\tshowDeleteDialog,\n\t\tsetShowDeleteDialog,\n\t\tshowEditDialog,\n\t\tsetShowEditDialog,\n\t\ttriggerIcon: MoreVertical,\n\t};\n};\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { WorkPoolQueueCreateOrEditDialog } from \"@/components/work-pools/work-pool-queue-create-dialog\";\nimport { cn } from \"@/utils\";\nimport { DeleteWorkPoolQueueDialog } from \"./components/delete-work-pool-queue-dialog\";\nimport { useWorkPoolQueueMenu } from \"./hooks/use-work-pool-queue-menu\";\n\ntype WorkPoolQueueMenuProps = {\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueMenu = ({\n\tqueue,\n\tonUpdate,\n\tclassName,\n}: WorkPoolQueueMenuProps) => {\n\tconst {\n\t\tmenuItems,\n\t\tshowDeleteDialog,\n\t\tsetShowDeleteDialog,\n\t\tshowEditDialog,\n\t\tsetShowEditDialog,\n\t\ttriggerIcon: TriggerIcon,\n\t} = useWorkPoolQueueMenu(queue);\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu>\n\t\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\t\tclassName={cn(\"size-8\", className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"sr-only\">Open menu</span>\n\t\t\t\t\t\t<TriggerIcon className=\"size-4\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t<DropdownMenuContent align=\"end\">\n\t\t\t\t\t{menuItems.map((item) => {\n\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\tkey={item.label}\n\t\t\t\t\t\t\t\tonClick={item.action}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\titem.variant === \"destructive\" && \"text-destructive\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"mr-2 h-4 w-4\" />\n\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</DropdownMenuContent>\n\t\t\t</DropdownMenu>\n\t\t\t<DeleteWorkPoolQueueDialog\n\t\t\t\tqueue={queue}\n\t\t\t\topen={showDeleteDialog}\n\t\t\t\tonOpenChange={setShowDeleteDialog}\n\t\t\t\tonDeleted={onUpdate}\n\t\t\t/>\n\t\t\t<WorkPoolQueueCreateOrEditDialog\n\t\t\t\tworkPoolName={queue.work_pool_name ?? \"\"}\n\t\t\t\tqueueToEdit={queue}\n\t\t\t\topen={showEditDialog}\n\t\t\t\tonOpenChange={setShowEditDialog}\n\t\t\t\tonSubmit={() => {\n\t\t\t\t\tsetShowEditDialog(false);\n\t\t\t\t\tonUpdate?.();\n\t\t\t\t}}\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import { useCallback } from \"react\";\nimport { toast } from \"sonner\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport {\n\tusePauseWorkPoolQueueMutation,\n\tuseResumeWorkPoolQueueMutation,\n} from \"@/api/work-pool-queues\";\n\nexport const useWorkPoolQueueToggle = (\n\tqueue: WorkPoolQueue,\n\tonUpdate?: () => void,\n) => {\n\tconst pauseMutation = usePauseWorkPoolQueueMutation();\n\tconst resumeMutation = useResumeWorkPoolQueueMutation();\n\n\tconst handleToggle = useCallback(\n\t\t(isResumed: boolean) => {\n\t\t\tif (!queue.work_pool_name) {\n\t\t\t\ttoast.error(\"Work pool name is required\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst mutation = isResumed ? resumeMutation : pauseMutation;\n\t\t\tconst action = isResumed ? \"resumed\" : \"paused\";\n\n\t\t\tmutation.mutate(\n\t\t\t\t{ workPoolName: queue.work_pool_name, queueName: queue.name },\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(`Queue ${action} successfully`);\n\t\t\t\t\t\tonUpdate?.();\n\t\t\t\t\t},\n\t\t\t\t\tonError: () => {\n\t\t\t\t\t\ttoast.error(`Failed to ${action.slice(0, -1)} queue`);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\t[queue, pauseMutation, resumeMutation, onUpdate],\n\t);\n\n\treturn {\n\t\thandleToggle,\n\t\tisLoading: pauseMutation.isPending || resumeMutation.isPending,\n\t};\n};\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { Switch } from \"@/components/ui/switch\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/utils\";\nimport { useWorkPoolQueueToggle } from \"./hooks/use-work-pool-queue-toggle\";\n\ntype WorkPoolQueueToggleProps = {\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tdisabled?: boolean;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueToggle = ({\n\tqueue,\n\tonUpdate,\n\tdisabled = false,\n\tclassName,\n}: WorkPoolQueueToggleProps) => {\n\tconst { handleToggle, isLoading } = useWorkPoolQueueToggle(queue, onUpdate);\n\tconst isPaused = queue.status === \"PAUSED\";\n\n\tconst isDisabled = disabled || isLoading;\n\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\tchecked={!isPaused}\n\t\t\t\t\t\t\tonCheckedChange={handleToggle}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\tisPaused ? \"Resume work pool queue\" : \"Pause work pool queue\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName={cn(className)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</TooltipTrigger>\n\t\t\t\t<TooltipContent>\n\t\t\t\t\t<p>Pause or resume this work pool queue</p>\n\t\t\t\t</TooltipContent>\n\t\t\t</Tooltip>\n\t\t</TooltipProvider>\n\t);\n};\n"],"names":["__iconNode","SquarePen","createLucideIcon","statusConfig","WorkPoolQueueStatusBadge","status","className","config","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Badge","cn","Pause","TooltipContent","formSchema","z.object","z.string","z.boolean","z.union","val","num","z.number","DEFAULT_VALUES","useCreateOrEditWorkPoolQueueForm","workPoolName","queueToEdit","onSubmit","createWorkPoolQueue","isCreateLoading","useCreateWorkPoolQueueMutation","updateWorkPoolQueue","isUpdateLoading","useUpdateWorkPoolQueueMutation","form","useForm","zodResolver","useEffect","values","workQueueData","toast","error","message","WorkPoolQueueCreateOrEditDialog","open","onOpenChange","isLoading","saveOrUpdate","isEditMode","dialogTitle","submitButtonText","Dialog","DialogContent","DialogHeader","DialogTitle","Form","e","FormMessage","FormField","field","FormItem","FormLabel","FormControl","Input","Textarea","Icon","DialogFooter","DialogTrigger","Button","DeleteWorkPoolQueueDialog","queue","onDeleted","deleteQueueMutation","useDeleteWorkPoolQueueMutation","handleDelete","DeleteConfirmationDialog","useWorkPoolQueueMenu","navigate","useNavigate","showDeleteDialog","setShowDeleteDialog","useState","showEditDialog","setShowEditDialog","handleCopyId","handleEdit","handleAutomate","isDefaultQueue","Copy","Edit","Trash2","Zap","item","MoreVertical","WorkPoolQueueMenu","onUpdate","menuItems","TriggerIcon","Fragment","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuItem","useWorkPoolQueueToggle","pauseMutation","usePauseWorkPoolQueueMutation","resumeMutation","useResumeWorkPoolQueueMutation","useCallback","isResumed","mutation","action","WorkPoolQueueToggle","disabled","handleToggle","isPaused","isDisabled","Switch"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"work-pool-queue-toggle-BAOrV_0R.js","sources":["../../node_modules/lucide-react/dist/esm/icons/square-pen.js","../../src/components/work-pools/work-pool-queue-status-badge/work-pool-queue-status-badge.tsx","../../src/components/work-pools/work-pool-queue-create-dialog/use-create-work-pool-queue-form.ts","../../src/components/work-pools/work-pool-queue-create-dialog/work-pool-queue-create-dialog.tsx","../../src/components/work-pools/work-pool-queue-menu/components/delete-work-pool-queue-dialog.tsx","../../src/components/work-pools/work-pool-queue-menu/hooks/use-work-pool-queue-menu.ts","../../src/components/work-pools/work-pool-queue-menu/work-pool-queue-menu.tsx","../../src/components/work-pools/work-pool-queue-toggle/hooks/use-work-pool-queue-toggle.ts","../../src/components/work-pools/work-pool-queue-toggle/work-pool-queue-toggle.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.562.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\", key: \"1m0v6g\" }],\n [\n \"path\",\n {\n d: \"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\",\n key: \"ohrbg2\"\n }\n ]\n];\nconst SquarePen = createLucideIcon(\"square-pen\", __iconNode);\n\nexport { __iconNode, SquarePen as default };\n//# sourceMappingURL=square-pen.js.map\n","import { Pause } from \"lucide-react\";\nimport type { WorkPoolQueueStatus } from \"@/api/work-pool-queues\";\nimport { Badge } from \"@/components/ui/badge\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/utils\";\n\ntype WorkPoolQueueStatusBadgeProps = {\n\tstatus: WorkPoolQueueStatus;\n\tclassName?: string;\n};\n\nconst statusConfig = {\n\tREADY: {\n\t\tlabel: \"Ready\",\n\t\tcolor: \"bg-green-500\",\n\t\ttooltip:\n\t\t\t\"Work queue has at least one actively polling worker ready to execute work.\",\n\t},\n\tPAUSED: {\n\t\tlabel: \"Paused\",\n\t\tcolor: \"bg-yellow-500\",\n\t\ttooltip: \"Work queue is paused. No work will be executed.\",\n\t},\n\tNOT_READY: {\n\t\tlabel: \"Not Ready\",\n\t\tcolor: \"bg-red-500\",\n\t\ttooltip:\n\t\t\t\"Work queue does not have any actively polling workers ready to execute work.\",\n\t},\n};\n\nexport const WorkPoolQueueStatusBadge = ({\n\tstatus,\n\tclassName,\n}: WorkPoolQueueStatusBadgeProps) => {\n\tconst config = statusConfig[status];\n\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t<Badge\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\tclassName={cn(\"flex items-center space-x-1 cursor-help\", className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{status === \"PAUSED\" ? (\n\t\t\t\t\t\t\t<Pause className=\"h-2 w-2 text-muted-foreground\" />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div className={cn(\"h-2 w-2 rounded-full\", config.color)} />\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<span>{config.label}</span>\n\t\t\t\t\t</Badge>\n\t\t\t\t</TooltipTrigger>\n\t\t\t\t<TooltipContent>\n\t\t\t\t\t<p>{config.tooltip}</p>\n\t\t\t\t</TooltipContent>\n\t\t\t</Tooltip>\n\t\t</TooltipProvider>\n\t);\n};\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useEffect } from \"react\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport { z } from \"zod\";\nimport {\n\tuseCreateWorkPoolQueueMutation,\n\tuseUpdateWorkPoolQueueMutation,\n\ttype WorkPoolQueue,\n} from \"@/api/work-pool-queues\";\n\nconst formSchema = z.object({\n\tname: z\n\t\t.string()\n\t\t.min(1, { message: \"Name is required\" })\n\t\t.regex(/^[a-zA-Z0-9_-]+$/, {\n\t\t\tmessage:\n\t\t\t\t\"Name can only contain letters, numbers, hyphens, and underscores\",\n\t\t}),\n\tdescription: z.string().nullable().optional(),\n\tis_paused: z.boolean().default(false),\n\tconcurrency_limit: z\n\t\t.union([\n\t\t\tz.string().transform((val) => {\n\t\t\t\tif (val === \"\" || val === null || val === undefined) return null;\n\t\t\t\tconst num = Number(val);\n\t\t\t\tif (Number.isNaN(num)) return null;\n\t\t\t\tif (num <= 0)\n\t\t\t\t\tthrow new Error(\"Flow run concurrency must be greater than 0\");\n\t\t\t\treturn num;\n\t\t\t}),\n\t\t\tz\n\t\t\t\t.number()\n\t\t\t\t.positive({ message: \"Flow run concurrency must be greater than 0\" })\n\t\t\t\t.nullable(),\n\t\t])\n\t\t.nullable()\n\t\t.optional(),\n\tpriority: z\n\t\t.union([\n\t\t\tz.string().transform((val) => {\n\t\t\t\tif (val === \"\" || val === null || val === undefined) return null;\n\t\t\t\tconst num = Number(val);\n\t\t\t\tif (Number.isNaN(num)) return null;\n\t\t\t\tif (num <= 0) throw new Error(\"Priority must be greater than 0\");\n\t\t\t\tif (!Number.isInteger(num))\n\t\t\t\t\tthrow new Error(\"Priority must be a whole number\");\n\t\t\t\treturn num;\n\t\t\t}),\n\t\t\tz\n\t\t\t\t.number()\n\t\t\t\t.int({ message: \"Priority must be a whole number\" })\n\t\t\t\t.positive({ message: \"Priority must be greater than 0\" })\n\t\t\t\t.nullable(),\n\t\t])\n\t\t.nullable()\n\t\t.optional(),\n});\n\nexport const DEFAULT_VALUES = {\n\tname: \"\",\n\tdescription: \"\",\n\tis_paused: false,\n\tconcurrency_limit: null,\n\tpriority: null,\n} as const;\n\ntype UseCreateOrEditWorkPoolQueueFormOptions = {\n\tworkPoolName: string;\n\tqueueToEdit?: WorkPoolQueue;\n\tonSubmit: () => void;\n};\n\nexport const useCreateOrEditWorkPoolQueueForm = ({\n\tworkPoolName,\n\tqueueToEdit,\n\tonSubmit,\n}: UseCreateOrEditWorkPoolQueueFormOptions) => {\n\tconst { mutate: createWorkPoolQueue, isPending: isCreateLoading } =\n\t\tuseCreateWorkPoolQueueMutation();\n\tconst { mutate: updateWorkPoolQueue, isPending: isUpdateLoading } =\n\t\tuseUpdateWorkPoolQueueMutation();\n\n\tconst form = useForm({\n\t\tresolver: zodResolver(formSchema),\n\t\tdefaultValues: DEFAULT_VALUES,\n\t});\n\n\t// Sync form data with queue-to-edit data\n\tuseEffect(() => {\n\t\tif (queueToEdit) {\n\t\t\tform.reset({\n\t\t\t\tname: queueToEdit.name,\n\t\t\t\tdescription: queueToEdit.description ?? \"\",\n\t\t\t\tis_paused: queueToEdit.is_paused ?? false,\n\t\t\t\tconcurrency_limit: queueToEdit.concurrency_limit ?? null,\n\t\t\t\tpriority: queueToEdit.priority ?? null,\n\t\t\t});\n\t\t} else {\n\t\t\tform.reset(DEFAULT_VALUES);\n\t\t}\n\t}, [form, queueToEdit]);\n\n\tconst saveOrUpdate = (values: z.infer<typeof formSchema>) => {\n\t\tconst workQueueData = {\n\t\t\t...values,\n\t\t\tdescription: values.description || null,\n\t\t};\n\n\t\tif (queueToEdit) {\n\t\t\tupdateWorkPoolQueue(\n\t\t\t\t{\n\t\t\t\t\tworkPoolName,\n\t\t\t\t\tqueueName: queueToEdit.name,\n\t\t\t\t\tworkQueueData: {\n\t\t\t\t\t\t...workQueueData,\n\t\t\t\t\t\tis_paused:\n\t\t\t\t\t\t\tworkQueueData.is_paused ?? queueToEdit.is_paused ?? false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(\"Work queue updated\");\n\t\t\t\t\t\tform.reset(DEFAULT_VALUES);\n\t\t\t\t\t\tonSubmit();\n\t\t\t\t\t},\n\t\t\t\t\tonError: (error) => {\n\t\t\t\t\t\tconst message =\n\t\t\t\t\t\t\terror.message || \"Unknown error while updating work queue.\";\n\t\t\t\t\t\tform.setError(\"root\", { message });\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t} else {\n\t\t\tcreateWorkPoolQueue(\n\t\t\t\t{\n\t\t\t\t\tworkPoolName,\n\t\t\t\t\tworkQueueData,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(\"Work queue created\");\n\t\t\t\t\t\tform.reset(DEFAULT_VALUES);\n\t\t\t\t\t\tonSubmit();\n\t\t\t\t\t},\n\t\t\t\t\tonError: (error) => {\n\t\t\t\t\t\tconst message =\n\t\t\t\t\t\t\terror.message || \"Unknown error while creating work queue.\";\n\t\t\t\t\t\tform.setError(\"root\", { message });\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\tform,\n\t\tsaveOrUpdate,\n\t\tisLoading: isCreateLoading || isUpdateLoading,\n\t};\n};\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tDialog,\n\tDialogContent,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from \"@/components/ui/dialog\";\nimport {\n\tForm,\n\tFormControl,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"@/components/ui/form\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Input } from \"@/components/ui/input\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from \"@/components/ui/tooltip\";\n\nimport { useCreateOrEditWorkPoolQueueForm } from \"./use-create-work-pool-queue-form\";\n\ntype WorkPoolQueueCreateOrEditDialogProps = {\n\tworkPoolName: string;\n\tqueueToEdit?: WorkPoolQueue;\n\topen: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tonSubmit: () => void;\n};\n\nexport const WorkPoolQueueCreateOrEditDialog = ({\n\tworkPoolName,\n\tqueueToEdit,\n\topen,\n\tonOpenChange,\n\tonSubmit,\n}: WorkPoolQueueCreateOrEditDialogProps) => {\n\tconst { form, isLoading, saveOrUpdate } = useCreateOrEditWorkPoolQueueForm({\n\t\tworkPoolName,\n\t\tqueueToEdit,\n\t\tonSubmit,\n\t});\n\n\tconst isEditMode = !!queueToEdit;\n\tconst dialogTitle = isEditMode ? \"Edit Work Queue\" : \"Create Work Queue\";\n\tconst submitButtonText = isEditMode ? \"Save\" : \"Create Work Queue\";\n\n\treturn (\n\t\t<Dialog open={open} onOpenChange={onOpenChange}>\n\t\t\t<DialogContent aria-describedby={undefined}>\n\t\t\t\t<DialogHeader>\n\t\t\t\t\t<DialogTitle>{dialogTitle}</DialogTitle>\n\t\t\t\t</DialogHeader>\n\n\t\t\t\t<Form {...form}>\n\t\t\t\t\t<form\n\t\t\t\t\t\tonSubmit={(e) => void form.handleSubmit(saveOrUpdate)(e)}\n\t\t\t\t\t\tclassName=\"space-y-4\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<FormMessage>{form.formState.errors.root?.message}</FormMessage>\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=\"name\"\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>Name</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input type=\"text\" autoComplete=\"off\" {...field} />\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\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</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Textarea {...field} value={field.value || \"\"} />\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\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=\"concurrency_limit\"\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</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input type=\"number\" {...field} value={field.value || \"\"} />\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\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=\"priority\"\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 className=\"flex items-center gap-2\">\n\t\t\t\t\t\t\t\t\t\tPriority\n\t\t\t\t\t\t\t\t\t\t<Tooltip>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t\t\t\t\t\t\t\t<button type=\"button\" className=\"cursor-help\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Icon id=\"Info\" className=\"size-4\" />\n\t\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipTrigger>\n\t\t\t\t\t\t\t\t\t\t\t<TooltipContent>\n\t\t\t\t\t\t\t\t\t\t\t\t<p className=\"text-xs\">\n\t\t\t\t\t\t\t\t\t\t\t\t\tWork on higher priority queues is executed first.\n\t\t\t\t\t\t\t\t\t\t\t\t\tLower numbers have higher priority.\n\t\t\t\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t\t\t</TooltipContent>\n\t\t\t\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t\t\t</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input type=\"number\" {...field} value={field.value || \"\"} />\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\t\t\t\t\t\t<DialogFooter>\n\t\t\t\t\t\t\t<DialogTrigger asChild>\n\t\t\t\t\t\t\t\t<Button variant=\"outline\">Cancel</Button>\n\t\t\t\t\t\t\t</DialogTrigger>\n\t\t\t\t\t\t\t<Button type=\"submit\" loading={isLoading}>\n\t\t\t\t\t\t\t\t{submitButtonText}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</DialogFooter>\n\t\t\t\t\t</form>\n\t\t\t\t</Form>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n};\n","import { toast } from \"sonner\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { useDeleteWorkPoolQueueMutation } from \"@/api/work-pool-queues\";\nimport { DeleteConfirmationDialog } from \"@/components/ui/delete-confirmation-dialog\";\n\ntype DeleteWorkPoolQueueDialogProps = {\n\tqueue: WorkPoolQueue;\n\topen: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tonDeleted?: () => void;\n};\n\nexport const DeleteWorkPoolQueueDialog = ({\n\tqueue,\n\topen,\n\tonOpenChange,\n\tonDeleted,\n}: DeleteWorkPoolQueueDialogProps) => {\n\tconst deleteQueueMutation = useDeleteWorkPoolQueueMutation();\n\n\tconst handleDelete = () => {\n\t\tif (!queue.work_pool_name) {\n\t\t\ttoast.error(\"Work pool name is required\");\n\t\t\treturn;\n\t\t}\n\n\t\tdeleteQueueMutation.mutate(\n\t\t\t{ workPoolName: queue.work_pool_name, queueName: queue.name },\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\ttoast.success(\"Work pool queue deleted successfully\");\n\t\t\t\t\tonDeleted?.();\n\t\t\t\t\tonOpenChange(false);\n\t\t\t\t},\n\t\t\t\tonError: () => {\n\t\t\t\t\ttoast.error(\"Failed to delete work pool queue\");\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn (\n\t\t<DeleteConfirmationDialog\n\t\t\tisOpen={open}\n\t\t\ttitle=\"Delete Work Pool Queue\"\n\t\t\tdescription={`Are you sure you want to delete the work pool queue \"${queue.name}\"? This action cannot be undone.`}\n\t\t\tconfirmText={queue.name}\n\t\t\tisLoading={deleteQueueMutation.isPending}\n\t\t\tloadingText=\"Deleting...\"\n\t\t\tonConfirm={handleDelete}\n\t\t\tonClose={() => onOpenChange(false)}\n\t\t/>\n\t);\n};\n","import { useNavigate } from \"@tanstack/react-router\";\nimport { Copy, Edit, MoreVertical, Trash2, Zap } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { toast } from \"sonner\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\n\nexport const useWorkPoolQueueMenu = (queue: WorkPoolQueue) => {\n\tconst navigate = useNavigate();\n\tconst [showDeleteDialog, setShowDeleteDialog] = useState(false);\n\tconst [showEditDialog, setShowEditDialog] = useState(false);\n\n\tconst handleCopyId = () => {\n\t\tvoid navigator.clipboard.writeText(queue.id);\n\t\ttoast.success(\"ID copied to clipboard\");\n\t};\n\n\tconst handleEdit = () => {\n\t\tsetShowEditDialog(true);\n\t};\n\n\tconst handleAutomate = () => {\n\t\tvoid navigate({\n\t\t\tto: \"/automations/create\",\n\t\t});\n\t};\n\n\tconst isDefaultQueue = queue.name === \"default\";\n\n\tconst menuItems = [\n\t\t{\n\t\t\tlabel: \"Copy ID\",\n\t\t\ticon: Copy,\n\t\t\taction: handleCopyId,\n\t\t\tshow: true,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Edit\",\n\t\t\ticon: Edit,\n\t\t\taction: handleEdit,\n\t\t\tshow: true,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Delete\",\n\t\t\ticon: Trash2,\n\t\t\taction: () => setShowDeleteDialog(true),\n\t\t\tshow: !isDefaultQueue, // Default queue cannot be deleted\n\t\t\tvariant: \"destructive\" as const,\n\t\t},\n\t\t{\n\t\t\tlabel: \"Automate\",\n\t\t\ticon: Zap,\n\t\t\taction: handleAutomate,\n\t\t\tshow: true,\n\t\t},\n\t].filter((item) => item.show);\n\n\treturn {\n\t\tmenuItems,\n\t\tshowDeleteDialog,\n\t\tsetShowDeleteDialog,\n\t\tshowEditDialog,\n\t\tsetShowEditDialog,\n\t\ttriggerIcon: MoreVertical,\n\t};\n};\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { WorkPoolQueueCreateOrEditDialog } from \"@/components/work-pools/work-pool-queue-create-dialog\";\nimport { cn } from \"@/utils\";\nimport { DeleteWorkPoolQueueDialog } from \"./components/delete-work-pool-queue-dialog\";\nimport { useWorkPoolQueueMenu } from \"./hooks/use-work-pool-queue-menu\";\n\ntype WorkPoolQueueMenuProps = {\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueMenu = ({\n\tqueue,\n\tonUpdate,\n\tclassName,\n}: WorkPoolQueueMenuProps) => {\n\tconst {\n\t\tmenuItems,\n\t\tshowDeleteDialog,\n\t\tsetShowDeleteDialog,\n\t\tshowEditDialog,\n\t\tsetShowEditDialog,\n\t\ttriggerIcon: TriggerIcon,\n\t} = useWorkPoolQueueMenu(queue);\n\n\treturn (\n\t\t<>\n\t\t\t<DropdownMenu>\n\t\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\tsize=\"icon\"\n\t\t\t\t\t\tclassName={cn(\"size-8\", className)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"sr-only\">Open menu</span>\n\t\t\t\t\t\t<TriggerIcon className=\"size-4\" />\n\t\t\t\t\t</Button>\n\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t<DropdownMenuContent align=\"end\">\n\t\t\t\t\t{menuItems.map((item) => {\n\t\t\t\t\t\tconst Icon = item.icon;\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\tkey={item.label}\n\t\t\t\t\t\t\t\tonClick={item.action}\n\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\titem.variant === \"destructive\" && \"text-destructive\",\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Icon className=\"mr-2 h-4 w-4\" />\n\t\t\t\t\t\t\t\t{item.label}\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</DropdownMenuContent>\n\t\t\t</DropdownMenu>\n\t\t\t<DeleteWorkPoolQueueDialog\n\t\t\t\tqueue={queue}\n\t\t\t\topen={showDeleteDialog}\n\t\t\t\tonOpenChange={setShowDeleteDialog}\n\t\t\t\tonDeleted={onUpdate}\n\t\t\t/>\n\t\t\t<WorkPoolQueueCreateOrEditDialog\n\t\t\t\tworkPoolName={queue.work_pool_name ?? \"\"}\n\t\t\t\tqueueToEdit={queue}\n\t\t\t\topen={showEditDialog}\n\t\t\t\tonOpenChange={setShowEditDialog}\n\t\t\t\tonSubmit={() => {\n\t\t\t\t\tsetShowEditDialog(false);\n\t\t\t\t\tonUpdate?.();\n\t\t\t\t}}\n\t\t\t/>\n\t\t</>\n\t);\n};\n","import { useCallback } from \"react\";\nimport { toast } from \"sonner\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport {\n\tusePauseWorkPoolQueueMutation,\n\tuseResumeWorkPoolQueueMutation,\n} from \"@/api/work-pool-queues\";\n\nexport const useWorkPoolQueueToggle = (\n\tqueue: WorkPoolQueue,\n\tonUpdate?: () => void,\n) => {\n\tconst pauseMutation = usePauseWorkPoolQueueMutation();\n\tconst resumeMutation = useResumeWorkPoolQueueMutation();\n\n\tconst handleToggle = useCallback(\n\t\t(isResumed: boolean) => {\n\t\t\tif (!queue.work_pool_name) {\n\t\t\t\ttoast.error(\"Work pool name is required\");\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst mutation = isResumed ? resumeMutation : pauseMutation;\n\t\t\tconst action = isResumed ? \"resumed\" : \"paused\";\n\n\t\t\tmutation.mutate(\n\t\t\t\t{ workPoolName: queue.work_pool_name, queueName: queue.name },\n\t\t\t\t{\n\t\t\t\t\tonSuccess: () => {\n\t\t\t\t\t\ttoast.success(`Queue ${action} successfully`);\n\t\t\t\t\t\tonUpdate?.();\n\t\t\t\t\t},\n\t\t\t\t\tonError: () => {\n\t\t\t\t\t\ttoast.error(`Failed to ${action.slice(0, -1)} queue`);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t);\n\t\t},\n\t\t[queue, pauseMutation, resumeMutation, onUpdate],\n\t);\n\n\treturn {\n\t\thandleToggle,\n\t\tisLoading: pauseMutation.isPending || resumeMutation.isPending,\n\t};\n};\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { Switch } from \"@/components/ui/switch\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"@/components/ui/tooltip\";\nimport { cn } from \"@/utils\";\nimport { useWorkPoolQueueToggle } from \"./hooks/use-work-pool-queue-toggle\";\n\ntype WorkPoolQueueToggleProps = {\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tdisabled?: boolean;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueToggle = ({\n\tqueue,\n\tonUpdate,\n\tdisabled = false,\n\tclassName,\n}: WorkPoolQueueToggleProps) => {\n\tconst { handleToggle, isLoading } = useWorkPoolQueueToggle(queue, onUpdate);\n\tconst isPaused = queue.status === \"PAUSED\";\n\n\tconst isDisabled = disabled || isLoading;\n\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<Tooltip>\n\t\t\t\t<TooltipTrigger asChild>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\tchecked={!isPaused}\n\t\t\t\t\t\t\tonCheckedChange={handleToggle}\n\t\t\t\t\t\t\tdisabled={isDisabled}\n\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\tisPaused ? \"Resume work pool queue\" : \"Pause work pool queue\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tclassName={cn(className)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</TooltipTrigger>\n\t\t\t\t<TooltipContent>\n\t\t\t\t\t<p>Pause or resume this work pool queue</p>\n\t\t\t\t</TooltipContent>\n\t\t\t</Tooltip>\n\t\t</TooltipProvider>\n\t);\n};\n"],"names":["__iconNode","SquarePen","createLucideIcon","statusConfig","WorkPoolQueueStatusBadge","status","className","config","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Badge","cn","Pause","TooltipContent","formSchema","z.object","z.string","z.boolean","z.union","val","num","z.number","DEFAULT_VALUES","useCreateOrEditWorkPoolQueueForm","workPoolName","queueToEdit","onSubmit","createWorkPoolQueue","isCreateLoading","useCreateWorkPoolQueueMutation","updateWorkPoolQueue","isUpdateLoading","useUpdateWorkPoolQueueMutation","form","useForm","zodResolver","useEffect","values","workQueueData","toast","error","message","WorkPoolQueueCreateOrEditDialog","open","onOpenChange","isLoading","saveOrUpdate","isEditMode","dialogTitle","submitButtonText","Dialog","DialogContent","DialogHeader","DialogTitle","Form","e","FormMessage","FormField","field","FormItem","FormLabel","FormControl","Input","Textarea","Icon","DialogFooter","DialogTrigger","Button","DeleteWorkPoolQueueDialog","queue","onDeleted","deleteQueueMutation","useDeleteWorkPoolQueueMutation","handleDelete","DeleteConfirmationDialog","useWorkPoolQueueMenu","navigate","useNavigate","showDeleteDialog","setShowDeleteDialog","useState","showEditDialog","setShowEditDialog","handleCopyId","handleEdit","handleAutomate","isDefaultQueue","Copy","Edit","Trash2","Zap","item","MoreVertical","WorkPoolQueueMenu","onUpdate","menuItems","TriggerIcon","Fragment","DropdownMenu","DropdownMenuTrigger","DropdownMenuContent","DropdownMenuItem","useWorkPoolQueueToggle","pauseMutation","usePauseWorkPoolQueueMutation","resumeMutation","useResumeWorkPoolQueueMutation","useCallback","isResumed","mutation","action","WorkPoolQueueToggle","disabled","handleToggle","isPaused","isDisabled","Switch"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as c,j as e,s as k,u as I,L as J,C as G,H as Z,D as X,G as pe,m as ge,p as L}from"./vendor-tanstack-BK8oseNA.js";import{bF as je,aU as x,p as C,bG as R,x as w,bc as fe,bb as be,aa as ee,G as Q,bH as we,bI as ye,bJ as se,bw as Ne,bK as W,bL as ve,aC as Ce,aA as ae,N as ke,H as Se,bM as te,bN as _e,bO as De,y as Te,A as We,bP as A,bQ as O,F as Fe,bR as B,B as Ee,g as Pe,h as z,bq as Me,bz as Ie,bB as Le,bS as ne,ar as Re,bT as le,bU as M,o as re,E as q,s as V,t as K,v as Y,w as Qe,bV as Ae,bW as Oe,bX as E,bY as Be,bZ as $e,b_ as ze,b$ as qe,c0 as Ve,au as Ke,av as Ye,aw as Ue,ax as T,b3 as h,c1 as He}from"./index-WYPZo52S.js";import{D as Je}from"./index-DzMGV8GV.js";import{S as Ge,a as Ze,F as Xe}from"./flow-runs-pagination-DnwkJapB.js";import{D as oe,a as ie,b as ce,d as de}from"./dropdown-menu-xZ_3w9OP.js";import{D as ue}from"./delete-confirmation-dialog-COdZmNfa.js";import{S as es,W as ss,a as as,b as ts,c as ns}from"./work-pool-queue-toggle-D4eeo-hi.js";import{D as me}from"./data-table-BjFlVIyC.js";import{o as ls,e as rs}from"./vendor-forms-DxqqmhL5.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-CznP1SOq.js";import"./vendor-recharts-D4imLXNl.js";import"./vendor-date-7GxEwcQM.js";import"./use-quick-run-BxAMqZDM.js";import"./use-delete-confirmation-dialog-CvQEyyhU.js";import"./index-D3ILnEzm.js";import"./cronstrue-WDy4rv2V.js";import"./use-is-overflowing-Bv_2pq2B.js";import"./index-D08xgmV0.js";import"./tags-input-D1RJZEUA.js";import"./zod-DgSl2Nua.js";import"./form-BTub_PhK.js";import"./textarea-D8LjlIx7.js";import"./table-CEAx-qHs.js";const os=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],is=je("circle-question-mark",os),he=({command:s,title:a,subtitle:t,className:n})=>{const[o,l]=c.useState(!1),r=async()=>{if(!o){l(!0);try{await navigator.clipboard.writeText(s),w.success("Command copied to clipboard")}catch{w.error("Failed to copy command")}finally{l(!1)}}};return e.jsxs("div",{className:x("space-y-4",n),children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-1",children:a}),e.jsx("p",{className:"text-muted-foreground text-sm",children:t})]}),e.jsxs("div",{className:"bg-muted border border-border rounded-lg shadow-sm overflow-hidden",children:[e.jsxs("div",{className:"bg-muted/80 border-b border-border px-3 py-2 flex items-center space-x-2",children:[e.jsxs("div",{className:"flex space-x-1",children:[e.jsx("div",{className:"w-3 h-3 bg-red-500 rounded-full"}),e.jsx("div",{className:"w-3 h-3 bg-yellow-500 rounded-full"}),e.jsx("div",{className:"w-3 h-3 bg-green-500 rounded-full"})]}),e.jsx(C,{variant:"ghost",size:"sm",onClick:r,disabled:o,className:"ml-auto text-muted-foreground hover:text-foreground hover:bg-muted h-6 w-6 p-0",children:e.jsx(R,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"bg-gray-800 dark:bg-gray-900 px-4 py-2",children:e.jsxs("p",{className:"py-1",children:[e.jsx("code",{className:"font-mono text-sm text-gray-300 select-all",children:s}),e.jsx("span",{className:"ml-1 -mb-1 inline-block w-[7px] h-[18px] bg-gray-400 terminal-cursor"})]})})]})]})},cs=({workPoolName:s,className:a})=>{const[t,n]=c.useState({pageIndex:0,pageSize:50}),[o,l]=c.useState("CREATED_DESC"),[r,i]=c.useState([]),d=c.useMemo(()=>({page:t.pageIndex+1,limit:t.pageSize,sort:o,work_pools:{operator:"and_",name:{any_:[s]}},deployments:{operator:"and_",flow_or_deployment_name:{like_:r.find(f=>f.id==="flowOrDeploymentName")?.value??""},tags:{operator:"and_",all_:r.find(f=>f.id==="tags")?.value??[]}}}),[s,t,o,r]),b=c.useMemo(()=>({offset:0,sort:"CREATED_DESC",work_pools:{operator:"and_",name:{any_:[s]}}}),[s]),{data:u}=k(fe(d)),{data:g}=k(be(b)),y=c.useMemo(()=>[...new Set((u?.results??[]).map(f=>f.flow_id))],[u?.results]),{data:v}=k(ee({flows:{operator:"and_",id:{any_:y}},offset:0,sort:"NAME_ASC"},{enabled:y.length>0})),j=c.useMemo(()=>{if(!u?.results)return[];const f=new Map(v?.map(S=>[S.id,S])??[]);return u.results.map(S=>({...S,flow:f.get(S.flow_id)}))},[u?.results,v]),N=c.useCallback(f=>{n(f)},[]),D=c.useCallback(f=>{l(f)},[]),F=c.useCallback(f=>{i(f)},[]);return!u||g===void 0?e.jsx("div",{className:a,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading deployments..."})}):e.jsx("div",{className:a,children:e.jsx(Je,{deployments:j,currentDeploymentsCount:g,pageCount:u.pages,pagination:t,sort:o,columnFilters:r,onPaginationChange:N,onSortChange:D,onColumnFiltersChange:F})})},ds=s=>{switch(s){case"READY":return"Ready";case"PAUSED":return"Paused";case"NOT_READY":return"Not Ready"}},us=s=>{switch(s){case"READY":return"bg-green-500";case"PAUSED":return"bg-yellow-500";case"NOT_READY":return"bg-red-500"}},ms=({status:s,className:a})=>{const t=ds(s),n=us(s);return e.jsxs(Q,{variant:"secondary",className:x("flex items-center space-x-1",a),children:[s==="PAUSED"?e.jsx(we,{className:"h-2 w-2 text-muted-foreground"}):e.jsx("div",{className:x("h-2 w-2 rounded-full",n)}),e.jsx("span",{children:t})]})},P=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),hs=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),_=({children:s,className:a})=>e.jsx("dd",{className:x("text-sm",a),children:s});function xs({workPool:s}){const{data:a=[],isLoading:t}=k(se(s.name)),n=c.useMemo(()=>t||a.length===0?null:a.map(r=>r.last_heartbeat_time).filter(r=>!!r).sort((r,i)=>new Date(i).getTime()-new Date(r).getTime())[0]||null,[a,t]),o=[{field:"Status",ComponentValue:()=>e.jsx("dd",{children:e.jsx(ms,{status:s.status||"NOT_READY"})})},{field:"Description",ComponentValue:()=>s.description?e.jsx(_,{children:s.description}):null},{field:"Type",ComponentValue:()=>s.type?e.jsx(_,{children:Ne(s.type)}):e.jsx(P,{})},{field:"Concurrency Limit",ComponentValue:()=>e.jsx(_,{children:s.concurrency_limit?String(s.concurrency_limit):"Unlimited"})},{field:"Last Polled",ComponentValue:()=>n?e.jsx(_,{children:e.jsx(W,{date:n})}):a.length===0?null:e.jsx(_,{className:"text-muted-foreground",children:"No recent activity"})},{field:"Created",ComponentValue:()=>s.created?e.jsx(_,{children:e.jsx(W,{date:s.created})}):e.jsx(P,{})},{field:"Last Updated",ComponentValue:()=>s.updated?e.jsx(_,{children:e.jsx(W,{date:s.updated})}):e.jsx(P,{})}].filter(({ComponentValue:l})=>l()!==null);return t?e.jsx("div",{className:"text-muted-foreground text-sm",children:"Loading work pool details..."}):e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:o.map(({field:l,ComponentValue:r})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(hs,{children:l}),e.jsx(r,{})]})},l))})})}function ps({workPool:s}){const a=s.base_job_template;if(!a?.variables||typeof a.variables!="object"||!("properties"in a.variables)||!a.variables.properties)return null;const t=a.variables.properties,n=(l,r)=>r.title||l.split("_").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" "),o=l=>l==null?"None":typeof l=="boolean"?l.toString():Array.isArray(l)?l.length>0?l.join(", "):"None":typeof l=="object"?JSON.stringify(l):String(l);return e.jsxs("div",{children:[e.jsx("h3",{className:"mb-4 text-md",children:"Base Job Configuration"}),e.jsx("ul",{className:"flex flex-col gap-3",children:Object.entries(t).map(([l,r])=>{const i=r.default??null;return e.jsxs("li",{className:"flex flex-col gap-1 text-sm",children:[e.jsx("span",{className:"text-muted-foreground font-medium",children:n(l,r)}),e.jsx("span",{className:"break-words",children:o(i)})]},l)})})]})}function U({workPool:s,alternate:a=!1,className:t}){const n=a?"space-y-4":"space-y-6";return e.jsxs("div",{className:x(n,t),children:[e.jsx(xs,{workPool:s}),!!(s.base_job_template?.variables&&typeof s.base_job_template.variables=="object"&&"properties"in s.base_job_template.variables&&s.base_job_template.variables.properties&&Object.keys(s.base_job_template.variables.properties).length>0)&&e.jsxs(e.Fragment,{children:[e.jsx(ye,{}),e.jsx(ps,{workPool:s})]})]})}const gs=({workPoolName:s,className:a})=>{const[t,n]=c.useState({limit:10,page:1}),[o,l]=c.useState(""),[r,i]=c.useState(new Set),d=ve(o,500),b=c.useMemo(()=>{const m={page:t.page,limit:t.limit,sort:"START_TIME_DESC",work_pools:{operator:"and_",name:{any_:[s]}}};if(d.trim()&&(m.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const p={state:{operator:"and_",name:{any_:Array.from(r)}}};m.flow_runs?m.flow_runs={...m.flow_runs,...p}:m.flow_runs={operator:"and_",...p}}return m},[s,t,d,r]),u=c.useMemo(()=>{const m={work_pools:{operator:"and_",name:{any_:[s]}}};if(d.trim()&&(m.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const p={state:{operator:"and_",name:{any_:Array.from(r)}}};m.flow_runs?m.flow_runs={...m.flow_runs,...p}:m.flow_runs={operator:"and_",...p}}return m},[s,d,r]),{data:g}=k(Ce(b)),{data:y}=k(ae(u)),v=c.useMemo(()=>[...new Set((g?.results??[]).map(m=>m.flow_id))],[g?.results]),{data:j}=k(ee({flows:{operator:"and_",id:{any_:v}},offset:0,sort:"NAME_ASC"},{enabled:v.length>0})),N=c.useMemo(()=>{if(!g?.results)return[];const m=new Map(j?.map(p=>[p.id,p])??[]);return g.results.map(p=>{const $=m.get(p.flow_id);return $?{...p,flow:$}:null}).filter(p=>p!==null)},[g?.results,j]),D=c.useCallback(m=>{l(m.target.value),n(p=>({...p,page:1}))},[]),F=c.useCallback(m=>{n(m)},[]),f=c.useCallback(m=>{i(m),n(p=>({...p,page:1}))},[]),S=c.useCallback(()=>{l(""),i(new Set),n(m=>({...m,page:1}))},[]);return!g||y===void 0?e.jsx("div",{className:a,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading flow runs..."})}):e.jsxs("div",{className:a,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(ke,{placeholder:"Search flow runs by name...",value:o,onChange:D,debounceMs:500})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(Ge,{selectedFilters:r,onSelectFilter:f})})]}),e.jsx(Ze,{flowRuns:N,onClearFilters:N.length===0?S:void 0}),g.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(Xe,{count:y,pages:g.pages,pagination:t,onChangePagination:F})})]})},js=({workPool:s,open:a,onOpenChange:t,onDeleted:n})=>{const o=I(),{deleteWorkPool:l,isPending:r}=Se(),i=()=>{l(s.name,{onSuccess:()=>{w.success("Work pool deleted successfully"),n?.(),o({to:"/work-pools"})},onError:()=>{w.error("Failed to delete work pool")}})};return e.jsx(ue,{isOpen:a,title:"Delete Work Pool",description:`Are you sure you want to delete the work pool "${s.name}"? This action cannot be undone.`,confirmText:s.name,isLoading:r,loadingText:"Deleting...",onConfirm:i,onClose:()=>t(!1)})},fs=s=>{const a=I(),[t,n]=c.useState(!1);return{menuItems:[{label:"Copy ID",icon:R,action:()=>{navigator.clipboard.writeText(s.id),w.success("ID copied to clipboard")},show:!0},{label:"Edit",icon:es,action:()=>{a({to:"/work-pools/work-pool/$workPoolName/edit",params:{workPoolName:s.name}})},show:!0},{label:"Delete",icon:te,action:()=>n(!0),show:!0,variant:"destructive"},{label:"Automate",icon:_e,action:()=>{a({to:"/automations/create"})},show:!0}].filter(d=>d.show),showDeleteDialog:t,setShowDeleteDialog:n,triggerIcon:De}},bs=({workPool:s,onUpdate:a,className:t})=>{const{menuItems:n,showDeleteDialog:o,setShowDeleteDialog:l,triggerIcon:r}=fs(s);return e.jsxs(e.Fragment,{children:[e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsxs(C,{variant:"outline",size:"icon",className:x("size-8",t),children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(r,{className:"size-4"})]})}),e.jsx(ce,{align:"end",children:n.map(i=>{const d=i.icon;return e.jsxs(de,{onClick:i.action,className:x(i.variant==="destructive"&&"text-destructive"),children:[e.jsx(d,{className:"mr-2 h-4 w-4"}),i.label]},i.label)})})]}),e.jsx(js,{workPool:s,open:o,onOpenChange:l,onDeleted:a})]})},ws=(s,a)=>{const{pauseWorkPool:t,isPending:n}=Te(),{resumeWorkPool:o,isPending:l}=We();return{handleToggle:c.useCallback(i=>{i?o(s.name,{onSuccess:()=>{w.success("Work pool resumed"),a?.()},onError:()=>{w.error("Failed to resume work pool")}}):t(s.name,{onSuccess:()=>{w.success("Work pool paused"),a?.()},onError:()=>{w.error("Failed to pause work pool")}})},[s.name,t,o,a]),isLoading:n||l}},ys=({workPool:s,onUpdate:a,className:t})=>{const{handleToggle:n,isLoading:o}=ws(s,a),l=s.status==="PAUSED";return e.jsxs(A,{children:[e.jsx(O,{asChild:!0,children:e.jsx("div",{children:e.jsx(Fe,{checked:!l,onCheckedChange:n,disabled:o,"aria-label":l?"Resume work pool":"Pause work pool",className:x(t)})})}),e.jsx(B,{children:e.jsx("p",{children:"Pause or resume this work pool"})})]})},Ns=({workPool:s,onUpdate:a,className:t})=>e.jsxs("header",{className:x("flex mb-4 flex-row items-center justify-between",t),children:[e.jsx(Ee,{className:t,children:e.jsxs(Pe,{children:[e.jsx(z,{children:e.jsx(Me,{to:"/work-pools",className:"text-xl font-semibold",children:"Work pools"})}),e.jsx(Ie,{}),e.jsx(z,{className:"text-xl font-semibold",children:e.jsx(Le,{children:s.name})})]})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(ys,{workPool:s,onUpdate:a}),e.jsx(bs,{workPool:s,onUpdate:a})]})]}),vs=({lateRunsCount:s,className:a})=>s===0?null:e.jsx(ne,{children:e.jsxs(A,{children:[e.jsx(O,{children:e.jsxs(Q,{variant:"warning",className:x("flex items-center space-x-1",a),children:[e.jsx(Re,{className:"h-3 w-3"}),e.jsx("span",{children:s})]})}),e.jsx(B,{children:e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-semibold",children:"Late Flow Runs"}),e.jsxs("p",{className:"text-sm",children:[s," flow run",s===1?"":"s"," running late"]})]})})]})}),Cs=({queue:s})=>{const{data:a=0}=k(ae({work_pools:{operator:"and_",name:{any_:[s.work_pool_name||""]}},work_pool_queues:{operator:"and_",name:{any_:[s.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Late"]}}}},3e4));return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(J,{to:"/work-pools/work-pool/$workPoolName/queue/$workQueueName",params:{workPoolName:s.work_pool_name||"",workQueueName:s.name},className:"font-medium text-blue-600 hover:text-blue-800",children:s.name}),e.jsx(vs,{lateRunsCount:a})]})},xe=({enableLateIndicator:s=!1}={})=>{const a=[];return a.push({accessorKey:"name",header:({column:t})=>e.jsx(C,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),className:"h-auto p-0 font-semibold",children:"Name"}),cell:({row:t})=>{const n=t.original;return s?e.jsx(Cs,{queue:n}):e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx(J,{to:"/work-pools/work-pool/$workPoolName/queue/$workQueueName",params:{workPoolName:n.work_pool_name||"",workQueueName:n.name},className:"font-medium text-blue-600 hover:text-blue-800",children:n.name})})}}),a.push({accessorKey:"concurrency_limit",header:({column:t})=>e.jsx(C,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),className:"h-auto p-0 font-semibold",children:"Concurrency Limit"}),cell:({row:t})=>{const n=t.original.concurrency_limit;return n!=null?n.toString():"∞"}}),a.push({accessorKey:"priority",header:({column:t})=>e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(C,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),className:"h-auto p-0 font-semibold",children:"Priority"}),e.jsx(ne,{children:e.jsxs(A,{children:[e.jsx(O,{children:e.jsx(is,{className:"h-4 w-4 text-muted-foreground"})}),e.jsx(B,{children:e.jsx("p",{children:"Lower numbers have higher priority"})})]})})]}),cell:({row:t})=>t.original.priority}),a.push({accessorKey:"status",header:"Status",cell:({row:t})=>e.jsx(ss,{status:t.original.status||"READY"})}),a.push({id:"actions",header:"",cell:({row:t})=>e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(as,{queue:t.original}),e.jsx(ts,{queue:t.original})]}),enableSorting:!1}),a};xe();const ks=({hasSearchQuery:s,workPoolName:a})=>s?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(le,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:"No queues found"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"No queues match your search criteria. Try adjusting your search."})]}):e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx("div",{className:"h-12 w-12 rounded-full bg-muted flex items-center justify-center mb-4",children:e.jsx(M,{className:"h-6 w-6 text-muted-foreground"})}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:"No queues yet"}),e.jsx("p",{className:"text-muted-foreground mb-4 max-w-md",children:"This work pool doesn't have any queues yet. Create your first queue to start organizing work."}),e.jsxs(C,{onClick:()=>{console.log("Create queue for pool:",a)},children:[e.jsx(M,{className:"h-4 w-4 mr-2"}),"Create Queue"]})]}),Ss=({searchQuery:s,onSearchChange:a,resultsCount:t,totalCount:n,workPoolName:o,className:l})=>{const[r,i]=c.useState(!1),d=s.length>0;return e.jsxs("div",{className:x("space-y-4",l),children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:s?`${t} of ${n} Work Queue${n!==1?"s":""}`:`${n} Work Queue${n!==1?"s":""}`}),e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>i(!0),children:e.jsx(M,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[d&&e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>a(""),children:"Clear filters"}),e.jsxs("div",{className:"relative",children:[e.jsx(le,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(re,{placeholder:"Search",value:s,onChange:b=>a(b.target.value),className:"pl-8 w-64"})]})]})]}),e.jsx(ns,{workPoolName:o,open:r,onOpenChange:i,onSubmit:()=>i(!1)})]})},_s=({queues:s,searchQuery:a,sortState:t,totalCount:n,workPoolName:o,className:l,onSearchChange:r,onSortingChange:i})=>{const d=c.useCallback(y=>{let v=t;typeof y=="function"?v=y(t):v=y,i(v)},[t,i]),b=xe({enableLateIndicator:!0}),u=G({data:s,columns:b,getCoreRowModel:X(),getSortedRowModel:Z(),state:{sorting:t},onSortingChange:d,initialState:{sorting:[{id:"name",desc:!1}]}}),g=s.length;return e.jsxs("div",{className:x("space-y-4",l),children:[e.jsx(Ss,{searchQuery:a,onSearchChange:r,resultsCount:g,totalCount:n,workPoolName:o}),g===0?e.jsx(ks,{hasSearchQuery:!!a,workPoolName:o}):e.jsx(me,{table:u})]})},Ds={ONLINE:{label:"Online",color:"bg-green-500"},OFFLINE:{label:"Offline",color:"bg-red-500"}},Ts=({status:s,className:a})=>{const t=Ds[s];return e.jsxs(Q,{variant:"secondary",className:x("flex items-center space-x-1",a),children:[e.jsx("div",{className:x("h-2 w-2 rounded-full",t.color)}),e.jsx("span",{children:t.label})]})},Ws=()=>[{accessorKey:"name",header:"Name",cell:({row:s})=>{const a=s.original;return e.jsx("span",{className:"font-medium",children:a.name})}},{accessorKey:"last_heartbeat_time",header:"Last Seen",cell:({row:s})=>{const a=s.original.last_heartbeat_time;return e.jsx(W,{date:a,format:"relative",showTooltip:!0})}},{accessorKey:"status",header:"Status",cell:({row:s})=>e.jsx(Ts,{status:s.original.status})}],Fs=({workPoolName:s,ActionsComponent:a})=>[...Ws(),{id:"actions",header:"",cell:({row:t})=>e.jsx(a,{worker:t.original,workPoolName:s}),enableSorting:!1,size:50,maxSize:50}],Es=({hasSearchQuery:s,workPoolName:a,className:t})=>s?e.jsxs(q,{children:[e.jsx(V,{id:"Search"}),e.jsx(K,{children:"No workers found"}),e.jsx(Y,{children:"No workers match your search criteria."})]}):e.jsx("div",{className:x("space-y-4",t),children:e.jsxs(q,{children:[e.jsx(V,{id:"Bot"}),e.jsx(K,{children:"No workers running"}),e.jsxs(Y,{children:["No workers are currently running for the “",a,"” work pool."]}),e.jsx(Qe,{children:e.jsx(he,{command:`prefect worker start --pool "${a}"`,title:"Start a worker",subtitle:"Run this command to start a worker for this pool"})})]})}),Ps=({worker:s,workPoolName:a,open:t,onOpenChange:n,onDeleted:o})=>{const{deleteWorker:l,isPending:r}=Ae(),i=()=>{l({workPoolName:a,workerName:s.name},{onSuccess:()=>{w.success("Worker deleted successfully"),o?.(),n(!1)},onError:()=>{w.error("Failed to delete worker")}})};return e.jsx(ue,{isOpen:t,title:"Delete Worker",description:`Are you sure you want to delete the worker "${s.name}"? This action cannot be undone.`,confirmText:s.name,isLoading:r,loadingText:"Deleting...",onConfirm:i,onClose:()=>n(!1)})},Ms=s=>{const[a,t]=c.useState(!1);return{menuItems:[{label:"Copy ID",icon:R,action:()=>{navigator.clipboard.writeText(s.id),w.success("ID copied to clipboard")},show:!0},{label:"Delete",icon:te,action:()=>t(!0),show:!0,variant:"destructive"}].filter(l=>l.show),showDeleteDialog:a,setShowDeleteDialog:t,triggerIcon:Oe}},Is=({worker:s,workPoolName:a,onWorkerDeleted:t,className:n})=>{const{menuItems:o,showDeleteDialog:l,setShowDeleteDialog:r,triggerIcon:i}=Ms(s);return e.jsxs(e.Fragment,{children:[e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsxs(C,{variant:"ghost",size:"icon",className:x("h-8 w-8",n),children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(i,{className:"h-4 w-4"})]})}),e.jsx(ce,{align:"end",children:o.map(d=>{const b=d.icon;return e.jsxs(de,{onClick:d.action,className:x(d.variant==="destructive"&&"text-destructive"),children:[e.jsx(b,{className:"mr-2 h-4 w-4"}),d.label]},d.label)})})]}),e.jsx(Ps,{worker:s,workPoolName:a,open:l,onOpenChange:r,onDeleted:t})]})},Ls=({worker:s,workPoolName:a})=>e.jsx(Is,{worker:s,workPoolName:a}),H=({searchQuery:s,onSearchChange:a,resultsCount:t,totalCount:n,className:o})=>{const l=s.length>0;return e.jsxs("div",{className:x("flex items-center justify-between",o),children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:s?`${t} of ${n} workers`:`${n} workers`}),e.jsxs("div",{className:"flex items-center space-x-2",children:[l&&e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>a(""),children:"Clear filters"}),e.jsx(re,{placeholder:"Search workers...",value:s,onChange:r=>a(r.target.value),className:"w-64"})]})]})},Rs=({workPoolName:s,workers:a,pagination:t,columnFilters:n,onPaginationChange:o,onColumnFiltersChange:l,className:r})=>{const i=n.find(j=>j.id==="name")?.value??"",d=c.useCallback(j=>{const N=n.filter(D=>D.id!=="name");l(j?[...N,{id:"name",value:j}]:N)},[l,n]),b=c.useCallback(j=>{let N=t;typeof j=="function"?N=j(t):N=j,o(N)},[t,o]),u=c.useMemo(()=>i?a.filter(j=>j.name.toLowerCase().includes(i.toLowerCase())):a,[a,i]),g=c.useMemo(()=>Fs({workPoolName:s,ActionsComponent:Ls}),[s]),y=G({data:u,columns:g,getCoreRowModel:X(),getSortedRowModel:Z(),getPaginationRowModel:pe(),manualPagination:!1,state:{pagination:t},onPaginationChange:b,initialState:{sorting:[{id:"name",desc:!1}]}});return a.length===0||i&&u.length===0?e.jsxs("div",{className:x("space-y-4",r),children:[e.jsx(H,{searchQuery:i,onSearchChange:d,resultsCount:u.length,totalCount:a.length}),e.jsx(Es,{hasSearchQuery:i.length>0,workPoolName:s})]}):e.jsxs("div",{className:x("space-y-4",r),children:[e.jsx(H,{searchQuery:i,onSearchChange:d,resultsCount:u.length,totalCount:a.length}),e.jsx(me,{table:y})]})};ls({tab:rs(["Details","Runs","Work Queues","Workers","Deployments"]).default("Runs")});const Qs=({workPoolName:s})=>{const[a,t]=c.useState(""),[n,o]=c.useState([]),{data:l}=L(He(s)),r=c.useMemo(()=>a?l.filter(i=>i.name.toLowerCase().includes(a.toLowerCase())):l,[l,a]);return e.jsx(_s,{queues:r,searchQuery:a,sortState:n,totalCount:l.length,workPoolName:s,onSearchChange:t,onSortingChange:o})},As=({workPoolName:s})=>{const[a,t]=c.useState({pageIndex:0,pageSize:10}),[n,o]=c.useState([]),{data:l}=L(se(s));return e.jsx(Rs,{workPoolName:s,workers:l,pagination:a,columnFilters:n,onPaginationChange:t,onColumnFiltersChange:o})};function da(){const{workPoolName:s}=E.useParams(),{tab:a}=E.useSearch(),t=I({from:E.fullPath}),n=ge(),{data:o}=L(Be(s)),l=o.status!=="READY",r=`prefect worker start --pool "${o.name}"`,i=c.useMemo(()=>[{id:"Details",label:"Details",hidden:!1,hiddenOnDesktop:!0},{id:"Runs",label:"Runs",hidden:!1,hiddenOnDesktop:!1},{id:"Work Queues",label:"Work Queues",hidden:!1,hiddenOnDesktop:!1},{id:"Workers",label:"Workers",hiddenOnDesktop:!1},{id:"Deployments",label:"Deployments",hidden:!1,hiddenOnDesktop:!1}].filter(u=>!u.hidden),[]),d=c.useCallback(u=>{t({search:{tab:u}})},[t]),b=c.useCallback(()=>{n.invalidateQueries({queryKey:$e.detailByName(s)})},[n,s]);return e.jsx(ze,{children:e.jsxs(qe,{children:[e.jsxs(Ve,{children:[e.jsx(Ns,{workPool:o,onUpdate:b}),l&&e.jsx("div",{className:"w-full bg-muted/50 py-6 px-4 rounded-lg mb-6",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsx(he,{command:r,title:"Your work pool is almost ready!",subtitle:"Run this command to start.",className:"py-0"})})})]}),e.jsxs("div",{className:"flex flex-col xl:flex-row xl:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs(Ke,{value:a,onValueChange:d,children:[e.jsx(Ye,{className:"flex w-full overflow-x-auto scrollbar-none",children:i.map(u=>e.jsx(Ue,{value:u.id,className:x("whitespace-nowrap flex-shrink-0",u.hiddenOnDesktop?"xl:hidden":""),children:u.label},u.id))}),e.jsx(T,{value:"Details",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(h,{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(h,{className:"h-3 w-16"}),e.jsx(h,{className:"h-6 w-24"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{className:"h-3 w-20"}),e.jsx(h,{className:"h-6 w-32"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{className:"h-3 w-24"}),e.jsx(h,{className:"h-6 w-28"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{className:"h-3 w-18"}),e.jsx(h,{className:"h-6 w-36"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(h,{className:"h-5 w-40"}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-32 w-full"})})]})]}),children:e.jsx(U,{workPool:o})})}),e.jsx(T,{value:"Runs",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(h,{className:"h-24 w-full"}),e.jsx(h,{className:"h-24 w-full"}),e.jsx(h,{className:"h-24 w-full"})]}),children:e.jsx(gs,{workPoolName:s})})}),e.jsx(T,{value:"Work Queues",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(h,{className:"h-6 w-24"}),e.jsx(h,{className:"h-6 w-8"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(h,{className:"h-6 w-64"})})]}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-34 w-full"})})]}),children:e.jsx(Qs,{workPoolName:s})})}),e.jsx(T,{value:"Workers",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(h,{className:"h-4 w-20"}),e.jsx(h,{className:"h-9 w-64"})]}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-34 w-full"})})]}),children:e.jsx(As,{workPoolName:s})})}),e.jsx(T,{value:"Deployments",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(h,{className:"h-4 w-20"}),e.jsx(h,{className:"h-9 w-64"})]}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-34 w-full"})})]}),children:e.jsx(cs,{workPoolName:s})})})]})}),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(U,{workPool:o,alternate:!0})})})]})]})})}export{da as component};
|
|
2
|
-
//# sourceMappingURL=work-pool._workPoolName-
|
|
1
|
+
import{r as c,j as e,s as k,u as I,L as H,C as G,H as Z,D as X,G as pe,m as ge,p as L}from"./vendor-tanstack-BK8oseNA.js";import{bH as je,aW as x,q as C,bI as R,y as w,be as fe,bd as be,ab as ee,H as Q,bJ as we,bK as ye,bL as se,by as Ne,bM as T,bN as ve,aE as Ce,aC as ae,O as ke,J as Se,bO as te,bP as _e,bQ as De,A as We,F as Te,bR as A,bS as O,G as Ee,bT as B,B as Fe,g as Pe,h as z,bs as Me,bB as Ie,bD as Le,bU as ne,as as Re,bV as le,bW as M,p as re,E as q,t as V,v as K,w as Y,x as Qe,bX as Ae,bY as Oe,bZ as F,b_ as Be,b$ as $e,c0 as ze,c1 as qe,c2 as Ve,aw as Ke,ax as Ye,ay as Ue,az as W,b5 as h,c3 as Je}from"./index-BvSl3DKP.js";import{D as He}from"./index-Bj0OOguP.js";import{S as Ge,a as Ze,F as Xe}from"./flow-runs-pagination-LrU9Aio8.js";import{D as oe,a as ie,b as ce,d as de}from"./dropdown-menu-CT-s-V7d.js";import{D as ue}from"./delete-confirmation-dialog-CTdWZlGM.js";import{S as es,W as ss,a as as,b as ts,c as ns}from"./work-pool-queue-toggle-BAOrV_0R.js";import{D as me}from"./data-table-Bw8TZx9D.js";import{o as ls,e as rs}from"./vendor-forms-DxqqmhL5.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-CznP1SOq.js";import"./vendor-recharts-D4imLXNl.js";import"./vendor-date-7GxEwcQM.js";import"./use-quick-run-BMnCkwSv.js";import"./use-delete-confirmation-dialog-CvQEyyhU.js";import"./index-tBdv6kBF.js";import"./cronstrue-WDy4rv2V.js";import"./use-is-overflowing-Bv_2pq2B.js";import"./index-ChIrfjIW.js";import"./tags-input-Ci2JQ-k3.js";import"./zod-DgSl2Nua.js";import"./form-CVSlEnl8.js";import"./textarea-BAtfAxtV.js";import"./table-vo9Do8sA.js";const os=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]],is=je("circle-question-mark",os),he=({command:s,title:a,subtitle:t,className:n})=>{const[o,l]=c.useState(!1),r=async()=>{if(!o){l(!0);try{await navigator.clipboard.writeText(s),w.success("Command copied to clipboard")}catch{w.error("Failed to copy command")}finally{l(!1)}}};return e.jsxs("div",{className:x("space-y-4",n),children:[e.jsxs("div",{className:"text-center",children:[e.jsx("h3",{className:"text-lg font-semibold text-foreground mb-1",children:a}),e.jsx("p",{className:"text-muted-foreground text-sm",children:t})]}),e.jsxs("div",{className:"bg-muted border border-border rounded-lg shadow-sm overflow-hidden",children:[e.jsxs("div",{className:"bg-muted/80 border-b border-border px-3 py-2 flex items-center space-x-2",children:[e.jsxs("div",{className:"flex space-x-1",children:[e.jsx("div",{className:"w-3 h-3 bg-red-500 rounded-full"}),e.jsx("div",{className:"w-3 h-3 bg-yellow-500 rounded-full"}),e.jsx("div",{className:"w-3 h-3 bg-green-500 rounded-full"})]}),e.jsx(C,{variant:"ghost",size:"sm",onClick:r,disabled:o,className:"ml-auto text-muted-foreground hover:text-foreground hover:bg-muted h-6 w-6 p-0",children:e.jsx(R,{className:"h-4 w-4"})})]}),e.jsx("div",{className:"bg-gray-800 dark:bg-gray-900 px-4 py-2",children:e.jsxs("p",{className:"py-1",children:[e.jsx("code",{className:"font-mono text-sm text-gray-300 select-all",children:s}),e.jsx("span",{className:"ml-1 -mb-1 inline-block w-[7px] h-[18px] bg-gray-400 terminal-cursor"})]})})]})]})},cs=({workPoolName:s,className:a})=>{const[t,n]=c.useState({pageIndex:0,pageSize:50}),[o,l]=c.useState("CREATED_DESC"),[r,i]=c.useState([]),d=c.useMemo(()=>({page:t.pageIndex+1,limit:t.pageSize,sort:o,work_pools:{operator:"and_",name:{any_:[s]}},deployments:{operator:"and_",flow_or_deployment_name:{like_:r.find(f=>f.id==="flowOrDeploymentName")?.value??""},tags:{operator:"and_",all_:r.find(f=>f.id==="tags")?.value??[]}}}),[s,t,o,r]),b=c.useMemo(()=>({offset:0,sort:"CREATED_DESC",work_pools:{operator:"and_",name:{any_:[s]}}}),[s]),{data:u}=k(fe(d)),{data:g}=k(be(b)),y=c.useMemo(()=>[...new Set((u?.results??[]).map(f=>f.flow_id))],[u?.results]),{data:v}=k(ee({flows:{operator:"and_",id:{any_:y}},offset:0,sort:"NAME_ASC"},{enabled:y.length>0})),j=c.useMemo(()=>{if(!u?.results)return[];const f=new Map(v?.map(S=>[S.id,S])??[]);return u.results.map(S=>({...S,flow:f.get(S.flow_id)}))},[u?.results,v]),N=c.useCallback(f=>{n(f)},[]),D=c.useCallback(f=>{l(f)},[]),E=c.useCallback(f=>{i(f)},[]);return!u||g===void 0?e.jsx("div",{className:a,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading deployments..."})}):e.jsx("div",{className:a,children:e.jsx(He,{deployments:j,currentDeploymentsCount:g,pageCount:u.pages,pagination:t,sort:o,columnFilters:r,onPaginationChange:N,onSortChange:D,onColumnFiltersChange:E})})},ds=s=>{switch(s){case"READY":return"Ready";case"PAUSED":return"Paused";case"NOT_READY":return"Not Ready"}},us=s=>{switch(s){case"READY":return"bg-green-500";case"PAUSED":return"bg-yellow-500";case"NOT_READY":return"bg-red-500"}},ms=({status:s,className:a})=>{const t=ds(s),n=us(s);return e.jsxs(Q,{variant:"secondary",className:x("flex items-center space-x-1",a),children:[s==="PAUSED"?e.jsx(we,{className:"h-2 w-2 text-muted-foreground"}):e.jsx("div",{className:x("h-2 w-2 rounded-full",n)}),e.jsx("span",{children:t})]})},P=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),hs=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),_=({children:s,className:a})=>e.jsx("dd",{className:x("text-sm",a),children:s});function xs({workPool:s}){const{data:a=[],isLoading:t}=k(se(s.name)),n=c.useMemo(()=>t||a.length===0?null:a.map(r=>r.last_heartbeat_time).filter(r=>!!r).sort((r,i)=>new Date(i).getTime()-new Date(r).getTime())[0]||null,[a,t]),o=[{field:"Status",ComponentValue:()=>e.jsx("dd",{children:e.jsx(ms,{status:s.status||"NOT_READY"})})},{field:"Description",ComponentValue:()=>s.description?e.jsx(_,{children:s.description}):null},{field:"Type",ComponentValue:()=>s.type?e.jsx(_,{children:Ne(s.type)}):e.jsx(P,{})},{field:"Concurrency Limit",ComponentValue:()=>e.jsx(_,{children:s.concurrency_limit?String(s.concurrency_limit):"Unlimited"})},{field:"Last Polled",ComponentValue:()=>n?e.jsx(_,{children:e.jsx(T,{date:n})}):a.length===0?null:e.jsx(_,{className:"text-muted-foreground",children:"No recent activity"})},{field:"Created",ComponentValue:()=>s.created?e.jsx(_,{children:e.jsx(T,{date:s.created})}):e.jsx(P,{})},{field:"Last Updated",ComponentValue:()=>s.updated?e.jsx(_,{children:e.jsx(T,{date:s.updated})}):e.jsx(P,{})}].filter(({ComponentValue:l})=>l()!==null);return t?e.jsx("div",{className:"text-muted-foreground text-sm",children:"Loading work pool details..."}):e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:o.map(({field:l,ComponentValue:r})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(hs,{children:l}),e.jsx(r,{})]})},l))})})}function ps({workPool:s}){const a=s.base_job_template;if(!a?.variables||typeof a.variables!="object"||!("properties"in a.variables)||!a.variables.properties)return null;const t=a.variables.properties,n=(l,r)=>r.title||l.split("_").map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join(" "),o=l=>l==null?"None":typeof l=="boolean"?l.toString():Array.isArray(l)?l.length>0?l.join(", "):"None":typeof l=="object"?JSON.stringify(l):String(l);return e.jsxs("div",{children:[e.jsx("h3",{className:"mb-4 text-md",children:"Base Job Configuration"}),e.jsx("ul",{className:"flex flex-col gap-3",children:Object.entries(t).map(([l,r])=>{const i=r.default??null;return e.jsxs("li",{className:"flex flex-col gap-1 text-sm",children:[e.jsx("span",{className:"text-muted-foreground font-medium",children:n(l,r)}),e.jsx("span",{className:"break-words",children:o(i)})]},l)})})]})}function U({workPool:s,alternate:a=!1,className:t}){const n=a?"space-y-4":"space-y-6";return e.jsxs("div",{className:x(n,t),children:[e.jsx(xs,{workPool:s}),!!(s.base_job_template?.variables&&typeof s.base_job_template.variables=="object"&&"properties"in s.base_job_template.variables&&s.base_job_template.variables.properties&&Object.keys(s.base_job_template.variables.properties).length>0)&&e.jsxs(e.Fragment,{children:[e.jsx(ye,{}),e.jsx(ps,{workPool:s})]})]})}const gs=({workPoolName:s,className:a})=>{const[t,n]=c.useState({limit:10,page:1}),[o,l]=c.useState(""),[r,i]=c.useState(new Set),d=ve(o,500),b=c.useMemo(()=>{const m={page:t.page,limit:t.limit,sort:"START_TIME_DESC",work_pools:{operator:"and_",name:{any_:[s]}}};if(d.trim()&&(m.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const p={state:{operator:"and_",name:{any_:Array.from(r)}}};m.flow_runs?m.flow_runs={...m.flow_runs,...p}:m.flow_runs={operator:"and_",...p}}return m},[s,t,d,r]),u=c.useMemo(()=>{const m={work_pools:{operator:"and_",name:{any_:[s]}}};if(d.trim()&&(m.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const p={state:{operator:"and_",name:{any_:Array.from(r)}}};m.flow_runs?m.flow_runs={...m.flow_runs,...p}:m.flow_runs={operator:"and_",...p}}return m},[s,d,r]),{data:g}=k(Ce(b)),{data:y}=k(ae(u)),v=c.useMemo(()=>[...new Set((g?.results??[]).map(m=>m.flow_id))],[g?.results]),{data:j}=k(ee({flows:{operator:"and_",id:{any_:v}},offset:0,sort:"NAME_ASC"},{enabled:v.length>0})),N=c.useMemo(()=>{if(!g?.results)return[];const m=new Map(j?.map(p=>[p.id,p])??[]);return g.results.map(p=>{const $=m.get(p.flow_id);return $?{...p,flow:$}:null}).filter(p=>p!==null)},[g?.results,j]),D=c.useCallback(m=>{l(m.target.value),n(p=>({...p,page:1}))},[]),E=c.useCallback(m=>{n(m)},[]),f=c.useCallback(m=>{i(m),n(p=>({...p,page:1}))},[]),S=c.useCallback(()=>{l(""),i(new Set),n(m=>({...m,page:1}))},[]);return!g||y===void 0?e.jsx("div",{className:a,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading flow runs..."})}):e.jsxs("div",{className:a,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(ke,{placeholder:"Search flow runs by name...",value:o,onChange:D,debounceMs:500})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(Ge,{selectedFilters:r,onSelectFilter:f})})]}),e.jsx(Ze,{flowRuns:N,onClearFilters:N.length===0?S:void 0}),g.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(Xe,{count:y,pages:g.pages,pagination:t,onChangePagination:E})})]})},js=({workPool:s,open:a,onOpenChange:t,onDeleted:n})=>{const o=I(),{deleteWorkPool:l,isPending:r}=Se(),i=()=>{l(s.name,{onSuccess:()=>{w.success("Work pool deleted successfully"),n?.(),o({to:"/work-pools"})},onError:()=>{w.error("Failed to delete work pool")}})};return e.jsx(ue,{isOpen:a,title:"Delete Work Pool",description:`Are you sure you want to delete the work pool "${s.name}"? This action cannot be undone.`,confirmText:s.name,isLoading:r,loadingText:"Deleting...",onConfirm:i,onClose:()=>t(!1)})},fs=s=>{const a=I(),[t,n]=c.useState(!1);return{menuItems:[{label:"Copy ID",icon:R,action:()=>{navigator.clipboard.writeText(s.id),w.success("ID copied to clipboard")},show:!0},{label:"Edit",icon:es,action:()=>{a({to:"/work-pools/work-pool/$workPoolName/edit",params:{workPoolName:s.name}})},show:!0},{label:"Delete",icon:te,action:()=>n(!0),show:!0,variant:"destructive"},{label:"Automate",icon:_e,action:()=>{a({to:"/automations/create"})},show:!0}].filter(d=>d.show),showDeleteDialog:t,setShowDeleteDialog:n,triggerIcon:De}},bs=({workPool:s,onUpdate:a,className:t})=>{const{menuItems:n,showDeleteDialog:o,setShowDeleteDialog:l,triggerIcon:r}=fs(s);return e.jsxs(e.Fragment,{children:[e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsxs(C,{variant:"outline",size:"icon",className:x("size-8",t),children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(r,{className:"size-4"})]})}),e.jsx(ce,{align:"end",children:n.map(i=>{const d=i.icon;return e.jsxs(de,{onClick:i.action,className:x(i.variant==="destructive"&&"text-destructive"),children:[e.jsx(d,{className:"mr-2 h-4 w-4"}),i.label]},i.label)})})]}),e.jsx(js,{workPool:s,open:o,onOpenChange:l,onDeleted:a})]})},ws=(s,a)=>{const{pauseWorkPool:t,isPending:n}=We(),{resumeWorkPool:o,isPending:l}=Te();return{handleToggle:c.useCallback(i=>{i?o(s.name,{onSuccess:()=>{w.success("Work pool resumed"),a?.()},onError:()=>{w.error("Failed to resume work pool")}}):t(s.name,{onSuccess:()=>{w.success("Work pool paused"),a?.()},onError:()=>{w.error("Failed to pause work pool")}})},[s.name,t,o,a]),isLoading:n||l}},ys=({workPool:s,onUpdate:a,className:t})=>{const{handleToggle:n,isLoading:o}=ws(s,a),l=s.status==="PAUSED";return e.jsxs(A,{children:[e.jsx(O,{asChild:!0,children:e.jsx("div",{children:e.jsx(Ee,{checked:!l,onCheckedChange:n,disabled:o,"aria-label":l?"Resume work pool":"Pause work pool",className:x(t)})})}),e.jsx(B,{children:e.jsx("p",{children:"Pause or resume this work pool"})})]})},Ns=({workPool:s,onUpdate:a,className:t})=>e.jsxs("header",{className:x("flex mb-4 flex-row items-center justify-between",t),children:[e.jsx(Fe,{className:t,children:e.jsxs(Pe,{children:[e.jsx(z,{children:e.jsx(Me,{to:"/work-pools",className:"text-xl font-semibold",children:"Work pools"})}),e.jsx(Ie,{}),e.jsx(z,{className:"text-xl font-semibold",children:e.jsx(Le,{children:s.name})})]})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(ys,{workPool:s,onUpdate:a}),e.jsx(bs,{workPool:s,onUpdate:a})]})]}),vs=({lateRunsCount:s,className:a})=>s===0?null:e.jsx(ne,{children:e.jsxs(A,{children:[e.jsx(O,{children:e.jsxs(Q,{variant:"warning",className:x("flex items-center space-x-1",a),children:[e.jsx(Re,{className:"h-3 w-3"}),e.jsx("span",{children:s})]})}),e.jsx(B,{children:e.jsxs("div",{className:"space-y-1",children:[e.jsx("p",{className:"font-semibold",children:"Late Flow Runs"}),e.jsxs("p",{className:"text-sm",children:[s," flow run",s===1?"":"s"," running late"]})]})})]})}),Cs=({queue:s})=>{const{data:a=0}=k(ae({work_pools:{operator:"and_",name:{any_:[s.work_pool_name||""]}},work_pool_queues:{operator:"and_",name:{any_:[s.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Late"]}}}},3e4));return e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(H,{to:"/work-pools/work-pool/$workPoolName/queue/$workQueueName",params:{workPoolName:s.work_pool_name||"",workQueueName:s.name},className:"font-medium text-blue-600 hover:text-blue-800",children:s.name}),e.jsx(vs,{lateRunsCount:a})]})},xe=({enableLateIndicator:s=!1}={})=>{const a=[];return a.push({accessorKey:"name",header:({column:t})=>e.jsx(C,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),className:"h-auto p-0 font-semibold",children:"Name"}),cell:({row:t})=>{const n=t.original;return s?e.jsx(Cs,{queue:n}):e.jsx("div",{className:"flex items-center space-x-2",children:e.jsx(H,{to:"/work-pools/work-pool/$workPoolName/queue/$workQueueName",params:{workPoolName:n.work_pool_name||"",workQueueName:n.name},className:"font-medium text-blue-600 hover:text-blue-800",children:n.name})})}}),a.push({accessorKey:"concurrency_limit",header:({column:t})=>e.jsx(C,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),className:"h-auto p-0 font-semibold",children:"Concurrency Limit"}),cell:({row:t})=>{const n=t.original.concurrency_limit;return n!=null?n.toString():"∞"}}),a.push({accessorKey:"priority",header:({column:t})=>e.jsxs("div",{className:"flex items-center space-x-1",children:[e.jsx(C,{variant:"ghost",onClick:()=>t.toggleSorting(t.getIsSorted()==="asc"),className:"h-auto p-0 font-semibold",children:"Priority"}),e.jsx(ne,{children:e.jsxs(A,{children:[e.jsx(O,{children:e.jsx(is,{className:"h-4 w-4 text-muted-foreground"})}),e.jsx(B,{children:e.jsx("p",{children:"Lower numbers have higher priority"})})]})})]}),cell:({row:t})=>t.original.priority}),a.push({accessorKey:"status",header:"Status",cell:({row:t})=>e.jsx(ss,{status:t.original.status||"READY"})}),a.push({id:"actions",header:"",cell:({row:t})=>e.jsxs("div",{className:"flex items-center justify-end gap-2",children:[e.jsx(as,{queue:t.original}),e.jsx(ts,{queue:t.original})]}),enableSorting:!1}),a};xe();const ks=({hasSearchQuery:s,workPoolName:a})=>s?e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx(le,{className:"h-12 w-12 text-muted-foreground mb-4"}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:"No queues found"}),e.jsx("p",{className:"text-muted-foreground mb-4",children:"No queues match your search criteria. Try adjusting your search."})]}):e.jsxs("div",{className:"flex flex-col items-center justify-center py-12 text-center",children:[e.jsx("div",{className:"h-12 w-12 rounded-full bg-muted flex items-center justify-center mb-4",children:e.jsx(M,{className:"h-6 w-6 text-muted-foreground"})}),e.jsx("h3",{className:"text-lg font-medium text-foreground mb-2",children:"No queues yet"}),e.jsx("p",{className:"text-muted-foreground mb-4 max-w-md",children:"This work pool doesn't have any queues yet. Create your first queue to start organizing work."}),e.jsxs(C,{onClick:()=>{console.log("Create queue for pool:",a)},children:[e.jsx(M,{className:"h-4 w-4 mr-2"}),"Create Queue"]})]}),Ss=({searchQuery:s,onSearchChange:a,resultsCount:t,totalCount:n,workPoolName:o,className:l})=>{const[r,i]=c.useState(!1),d=s.length>0;return e.jsxs("div",{className:x("space-y-4",l),children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:s?`${t} of ${n} Work Queue${n!==1?"s":""}`:`${n} Work Queue${n!==1?"s":""}`}),e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>i(!0),children:e.jsx(M,{className:"h-4 w-4"})})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[d&&e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>a(""),children:"Clear filters"}),e.jsxs("div",{className:"relative",children:[e.jsx(le,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx(re,{placeholder:"Search",value:s,onChange:b=>a(b.target.value),className:"pl-8 w-64"})]})]})]}),e.jsx(ns,{workPoolName:o,open:r,onOpenChange:i,onSubmit:()=>i(!1)})]})},_s=({queues:s,searchQuery:a,sortState:t,totalCount:n,workPoolName:o,className:l,onSearchChange:r,onSortingChange:i})=>{const d=c.useCallback(y=>{let v=t;typeof y=="function"?v=y(t):v=y,i(v)},[t,i]),b=xe({enableLateIndicator:!0}),u=G({data:s,columns:b,getCoreRowModel:X(),getSortedRowModel:Z(),state:{sorting:t},onSortingChange:d,initialState:{sorting:[{id:"name",desc:!1}]}}),g=s.length;return e.jsxs("div",{className:x("space-y-4",l),children:[e.jsx(Ss,{searchQuery:a,onSearchChange:r,resultsCount:g,totalCount:n,workPoolName:o}),g===0?e.jsx(ks,{hasSearchQuery:!!a,workPoolName:o}):e.jsx(me,{table:u})]})},Ds={ONLINE:{label:"Online",color:"bg-green-500"},OFFLINE:{label:"Offline",color:"bg-red-500"}},Ws=({status:s,className:a})=>{const t=Ds[s];return e.jsxs(Q,{variant:"secondary",className:x("flex items-center space-x-1",a),children:[e.jsx("div",{className:x("h-2 w-2 rounded-full",t.color)}),e.jsx("span",{children:t.label})]})},Ts=()=>[{accessorKey:"name",header:"Name",cell:({row:s})=>{const a=s.original;return e.jsx("span",{className:"font-medium",children:a.name})}},{accessorKey:"last_heartbeat_time",header:"Last Seen",cell:({row:s})=>{const a=s.original.last_heartbeat_time;return e.jsx(T,{date:a,format:"relative",showTooltip:!0})}},{accessorKey:"status",header:"Status",cell:({row:s})=>e.jsx(Ws,{status:s.original.status})}],Es=({workPoolName:s,ActionsComponent:a})=>[...Ts(),{id:"actions",header:"",cell:({row:t})=>e.jsx(a,{worker:t.original,workPoolName:s}),enableSorting:!1,size:50,maxSize:50}],Fs=({hasSearchQuery:s,workPoolName:a,className:t})=>s?e.jsxs(q,{children:[e.jsx(V,{id:"Search"}),e.jsx(K,{children:"No workers found"}),e.jsx(Y,{children:"No workers match your search criteria."})]}):e.jsx("div",{className:x("space-y-4",t),children:e.jsxs(q,{children:[e.jsx(V,{id:"Bot"}),e.jsx(K,{children:"No workers running"}),e.jsxs(Y,{children:["No workers are currently running for the “",a,"” work pool."]}),e.jsx(Qe,{children:e.jsx(he,{command:`prefect worker start --pool "${a}"`,title:"Start a worker",subtitle:"Run this command to start a worker for this pool"})})]})}),Ps=({worker:s,workPoolName:a,open:t,onOpenChange:n,onDeleted:o})=>{const{deleteWorker:l,isPending:r}=Ae(),i=()=>{l({workPoolName:a,workerName:s.name},{onSuccess:()=>{w.success("Worker deleted successfully"),o?.(),n(!1)},onError:()=>{w.error("Failed to delete worker")}})};return e.jsx(ue,{isOpen:t,title:"Delete Worker",description:`Are you sure you want to delete the worker "${s.name}"? This action cannot be undone.`,confirmText:s.name,isLoading:r,loadingText:"Deleting...",onConfirm:i,onClose:()=>n(!1)})},Ms=s=>{const[a,t]=c.useState(!1);return{menuItems:[{label:"Copy ID",icon:R,action:()=>{navigator.clipboard.writeText(s.id),w.success("ID copied to clipboard")},show:!0},{label:"Delete",icon:te,action:()=>t(!0),show:!0,variant:"destructive"}].filter(l=>l.show),showDeleteDialog:a,setShowDeleteDialog:t,triggerIcon:Oe}},Is=({worker:s,workPoolName:a,onWorkerDeleted:t,className:n})=>{const{menuItems:o,showDeleteDialog:l,setShowDeleteDialog:r,triggerIcon:i}=Ms(s);return e.jsxs(e.Fragment,{children:[e.jsxs(oe,{children:[e.jsx(ie,{asChild:!0,children:e.jsxs(C,{variant:"ghost",size:"icon",className:x("h-8 w-8",n),children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(i,{className:"h-4 w-4"})]})}),e.jsx(ce,{align:"end",children:o.map(d=>{const b=d.icon;return e.jsxs(de,{onClick:d.action,className:x(d.variant==="destructive"&&"text-destructive"),children:[e.jsx(b,{className:"mr-2 h-4 w-4"}),d.label]},d.label)})})]}),e.jsx(Ps,{worker:s,workPoolName:a,open:l,onOpenChange:r,onDeleted:t})]})},Ls=({worker:s,workPoolName:a})=>e.jsx(Is,{worker:s,workPoolName:a}),J=({searchQuery:s,onSearchChange:a,resultsCount:t,totalCount:n,className:o})=>{const l=s.length>0;return e.jsxs("div",{className:x("flex items-center justify-between",o),children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:s?`${t} of ${n} workers`:`${n} workers`}),e.jsxs("div",{className:"flex items-center space-x-2",children:[l&&e.jsx(C,{variant:"ghost",size:"sm",onClick:()=>a(""),children:"Clear filters"}),e.jsx(re,{placeholder:"Search workers...",value:s,onChange:r=>a(r.target.value),className:"w-64"})]})]})},Rs=({workPoolName:s,workers:a,pagination:t,columnFilters:n,onPaginationChange:o,onColumnFiltersChange:l,className:r})=>{const i=n.find(j=>j.id==="name")?.value??"",d=c.useCallback(j=>{const N=n.filter(D=>D.id!=="name");l(j?[...N,{id:"name",value:j}]:N)},[l,n]),b=c.useCallback(j=>{let N=t;typeof j=="function"?N=j(t):N=j,o(N)},[t,o]),u=c.useMemo(()=>i?a.filter(j=>j.name.toLowerCase().includes(i.toLowerCase())):a,[a,i]),g=c.useMemo(()=>Es({workPoolName:s,ActionsComponent:Ls}),[s]),y=G({data:u,columns:g,getCoreRowModel:X(),getSortedRowModel:Z(),getPaginationRowModel:pe(),manualPagination:!1,state:{pagination:t},onPaginationChange:b,initialState:{sorting:[{id:"name",desc:!1}]}});return a.length===0||i&&u.length===0?e.jsxs("div",{className:x("space-y-4",r),children:[e.jsx(J,{searchQuery:i,onSearchChange:d,resultsCount:u.length,totalCount:a.length}),e.jsx(Fs,{hasSearchQuery:i.length>0,workPoolName:s})]}):e.jsxs("div",{className:x("space-y-4",r),children:[e.jsx(J,{searchQuery:i,onSearchChange:d,resultsCount:u.length,totalCount:a.length}),e.jsx(me,{table:y})]})};ls({tab:rs(["Details","Runs","Work Queues","Workers","Deployments"]).default("Runs")});const Qs=({workPoolName:s})=>{const[a,t]=c.useState(""),[n,o]=c.useState([]),{data:l}=L(Je(s)),r=c.useMemo(()=>a?l.filter(i=>i.name.toLowerCase().includes(a.toLowerCase())):l,[l,a]);return e.jsx(_s,{queues:r,searchQuery:a,sortState:n,totalCount:l.length,workPoolName:s,onSearchChange:t,onSortingChange:o})},As=({workPoolName:s})=>{const[a,t]=c.useState({pageIndex:0,pageSize:10}),[n,o]=c.useState([]),{data:l}=L(se(s));return e.jsx(Rs,{workPoolName:s,workers:l,pagination:a,columnFilters:n,onPaginationChange:t,onColumnFiltersChange:o})};function da(){const{workPoolName:s}=F.useParams(),{tab:a}=F.useSearch(),t=I({from:F.fullPath}),n=ge(),{data:o}=L(Be(s)),l=o.status!=="READY",r=`prefect worker start --pool "${o.name}"`,i=c.useMemo(()=>[{id:"Details",label:"Details",hidden:!1,hiddenOnDesktop:!0},{id:"Runs",label:"Runs",hidden:!1,hiddenOnDesktop:!1},{id:"Work Queues",label:"Work Queues",hidden:!1,hiddenOnDesktop:!1},{id:"Workers",label:"Workers",hiddenOnDesktop:!1},{id:"Deployments",label:"Deployments",hidden:!1,hiddenOnDesktop:!1}].filter(u=>!u.hidden),[]),d=c.useCallback(u=>{t({search:{tab:u}})},[t]),b=c.useCallback(()=>{n.invalidateQueries({queryKey:$e.detailByName(s)})},[n,s]);return e.jsx(ze,{children:e.jsxs(qe,{children:[e.jsxs(Ve,{children:[e.jsx(Ns,{workPool:o,onUpdate:b}),l&&e.jsx("div",{className:"w-full bg-muted/50 py-6 px-4 rounded-lg mb-6",children:e.jsx("div",{className:"max-w-4xl mx-auto",children:e.jsx(he,{command:r,title:"Your work pool is almost ready!",subtitle:"Run this command to start.",className:"py-0"})})})]}),e.jsxs("div",{className:"flex flex-col xl:flex-row xl:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs(Ke,{value:a,onValueChange:d,children:[e.jsx(Ye,{className:"flex w-full overflow-x-auto scrollbar-none",children:i.map(u=>e.jsx(Ue,{value:u.id,className:x("whitespace-nowrap flex-shrink-0",u.hiddenOnDesktop?"xl:hidden":""),children:u.label},u.id))}),e.jsx(W,{value:"Details",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(h,{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(h,{className:"h-3 w-16"}),e.jsx(h,{className:"h-6 w-24"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{className:"h-3 w-20"}),e.jsx(h,{className:"h-6 w-32"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{className:"h-3 w-24"}),e.jsx(h,{className:"h-6 w-28"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(h,{className:"h-3 w-18"}),e.jsx(h,{className:"h-6 w-36"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(h,{className:"h-5 w-40"}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-32 w-full"})})]})]}),children:e.jsx(U,{workPool:o})})}),e.jsx(W,{value:"Runs",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(h,{className:"h-24 w-full"}),e.jsx(h,{className:"h-24 w-full"}),e.jsx(h,{className:"h-24 w-full"})]}),children:e.jsx(gs,{workPoolName:s})})}),e.jsx(W,{value:"Work Queues",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(h,{className:"h-6 w-24"}),e.jsx(h,{className:"h-6 w-8"})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(h,{className:"h-6 w-64"})})]}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-34 w-full"})})]}),children:e.jsx(Qs,{workPoolName:s})})}),e.jsx(W,{value:"Workers",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(h,{className:"h-4 w-20"}),e.jsx(h,{className:"h-9 w-64"})]}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-34 w-full"})})]}),children:e.jsx(As,{workPoolName:s})})}),e.jsx(W,{value:"Deployments",className:"space-y-0",children:e.jsx(c.Suspense,{fallback:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(h,{className:"h-4 w-20"}),e.jsx(h,{className:"h-9 w-64"})]}),e.jsx("div",{className:"space-y-2",children:e.jsx(h,{className:"h-34 w-full"})})]}),children:e.jsx(cs,{workPoolName:s})})})]})}),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(U,{workPool:o,alternate:!0})})})]})]})})}export{da as component};
|
|
2
|
+
//# sourceMappingURL=work-pool._workPoolName-BOM3849e.js.map
|