prefect 3.6.14.dev3__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.
Files changed (257) hide show
  1. prefect/_build_info.py +3 -3
  2. prefect/events/clients.py +36 -3
  3. prefect/futures.py +17 -4
  4. prefect/runner/runner.py +113 -29
  5. prefect/server/api/events.py +3 -2
  6. prefect/server/ui-v2/assets/{artifact-card-CNabu-6j.js → artifact-card-DprxJzPy.js} +2 -2
  7. prefect/server/ui-v2/assets/{artifact-card-CNabu-6j.js.map → artifact-card-DprxJzPy.js.map} +1 -1
  8. prefect/server/ui-v2/assets/{artifact._id-Emkhr_0h.js → artifact._id-CXcnU7_U.js} +2 -2
  9. prefect/server/ui-v2/assets/{artifact._id-Emkhr_0h.js.map → artifact._id-CXcnU7_U.js.map} +1 -1
  10. prefect/server/ui-v2/assets/{automation-schema-CRKJHa4q.js → automation-schema-crrFcHTg.js} +2 -2
  11. prefect/server/ui-v2/assets/{automation-schema-CRKJHa4q.js.map → automation-schema-crrFcHTg.js.map} +1 -1
  12. prefect/server/ui-v2/assets/{automation-wizard-Cej8aik5.js → automation-wizard-DPKDA6ji.js} +2 -2
  13. prefect/server/ui-v2/assets/{automation-wizard-Cej8aik5.js.map → automation-wizard-DPKDA6ji.js.map} +1 -1
  14. prefect/server/ui-v2/assets/automation._id-BvFFkDrn.js +2 -0
  15. prefect/server/ui-v2/assets/{automation._id-Bm1T3_NO.js.map → automation._id-BvFFkDrn.js.map} +1 -1
  16. prefect/server/ui-v2/assets/{automation_._id.edit-C5NIVfxR.js → automation_._id.edit-vpFy8Znl.js} +2 -2
  17. prefect/server/ui-v2/assets/{automation_._id.edit-C5NIVfxR.js.map → automation_._id.edit-vpFy8Znl.js.map} +1 -1
  18. prefect/server/ui-v2/assets/{automations-header-CdJSlWw8.js → automations-header-eG-shDxp.js} +2 -2
  19. prefect/server/ui-v2/assets/{automations-header-CdJSlWw8.js.map → automations-header-eG-shDxp.js.map} +1 -1
  20. prefect/server/ui-v2/assets/{base-job-template-form-section-DX_X28oU.js → base-job-template-form-section-du3c8HMM.js} +2 -2
  21. prefect/server/ui-v2/assets/{base-job-template-form-section-DX_X28oU.js.map → base-job-template-form-section-du3c8HMM.js.map} +1 -1
  22. prefect/server/ui-v2/assets/{block-type-details-BcpcwaJS.js → block-type-details-CIGWaz9i.js} +2 -2
  23. prefect/server/ui-v2/assets/{block-type-details-BcpcwaJS.js.map → block-type-details-CIGWaz9i.js.map} +1 -1
  24. prefect/server/ui-v2/assets/block-type-logo-B3oMH8dS.js +2 -0
  25. prefect/server/ui-v2/assets/{block-type-logo-ox5VqJuy.js.map → block-type-logo-B3oMH8dS.js.map} +1 -1
  26. prefect/server/ui-v2/assets/{block._id-BD6wu3yC.js → block._id-Cay2vm3g.js} +2 -2
  27. prefect/server/ui-v2/assets/{block._id-BD6wu3yC.js.map → block._id-Cay2vm3g.js.map} +1 -1
  28. prefect/server/ui-v2/assets/{block_._id.edit-aneXPzUW.js → block_._id.edit-bNSemu_v.js} +2 -2
  29. prefect/server/ui-v2/assets/{block_._id.edit-aneXPzUW.js.map → block_._id.edit-bNSemu_v.js.map} +1 -1
  30. prefect/server/ui-v2/assets/{catalog-C7ttFKuv.js → catalog-B3SdxUVJ.js} +2 -2
  31. prefect/server/ui-v2/assets/{catalog-C7ttFKuv.js.map → catalog-B3SdxUVJ.js.map} +1 -1
  32. prefect/server/ui-v2/assets/{catalog_._slug-CrcphBbo.js → catalog_._slug-BfQw_9GK.js} +2 -2
  33. prefect/server/ui-v2/assets/{catalog_._slug-CrcphBbo.js.map → catalog_._slug-BfQw_9GK.js.map} +1 -1
  34. prefect/server/ui-v2/assets/{catalog_._slug_.create-Dd7ATIKq.js → catalog_._slug_.create-k_HRDFv7.js} +2 -2
  35. prefect/server/ui-v2/assets/{catalog_._slug_.create-Dd7ATIKq.js.map → catalog_._slug_.create-k_HRDFv7.js.map} +1 -1
  36. prefect/server/ui-v2/assets/{collapsible-D5U2XK4R.js → collapsible-CjJyAdbn.js} +2 -2
  37. prefect/server/ui-v2/assets/{collapsible-D5U2XK4R.js.map → collapsible-CjJyAdbn.js.map} +1 -1
  38. prefect/server/ui-v2/assets/{concurrency-limit._id-D-xV_tiF.js → concurrency-limit._id-B3Gnqcjc.js} +2 -2
  39. prefect/server/ui-v2/assets/{concurrency-limit._id-D-xV_tiF.js.map → concurrency-limit._id-B3Gnqcjc.js.map} +1 -1
  40. prefect/server/ui-v2/assets/create-AIgXW0ut.js +2 -0
  41. prefect/server/ui-v2/assets/{create-Da7OBOa5.js.map → create-AIgXW0ut.js.map} +1 -1
  42. prefect/server/ui-v2/assets/create-CWAzl36x.js +2 -0
  43. prefect/server/ui-v2/assets/{create-CiMo25er.js.map → create-CWAzl36x.js.map} +1 -1
  44. prefect/server/ui-v2/assets/cronstrue-IJcBJ9tZ.js +2 -0
  45. prefect/server/ui-v2/assets/cronstrue-IJcBJ9tZ.js.map +1 -0
  46. prefect/server/ui-v2/assets/{data-table-Bfa8_ZJd.js → data-table-B3EtpFhV.js} +2 -2
  47. prefect/server/ui-v2/assets/{data-table-Bfa8_ZJd.js.map → data-table-B3EtpFhV.js.map} +1 -1
  48. prefect/server/ui-v2/assets/{delete-confirmation-dialog-D18TITKv.js → delete-confirmation-dialog-DyUMWSB-.js} +2 -2
  49. prefect/server/ui-v2/assets/{delete-confirmation-dialog-D18TITKv.js.map → delete-confirmation-dialog-DyUMWSB-.js.map} +1 -1
  50. prefect/server/ui-v2/assets/deployment-action-header-BJ8WZ6O0.js +2 -0
  51. prefect/server/ui-v2/assets/{deployment-action-header-AamGn0qI.js.map → deployment-action-header-BJ8WZ6O0.js.map} +1 -1
  52. prefect/server/ui-v2/assets/{deployment-form-QIRH-pew.js → deployment-form-DXZUK11h.js} +3 -3
  53. prefect/server/ui-v2/assets/{deployment-form-QIRH-pew.js.map → deployment-form-DXZUK11h.js.map} +1 -1
  54. prefect/server/ui-v2/assets/{deployment-links-yTRvIDd3.js → deployment-links-bbtRf3OX.js} +2 -2
  55. prefect/server/ui-v2/assets/{deployment-links-yTRvIDd3.js.map → deployment-links-bbtRf3OX.js.map} +1 -1
  56. prefect/server/ui-v2/assets/{deployment._id-m4luvPWl.js → deployment._id-DFzzDIAz.js} +2 -2
  57. prefect/server/ui-v2/assets/{deployment._id-m4luvPWl.js.map → deployment._id-DFzzDIAz.js.map} +1 -1
  58. prefect/server/ui-v2/assets/{deployment._id-CCBPOCfw.js → deployment._id-GmnYU2jN.js} +2 -2
  59. prefect/server/ui-v2/assets/{deployment._id-CCBPOCfw.js.map → deployment._id-GmnYU2jN.js.map} +1 -1
  60. prefect/server/ui-v2/assets/deployment_._id.duplicate--_rm26pJ.js +2 -0
  61. prefect/server/ui-v2/assets/{deployment_._id.duplicate-DFjSeYn4.js.map → deployment_._id.duplicate--_rm26pJ.js.map} +1 -1
  62. prefect/server/ui-v2/assets/deployment_._id.edit-BS799pF4.js +2 -0
  63. prefect/server/ui-v2/assets/{deployment_._id.edit-5-mFOphJ.js.map → deployment_._id.edit-BS799pF4.js.map} +1 -1
  64. prefect/server/ui-v2/assets/{deployment_._id.run-CwVe5hPJ.js → deployment_._id.run-c02Fu6v1.js} +2 -2
  65. prefect/server/ui-v2/assets/{deployment_._id.run-CwVe5hPJ.js.map → deployment_._id.run-c02Fu6v1.js.map} +1 -1
  66. prefect/server/ui-v2/assets/{dropdown-menu-g64QiYKu.js → dropdown-menu-6cSdnzsr.js} +2 -2
  67. prefect/server/ui-v2/assets/{dropdown-menu-g64QiYKu.js.map → dropdown-menu-6cSdnzsr.js.map} +1 -1
  68. prefect/server/ui-v2/assets/{event-resource-display-BqqHFc0B.js → event-resource-display-DeFGeJR9.js} +2 -2
  69. prefect/server/ui-v2/assets/{event-resource-display-BqqHFc0B.js.map → event-resource-display-DeFGeJR9.js.map} +1 -1
  70. prefect/server/ui-v2/assets/{event._eventDate._eventId-BR0eukkm.js → event._eventDate._eventId-CKnfHNoF.js} +2 -2
  71. prefect/server/ui-v2/assets/{event._eventDate._eventId-BR0eukkm.js.map → event._eventDate._eventId-CKnfHNoF.js.map} +1 -1
  72. prefect/server/ui-v2/assets/{flow-run-graph-kZfaIevn.js → flow-run-graph-aynL8fbE.js} +2 -2
  73. prefect/server/ui-v2/assets/{flow-run-graph-kZfaIevn.js.map → flow-run-graph-aynL8fbE.js.map} +1 -1
  74. prefect/server/ui-v2/assets/flow-run._id-4lwBtUgU.js +2 -0
  75. prefect/server/ui-v2/assets/{flow-run._id-DiA0_X5m.js.map → flow-run._id-4lwBtUgU.js.map} +1 -1
  76. prefect/server/ui-v2/assets/flow-run._id-CT2imMDV.js +2 -0
  77. prefect/server/ui-v2/assets/{flow-run._id-Caq--9Lr.js.map → flow-run._id-CT2imMDV.js.map} +1 -1
  78. prefect/server/ui-v2/assets/{flow-run._id-BX0UeXTj.js → flow-run._id-s3t6dDIS.js} +4 -4
  79. prefect/server/ui-v2/assets/{flow-run._id-BX0UeXTj.js.map → flow-run._id-s3t6dDIS.js.map} +1 -1
  80. prefect/server/ui-v2/assets/{flow-runs-pagination-CoZZ-ed_.js → flow-runs-pagination-DvDLs5GM.js} +2 -2
  81. prefect/server/ui-v2/assets/{flow-runs-pagination-CoZZ-ed_.js.map → flow-runs-pagination-DvDLs5GM.js.map} +1 -1
  82. prefect/server/ui-v2/assets/{flow._id-nRzTWzLb.js → flow._id-U31aNcVQ.js} +2 -2
  83. prefect/server/ui-v2/assets/{flow._id-nRzTWzLb.js.map → flow._id-U31aNcVQ.js.map} +1 -1
  84. prefect/server/ui-v2/assets/{form-CdcF42XZ.js → form-DvAgEGjn.js} +2 -2
  85. prefect/server/ui-v2/assets/{form-CdcF42XZ.js.map → form-DvAgEGjn.js.map} +1 -1
  86. prefect/server/ui-v2/assets/{header-DkJo9Uge.js → header-Bq61DIIv.js} +2 -2
  87. prefect/server/ui-v2/assets/{header-DkJo9Uge.js.map → header-Bq61DIIv.js.map} +1 -1
  88. prefect/server/ui-v2/assets/{header-DijI5Lcu.js → header-QiKDPn2b.js} +2 -2
  89. prefect/server/ui-v2/assets/{header-DijI5Lcu.js.map → header-QiKDPn2b.js.map} +1 -1
  90. prefect/server/ui-v2/assets/{header-DV0gMQER.js → header-YbYlGgAg.js} +2 -2
  91. prefect/server/ui-v2/assets/{header-DV0gMQER.js.map → header-YbYlGgAg.js.map} +1 -1
  92. prefect/server/ui-v2/assets/{index-BZ9TDxSy.js → index--QEAQOap.js} +2 -2
  93. prefect/server/ui-v2/assets/{index-BZ9TDxSy.js.map → index--QEAQOap.js.map} +1 -1
  94. prefect/server/ui-v2/assets/{index-VUajxmNL.js → index-BJJn5VNO.js} +2 -2
  95. prefect/server/ui-v2/assets/{index-VUajxmNL.js.map → index-BJJn5VNO.js.map} +1 -1
  96. prefect/server/ui-v2/assets/{index-DYKO0qOd.js → index-BToZEh2M.js} +2 -2
  97. prefect/server/ui-v2/assets/{index-DYKO0qOd.js.map → index-BToZEh2M.js.map} +1 -1
  98. prefect/server/ui-v2/assets/{index-BmUvoLOK.js → index-BzE5jxe7.js} +2 -2
  99. prefect/server/ui-v2/assets/{index-BmUvoLOK.js.map → index-BzE5jxe7.js.map} +1 -1
  100. prefect/server/ui-v2/assets/index-C-uTnVrI.js +2 -0
  101. prefect/server/ui-v2/assets/{index-BCKNs_w7.js.map → index-C-uTnVrI.js.map} +1 -1
  102. prefect/server/ui-v2/assets/{index-yTjygRmH.js → index-C19BICb6.js} +2 -2
  103. prefect/server/ui-v2/assets/{index-yTjygRmH.js.map → index-C19BICb6.js.map} +1 -1
  104. prefect/server/ui-v2/assets/{index-Cuh3BwlA.js → index-C84_3iOG.js} +2 -2
  105. prefect/server/ui-v2/assets/{index-Cuh3BwlA.js.map → index-C84_3iOG.js.map} +1 -1
  106. prefect/server/ui-v2/assets/{index-Chtop8D8.js → index-CGt_907f.js} +2 -2
  107. prefect/server/ui-v2/assets/{index-Chtop8D8.js.map → index-CGt_907f.js.map} +1 -1
  108. prefect/server/ui-v2/assets/index-COtFm673.js +2 -0
  109. prefect/server/ui-v2/assets/{index-CqvGvZOq.js.map → index-COtFm673.js.map} +1 -1
  110. prefect/server/ui-v2/assets/{index-BZqccBpn.js → index-CQlQauOE.js} +6 -6
  111. prefect/server/ui-v2/assets/index-CQlQauOE.js.map +1 -0
  112. prefect/server/ui-v2/assets/{index-BGZtCgRR.js → index-CovPzmtX.js} +2 -2
  113. prefect/server/ui-v2/assets/{index-BGZtCgRR.js.map → index-CovPzmtX.js.map} +1 -1
  114. prefect/server/ui-v2/assets/{index-BV3WqCCv.js → index-CzZJA-g2.js} +2 -2
  115. prefect/server/ui-v2/assets/{index-BV3WqCCv.js.map → index-CzZJA-g2.js.map} +1 -1
  116. prefect/server/ui-v2/assets/{index-CUZXozY8.js → index-D9O_iUny.js} +2 -2
  117. prefect/server/ui-v2/assets/{index-CUZXozY8.js.map → index-D9O_iUny.js.map} +1 -1
  118. prefect/server/ui-v2/assets/{index-AXV1ellj.js → index-DBhG-F3c.js} +2 -2
  119. prefect/server/ui-v2/assets/{index-AXV1ellj.js.map → index-DBhG-F3c.js.map} +1 -1
  120. prefect/server/ui-v2/assets/{index-KlV75baW.js → index-DEijvsFf.js} +2 -2
  121. prefect/server/ui-v2/assets/{index-KlV75baW.js.map → index-DEijvsFf.js.map} +1 -1
  122. prefect/server/ui-v2/assets/{index-DO_c3_A_.js → index-DJx6_wL3.js} +2 -2
  123. prefect/server/ui-v2/assets/{index-DO_c3_A_.js.map → index-DJx6_wL3.js.map} +1 -1
  124. prefect/server/ui-v2/assets/{index-faXvGo5k.js → index-DzylsDQg.js} +2 -2
  125. prefect/server/ui-v2/assets/{index-faXvGo5k.js.map → index-DzylsDQg.js.map} +1 -1
  126. prefect/server/ui-v2/assets/index-MqrX6o60.js +2 -0
  127. prefect/server/ui-v2/assets/{index-BijfHkUE.js.map → index-MqrX6o60.js.map} +1 -1
  128. prefect/server/ui-v2/assets/index-Xbikq0U9.js +2 -0
  129. prefect/server/ui-v2/assets/{index-CUJoNEgb.js.map → index-Xbikq0U9.js.map} +1 -1
  130. prefect/server/ui-v2/assets/{index-BfuGBXBN.js → index-xd6ftCzl.js} +2 -2
  131. prefect/server/ui-v2/assets/{index-BfuGBXBN.js.map → index-xd6ftCzl.js.map} +1 -1
  132. prefect/server/ui-v2/assets/{json-input-DFgWdLGv.js → json-input-CUdR2ooF.js} +2 -2
  133. prefect/server/ui-v2/assets/{json-input-DFgWdLGv.js.map → json-input-CUdR2ooF.js.map} +1 -1
  134. prefect/server/ui-v2/assets/{key._key-CpeWM0mN.js → key._key-Dkjl-3EA.js} +2 -2
  135. prefect/server/ui-v2/assets/{key._key-CpeWM0mN.js.map → key._key-Dkjl-3EA.js.map} +1 -1
  136. prefect/server/ui-v2/assets/{lazy-markdown-Bzi0YUUV.js → lazy-markdown-B5J5jhCs.js} +3 -3
  137. prefect/server/ui-v2/assets/{lazy-markdown-Bzi0YUUV.js.map → lazy-markdown-B5J5jhCs.js.map} +1 -1
  138. prefect/server/ui-v2/assets/{login-CM0nuDdd.js → login-DzDO0DVR.js} +2 -2
  139. prefect/server/ui-v2/assets/{login-CM0nuDdd.js.map → login-DzDO0DVR.js.map} +1 -1
  140. prefect/server/ui-v2/assets/{markdown-input-CGOAnaWz.js → markdown-input-BYRT3e1M.js} +2 -2
  141. prefect/server/ui-v2/assets/{markdown-input-CGOAnaWz.js.map → markdown-input-BYRT3e1M.js.map} +1 -1
  142. prefect/server/ui-v2/assets/{python-example-snippet-CyJ28Tm-.js → python-example-snippet-BMLiEUYL.js} +3 -3
  143. prefect/server/ui-v2/assets/{python-example-snippet-CyJ28Tm-.js.map → python-example-snippet-BMLiEUYL.js.map} +1 -1
  144. prefect/server/ui-v2/assets/{python-input-D8_x22t4.js → python-input-xovZoSSG.js} +2 -2
  145. prefect/server/ui-v2/assets/{python-input-D8_x22t4.js.map → python-input-xovZoSSG.js.map} +1 -1
  146. prefect/server/ui-v2/assets/{radio-group-Dgu38qwz.js → radio-group-B4HH3BMW.js} +2 -2
  147. prefect/server/ui-v2/assets/{radio-group-Dgu38qwz.js.map → radio-group-B4HH3BMW.js.map} +1 -1
  148. prefect/server/ui-v2/assets/{route-error-state-CVHTggxQ.js → route-error-state-BI1VOaRa.js} +2 -2
  149. prefect/server/ui-v2/assets/{route-error-state-CVHTggxQ.js.map → route-error-state-BI1VOaRa.js.map} +1 -1
  150. prefect/server/ui-v2/assets/schema-form-DvPKoIJV.js +2 -0
  151. prefect/server/ui-v2/assets/schema-form-DvPKoIJV.js.map +1 -0
  152. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DuEmswz-.js → schema-form-input-string-format-datetime-FBLeet2k.js} +4 -4
  153. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DuEmswz-.js.map → schema-form-input-string-format-datetime-FBLeet2k.js.map} +1 -1
  154. prefect/server/ui-v2/assets/{settings-CtKmYnoo.js → settings-LiwgpMzF.js} +2 -2
  155. prefect/server/ui-v2/assets/{settings-CtKmYnoo.js.map → settings-LiwgpMzF.js.map} +1 -1
  156. prefect/server/ui-v2/assets/{sort-filter-BNQ6rjAG.js → sort-filter-BdZ0BjdE.js} +2 -2
  157. prefect/server/ui-v2/assets/{sort-filter-BNQ6rjAG.js.map → sort-filter-BdZ0BjdE.js.map} +1 -1
  158. prefect/server/ui-v2/assets/{table-CJS-5Aky.js → table--kjjs3jN.js} +2 -2
  159. prefect/server/ui-v2/assets/{table-CJS-5Aky.js.map → table--kjjs3jN.js.map} +1 -1
  160. prefect/server/ui-v2/assets/{tags-input-CDvuqe9B.js → tags-input-9pBchAz7.js} +2 -2
  161. prefect/server/ui-v2/assets/{tags-input-CDvuqe9B.js.map → tags-input-9pBchAz7.js.map} +1 -1
  162. prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-DMqNFEVn.js → task-run-concurrency-limits-reset-dialog-B3XhJqIQ.js} +2 -2
  163. prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-DMqNFEVn.js.map → task-run-concurrency-limits-reset-dialog-B3XhJqIQ.js.map} +1 -1
  164. prefect/server/ui-v2/assets/task-run._id-BdlPyINB.js +2 -0
  165. prefect/server/ui-v2/assets/{task-run._id-CiVsXKpy.js.map → task-run._id-BdlPyINB.js.map} +1 -1
  166. prefect/server/ui-v2/assets/{task-run._id-CV5t0LR0.js → task-run._id-BnZwcX9a.js} +3 -3
  167. prefect/server/ui-v2/assets/{task-run._id-CV5t0LR0.js.map → task-run._id-BnZwcX9a.js.map} +1 -1
  168. prefect/server/ui-v2/assets/task-runs-pagination-ClbepGWu.js +2 -0
  169. prefect/server/ui-v2/assets/{task-runs-pagination-DGjxL4DO.js.map → task-runs-pagination-ClbepGWu.js.map} +1 -1
  170. prefect/server/ui-v2/assets/{textarea-Mne2s-1n.js → textarea-CjmPCtZi.js} +2 -2
  171. prefect/server/ui-v2/assets/{textarea-Mne2s-1n.js.map → textarea-CjmPCtZi.js.map} +1 -1
  172. prefect/server/ui-v2/assets/{timezone-select-CPBtT8tA.js → timezone-select-5WxUFUXB.js} +2 -2
  173. prefect/server/ui-v2/assets/{timezone-select-CPBtT8tA.js.map → timezone-select-5WxUFUXB.js.map} +1 -1
  174. prefect/server/ui-v2/assets/{toggle-group-CvPe0UY1.js → toggle-group-DjbSsHsv.js} +2 -2
  175. prefect/server/ui-v2/assets/{toggle-group-CvPe0UY1.js.map → toggle-group-DjbSsHsv.js.map} +1 -1
  176. prefect/server/ui-v2/assets/{use-debounce-callback-Dcf0d0U7.js → use-debounce-callback-CVfZS_LP.js} +2 -2
  177. prefect/server/ui-v2/assets/{use-debounce-callback-Dcf0d0U7.js.map → use-debounce-callback-CVfZS_LP.js.map} +1 -1
  178. prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DnRkM1Cj.js → use-delete-automation-confirmation-dialog-C7nas8eR.js} +2 -2
  179. prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DnRkM1Cj.js.map → use-delete-automation-confirmation-dialog-C7nas8eR.js.map} +1 -1
  180. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-CMHtwDvb.js → use-delete-block-document-confirmation-dialog-Cz3znU4m.js} +2 -2
  181. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-CMHtwDvb.js.map → use-delete-block-document-confirmation-dialog-Cz3znU4m.js.map} +1 -1
  182. prefect/server/ui-v2/assets/{use-delete-confirmation-dialog-Bka9YDdO.js → use-delete-confirmation-dialog-C5d6hPL-.js} +2 -2
  183. prefect/server/ui-v2/assets/{use-delete-confirmation-dialog-Bka9YDdO.js.map → use-delete-confirmation-dialog-C5d6hPL-.js.map} +1 -1
  184. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DB4pe2_m.js → use-flow-runs-selected-rows-B_7PiPKo.js} +2 -2
  185. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DB4pe2_m.js.map → use-flow-runs-selected-rows-B_7PiPKo.js.map} +1 -1
  186. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DUPrB7V9.js → use-get-artifacts-flow-task-runs-BitcuQLc.js} +2 -2
  187. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DUPrB7V9.js.map → use-get-artifacts-flow-task-runs-BitcuQLc.js.map} +1 -1
  188. prefect/server/ui-v2/assets/{use-is-overflowing-Cc-Qm0vx.js → use-is-overflowing-CyVH32I2.js} +2 -2
  189. prefect/server/ui-v2/assets/{use-is-overflowing-Cc-Qm0vx.js.map → use-is-overflowing-CyVH32I2.js.map} +1 -1
  190. prefect/server/ui-v2/assets/{use-page-title-ELpQMkBC.js → use-page-title-CImKMV-D.js} +2 -2
  191. prefect/server/ui-v2/assets/{use-page-title-ELpQMkBC.js.map → use-page-title-CImKMV-D.js.map} +1 -1
  192. prefect/server/ui-v2/assets/use-quick-run-IfBGzpj9.js +2 -0
  193. prefect/server/ui-v2/assets/{use-quick-run-uAasMmAv.js.map → use-quick-run-IfBGzpj9.js.map} +1 -1
  194. prefect/server/ui-v2/assets/{use-state-favicon-CzOUYzQe.js → use-state-favicon-kNCf3RcS.js} +2 -2
  195. prefect/server/ui-v2/assets/{use-state-favicon-CzOUYzQe.js.map → use-state-favicon-kNCf3RcS.js.map} +1 -1
  196. prefect/server/ui-v2/assets/{use-stepper-DvHmfROo.js → use-stepper-DRdSNO1_.js} +2 -2
  197. prefect/server/ui-v2/assets/{use-stepper-DvHmfROo.js.map → use-stepper-DRdSNO1_.js.map} +1 -1
  198. prefect/server/ui-v2/assets/{utilities-XA-1-LhA.js → utilities-B74wofJY.js} +2 -2
  199. prefect/server/ui-v2/assets/{utilities-XA-1-LhA.js.map → utilities-B74wofJY.js.map} +1 -1
  200. prefect/server/ui-v2/assets/{vendor-codemirror-Dn73yRFx.js → vendor-codemirror-OTxfneaa.js} +2 -2
  201. prefect/server/ui-v2/assets/{vendor-codemirror-Dn73yRFx.js.map → vendor-codemirror-OTxfneaa.js.map} +1 -1
  202. prefect/server/ui-v2/assets/{vendor-date-Bxa7CHB1.js → vendor-date-CRz8gtWZ.js} +2 -2
  203. prefect/server/ui-v2/assets/{vendor-date-Bxa7CHB1.js.map → vendor-date-CRz8gtWZ.js.map} +1 -1
  204. prefect/server/ui-v2/assets/{vendor-forms-mroZAMaw.js → vendor-forms-D-iybWES.js} +2 -2
  205. prefect/server/ui-v2/assets/{vendor-forms-mroZAMaw.js.map → vendor-forms-D-iybWES.js.map} +1 -1
  206. prefect/server/ui-v2/assets/{vendor-markdown-BV905mMk.js → vendor-markdown-TdbL8FCd.js} +2 -2
  207. prefect/server/ui-v2/assets/{vendor-markdown-BV905mMk.js.map → vendor-markdown-TdbL8FCd.js.map} +1 -1
  208. prefect/server/ui-v2/assets/{vendor-radix-CP6hQtRc.js → vendor-radix-DRMjKWJW.js} +5 -5
  209. prefect/server/ui-v2/assets/{vendor-radix-CP6hQtRc.js.map → vendor-radix-DRMjKWJW.js.map} +1 -1
  210. prefect/server/ui-v2/assets/{vendor-recharts-BOcghvr2.js → vendor-recharts-BGjDGXVf.js} +2 -2
  211. prefect/server/ui-v2/assets/{vendor-recharts-BOcghvr2.js.map → vendor-recharts-BGjDGXVf.js.map} +1 -1
  212. prefect/server/ui-v2/assets/{vendor-tanstack-CLpbOGYv.js → vendor-tanstack-CWDKYA_B.js} +2 -2
  213. prefect/server/ui-v2/assets/{vendor-tanstack-CLpbOGYv.js.map → vendor-tanstack-CWDKYA_B.js.map} +1 -1
  214. prefect/server/ui-v2/assets/{work-pool-filter-D4DI4Hd5.js → work-pool-filter-BD0cywQF.js} +2 -2
  215. prefect/server/ui-v2/assets/{work-pool-filter-D4DI4Hd5.js.map → work-pool-filter-BD0cywQF.js.map} +1 -1
  216. prefect/server/ui-v2/assets/{work-pool-queue-toggle--tVsqhDi.js → work-pool-queue-toggle-Dd3mOecD.js} +2 -2
  217. prefect/server/ui-v2/assets/{work-pool-queue-toggle--tVsqhDi.js.map → work-pool-queue-toggle-Dd3mOecD.js.map} +1 -1
  218. prefect/server/ui-v2/assets/{work-pool._workPoolName-Ba0XSN4m.js → work-pool._workPoolName-Dxf0Y-lV.js} +2 -2
  219. prefect/server/ui-v2/assets/{work-pool._workPoolName-Ba0XSN4m.js.map → work-pool._workPoolName-Dxf0Y-lV.js.map} +1 -1
  220. prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-B0Y9VwYX.js +2 -0
  221. prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CeYLESXS.js.map → work-pool_._workPoolName.edit-B0Y9VwYX.js.map} +1 -1
  222. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js → work-pool_._workPoolName.queue._workQueueName-ZHSn4vVg.js} +2 -2
  223. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js.map → work-pool_._workPoolName.queue._workQueueName-ZHSn4vVg.js.map} +1 -1
  224. prefect/server/ui-v2/assets/{work-queue-icon-text-DnQAtUi_.js → work-queue-icon-text-GE7b8Ro1.js} +2 -2
  225. prefect/server/ui-v2/assets/{work-queue-icon-text-DnQAtUi_.js.map → work-queue-icon-text-GE7b8Ro1.js.map} +1 -1
  226. prefect/server/ui-v2/assets/{zod-cc-7bk3x.js → zod-CjGf5GIv.js} +2 -2
  227. prefect/server/ui-v2/assets/{zod-cc-7bk3x.js.map → zod-CjGf5GIv.js.map} +1 -1
  228. prefect/server/ui-v2/index.html +6 -6
  229. prefect/server/utilities/subscriptions.py +25 -8
  230. prefect/testing/fixtures.py +31 -1
  231. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/METADATA +2 -2
  232. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/RECORD +235 -235
  233. prefect/server/ui-v2/assets/automation._id-Bm1T3_NO.js +0 -2
  234. prefect/server/ui-v2/assets/block-type-logo-ox5VqJuy.js +0 -2
  235. prefect/server/ui-v2/assets/create-CiMo25er.js +0 -2
  236. prefect/server/ui-v2/assets/create-Da7OBOa5.js +0 -2
  237. prefect/server/ui-v2/assets/cronstrue-CeanGOEE.js +0 -2
  238. prefect/server/ui-v2/assets/cronstrue-CeanGOEE.js.map +0 -1
  239. prefect/server/ui-v2/assets/deployment-action-header-AamGn0qI.js +0 -2
  240. prefect/server/ui-v2/assets/deployment_._id.duplicate-DFjSeYn4.js +0 -2
  241. prefect/server/ui-v2/assets/deployment_._id.edit-5-mFOphJ.js +0 -2
  242. prefect/server/ui-v2/assets/flow-run._id-Caq--9Lr.js +0 -2
  243. prefect/server/ui-v2/assets/flow-run._id-DiA0_X5m.js +0 -2
  244. prefect/server/ui-v2/assets/index-BCKNs_w7.js +0 -2
  245. prefect/server/ui-v2/assets/index-BZqccBpn.js.map +0 -1
  246. prefect/server/ui-v2/assets/index-BijfHkUE.js +0 -2
  247. prefect/server/ui-v2/assets/index-CUJoNEgb.js +0 -2
  248. prefect/server/ui-v2/assets/index-CqvGvZOq.js +0 -2
  249. prefect/server/ui-v2/assets/schema-form-DqRLX--T.js +0 -2
  250. prefect/server/ui-v2/assets/schema-form-DqRLX--T.js.map +0 -1
  251. prefect/server/ui-v2/assets/task-run._id-CiVsXKpy.js +0 -2
  252. prefect/server/ui-v2/assets/task-runs-pagination-DGjxL4DO.js +0 -2
  253. prefect/server/ui-v2/assets/use-quick-run-uAasMmAv.js +0 -2
  254. prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-CeYLESXS.js +0 -2
  255. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/WHEEL +0 -0
  256. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/entry_points.txt +0 -0
  257. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev5.dist-info}/licenses/LICENSE +0 -0
@@ -1,2 +1,2 @@
1
- import{r as o,s as S,j as e}from"./vendor-tanstack-CLpbOGYv.js";import{cP as C,ac as A,ad as w,ae as N,af as g,ag as y,ah as k,ai as z,aj as h,ak as x,al as E,M as L}from"./index-BZqccBpn.js";const _=2,D=({selectedDeployments:s,onSelectDeployments:t})=>{const[i,u]=o.useState(""),n=o.useDeferredValue(i),{data:c=[]}=S(C({deployments:n?{operator:"and_",name:{like_:n}}:void 0,limit:100,offset:0,sort:"NAME_ASC"})),{data:f=[]}=S(C({deployments:s.size>0?{operator:"and_",id:{any_:Array.from(s)}}:void 0,limit:s.size||1,offset:0,sort:"NAME_ASC"},{enabled:s.size>0})),j=a=>{const r=new Set(s);s.has(a)?r.delete(a):r.add(a),t(r)},b=()=>{t(new Set)},p=()=>{if(s.size===0)return"All deployments";const a=f.filter(d=>s.has(d.id)).map(d=>d.name),r=a.slice(0,_),m=a.length-_;return e.jsxs("div",{className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:e.jsx("span",{className:"truncate",children:r.join(", ")})}),m>0&&e.jsxs(E,{variant:"bodySmall",className:"shrink-0",children:["+ ",m]})]})},l=o.useMemo(()=>c.filter(a=>!n||a.name.toLowerCase().includes(n.toLowerCase())),[c,n]);return e.jsxs(A,{children:[e.jsx(w,{"aria-label":"Filter by deployment",selected:s.size===0,children:p()}),e.jsxs(N,{children:[e.jsx(g,{value:i,onValueChange:u,placeholder:"Search deployments..."}),e.jsxs(y,{children:[e.jsx(k,{children:"No deployments found"}),e.jsxs(z,{children:[e.jsxs(h,{"aria-label":"All deployments",onSelect:b,closeOnSelect:!1,value:"__all__",children:[e.jsx(x,{checked:s.size===0}),"All deployments"]}),l.map(a=>e.jsxs(h,{"aria-label":a.name,onSelect:()=>j(a.id),closeOnSelect:!1,value:a.id,children:[e.jsx(x,{checked:s.has(a.id)}),a.name]},a.id))]})]})]})]})},v=2,F=({selectedWorkPools:s,onSelectWorkPools:t})=>{const[i,u]=o.useState(""),n=o.useDeferredValue(i),{data:c=[]}=S(L({limit:100,offset:0})),f=l=>{const a=new Set(s);s.has(l)?a.delete(l):a.add(l),t(a)},j=()=>{t(new Set)},b=()=>{if(s.size===0)return"All work pools";const l=Array.from(s).sort((m,d)=>m.localeCompare(d)),a=l.slice(0,v),r=l.length-v;return e.jsxs("div",{className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:e.jsx("span",{className:"truncate",children:a.join(", ")})}),r>0&&e.jsxs(E,{variant:"bodySmall",className:"shrink-0",children:["+ ",r]})]})},p=o.useMemo(()=>c.filter(l=>!n||l.name.toLowerCase().includes(n.toLowerCase())).sort((l,a)=>l.name.localeCompare(a.name)),[c,n]);return e.jsxs(A,{children:[e.jsx(w,{"aria-label":"Filter by work pool",selected:s.size===0,children:b()}),e.jsxs(N,{children:[e.jsx(g,{value:i,onValueChange:u,placeholder:"Search work pools..."}),e.jsxs(y,{children:[e.jsx(k,{children:"No work pools found"}),e.jsxs(z,{children:[e.jsxs(h,{"aria-label":"All work pools",onSelect:j,closeOnSelect:!1,value:"__all__",children:[e.jsx(x,{checked:s.size===0}),"All work pools"]}),p.map(l=>e.jsxs(h,{"aria-label":l.name,onSelect:()=>f(l.name),closeOnSelect:!1,value:l.name,children:[e.jsx(x,{checked:s.has(l.name)}),l.name]},l.name))]})]})]})]})};export{D,F as W};
2
- //# sourceMappingURL=work-pool-filter-D4DI4Hd5.js.map
1
+ import{r as o,u as S,j as e}from"./vendor-tanstack-CWDKYA_B.js";import{cP as C,ac as A,ad as w,ae as N,af as g,ag as y,ah as k,ai as z,aj as h,ak as x,al as E,M as L}from"./index-CQlQauOE.js";const _=2,D=({selectedDeployments:s,onSelectDeployments:t})=>{const[i,u]=o.useState(""),n=o.useDeferredValue(i),{data:c=[]}=S(C({deployments:n?{operator:"and_",name:{like_:n}}:void 0,limit:100,offset:0,sort:"NAME_ASC"})),{data:f=[]}=S(C({deployments:s.size>0?{operator:"and_",id:{any_:Array.from(s)}}:void 0,limit:s.size||1,offset:0,sort:"NAME_ASC"},{enabled:s.size>0})),j=a=>{const r=new Set(s);s.has(a)?r.delete(a):r.add(a),t(r)},b=()=>{t(new Set)},p=()=>{if(s.size===0)return"All deployments";const a=f.filter(d=>s.has(d.id)).map(d=>d.name),r=a.slice(0,_),m=a.length-_;return e.jsxs("div",{className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:e.jsx("span",{className:"truncate",children:r.join(", ")})}),m>0&&e.jsxs(E,{variant:"bodySmall",className:"shrink-0",children:["+ ",m]})]})},l=o.useMemo(()=>c.filter(a=>!n||a.name.toLowerCase().includes(n.toLowerCase())),[c,n]);return e.jsxs(A,{children:[e.jsx(w,{"aria-label":"Filter by deployment",selected:s.size===0,children:p()}),e.jsxs(N,{children:[e.jsx(g,{value:i,onValueChange:u,placeholder:"Search deployments..."}),e.jsxs(y,{children:[e.jsx(k,{children:"No deployments found"}),e.jsxs(z,{children:[e.jsxs(h,{"aria-label":"All deployments",onSelect:b,closeOnSelect:!1,value:"__all__",children:[e.jsx(x,{checked:s.size===0}),"All deployments"]}),l.map(a=>e.jsxs(h,{"aria-label":a.name,onSelect:()=>j(a.id),closeOnSelect:!1,value:a.id,children:[e.jsx(x,{checked:s.has(a.id)}),a.name]},a.id))]})]})]})]})},v=2,F=({selectedWorkPools:s,onSelectWorkPools:t})=>{const[i,u]=o.useState(""),n=o.useDeferredValue(i),{data:c=[]}=S(L({limit:100,offset:0})),f=l=>{const a=new Set(s);s.has(l)?a.delete(l):a.add(l),t(a)},j=()=>{t(new Set)},b=()=>{if(s.size===0)return"All work pools";const l=Array.from(s).sort((m,d)=>m.localeCompare(d)),a=l.slice(0,v),r=l.length-v;return e.jsxs("div",{className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:e.jsx("span",{className:"truncate",children:a.join(", ")})}),r>0&&e.jsxs(E,{variant:"bodySmall",className:"shrink-0",children:["+ ",r]})]})},p=o.useMemo(()=>c.filter(l=>!n||l.name.toLowerCase().includes(n.toLowerCase())).sort((l,a)=>l.name.localeCompare(a.name)),[c,n]);return e.jsxs(A,{children:[e.jsx(w,{"aria-label":"Filter by work pool",selected:s.size===0,children:b()}),e.jsxs(N,{children:[e.jsx(g,{value:i,onValueChange:u,placeholder:"Search work pools..."}),e.jsxs(y,{children:[e.jsx(k,{children:"No work pools found"}),e.jsxs(z,{children:[e.jsxs(h,{"aria-label":"All work pools",onSelect:j,closeOnSelect:!1,value:"__all__",children:[e.jsx(x,{checked:s.size===0}),"All work pools"]}),p.map(l=>e.jsxs(h,{"aria-label":l.name,onSelect:()=>f(l.name),closeOnSelect:!1,value:l.name,children:[e.jsx(x,{checked:s.has(l.name)}),l.name]},l.name))]})]})]})]})};export{D,F as W};
2
+ //# sourceMappingURL=work-pool-filter-BD0cywQF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-pool-filter-D4DI4Hd5.js","sources":["../../src/components/flow-runs/flow-runs-list/flow-runs-filters/deployment-filter.tsx","../../src/components/flow-runs/flow-runs-list/flow-runs-filters/work-pool-filter.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useDeferredValue, useMemo, useState } from \"react\";\nimport {\n\tbuildFilterDeploymentsQuery,\n\ttype Deployment,\n} from \"@/api/deployments\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n\tCombobox,\n\tComboboxCommandEmtpy,\n\tComboboxCommandGroup,\n\tComboboxCommandInput,\n\tComboboxCommandItem,\n\tComboboxCommandList,\n\tComboboxContent,\n\tComboboxTrigger,\n} from \"@/components/ui/combobox\";\nimport { Typography } from \"@/components/ui/typography\";\n\nconst MAX_DEPLOYMENTS_DISPLAYED = 2;\n\ntype DeploymentFilterProps = {\n\tselectedDeployments: Set<string>;\n\tonSelectDeployments: (deployments: Set<string>) => void;\n};\n\nexport const DeploymentFilter = ({\n\tselectedDeployments,\n\tonSelectDeployments,\n}: DeploymentFilterProps) => {\n\tconst [search, setSearch] = useState(\"\");\n\tconst deferredSearch = useDeferredValue(search);\n\n\tconst { data: deployments = [] } = useQuery(\n\t\tbuildFilterDeploymentsQuery({\n\t\t\tdeployments: deferredSearch\n\t\t\t\t? {\n\t\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t\tname: { like_: deferredSearch },\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t\tlimit: 100,\n\t\t\toffset: 0,\n\t\t\tsort: \"NAME_ASC\",\n\t\t}),\n\t);\n\n\tconst { data: selectedDeploymentsData = [] } = useQuery(\n\t\tbuildFilterDeploymentsQuery(\n\t\t\t{\n\t\t\t\tdeployments:\n\t\t\t\t\tselectedDeployments.size > 0\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t\t\t\tid: { any_: Array.from(selectedDeployments) },\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\tlimit: selectedDeployments.size || 1,\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: selectedDeployments.size > 0 },\n\t\t),\n\t);\n\n\tconst handleSelectDeployment = (deploymentId: string) => {\n\t\tconst updatedDeployments = new Set(selectedDeployments);\n\t\tif (selectedDeployments.has(deploymentId)) {\n\t\t\tupdatedDeployments.delete(deploymentId);\n\t\t} else {\n\t\t\tupdatedDeployments.add(deploymentId);\n\t\t}\n\t\tonSelectDeployments(updatedDeployments);\n\t};\n\n\tconst handleClearAll = () => {\n\t\tonSelectDeployments(new Set());\n\t};\n\n\tconst renderSelectedDeployments = () => {\n\t\tif (selectedDeployments.size === 0) {\n\t\t\treturn \"All deployments\";\n\t\t}\n\n\t\tconst selectedDeploymentNames = selectedDeploymentsData\n\t\t\t.filter((deployment) => selectedDeployments.has(deployment.id))\n\t\t\t.map((deployment) => deployment.name);\n\n\t\tconst visible = selectedDeploymentNames.slice(0, MAX_DEPLOYMENTS_DISPLAYED);\n\t\tconst extraCount =\n\t\t\tselectedDeploymentNames.length - MAX_DEPLOYMENTS_DISPLAYED;\n\n\t\treturn (\n\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2\">\n\t\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2 overflow-hidden\">\n\t\t\t\t\t<span className=\"truncate\">{visible.join(\", \")}</span>\n\t\t\t\t</div>\n\t\t\t\t{extraCount > 0 && (\n\t\t\t\t\t<Typography variant=\"bodySmall\" className=\"shrink-0\">\n\t\t\t\t\t\t+ {extraCount}\n\t\t\t\t\t</Typography>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst filteredDeployments = useMemo(() => {\n\t\treturn deployments.filter(\n\t\t\t(deployment: Deployment) =>\n\t\t\t\t!deferredSearch ||\n\t\t\t\tdeployment.name.toLowerCase().includes(deferredSearch.toLowerCase()),\n\t\t);\n\t}, [deployments, deferredSearch]);\n\n\treturn (\n\t\t<Combobox>\n\t\t\t<ComboboxTrigger\n\t\t\t\taria-label=\"Filter by deployment\"\n\t\t\t\tselected={selectedDeployments.size === 0}\n\t\t\t>\n\t\t\t\t{renderSelectedDeployments()}\n\t\t\t</ComboboxTrigger>\n\t\t\t<ComboboxContent>\n\t\t\t\t<ComboboxCommandInput\n\t\t\t\t\tvalue={search}\n\t\t\t\t\tonValueChange={setSearch}\n\t\t\t\t\tplaceholder=\"Search deployments...\"\n\t\t\t\t/>\n\t\t\t\t<ComboboxCommandList>\n\t\t\t\t\t<ComboboxCommandEmtpy>No deployments found</ComboboxCommandEmtpy>\n\t\t\t\t\t<ComboboxCommandGroup>\n\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\taria-label=\"All deployments\"\n\t\t\t\t\t\t\tonSelect={handleClearAll}\n\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\tvalue=\"__all__\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Checkbox checked={selectedDeployments.size === 0} />\n\t\t\t\t\t\t\tAll deployments\n\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t{filteredDeployments.map((deployment: Deployment) => (\n\t\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\t\tkey={deployment.id}\n\t\t\t\t\t\t\t\taria-label={deployment.name}\n\t\t\t\t\t\t\t\tonSelect={() => handleSelectDeployment(deployment.id)}\n\t\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\t\tvalue={deployment.id}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Checkbox checked={selectedDeployments.has(deployment.id)} />\n\t\t\t\t\t\t\t\t{deployment.name}\n\t\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ComboboxCommandGroup>\n\t\t\t\t</ComboboxCommandList>\n\t\t\t</ComboboxContent>\n\t\t</Combobox>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useDeferredValue, useMemo, useState } from \"react\";\nimport {\n\tbuildFilterWorkPoolsQuery,\n\ttype WorkPool,\n} from \"@/api/work-pools/work-pools\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n\tCombobox,\n\tComboboxCommandEmtpy,\n\tComboboxCommandGroup,\n\tComboboxCommandInput,\n\tComboboxCommandItem,\n\tComboboxCommandList,\n\tComboboxContent,\n\tComboboxTrigger,\n} from \"@/components/ui/combobox\";\nimport { Typography } from \"@/components/ui/typography\";\n\nconst MAX_WORK_POOLS_DISPLAYED = 2;\n\ntype WorkPoolFilterProps = {\n\tselectedWorkPools: Set<string>;\n\tonSelectWorkPools: (workPools: Set<string>) => void;\n};\n\nexport const WorkPoolFilter = ({\n\tselectedWorkPools,\n\tonSelectWorkPools,\n}: WorkPoolFilterProps) => {\n\tconst [search, setSearch] = useState(\"\");\n\tconst deferredSearch = useDeferredValue(search);\n\n\tconst { data: workPools = [] } = useQuery(\n\t\tbuildFilterWorkPoolsQuery({\n\t\t\tlimit: 100,\n\t\t\toffset: 0,\n\t\t}),\n\t);\n\n\tconst handleSelectWorkPool = (workPoolName: string) => {\n\t\tconst updatedWorkPools = new Set(selectedWorkPools);\n\t\tif (selectedWorkPools.has(workPoolName)) {\n\t\t\tupdatedWorkPools.delete(workPoolName);\n\t\t} else {\n\t\t\tupdatedWorkPools.add(workPoolName);\n\t\t}\n\t\tonSelectWorkPools(updatedWorkPools);\n\t};\n\n\tconst handleClearAll = () => {\n\t\tonSelectWorkPools(new Set());\n\t};\n\n\tconst renderSelectedWorkPools = () => {\n\t\tif (selectedWorkPools.size === 0) {\n\t\t\treturn \"All work pools\";\n\t\t}\n\n\t\tconst selectedWorkPoolNames = Array.from(selectedWorkPools).sort((a, b) =>\n\t\t\ta.localeCompare(b),\n\t\t);\n\n\t\tconst visible = selectedWorkPoolNames.slice(0, MAX_WORK_POOLS_DISPLAYED);\n\t\tconst extraCount = selectedWorkPoolNames.length - MAX_WORK_POOLS_DISPLAYED;\n\n\t\treturn (\n\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2\">\n\t\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2 overflow-hidden\">\n\t\t\t\t\t<span className=\"truncate\">{visible.join(\", \")}</span>\n\t\t\t\t</div>\n\t\t\t\t{extraCount > 0 && (\n\t\t\t\t\t<Typography variant=\"bodySmall\" className=\"shrink-0\">\n\t\t\t\t\t\t+ {extraCount}\n\t\t\t\t\t</Typography>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst filteredWorkPools = useMemo(() => {\n\t\treturn workPools\n\t\t\t.filter(\n\t\t\t\t(workPool: WorkPool) =>\n\t\t\t\t\t!deferredSearch ||\n\t\t\t\t\tworkPool.name.toLowerCase().includes(deferredSearch.toLowerCase()),\n\t\t\t)\n\t\t\t.sort((a: WorkPool, b: WorkPool) => a.name.localeCompare(b.name));\n\t}, [workPools, deferredSearch]);\n\n\treturn (\n\t\t<Combobox>\n\t\t\t<ComboboxTrigger\n\t\t\t\taria-label=\"Filter by work pool\"\n\t\t\t\tselected={selectedWorkPools.size === 0}\n\t\t\t>\n\t\t\t\t{renderSelectedWorkPools()}\n\t\t\t</ComboboxTrigger>\n\t\t\t<ComboboxContent>\n\t\t\t\t<ComboboxCommandInput\n\t\t\t\t\tvalue={search}\n\t\t\t\t\tonValueChange={setSearch}\n\t\t\t\t\tplaceholder=\"Search work pools...\"\n\t\t\t\t/>\n\t\t\t\t<ComboboxCommandList>\n\t\t\t\t\t<ComboboxCommandEmtpy>No work pools found</ComboboxCommandEmtpy>\n\t\t\t\t\t<ComboboxCommandGroup>\n\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\taria-label=\"All work pools\"\n\t\t\t\t\t\t\tonSelect={handleClearAll}\n\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\tvalue=\"__all__\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Checkbox checked={selectedWorkPools.size === 0} />\n\t\t\t\t\t\t\tAll work pools\n\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t{filteredWorkPools.map((workPool: WorkPool) => (\n\t\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\t\tkey={workPool.name}\n\t\t\t\t\t\t\t\taria-label={workPool.name}\n\t\t\t\t\t\t\t\tonSelect={() => handleSelectWorkPool(workPool.name)}\n\t\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\t\tvalue={workPool.name}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Checkbox checked={selectedWorkPools.has(workPool.name)} />\n\t\t\t\t\t\t\t\t{workPool.name}\n\t\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ComboboxCommandGroup>\n\t\t\t\t</ComboboxCommandList>\n\t\t\t</ComboboxContent>\n\t\t</Combobox>\n\t);\n};\n"],"names":["MAX_DEPLOYMENTS_DISPLAYED","DeploymentFilter","selectedDeployments","onSelectDeployments","search","setSearch","useState","deferredSearch","useDeferredValue","deployments","useQuery","buildFilterDeploymentsQuery","selectedDeploymentsData","handleSelectDeployment","deploymentId","updatedDeployments","handleClearAll","renderSelectedDeployments","selectedDeploymentNames","deployment","visible","extraCount","jsxs","jsx","Typography","filteredDeployments","useMemo","Combobox","ComboboxTrigger","ComboboxContent","ComboboxCommandInput","ComboboxCommandList","ComboboxCommandEmtpy","ComboboxCommandGroup","ComboboxCommandItem","Checkbox","MAX_WORK_POOLS_DISPLAYED","WorkPoolFilter","selectedWorkPools","onSelectWorkPools","workPools","buildFilterWorkPoolsQuery","handleSelectWorkPool","workPoolName","updatedWorkPools","renderSelectedWorkPools","selectedWorkPoolNames","a","b","filteredWorkPools","workPool"],"mappings":"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"}
1
+ {"version":3,"file":"work-pool-filter-BD0cywQF.js","sources":["../../src/components/flow-runs/flow-runs-list/flow-runs-filters/deployment-filter.tsx","../../src/components/flow-runs/flow-runs-list/flow-runs-filters/work-pool-filter.tsx"],"sourcesContent":["import { useQuery } from \"@tanstack/react-query\";\nimport { useDeferredValue, useMemo, useState } from \"react\";\nimport {\n\tbuildFilterDeploymentsQuery,\n\ttype Deployment,\n} from \"@/api/deployments\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n\tCombobox,\n\tComboboxCommandEmtpy,\n\tComboboxCommandGroup,\n\tComboboxCommandInput,\n\tComboboxCommandItem,\n\tComboboxCommandList,\n\tComboboxContent,\n\tComboboxTrigger,\n} from \"@/components/ui/combobox\";\nimport { Typography } from \"@/components/ui/typography\";\n\nconst MAX_DEPLOYMENTS_DISPLAYED = 2;\n\ntype DeploymentFilterProps = {\n\tselectedDeployments: Set<string>;\n\tonSelectDeployments: (deployments: Set<string>) => void;\n};\n\nexport const DeploymentFilter = ({\n\tselectedDeployments,\n\tonSelectDeployments,\n}: DeploymentFilterProps) => {\n\tconst [search, setSearch] = useState(\"\");\n\tconst deferredSearch = useDeferredValue(search);\n\n\tconst { data: deployments = [] } = useQuery(\n\t\tbuildFilterDeploymentsQuery({\n\t\t\tdeployments: deferredSearch\n\t\t\t\t? {\n\t\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t\tname: { like_: deferredSearch },\n\t\t\t\t\t}\n\t\t\t\t: undefined,\n\t\t\tlimit: 100,\n\t\t\toffset: 0,\n\t\t\tsort: \"NAME_ASC\",\n\t\t}),\n\t);\n\n\tconst { data: selectedDeploymentsData = [] } = useQuery(\n\t\tbuildFilterDeploymentsQuery(\n\t\t\t{\n\t\t\t\tdeployments:\n\t\t\t\t\tselectedDeployments.size > 0\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t\t\t\tid: { any_: Array.from(selectedDeployments) },\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: undefined,\n\t\t\t\tlimit: selectedDeployments.size || 1,\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: selectedDeployments.size > 0 },\n\t\t),\n\t);\n\n\tconst handleSelectDeployment = (deploymentId: string) => {\n\t\tconst updatedDeployments = new Set(selectedDeployments);\n\t\tif (selectedDeployments.has(deploymentId)) {\n\t\t\tupdatedDeployments.delete(deploymentId);\n\t\t} else {\n\t\t\tupdatedDeployments.add(deploymentId);\n\t\t}\n\t\tonSelectDeployments(updatedDeployments);\n\t};\n\n\tconst handleClearAll = () => {\n\t\tonSelectDeployments(new Set());\n\t};\n\n\tconst renderSelectedDeployments = () => {\n\t\tif (selectedDeployments.size === 0) {\n\t\t\treturn \"All deployments\";\n\t\t}\n\n\t\tconst selectedDeploymentNames = selectedDeploymentsData\n\t\t\t.filter((deployment) => selectedDeployments.has(deployment.id))\n\t\t\t.map((deployment) => deployment.name);\n\n\t\tconst visible = selectedDeploymentNames.slice(0, MAX_DEPLOYMENTS_DISPLAYED);\n\t\tconst extraCount =\n\t\t\tselectedDeploymentNames.length - MAX_DEPLOYMENTS_DISPLAYED;\n\n\t\treturn (\n\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2\">\n\t\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2 overflow-hidden\">\n\t\t\t\t\t<span className=\"truncate\">{visible.join(\", \")}</span>\n\t\t\t\t</div>\n\t\t\t\t{extraCount > 0 && (\n\t\t\t\t\t<Typography variant=\"bodySmall\" className=\"shrink-0\">\n\t\t\t\t\t\t+ {extraCount}\n\t\t\t\t\t</Typography>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst filteredDeployments = useMemo(() => {\n\t\treturn deployments.filter(\n\t\t\t(deployment: Deployment) =>\n\t\t\t\t!deferredSearch ||\n\t\t\t\tdeployment.name.toLowerCase().includes(deferredSearch.toLowerCase()),\n\t\t);\n\t}, [deployments, deferredSearch]);\n\n\treturn (\n\t\t<Combobox>\n\t\t\t<ComboboxTrigger\n\t\t\t\taria-label=\"Filter by deployment\"\n\t\t\t\tselected={selectedDeployments.size === 0}\n\t\t\t>\n\t\t\t\t{renderSelectedDeployments()}\n\t\t\t</ComboboxTrigger>\n\t\t\t<ComboboxContent>\n\t\t\t\t<ComboboxCommandInput\n\t\t\t\t\tvalue={search}\n\t\t\t\t\tonValueChange={setSearch}\n\t\t\t\t\tplaceholder=\"Search deployments...\"\n\t\t\t\t/>\n\t\t\t\t<ComboboxCommandList>\n\t\t\t\t\t<ComboboxCommandEmtpy>No deployments found</ComboboxCommandEmtpy>\n\t\t\t\t\t<ComboboxCommandGroup>\n\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\taria-label=\"All deployments\"\n\t\t\t\t\t\t\tonSelect={handleClearAll}\n\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\tvalue=\"__all__\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Checkbox checked={selectedDeployments.size === 0} />\n\t\t\t\t\t\t\tAll deployments\n\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t{filteredDeployments.map((deployment: Deployment) => (\n\t\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\t\tkey={deployment.id}\n\t\t\t\t\t\t\t\taria-label={deployment.name}\n\t\t\t\t\t\t\t\tonSelect={() => handleSelectDeployment(deployment.id)}\n\t\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\t\tvalue={deployment.id}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Checkbox checked={selectedDeployments.has(deployment.id)} />\n\t\t\t\t\t\t\t\t{deployment.name}\n\t\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ComboboxCommandGroup>\n\t\t\t\t</ComboboxCommandList>\n\t\t\t</ComboboxContent>\n\t\t</Combobox>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useDeferredValue, useMemo, useState } from \"react\";\nimport {\n\tbuildFilterWorkPoolsQuery,\n\ttype WorkPool,\n} from \"@/api/work-pools/work-pools\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n\tCombobox,\n\tComboboxCommandEmtpy,\n\tComboboxCommandGroup,\n\tComboboxCommandInput,\n\tComboboxCommandItem,\n\tComboboxCommandList,\n\tComboboxContent,\n\tComboboxTrigger,\n} from \"@/components/ui/combobox\";\nimport { Typography } from \"@/components/ui/typography\";\n\nconst MAX_WORK_POOLS_DISPLAYED = 2;\n\ntype WorkPoolFilterProps = {\n\tselectedWorkPools: Set<string>;\n\tonSelectWorkPools: (workPools: Set<string>) => void;\n};\n\nexport const WorkPoolFilter = ({\n\tselectedWorkPools,\n\tonSelectWorkPools,\n}: WorkPoolFilterProps) => {\n\tconst [search, setSearch] = useState(\"\");\n\tconst deferredSearch = useDeferredValue(search);\n\n\tconst { data: workPools = [] } = useQuery(\n\t\tbuildFilterWorkPoolsQuery({\n\t\t\tlimit: 100,\n\t\t\toffset: 0,\n\t\t}),\n\t);\n\n\tconst handleSelectWorkPool = (workPoolName: string) => {\n\t\tconst updatedWorkPools = new Set(selectedWorkPools);\n\t\tif (selectedWorkPools.has(workPoolName)) {\n\t\t\tupdatedWorkPools.delete(workPoolName);\n\t\t} else {\n\t\t\tupdatedWorkPools.add(workPoolName);\n\t\t}\n\t\tonSelectWorkPools(updatedWorkPools);\n\t};\n\n\tconst handleClearAll = () => {\n\t\tonSelectWorkPools(new Set());\n\t};\n\n\tconst renderSelectedWorkPools = () => {\n\t\tif (selectedWorkPools.size === 0) {\n\t\t\treturn \"All work pools\";\n\t\t}\n\n\t\tconst selectedWorkPoolNames = Array.from(selectedWorkPools).sort((a, b) =>\n\t\t\ta.localeCompare(b),\n\t\t);\n\n\t\tconst visible = selectedWorkPoolNames.slice(0, MAX_WORK_POOLS_DISPLAYED);\n\t\tconst extraCount = selectedWorkPoolNames.length - MAX_WORK_POOLS_DISPLAYED;\n\n\t\treturn (\n\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2\">\n\t\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2 overflow-hidden\">\n\t\t\t\t\t<span className=\"truncate\">{visible.join(\", \")}</span>\n\t\t\t\t</div>\n\t\t\t\t{extraCount > 0 && (\n\t\t\t\t\t<Typography variant=\"bodySmall\" className=\"shrink-0\">\n\t\t\t\t\t\t+ {extraCount}\n\t\t\t\t\t</Typography>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst filteredWorkPools = useMemo(() => {\n\t\treturn workPools\n\t\t\t.filter(\n\t\t\t\t(workPool: WorkPool) =>\n\t\t\t\t\t!deferredSearch ||\n\t\t\t\t\tworkPool.name.toLowerCase().includes(deferredSearch.toLowerCase()),\n\t\t\t)\n\t\t\t.sort((a: WorkPool, b: WorkPool) => a.name.localeCompare(b.name));\n\t}, [workPools, deferredSearch]);\n\n\treturn (\n\t\t<Combobox>\n\t\t\t<ComboboxTrigger\n\t\t\t\taria-label=\"Filter by work pool\"\n\t\t\t\tselected={selectedWorkPools.size === 0}\n\t\t\t>\n\t\t\t\t{renderSelectedWorkPools()}\n\t\t\t</ComboboxTrigger>\n\t\t\t<ComboboxContent>\n\t\t\t\t<ComboboxCommandInput\n\t\t\t\t\tvalue={search}\n\t\t\t\t\tonValueChange={setSearch}\n\t\t\t\t\tplaceholder=\"Search work pools...\"\n\t\t\t\t/>\n\t\t\t\t<ComboboxCommandList>\n\t\t\t\t\t<ComboboxCommandEmtpy>No work pools found</ComboboxCommandEmtpy>\n\t\t\t\t\t<ComboboxCommandGroup>\n\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\taria-label=\"All work pools\"\n\t\t\t\t\t\t\tonSelect={handleClearAll}\n\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\tvalue=\"__all__\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Checkbox checked={selectedWorkPools.size === 0} />\n\t\t\t\t\t\t\tAll work pools\n\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t{filteredWorkPools.map((workPool: WorkPool) => (\n\t\t\t\t\t\t\t<ComboboxCommandItem\n\t\t\t\t\t\t\t\tkey={workPool.name}\n\t\t\t\t\t\t\t\taria-label={workPool.name}\n\t\t\t\t\t\t\t\tonSelect={() => handleSelectWorkPool(workPool.name)}\n\t\t\t\t\t\t\t\tcloseOnSelect={false}\n\t\t\t\t\t\t\t\tvalue={workPool.name}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Checkbox checked={selectedWorkPools.has(workPool.name)} />\n\t\t\t\t\t\t\t\t{workPool.name}\n\t\t\t\t\t\t\t</ComboboxCommandItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</ComboboxCommandGroup>\n\t\t\t\t</ComboboxCommandList>\n\t\t\t</ComboboxContent>\n\t\t</Combobox>\n\t);\n};\n"],"names":["MAX_DEPLOYMENTS_DISPLAYED","DeploymentFilter","selectedDeployments","onSelectDeployments","search","setSearch","useState","deferredSearch","useDeferredValue","deployments","useQuery","buildFilterDeploymentsQuery","selectedDeploymentsData","handleSelectDeployment","deploymentId","updatedDeployments","handleClearAll","renderSelectedDeployments","selectedDeploymentNames","deployment","visible","extraCount","jsxs","jsx","Typography","filteredDeployments","useMemo","Combobox","ComboboxTrigger","ComboboxContent","ComboboxCommandInput","ComboboxCommandList","ComboboxCommandEmtpy","ComboboxCommandGroup","ComboboxCommandItem","Checkbox","MAX_WORK_POOLS_DISPLAYED","WorkPoolFilter","selectedWorkPools","onSelectWorkPools","workPools","buildFilterWorkPoolsQuery","handleSelectWorkPool","workPoolName","updatedWorkPools","renderSelectedWorkPools","selectedWorkPoolNames","a","b","filteredWorkPools","workPool"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e,r as y,u as T}from"./vendor-tanstack-CLpbOGYv.js";import{bH as E,bU as S,bR as v,bS as C,H as I,aW as g,bJ as F,bT as W,dk as M,dl as L,y as d,_ as A,$ as U,a0 as O,a1 as R,p as P,I as z,a3 as $,bh as B,q as N,dm as H,bI as q,bO as V,bP as Y,bQ as Z,dn as G,dp as J,G as K}from"./index-BZqccBpn.js";import{D as X,a as ee,b as oe,d as se}from"./dropdown-menu-g64QiYKu.js";import{a as re}from"./zod-cc-7bk3x.js";import{c as ne,o as ae,k as _,b as te,s as x,n as Q}from"./vendor-forms-mroZAMaw.js";import{F as ie,a as h,b as j,c as b,d as w,e as k}from"./form-CdcF42XZ.js";import{T as le}from"./textarea-Mne2s-1n.js";import{D as ce}from"./delete-confirmation-dialog-D18TITKv.js";const ue=[["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"}],["path",{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",key:"ohrbg2"}]],de=E("square-pen",ue),me={READY:{label:"Ready",color:"bg-green-500",tooltip:"Work queue has at least one actively polling worker ready to execute work."},PAUSED:{label:"Paused",color:"bg-yellow-500",tooltip:"Work queue is paused. No work will be executed."},NOT_READY:{label:"Not Ready",color:"bg-red-500",tooltip:"Work queue does not have any actively polling workers ready to execute work."}},Ce=({status:o,className:s})=>{const r=me[o];return e.jsx(S,{children:e.jsxs(v,{children:[e.jsx(C,{asChild:!0,children:e.jsxs(I,{variant:"secondary",className:g("flex items-center space-x-1 cursor-help",s),children:[o==="PAUSED"?e.jsx(F,{className:"h-2 w-2 text-muted-foreground"}):e.jsx("div",{className:g("h-2 w-2 rounded-full",r.color)}),e.jsx("span",{children:r.label})]})}),e.jsx(W,{children:e.jsx("p",{children:r.tooltip})})]})})},pe=ae({name:x().min(1,{message:"Name is required"}).regex(/^[a-zA-Z0-9_-]+$/,{message:"Name can only contain letters, numbers, hyphens, and underscores"}),description:x().nullable().optional(),is_paused:te().default(!1),concurrency_limit:_([x().transform(o=>{if(o===""||o===null||o===void 0)return null;const s=Number(o);if(Number.isNaN(s))return null;if(s<=0)throw new Error("Flow run concurrency must be greater than 0");return s}),Q().positive({message:"Flow run concurrency must be greater than 0"}).nullable()]).nullable().optional(),priority:_([x().transform(o=>{if(o===""||o===null||o===void 0)return null;const s=Number(o);if(Number.isNaN(s))return null;if(s<=0)throw new Error("Priority must be greater than 0");if(!Number.isInteger(s))throw new Error("Priority must be a whole number");return s}),Q().int({message:"Priority must be a whole number"}).positive({message:"Priority must be greater than 0"}).nullable()]).nullable().optional()}),f={name:"",description:"",is_paused:!1,concurrency_limit:null,priority:null},he=({workPoolName:o,queueToEdit:s,onSubmit:r})=>{const{mutate:i,isPending:l}=M(),{mutate:n,isPending:c}=L(),a=ne({resolver:re(pe),defaultValues:f});return y.useEffect(()=>{s?a.reset({name:s.name,description:s.description??"",is_paused:s.is_paused??!1,concurrency_limit:s.concurrency_limit??null,priority:s.priority??null}):a.reset(f)},[a,s]),{form:a,saveOrUpdate:u=>{const m={...u,description:u.description||null};s?n({workPoolName:o,queueName:s.name,workQueueData:{...m,is_paused:m.is_paused??s.is_paused??!1}},{onSuccess:()=>{d.success("Work queue updated"),a.reset(f),r()},onError:t=>{const D=t.message||"Unknown error while updating work queue.";a.setError("root",{message:D})}}):i({workPoolName:o,workQueueData:m},{onSuccess:()=>{d.success("Work queue created"),a.reset(f),r()},onError:t=>{const D=t.message||"Unknown error while creating work queue.";a.setError("root",{message:D})}})},isLoading:l||c}},ge=({workPoolName:o,queueToEdit:s,open:r,onOpenChange:i,onSubmit:l})=>{const{form:n,isLoading:c,saveOrUpdate:a}=he({workPoolName:o,queueToEdit:s,onSubmit:l}),p=!!s,u=p?"Edit Work Queue":"Create Work Queue",m=p?"Save":"Create Work Queue";return e.jsx(A,{open:r,onOpenChange:i,children:e.jsxs(U,{"aria-describedby":void 0,children:[e.jsx(O,{children:e.jsx(R,{children:u})}),e.jsx(ie,{...n,children:e.jsxs("form",{onSubmit:t=>{n.handleSubmit(a)(t)},className:"space-y-4",children:[e.jsx(h,{children:n.formState.errors.root?.message}),e.jsx(j,{control:n.control,name:"name",render:({field:t})=>e.jsxs(b,{children:[e.jsx(w,{children:"Name"}),e.jsx(k,{children:e.jsx(P,{type:"text",autoComplete:"off",...t})}),e.jsx(h,{})]})}),e.jsx(j,{control:n.control,name:"description",render:({field:t})=>e.jsxs(b,{children:[e.jsx(w,{children:"Description"}),e.jsx(k,{children:e.jsx(le,{...t,value:t.value||""})}),e.jsx(h,{})]})}),e.jsx(j,{control:n.control,name:"concurrency_limit",render:({field:t})=>e.jsxs(b,{children:[e.jsx(w,{children:"Flow Run Concurrency"}),e.jsx(k,{children:e.jsx(P,{type:"number",...t,value:t.value||""})}),e.jsx(h,{})]})}),e.jsx(j,{control:n.control,name:"priority",render:({field:t})=>e.jsxs(b,{children:[e.jsxs(w,{className:"flex items-center gap-2",children:["Priority",e.jsxs(v,{children:[e.jsx(C,{asChild:!0,children:e.jsx("button",{type:"button",className:"cursor-help",children:e.jsx(z,{id:"Info",className:"size-4"})})}),e.jsx(W,{children:e.jsx("p",{className:"text-xs",children:"Work on higher priority queues is executed first. Lower numbers have higher priority."})})]})]}),e.jsx(k,{children:e.jsx(P,{type:"number",...t,value:t.value||""})}),e.jsx(h,{})]})}),e.jsxs($,{children:[e.jsx(B,{asChild:!0,children:e.jsx(N,{variant:"outline",children:"Cancel"})}),e.jsx(N,{type:"submit",loading:c,children:m})]})]})})]})})},xe=({queue:o,open:s,onOpenChange:r,onDeleted:i})=>{const l=H(),n=()=>{if(!o.work_pool_name){d.error("Work pool name is required");return}l.mutate({workPoolName:o.work_pool_name,queueName:o.name},{onSuccess:()=>{d.success("Work pool queue deleted successfully"),i?.(),r(!1)},onError:()=>{d.error("Failed to delete work pool queue")}})};return e.jsx(ce,{isOpen:s,title:"Delete Work Pool Queue",description:`Are you sure you want to delete the work pool queue "${o.name}"? This action cannot be undone.`,confirmText:o.name,isLoading:l.isPending,loadingText:"Deleting...",onConfirm:n,onClose:()=>r(!1)})},je=o=>{const s=T(),[r,i]=y.useState(!1),[l,n]=y.useState(!1),c=()=>{navigator.clipboard.writeText(o.id),d.success("ID copied to clipboard")},a=()=>{n(!0)},p=()=>{s({to:"/automations/create"})},u=o.name==="default";return{menuItems:[{label:"Copy ID",icon:q,action:c,show:!0},{label:"Edit",icon:de,action:a,show:!0},{label:"Delete",icon:V,action:()=>i(!0),show:!u,variant:"destructive"},{label:"Automate",icon:Y,action:p,show:!0}].filter(t=>t.show),showDeleteDialog:r,setShowDeleteDialog:i,showEditDialog:l,setShowEditDialog:n,triggerIcon:Z}},We=({queue:o,onUpdate:s,className:r})=>{const{menuItems:i,showDeleteDialog:l,setShowDeleteDialog:n,showEditDialog:c,setShowEditDialog:a,triggerIcon:p}=je(o);return e.jsxs(e.Fragment,{children:[e.jsxs(X,{children:[e.jsx(ee,{asChild:!0,children:e.jsxs(N,{variant:"outline",size:"icon",className:g("size-8",r),children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(p,{className:"size-4"})]})}),e.jsx(oe,{align:"end",children:i.map(u=>{const m=u.icon;return e.jsxs(se,{onClick:u.action,className:g(u.variant==="destructive"&&"text-destructive"),children:[e.jsx(m,{className:"mr-2 h-4 w-4"}),u.label]},u.label)})})]}),e.jsx(xe,{queue:o,open:l,onOpenChange:n,onDeleted:s}),e.jsx(ge,{workPoolName:o.work_pool_name??"",queueToEdit:o,open:c,onOpenChange:a,onSubmit:()=>{a(!1),s?.()}})]})},be=(o,s)=>{const r=G(),i=J();return{handleToggle:y.useCallback(n=>{if(!o.work_pool_name){d.error("Work pool name is required");return}const c=n?i:r,a=n?"resumed":"paused";c.mutate({workPoolName:o.work_pool_name,queueName:o.name},{onSuccess:()=>{d.success(`Queue ${a} successfully`),s?.()},onError:()=>{d.error(`Failed to ${a.slice(0,-1)} queue`)}})},[o,r,i,s]),isLoading:r.isPending||i.isPending}},_e=({queue:o,onUpdate:s,disabled:r=!1,className:i})=>{const{handleToggle:l,isLoading:n}=be(o,s),c=o.status==="PAUSED",a=r||n;return e.jsx(S,{children:e.jsxs(v,{children:[e.jsx(C,{asChild:!0,children:e.jsx("div",{children:e.jsx(K,{checked:!c,onCheckedChange:l,disabled:a,"aria-label":c?"Resume work pool queue":"Pause work pool queue",className:g(i)})})}),e.jsx(W,{children:e.jsx("p",{children:"Pause or resume this work pool queue"})})]})})};export{de as S,Ce as W,_e as a,We as b,ge as c};
2
- //# sourceMappingURL=work-pool-queue-toggle--tVsqhDi.js.map
1
+ import{j as e,r as y,d as T}from"./vendor-tanstack-CWDKYA_B.js";import{bH as E,bU as S,bR as v,bS as C,H as I,aW as g,bJ as F,bT as W,dl as M,dm as L,y as d,_ as A,$ as U,a0 as O,a1 as R,p as P,I as z,a3 as $,bh as q,q as N,dn as B,bI as H,bO as V,bP as Y,bQ as Z,dp as G,dq as J,G as K}from"./index-CQlQauOE.js";import{D as X,a as ee,b as oe,d as se}from"./dropdown-menu-6cSdnzsr.js";import{a as re}from"./zod-CjGf5GIv.js";import{c as ne,o as ae,k as _,b as te,s as x,n as Q}from"./vendor-forms-D-iybWES.js";import{F as ie,a as h,b as j,c as b,d as w,e as k}from"./form-DvAgEGjn.js";import{T as le}from"./textarea-CjmPCtZi.js";import{D as ce}from"./delete-confirmation-dialog-DyUMWSB-.js";const ue=[["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"}],["path",{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",key:"ohrbg2"}]],de=E("square-pen",ue),me={READY:{label:"Ready",color:"bg-green-500",tooltip:"Work queue has at least one actively polling worker ready to execute work."},PAUSED:{label:"Paused",color:"bg-yellow-500",tooltip:"Work queue is paused. No work will be executed."},NOT_READY:{label:"Not Ready",color:"bg-red-500",tooltip:"Work queue does not have any actively polling workers ready to execute work."}},Ce=({status:o,className:s})=>{const r=me[o];return e.jsx(S,{children:e.jsxs(v,{children:[e.jsx(C,{asChild:!0,children:e.jsxs(I,{variant:"secondary",className:g("flex items-center space-x-1 cursor-help",s),children:[o==="PAUSED"?e.jsx(F,{className:"h-2 w-2 text-muted-foreground"}):e.jsx("div",{className:g("h-2 w-2 rounded-full",r.color)}),e.jsx("span",{children:r.label})]})}),e.jsx(W,{children:e.jsx("p",{children:r.tooltip})})]})})},pe=ae({name:x().min(1,{message:"Name is required"}).regex(/^[a-zA-Z0-9_-]+$/,{message:"Name can only contain letters, numbers, hyphens, and underscores"}),description:x().nullable().optional(),is_paused:te().default(!1),concurrency_limit:_([x().transform(o=>{if(o===""||o===null||o===void 0)return null;const s=Number(o);if(Number.isNaN(s))return null;if(s<=0)throw new Error("Flow run concurrency must be greater than 0");return s}),Q().positive({message:"Flow run concurrency must be greater than 0"}).nullable()]).nullable().optional(),priority:_([x().transform(o=>{if(o===""||o===null||o===void 0)return null;const s=Number(o);if(Number.isNaN(s))return null;if(s<=0)throw new Error("Priority must be greater than 0");if(!Number.isInteger(s))throw new Error("Priority must be a whole number");return s}),Q().int({message:"Priority must be a whole number"}).positive({message:"Priority must be greater than 0"}).nullable()]).nullable().optional()}),f={name:"",description:"",is_paused:!1,concurrency_limit:null,priority:null},he=({workPoolName:o,queueToEdit:s,onSubmit:r})=>{const{mutate:i,isPending:l}=M(),{mutate:n,isPending:c}=L(),a=ne({resolver:re(pe),defaultValues:f});return y.useEffect(()=>{s?a.reset({name:s.name,description:s.description??"",is_paused:s.is_paused??!1,concurrency_limit:s.concurrency_limit??null,priority:s.priority??null}):a.reset(f)},[a,s]),{form:a,saveOrUpdate:u=>{const m={...u,description:u.description||null};s?n({workPoolName:o,queueName:s.name,workQueueData:{...m,is_paused:m.is_paused??s.is_paused??!1}},{onSuccess:()=>{d.success("Work queue updated"),a.reset(f),r()},onError:t=>{const D=t.message||"Unknown error while updating work queue.";a.setError("root",{message:D})}}):i({workPoolName:o,workQueueData:m},{onSuccess:()=>{d.success("Work queue created"),a.reset(f),r()},onError:t=>{const D=t.message||"Unknown error while creating work queue.";a.setError("root",{message:D})}})},isLoading:l||c}},ge=({workPoolName:o,queueToEdit:s,open:r,onOpenChange:i,onSubmit:l})=>{const{form:n,isLoading:c,saveOrUpdate:a}=he({workPoolName:o,queueToEdit:s,onSubmit:l}),p=!!s,u=p?"Edit Work Queue":"Create Work Queue",m=p?"Save":"Create Work Queue";return e.jsx(A,{open:r,onOpenChange:i,children:e.jsxs(U,{"aria-describedby":void 0,children:[e.jsx(O,{children:e.jsx(R,{children:u})}),e.jsx(ie,{...n,children:e.jsxs("form",{onSubmit:t=>{n.handleSubmit(a)(t)},className:"space-y-4",children:[e.jsx(h,{children:n.formState.errors.root?.message}),e.jsx(j,{control:n.control,name:"name",render:({field:t})=>e.jsxs(b,{children:[e.jsx(w,{children:"Name"}),e.jsx(k,{children:e.jsx(P,{type:"text",autoComplete:"off",...t})}),e.jsx(h,{})]})}),e.jsx(j,{control:n.control,name:"description",render:({field:t})=>e.jsxs(b,{children:[e.jsx(w,{children:"Description"}),e.jsx(k,{children:e.jsx(le,{...t,value:t.value||""})}),e.jsx(h,{})]})}),e.jsx(j,{control:n.control,name:"concurrency_limit",render:({field:t})=>e.jsxs(b,{children:[e.jsx(w,{children:"Flow Run Concurrency"}),e.jsx(k,{children:e.jsx(P,{type:"number",...t,value:t.value||""})}),e.jsx(h,{})]})}),e.jsx(j,{control:n.control,name:"priority",render:({field:t})=>e.jsxs(b,{children:[e.jsxs(w,{className:"flex items-center gap-2",children:["Priority",e.jsxs(v,{children:[e.jsx(C,{asChild:!0,children:e.jsx("button",{type:"button",className:"cursor-help",children:e.jsx(z,{id:"Info",className:"size-4"})})}),e.jsx(W,{children:e.jsx("p",{className:"text-xs",children:"Work on higher priority queues is executed first. Lower numbers have higher priority."})})]})]}),e.jsx(k,{children:e.jsx(P,{type:"number",...t,value:t.value||""})}),e.jsx(h,{})]})}),e.jsxs($,{children:[e.jsx(q,{asChild:!0,children:e.jsx(N,{variant:"outline",children:"Cancel"})}),e.jsx(N,{type:"submit",loading:c,children:m})]})]})})]})})},xe=({queue:o,open:s,onOpenChange:r,onDeleted:i})=>{const l=B(),n=()=>{if(!o.work_pool_name){d.error("Work pool name is required");return}l.mutate({workPoolName:o.work_pool_name,queueName:o.name},{onSuccess:()=>{d.success("Work pool queue deleted successfully"),i?.(),r(!1)},onError:()=>{d.error("Failed to delete work pool queue")}})};return e.jsx(ce,{isOpen:s,title:"Delete Work Pool Queue",description:`Are you sure you want to delete the work pool queue "${o.name}"? This action cannot be undone.`,confirmText:o.name,isLoading:l.isPending,loadingText:"Deleting...",onConfirm:n,onClose:()=>r(!1)})},je=o=>{const s=T(),[r,i]=y.useState(!1),[l,n]=y.useState(!1),c=()=>{navigator.clipboard.writeText(o.id),d.success("ID copied to clipboard")},a=()=>{n(!0)},p=()=>{s({to:"/automations/create"})},u=o.name==="default";return{menuItems:[{label:"Copy ID",icon:H,action:c,show:!0},{label:"Edit",icon:de,action:a,show:!0},{label:"Delete",icon:V,action:()=>i(!0),show:!u,variant:"destructive"},{label:"Automate",icon:Y,action:p,show:!0}].filter(t=>t.show),showDeleteDialog:r,setShowDeleteDialog:i,showEditDialog:l,setShowEditDialog:n,triggerIcon:Z}},We=({queue:o,onUpdate:s,className:r})=>{const{menuItems:i,showDeleteDialog:l,setShowDeleteDialog:n,showEditDialog:c,setShowEditDialog:a,triggerIcon:p}=je(o);return e.jsxs(e.Fragment,{children:[e.jsxs(X,{children:[e.jsx(ee,{asChild:!0,children:e.jsxs(N,{variant:"outline",size:"icon",className:g("size-8",r),children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(p,{className:"size-4"})]})}),e.jsx(oe,{align:"end",children:i.map(u=>{const m=u.icon;return e.jsxs(se,{onClick:u.action,className:g(u.variant==="destructive"&&"text-destructive"),children:[e.jsx(m,{className:"mr-2 h-4 w-4"}),u.label]},u.label)})})]}),e.jsx(xe,{queue:o,open:l,onOpenChange:n,onDeleted:s}),e.jsx(ge,{workPoolName:o.work_pool_name??"",queueToEdit:o,open:c,onOpenChange:a,onSubmit:()=>{a(!1),s?.()}})]})},be=(o,s)=>{const r=G(),i=J();return{handleToggle:y.useCallback(n=>{if(!o.work_pool_name){d.error("Work pool name is required");return}const c=n?i:r,a=n?"resumed":"paused";c.mutate({workPoolName:o.work_pool_name,queueName:o.name},{onSuccess:()=>{d.success(`Queue ${a} successfully`),s?.()},onError:()=>{d.error(`Failed to ${a.slice(0,-1)} queue`)}})},[o,r,i,s]),isLoading:r.isPending||i.isPending}},_e=({queue:o,onUpdate:s,disabled:r=!1,className:i})=>{const{handleToggle:l,isLoading:n}=be(o,s),c=o.status==="PAUSED",a=r||n;return e.jsx(S,{children:e.jsxs(v,{children:[e.jsx(C,{asChild:!0,children:e.jsx("div",{children:e.jsx(K,{checked:!c,onCheckedChange:l,disabled:a,"aria-label":c?"Resume work pool queue":"Pause work pool queue",className:g(i)})})}),e.jsx(W,{children:e.jsx("p",{children:"Pause or resume this work pool queue"})})]})})};export{de as S,Ce as W,_e as a,We as b,ge as c};
2
+ //# sourceMappingURL=work-pool-queue-toggle-Dd3mOecD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-pool-queue-toggle--tVsqhDi.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.563.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-Dd3mOecD.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.563.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":"krBASA,MAAMA,GAAa,CACjB,CAAC,OAAQ,CAAE,EAAG,6DAA8D,IAAK,QAAQ,CAAE,EAC3F,CACE,OACA,CACE,EAAG,0HACH,IAAK,QACX,CACA,CACA,EACMC,GAAYC,EAAiB,aAAcF,EAAU,ECHrDG,GAAe,CACpB,MAAO,CACN,MAAO,QACP,MAAO,eACP,QACC,4EAAA,EAEF,OAAQ,CACP,MAAO,SACP,MAAO,gBACP,QAAS,iDAAA,EAEV,UAAW,CACV,MAAO,YACP,MAAO,aACP,QACC,8EAAA,CAEH,EAEaC,GAA2B,CAAC,CACxC,OAAAC,EACA,UAAAC,CACD,IAAqC,CACpC,MAAMC,EAASJ,GAAaE,CAAM,EAElC,OACCG,EAAAA,IAACC,EAAA,CACA,SAAAC,EAAAA,KAACC,EAAA,CACA,SAAA,CAAAH,EAAAA,IAACI,EAAA,CAAe,QAAO,GACtB,SAAAF,EAAAA,KAACG,EAAA,CACA,QAAQ,YACR,UAAWC,EAAG,0CAA2CR,CAAS,EAEjE,SAAA,CAAAD,IAAW,SACXG,EAAAA,IAACO,EAAA,CAAM,UAAU,gCAAgC,EAEjDP,EAAAA,IAAC,MAAA,CAAI,UAAWM,EAAG,uBAAwBP,EAAO,KAAK,EAAG,EAE3DC,EAAAA,IAAC,OAAA,CAAM,SAAAD,EAAO,KAAA,CAAM,CAAA,CAAA,CAAA,EAEtB,QACCS,EAAA,CACA,SAAAR,EAAAA,IAAC,IAAA,CAAG,SAAAD,EAAO,QAAQ,CAAA,CACpB,CAAA,CAAA,CACD,CAAA,CACD,CAEF,ECrDMU,GAAaC,GAAS,CAC3B,KAAMC,IAEJ,IAAI,EAAG,CAAE,QAAS,kBAAA,CAAoB,EACtC,MAAM,mBAAoB,CAC1B,QACC,kEAAA,CACD,EACF,YAAaA,EAAE,EAAS,SAAA,EAAW,SAAA,EACnC,UAAWC,GAAE,EAAU,QAAQ,EAAK,EACpC,kBAAmBC,EACX,CACNF,EAAE,EAAS,UAAWG,GAAQ,CAC7B,GAAIA,IAAQ,IAAMA,IAAQ,MAAQA,IAAQ,OAAW,OAAO,KAC5D,MAAMC,EAAM,OAAOD,CAAG,EACtB,GAAI,OAAO,MAAMC,CAAG,EAAG,OAAO,KAC9B,GAAIA,GAAO,EACV,MAAM,IAAI,MAAM,6CAA6C,EAC9D,OAAOA,CACR,CAAC,EACDC,IAEE,SAAS,CAAE,QAAS,6CAAA,CAA+C,EACnE,SAAA,CAAS,CACX,EACA,SAAA,EACA,SAAA,EACF,SAAUH,EACF,CACNF,EAAE,EAAS,UAAWG,GAAQ,CAC7B,GAAIA,IAAQ,IAAMA,IAAQ,MAAQA,IAAQ,OAAW,OAAO,KAC5D,MAAMC,EAAM,OAAOD,CAAG,EACtB,GAAI,OAAO,MAAMC,CAAG,EAAG,OAAO,KAC9B,GAAIA,GAAO,EAAG,MAAM,IAAI,MAAM,iCAAiC,EAC/D,GAAI,CAAC,OAAO,UAAUA,CAAG,EACxB,MAAM,IAAI,MAAM,iCAAiC,EAClD,OAAOA,CACR,CAAC,EACDC,IAEE,IAAI,CAAE,QAAS,iCAAA,CAAmC,EAClD,SAAS,CAAE,QAAS,iCAAA,CAAmC,EACvD,SAAA,CAAS,CACX,EACA,SAAA,EACA,SAAA,CACH,CAAC,EAEYC,EAAiB,CAC7B,KAAM,GACN,YAAa,GACb,UAAW,GACX,kBAAmB,KACnB,SAAU,IACX,EAQaC,GAAmC,CAAC,CAChD,aAAAC,EACA,YAAAC,EACA,SAAAC,CACD,IAA+C,CAC9C,KAAM,CAAE,OAAQC,EAAqB,UAAWC,CAAA,EAC/CC,EAAA,EACK,CAAE,OAAQC,EAAqB,UAAWC,CAAA,EAC/CC,EAAA,EAEKC,EAAOC,GAAQ,CACpB,SAAUC,GAAYrB,EAAU,EAChC,cAAeQ,CAAA,CACf,EAGDc,OAAAA,EAAAA,UAAU,IAAM,CACXX,EACHQ,EAAK,MAAM,CACV,KAAMR,EAAY,KAClB,YAAaA,EAAY,aAAe,GACxC,UAAWA,EAAY,WAAa,GACpC,kBAAmBA,EAAY,mBAAqB,KACpD,SAAUA,EAAY,UAAY,IAAA,CAClC,EAEDQ,EAAK,MAAMX,CAAc,CAE3B,EAAG,CAACW,EAAMR,CAAW,CAAC,EAsDf,CACN,KAAAQ,EACA,aAtDqBI,GAAuC,CAC5D,MAAMC,EAAgB,CACrB,GAAGD,EACH,YAAaA,EAAO,aAAe,IAAA,EAGhCZ,EACHK,EACC,CACC,aAAAN,EACA,UAAWC,EAAY,KACvB,cAAe,CACd,GAAGa,EACH,UACCA,EAAc,WAAab,EAAY,WAAa,EAAA,CACtD,EAED,CACC,UAAW,IAAM,CAChBc,EAAM,QAAQ,oBAAoB,EAClCN,EAAK,MAAMX,CAAc,EACzBI,EAAA,CACD,EACA,QAAUc,GAAU,CACnB,MAAMC,EACLD,EAAM,SAAW,2CAClBP,EAAK,SAAS,OAAQ,CAAE,QAAAQ,CAAA,CAAS,CAClC,CAAA,CACD,EAGDd,EACC,CACC,aAAAH,EACA,cAAAc,CAAA,EAED,CACC,UAAW,IAAM,CAChBC,EAAM,QAAQ,oBAAoB,EAClCN,EAAK,MAAMX,CAAc,EACzBI,EAAA,CACD,EACA,QAAUc,GAAU,CACnB,MAAMC,EACLD,EAAM,SAAW,2CAClBP,EAAK,SAAS,OAAQ,CAAE,QAAAQ,CAAA,CAAS,CAClC,CAAA,CACD,CAGH,EAKC,UAAWb,GAAmBG,CAAA,CAEhC,EC3HaW,GAAkC,CAAC,CAC/C,aAAAlB,EACA,YAAAC,EACA,KAAAkB,EACA,aAAAC,EACA,SAAAlB,CACD,IAA4C,CAC3C,KAAM,CAAE,KAAAO,EAAM,UAAAY,EAAW,aAAAC,CAAA,EAAiBvB,GAAiC,CAC1E,aAAAC,EACA,YAAAC,EACA,SAAAC,CAAA,CACA,EAEKqB,EAAa,CAAC,CAACtB,EACfuB,EAAcD,EAAa,kBAAoB,oBAC/CE,EAAmBF,EAAa,OAAS,oBAE/C,aACEG,EAAA,CAAO,KAAAP,EAAY,aAAAC,EACnB,SAAArC,EAAAA,KAAC4C,EAAA,CAAc,mBAAkB,OAChC,SAAA,CAAA9C,MAAC+C,EAAA,CACA,SAAA/C,EAAAA,IAACgD,EAAA,CAAa,SAAAL,CAAA,CAAY,EAC3B,EAEA3C,EAAAA,IAACiD,GAAA,CAAM,GAAGrB,EACT,SAAA1B,EAAAA,KAAC,OAAA,CACA,SAAWgD,IAAWtB,EAAK,aAAaa,CAAY,EAAES,CAAC,GACvD,UAAU,YAEV,SAAA,CAAAlD,MAACmD,EAAA,CAAa,SAAAvB,EAAK,UAAU,OAAO,MAAM,QAAQ,EAClD5B,EAAAA,IAACoD,EAAA,CACA,QAASxB,EAAK,QACd,KAAK,OACL,OAAQ,CAAC,CAAE,MAAAyB,CAAA,WACTC,EAAA,CACA,SAAA,CAAAtD,EAAAA,IAACuD,GAAU,SAAA,MAAA,CAAI,EACfvD,EAAAA,IAACwD,EAAA,CACA,SAAAxD,EAAAA,IAACyD,EAAA,CAAM,KAAK,OAAO,aAAa,MAAO,GAAGJ,CAAA,CAAO,CAAA,CAClD,QACCF,EAAA,CAAA,CAAY,CAAA,CAAA,CACd,CAAA,CAAA,EAGFnD,EAAAA,IAACoD,EAAA,CACA,QAASxB,EAAK,QACd,KAAK,cACL,OAAQ,CAAC,CAAE,MAAAyB,CAAA,WACTC,EAAA,CACA,SAAA,CAAAtD,EAAAA,IAACuD,GAAU,SAAA,aAAA,CAAW,EACtBvD,EAAAA,IAACwD,EAAA,CACA,SAAAxD,EAAAA,IAAC0D,GAAA,CAAU,GAAGL,EAAO,MAAOA,EAAM,OAAS,EAAA,CAAI,CAAA,CAChD,QACCF,EAAA,CAAA,CAAY,CAAA,CAAA,CACd,CAAA,CAAA,EAGFnD,EAAAA,IAACoD,EAAA,CACA,QAASxB,EAAK,QACd,KAAK,oBACL,OAAQ,CAAC,CAAE,MAAAyB,CAAA,WACTC,EAAA,CACA,SAAA,CAAAtD,EAAAA,IAACuD,GAAU,SAAA,sBAAA,CAAoB,EAC/BvD,EAAAA,IAACwD,EAAA,CACA,SAAAxD,EAAAA,IAACyD,EAAA,CAAM,KAAK,SAAU,GAAGJ,EAAO,MAAOA,EAAM,OAAS,EAAA,CAAI,EAC3D,QACCF,EAAA,CAAA,CAAY,CAAA,CAAA,CACd,CAAA,CAAA,EAGFnD,EAAAA,IAACoD,EAAA,CACA,QAASxB,EAAK,QACd,KAAK,WACL,OAAQ,CAAC,CAAE,MAAAyB,CAAA,WACTC,EAAA,CACA,SAAA,CAAApD,EAAAA,KAACqD,EAAA,CAAU,UAAU,0BAA0B,SAAA,CAAA,kBAE7CpD,EAAA,CACA,SAAA,CAAAH,MAACI,GAAe,QAAO,GACtB,SAAAJ,EAAAA,IAAC,SAAA,CAAO,KAAK,SAAS,UAAU,cAC/B,SAAAA,EAAAA,IAAC2D,GAAK,GAAG,OAAO,UAAU,QAAA,CAAS,EACpC,EACD,QACCnD,EAAA,CACA,SAAAR,MAAC,KAAE,UAAU,UAAU,iGAGvB,CAAA,CACD,CAAA,CAAA,CACD,CAAA,EACD,EACAA,EAAAA,IAACwD,EAAA,CACA,SAAAxD,EAAAA,IAACyD,EAAA,CAAM,KAAK,SAAU,GAAGJ,EAAO,MAAOA,EAAM,OAAS,EAAA,CAAI,EAC3D,QACCF,EAAA,CAAA,CAAY,CAAA,CAAA,CACd,CAAA,CAAA,SAGDS,EAAA,CACA,SAAA,CAAA5D,EAAAA,IAAC6D,EAAA,CAAc,QAAO,GACrB,SAAA7D,EAAAA,IAAC8D,GAAO,QAAQ,UAAU,kBAAM,CAAA,CACjC,QACCA,EAAA,CAAO,KAAK,SAAS,QAAStB,EAC7B,SAAAI,CAAA,CACF,CAAA,CAAA,CACD,CAAA,CAAA,CAAA,CACD,CACD,CAAA,CAAA,CACD,CAAA,CACD,CAEF,ECvIamB,GAA4B,CAAC,CACzC,MAAAC,EACA,KAAA1B,EACA,aAAAC,EACA,UAAA0B,CACD,IAAsC,CACrC,MAAMC,EAAsBC,EAAA,EAEtBC,EAAe,IAAM,CAC1B,GAAI,CAACJ,EAAM,eAAgB,CAC1B9B,EAAM,MAAM,4BAA4B,EACxC,MACD,CAEAgC,EAAoB,OACnB,CAAE,aAAcF,EAAM,eAAgB,UAAWA,EAAM,IAAA,EACvD,CACC,UAAW,IAAM,CAChB9B,EAAM,QAAQ,sCAAsC,EACpD+B,IAAA,EACA1B,EAAa,EAAK,CACnB,EACA,QAAS,IAAM,CACdL,EAAM,MAAM,kCAAkC,CAC/C,CAAA,CACD,CAEF,EAEA,OACClC,EAAAA,IAACqE,GAAA,CACA,OAAQ/B,EACR,MAAM,yBACN,YAAa,wDAAwD0B,EAAM,IAAI,mCAC/E,YAAaA,EAAM,KACnB,UAAWE,EAAoB,UAC/B,YAAY,cACZ,UAAWE,EACX,QAAS,IAAM7B,EAAa,EAAK,CAAA,CAAA,CAGpC,EC/Ca+B,GAAwBN,GAAyB,CAC7D,MAAMO,EAAWC,EAAA,EACX,CAACC,EAAkBC,CAAmB,EAAIC,EAAAA,SAAS,EAAK,EACxD,CAACC,EAAgBC,CAAiB,EAAIF,EAAAA,SAAS,EAAK,EAEpDG,EAAe,IAAM,CACrB,UAAU,UAAU,UAAUd,EAAM,EAAE,EAC3C9B,EAAM,QAAQ,wBAAwB,CACvC,EAEM6C,EAAa,IAAM,CACxBF,EAAkB,EAAI,CACvB,EAEMG,EAAiB,IAAM,CACvBT,EAAS,CACb,GAAI,qBAAA,CACJ,CACF,EAEMU,EAAiBjB,EAAM,OAAS,UA8BtC,MAAO,CACN,UA7BiB,CACjB,CACC,MAAO,UACP,KAAMkB,EACN,OAAQJ,EACR,KAAM,EAAA,EAEP,CACC,MAAO,OACP,KAAMK,GACN,OAAQJ,EACR,KAAM,EAAA,EAEP,CACC,MAAO,SACP,KAAMK,EACN,OAAQ,IAAMV,EAAoB,EAAI,EACtC,KAAM,CAACO,EACP,QAAS,aAAA,EAEV,CACC,MAAO,WACP,KAAMI,EACN,OAAQL,EACR,KAAM,EAAA,CACP,EACC,OAAQM,GAASA,EAAK,IAAI,EAI3B,iBAAAb,EACA,oBAAAC,EACA,eAAAE,EACA,kBAAAC,EACA,YAAaU,CAAA,CAEf,EC7CaC,GAAoB,CAAC,CACjC,MAAAxB,EACA,SAAAyB,EACA,UAAA3F,CACD,IAA8B,CAC7B,KAAM,CACL,UAAA4F,EACA,iBAAAjB,EACA,oBAAAC,EACA,eAAAE,EACA,kBAAAC,EACA,YAAac,CAAA,EACVrB,GAAqBN,CAAK,EAE9B,OACC9D,EAAAA,KAAA0F,WAAA,CACC,SAAA,CAAA1F,OAAC2F,EAAA,CACA,SAAA,CAAA7F,EAAAA,IAAC8F,GAAA,CAAoB,QAAO,GAC3B,SAAA5F,EAAAA,KAAC4D,EAAA,CACA,QAAQ,UACR,KAAK,OACL,UAAWxD,EAAG,SAAUR,CAAS,EAEjC,SAAA,CAAAE,EAAAA,IAAC,OAAA,CAAK,UAAU,UAAU,SAAA,YAAS,EACnCA,EAAAA,IAAC2F,EAAA,CAAY,UAAU,QAAA,CAAS,CAAA,CAAA,CAAA,EAElC,QACCI,GAAA,CAAoB,MAAM,MACzB,SAAAL,EAAU,IAAKJ,GAAS,CACxB,MAAM3B,EAAO2B,EAAK,KAClB,OACCpF,EAAAA,KAAC8F,GAAA,CAEA,QAASV,EAAK,OACd,UAAWhF,EACVgF,EAAK,UAAY,eAAiB,kBAAA,EAGnC,SAAA,CAAAtF,EAAAA,IAAC2D,EAAA,CAAK,UAAU,cAAA,CAAe,EAC9B2B,EAAK,KAAA,CAAA,EAPDA,EAAK,KAAA,CAUb,CAAC,CAAA,CACF,CAAA,EACD,EACAtF,EAAAA,IAAC+D,GAAA,CACA,MAAAC,EACA,KAAMS,EACN,aAAcC,EACd,UAAWe,CAAA,CAAA,EAEZzF,EAAAA,IAACqC,GAAA,CACA,aAAc2B,EAAM,gBAAkB,GACtC,YAAaA,EACb,KAAMY,EACN,aAAcC,EACd,SAAU,IAAM,CACfA,EAAkB,EAAK,EACvBY,IAAA,CACD,CAAA,CAAA,CACD,EACD,CAEF,EC1EaQ,GAAyB,CACrCjC,EACAyB,IACI,CACJ,MAAMS,EAAgBC,EAAA,EAChBC,EAAiBC,EAAA,EA4BvB,MAAO,CACN,aA3BoBC,EAAAA,YACnBC,GAAuB,CACvB,GAAI,CAACvC,EAAM,eAAgB,CAC1B9B,EAAM,MAAM,4BAA4B,EACxC,MACD,CAEA,MAAMsE,EAAWD,EAAYH,EAAiBF,EACxCO,EAASF,EAAY,UAAY,SAEvCC,EAAS,OACR,CAAE,aAAcxC,EAAM,eAAgB,UAAWA,EAAM,IAAA,EACvD,CACC,UAAW,IAAM,CAChB9B,EAAM,QAAQ,SAASuE,CAAM,eAAe,EAC5ChB,IAAA,CACD,EACA,QAAS,IAAM,CACdvD,EAAM,MAAM,aAAauE,EAAO,MAAM,EAAG,EAAE,CAAC,QAAQ,CACrD,CAAA,CACD,CAEF,EACA,CAACzC,EAAOkC,EAAeE,EAAgBX,CAAQ,CAAA,EAK/C,UAAWS,EAAc,WAAaE,EAAe,SAAA,CAEvD,EC3BaM,GAAsB,CAAC,CACnC,MAAA1C,EACA,SAAAyB,EACA,SAAAkB,EAAW,GACX,UAAA7G,CACD,IAAgC,CAC/B,KAAM,CAAE,aAAA8G,EAAc,UAAApE,CAAA,EAAcyD,GAAuBjC,EAAOyB,CAAQ,EACpEoB,EAAW7C,EAAM,SAAW,SAE5B8C,EAAaH,GAAYnE,EAE/B,OACCxC,EAAAA,IAACC,EAAA,CACA,SAAAC,EAAAA,KAACC,EAAA,CACA,SAAA,CAAAH,MAACI,EAAA,CAAe,QAAO,GACtB,SAAAJ,MAAC,MAAA,CACA,SAAAA,EAAAA,IAAC+G,EAAA,CACA,QAAS,CAACF,EACV,gBAAiBD,EACjB,SAAUE,EACV,aACCD,EAAW,yBAA2B,wBAEvC,UAAWvG,EAAGR,CAAS,CAAA,CAAA,EAEzB,CAAA,CACD,EACAE,MAACQ,EAAA,CACA,SAAAR,EAAAA,IAAC,IAAA,CAAE,gDAAoC,CAAA,CACxC,CAAA,CAAA,CACD,CAAA,CACD,CAEF","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
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-CLpbOGYv.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-BZqccBpn.js";import{D as He}from"./index-yTjygRmH.js";import{S as Ge,a as Ze,F as Xe}from"./flow-runs-pagination-CoZZ-ed_.js";import{D as oe,a as ie,b as ce,d as de}from"./dropdown-menu-g64QiYKu.js";import{D as ue}from"./delete-confirmation-dialog-D18TITKv.js";import{S as es,W as ss,a as as,b as ts,c as ns}from"./work-pool-queue-toggle--tVsqhDi.js";import{D as me}from"./data-table-Bfa8_ZJd.js";import{o as ls,e as rs}from"./vendor-forms-mroZAMaw.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-CP6hQtRc.js";import"./vendor-recharts-BOcghvr2.js";import"./vendor-date-Bxa7CHB1.js";import"./use-quick-run-uAasMmAv.js";import"./use-delete-confirmation-dialog-Bka9YDdO.js";import"./index-Cuh3BwlA.js";import"./cronstrue-CeanGOEE.js";import"./use-is-overflowing-Cc-Qm0vx.js";import"./index-faXvGo5k.js";import"./tags-input-CDvuqe9B.js";import"./zod-cc-7bk3x.js";import"./form-CdcF42XZ.js";import"./textarea-Mne2s-1n.js";import"./table-CJS-5Aky.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-Ba0XSN4m.js.map
1
+ import{r as c,j as e,u as k,d as I,L as H,C as G,H as Z,D as X,G as pe,n as ge,s as L}from"./vendor-tanstack-CWDKYA_B.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-CQlQauOE.js";import{D as He}from"./index-C19BICb6.js";import{S as Ge,a as Ze,F as Xe}from"./flow-runs-pagination-DvDLs5GM.js";import{D as oe,a as ie,b as ce,d as de}from"./dropdown-menu-6cSdnzsr.js";import{D as ue}from"./delete-confirmation-dialog-DyUMWSB-.js";import{S as es,W as ss,a as as,b as ts,c as ns}from"./work-pool-queue-toggle-Dd3mOecD.js";import{D as me}from"./data-table-B3EtpFhV.js";import{o as ls,e as rs}from"./vendor-forms-D-iybWES.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-DRMjKWJW.js";import"./vendor-recharts-BGjDGXVf.js";import"./vendor-date-CRz8gtWZ.js";import"./use-quick-run-IfBGzpj9.js";import"./use-delete-confirmation-dialog-C5d6hPL-.js";import"./index-C84_3iOG.js";import"./cronstrue-IJcBJ9tZ.js";import"./use-is-overflowing-CyVH32I2.js";import"./index-DzylsDQg.js";import"./tags-input-9pBchAz7.js";import"./zod-CjGf5GIv.js";import"./form-DvAgEGjn.js";import"./textarea-CjmPCtZi.js";import"./table--kjjs3jN.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-Dxf0Y-lV.js.map