prefect 3.6.14.dev4__py3-none-any.whl → 3.6.14.dev5__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/events/clients.py +36 -3
- prefect/server/api/events.py +3 -2
- prefect/server/ui-v2/assets/{artifact-card-DmR_0bKj.js → artifact-card-DprxJzPy.js} +2 -2
- prefect/server/ui-v2/assets/{artifact-card-DmR_0bKj.js.map → artifact-card-DprxJzPy.js.map} +1 -1
- prefect/server/ui-v2/assets/{artifact._id-BF4365i6.js → artifact._id-CXcnU7_U.js} +2 -2
- prefect/server/ui-v2/assets/{artifact._id-BF4365i6.js.map → artifact._id-CXcnU7_U.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation-wizard-DMI3p_HA.js → automation-wizard-DPKDA6ji.js} +2 -2
- prefect/server/ui-v2/assets/{automation-wizard-DMI3p_HA.js.map → automation-wizard-DPKDA6ji.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation._id-C_ZATYDQ.js → automation._id-BvFFkDrn.js} +2 -2
- prefect/server/ui-v2/assets/{automation._id-C_ZATYDQ.js.map → automation._id-BvFFkDrn.js.map} +1 -1
- prefect/server/ui-v2/assets/{automation_._id.edit-Dkc09fFA.js → automation_._id.edit-vpFy8Znl.js} +2 -2
- prefect/server/ui-v2/assets/{automation_._id.edit-Dkc09fFA.js.map → automation_._id.edit-vpFy8Znl.js.map} +1 -1
- prefect/server/ui-v2/assets/{automations-header-H_FW9LY7.js → automations-header-eG-shDxp.js} +2 -2
- prefect/server/ui-v2/assets/{automations-header-H_FW9LY7.js.map → automations-header-eG-shDxp.js.map} +1 -1
- prefect/server/ui-v2/assets/{base-job-template-form-section-CVnxwfEi.js → base-job-template-form-section-du3c8HMM.js} +2 -2
- prefect/server/ui-v2/assets/{base-job-template-form-section-CVnxwfEi.js.map → base-job-template-form-section-du3c8HMM.js.map} +1 -1
- prefect/server/ui-v2/assets/{block-type-details-BIzTWlfj.js → block-type-details-CIGWaz9i.js} +2 -2
- prefect/server/ui-v2/assets/{block-type-details-BIzTWlfj.js.map → block-type-details-CIGWaz9i.js.map} +1 -1
- prefect/server/ui-v2/assets/{block-type-logo-B3XAhRSL.js → block-type-logo-B3oMH8dS.js} +2 -2
- prefect/server/ui-v2/assets/{block-type-logo-B3XAhRSL.js.map → block-type-logo-B3oMH8dS.js.map} +1 -1
- prefect/server/ui-v2/assets/{block._id-Bj0YEdv1.js → block._id-Cay2vm3g.js} +2 -2
- prefect/server/ui-v2/assets/{block._id-Bj0YEdv1.js.map → block._id-Cay2vm3g.js.map} +1 -1
- prefect/server/ui-v2/assets/{block_._id.edit-C7sUQ8mQ.js → block_._id.edit-bNSemu_v.js} +2 -2
- prefect/server/ui-v2/assets/{block_._id.edit-C7sUQ8mQ.js.map → block_._id.edit-bNSemu_v.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog-Cywf-iho.js → catalog-B3SdxUVJ.js} +2 -2
- prefect/server/ui-v2/assets/{catalog-Cywf-iho.js.map → catalog-B3SdxUVJ.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog_._slug-qLWMRQt3.js → catalog_._slug-BfQw_9GK.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug-qLWMRQt3.js.map → catalog_._slug-BfQw_9GK.js.map} +1 -1
- prefect/server/ui-v2/assets/{catalog_._slug_.create-LslFlpde.js → catalog_._slug_.create-k_HRDFv7.js} +2 -2
- prefect/server/ui-v2/assets/{catalog_._slug_.create-LslFlpde.js.map → catalog_._slug_.create-k_HRDFv7.js.map} +1 -1
- prefect/server/ui-v2/assets/{collapsible-BszH-EeY.js → collapsible-CjJyAdbn.js} +2 -2
- prefect/server/ui-v2/assets/{collapsible-BszH-EeY.js.map → collapsible-CjJyAdbn.js.map} +1 -1
- prefect/server/ui-v2/assets/{concurrency-limit._id-Dam_Ftkw.js → concurrency-limit._id-B3Gnqcjc.js} +2 -2
- prefect/server/ui-v2/assets/{concurrency-limit._id-Dam_Ftkw.js.map → concurrency-limit._id-B3Gnqcjc.js.map} +1 -1
- prefect/server/ui-v2/assets/create-AIgXW0ut.js +2 -0
- prefect/server/ui-v2/assets/{create-B11nNTmT.js.map → create-AIgXW0ut.js.map} +1 -1
- prefect/server/ui-v2/assets/{create-B8EFPjmO.js → create-CWAzl36x.js} +2 -2
- prefect/server/ui-v2/assets/{create-B8EFPjmO.js.map → create-CWAzl36x.js.map} +1 -1
- prefect/server/ui-v2/assets/{data-table-C1eRvlXV.js → data-table-B3EtpFhV.js} +2 -2
- prefect/server/ui-v2/assets/{data-table-C1eRvlXV.js.map → data-table-B3EtpFhV.js.map} +1 -1
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-DCmC1ZTD.js → delete-confirmation-dialog-DyUMWSB-.js} +2 -2
- prefect/server/ui-v2/assets/{delete-confirmation-dialog-DCmC1ZTD.js.map → delete-confirmation-dialog-DyUMWSB-.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-action-header-WD51TIyE.js → deployment-action-header-BJ8WZ6O0.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-action-header-WD51TIyE.js.map → deployment-action-header-BJ8WZ6O0.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-form-FaqDdnNa.js → deployment-form-DXZUK11h.js} +3 -3
- prefect/server/ui-v2/assets/{deployment-form-FaqDdnNa.js.map → deployment-form-DXZUK11h.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment-links-CLax44tW.js → deployment-links-bbtRf3OX.js} +2 -2
- prefect/server/ui-v2/assets/{deployment-links-CLax44tW.js.map → deployment-links-bbtRf3OX.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-DrtOyhFC.js → deployment._id-DFzzDIAz.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-DrtOyhFC.js.map → deployment._id-DFzzDIAz.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment._id-CbWiylvh.js → deployment._id-GmnYU2jN.js} +2 -2
- prefect/server/ui-v2/assets/{deployment._id-CbWiylvh.js.map → deployment._id-GmnYU2jN.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.duplicate--_rm26pJ.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.duplicate-CqlNWQfz.js.map → deployment_._id.duplicate--_rm26pJ.js.map} +1 -1
- prefect/server/ui-v2/assets/deployment_._id.edit-BS799pF4.js +2 -0
- prefect/server/ui-v2/assets/{deployment_._id.edit-CbvCe2YU.js.map → deployment_._id.edit-BS799pF4.js.map} +1 -1
- prefect/server/ui-v2/assets/{deployment_._id.run-BnIFeR-d.js → deployment_._id.run-c02Fu6v1.js} +2 -2
- prefect/server/ui-v2/assets/{deployment_._id.run-BnIFeR-d.js.map → deployment_._id.run-c02Fu6v1.js.map} +1 -1
- prefect/server/ui-v2/assets/{dropdown-menu-Bhox1zoa.js → dropdown-menu-6cSdnzsr.js} +2 -2
- prefect/server/ui-v2/assets/{dropdown-menu-Bhox1zoa.js.map → dropdown-menu-6cSdnzsr.js.map} +1 -1
- prefect/server/ui-v2/assets/{event-resource-display-65B76oFV.js → event-resource-display-DeFGeJR9.js} +2 -2
- prefect/server/ui-v2/assets/{event-resource-display-65B76oFV.js.map → event-resource-display-DeFGeJR9.js.map} +1 -1
- prefect/server/ui-v2/assets/{event._eventDate._eventId-CxPjH2H7.js → event._eventDate._eventId-CKnfHNoF.js} +2 -2
- prefect/server/ui-v2/assets/{event._eventDate._eventId-CxPjH2H7.js.map → event._eventDate._eventId-CKnfHNoF.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run-graph-ZOatFLjv.js → flow-run-graph-aynL8fbE.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run-graph-ZOatFLjv.js.map → flow-run-graph-aynL8fbE.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run._id-CDFeuz16.js → flow-run._id-4lwBtUgU.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run._id-CDFeuz16.js.map → flow-run._id-4lwBtUgU.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run._id-1RC-URiA.js → flow-run._id-CT2imMDV.js} +2 -2
- prefect/server/ui-v2/assets/{flow-run._id-1RC-URiA.js.map → flow-run._id-CT2imMDV.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-run._id-U6rzXfvR.js → flow-run._id-s3t6dDIS.js} +3 -3
- prefect/server/ui-v2/assets/{flow-run._id-U6rzXfvR.js.map → flow-run._id-s3t6dDIS.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow-runs-pagination-D_d5hdM0.js → flow-runs-pagination-DvDLs5GM.js} +2 -2
- prefect/server/ui-v2/assets/{flow-runs-pagination-D_d5hdM0.js.map → flow-runs-pagination-DvDLs5GM.js.map} +1 -1
- prefect/server/ui-v2/assets/{flow._id-DkeN8TLS.js → flow._id-U31aNcVQ.js} +2 -2
- prefect/server/ui-v2/assets/{flow._id-DkeN8TLS.js.map → flow._id-U31aNcVQ.js.map} +1 -1
- prefect/server/ui-v2/assets/{form-CJfDUosd.js → form-DvAgEGjn.js} +2 -2
- prefect/server/ui-v2/assets/{form-CJfDUosd.js.map → form-DvAgEGjn.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-MZZX5lQ8.js → header-Bq61DIIv.js} +2 -2
- prefect/server/ui-v2/assets/{header-MZZX5lQ8.js.map → header-Bq61DIIv.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-C5liWcfp.js → header-QiKDPn2b.js} +2 -2
- prefect/server/ui-v2/assets/{header-C5liWcfp.js.map → header-QiKDPn2b.js.map} +1 -1
- prefect/server/ui-v2/assets/{header-vYbWNFdK.js → header-YbYlGgAg.js} +2 -2
- prefect/server/ui-v2/assets/{header-vYbWNFdK.js.map → header-YbYlGgAg.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BPmw935P.js → index--QEAQOap.js} +2 -2
- prefect/server/ui-v2/assets/{index-BPmw935P.js.map → index--QEAQOap.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-4xVLy12E.js → index-BJJn5VNO.js} +2 -2
- prefect/server/ui-v2/assets/{index-4xVLy12E.js.map → index-BJJn5VNO.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-B_3WKH2_.js → index-BToZEh2M.js} +2 -2
- prefect/server/ui-v2/assets/{index-B_3WKH2_.js.map → index-BToZEh2M.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DeeA9nPM.js → index-BzE5jxe7.js} +2 -2
- prefect/server/ui-v2/assets/{index-DeeA9nPM.js.map → index-BzE5jxe7.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BR6bwuK4.js → index-C-uTnVrI.js} +2 -2
- prefect/server/ui-v2/assets/{index-BR6bwuK4.js.map → index-C-uTnVrI.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CbJNJTr8.js → index-C19BICb6.js} +2 -2
- prefect/server/ui-v2/assets/{index-CbJNJTr8.js.map → index-C19BICb6.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CCCwtbSq.js → index-C84_3iOG.js} +2 -2
- prefect/server/ui-v2/assets/{index-CCCwtbSq.js.map → index-C84_3iOG.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BOVwKiXn.js → index-CGt_907f.js} +2 -2
- prefect/server/ui-v2/assets/{index-BOVwKiXn.js.map → index-CGt_907f.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-7bWZ2Znt.js → index-COtFm673.js} +2 -2
- prefect/server/ui-v2/assets/{index-7bWZ2Znt.js.map → index-COtFm673.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-DLuXqHi9.js → index-CQlQauOE.js} +4 -4
- prefect/server/ui-v2/assets/{index-DLuXqHi9.js.map → index-CQlQauOE.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-ClXbR8i0.js → index-CovPzmtX.js} +2 -2
- prefect/server/ui-v2/assets/{index-ClXbR8i0.js.map → index-CovPzmtX.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BgOHAC5L.js → index-CzZJA-g2.js} +2 -2
- prefect/server/ui-v2/assets/{index-BgOHAC5L.js.map → index-CzZJA-g2.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-Bmd9p_xN.js → index-D9O_iUny.js} +2 -2
- prefect/server/ui-v2/assets/{index-Bmd9p_xN.js.map → index-D9O_iUny.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CfHvTOAO.js → index-DBhG-F3c.js} +2 -2
- prefect/server/ui-v2/assets/{index-CfHvTOAO.js.map → index-DBhG-F3c.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-5fQrQZ3K.js → index-DEijvsFf.js} +2 -2
- prefect/server/ui-v2/assets/{index-5fQrQZ3K.js.map → index-DEijvsFf.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-enqoJV8x.js → index-DJx6_wL3.js} +2 -2
- prefect/server/ui-v2/assets/{index-enqoJV8x.js.map → index-DJx6_wL3.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-BmdTLblr.js → index-DzylsDQg.js} +2 -2
- prefect/server/ui-v2/assets/{index-BmdTLblr.js.map → index-DzylsDQg.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-CcyfsgGP.js → index-MqrX6o60.js} +2 -2
- prefect/server/ui-v2/assets/{index-CcyfsgGP.js.map → index-MqrX6o60.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-MeJBhX-C.js → index-Xbikq0U9.js} +2 -2
- prefect/server/ui-v2/assets/{index-MeJBhX-C.js.map → index-Xbikq0U9.js.map} +1 -1
- prefect/server/ui-v2/assets/{index-Cyw9YHlj.js → index-xd6ftCzl.js} +2 -2
- prefect/server/ui-v2/assets/{index-Cyw9YHlj.js.map → index-xd6ftCzl.js.map} +1 -1
- prefect/server/ui-v2/assets/{json-input-CJ1Ipjax.js → json-input-CUdR2ooF.js} +2 -2
- prefect/server/ui-v2/assets/{json-input-CJ1Ipjax.js.map → json-input-CUdR2ooF.js.map} +1 -1
- prefect/server/ui-v2/assets/{key._key-B0wb5Umi.js → key._key-Dkjl-3EA.js} +2 -2
- prefect/server/ui-v2/assets/{key._key-B0wb5Umi.js.map → key._key-Dkjl-3EA.js.map} +1 -1
- prefect/server/ui-v2/assets/{lazy-markdown-sP3PYQgB.js → lazy-markdown-B5J5jhCs.js} +2 -2
- prefect/server/ui-v2/assets/{lazy-markdown-sP3PYQgB.js.map → lazy-markdown-B5J5jhCs.js.map} +1 -1
- prefect/server/ui-v2/assets/{login-DNY0o3XU.js → login-DzDO0DVR.js} +2 -2
- prefect/server/ui-v2/assets/{login-DNY0o3XU.js.map → login-DzDO0DVR.js.map} +1 -1
- prefect/server/ui-v2/assets/{markdown-input-Bos2JYXW.js → markdown-input-BYRT3e1M.js} +2 -2
- prefect/server/ui-v2/assets/{markdown-input-Bos2JYXW.js.map → markdown-input-BYRT3e1M.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-example-snippet-CWSJRd48.js → python-example-snippet-BMLiEUYL.js} +3 -3
- prefect/server/ui-v2/assets/{python-example-snippet-CWSJRd48.js.map → python-example-snippet-BMLiEUYL.js.map} +1 -1
- prefect/server/ui-v2/assets/{python-input-Bu4995lK.js → python-input-xovZoSSG.js} +2 -2
- prefect/server/ui-v2/assets/{python-input-Bu4995lK.js.map → python-input-xovZoSSG.js.map} +1 -1
- prefect/server/ui-v2/assets/{radio-group-C0D0oLYd.js → radio-group-B4HH3BMW.js} +2 -2
- prefect/server/ui-v2/assets/{radio-group-C0D0oLYd.js.map → radio-group-B4HH3BMW.js.map} +1 -1
- prefect/server/ui-v2/assets/{route-error-state-DzKu_Iw_.js → route-error-state-BI1VOaRa.js} +2 -2
- prefect/server/ui-v2/assets/{route-error-state-DzKu_Iw_.js.map → route-error-state-BI1VOaRa.js.map} +1 -1
- prefect/server/ui-v2/assets/schema-form-DvPKoIJV.js +2 -0
- prefect/server/ui-v2/assets/schema-form-DvPKoIJV.js.map +1 -0
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DyDs1jNl.js → schema-form-input-string-format-datetime-FBLeet2k.js} +4 -4
- prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DyDs1jNl.js.map → schema-form-input-string-format-datetime-FBLeet2k.js.map} +1 -1
- prefect/server/ui-v2/assets/{settings-a90cwhBe.js → settings-LiwgpMzF.js} +2 -2
- prefect/server/ui-v2/assets/{settings-a90cwhBe.js.map → settings-LiwgpMzF.js.map} +1 -1
- prefect/server/ui-v2/assets/{sort-filter-CCltjs1E.js → sort-filter-BdZ0BjdE.js} +2 -2
- prefect/server/ui-v2/assets/{sort-filter-CCltjs1E.js.map → sort-filter-BdZ0BjdE.js.map} +1 -1
- prefect/server/ui-v2/assets/{table-CrPymfJD.js → table--kjjs3jN.js} +2 -2
- prefect/server/ui-v2/assets/{table-CrPymfJD.js.map → table--kjjs3jN.js.map} +1 -1
- prefect/server/ui-v2/assets/{tags-input-BdNYl8nS.js → tags-input-9pBchAz7.js} +2 -2
- prefect/server/ui-v2/assets/{tags-input-BdNYl8nS.js.map → tags-input-9pBchAz7.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-B4bdiAgf.js → task-run-concurrency-limits-reset-dialog-B3XhJqIQ.js} +2 -2
- prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-B4bdiAgf.js.map → task-run-concurrency-limits-reset-dialog-B3XhJqIQ.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-BzeMfM08.js → task-run._id-BdlPyINB.js} +2 -2
- prefect/server/ui-v2/assets/{task-run._id-BzeMfM08.js.map → task-run._id-BdlPyINB.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-run._id-BQac40_I.js → task-run._id-BnZwcX9a.js} +2 -2
- prefect/server/ui-v2/assets/{task-run._id-BQac40_I.js.map → task-run._id-BnZwcX9a.js.map} +1 -1
- prefect/server/ui-v2/assets/{task-runs-pagination-WFGIqR6p.js → task-runs-pagination-ClbepGWu.js} +2 -2
- prefect/server/ui-v2/assets/{task-runs-pagination-WFGIqR6p.js.map → task-runs-pagination-ClbepGWu.js.map} +1 -1
- prefect/server/ui-v2/assets/{textarea-CGFflH-n.js → textarea-CjmPCtZi.js} +2 -2
- prefect/server/ui-v2/assets/{textarea-CGFflH-n.js.map → textarea-CjmPCtZi.js.map} +1 -1
- prefect/server/ui-v2/assets/{timezone-select-ClE9nfKA.js → timezone-select-5WxUFUXB.js} +2 -2
- prefect/server/ui-v2/assets/{timezone-select-ClE9nfKA.js.map → timezone-select-5WxUFUXB.js.map} +1 -1
- prefect/server/ui-v2/assets/{toggle-group-Dnv_LMnU.js → toggle-group-DjbSsHsv.js} +2 -2
- prefect/server/ui-v2/assets/{toggle-group-Dnv_LMnU.js.map → toggle-group-DjbSsHsv.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-CRGV6wvn.js → use-delete-automation-confirmation-dialog-C7nas8eR.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-CRGV6wvn.js.map → use-delete-automation-confirmation-dialog-C7nas8eR.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DNMP_gtr.js → use-delete-block-document-confirmation-dialog-Cz3znU4m.js} +2 -2
- prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-DNMP_gtr.js.map → use-delete-block-document-confirmation-dialog-Cz3znU4m.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-D3-TVsRL.js → use-flow-runs-selected-rows-B_7PiPKo.js} +2 -2
- prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-D3-TVsRL.js.map → use-flow-runs-selected-rows-B_7PiPKo.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-I3Wb9fOV.js → use-get-artifacts-flow-task-runs-BitcuQLc.js} +2 -2
- prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-I3Wb9fOV.js.map → use-get-artifacts-flow-task-runs-BitcuQLc.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-quick-run-Be-i6Tzi.js → use-quick-run-IfBGzpj9.js} +2 -2
- prefect/server/ui-v2/assets/{use-quick-run-Be-i6Tzi.js.map → use-quick-run-IfBGzpj9.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-state-favicon-DtW_I9k3.js → use-state-favicon-kNCf3RcS.js} +2 -2
- prefect/server/ui-v2/assets/{use-state-favicon-DtW_I9k3.js.map → use-state-favicon-kNCf3RcS.js.map} +1 -1
- prefect/server/ui-v2/assets/{use-stepper-BSvi_u_j.js → use-stepper-DRdSNO1_.js} +2 -2
- prefect/server/ui-v2/assets/{use-stepper-BSvi_u_j.js.map → use-stepper-DRdSNO1_.js.map} +1 -1
- prefect/server/ui-v2/assets/{utilities-BCBDUmEl.js → utilities-B74wofJY.js} +2 -2
- prefect/server/ui-v2/assets/{utilities-BCBDUmEl.js.map → utilities-B74wofJY.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool-filter-BuJB9elW.js → work-pool-filter-BD0cywQF.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-filter-BuJB9elW.js.map → work-pool-filter-BD0cywQF.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-DP2ONU28.js → work-pool-queue-toggle-Dd3mOecD.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool-queue-toggle-DP2ONU28.js.map → work-pool-queue-toggle-Dd3mOecD.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool._workPoolName-BjhJe3F4.js → work-pool._workPoolName-Dxf0Y-lV.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool._workPoolName-BjhJe3F4.js.map → work-pool._workPoolName-Dxf0Y-lV.js.map} +1 -1
- prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-B0Y9VwYX.js +2 -0
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-lHDf1Aih.js.map → work-pool_._workPoolName.edit-B0Y9VwYX.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CLthz7sB.js → work-pool_._workPoolName.queue._workQueueName-ZHSn4vVg.js} +2 -2
- prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CLthz7sB.js.map → work-pool_._workPoolName.queue._workQueueName-ZHSn4vVg.js.map} +1 -1
- prefect/server/ui-v2/assets/{work-queue-icon-text-4iEAtZOh.js → work-queue-icon-text-GE7b8Ro1.js} +2 -2
- prefect/server/ui-v2/assets/{work-queue-icon-text-4iEAtZOh.js.map → work-queue-icon-text-GE7b8Ro1.js.map} +1 -1
- prefect/server/ui-v2/index.html +1 -1
- prefect/server/utilities/subscriptions.py +25 -8
- prefect/testing/fixtures.py +31 -1
- {prefect-3.6.14.dev4.dist-info → prefect-3.6.14.dev5.dist-info}/METADATA +1 -1
- {prefect-3.6.14.dev4.dist-info → prefect-3.6.14.dev5.dist-info}/RECORD +205 -205
- prefect/server/ui-v2/assets/create-B11nNTmT.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.duplicate-CqlNWQfz.js +0 -2
- prefect/server/ui-v2/assets/deployment_._id.edit-CbvCe2YU.js +0 -2
- prefect/server/ui-v2/assets/schema-form-BD95b0iS.js +0 -2
- prefect/server/ui-v2/assets/schema-form-BD95b0iS.js.map +0 -1
- prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-lHDf1Aih.js +0 -2
- {prefect-3.6.14.dev4.dist-info → prefect-3.6.14.dev5.dist-info}/WHEEL +0 -0
- {prefect-3.6.14.dev4.dist-info → prefect-3.6.14.dev5.dist-info}/entry_points.txt +0 -0
- {prefect-3.6.14.dev4.dist-info → prefect-3.6.14.dev5.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{j as e,L as C,u as B,r as c,F as K,C as Oe,G as $e,D as Be,B as Qe,s as de}from"./vendor-tanstack-CWDKYA_B.js";import{O as ue,q as j,I,y as F,B as We,g as He,h as ae,bs as Ge,bB as Je,bD as qe,al as M,L as re,aN as Ke,ab as he,aE as Xe,cE as Ye,cj as J,N as Ze,aw as me,ax as xe,az as L,ay as A,X as es,aW as pe,p as je,cF as ge,cG as X,G as U,a3 as Y,bh as Z,_ as fe,$ as ve,a0 as Se,a1 as Ce,S as ss,a as ns,b as ts,c as as,e as rs,cH as os,cI as ls,aM as is,cJ as cs,cK as ds,ar as us,cL as hs,bU as De,bR as we,bS as ye,bT as be,C as ms,cM as xs,cN as ps,b5 as js,cg as gs,cO as fs,aL as oe,aA as le}from"./index-DLuXqHi9.js";import{D as _e}from"./delete-confirmation-dialog-DCmC1ZTD.js";import{D as ee,a as se,b as ne,c as Ne,d as E,f as vs}from"./dropdown-menu-Bhox1zoa.js";import{L as Ss}from"./lazy-markdown-sP3PYQgB.js";import{D as Cs,W as Ds}from"./work-pool-filter-BuJB9elW.js";import{S as ws}from"./sort-filter-CCltjs1E.js";import{S as ys,a as Te,F as Re}from"./flow-runs-pagination-D_d5hdM0.js";import{u as Ee,F as Fe}from"./use-flow-runs-selected-rows-D3-TVsRL.js";import{D as bs}from"./data-table-C1eRvlXV.js";import{D as _s}from"./deployment-links-CLax44tW.js";import{S as Ns}from"./index-BmdTLblr.js";import{a as Me}from"./zod-CjGf5GIv.js";import{a0 as Ts,$ as Rs}from"./vendor-date-CRz8gtWZ.js";import{c as ke,o as b,b as q,s as V,d as Es,e as P,n as z,f as Fs,a as ie}from"./vendor-forms-D-iybWES.js";import{c as Ms}from"./vendor-recharts-BGjDGXVf.js";import{c as Ie}from"./cronstrue-IJcBJ9tZ.js";import{F as Le,a as f,b as _,c as N,d as T,e as R}from"./form-CJfDUosd.js";import{T as Ae}from"./timezone-select-ClE9nfKA.js";import{aj as ks}from"./vendor-radix-DRMjKWJW.js";import{u as Is}from"./use-delete-confirmation-dialog-C5d6hPL-.js";import{u as Ls,a as As}from"./use-quick-run-Be-i6Tzi.js";import"./vendor-react-Bce9NwRC.js";import"./table-CrPymfJD.js";import"./work-queue-icon-text-4iEAtZOh.js";const Pe=({search:s,sort:n,stateFilter:r,deploymentFilter:a,workPoolFilter:t})=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 pr-2 border-r-2",children:[e.jsx("div",{className:"min-w-56",children:e.jsx(ue,{"aria-label":"search by run name",placeholder:"Search by run name",value:s.value,onChange:i=>s.onChange(i.target.value)})}),e.jsx("div",{className:"min-w-56",children:e.jsx(ys,{selectedFilters:r.value,onSelectFilter:r.onSelect})}),a&&e.jsx("div",{className:"min-w-56",children:e.jsx(Cs,{selectedDeployments:a.value,onSelectDeployments:a.onSelect})}),t&&e.jsx("div",{className:"min-w-56",children:e.jsx(Ds,{selectedWorkPools:t.value,onSelectWorkPools:t.onSelect})})]}),e.jsx(ws,{value:n.value,onSelect:n.onSelect})]}),Ps=({id:s,onDelete:n})=>{const r=a=>{navigator.clipboard.writeText(a),F.success("ID copied")};return e.jsxs(ee,{children:[e.jsx(se,{asChild:!0,children:e.jsxs(j,{variant:"outline",className:"size-8 p-0",children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(I,{id:"MoreVertical",className:"size-4"})]})}),e.jsxs(ne,{align:"end",children:[e.jsx(Ne,{children:"Actions"}),e.jsx(E,{onClick:()=>r(s),children:"Copy ID"}),e.jsx(C,{to:"/deployments/deployment/$id/edit",params:{id:s},children:e.jsx(E,{children:"Edit"})}),e.jsx(E,{onClick:n,children:"Delete"}),e.jsx(C,{to:"/deployments/deployment/$id/duplicate",params:{id:s},children:e.jsx(E,{children:"Duplicate"})})]})]})},Vs=({deployment:s})=>e.jsx(We,{children:e.jsxs(He,{children:[e.jsx(ae,{children:e.jsx(Ge,{to:"/deployments",className:"text-xl font-semibold",children:"Deployments"})}),e.jsx(Je,{}),e.jsx(ae,{className:"text-xl font-semibold",children:e.jsx(qe,{children:s.name})})]})}),zs=({deployment:s})=>{const n=JSON.stringify(s.job_variables??{},null,2),r=JSON.stringify(s.pull_steps??[],null,2);return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(M,{variant:"h4",children:"Job Variables"}),e.jsx(re,{copy:!0,disabled:!0,hideLineNumbers:!0,value:n}),e.jsx(M,{variant:"h4",children:"Pull Steps "}),e.jsx(re,{copy:!0,disabled:!0,hideLineNumbers:!0,value:r})]})},Us=({deployment:s})=>e.jsx("div",{className:"prose max-w-none",children:e.jsx(Ss,{children:s.description??""})}),Os=s=>{const{data:n,error:r}=B(Ke(s)),a=c.useMemo(()=>n?n.map(o=>o.flow_id):[],[n]),{data:t,error:i}=B(he({flows:{id:{any_:a},operator:"and_"},offset:0,sort:"CREATED_DESC"},{enabled:a.length>0})),d=c.useMemo(()=>t?new Map(t.map(o=>[o.id,o])):new Map,[t]);return n&&n.length===0?{status:"success",error:null,data:[]}:n&&d.size>0?{status:"success",error:null,data:n.map(o=>{const u=d.get(o.flow_id);return{...o,flow:u}})}:r||i?{status:"error",error:r||i,data:void 0}:{status:"pending",error:null,data:void 0}},Ve=s=>{const{data:n,error:r}=B(Xe(s)),a=c.useMemo(()=>n?n.results.map(o=>o.flow_id):[],[n]),{data:t,error:i}=B(he({flows:{id:{any_:a},operator:"and_"},offset:0,sort:"CREATED_DESC"},{enabled:a.length>0})),d=c.useMemo(()=>t?new Map(t.map(o=>[o.id,o])):new Map,[t]);return n&&n.results.length===0?{status:"success",error:null,data:{...n,results:[]}}:n&&d.size>0?{status:"success",error:null,data:{...n,results:n.results.map(o=>{const u=d.get(o.flow_id);return{...o,flow:u}})}}:r||i?{status:"error",error:r||i,data:void 0}:{status:"pending",error:null,data:void 0}},D=K("/deployments/deployment/$id"),$s=({deployment:s})=>{const[n,r,{clearSet:a,onSelectRow:t}]=Ee(),[i,d]=Ws(),[o,u]=Hs(),[l,m]=Gs(),[h,x]=Js(),y=Qs(),{data:g}=Ve({deployments:{operator:"and_",id:{any_:[s.id]}},flow_runs:{name:{like_:o||void 0},state:{name:{any_:h.length===0?void 0:h},operator:"or_"},operator:"and_"},limit:i.limit,page:i.page,sort:l}),p=c.useMemo(()=>{if(g)return{...g,results:g.results.map(Ue=>({...Ue,deployment:s}))}},[g,s]),Q=y?()=>{y(),a()}:void 0,O=Bs(s);return e.jsxs("div",{className:"flex flex-col gap-2",children:[O&&e.jsxs("div",{className:"flex flex-col gap-2 border-b py-2",children:[e.jsx(M,{variant:"bodyLarge",children:"Next Run"}),e.jsx(Ye,{flowRun:O})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(Fe,{count:p?.count,results:p?.results,selectedRows:n,setSelectedRows:r}),e.jsx(Pe,{search:{value:o,onChange:u},sort:{value:l,onSelect:m},stateFilter:{value:new Set(h),onSelect:x}})]}),e.jsx(Te,{flowRuns:p?.results,selectedRows:n,onSelect:t,onClearFilters:Q}),p&&e.jsx(Re,{count:p.count,pagination:i,onChangePagination:d,pages:p.pages})]})]})};function Bs(s){const{data:n}=Os({deployments:{id:{any_:[s.id]},operator:"and_"},flow_runs:{state:{name:{any_:["Scheduled"]},operator:"and_"},operator:"and_"},sort:"EXPECTED_START_TIME_ASC",limit:1,offset:0});return c.useMemo(()=>{if(!(!n||!n[0]))return{...n[0],deployment:s}},[n,s])}function Qs(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(()=>{n({to:".",search:t=>({...t,runs:void 0}),replace:!0})},[n]);return c.useMemo(()=>!!s,[s])?r:void 0}function Ws(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,...t}}),replace:!0})},[n,s]);return[c.useMemo(()=>({page:s?.page??1,limit:s?.limit??10}),[s?.limit,s?.page]),r]}function Hs(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,flowRuns:{...s?.flowRuns,name:t}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.name??"",[s?.flowRuns?.name]),r]}function Gs(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,sort:t}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.sort??"START_TIME_DESC",[s?.sort]),r]}function Js(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,flowRuns:{...s?.flowRuns,state:t?Array.from(t):void 0}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.state??J,[s?.flowRuns?.state]),r]}const w=K("/deployments/deployment/$id"),qs=({deployment:s})=>{const[n,r,{clearSet:a,onSelectRow:t}]=Ee(),[i,d]=Xs(),[o,u]=Ys(),[l,m]=Zs(),[h,x]=en(),y=Ks(),{data:g}=Ve({deployments:{operator:"and_",id:{any_:[s.id]}},flow_runs:{name:{like_:o||void 0},state:{name:{any_:h.length===0?void 0:h},operator:"or_"},operator:"and_"},limit:i.limit,page:i.page,sort:l}),p=c.useMemo(()=>{if(g)return{...g,results:g.results.map(O=>({...O,deployment:s}))}},[g,s]),Q=y?()=>{y(),a()}:void 0;return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(Fe,{count:p?.count,results:p?.results,selectedRows:n,setSelectedRows:r}),e.jsx(Pe,{search:{value:o,onChange:u},sort:{value:l,onSelect:m},stateFilter:{value:new Set(h),onSelect:x}})]}),e.jsx(Te,{flowRuns:p?.results,selectedRows:n,onSelect:t,onClearFilters:Q}),p&&p.results.length>0&&e.jsx(Re,{count:p.count,pagination:i,onChangePagination:d,pages:p.pages})]})};function Ks(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(()=>{n({to:".",search:t=>({...t,upcoming:void 0}),replace:!0})},[n]);return c.useMemo(()=>!!s,[s])?r:void 0}function Xs(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,...t}}),replace:!0})},[n,s]);return[c.useMemo(()=>({page:s?.page??1,limit:s?.limit??5}),[s?.limit,s?.page]),r]}function Ys(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,flowRuns:{...s?.flowRuns,name:t}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.name??"",[s?.flowRuns?.name]),r]}function Zs(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,sort:t}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.sort??"START_TIME_ASC",[s?.sort]),r]}function en(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,flowRuns:{...s?.flowRuns,state:t?Array.from(t):void 0}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.state??["Scheduled"],[s?.flowRuns?.state]),r]}const $=Qe(),sn=[$.accessor("key",{header:"Key"}),$.accessor("value",{header:"Override"}),$.accessor("defaultValue",{header:"Default"}),$.accessor("type",{header:"Type"})],nn=s=>c.useMemo(()=>{if(!s.parameter_openapi_schema)return[];const n=s.parameter_openapi_schema.properties,r=s.parameters;return Object.keys(n).sort((a,t)=>n[a].position-n[t].position).map(a=>{const t=n[a];return{key:a,value:r[a],defaultValue:t.default,type:t.type}})},[s]),tn=({deployment:s})=>{const[n,r]=c.useState(""),a=nn(s),t=c.useDeferredValue(n),i=c.useMemo(()=>a.filter(o=>o.key.toLowerCase().includes(t.toLowerCase())||o.value?.toString().toLowerCase().includes(t.toLowerCase())||o.defaultValue?.toString().toLowerCase().includes(t.toLowerCase())||o.type?.toString().toLowerCase().includes(t.toLowerCase())),[a,t]),d=Oe({data:i,columns:sn,getCoreRowModel:Be(),defaultColumn:{maxSize:300},getPaginationRowModel:$e()});return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(M,{variant:"bodySmall",className:"text-muted-foreground",children:[i.length," ",Ze(i.length,"parameter")]}),e.jsx("div",{className:"sm:col-span-2 md:col-span-2 lg:col-span-3",children:e.jsx(ue,{className:"sm:col-span-2 md:col-span-2 lg:col-span-3",placeholder:"Search parameters",value:n,onChange:o=>r(o.target.value)})})]}),e.jsx(bs,{table:d})]})},an=K("/deployments/deployment/$id"),rn=({deployment:s})=>{const{tab:n}=an.useSearch(),r=on(s);return e.jsxs(me,{defaultValue:r[0].value,value:n,children:[e.jsx(xe,{children:r.map(({value:a,LinkComponent:t})=>e.jsx(t,{},a))}),r.map(({value:a,ViewComponent:t})=>e.jsx(t,{},a))]})};function on(s){return c.useMemo(()=>[{value:"Runs",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Runs"},children:e.jsx(A,{value:"Runs",children:"Runs"})}),ViewComponent:()=>e.jsx(L,{value:"Runs",children:e.jsx($s,{deployment:s})})},{value:"Upcoming",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Upcoming"},children:e.jsx(A,{value:"Upcoming",children:"Upcoming"})}),ViewComponent:()=>e.jsx(L,{value:"Upcoming",children:e.jsx(qs,{deployment:s})})},{value:"Parameters",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Parameters"},children:e.jsx(A,{value:"Parameters",children:"Parameters"})}),ViewComponent:()=>e.jsx(L,{value:"Parameters",children:e.jsx(tn,{deployment:s})})},{value:"Configuration",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Configuration"},children:e.jsx(A,{value:"Configuration",children:"Configuration"})}),ViewComponent:()=>e.jsx(L,{value:"Configuration",children:e.jsx(zs,{deployment:s})})},{value:"Description",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Description"},children:e.jsx(A,{value:"Description",children:"Description"})}),ViewComponent:()=>e.jsx(L,{value:"Description",children:e.jsx(Us,{deployment:s})})}],[s])}const v=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),ce=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),S=({className:s,children:n})=>e.jsx("dd",{className:pe("text-sm",s),children:n}),ln=({deployment:s})=>{const n=[{field:"Status",ComponentValue:()=>s.status?e.jsx("dd",{children:e.jsx(Ns,{status:s.status})}):e.jsx(v,{})},{field:"Created",ComponentValue:()=>s.created?e.jsx(S,{className:"font-mono",children:s.created}):e.jsx(v,{})},{field:"Updated",ComponentValue:()=>s.updated?e.jsx(S,{className:"font-mono",children:s.updated}):e.jsx(v,{})},{field:"Entrypoint",ComponentValue:()=>s.entrypoint?e.jsx(S,{children:s.entrypoint}):e.jsx(v,{})},{field:"Path",ComponentValue:()=>s.path?e.jsx(S,{children:s.path}):e.jsx(v,{})},{field:"Concurrency Limit",ComponentValue:()=>s.global_concurrency_limit?e.jsx(S,{children:s.global_concurrency_limit.limit}):e.jsx(v,{})}],r=[{field:"Flow ID",ComponentValue:()=>e.jsx(S,{children:s.flow_id})},{field:"Deployment ID",ComponentValue:()=>e.jsx(S,{children:s.id})},{field:"Deployment Version",ComponentValue:()=>s.version?e.jsx(S,{children:s.version}):e.jsx(v,{})},{field:"Storage Document ID",ComponentValue:()=>s.storage_document_id?e.jsx(S,{children:s.storage_document_id}):e.jsx(v,{})},{field:"Infrastructure Document ID",ComponentValue:()=>s.infrastructure_document_id?e.jsx(S,{children:s.infrastructure_document_id}):e.jsx(v,{})},{field:"Tags",ComponentValue:()=>s.tags&&s.tags.length>0?e.jsx("dd",{children:e.jsx(es,{tags:s.tags,maxTagsDisplayed:4})}):e.jsx(v,{})}];return e.jsxs("div",{children:[e.jsx("ul",{className:"flex flex-col gap-3",children:n.map(({field:a,ComponentValue:t})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(ce,{children:a}),e.jsx(t,{})]})},a))}),e.jsx("hr",{className:"my-3"}),e.jsx("ul",{className:"flex flex-col gap-3",children:r.map(({field:a,ComponentValue:t})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(ce,{children:a}),e.jsx(t,{})]})},a))})]})};var ze=Ts();const W=s=>{let n="",r=!1;try{ze.CronExpressionParser.parse(s),n=Ie.toString(s),r=!0}catch{r=!1,n="Invalid expression"}return{description:n,isCronValid:r}},cn=({onChange:s,...n})=>{const[r,a]=c.useState(W(String(n.value)).description),[t,i]=c.useState(W(String(n.value)).isCronValid),d=o=>{if(s){s(o);const{description:u,isCronValid:l}=W(o.target.value);a(u),i(l)}};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(je,{...n,onChange:d}),e.jsx(M,{variant:"bodySmall",className:Ms(t?"text-muted-foreground":"text-red-500"),children:r})]})},dn=s=>{try{return ze.CronExpressionParser.parse(s),!0}catch{return!1}},un=b({active:q(),schedule:b({cron:V().refine(dn),timezone:V().default("Etc/UTC"),day_or:q().default(!0)})}),H={active:!0,schedule:{cron:"* * * * *",timezone:"Etc/UTC",day_or:!0}},hn=({deployment_id:s,scheduleToEdit:n,onSubmit:r})=>{const{createDeploymentSchedule:a,isPending:t}=ge(),{updateDeploymentSchedule:i,isPending:d}=X(),o=ke({resolver:Me(un),defaultValues:H});c.useEffect(()=>{if(n){const{active:l,schedule:m}=n;if("cron"in m){const{cron:h,day_or:x,timezone:y}=m;o.reset({active:l,schedule:{cron:h,day_or:x,timezone:y??"Etc/UTC"}})}}else o.reset(H)},[o,n]);const u=l=>{const m=()=>{o.reset(H),r()};n?i({deployment_id:s,schedule_id:n.id,...l},{onSuccess:()=>{F.success("Deployment schedule updated")},onError:h=>{const x=h.message||"Unknown error while updating deployment schedule.";o.setError("root",{message:x})},onSettled:m}):a({deployment_id:s,...l},{onSuccess:()=>{F.success("Deployment schedule created")},onError:h=>{const x=h.message||"Unknown error while creating deployment schedule.";o.setError("root",{message:x})},onSettled:m})};return e.jsx(Le,{...o,children:e.jsxs("form",{onSubmit:l=>{o.handleSubmit(u)(l)},className:"space-y-4",children:[e.jsx(f,{children:o.formState.errors.root?.message}),e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(_,{control:o.control,name:"active",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Active"}),e.jsx(R,{children:e.jsx(U,{className:"block",checked:l.value,onCheckedChange:l.onChange})}),e.jsx(f,{})]})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"w-3/4",children:e.jsx(_,{control:o.control,name:"schedule.cron",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Value"}),e.jsx(R,{children:e.jsx(cn,{...l})}),e.jsx(f,{})]})})}),e.jsx(_,{control:o.control,name:"schedule.day_or",render:({field:l})=>e.jsxs(N,{children:[e.jsxs(T,{"aria-label":"Day Or",children:["Day Or ",e.jsx(mn,{})]}),e.jsx(R,{children:e.jsx(U,{className:"block",checked:l.value,onCheckedChange:l.onChange})}),e.jsx(f,{})]})})]}),e.jsx(_,{control:o.control,name:"schedule.timezone",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Timezone"}),e.jsx(R,{children:e.jsx(Ae,{selectedValue:l.value,onSelect:l.onChange})}),e.jsx(f,{})]})})]}),e.jsxs(Y,{children:[e.jsx(Z,{asChild:!0,children:e.jsx(j,{variant:"outline",children:"Close"})}),e.jsx(j,{type:"submit",loading:t||d,children:"Save"})]})]})})},mn=()=>e.jsxs(fe,{children:[e.jsx(Z,{asChild:!0,children:e.jsx("button",{type:"button",className:"cursor-help",children:e.jsx(I,{id:"Info",className:"size-4 inline"})})}),e.jsxs(ve,{"aria-describedby":void 0,children:[e.jsx(Se,{children:e.jsx(Ce,{children:"Day Or"})}),e.jsx(M,{children:'When the "Day Or" value is off, this schedule will connect day of the month and day of the week entries using OR logic; when on it will connect them using AND logic.'})]})]}),xn=[{label:"Seconds",value:"seconds"},{label:"Minutes",value:"minutes"},{label:"Hours",value:"hours"},{label:"Days",value:"days"}],k={seconds:1,minutes:60,hours:3600,days:24*3600},pn=s=>{let n=s;const r=Math.floor(s/k.days);if(n%=k.days,n===0)return{interval_value:r,interval_time:"days"};const a=Math.floor(s/k.hours);if(n%=k.hours,n===0)return{interval_value:a,interval_time:"hours"};const t=Math.floor(s/k.minutes);return n%=k.minutes,n===0?{interval_value:t,interval_time:"minutes"}:{interval_value:n,interval_time:"seconds"}},jn=b({active:q(),schedule:b({interval_value:z().or(V()).pipe(Fs.number()),interval_time:P(["seconds","minutes","hours","days"]),anchor_date:Es(),timezone:V().default("Etc/UTC")})}),G={active:!0,schedule:{interval_value:60,interval_time:"minutes",anchor_date:new Date,timezone:"Etc/UTC"}},gn=({deployment_id:s,scheduleToEdit:n,onSubmit:r})=>{const{createDeploymentSchedule:a,isPending:t}=ge(),{updateDeploymentSchedule:i,isPending:d}=X(),o=ke({resolver:Me(jn),defaultValues:G});c.useEffect(()=>{if(n){const{active:l,schedule:m}=n;if("interval"in m){const{interval:h,anchor_date:x,timezone:y}=m,{interval_value:g,interval_time:p}=pn(h);o.reset({active:l,schedule:{interval_value:g,interval_time:p,anchor_date:x?new Date(x):new Date,timezone:y??"Etc/UTC"}})}}else o.reset(G)},[o,n]);const u=l=>{const m=()=>{o.reset(G),r()};n?i({deployment_id:s,schedule_id:n.id,active:l.active,schedule:{interval:l.schedule.interval_value*k[l.schedule.interval_time],anchor_date:l.schedule.anchor_date.toISOString(),timezone:l.schedule.timezone}},{onSuccess:()=>{F.success("Deployment schedule updated")},onError:h=>{const x=h.message||"Unknown error while updating deployment schedule.";o.setError("root",{message:x})},onSettled:m}):a({deployment_id:s,active:l.active,schedule:{interval:l.schedule.interval_value*k[l.schedule.interval_time],anchor_date:l.schedule.anchor_date.toISOString(),timezone:l.schedule.timezone}},{onSuccess:()=>{F.success("Deployment schedule created")},onError:h=>{const x=h.message||"Unknown error while creating deployment schedule.";o.setError("root",{message:x})},onSettled:m})};return e.jsx(Le,{...o,children:e.jsxs("form",{onSubmit:l=>{o.handleSubmit(u)(l)},className:"space-y-4",children:[e.jsx(f,{children:o.formState.errors.root?.message}),e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(_,{control:o.control,name:"active",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Active"}),e.jsx(R,{children:e.jsx(U,{className:"block",checked:l.value,onCheckedChange:l.onChange})}),e.jsx(f,{})]})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"w-3/4",children:e.jsx(_,{control:o.control,name:"schedule.interval_value",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Value"}),e.jsx(R,{children:e.jsx(je,{...l})}),e.jsx(f,{})]})})}),e.jsx(_,{control:o.control,name:"schedule.interval_time",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Interval"}),e.jsxs(ss,{onValueChange:l.onChange,defaultValue:l.value,value:l.value,children:[e.jsx(R,{children:e.jsx(ns,{children:e.jsx(ts,{placeholder:"Select interval"})})}),e.jsx(as,{children:xn.map(({label:m,value:h})=>e.jsx(rs,{value:h,children:m},h))})]}),e.jsx(f,{})]})})]}),e.jsx(_,{control:o.control,name:"schedule.anchor_date",render:({field:l})=>e.jsxs(N,{className:"flex flex-col",children:[e.jsx(T,{children:"Anchor date"}),e.jsxs(os,{children:[e.jsx(ls,{asChild:!0,children:e.jsx(R,{children:e.jsxs(j,{variant:"outline",className:pe("w-full",!l.value&&"text-muted-foreground"),children:[is(l.value,"dateTime"),e.jsx(I,{id:"Calendar",className:"ml-auto size-4 opacity-50"})]})})}),e.jsx(cs,{className:"w-auto p-0",align:"start",children:e.jsx(ds,{mode:"single",selected:l.value,onSelect:l.onChange})})]}),e.jsx(f,{})]})}),e.jsx(_,{control:o.control,name:"schedule.timezone",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Timezone"}),e.jsx(R,{children:e.jsx(Ae,{selectedValue:l.value,onSelect:l.onChange})}),e.jsx(f,{})]})})]}),e.jsxs(Y,{children:[e.jsx(Z,{asChild:!0,children:e.jsx(j,{variant:"outline",children:"Close"})}),e.jsx(j,{type:"submit",loading:t||d,children:"Save"})]})]})})},fn=()=>e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(M,{children:"Sorry, modifying RRule schedules via the UI is currently unsupported; select a different schedule type above or modify your schedule in code."}),e.jsxs(Y,{children:[e.jsx(ks,{asChild:!0,children:e.jsx(j,{variant:"outline",children:"Close"})}),e.jsx(j,{disabled:!0,children:"Save"})]})]}),vn=({deploymentId:s,onOpenChange:n,open:r,scheduleToEdit:a,onSubmit:t})=>{const[i,d]=c.useState("interval");c.useEffect(()=>{if(!a)return;const{schedule:u}=a;"interval"in u?d("interval"):"cron"in u?d("cron"):d("rrule")},[a]);const o=[{value:"interval",label:"Interval",Component:()=>e.jsx(gn,{deployment_id:s,onSubmit:t,scheduleToEdit:a})},{value:"cron",label:"Cron",Component:()=>e.jsx(hn,{deployment_id:s,onSubmit:t,scheduleToEdit:a})},{value:"rrule",label:"RRule",Component:()=>e.jsx(fn,{})}];return e.jsx(fe,{open:r,onOpenChange:n,children:e.jsxs(ve,{"aria-describedby":void 0,children:[e.jsx(Se,{children:e.jsxs(Ce,{children:[a?"Edit":"Add"," Schedule"]})}),e.jsxs(me,{defaultValue:o[0].value,value:i,children:[e.jsx(xe,{children:o.map(({value:u,label:l})=>e.jsx(A,{value:u,onClick:()=>d(u),children:l},u))}),o.map(({value:u,Component:l})=>e.jsx(L,{value:u,children:e.jsx(l,{})},u))]})]})})},te=s=>{const{schedule:n}=s;return"interval"in n?`Every ${us(n.interval*1e3)}`:"cron"in n?Ie.toString(n.cron):Rs(n.rrule).toText()},Sn=()=>{const[s,n]=Is(),{deleteDeploymentSchedule:r}=hs();return[s,t=>n({title:"Delete Schedule",description:`Are you sure you want to delete ${te(t)} schedule?`,onConfirm:()=>{const{id:i,deployment_id:d}=t;if(!d)throw new Error("'deployment_id' expected");r({deployment_id:d,schedule_id:i},{onSuccess:()=>F.success("Schedule deleted"),onError:o=>{const u=o.message||"Unknown error while deleting schedule.";console.error(u)}})}})]},Cn=({deploymentSchedule:s,onEditSchedule:n})=>{const[r,a]=Sn(),t=o=>{navigator.clipboard.writeText(o),F.success("ID copied")},i=()=>a(s),d=()=>n(s.id);return e.jsxs(e.Fragment,{children:[e.jsxs(ee,{children:[e.jsx(se,{asChild:!0,children:e.jsxs(j,{variant:"outline",className:"size-8 p-0",children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(I,{id:"MoreVertical",className:"size-4"})]})}),e.jsxs(ne,{align:"end",children:[e.jsx(Ne,{children:"Actions"}),e.jsx(E,{onClick:()=>t(s.id),children:"Copy ID"}),e.jsx(E,{onClick:d,children:"Edit"}),e.jsx(E,{onClick:i,children:"Delete"})]})]}),e.jsx(_e,{...r})]})},Dn=({deploymentSchedule:s,disabled:n})=>{const{updateDeploymentSchedule:r}=X(),a=t=>{const{id:i,deployment_id:d}=s;if(!d)throw new Error("'deployment_id' expected");r({schedule_id:i,deployment_id:d,active:t},{onSuccess:()=>F.success(`Deployment schedule ${t?"active":"paused"}`),onError:o=>{const u=o.message||"Unknown error while updating deployment schedule.";console.error(u)}})};return e.jsx(De,{children:e.jsxs(we,{children:[e.jsx(ye,{asChild:!0,children:e.jsx("div",{children:e.jsx(U,{"aria-label":`toggle ${te(s)}`,checked:s.active,onCheckedChange:a,disabled:n})})}),n&&e.jsx(be,{children:"Pause or resume this schedule"})]})})},wn=({deploymentSchedule:s,disabled:n,onEditSchedule:r})=>e.jsx(ms,{className:"p-3",children:e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx(M,{children:te(s)}),e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx(Dn,{deploymentSchedule:s,disabled:n}),e.jsx(Cn,{deploymentSchedule:s,onEditSchedule:r})]})]})}),yn=({deployment:s})=>{const{updateDeployment:n}=xs(),r=t=>{n({id:s.id,paused:!t},{onSuccess:()=>{F.success(`Deployment ${t?"active":"paused"}`)},onError:i=>{const d=i.message||"Unknown error while updating deployment";console.error(d)}})},a=s.entrypoint===""||s.entrypoint===null;return e.jsx(De,{children:e.jsxs(we,{children:[e.jsx(ye,{asChild:!0,children:e.jsx("div",{children:e.jsx(U,{"aria-label":"Pause or resume all schedules",disabled:a,onCheckedChange:r,checked:!s.paused})})}),e.jsx(be,{children:"Pause or resume all schedules"})]})})},bn=3,_n=({deployment:s,onAddSchedule:n,onEditSchedule:r})=>{const a=c.useMemo(()=>s.schedules?s.schedules.sort((t,i)=>t.created?i.created?Date.parse(t.created)-Date.parse(i.created):1:-1):[],[s.schedules]);return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(M,{variant:"bodySmall",className:"text-muted-foreground",children:"Schedules"}),(a.length>bn||s.paused)&&e.jsx(yn,{deployment:s})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[a.map(t=>e.jsx(wn,{disabled:s.paused,deploymentSchedule:t,onEditSchedule:r},t.id)),e.jsx("div",{children:e.jsxs(j,{size:"sm",onClick:n,children:[e.jsx(I,{id:"Plus",className:"mr-2 size-4"})," Schedule"]})})]})]})},Nn=({deployment:s})=>e.jsx(c.Suspense,{fallback:e.jsx(En,{numSkeletons:2}),children:e.jsx(Tn,{deployment:s})}),Tn=({deployment:s})=>{const{data:n}=de(ps(`prefect.deployment.${s.id}`));return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"Triggers"}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Rn,{automations:n}),e.jsx(C,{to:"/automations/create",search:{actions:{type:"run-deployment",deploymentId:s.id,parameters:s.parameters}},children:e.jsxs(j,{size:"sm",children:[e.jsx(I,{id:"Plus",className:"mr-2 size-4"})," Add"]})})]})]})},Rn=({automations:s})=>e.jsx("ul",{className:"flex flex-col gap-1",children:s.map(n=>e.jsx("li",{children:e.jsxs(C,{to:"/automations/automation/$id",params:{id:n.id},className:"flex items-center text-xs",children:[e.jsx(I,{id:"Bot",className:"mr-1 size-4"}),e.jsx("div",{children:n.name})]})},n.id))}),En=({numSkeletons:s=1})=>e.jsx("ul",{className:"flex flex-col gap-1",children:Array.from({length:s}).map((n,r)=>e.jsx("li",{children:e.jsx(js,{className:"h-4 w-full"})},r))}),Fn=({deployment:s})=>{const{onQuickRun:n,isPending:r}=Ls();return e.jsxs(ee,{children:[e.jsx(se,{asChild:!0,children:e.jsxs(j,{loading:r,children:["Run ",e.jsx(I,{className:"ml-1 size-4",id:"Play"})]})}),e.jsx(ne,{children:e.jsxs(vs,{children:[e.jsx(E,{onClick:()=>n(s.id),children:"Quick run"}),e.jsx(C,{to:"/deployments/deployment/$id/run",params:{id:s.id},search:{parameters:s.parameters},children:e.jsx(E,{children:"Custom run"})})]})})]})},Mn=({id:s})=>{const[n,r]=c.useState({open:!1,scheduleIdToEdit:""}),{data:a}=de(gs(s)),[t,i]=As(),d=c.useMemo(()=>{if(!(!a.schedules||!n.scheduleIdToEdit))return a.schedules.find(h=>h.id===n.scheduleIdToEdit)},[a.schedules,n.scheduleIdToEdit]),o=()=>r({open:!0,scheduleIdToEdit:""}),u=h=>r({open:!0,scheduleIdToEdit:h}),l=()=>r({open:!1,scheduleIdToEdit:""}),m=h=>{h||l()};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex align-middle justify-between",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Vs,{deployment:a}),e.jsx(_s,{deployment:a})]}),e.jsxs("div",{className:"flex align-middle gap-2",children:[e.jsx(Fn,{deployment:a}),e.jsx(Ps,{id:s,onDelete:()=>i(a,{shouldNavigate:!0})})]})]}),e.jsxs("div",{className:"grid gap-4",style:{gridTemplateColumns:"5fr 1fr"},children:[e.jsx("div",{className:"flex flex-col gap-5",children:e.jsx(rn,{deployment:a})}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(_n,{deployment:a,onAddSchedule:o,onEditSchedule:u}),e.jsx(Nn,{deployment:a}),e.jsx("hr",{}),e.jsx(ln,{deployment:a})]})]})]}),e.jsx(vn,{deploymentId:s,open:n.open,onOpenChange:m,scheduleToEdit:d,onSubmit:l}),e.jsx(_e,{...t})]})};b({tab:P(["Runs","Upcoming","Parameters","Configuration","Description"]).default("Runs"),runs:b({flowRuns:b({name:V().optional(),state:ie(P(le)).optional().default(J).catch(J)}).optional(),page:z().int().positive().optional().default(1).catch(1),limit:z().int().positive().optional().default(10).catch(10),sort:P(oe).optional().default("START_TIME_DESC").catch("START_TIME_DESC")}).optional(),upcoming:b({flowRuns:b({name:V().optional(),state:ie(P(le)).optional().default(["Scheduled"]).catch(["Scheduled"])}).optional(),page:z().int().positive().optional().default(1).catch(1),limit:z().int().positive().optional().default(5).catch(5),sort:P(oe).optional().default("START_TIME_ASC").catch("START_TIME_ASC")}).optional()});function at(){const{id:s}=fs.useParams();return e.jsx(Mn,{id:s})}export{at as component};
|
|
2
|
-
//# sourceMappingURL=deployment._id-
|
|
1
|
+
import{j as e,L as C,u as B,r as c,F as K,C as Oe,G as $e,D as Be,B as Qe,s as de}from"./vendor-tanstack-CWDKYA_B.js";import{O as ue,q as j,I,y as F,B as We,g as He,h as ae,bs as Ge,bB as Je,bD as qe,al as M,L as re,aN as Ke,ab as he,aE as Xe,cE as Ye,cj as J,N as Ze,aw as me,ax as xe,az as L,ay as A,X as es,aW as pe,p as je,cF as ge,cG as X,G as U,a3 as Y,bh as Z,_ as fe,$ as ve,a0 as Se,a1 as Ce,S as ss,a as ns,b as ts,c as as,e as rs,cH as os,cI as ls,aM as is,cJ as cs,cK as ds,ar as us,cL as hs,bU as De,bR as we,bS as ye,bT as be,C as ms,cM as xs,cN as ps,b5 as js,cg as gs,cO as fs,aL as oe,aA as le}from"./index-CQlQauOE.js";import{D as _e}from"./delete-confirmation-dialog-DyUMWSB-.js";import{D as ee,a as se,b as ne,c as Ne,d as E,f as vs}from"./dropdown-menu-6cSdnzsr.js";import{L as Ss}from"./lazy-markdown-B5J5jhCs.js";import{D as Cs,W as Ds}from"./work-pool-filter-BD0cywQF.js";import{S as ws}from"./sort-filter-BdZ0BjdE.js";import{S as ys,a as Te,F as Re}from"./flow-runs-pagination-DvDLs5GM.js";import{u as Ee,F as Fe}from"./use-flow-runs-selected-rows-B_7PiPKo.js";import{D as bs}from"./data-table-B3EtpFhV.js";import{D as _s}from"./deployment-links-bbtRf3OX.js";import{S as Ns}from"./index-DzylsDQg.js";import{a as Me}from"./zod-CjGf5GIv.js";import{a0 as Ts,$ as Rs}from"./vendor-date-CRz8gtWZ.js";import{c as ke,o as b,b as q,s as V,d as Es,e as P,n as z,f as Fs,a as ie}from"./vendor-forms-D-iybWES.js";import{c as Ms}from"./vendor-recharts-BGjDGXVf.js";import{c as Ie}from"./cronstrue-IJcBJ9tZ.js";import{F as Le,a as f,b as _,c as N,d as T,e as R}from"./form-DvAgEGjn.js";import{T as Ae}from"./timezone-select-5WxUFUXB.js";import{aj as ks}from"./vendor-radix-DRMjKWJW.js";import{u as Is}from"./use-delete-confirmation-dialog-C5d6hPL-.js";import{u as Ls,a as As}from"./use-quick-run-IfBGzpj9.js";import"./vendor-react-Bce9NwRC.js";import"./table--kjjs3jN.js";import"./work-queue-icon-text-GE7b8Ro1.js";const Pe=({search:s,sort:n,stateFilter:r,deploymentFilter:a,workPoolFilter:t})=>e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 pr-2 border-r-2",children:[e.jsx("div",{className:"min-w-56",children:e.jsx(ue,{"aria-label":"search by run name",placeholder:"Search by run name",value:s.value,onChange:i=>s.onChange(i.target.value)})}),e.jsx("div",{className:"min-w-56",children:e.jsx(ys,{selectedFilters:r.value,onSelectFilter:r.onSelect})}),a&&e.jsx("div",{className:"min-w-56",children:e.jsx(Cs,{selectedDeployments:a.value,onSelectDeployments:a.onSelect})}),t&&e.jsx("div",{className:"min-w-56",children:e.jsx(Ds,{selectedWorkPools:t.value,onSelectWorkPools:t.onSelect})})]}),e.jsx(ws,{value:n.value,onSelect:n.onSelect})]}),Ps=({id:s,onDelete:n})=>{const r=a=>{navigator.clipboard.writeText(a),F.success("ID copied")};return e.jsxs(ee,{children:[e.jsx(se,{asChild:!0,children:e.jsxs(j,{variant:"outline",className:"size-8 p-0",children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(I,{id:"MoreVertical",className:"size-4"})]})}),e.jsxs(ne,{align:"end",children:[e.jsx(Ne,{children:"Actions"}),e.jsx(E,{onClick:()=>r(s),children:"Copy ID"}),e.jsx(C,{to:"/deployments/deployment/$id/edit",params:{id:s},children:e.jsx(E,{children:"Edit"})}),e.jsx(E,{onClick:n,children:"Delete"}),e.jsx(C,{to:"/deployments/deployment/$id/duplicate",params:{id:s},children:e.jsx(E,{children:"Duplicate"})})]})]})},Vs=({deployment:s})=>e.jsx(We,{children:e.jsxs(He,{children:[e.jsx(ae,{children:e.jsx(Ge,{to:"/deployments",className:"text-xl font-semibold",children:"Deployments"})}),e.jsx(Je,{}),e.jsx(ae,{className:"text-xl font-semibold",children:e.jsx(qe,{children:s.name})})]})}),zs=({deployment:s})=>{const n=JSON.stringify(s.job_variables??{},null,2),r=JSON.stringify(s.pull_steps??[],null,2);return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(M,{variant:"h4",children:"Job Variables"}),e.jsx(re,{copy:!0,disabled:!0,hideLineNumbers:!0,value:n}),e.jsx(M,{variant:"h4",children:"Pull Steps "}),e.jsx(re,{copy:!0,disabled:!0,hideLineNumbers:!0,value:r})]})},Us=({deployment:s})=>e.jsx("div",{className:"prose max-w-none",children:e.jsx(Ss,{children:s.description??""})}),Os=s=>{const{data:n,error:r}=B(Ke(s)),a=c.useMemo(()=>n?n.map(o=>o.flow_id):[],[n]),{data:t,error:i}=B(he({flows:{id:{any_:a},operator:"and_"},offset:0,sort:"CREATED_DESC"},{enabled:a.length>0})),d=c.useMemo(()=>t?new Map(t.map(o=>[o.id,o])):new Map,[t]);return n&&n.length===0?{status:"success",error:null,data:[]}:n&&d.size>0?{status:"success",error:null,data:n.map(o=>{const u=d.get(o.flow_id);return{...o,flow:u}})}:r||i?{status:"error",error:r||i,data:void 0}:{status:"pending",error:null,data:void 0}},Ve=s=>{const{data:n,error:r}=B(Xe(s)),a=c.useMemo(()=>n?n.results.map(o=>o.flow_id):[],[n]),{data:t,error:i}=B(he({flows:{id:{any_:a},operator:"and_"},offset:0,sort:"CREATED_DESC"},{enabled:a.length>0})),d=c.useMemo(()=>t?new Map(t.map(o=>[o.id,o])):new Map,[t]);return n&&n.results.length===0?{status:"success",error:null,data:{...n,results:[]}}:n&&d.size>0?{status:"success",error:null,data:{...n,results:n.results.map(o=>{const u=d.get(o.flow_id);return{...o,flow:u}})}}:r||i?{status:"error",error:r||i,data:void 0}:{status:"pending",error:null,data:void 0}},D=K("/deployments/deployment/$id"),$s=({deployment:s})=>{const[n,r,{clearSet:a,onSelectRow:t}]=Ee(),[i,d]=Ws(),[o,u]=Hs(),[l,m]=Gs(),[h,x]=Js(),y=Qs(),{data:g}=Ve({deployments:{operator:"and_",id:{any_:[s.id]}},flow_runs:{name:{like_:o||void 0},state:{name:{any_:h.length===0?void 0:h},operator:"or_"},operator:"and_"},limit:i.limit,page:i.page,sort:l}),p=c.useMemo(()=>{if(g)return{...g,results:g.results.map(Ue=>({...Ue,deployment:s}))}},[g,s]),Q=y?()=>{y(),a()}:void 0,O=Bs(s);return e.jsxs("div",{className:"flex flex-col gap-2",children:[O&&e.jsxs("div",{className:"flex flex-col gap-2 border-b py-2",children:[e.jsx(M,{variant:"bodyLarge",children:"Next Run"}),e.jsx(Ye,{flowRun:O})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(Fe,{count:p?.count,results:p?.results,selectedRows:n,setSelectedRows:r}),e.jsx(Pe,{search:{value:o,onChange:u},sort:{value:l,onSelect:m},stateFilter:{value:new Set(h),onSelect:x}})]}),e.jsx(Te,{flowRuns:p?.results,selectedRows:n,onSelect:t,onClearFilters:Q}),p&&e.jsx(Re,{count:p.count,pagination:i,onChangePagination:d,pages:p.pages})]})]})};function Bs(s){const{data:n}=Os({deployments:{id:{any_:[s.id]},operator:"and_"},flow_runs:{state:{name:{any_:["Scheduled"]},operator:"and_"},operator:"and_"},sort:"EXPECTED_START_TIME_ASC",limit:1,offset:0});return c.useMemo(()=>{if(!(!n||!n[0]))return{...n[0],deployment:s}},[n,s])}function Qs(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(()=>{n({to:".",search:t=>({...t,runs:void 0}),replace:!0})},[n]);return c.useMemo(()=>!!s,[s])?r:void 0}function Ws(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,...t}}),replace:!0})},[n,s]);return[c.useMemo(()=>({page:s?.page??1,limit:s?.limit??10}),[s?.limit,s?.page]),r]}function Hs(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,flowRuns:{...s?.flowRuns,name:t}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.name??"",[s?.flowRuns?.name]),r]}function Gs(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,sort:t}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.sort??"START_TIME_DESC",[s?.sort]),r]}function Js(){const{runs:s}=D.useSearch(),n=D.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,runs:{...s,flowRuns:{...s?.flowRuns,state:t?Array.from(t):void 0}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.state??J,[s?.flowRuns?.state]),r]}const w=K("/deployments/deployment/$id"),qs=({deployment:s})=>{const[n,r,{clearSet:a,onSelectRow:t}]=Ee(),[i,d]=Xs(),[o,u]=Ys(),[l,m]=Zs(),[h,x]=en(),y=Ks(),{data:g}=Ve({deployments:{operator:"and_",id:{any_:[s.id]}},flow_runs:{name:{like_:o||void 0},state:{name:{any_:h.length===0?void 0:h},operator:"or_"},operator:"and_"},limit:i.limit,page:i.page,sort:l}),p=c.useMemo(()=>{if(g)return{...g,results:g.results.map(O=>({...O,deployment:s}))}},[g,s]),Q=y?()=>{y(),a()}:void 0;return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(Fe,{count:p?.count,results:p?.results,selectedRows:n,setSelectedRows:r}),e.jsx(Pe,{search:{value:o,onChange:u},sort:{value:l,onSelect:m},stateFilter:{value:new Set(h),onSelect:x}})]}),e.jsx(Te,{flowRuns:p?.results,selectedRows:n,onSelect:t,onClearFilters:Q}),p&&p.results.length>0&&e.jsx(Re,{count:p.count,pagination:i,onChangePagination:d,pages:p.pages})]})};function Ks(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(()=>{n({to:".",search:t=>({...t,upcoming:void 0}),replace:!0})},[n]);return c.useMemo(()=>!!s,[s])?r:void 0}function Xs(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,...t}}),replace:!0})},[n,s]);return[c.useMemo(()=>({page:s?.page??1,limit:s?.limit??5}),[s?.limit,s?.page]),r]}function Ys(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,flowRuns:{...s?.flowRuns,name:t}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.name??"",[s?.flowRuns?.name]),r]}function Zs(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,sort:t}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.sort??"START_TIME_ASC",[s?.sort]),r]}function en(){const{upcoming:s}=w.useSearch(),n=w.useNavigate(),r=c.useCallback(t=>{n({to:".",search:i=>({...i,upcoming:{...s,flowRuns:{...s?.flowRuns,state:t?Array.from(t):void 0}}}),replace:!0})},[n,s]);return[c.useMemo(()=>s?.flowRuns?.state??["Scheduled"],[s?.flowRuns?.state]),r]}const $=Qe(),sn=[$.accessor("key",{header:"Key"}),$.accessor("value",{header:"Override"}),$.accessor("defaultValue",{header:"Default"}),$.accessor("type",{header:"Type"})],nn=s=>c.useMemo(()=>{if(!s.parameter_openapi_schema)return[];const n=s.parameter_openapi_schema.properties,r=s.parameters;return Object.keys(n).sort((a,t)=>n[a].position-n[t].position).map(a=>{const t=n[a];return{key:a,value:r[a],defaultValue:t.default,type:t.type}})},[s]),tn=({deployment:s})=>{const[n,r]=c.useState(""),a=nn(s),t=c.useDeferredValue(n),i=c.useMemo(()=>a.filter(o=>o.key.toLowerCase().includes(t.toLowerCase())||o.value?.toString().toLowerCase().includes(t.toLowerCase())||o.defaultValue?.toString().toLowerCase().includes(t.toLowerCase())||o.type?.toString().toLowerCase().includes(t.toLowerCase())),[a,t]),d=Oe({data:i,columns:sn,getCoreRowModel:Be(),defaultColumn:{maxSize:300},getPaginationRowModel:$e()});return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(M,{variant:"bodySmall",className:"text-muted-foreground",children:[i.length," ",Ze(i.length,"parameter")]}),e.jsx("div",{className:"sm:col-span-2 md:col-span-2 lg:col-span-3",children:e.jsx(ue,{className:"sm:col-span-2 md:col-span-2 lg:col-span-3",placeholder:"Search parameters",value:n,onChange:o=>r(o.target.value)})})]}),e.jsx(bs,{table:d})]})},an=K("/deployments/deployment/$id"),rn=({deployment:s})=>{const{tab:n}=an.useSearch(),r=on(s);return e.jsxs(me,{defaultValue:r[0].value,value:n,children:[e.jsx(xe,{children:r.map(({value:a,LinkComponent:t})=>e.jsx(t,{},a))}),r.map(({value:a,ViewComponent:t})=>e.jsx(t,{},a))]})};function on(s){return c.useMemo(()=>[{value:"Runs",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Runs"},children:e.jsx(A,{value:"Runs",children:"Runs"})}),ViewComponent:()=>e.jsx(L,{value:"Runs",children:e.jsx($s,{deployment:s})})},{value:"Upcoming",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Upcoming"},children:e.jsx(A,{value:"Upcoming",children:"Upcoming"})}),ViewComponent:()=>e.jsx(L,{value:"Upcoming",children:e.jsx(qs,{deployment:s})})},{value:"Parameters",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Parameters"},children:e.jsx(A,{value:"Parameters",children:"Parameters"})}),ViewComponent:()=>e.jsx(L,{value:"Parameters",children:e.jsx(tn,{deployment:s})})},{value:"Configuration",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Configuration"},children:e.jsx(A,{value:"Configuration",children:"Configuration"})}),ViewComponent:()=>e.jsx(L,{value:"Configuration",children:e.jsx(zs,{deployment:s})})},{value:"Description",LinkComponent:()=>e.jsx(C,{to:".",search:{tab:"Description"},children:e.jsx(A,{value:"Description",children:"Description"})}),ViewComponent:()=>e.jsx(L,{value:"Description",children:e.jsx(Us,{deployment:s})})}],[s])}const v=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),ce=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),S=({className:s,children:n})=>e.jsx("dd",{className:pe("text-sm",s),children:n}),ln=({deployment:s})=>{const n=[{field:"Status",ComponentValue:()=>s.status?e.jsx("dd",{children:e.jsx(Ns,{status:s.status})}):e.jsx(v,{})},{field:"Created",ComponentValue:()=>s.created?e.jsx(S,{className:"font-mono",children:s.created}):e.jsx(v,{})},{field:"Updated",ComponentValue:()=>s.updated?e.jsx(S,{className:"font-mono",children:s.updated}):e.jsx(v,{})},{field:"Entrypoint",ComponentValue:()=>s.entrypoint?e.jsx(S,{children:s.entrypoint}):e.jsx(v,{})},{field:"Path",ComponentValue:()=>s.path?e.jsx(S,{children:s.path}):e.jsx(v,{})},{field:"Concurrency Limit",ComponentValue:()=>s.global_concurrency_limit?e.jsx(S,{children:s.global_concurrency_limit.limit}):e.jsx(v,{})}],r=[{field:"Flow ID",ComponentValue:()=>e.jsx(S,{children:s.flow_id})},{field:"Deployment ID",ComponentValue:()=>e.jsx(S,{children:s.id})},{field:"Deployment Version",ComponentValue:()=>s.version?e.jsx(S,{children:s.version}):e.jsx(v,{})},{field:"Storage Document ID",ComponentValue:()=>s.storage_document_id?e.jsx(S,{children:s.storage_document_id}):e.jsx(v,{})},{field:"Infrastructure Document ID",ComponentValue:()=>s.infrastructure_document_id?e.jsx(S,{children:s.infrastructure_document_id}):e.jsx(v,{})},{field:"Tags",ComponentValue:()=>s.tags&&s.tags.length>0?e.jsx("dd",{children:e.jsx(es,{tags:s.tags,maxTagsDisplayed:4})}):e.jsx(v,{})}];return e.jsxs("div",{children:[e.jsx("ul",{className:"flex flex-col gap-3",children:n.map(({field:a,ComponentValue:t})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(ce,{children:a}),e.jsx(t,{})]})},a))}),e.jsx("hr",{className:"my-3"}),e.jsx("ul",{className:"flex flex-col gap-3",children:r.map(({field:a,ComponentValue:t})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(ce,{children:a}),e.jsx(t,{})]})},a))})]})};var ze=Ts();const W=s=>{let n="",r=!1;try{ze.CronExpressionParser.parse(s),n=Ie.toString(s),r=!0}catch{r=!1,n="Invalid expression"}return{description:n,isCronValid:r}},cn=({onChange:s,...n})=>{const[r,a]=c.useState(W(String(n.value)).description),[t,i]=c.useState(W(String(n.value)).isCronValid),d=o=>{if(s){s(o);const{description:u,isCronValid:l}=W(o.target.value);a(u),i(l)}};return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx(je,{...n,onChange:d}),e.jsx(M,{variant:"bodySmall",className:Ms(t?"text-muted-foreground":"text-red-500"),children:r})]})},dn=s=>{try{return ze.CronExpressionParser.parse(s),!0}catch{return!1}},un=b({active:q(),schedule:b({cron:V().refine(dn),timezone:V().default("Etc/UTC"),day_or:q().default(!0)})}),H={active:!0,schedule:{cron:"* * * * *",timezone:"Etc/UTC",day_or:!0}},hn=({deployment_id:s,scheduleToEdit:n,onSubmit:r})=>{const{createDeploymentSchedule:a,isPending:t}=ge(),{updateDeploymentSchedule:i,isPending:d}=X(),o=ke({resolver:Me(un),defaultValues:H});c.useEffect(()=>{if(n){const{active:l,schedule:m}=n;if("cron"in m){const{cron:h,day_or:x,timezone:y}=m;o.reset({active:l,schedule:{cron:h,day_or:x,timezone:y??"Etc/UTC"}})}}else o.reset(H)},[o,n]);const u=l=>{const m=()=>{o.reset(H),r()};n?i({deployment_id:s,schedule_id:n.id,...l},{onSuccess:()=>{F.success("Deployment schedule updated")},onError:h=>{const x=h.message||"Unknown error while updating deployment schedule.";o.setError("root",{message:x})},onSettled:m}):a({deployment_id:s,...l},{onSuccess:()=>{F.success("Deployment schedule created")},onError:h=>{const x=h.message||"Unknown error while creating deployment schedule.";o.setError("root",{message:x})},onSettled:m})};return e.jsx(Le,{...o,children:e.jsxs("form",{onSubmit:l=>{o.handleSubmit(u)(l)},className:"space-y-4",children:[e.jsx(f,{children:o.formState.errors.root?.message}),e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(_,{control:o.control,name:"active",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Active"}),e.jsx(R,{children:e.jsx(U,{className:"block",checked:l.value,onCheckedChange:l.onChange})}),e.jsx(f,{})]})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"w-3/4",children:e.jsx(_,{control:o.control,name:"schedule.cron",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Value"}),e.jsx(R,{children:e.jsx(cn,{...l})}),e.jsx(f,{})]})})}),e.jsx(_,{control:o.control,name:"schedule.day_or",render:({field:l})=>e.jsxs(N,{children:[e.jsxs(T,{"aria-label":"Day Or",children:["Day Or ",e.jsx(mn,{})]}),e.jsx(R,{children:e.jsx(U,{className:"block",checked:l.value,onCheckedChange:l.onChange})}),e.jsx(f,{})]})})]}),e.jsx(_,{control:o.control,name:"schedule.timezone",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Timezone"}),e.jsx(R,{children:e.jsx(Ae,{selectedValue:l.value,onSelect:l.onChange})}),e.jsx(f,{})]})})]}),e.jsxs(Y,{children:[e.jsx(Z,{asChild:!0,children:e.jsx(j,{variant:"outline",children:"Close"})}),e.jsx(j,{type:"submit",loading:t||d,children:"Save"})]})]})})},mn=()=>e.jsxs(fe,{children:[e.jsx(Z,{asChild:!0,children:e.jsx("button",{type:"button",className:"cursor-help",children:e.jsx(I,{id:"Info",className:"size-4 inline"})})}),e.jsxs(ve,{"aria-describedby":void 0,children:[e.jsx(Se,{children:e.jsx(Ce,{children:"Day Or"})}),e.jsx(M,{children:'When the "Day Or" value is off, this schedule will connect day of the month and day of the week entries using OR logic; when on it will connect them using AND logic.'})]})]}),xn=[{label:"Seconds",value:"seconds"},{label:"Minutes",value:"minutes"},{label:"Hours",value:"hours"},{label:"Days",value:"days"}],k={seconds:1,minutes:60,hours:3600,days:24*3600},pn=s=>{let n=s;const r=Math.floor(s/k.days);if(n%=k.days,n===0)return{interval_value:r,interval_time:"days"};const a=Math.floor(s/k.hours);if(n%=k.hours,n===0)return{interval_value:a,interval_time:"hours"};const t=Math.floor(s/k.minutes);return n%=k.minutes,n===0?{interval_value:t,interval_time:"minutes"}:{interval_value:n,interval_time:"seconds"}},jn=b({active:q(),schedule:b({interval_value:z().or(V()).pipe(Fs.number()),interval_time:P(["seconds","minutes","hours","days"]),anchor_date:Es(),timezone:V().default("Etc/UTC")})}),G={active:!0,schedule:{interval_value:60,interval_time:"minutes",anchor_date:new Date,timezone:"Etc/UTC"}},gn=({deployment_id:s,scheduleToEdit:n,onSubmit:r})=>{const{createDeploymentSchedule:a,isPending:t}=ge(),{updateDeploymentSchedule:i,isPending:d}=X(),o=ke({resolver:Me(jn),defaultValues:G});c.useEffect(()=>{if(n){const{active:l,schedule:m}=n;if("interval"in m){const{interval:h,anchor_date:x,timezone:y}=m,{interval_value:g,interval_time:p}=pn(h);o.reset({active:l,schedule:{interval_value:g,interval_time:p,anchor_date:x?new Date(x):new Date,timezone:y??"Etc/UTC"}})}}else o.reset(G)},[o,n]);const u=l=>{const m=()=>{o.reset(G),r()};n?i({deployment_id:s,schedule_id:n.id,active:l.active,schedule:{interval:l.schedule.interval_value*k[l.schedule.interval_time],anchor_date:l.schedule.anchor_date.toISOString(),timezone:l.schedule.timezone}},{onSuccess:()=>{F.success("Deployment schedule updated")},onError:h=>{const x=h.message||"Unknown error while updating deployment schedule.";o.setError("root",{message:x})},onSettled:m}):a({deployment_id:s,active:l.active,schedule:{interval:l.schedule.interval_value*k[l.schedule.interval_time],anchor_date:l.schedule.anchor_date.toISOString(),timezone:l.schedule.timezone}},{onSuccess:()=>{F.success("Deployment schedule created")},onError:h=>{const x=h.message||"Unknown error while creating deployment schedule.";o.setError("root",{message:x})},onSettled:m})};return e.jsx(Le,{...o,children:e.jsxs("form",{onSubmit:l=>{o.handleSubmit(u)(l)},className:"space-y-4",children:[e.jsx(f,{children:o.formState.errors.root?.message}),e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(_,{control:o.control,name:"active",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Active"}),e.jsx(R,{children:e.jsx(U,{className:"block",checked:l.value,onCheckedChange:l.onChange})}),e.jsx(f,{})]})}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("div",{className:"w-3/4",children:e.jsx(_,{control:o.control,name:"schedule.interval_value",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Value"}),e.jsx(R,{children:e.jsx(je,{...l})}),e.jsx(f,{})]})})}),e.jsx(_,{control:o.control,name:"schedule.interval_time",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Interval"}),e.jsxs(ss,{onValueChange:l.onChange,defaultValue:l.value,value:l.value,children:[e.jsx(R,{children:e.jsx(ns,{children:e.jsx(ts,{placeholder:"Select interval"})})}),e.jsx(as,{children:xn.map(({label:m,value:h})=>e.jsx(rs,{value:h,children:m},h))})]}),e.jsx(f,{})]})})]}),e.jsx(_,{control:o.control,name:"schedule.anchor_date",render:({field:l})=>e.jsxs(N,{className:"flex flex-col",children:[e.jsx(T,{children:"Anchor date"}),e.jsxs(os,{children:[e.jsx(ls,{asChild:!0,children:e.jsx(R,{children:e.jsxs(j,{variant:"outline",className:pe("w-full",!l.value&&"text-muted-foreground"),children:[is(l.value,"dateTime"),e.jsx(I,{id:"Calendar",className:"ml-auto size-4 opacity-50"})]})})}),e.jsx(cs,{className:"w-auto p-0",align:"start",children:e.jsx(ds,{mode:"single",selected:l.value,onSelect:l.onChange})})]}),e.jsx(f,{})]})}),e.jsx(_,{control:o.control,name:"schedule.timezone",render:({field:l})=>e.jsxs(N,{children:[e.jsx(T,{children:"Timezone"}),e.jsx(R,{children:e.jsx(Ae,{selectedValue:l.value,onSelect:l.onChange})}),e.jsx(f,{})]})})]}),e.jsxs(Y,{children:[e.jsx(Z,{asChild:!0,children:e.jsx(j,{variant:"outline",children:"Close"})}),e.jsx(j,{type:"submit",loading:t||d,children:"Save"})]})]})})},fn=()=>e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsx(M,{children:"Sorry, modifying RRule schedules via the UI is currently unsupported; select a different schedule type above or modify your schedule in code."}),e.jsxs(Y,{children:[e.jsx(ks,{asChild:!0,children:e.jsx(j,{variant:"outline",children:"Close"})}),e.jsx(j,{disabled:!0,children:"Save"})]})]}),vn=({deploymentId:s,onOpenChange:n,open:r,scheduleToEdit:a,onSubmit:t})=>{const[i,d]=c.useState("interval");c.useEffect(()=>{if(!a)return;const{schedule:u}=a;"interval"in u?d("interval"):"cron"in u?d("cron"):d("rrule")},[a]);const o=[{value:"interval",label:"Interval",Component:()=>e.jsx(gn,{deployment_id:s,onSubmit:t,scheduleToEdit:a})},{value:"cron",label:"Cron",Component:()=>e.jsx(hn,{deployment_id:s,onSubmit:t,scheduleToEdit:a})},{value:"rrule",label:"RRule",Component:()=>e.jsx(fn,{})}];return e.jsx(fe,{open:r,onOpenChange:n,children:e.jsxs(ve,{"aria-describedby":void 0,children:[e.jsx(Se,{children:e.jsxs(Ce,{children:[a?"Edit":"Add"," Schedule"]})}),e.jsxs(me,{defaultValue:o[0].value,value:i,children:[e.jsx(xe,{children:o.map(({value:u,label:l})=>e.jsx(A,{value:u,onClick:()=>d(u),children:l},u))}),o.map(({value:u,Component:l})=>e.jsx(L,{value:u,children:e.jsx(l,{})},u))]})]})})},te=s=>{const{schedule:n}=s;return"interval"in n?`Every ${us(n.interval*1e3)}`:"cron"in n?Ie.toString(n.cron):Rs(n.rrule).toText()},Sn=()=>{const[s,n]=Is(),{deleteDeploymentSchedule:r}=hs();return[s,t=>n({title:"Delete Schedule",description:`Are you sure you want to delete ${te(t)} schedule?`,onConfirm:()=>{const{id:i,deployment_id:d}=t;if(!d)throw new Error("'deployment_id' expected");r({deployment_id:d,schedule_id:i},{onSuccess:()=>F.success("Schedule deleted"),onError:o=>{const u=o.message||"Unknown error while deleting schedule.";console.error(u)}})}})]},Cn=({deploymentSchedule:s,onEditSchedule:n})=>{const[r,a]=Sn(),t=o=>{navigator.clipboard.writeText(o),F.success("ID copied")},i=()=>a(s),d=()=>n(s.id);return e.jsxs(e.Fragment,{children:[e.jsxs(ee,{children:[e.jsx(se,{asChild:!0,children:e.jsxs(j,{variant:"outline",className:"size-8 p-0",children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(I,{id:"MoreVertical",className:"size-4"})]})}),e.jsxs(ne,{align:"end",children:[e.jsx(Ne,{children:"Actions"}),e.jsx(E,{onClick:()=>t(s.id),children:"Copy ID"}),e.jsx(E,{onClick:d,children:"Edit"}),e.jsx(E,{onClick:i,children:"Delete"})]})]}),e.jsx(_e,{...r})]})},Dn=({deploymentSchedule:s,disabled:n})=>{const{updateDeploymentSchedule:r}=X(),a=t=>{const{id:i,deployment_id:d}=s;if(!d)throw new Error("'deployment_id' expected");r({schedule_id:i,deployment_id:d,active:t},{onSuccess:()=>F.success(`Deployment schedule ${t?"active":"paused"}`),onError:o=>{const u=o.message||"Unknown error while updating deployment schedule.";console.error(u)}})};return e.jsx(De,{children:e.jsxs(we,{children:[e.jsx(ye,{asChild:!0,children:e.jsx("div",{children:e.jsx(U,{"aria-label":`toggle ${te(s)}`,checked:s.active,onCheckedChange:a,disabled:n})})}),n&&e.jsx(be,{children:"Pause or resume this schedule"})]})})},wn=({deploymentSchedule:s,disabled:n,onEditSchedule:r})=>e.jsx(ms,{className:"p-3",children:e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx(M,{children:te(s)}),e.jsxs("div",{className:"flex items-baseline gap-2",children:[e.jsx(Dn,{deploymentSchedule:s,disabled:n}),e.jsx(Cn,{deploymentSchedule:s,onEditSchedule:r})]})]})}),yn=({deployment:s})=>{const{updateDeployment:n}=xs(),r=t=>{n({id:s.id,paused:!t},{onSuccess:()=>{F.success(`Deployment ${t?"active":"paused"}`)},onError:i=>{const d=i.message||"Unknown error while updating deployment";console.error(d)}})},a=s.entrypoint===""||s.entrypoint===null;return e.jsx(De,{children:e.jsxs(we,{children:[e.jsx(ye,{asChild:!0,children:e.jsx("div",{children:e.jsx(U,{"aria-label":"Pause or resume all schedules",disabled:a,onCheckedChange:r,checked:!s.paused})})}),e.jsx(be,{children:"Pause or resume all schedules"})]})})},bn=3,_n=({deployment:s,onAddSchedule:n,onEditSchedule:r})=>{const a=c.useMemo(()=>s.schedules?s.schedules.sort((t,i)=>t.created?i.created?Date.parse(t.created)-Date.parse(i.created):1:-1):[],[s.schedules]);return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(M,{variant:"bodySmall",className:"text-muted-foreground",children:"Schedules"}),(a.length>bn||s.paused)&&e.jsx(yn,{deployment:s})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[a.map(t=>e.jsx(wn,{disabled:s.paused,deploymentSchedule:t,onEditSchedule:r},t.id)),e.jsx("div",{children:e.jsxs(j,{size:"sm",onClick:n,children:[e.jsx(I,{id:"Plus",className:"mr-2 size-4"})," Schedule"]})})]})]})},Nn=({deployment:s})=>e.jsx(c.Suspense,{fallback:e.jsx(En,{numSkeletons:2}),children:e.jsx(Tn,{deployment:s})}),Tn=({deployment:s})=>{const{data:n}=de(ps(`prefect.deployment.${s.id}`));return e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsx("div",{className:"text-sm text-muted-foreground",children:"Triggers"}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Rn,{automations:n}),e.jsx(C,{to:"/automations/create",search:{actions:{type:"run-deployment",deploymentId:s.id,parameters:s.parameters}},children:e.jsxs(j,{size:"sm",children:[e.jsx(I,{id:"Plus",className:"mr-2 size-4"})," Add"]})})]})]})},Rn=({automations:s})=>e.jsx("ul",{className:"flex flex-col gap-1",children:s.map(n=>e.jsx("li",{children:e.jsxs(C,{to:"/automations/automation/$id",params:{id:n.id},className:"flex items-center text-xs",children:[e.jsx(I,{id:"Bot",className:"mr-1 size-4"}),e.jsx("div",{children:n.name})]})},n.id))}),En=({numSkeletons:s=1})=>e.jsx("ul",{className:"flex flex-col gap-1",children:Array.from({length:s}).map((n,r)=>e.jsx("li",{children:e.jsx(js,{className:"h-4 w-full"})},r))}),Fn=({deployment:s})=>{const{onQuickRun:n,isPending:r}=Ls();return e.jsxs(ee,{children:[e.jsx(se,{asChild:!0,children:e.jsxs(j,{loading:r,children:["Run ",e.jsx(I,{className:"ml-1 size-4",id:"Play"})]})}),e.jsx(ne,{children:e.jsxs(vs,{children:[e.jsx(E,{onClick:()=>n(s.id),children:"Quick run"}),e.jsx(C,{to:"/deployments/deployment/$id/run",params:{id:s.id},search:{parameters:s.parameters},children:e.jsx(E,{children:"Custom run"})})]})})]})},Mn=({id:s})=>{const[n,r]=c.useState({open:!1,scheduleIdToEdit:""}),{data:a}=de(gs(s)),[t,i]=As(),d=c.useMemo(()=>{if(!(!a.schedules||!n.scheduleIdToEdit))return a.schedules.find(h=>h.id===n.scheduleIdToEdit)},[a.schedules,n.scheduleIdToEdit]),o=()=>r({open:!0,scheduleIdToEdit:""}),u=h=>r({open:!0,scheduleIdToEdit:h}),l=()=>r({open:!1,scheduleIdToEdit:""}),m=h=>{h||l()};return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex align-middle justify-between",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(Vs,{deployment:a}),e.jsx(_s,{deployment:a})]}),e.jsxs("div",{className:"flex align-middle gap-2",children:[e.jsx(Fn,{deployment:a}),e.jsx(Ps,{id:s,onDelete:()=>i(a,{shouldNavigate:!0})})]})]}),e.jsxs("div",{className:"grid gap-4",style:{gridTemplateColumns:"5fr 1fr"},children:[e.jsx("div",{className:"flex flex-col gap-5",children:e.jsx(rn,{deployment:a})}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx(_n,{deployment:a,onAddSchedule:o,onEditSchedule:u}),e.jsx(Nn,{deployment:a}),e.jsx("hr",{}),e.jsx(ln,{deployment:a})]})]})]}),e.jsx(vn,{deploymentId:s,open:n.open,onOpenChange:m,scheduleToEdit:d,onSubmit:l}),e.jsx(_e,{...t})]})};b({tab:P(["Runs","Upcoming","Parameters","Configuration","Description"]).default("Runs"),runs:b({flowRuns:b({name:V().optional(),state:ie(P(le)).optional().default(J).catch(J)}).optional(),page:z().int().positive().optional().default(1).catch(1),limit:z().int().positive().optional().default(10).catch(10),sort:P(oe).optional().default("START_TIME_DESC").catch("START_TIME_DESC")}).optional(),upcoming:b({flowRuns:b({name:V().optional(),state:ie(P(le)).optional().default(["Scheduled"]).catch(["Scheduled"])}).optional(),page:z().int().positive().optional().default(1).catch(1),limit:z().int().positive().optional().default(5).catch(5),sort:P(oe).optional().default("START_TIME_ASC").catch("START_TIME_ASC")}).optional()});function at(){const{id:s}=fs.useParams();return e.jsx(Mn,{id:s})}export{at as component};
|
|
2
|
+
//# sourceMappingURL=deployment._id-DFzzDIAz.js.map
|