prefect 3.6.14.dev3__py3-none-any.whl → 3.6.14.dev4__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 (251) hide show
  1. prefect/_build_info.py +3 -3
  2. prefect/futures.py +17 -4
  3. prefect/runner/runner.py +113 -29
  4. prefect/server/ui-v2/assets/{artifact-card-CNabu-6j.js → artifact-card-DmR_0bKj.js} +2 -2
  5. prefect/server/ui-v2/assets/{artifact-card-CNabu-6j.js.map → artifact-card-DmR_0bKj.js.map} +1 -1
  6. prefect/server/ui-v2/assets/{artifact._id-Emkhr_0h.js → artifact._id-BF4365i6.js} +2 -2
  7. prefect/server/ui-v2/assets/{artifact._id-Emkhr_0h.js.map → artifact._id-BF4365i6.js.map} +1 -1
  8. prefect/server/ui-v2/assets/{automation-schema-CRKJHa4q.js → automation-schema-crrFcHTg.js} +2 -2
  9. prefect/server/ui-v2/assets/{automation-schema-CRKJHa4q.js.map → automation-schema-crrFcHTg.js.map} +1 -1
  10. prefect/server/ui-v2/assets/{automation-wizard-Cej8aik5.js → automation-wizard-DMI3p_HA.js} +2 -2
  11. prefect/server/ui-v2/assets/{automation-wizard-Cej8aik5.js.map → automation-wizard-DMI3p_HA.js.map} +1 -1
  12. prefect/server/ui-v2/assets/automation._id-C_ZATYDQ.js +2 -0
  13. prefect/server/ui-v2/assets/{automation._id-Bm1T3_NO.js.map → automation._id-C_ZATYDQ.js.map} +1 -1
  14. prefect/server/ui-v2/assets/{automation_._id.edit-C5NIVfxR.js → automation_._id.edit-Dkc09fFA.js} +2 -2
  15. prefect/server/ui-v2/assets/{automation_._id.edit-C5NIVfxR.js.map → automation_._id.edit-Dkc09fFA.js.map} +1 -1
  16. prefect/server/ui-v2/assets/{automations-header-CdJSlWw8.js → automations-header-H_FW9LY7.js} +2 -2
  17. prefect/server/ui-v2/assets/{automations-header-CdJSlWw8.js.map → automations-header-H_FW9LY7.js.map} +1 -1
  18. prefect/server/ui-v2/assets/{base-job-template-form-section-DX_X28oU.js → base-job-template-form-section-CVnxwfEi.js} +2 -2
  19. prefect/server/ui-v2/assets/{base-job-template-form-section-DX_X28oU.js.map → base-job-template-form-section-CVnxwfEi.js.map} +1 -1
  20. prefect/server/ui-v2/assets/{block-type-details-BcpcwaJS.js → block-type-details-BIzTWlfj.js} +2 -2
  21. prefect/server/ui-v2/assets/{block-type-details-BcpcwaJS.js.map → block-type-details-BIzTWlfj.js.map} +1 -1
  22. prefect/server/ui-v2/assets/block-type-logo-B3XAhRSL.js +2 -0
  23. prefect/server/ui-v2/assets/{block-type-logo-ox5VqJuy.js.map → block-type-logo-B3XAhRSL.js.map} +1 -1
  24. prefect/server/ui-v2/assets/{block._id-BD6wu3yC.js → block._id-Bj0YEdv1.js} +2 -2
  25. prefect/server/ui-v2/assets/{block._id-BD6wu3yC.js.map → block._id-Bj0YEdv1.js.map} +1 -1
  26. prefect/server/ui-v2/assets/{block_._id.edit-aneXPzUW.js → block_._id.edit-C7sUQ8mQ.js} +2 -2
  27. prefect/server/ui-v2/assets/{block_._id.edit-aneXPzUW.js.map → block_._id.edit-C7sUQ8mQ.js.map} +1 -1
  28. prefect/server/ui-v2/assets/{catalog-C7ttFKuv.js → catalog-Cywf-iho.js} +2 -2
  29. prefect/server/ui-v2/assets/{catalog-C7ttFKuv.js.map → catalog-Cywf-iho.js.map} +1 -1
  30. prefect/server/ui-v2/assets/{catalog_._slug-CrcphBbo.js → catalog_._slug-qLWMRQt3.js} +2 -2
  31. prefect/server/ui-v2/assets/{catalog_._slug-CrcphBbo.js.map → catalog_._slug-qLWMRQt3.js.map} +1 -1
  32. prefect/server/ui-v2/assets/{catalog_._slug_.create-Dd7ATIKq.js → catalog_._slug_.create-LslFlpde.js} +2 -2
  33. prefect/server/ui-v2/assets/{catalog_._slug_.create-Dd7ATIKq.js.map → catalog_._slug_.create-LslFlpde.js.map} +1 -1
  34. prefect/server/ui-v2/assets/{collapsible-D5U2XK4R.js → collapsible-BszH-EeY.js} +2 -2
  35. prefect/server/ui-v2/assets/{collapsible-D5U2XK4R.js.map → collapsible-BszH-EeY.js.map} +1 -1
  36. prefect/server/ui-v2/assets/{concurrency-limit._id-D-xV_tiF.js → concurrency-limit._id-Dam_Ftkw.js} +2 -2
  37. prefect/server/ui-v2/assets/{concurrency-limit._id-D-xV_tiF.js.map → concurrency-limit._id-Dam_Ftkw.js.map} +1 -1
  38. prefect/server/ui-v2/assets/{create-Da7OBOa5.js → create-B11nNTmT.js} +2 -2
  39. prefect/server/ui-v2/assets/{create-Da7OBOa5.js.map → create-B11nNTmT.js.map} +1 -1
  40. prefect/server/ui-v2/assets/create-B8EFPjmO.js +2 -0
  41. prefect/server/ui-v2/assets/{create-CiMo25er.js.map → create-B8EFPjmO.js.map} +1 -1
  42. prefect/server/ui-v2/assets/cronstrue-IJcBJ9tZ.js +2 -0
  43. prefect/server/ui-v2/assets/cronstrue-IJcBJ9tZ.js.map +1 -0
  44. prefect/server/ui-v2/assets/{data-table-Bfa8_ZJd.js → data-table-C1eRvlXV.js} +2 -2
  45. prefect/server/ui-v2/assets/{data-table-Bfa8_ZJd.js.map → data-table-C1eRvlXV.js.map} +1 -1
  46. prefect/server/ui-v2/assets/{delete-confirmation-dialog-D18TITKv.js → delete-confirmation-dialog-DCmC1ZTD.js} +2 -2
  47. prefect/server/ui-v2/assets/{delete-confirmation-dialog-D18TITKv.js.map → delete-confirmation-dialog-DCmC1ZTD.js.map} +1 -1
  48. prefect/server/ui-v2/assets/deployment-action-header-WD51TIyE.js +2 -0
  49. prefect/server/ui-v2/assets/{deployment-action-header-AamGn0qI.js.map → deployment-action-header-WD51TIyE.js.map} +1 -1
  50. prefect/server/ui-v2/assets/{deployment-form-QIRH-pew.js → deployment-form-FaqDdnNa.js} +3 -3
  51. prefect/server/ui-v2/assets/{deployment-form-QIRH-pew.js.map → deployment-form-FaqDdnNa.js.map} +1 -1
  52. prefect/server/ui-v2/assets/{deployment-links-yTRvIDd3.js → deployment-links-CLax44tW.js} +2 -2
  53. prefect/server/ui-v2/assets/{deployment-links-yTRvIDd3.js.map → deployment-links-CLax44tW.js.map} +1 -1
  54. prefect/server/ui-v2/assets/{deployment._id-CCBPOCfw.js → deployment._id-CbWiylvh.js} +2 -2
  55. prefect/server/ui-v2/assets/{deployment._id-CCBPOCfw.js.map → deployment._id-CbWiylvh.js.map} +1 -1
  56. prefect/server/ui-v2/assets/{deployment._id-m4luvPWl.js → deployment._id-DrtOyhFC.js} +2 -2
  57. prefect/server/ui-v2/assets/{deployment._id-m4luvPWl.js.map → deployment._id-DrtOyhFC.js.map} +1 -1
  58. prefect/server/ui-v2/assets/deployment_._id.duplicate-CqlNWQfz.js +2 -0
  59. prefect/server/ui-v2/assets/{deployment_._id.duplicate-DFjSeYn4.js.map → deployment_._id.duplicate-CqlNWQfz.js.map} +1 -1
  60. prefect/server/ui-v2/assets/deployment_._id.edit-CbvCe2YU.js +2 -0
  61. prefect/server/ui-v2/assets/{deployment_._id.edit-5-mFOphJ.js.map → deployment_._id.edit-CbvCe2YU.js.map} +1 -1
  62. prefect/server/ui-v2/assets/{deployment_._id.run-CwVe5hPJ.js → deployment_._id.run-BnIFeR-d.js} +2 -2
  63. prefect/server/ui-v2/assets/{deployment_._id.run-CwVe5hPJ.js.map → deployment_._id.run-BnIFeR-d.js.map} +1 -1
  64. prefect/server/ui-v2/assets/{dropdown-menu-g64QiYKu.js → dropdown-menu-Bhox1zoa.js} +2 -2
  65. prefect/server/ui-v2/assets/{dropdown-menu-g64QiYKu.js.map → dropdown-menu-Bhox1zoa.js.map} +1 -1
  66. prefect/server/ui-v2/assets/{event-resource-display-BqqHFc0B.js → event-resource-display-65B76oFV.js} +2 -2
  67. prefect/server/ui-v2/assets/{event-resource-display-BqqHFc0B.js.map → event-resource-display-65B76oFV.js.map} +1 -1
  68. prefect/server/ui-v2/assets/{event._eventDate._eventId-BR0eukkm.js → event._eventDate._eventId-CxPjH2H7.js} +2 -2
  69. prefect/server/ui-v2/assets/{event._eventDate._eventId-BR0eukkm.js.map → event._eventDate._eventId-CxPjH2H7.js.map} +1 -1
  70. prefect/server/ui-v2/assets/{flow-run-graph-kZfaIevn.js → flow-run-graph-ZOatFLjv.js} +2 -2
  71. prefect/server/ui-v2/assets/{flow-run-graph-kZfaIevn.js.map → flow-run-graph-ZOatFLjv.js.map} +1 -1
  72. prefect/server/ui-v2/assets/flow-run._id-1RC-URiA.js +2 -0
  73. prefect/server/ui-v2/assets/{flow-run._id-Caq--9Lr.js.map → flow-run._id-1RC-URiA.js.map} +1 -1
  74. prefect/server/ui-v2/assets/flow-run._id-CDFeuz16.js +2 -0
  75. prefect/server/ui-v2/assets/{flow-run._id-DiA0_X5m.js.map → flow-run._id-CDFeuz16.js.map} +1 -1
  76. prefect/server/ui-v2/assets/{flow-run._id-BX0UeXTj.js → flow-run._id-U6rzXfvR.js} +4 -4
  77. prefect/server/ui-v2/assets/{flow-run._id-BX0UeXTj.js.map → flow-run._id-U6rzXfvR.js.map} +1 -1
  78. prefect/server/ui-v2/assets/{flow-runs-pagination-CoZZ-ed_.js → flow-runs-pagination-D_d5hdM0.js} +2 -2
  79. prefect/server/ui-v2/assets/{flow-runs-pagination-CoZZ-ed_.js.map → flow-runs-pagination-D_d5hdM0.js.map} +1 -1
  80. prefect/server/ui-v2/assets/{flow._id-nRzTWzLb.js → flow._id-DkeN8TLS.js} +2 -2
  81. prefect/server/ui-v2/assets/{flow._id-nRzTWzLb.js.map → flow._id-DkeN8TLS.js.map} +1 -1
  82. prefect/server/ui-v2/assets/{form-CdcF42XZ.js → form-CJfDUosd.js} +2 -2
  83. prefect/server/ui-v2/assets/{form-CdcF42XZ.js.map → form-CJfDUosd.js.map} +1 -1
  84. prefect/server/ui-v2/assets/{header-DijI5Lcu.js → header-C5liWcfp.js} +2 -2
  85. prefect/server/ui-v2/assets/{header-DijI5Lcu.js.map → header-C5liWcfp.js.map} +1 -1
  86. prefect/server/ui-v2/assets/{header-DkJo9Uge.js → header-MZZX5lQ8.js} +2 -2
  87. prefect/server/ui-v2/assets/{header-DkJo9Uge.js.map → header-MZZX5lQ8.js.map} +1 -1
  88. prefect/server/ui-v2/assets/{header-DV0gMQER.js → header-vYbWNFdK.js} +2 -2
  89. prefect/server/ui-v2/assets/{header-DV0gMQER.js.map → header-vYbWNFdK.js.map} +1 -1
  90. prefect/server/ui-v2/assets/{index-VUajxmNL.js → index-4xVLy12E.js} +2 -2
  91. prefect/server/ui-v2/assets/{index-VUajxmNL.js.map → index-4xVLy12E.js.map} +1 -1
  92. prefect/server/ui-v2/assets/{index-KlV75baW.js → index-5fQrQZ3K.js} +2 -2
  93. prefect/server/ui-v2/assets/{index-KlV75baW.js.map → index-5fQrQZ3K.js.map} +1 -1
  94. prefect/server/ui-v2/assets/index-7bWZ2Znt.js +2 -0
  95. prefect/server/ui-v2/assets/{index-CqvGvZOq.js.map → index-7bWZ2Znt.js.map} +1 -1
  96. prefect/server/ui-v2/assets/{index-Chtop8D8.js → index-BOVwKiXn.js} +2 -2
  97. prefect/server/ui-v2/assets/{index-Chtop8D8.js.map → index-BOVwKiXn.js.map} +1 -1
  98. prefect/server/ui-v2/assets/{index-BZ9TDxSy.js → index-BPmw935P.js} +2 -2
  99. prefect/server/ui-v2/assets/{index-BZ9TDxSy.js.map → index-BPmw935P.js.map} +1 -1
  100. prefect/server/ui-v2/assets/index-BR6bwuK4.js +2 -0
  101. prefect/server/ui-v2/assets/{index-BCKNs_w7.js.map → index-BR6bwuK4.js.map} +1 -1
  102. prefect/server/ui-v2/assets/{index-DYKO0qOd.js → index-B_3WKH2_.js} +2 -2
  103. prefect/server/ui-v2/assets/{index-DYKO0qOd.js.map → index-B_3WKH2_.js.map} +1 -1
  104. prefect/server/ui-v2/assets/{index-BV3WqCCv.js → index-BgOHAC5L.js} +2 -2
  105. prefect/server/ui-v2/assets/{index-BV3WqCCv.js.map → index-BgOHAC5L.js.map} +1 -1
  106. prefect/server/ui-v2/assets/{index-CUZXozY8.js → index-Bmd9p_xN.js} +2 -2
  107. prefect/server/ui-v2/assets/{index-CUZXozY8.js.map → index-Bmd9p_xN.js.map} +1 -1
  108. prefect/server/ui-v2/assets/{index-faXvGo5k.js → index-BmdTLblr.js} +2 -2
  109. prefect/server/ui-v2/assets/{index-faXvGo5k.js.map → index-BmdTLblr.js.map} +1 -1
  110. prefect/server/ui-v2/assets/{index-Cuh3BwlA.js → index-CCCwtbSq.js} +2 -2
  111. prefect/server/ui-v2/assets/{index-Cuh3BwlA.js.map → index-CCCwtbSq.js.map} +1 -1
  112. prefect/server/ui-v2/assets/{index-yTjygRmH.js → index-CbJNJTr8.js} +2 -2
  113. prefect/server/ui-v2/assets/{index-yTjygRmH.js.map → index-CbJNJTr8.js.map} +1 -1
  114. prefect/server/ui-v2/assets/index-CcyfsgGP.js +2 -0
  115. prefect/server/ui-v2/assets/{index-BijfHkUE.js.map → index-CcyfsgGP.js.map} +1 -1
  116. prefect/server/ui-v2/assets/{index-AXV1ellj.js → index-CfHvTOAO.js} +2 -2
  117. prefect/server/ui-v2/assets/{index-AXV1ellj.js.map → index-CfHvTOAO.js.map} +1 -1
  118. prefect/server/ui-v2/assets/{index-BGZtCgRR.js → index-ClXbR8i0.js} +2 -2
  119. prefect/server/ui-v2/assets/{index-BGZtCgRR.js.map → index-ClXbR8i0.js.map} +1 -1
  120. prefect/server/ui-v2/assets/{index-BfuGBXBN.js → index-Cyw9YHlj.js} +2 -2
  121. prefect/server/ui-v2/assets/{index-BfuGBXBN.js.map → index-Cyw9YHlj.js.map} +1 -1
  122. prefect/server/ui-v2/assets/{index-BZqccBpn.js → index-DLuXqHi9.js} +6 -6
  123. prefect/server/ui-v2/assets/index-DLuXqHi9.js.map +1 -0
  124. prefect/server/ui-v2/assets/{index-BmUvoLOK.js → index-DeeA9nPM.js} +2 -2
  125. prefect/server/ui-v2/assets/{index-BmUvoLOK.js.map → index-DeeA9nPM.js.map} +1 -1
  126. prefect/server/ui-v2/assets/index-MeJBhX-C.js +2 -0
  127. prefect/server/ui-v2/assets/{index-CUJoNEgb.js.map → index-MeJBhX-C.js.map} +1 -1
  128. prefect/server/ui-v2/assets/{index-DO_c3_A_.js → index-enqoJV8x.js} +2 -2
  129. prefect/server/ui-v2/assets/{index-DO_c3_A_.js.map → index-enqoJV8x.js.map} +1 -1
  130. prefect/server/ui-v2/assets/{json-input-DFgWdLGv.js → json-input-CJ1Ipjax.js} +2 -2
  131. prefect/server/ui-v2/assets/{json-input-DFgWdLGv.js.map → json-input-CJ1Ipjax.js.map} +1 -1
  132. prefect/server/ui-v2/assets/{key._key-CpeWM0mN.js → key._key-B0wb5Umi.js} +2 -2
  133. prefect/server/ui-v2/assets/{key._key-CpeWM0mN.js.map → key._key-B0wb5Umi.js.map} +1 -1
  134. prefect/server/ui-v2/assets/{lazy-markdown-Bzi0YUUV.js → lazy-markdown-sP3PYQgB.js} +3 -3
  135. prefect/server/ui-v2/assets/{lazy-markdown-Bzi0YUUV.js.map → lazy-markdown-sP3PYQgB.js.map} +1 -1
  136. prefect/server/ui-v2/assets/{login-CM0nuDdd.js → login-DNY0o3XU.js} +2 -2
  137. prefect/server/ui-v2/assets/{login-CM0nuDdd.js.map → login-DNY0o3XU.js.map} +1 -1
  138. prefect/server/ui-v2/assets/{markdown-input-CGOAnaWz.js → markdown-input-Bos2JYXW.js} +2 -2
  139. prefect/server/ui-v2/assets/{markdown-input-CGOAnaWz.js.map → markdown-input-Bos2JYXW.js.map} +1 -1
  140. prefect/server/ui-v2/assets/{python-example-snippet-CyJ28Tm-.js → python-example-snippet-CWSJRd48.js} +3 -3
  141. prefect/server/ui-v2/assets/{python-example-snippet-CyJ28Tm-.js.map → python-example-snippet-CWSJRd48.js.map} +1 -1
  142. prefect/server/ui-v2/assets/{python-input-D8_x22t4.js → python-input-Bu4995lK.js} +2 -2
  143. prefect/server/ui-v2/assets/{python-input-D8_x22t4.js.map → python-input-Bu4995lK.js.map} +1 -1
  144. prefect/server/ui-v2/assets/{radio-group-Dgu38qwz.js → radio-group-C0D0oLYd.js} +2 -2
  145. prefect/server/ui-v2/assets/{radio-group-Dgu38qwz.js.map → radio-group-C0D0oLYd.js.map} +1 -1
  146. prefect/server/ui-v2/assets/{route-error-state-CVHTggxQ.js → route-error-state-DzKu_Iw_.js} +2 -2
  147. prefect/server/ui-v2/assets/{route-error-state-CVHTggxQ.js.map → route-error-state-DzKu_Iw_.js.map} +1 -1
  148. prefect/server/ui-v2/assets/{schema-form-DqRLX--T.js → schema-form-BD95b0iS.js} +2 -2
  149. prefect/server/ui-v2/assets/schema-form-BD95b0iS.js.map +1 -0
  150. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DuEmswz-.js → schema-form-input-string-format-datetime-DyDs1jNl.js} +4 -4
  151. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-DuEmswz-.js.map → schema-form-input-string-format-datetime-DyDs1jNl.js.map} +1 -1
  152. prefect/server/ui-v2/assets/{settings-CtKmYnoo.js → settings-a90cwhBe.js} +2 -2
  153. prefect/server/ui-v2/assets/{settings-CtKmYnoo.js.map → settings-a90cwhBe.js.map} +1 -1
  154. prefect/server/ui-v2/assets/{sort-filter-BNQ6rjAG.js → sort-filter-CCltjs1E.js} +2 -2
  155. prefect/server/ui-v2/assets/{sort-filter-BNQ6rjAG.js.map → sort-filter-CCltjs1E.js.map} +1 -1
  156. prefect/server/ui-v2/assets/{table-CJS-5Aky.js → table-CrPymfJD.js} +2 -2
  157. prefect/server/ui-v2/assets/{table-CJS-5Aky.js.map → table-CrPymfJD.js.map} +1 -1
  158. prefect/server/ui-v2/assets/{tags-input-CDvuqe9B.js → tags-input-BdNYl8nS.js} +2 -2
  159. prefect/server/ui-v2/assets/{tags-input-CDvuqe9B.js.map → tags-input-BdNYl8nS.js.map} +1 -1
  160. prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-DMqNFEVn.js → task-run-concurrency-limits-reset-dialog-B4bdiAgf.js} +2 -2
  161. prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-DMqNFEVn.js.map → task-run-concurrency-limits-reset-dialog-B4bdiAgf.js.map} +1 -1
  162. prefect/server/ui-v2/assets/{task-run._id-CV5t0LR0.js → task-run._id-BQac40_I.js} +3 -3
  163. prefect/server/ui-v2/assets/{task-run._id-CV5t0LR0.js.map → task-run._id-BQac40_I.js.map} +1 -1
  164. prefect/server/ui-v2/assets/task-run._id-BzeMfM08.js +2 -0
  165. prefect/server/ui-v2/assets/{task-run._id-CiVsXKpy.js.map → task-run._id-BzeMfM08.js.map} +1 -1
  166. prefect/server/ui-v2/assets/task-runs-pagination-WFGIqR6p.js +2 -0
  167. prefect/server/ui-v2/assets/{task-runs-pagination-DGjxL4DO.js.map → task-runs-pagination-WFGIqR6p.js.map} +1 -1
  168. prefect/server/ui-v2/assets/{textarea-Mne2s-1n.js → textarea-CGFflH-n.js} +2 -2
  169. prefect/server/ui-v2/assets/{textarea-Mne2s-1n.js.map → textarea-CGFflH-n.js.map} +1 -1
  170. prefect/server/ui-v2/assets/{timezone-select-CPBtT8tA.js → timezone-select-ClE9nfKA.js} +2 -2
  171. prefect/server/ui-v2/assets/{timezone-select-CPBtT8tA.js.map → timezone-select-ClE9nfKA.js.map} +1 -1
  172. prefect/server/ui-v2/assets/{toggle-group-CvPe0UY1.js → toggle-group-Dnv_LMnU.js} +2 -2
  173. prefect/server/ui-v2/assets/{toggle-group-CvPe0UY1.js.map → toggle-group-Dnv_LMnU.js.map} +1 -1
  174. prefect/server/ui-v2/assets/{use-debounce-callback-Dcf0d0U7.js → use-debounce-callback-CVfZS_LP.js} +2 -2
  175. prefect/server/ui-v2/assets/{use-debounce-callback-Dcf0d0U7.js.map → use-debounce-callback-CVfZS_LP.js.map} +1 -1
  176. prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DnRkM1Cj.js → use-delete-automation-confirmation-dialog-CRGV6wvn.js} +2 -2
  177. prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DnRkM1Cj.js.map → use-delete-automation-confirmation-dialog-CRGV6wvn.js.map} +1 -1
  178. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-CMHtwDvb.js → use-delete-block-document-confirmation-dialog-DNMP_gtr.js} +2 -2
  179. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-CMHtwDvb.js.map → use-delete-block-document-confirmation-dialog-DNMP_gtr.js.map} +1 -1
  180. prefect/server/ui-v2/assets/{use-delete-confirmation-dialog-Bka9YDdO.js → use-delete-confirmation-dialog-C5d6hPL-.js} +2 -2
  181. prefect/server/ui-v2/assets/{use-delete-confirmation-dialog-Bka9YDdO.js.map → use-delete-confirmation-dialog-C5d6hPL-.js.map} +1 -1
  182. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DB4pe2_m.js → use-flow-runs-selected-rows-D3-TVsRL.js} +2 -2
  183. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DB4pe2_m.js.map → use-flow-runs-selected-rows-D3-TVsRL.js.map} +1 -1
  184. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DUPrB7V9.js → use-get-artifacts-flow-task-runs-I3Wb9fOV.js} +2 -2
  185. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DUPrB7V9.js.map → use-get-artifacts-flow-task-runs-I3Wb9fOV.js.map} +1 -1
  186. prefect/server/ui-v2/assets/{use-is-overflowing-Cc-Qm0vx.js → use-is-overflowing-CyVH32I2.js} +2 -2
  187. prefect/server/ui-v2/assets/{use-is-overflowing-Cc-Qm0vx.js.map → use-is-overflowing-CyVH32I2.js.map} +1 -1
  188. prefect/server/ui-v2/assets/{use-page-title-ELpQMkBC.js → use-page-title-CImKMV-D.js} +2 -2
  189. prefect/server/ui-v2/assets/{use-page-title-ELpQMkBC.js.map → use-page-title-CImKMV-D.js.map} +1 -1
  190. prefect/server/ui-v2/assets/use-quick-run-Be-i6Tzi.js +2 -0
  191. prefect/server/ui-v2/assets/{use-quick-run-uAasMmAv.js.map → use-quick-run-Be-i6Tzi.js.map} +1 -1
  192. prefect/server/ui-v2/assets/{use-state-favicon-CzOUYzQe.js → use-state-favicon-DtW_I9k3.js} +2 -2
  193. prefect/server/ui-v2/assets/{use-state-favicon-CzOUYzQe.js.map → use-state-favicon-DtW_I9k3.js.map} +1 -1
  194. prefect/server/ui-v2/assets/{use-stepper-DvHmfROo.js → use-stepper-BSvi_u_j.js} +2 -2
  195. prefect/server/ui-v2/assets/{use-stepper-DvHmfROo.js.map → use-stepper-BSvi_u_j.js.map} +1 -1
  196. prefect/server/ui-v2/assets/{utilities-XA-1-LhA.js → utilities-BCBDUmEl.js} +2 -2
  197. prefect/server/ui-v2/assets/{utilities-XA-1-LhA.js.map → utilities-BCBDUmEl.js.map} +1 -1
  198. prefect/server/ui-v2/assets/{vendor-codemirror-Dn73yRFx.js → vendor-codemirror-OTxfneaa.js} +2 -2
  199. prefect/server/ui-v2/assets/{vendor-codemirror-Dn73yRFx.js.map → vendor-codemirror-OTxfneaa.js.map} +1 -1
  200. prefect/server/ui-v2/assets/{vendor-date-Bxa7CHB1.js → vendor-date-CRz8gtWZ.js} +2 -2
  201. prefect/server/ui-v2/assets/{vendor-date-Bxa7CHB1.js.map → vendor-date-CRz8gtWZ.js.map} +1 -1
  202. prefect/server/ui-v2/assets/{vendor-forms-mroZAMaw.js → vendor-forms-D-iybWES.js} +2 -2
  203. prefect/server/ui-v2/assets/{vendor-forms-mroZAMaw.js.map → vendor-forms-D-iybWES.js.map} +1 -1
  204. prefect/server/ui-v2/assets/{vendor-markdown-BV905mMk.js → vendor-markdown-TdbL8FCd.js} +2 -2
  205. prefect/server/ui-v2/assets/{vendor-markdown-BV905mMk.js.map → vendor-markdown-TdbL8FCd.js.map} +1 -1
  206. prefect/server/ui-v2/assets/{vendor-radix-CP6hQtRc.js → vendor-radix-DRMjKWJW.js} +5 -5
  207. prefect/server/ui-v2/assets/{vendor-radix-CP6hQtRc.js.map → vendor-radix-DRMjKWJW.js.map} +1 -1
  208. prefect/server/ui-v2/assets/{vendor-recharts-BOcghvr2.js → vendor-recharts-BGjDGXVf.js} +2 -2
  209. prefect/server/ui-v2/assets/{vendor-recharts-BOcghvr2.js.map → vendor-recharts-BGjDGXVf.js.map} +1 -1
  210. prefect/server/ui-v2/assets/{vendor-tanstack-CLpbOGYv.js → vendor-tanstack-CWDKYA_B.js} +2 -2
  211. prefect/server/ui-v2/assets/{vendor-tanstack-CLpbOGYv.js.map → vendor-tanstack-CWDKYA_B.js.map} +1 -1
  212. prefect/server/ui-v2/assets/{work-pool-filter-D4DI4Hd5.js → work-pool-filter-BuJB9elW.js} +2 -2
  213. prefect/server/ui-v2/assets/{work-pool-filter-D4DI4Hd5.js.map → work-pool-filter-BuJB9elW.js.map} +1 -1
  214. prefect/server/ui-v2/assets/{work-pool-queue-toggle--tVsqhDi.js → work-pool-queue-toggle-DP2ONU28.js} +2 -2
  215. prefect/server/ui-v2/assets/{work-pool-queue-toggle--tVsqhDi.js.map → work-pool-queue-toggle-DP2ONU28.js.map} +1 -1
  216. prefect/server/ui-v2/assets/{work-pool._workPoolName-Ba0XSN4m.js → work-pool._workPoolName-BjhJe3F4.js} +2 -2
  217. prefect/server/ui-v2/assets/{work-pool._workPoolName-Ba0XSN4m.js.map → work-pool._workPoolName-BjhJe3F4.js.map} +1 -1
  218. prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-lHDf1Aih.js +2 -0
  219. prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-CeYLESXS.js.map → work-pool_._workPoolName.edit-lHDf1Aih.js.map} +1 -1
  220. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js → work-pool_._workPoolName.queue._workQueueName-CLthz7sB.js} +2 -2
  221. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js.map → work-pool_._workPoolName.queue._workQueueName-CLthz7sB.js.map} +1 -1
  222. prefect/server/ui-v2/assets/{work-queue-icon-text-DnQAtUi_.js → work-queue-icon-text-4iEAtZOh.js} +2 -2
  223. prefect/server/ui-v2/assets/{work-queue-icon-text-DnQAtUi_.js.map → work-queue-icon-text-4iEAtZOh.js.map} +1 -1
  224. prefect/server/ui-v2/assets/{zod-cc-7bk3x.js → zod-CjGf5GIv.js} +2 -2
  225. prefect/server/ui-v2/assets/{zod-cc-7bk3x.js.map → zod-CjGf5GIv.js.map} +1 -1
  226. prefect/server/ui-v2/index.html +6 -6
  227. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev4.dist-info}/METADATA +2 -2
  228. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev4.dist-info}/RECORD +231 -231
  229. prefect/server/ui-v2/assets/automation._id-Bm1T3_NO.js +0 -2
  230. prefect/server/ui-v2/assets/block-type-logo-ox5VqJuy.js +0 -2
  231. prefect/server/ui-v2/assets/create-CiMo25er.js +0 -2
  232. prefect/server/ui-v2/assets/cronstrue-CeanGOEE.js +0 -2
  233. prefect/server/ui-v2/assets/cronstrue-CeanGOEE.js.map +0 -1
  234. prefect/server/ui-v2/assets/deployment-action-header-AamGn0qI.js +0 -2
  235. prefect/server/ui-v2/assets/deployment_._id.duplicate-DFjSeYn4.js +0 -2
  236. prefect/server/ui-v2/assets/deployment_._id.edit-5-mFOphJ.js +0 -2
  237. prefect/server/ui-v2/assets/flow-run._id-Caq--9Lr.js +0 -2
  238. prefect/server/ui-v2/assets/flow-run._id-DiA0_X5m.js +0 -2
  239. prefect/server/ui-v2/assets/index-BCKNs_w7.js +0 -2
  240. prefect/server/ui-v2/assets/index-BZqccBpn.js.map +0 -1
  241. prefect/server/ui-v2/assets/index-BijfHkUE.js +0 -2
  242. prefect/server/ui-v2/assets/index-CUJoNEgb.js +0 -2
  243. prefect/server/ui-v2/assets/index-CqvGvZOq.js +0 -2
  244. prefect/server/ui-v2/assets/schema-form-DqRLX--T.js.map +0 -1
  245. prefect/server/ui-v2/assets/task-run._id-CiVsXKpy.js +0 -2
  246. prefect/server/ui-v2/assets/task-runs-pagination-DGjxL4DO.js +0 -2
  247. prefect/server/ui-v2/assets/use-quick-run-uAasMmAv.js +0 -2
  248. prefect/server/ui-v2/assets/work-pool_._workPoolName.edit-CeYLESXS.js +0 -2
  249. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev4.dist-info}/WHEEL +0 -0
  250. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev4.dist-info}/entry_points.txt +0 -0
  251. {prefect-3.6.14.dev3.dist-info → prefect-3.6.14.dev4.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,2 @@
1
+ import{g,j as e,s as F}from"./vendor-tanstack-CWDKYA_B.js";import{dx as B,C,o as S,i as m,p as l,q as p,y as d,B as P,g as J,h as i,bs as u,bB as x,bD as E,dy as L,b_ as W}from"./index-DLuXqHi9.js";import{o as _,r as R,n as I,s as U,u as $,c as D}from"./vendor-forms-D-iybWES.js";import{a as O}from"./zod-CjGf5GIv.js";import{F as Q,b,c as j,d as h,e as y,a as k}from"./form-CJfDUosd.js";import{T as V}from"./textarea-CGFflH-n.js";import{B as q}from"./base-job-template-form-section-CVnxwfEi.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-DRMjKWJW.js";import"./vendor-recharts-BGjDGXVf.js";import"./vendor-date-CRz8gtWZ.js";import"./schema-form-input-string-format-datetime-DyDs1jNl.js";import"./use-debounce-callback-CVfZS_LP.js";import"./toggle-group-Dnv_LMnU.js";import"./timezone-select-ClE9nfKA.js";import"./dropdown-menu-Bhox1zoa.js";import"./schema-form-BD95b0iS.js";const G=_({description:U().nullable().optional(),concurrencyLimit:I().min(0).nullable().optional(),baseJobTemplate:R($()).optional()}),H=({workPool:s})=>{const a=g(),{updateWorkPool:v,isPending:t}=B(),r=D({resolver:O(G),defaultValues:{description:s.description??"",concurrencyLimit:s.concurrency_limit??null,baseJobTemplate:s.base_job_template}}),w=r.watch("baseJobTemplate"),N=s.type!=="prefect-agent",T=()=>{a.history.back()},f=o=>{v({name:s.name,workPool:{description:o.description||null,concurrency_limit:o.concurrencyLimit,base_job_template:o.baseJobTemplate}},{onSuccess:()=>{d.success("Work pool updated"),a.navigate({to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s.name}})},onError:n=>{d.error(`Failed to update work pool: ${n instanceof Error?n.message:"Unknown error"}`)}})};return e.jsx(Q,{...r,children:e.jsxs("form",{onSubmit:o=>{r.handleSubmit(f)(o)},className:"space-y-6",children:[e.jsx(C,{children:e.jsxs(S,{className:"pt-6 space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(m,{htmlFor:"work-pool-name",children:"Name"}),e.jsx(l,{id:"work-pool-name",value:s.name,disabled:!0})]}),e.jsx(b,{control:r.control,name:"description",render:({field:o})=>e.jsxs(j,{children:[e.jsx(h,{children:"Description (Optional)"}),e.jsx(y,{children:e.jsx(V,{...o,value:o.value??"",rows:7,placeholder:"Enter a description for your work pool"})}),e.jsx(k,{})]})}),e.jsx(b,{control:r.control,name:"concurrencyLimit",render:({field:o})=>e.jsxs(j,{children:[e.jsx(h,{children:"Flow Run Concurrency (Optional)"}),e.jsx(y,{children:e.jsx(l,{...o,type:"number",min:0,placeholder:"Unlimited",value:o.value??"",onChange:n=>{const c=n.target.value;o.onChange(c===""?null:Number(c))}})}),e.jsx(k,{})]})}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(m,{htmlFor:"work-pool-type",children:"Type"}),e.jsx(l,{id:"work-pool-type",value:s.type,disabled:!0})]})]})}),N&&e.jsx(q,{baseJobTemplate:w,onBaseJobTemplateChange:o=>{r.setValue("baseJobTemplate",o)}}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(p,{type:"button",variant:"outline",onClick:T,disabled:t,children:"Cancel"}),e.jsx(p,{type:"submit",disabled:t,children:t?"Saving...":"Save"})]})]})})},M=({workPool:s})=>e.jsx("header",{className:"mb-6",children:e.jsx(P,{children:e.jsxs(J,{children:[e.jsx(i,{children:e.jsx(u,{to:"/work-pools",className:"text-xl font-semibold",children:"Work Pools"})}),e.jsx(x,{}),e.jsx(i,{children:e.jsx(u,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s.name},className:"text-xl font-semibold",children:s.name})}),e.jsx(x,{}),e.jsx(i,{className:"text-xl font-semibold",children:e.jsx(E,{children:"Edit"})})]})})});function pe(){const{workPoolName:s}=L.useParams(),{data:a}=F(W(s));return e.jsxs("div",{className:"container max-w-4xl py-6",children:[e.jsx(M,{workPool:a}),e.jsx(H,{workPool:a})]})}export{pe as component};
2
+ //# sourceMappingURL=work-pool_._workPoolName.edit-lHDf1Aih.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-pool_._workPoolName.edit-CeYLESXS.js","sources":["../../src/components/work-pools/edit/schema.ts","../../src/components/work-pools/edit/work-pool-edit-form.tsx","../../src/components/work-pools/edit/work-pool-edit-page-header.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.edit.tsx?tsr-split=component"],"sourcesContent":["import { z } from \"zod\";\nimport type { WorkerBaseJobTemplate } from \"@/components/work-pools/types\";\n\nexport type { WorkerBaseJobTemplate };\n\nexport const workPoolEditSchema = z.object({\n\tdescription: z.string().nullable().optional(),\n\tconcurrencyLimit: z.number().min(0).nullable().optional(),\n\tbaseJobTemplate: z.record(z.unknown()).optional(),\n});\n\nexport type WorkPoolEditFormValues = z.infer<typeof workPoolEditSchema>;\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useRouter } from \"@tanstack/react-router\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport { useUpdateWorkPool, type WorkPool } from \"@/api/work-pools\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent } from \"@/components/ui/card\";\nimport {\n\tForm,\n\tFormControl,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"@/components/ui/form\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { BaseJobTemplateFormSection } from \"../create/infrastructure-configuration-step/base-job-template-form-section\";\nimport {\n\ttype WorkerBaseJobTemplate,\n\ttype WorkPoolEditFormValues,\n\tworkPoolEditSchema,\n} from \"./schema\";\n\ntype WorkPoolEditFormProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditForm = ({ workPool }: WorkPoolEditFormProps) => {\n\tconst router = useRouter();\n\tconst { updateWorkPool, isPending } = useUpdateWorkPool();\n\n\tconst form = useForm<WorkPoolEditFormValues>({\n\t\tresolver: zodResolver(workPoolEditSchema),\n\t\tdefaultValues: {\n\t\t\tdescription: workPool.description ?? \"\",\n\t\t\tconcurrencyLimit: workPool.concurrency_limit ?? null,\n\t\t\tbaseJobTemplate: workPool.base_job_template as Record<string, unknown>,\n\t\t},\n\t});\n\n\tconst baseJobTemplate = form.watch(\"baseJobTemplate\") as\n\t\t| WorkerBaseJobTemplate\n\t\t| undefined;\n\tconst showBaseJobTemplateSection = workPool.type !== \"prefect-agent\";\n\n\tconst handleCancel = () => {\n\t\trouter.history.back();\n\t};\n\n\tconst handleSubmit = (data: WorkPoolEditFormValues) => {\n\t\tupdateWorkPool(\n\t\t\t{\n\t\t\t\tname: workPool.name,\n\t\t\t\tworkPool: {\n\t\t\t\t\tdescription: data.description || null,\n\t\t\t\t\tconcurrency_limit: data.concurrencyLimit,\n\t\t\t\t\tbase_job_template: data.baseJobTemplate,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\ttoast.success(\"Work pool updated\");\n\t\t\t\t\tvoid router.navigate({\n\t\t\t\t\t\tto: \"/work-pools/work-pool/$workPoolName\",\n\t\t\t\t\t\tparams: { workPoolName: workPool.name },\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonError: (error) => {\n\t\t\t\t\ttoast.error(\n\t\t\t\t\t\t`Failed to update work pool: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn (\n\t\t<Form {...form}>\n\t\t\t<form\n\t\t\t\tonSubmit={(e) => void form.handleSubmit(handleSubmit)(e)}\n\t\t\t\tclassName=\"space-y-6\"\n\t\t\t>\n\t\t\t\t<Card>\n\t\t\t\t\t<CardContent className=\"pt-6 space-y-6\">\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-name\">Name</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-name\" value={workPool.name} disabled />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Description (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Textarea\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\trows={7}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter a description for your work pool\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"concurrencyLimit\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Flow Run Concurrency (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Unlimited\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst value = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(value === \"\" ? null : Number(value));\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-type\">Type</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-type\" value={workPool.type} disabled />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CardContent>\n\t\t\t\t</Card>\n\n\t\t\t\t{showBaseJobTemplateSection && (\n\t\t\t\t\t<BaseJobTemplateFormSection\n\t\t\t\t\t\tbaseJobTemplate={baseJobTemplate}\n\t\t\t\t\t\tonBaseJobTemplateChange={(value) => {\n\t\t\t\t\t\t\tform.setValue(\"baseJobTemplate\", value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"flex justify-end gap-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\tdisabled={isPending}\n\t\t\t\t\t>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button type=\"submit\" disabled={isPending}>\n\t\t\t\t\t\t{isPending ? \"Saving...\" : \"Save\"}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</Form>\n\t);\n};\n","import type { WorkPool } from \"@/api/work-pools\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype WorkPoolEditPageHeaderProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditPageHeader = ({\n\tworkPool,\n}: WorkPoolEditPageHeaderProps) => {\n\treturn (\n\t\t<header className=\"mb-6\">\n\t\t\t<Breadcrumb>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName: workPool.name }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPool.name}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>Edit</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t</header>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetWorkPoolQuery } from \"@/api/work-pools/work-pools\";\nimport {\n\tWorkPoolEditForm,\n\tWorkPoolEditPageHeader,\n} from \"@/components/work-pools/edit\";\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/edit\",\n)({\n\tcomponent: RouteComponent,\n\tloader: async ({ context, params }) => {\n\t\tconst { workPoolName } = params;\n\t\treturn context.queryClient.ensureQueryData(\n\t\t\tbuildGetWorkPoolQuery(workPoolName),\n\t\t);\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName } = Route.useParams();\n\tconst { data: workPool } = useSuspenseQuery(\n\t\tbuildGetWorkPoolQuery(workPoolName),\n\t);\n\n\treturn (\n\t\t<div className=\"container max-w-4xl py-6\">\n\t\t\t<WorkPoolEditPageHeader workPool={workPool} />\n\t\t\t<WorkPoolEditForm workPool={workPool} />\n\t\t</div>\n\t);\n}\n"],"names":["workPoolEditSchema","z.object","z.string","z.number","z.record","z.unknown","WorkPoolEditForm","workPool","router","useRouter","updateWorkPool","isPending","useUpdateWorkPool","form","useForm","zodResolver","baseJobTemplate","showBaseJobTemplateSection","handleCancel","handleSubmit","data","toast","error","jsx","Form","jsxs","e","Card","CardContent","Label","Input","FormField","field","FormItem","FormLabel","FormControl","Textarea","FormMessage","value","BaseJobTemplateFormSection","Button","WorkPoolEditPageHeader","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","RouteComponent","workPoolName","Route","useParams","useSuspenseQuery","buildGetWorkPoolQuery"],"mappings":"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"}
1
+ {"version":3,"file":"work-pool_._workPoolName.edit-lHDf1Aih.js","sources":["../../src/components/work-pools/edit/schema.ts","../../src/components/work-pools/edit/work-pool-edit-form.tsx","../../src/components/work-pools/edit/work-pool-edit-page-header.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.edit.tsx?tsr-split=component"],"sourcesContent":["import { z } from \"zod\";\nimport type { WorkerBaseJobTemplate } from \"@/components/work-pools/types\";\n\nexport type { WorkerBaseJobTemplate };\n\nexport const workPoolEditSchema = z.object({\n\tdescription: z.string().nullable().optional(),\n\tconcurrencyLimit: z.number().min(0).nullable().optional(),\n\tbaseJobTemplate: z.record(z.unknown()).optional(),\n});\n\nexport type WorkPoolEditFormValues = z.infer<typeof workPoolEditSchema>;\n","import { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useRouter } from \"@tanstack/react-router\";\nimport { useForm } from \"react-hook-form\";\nimport { toast } from \"sonner\";\nimport { useUpdateWorkPool, type WorkPool } from \"@/api/work-pools\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card, CardContent } from \"@/components/ui/card\";\nimport {\n\tForm,\n\tFormControl,\n\tFormField,\n\tFormItem,\n\tFormLabel,\n\tFormMessage,\n} from \"@/components/ui/form\";\nimport { Input } from \"@/components/ui/input\";\nimport { Label } from \"@/components/ui/label\";\nimport { Textarea } from \"@/components/ui/textarea\";\nimport { BaseJobTemplateFormSection } from \"../create/infrastructure-configuration-step/base-job-template-form-section\";\nimport {\n\ttype WorkerBaseJobTemplate,\n\ttype WorkPoolEditFormValues,\n\tworkPoolEditSchema,\n} from \"./schema\";\n\ntype WorkPoolEditFormProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditForm = ({ workPool }: WorkPoolEditFormProps) => {\n\tconst router = useRouter();\n\tconst { updateWorkPool, isPending } = useUpdateWorkPool();\n\n\tconst form = useForm<WorkPoolEditFormValues>({\n\t\tresolver: zodResolver(workPoolEditSchema),\n\t\tdefaultValues: {\n\t\t\tdescription: workPool.description ?? \"\",\n\t\t\tconcurrencyLimit: workPool.concurrency_limit ?? null,\n\t\t\tbaseJobTemplate: workPool.base_job_template as Record<string, unknown>,\n\t\t},\n\t});\n\n\tconst baseJobTemplate = form.watch(\"baseJobTemplate\") as\n\t\t| WorkerBaseJobTemplate\n\t\t| undefined;\n\tconst showBaseJobTemplateSection = workPool.type !== \"prefect-agent\";\n\n\tconst handleCancel = () => {\n\t\trouter.history.back();\n\t};\n\n\tconst handleSubmit = (data: WorkPoolEditFormValues) => {\n\t\tupdateWorkPool(\n\t\t\t{\n\t\t\t\tname: workPool.name,\n\t\t\t\tworkPool: {\n\t\t\t\t\tdescription: data.description || null,\n\t\t\t\t\tconcurrency_limit: data.concurrencyLimit,\n\t\t\t\t\tbase_job_template: data.baseJobTemplate,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tonSuccess: () => {\n\t\t\t\t\ttoast.success(\"Work pool updated\");\n\t\t\t\t\tvoid router.navigate({\n\t\t\t\t\t\tto: \"/work-pools/work-pool/$workPoolName\",\n\t\t\t\t\t\tparams: { workPoolName: workPool.name },\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonError: (error) => {\n\t\t\t\t\ttoast.error(\n\t\t\t\t\t\t`Failed to update work pool: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t);\n\t};\n\n\treturn (\n\t\t<Form {...form}>\n\t\t\t<form\n\t\t\t\tonSubmit={(e) => void form.handleSubmit(handleSubmit)(e)}\n\t\t\t\tclassName=\"space-y-6\"\n\t\t\t>\n\t\t\t\t<Card>\n\t\t\t\t\t<CardContent className=\"pt-6 space-y-6\">\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-name\">Name</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-name\" value={workPool.name} disabled />\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Description (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Textarea\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\trows={7}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Enter a description for your work pool\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<FormField\n\t\t\t\t\t\t\tcontrol={form.control}\n\t\t\t\t\t\t\tname=\"concurrencyLimit\"\n\t\t\t\t\t\t\trender={({ field }) => (\n\t\t\t\t\t\t\t\t<FormItem>\n\t\t\t\t\t\t\t\t\t<FormLabel>Flow Run Concurrency (Optional)</FormLabel>\n\t\t\t\t\t\t\t\t\t<FormControl>\n\t\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\t\t{...field}\n\t\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\t\tmin={0}\n\t\t\t\t\t\t\t\t\t\t\tplaceholder=\"Unlimited\"\n\t\t\t\t\t\t\t\t\t\t\tvalue={field.value ?? \"\"}\n\t\t\t\t\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\t\t\t\t\tconst value = e.target.value;\n\t\t\t\t\t\t\t\t\t\t\t\tfield.onChange(value === \"\" ? null : Number(value));\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</FormControl>\n\t\t\t\t\t\t\t\t\t<FormMessage />\n\t\t\t\t\t\t\t\t</FormItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t\t<Label htmlFor=\"work-pool-type\">Type</Label>\n\t\t\t\t\t\t\t<Input id=\"work-pool-type\" value={workPool.type} disabled />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</CardContent>\n\t\t\t\t</Card>\n\n\t\t\t\t{showBaseJobTemplateSection && (\n\t\t\t\t\t<BaseJobTemplateFormSection\n\t\t\t\t\t\tbaseJobTemplate={baseJobTemplate}\n\t\t\t\t\t\tonBaseJobTemplateChange={(value) => {\n\t\t\t\t\t\t\tform.setValue(\"baseJobTemplate\", value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t<div className=\"flex justify-end gap-2\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\tonClick={handleCancel}\n\t\t\t\t\t\tdisabled={isPending}\n\t\t\t\t\t>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button type=\"submit\" disabled={isPending}>\n\t\t\t\t\t\t{isPending ? \"Saving...\" : \"Save\"}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</Form>\n\t);\n};\n","import type { WorkPool } from \"@/api/work-pools\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\n\ntype WorkPoolEditPageHeaderProps = {\n\tworkPool: WorkPool;\n};\n\nexport const WorkPoolEditPageHeader = ({\n\tworkPool,\n}: WorkPoolEditPageHeaderProps) => {\n\treturn (\n\t\t<header className=\"mb-6\">\n\t\t\t<Breadcrumb>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName: workPool.name }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPool.name}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>Edit</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t</header>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { buildGetWorkPoolQuery } from \"@/api/work-pools/work-pools\";\nimport {\n\tWorkPoolEditForm,\n\tWorkPoolEditPageHeader,\n} from \"@/components/work-pools/edit\";\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/edit\",\n)({\n\tcomponent: RouteComponent,\n\tloader: async ({ context, params }) => {\n\t\tconst { workPoolName } = params;\n\t\treturn context.queryClient.ensureQueryData(\n\t\t\tbuildGetWorkPoolQuery(workPoolName),\n\t\t);\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName } = Route.useParams();\n\tconst { data: workPool } = useSuspenseQuery(\n\t\tbuildGetWorkPoolQuery(workPoolName),\n\t);\n\n\treturn (\n\t\t<div className=\"container max-w-4xl py-6\">\n\t\t\t<WorkPoolEditPageHeader workPool={workPool} />\n\t\t\t<WorkPoolEditForm workPool={workPool} />\n\t\t</div>\n\t);\n}\n"],"names":["workPoolEditSchema","z.object","z.string","z.number","z.record","z.unknown","WorkPoolEditForm","workPool","router","useRouter","updateWorkPool","isPending","useUpdateWorkPool","form","useForm","zodResolver","baseJobTemplate","showBaseJobTemplateSection","handleCancel","handleSubmit","data","toast","error","jsx","Form","jsxs","e","Card","CardContent","Label","Input","FormField","field","FormItem","FormLabel","FormControl","Textarea","FormMessage","value","BaseJobTemplateFormSection","Button","WorkPoolEditPageHeader","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","RouteComponent","workPoolName","Route","useParams","useSuspenseQuery","buildGetWorkPoolQuery"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as e,r as t,s as g,m as z,p as K}from"./vendor-tanstack-CLpbOGYv.js";import{aW as y,bK as H,bM as T,B as X,g as Y,h as S,bs as Q,bB as D,bD as $,bN as G,aE as P,aC as W,ab as L,O as J,dP as k,dQ as Z,dR as q,c0 as ee,c1 as se,c2 as ae,aw as le,ax as ne,ay as te,az as C,b5 as o}from"./index-BZqccBpn.js";import{W as oe,a as re,b as ie}from"./work-pool-queue-toggle--tVsqhDi.js";import{S as ce,a as E,F as V}from"./flow-runs-pagination-CoZZ-ed_.js";import{o as de,e as ue}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"./dropdown-menu-g64QiYKu.js";import"./zod-cc-7bk3x.js";import"./form-CdcF42XZ.js";import"./textarea-Mne2s-1n.js";import"./delete-confirmation-dialog-D18TITKv.js";const b=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),A=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),h=({children:s,className:a})=>e.jsx("dd",{className:y("text-sm",a),children:s});function me({workPoolName:s,queue:a}){const i=[{field:"Work Pool",ComponentValue:()=>e.jsx(h,{children:s})},{field:"Status",ComponentValue:()=>e.jsx("dd",{children:e.jsx(oe,{status:a.status||"NOT_READY"})})},{field:"Last Polled",ComponentValue:()=>a.last_polled?e.jsx(h,{children:e.jsx(T,{date:a.last_polled})}):e.jsx(h,{className:"text-muted-foreground",children:"Never"})},{field:"Description",ComponentValue:()=>a.description?e.jsx(h,{children:a.description}):null},{field:"Priority",ComponentValue:()=>a.priority!==null&&a.priority!==void 0?e.jsx(h,{children:String(a.priority)}):e.jsx(b,{})}].filter(({ComponentValue:n})=>n()!==null);return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:i.map(({field:n,ComponentValue:u})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(A,{children:n}),e.jsx(u,{})]})},n))})})}function xe({queue:s}){const a=[{field:"Work Queue ID",ComponentValue:()=>s.id?e.jsx(h,{children:s.id}):e.jsx(b,{})},{field:"Flow Run Concurrency",ComponentValue:()=>e.jsx(h,{children:s.concurrency_limit!==null&&s.concurrency_limit!==void 0?String(s.concurrency_limit):"Unlimited"})},{field:"Created",ComponentValue:()=>s.created?e.jsx(h,{children:e.jsx(T,{date:s.created})}):e.jsx(b,{})},{field:"Last Updated",ComponentValue:()=>s.updated?e.jsx(h,{children:e.jsx(T,{date:s.updated})}):e.jsx(b,{})}];return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:a.map(({field:i,ComponentValue:n})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(A,{children:i}),e.jsx(n,{})]})},i))})})}function M({workPoolName:s,queue:a,alternate:i=!1,className:n}){const u=i?"space-y-4":"space-y-6";return e.jsxs("div",{className:y(u,n),children:[e.jsx(me,{workPoolName:s,queue:a}),e.jsx(H,{}),e.jsx(xe,{queue:a})]})}const pe=({workPoolName:s,queue:a,onUpdate:i,className:n})=>e.jsxs("header",{className:y("flex mb-4 flex-row items-center justify-between",n),children:[e.jsx(X,{className:n,children:e.jsxs(Y,{children:[e.jsx(S,{children:e.jsx(Q,{to:"/work-pools",className:"text-xl font-semibold",children:"Work Pools"})}),e.jsx(D,{}),e.jsx(S,{children:e.jsx(Q,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s},className:"text-xl font-semibold",children:s})}),e.jsx(D,{}),e.jsx(S,{className:"text-xl font-semibold",children:e.jsx($,{children:a.name})})]})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(re,{queue:a,onUpdate:i}),e.jsx(ie,{queue:a,onUpdate:i})]})]}),he=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:10,page:1}),[m,w]=t.useState(""),[r,j]=t.useState(new Set),d=G(m,500),N=t.useMemo(()=>{const l={page:n.page,limit:n.limit,sort:"START_TIME_DESC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,n,d,r]),v=t.useMemo(()=>{const l={work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,d,r]),{data:x}=g(P(N)),{data:f}=g(W(v)),p=t.useMemo(()=>[...new Set((x?.results??[]).map(l=>l.flow_id))],[x?.results]),{data:_}=g(L({flows:{operator:"and_",id:{any_:p}},offset:0,sort:"NAME_ASC"},{enabled:p.length>0})),R=t.useMemo(()=>{if(!x?.results)return[];const l=new Map(_?.map(c=>[c.id,c])??[]);return x.results.map(c=>{const F=l.get(c.flow_id);return F?{...c,flow:F}:null}).filter(c=>c!==null)},[x?.results,_]),B=t.useCallback(l=>{w(l.target.value),u(c=>({...c,page:1}))},[]),U=t.useCallback(l=>{u(l)},[]),I=t.useCallback(l=>{j(l),u(c=>({...c,page:1}))},[]),O=t.useCallback(()=>{w(""),j(new Set),u(l=>({...l,page:1}))},[]);return!x||f===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading flow runs..."})}):e.jsxs("div",{className:i,children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:[e.jsx("div",{className:"flex-1",children:e.jsx(J,{placeholder:"Search flow runs by name...",value:m,onChange:B,debounceMs:500})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(ce,{selectedFilters:r,onSelectFilter:I})})]}),e.jsx(E,{flowRuns:R,onClearFilters:R.length===0?O:void 0}),x.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(V,{count:f,pages:x.pages,pagination:n,onChangePagination:U})})]})},fe=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:5,page:1}),m=t.useMemo(()=>({page:n.page,limit:n.limit,sort:"EXPECTED_START_TIME_ASC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name,n]),w=t.useMemo(()=>({work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name]),{data:r}=g(P(m)),{data:j}=g(W(w)),d=t.useMemo(()=>[...new Set((r?.results??[]).map(f=>f.flow_id))],[r?.results]),{data:N}=g(L({flows:{operator:"and_",id:{any_:d}},offset:0,sort:"NAME_ASC"},{enabled:d.length>0})),v=t.useMemo(()=>{if(!r?.results)return[];const f=new Map(N?.map(p=>[p.id,p])??[]);return r.results.map(p=>{const _=f.get(p.flow_id);return _?{...p,flow:_}:null}).filter(p=>p!==null)},[r?.results,N]),x=t.useCallback(f=>{u(f)},[]);return!r||j===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading upcoming runs..."})}):e.jsxs("div",{className:i,children:[e.jsx(E,{flowRuns:v}),r.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(V,{count:j,pages:r.pages,pagination:n,onChangePagination:x})})]})};de({queueTab:ue(["Details","Upcoming Runs","Runs"]).default("Upcoming Runs")});function je(){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(o,{className:"h-4 w-48"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-16"}),e.jsx(o,{className:"h-6 w-24"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-20"}),e.jsx(o,{className:"h-6 w-32"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-24"}),e.jsx(o,{className:"h-6 w-28"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-18"}),e.jsx(o,{className:"h-6 w-36"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(o,{className:"h-5 w-40"}),e.jsx("div",{className:"space-y-2",children:e.jsx(o,{className:"h-32 w-full"})})]})]})}function we(){return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})}function ge(){return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx(o,{className:"h-9 w-full"})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(o,{className:"h-9 w-full"})})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})]})}function Pe(){const{workPoolName:s,workQueueName:a}=k.useParams(),{queueTab:i}=k.useSearch(),n=k.useNavigate(),u=z(),{data:m}=K(Z(s,a)),w=t.useMemo(()=>[{id:"Details",label:"Details",hiddenOnDesktop:!0},{id:"Upcoming Runs",label:"Upcoming Runs",hiddenOnDesktop:!1},{id:"Runs",label:"Runs",hiddenOnDesktop:!1}],[]),r=t.useCallback(d=>{n({to:".",search:{queueTab:d}})},[n]),j=t.useCallback(()=>{u.invalidateQueries({queryKey:q.detail(s,a)})},[u,s,a]);return e.jsx(ee,{children:e.jsxs(se,{children:[e.jsx(ae,{children:e.jsx(pe,{workPoolName:s,queue:m,onUpdate:j})}),e.jsxs("div",{className:"flex flex-col xl:flex-row xl:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs(le,{value:i,onValueChange:r,children:[e.jsx(ne,{className:"flex w-full overflow-x-auto scrollbar-none",children:w.map(d=>e.jsx(te,{value:d.id,className:y("whitespace-nowrap flex-shrink-0",d.hiddenOnDesktop?"xl:hidden":""),children:d.label},d.id))}),e.jsx(C,{value:"Details",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(je,{}),children:e.jsx(M,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Upcoming Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(we,{}),children:e.jsx(fe,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(ge,{}),children:e.jsx(he,{workPoolName:s,queue:m})})})]})}),e.jsx("aside",{className:"w-full xl:w-80 xl:shrink-0 hidden xl:block",children:e.jsx("div",{className:"sticky top-8",children:e.jsx(M,{workPoolName:s,queue:m,alternate:!0})})})]})]})})}export{Pe as component};
2
- //# sourceMappingURL=work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js.map
1
+ import{j as e,r as t,u as g,n as z,s as K}from"./vendor-tanstack-CWDKYA_B.js";import{aW as y,bK as H,bM as T,B as X,g as Y,h as S,bs as Q,bB as D,bD as $,bN as G,aE as P,aC as W,ab as L,O as J,dP as k,dQ as Z,dR as q,c0 as ee,c1 as se,c2 as ae,aw as le,ax as ne,ay as te,az as C,b5 as o}from"./index-DLuXqHi9.js";import{W as oe,a as re,b as ie}from"./work-pool-queue-toggle-DP2ONU28.js";import{S as ce,a as E,F as V}from"./flow-runs-pagination-D_d5hdM0.js";import{o as de,e as ue}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"./dropdown-menu-Bhox1zoa.js";import"./zod-CjGf5GIv.js";import"./form-CJfDUosd.js";import"./textarea-CGFflH-n.js";import"./delete-confirmation-dialog-DCmC1ZTD.js";const b=()=>e.jsx("dd",{className:"text-muted-foreground text-sm",children:"None"}),A=({children:s})=>e.jsx("dt",{className:"text-sm text-muted-foreground",children:s}),h=({children:s,className:a})=>e.jsx("dd",{className:y("text-sm",a),children:s});function me({workPoolName:s,queue:a}){const i=[{field:"Work Pool",ComponentValue:()=>e.jsx(h,{children:s})},{field:"Status",ComponentValue:()=>e.jsx("dd",{children:e.jsx(oe,{status:a.status||"NOT_READY"})})},{field:"Last Polled",ComponentValue:()=>a.last_polled?e.jsx(h,{children:e.jsx(T,{date:a.last_polled})}):e.jsx(h,{className:"text-muted-foreground",children:"Never"})},{field:"Description",ComponentValue:()=>a.description?e.jsx(h,{children:a.description}):null},{field:"Priority",ComponentValue:()=>a.priority!==null&&a.priority!==void 0?e.jsx(h,{children:String(a.priority)}):e.jsx(b,{})}].filter(({ComponentValue:n})=>n()!==null);return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:i.map(({field:n,ComponentValue:u})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(A,{children:n}),e.jsx(u,{})]})},n))})})}function xe({queue:s}){const a=[{field:"Work Queue ID",ComponentValue:()=>s.id?e.jsx(h,{children:s.id}):e.jsx(b,{})},{field:"Flow Run Concurrency",ComponentValue:()=>e.jsx(h,{children:s.concurrency_limit!==null&&s.concurrency_limit!==void 0?String(s.concurrency_limit):"Unlimited"})},{field:"Created",ComponentValue:()=>s.created?e.jsx(h,{children:e.jsx(T,{date:s.created})}):e.jsx(b,{})},{field:"Last Updated",ComponentValue:()=>s.updated?e.jsx(h,{children:e.jsx(T,{date:s.updated})}):e.jsx(b,{})}];return e.jsx("div",{children:e.jsx("ul",{className:"flex flex-col gap-3",children:a.map(({field:i,ComponentValue:n})=>e.jsx("li",{children:e.jsxs("dl",{children:[e.jsx(A,{children:i}),e.jsx(n,{})]})},i))})})}function M({workPoolName:s,queue:a,alternate:i=!1,className:n}){const u=i?"space-y-4":"space-y-6";return e.jsxs("div",{className:y(u,n),children:[e.jsx(me,{workPoolName:s,queue:a}),e.jsx(H,{}),e.jsx(xe,{queue:a})]})}const pe=({workPoolName:s,queue:a,onUpdate:i,className:n})=>e.jsxs("header",{className:y("flex mb-4 flex-row items-center justify-between",n),children:[e.jsx(X,{className:n,children:e.jsxs(Y,{children:[e.jsx(S,{children:e.jsx(Q,{to:"/work-pools",className:"text-xl font-semibold",children:"Work Pools"})}),e.jsx(D,{}),e.jsx(S,{children:e.jsx(Q,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:s},className:"text-xl font-semibold",children:s})}),e.jsx(D,{}),e.jsx(S,{className:"text-xl font-semibold",children:e.jsx($,{children:a.name})})]})}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(re,{queue:a,onUpdate:i}),e.jsx(ie,{queue:a,onUpdate:i})]})]}),he=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:10,page:1}),[m,w]=t.useState(""),[r,j]=t.useState(new Set),d=G(m,500),N=t.useMemo(()=>{const l={page:n.page,limit:n.limit,sort:"START_TIME_DESC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,n,d,r]),v=t.useMemo(()=>{const l={work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}}};if(d.trim()&&(l.flow_runs={operator:"and_",name:{like_:d.trim()}}),r.size>0){const c={state:{operator:"and_",name:{any_:Array.from(r)}}};l.flow_runs?l.flow_runs={...l.flow_runs,...c}:l.flow_runs={operator:"and_",...c}}return l},[s,a.name,d,r]),{data:x}=g(P(N)),{data:f}=g(W(v)),p=t.useMemo(()=>[...new Set((x?.results??[]).map(l=>l.flow_id))],[x?.results]),{data:_}=g(L({flows:{operator:"and_",id:{any_:p}},offset:0,sort:"NAME_ASC"},{enabled:p.length>0})),R=t.useMemo(()=>{if(!x?.results)return[];const l=new Map(_?.map(c=>[c.id,c])??[]);return x.results.map(c=>{const F=l.get(c.flow_id);return F?{...c,flow:F}:null}).filter(c=>c!==null)},[x?.results,_]),B=t.useCallback(l=>{w(l.target.value),u(c=>({...c,page:1}))},[]),U=t.useCallback(l=>{u(l)},[]),I=t.useCallback(l=>{j(l),u(c=>({...c,page:1}))},[]),O=t.useCallback(()=>{w(""),j(new Set),u(l=>({...l,page:1}))},[]);return!x||f===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading flow runs..."})}):e.jsxs("div",{className:i,children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 mb-6",children:[e.jsx("div",{className:"flex-1",children:e.jsx(J,{placeholder:"Search flow runs by name...",value:m,onChange:B,debounceMs:500})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(ce,{selectedFilters:r,onSelectFilter:I})})]}),e.jsx(E,{flowRuns:R,onClearFilters:R.length===0?O:void 0}),x.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(V,{count:f,pages:x.pages,pagination:n,onChangePagination:U})})]})},fe=({workPoolName:s,queue:a,className:i})=>{const[n,u]=t.useState({limit:5,page:1}),m=t.useMemo(()=>({page:n.page,limit:n.limit,sort:"EXPECTED_START_TIME_ASC",work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name,n]),w=t.useMemo(()=>({work_pools:{operator:"and_",name:{any_:[s]}},work_pool_queues:{operator:"and_",name:{any_:[a.name]}},flow_runs:{operator:"and_",state:{operator:"and_",name:{any_:["Scheduled"]}}}}),[s,a.name]),{data:r}=g(P(m)),{data:j}=g(W(w)),d=t.useMemo(()=>[...new Set((r?.results??[]).map(f=>f.flow_id))],[r?.results]),{data:N}=g(L({flows:{operator:"and_",id:{any_:d}},offset:0,sort:"NAME_ASC"},{enabled:d.length>0})),v=t.useMemo(()=>{if(!r?.results)return[];const f=new Map(N?.map(p=>[p.id,p])??[]);return r.results.map(p=>{const _=f.get(p.flow_id);return _?{...p,flow:_}:null}).filter(p=>p!==null)},[r?.results,N]),x=t.useCallback(f=>{u(f)},[]);return!r||j===void 0?e.jsx("div",{className:i,children:e.jsx("div",{className:"text-muted-foreground text-center py-8",children:"Loading upcoming runs..."})}):e.jsxs("div",{className:i,children:[e.jsx(E,{flowRuns:v}),r.pages>1&&e.jsx("div",{className:"mt-6",children:e.jsx(V,{count:j,pages:r.pages,pagination:n,onChangePagination:x})})]})};de({queueTab:ue(["Details","Upcoming Runs","Runs"]).default("Upcoming Runs")});function je(){return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsx(o,{className:"h-4 w-48"}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-16"}),e.jsx(o,{className:"h-6 w-24"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-20"}),e.jsx(o,{className:"h-6 w-32"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-24"}),e.jsx(o,{className:"h-6 w-28"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(o,{className:"h-3 w-18"}),e.jsx(o,{className:"h-6 w-36"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsx(o,{className:"h-5 w-40"}),e.jsx("div",{className:"space-y-2",children:e.jsx(o,{className:"h-32 w-full"})})]})]})}function we(){return e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})}function ge(){return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-col sm:flex-row gap-4",children:[e.jsx("div",{className:"flex-1",children:e.jsx(o,{className:"h-9 w-full"})}),e.jsx("div",{className:"w-full sm:w-64",children:e.jsx(o,{className:"h-9 w-full"})})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"}),e.jsx(o,{className:"h-24 w-full"})]})]})}function Pe(){const{workPoolName:s,workQueueName:a}=k.useParams(),{queueTab:i}=k.useSearch(),n=k.useNavigate(),u=z(),{data:m}=K(Z(s,a)),w=t.useMemo(()=>[{id:"Details",label:"Details",hiddenOnDesktop:!0},{id:"Upcoming Runs",label:"Upcoming Runs",hiddenOnDesktop:!1},{id:"Runs",label:"Runs",hiddenOnDesktop:!1}],[]),r=t.useCallback(d=>{n({to:".",search:{queueTab:d}})},[n]),j=t.useCallback(()=>{u.invalidateQueries({queryKey:q.detail(s,a)})},[u,s,a]);return e.jsx(ee,{children:e.jsxs(se,{children:[e.jsx(ae,{children:e.jsx(pe,{workPoolName:s,queue:m,onUpdate:j})}),e.jsxs("div",{className:"flex flex-col xl:flex-row xl:gap-8",children:[e.jsx("div",{className:"flex-1",children:e.jsxs(le,{value:i,onValueChange:r,children:[e.jsx(ne,{className:"flex w-full overflow-x-auto scrollbar-none",children:w.map(d=>e.jsx(te,{value:d.id,className:y("whitespace-nowrap flex-shrink-0",d.hiddenOnDesktop?"xl:hidden":""),children:d.label},d.id))}),e.jsx(C,{value:"Details",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(je,{}),children:e.jsx(M,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Upcoming Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(we,{}),children:e.jsx(fe,{workPoolName:s,queue:m})})}),e.jsx(C,{value:"Runs",className:"space-y-0",children:e.jsx(t.Suspense,{fallback:e.jsx(ge,{}),children:e.jsx(he,{workPoolName:s,queue:m})})})]})}),e.jsx("aside",{className:"w-full xl:w-80 xl:shrink-0 hidden xl:block",children:e.jsx("div",{className:"sticky top-8",children:e.jsx(M,{workPoolName:s,queue:m,alternate:!0})})})]})]})})}export{Pe as component};
2
+ //# sourceMappingURL=work-pool_._workPoolName.queue._workQueueName-CLthz7sB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-pool_._workPoolName.queue._workQueueName-CHvlnO-U.js","sources":["../../src/components/work-pools/work-pool-queue-details/work-pool-queue-details.tsx","../../src/components/work-pools/work-pool-queue-page-header/work-pool-queue-page-header.tsx","../../src/components/work-pools/work-pool-queue-runs-tab/work-pool-queue-runs-tab.tsx","../../src/components/work-pools/work-pool-queue-upcoming-runs-tab/work-pool-queue-upcoming-runs-tab.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.queue.$workQueueName.tsx?tsr-split=component"],"sourcesContent":["import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FormattedDate } from \"@/components/ui/formatted-date\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { WorkPoolQueueStatusBadge } from \"@/components/work-pools/work-pool-queue-status-badge\";\nimport { cn } from \"@/utils\";\n\ntype WorkPoolQueueDetailsProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\talternate?: boolean;\n\tclassName?: string;\n};\n\n// Helper components for field display\nconst None = () => <dd className=\"text-muted-foreground text-sm\">None</dd>;\nconst FieldLabel = ({ children }: { children: React.ReactNode }) => (\n\t<dt className=\"text-sm text-muted-foreground\">{children}</dt>\n);\nconst FieldValue = ({\n\tchildren,\n\tclassName,\n}: {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}) => <dd className={cn(\"text-sm\", className)}>{children}</dd>;\n\n// Basic Info Section Component\nfunction BasicInfoSection({\n\tworkPoolName,\n\tqueue,\n}: {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n}) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Pool\",\n\t\t\tComponentValue: () => <FieldValue>{workPoolName}</FieldValue>,\n\t\t},\n\t\t{\n\t\t\tfield: \"Status\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<dd>\n\t\t\t\t\t<WorkPoolQueueStatusBadge status={queue.status || \"NOT_READY\"} />\n\t\t\t\t</dd>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Polled\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.last_polled ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.last_polled} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<FieldValue className=\"text-muted-foreground\">Never</FieldValue>\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Description\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.description ? <FieldValue>{queue.description}</FieldValue> : null,\n\t\t},\n\t\t{\n\t\t\tfield: \"Priority\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.priority !== null && queue.priority !== undefined ? (\n\t\t\t\t\t<FieldValue>{String(queue.priority)}</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t].filter(({ ComponentValue }) => ComponentValue() !== null);\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\n// Meta Info Section Component\nfunction MetaInfoSection({ queue }: { queue: WorkPoolQueue }) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Queue ID\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.id ? <FieldValue>{queue.id}</FieldValue> : <None />,\n\t\t},\n\t\t{\n\t\t\tfield: \"Flow Run Concurrency\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<FieldValue>\n\t\t\t\t\t{queue.concurrency_limit !== null &&\n\t\t\t\t\tqueue.concurrency_limit !== undefined\n\t\t\t\t\t\t? String(queue.concurrency_limit)\n\t\t\t\t\t\t: \"Unlimited\"}\n\t\t\t\t</FieldValue>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Created\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.created ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.created} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Updated\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.updated ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.updated} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\nexport function WorkPoolQueueDetails({\n\tworkPoolName,\n\tqueue,\n\talternate = false,\n\tclassName,\n}: WorkPoolQueueDetailsProps) {\n\tconst spacing = alternate ? \"space-y-4\" : \"space-y-6\";\n\n\treturn (\n\t\t<div className={cn(spacing, className)}>\n\t\t\t<BasicInfoSection workPoolName={workPoolName} queue={queue} />\n\t\t\t<Separator />\n\t\t\t<MetaInfoSection queue={queue} />\n\t\t</div>\n\t);\n}\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { cn } from \"@/utils\";\nimport { WorkPoolQueueMenu } from \"../work-pool-queue-menu\";\nimport { WorkPoolQueueToggle } from \"../work-pool-queue-toggle\";\n\nexport type WorkPoolQueuePageHeaderProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueuePageHeader = ({\n\tworkPoolName,\n\tqueue,\n\tonUpdate,\n\tclassName,\n}: WorkPoolQueuePageHeaderProps) => {\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t\"flex mb-4 flex-row items-center justify-between\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Breadcrumb className={className}>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPoolName}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>{queue.name}</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t\t<div className=\"flex items-center space-x-2\">\n\t\t\t\t<WorkPoolQueueToggle queue={queue} onUpdate={onUpdate} />\n\t\t\t\t<WorkPoolQueueMenu queue={queue} onUpdate={onUpdate} />\n\t\t\t</div>\n\t\t</header>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport { StateFilter } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filter\";\nimport type { FlowRunState } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filters.constants\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\nimport { SearchInput } from \"@/components/ui/input\";\nimport useDebounce from \"@/hooks/use-debounce\";\n\ntype WorkPoolQueueRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 10,\n\t\tpage: 1,\n\t});\n\tconst [searchTerm, setSearchTerm] = useState(\"\");\n\tconst [selectedStates, setSelectedStates] = useState<Set<FlowRunState>>(\n\t\tnew Set(),\n\t);\n\n\t// Debounce the search term to avoid too many API calls\n\tconst debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(() => {\n\t\tconst baseFilter: FlowRunsPaginateFilter = {\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"START_TIME_DESC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\t...baseFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseFilter;\n\t}, [\n\t\tworkPoolName,\n\t\tqueue.name,\n\t\tpagination,\n\t\tdebouncedSearchTerm,\n\t\tselectedStates,\n\t]);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(() => {\n\t\tconst baseCountFilter: FlowRunsCountFilter = {\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter to count if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter to count if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseCountFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\t...baseCountFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseCountFilter;\n\t}, [workPoolName, queue.name, debouncedSearchTerm, selectedStates]);\n\n\t// Fetch paginated flow runs data\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\t// Fetch total count for pagination\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\t// Get unique flow IDs for fetching flow details\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\t// Fetch flow details\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\t// Combine flow runs with their corresponding flows\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handleSearchChange = useCallback(\n\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tsetSearchTerm(event.target.value);\n\t\t\t// Reset to first page when searching\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleStateFilterChange = useCallback(\n\t\t(newSelectedStates: Set<FlowRunState>) => {\n\t\t\tsetSelectedStates(newSelectedStates);\n\t\t\t// Reset to first page when filtering\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleClearFilters = useCallback(() => {\n\t\tsetSearchTerm(\"\");\n\t\tsetSelectedStates(new Set());\n\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t}, []);\n\n\t// Show loading only on initial load, not on pagination/filtering changes\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading flow runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{/* Search and Filter Controls */}\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4 mb-6\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tplaceholder=\"Search flow runs by name...\"\n\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\tonChange={handleSearchChange}\n\t\t\t\t\t\tdebounceMs={500}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<StateFilter\n\t\t\t\t\t\tselectedFilters={selectedStates}\n\t\t\t\t\t\tonSelectFilter={handleStateFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Flow Runs List */}\n\t\t\t<FlowRunsList\n\t\t\t\tflowRuns={flowRunsWithFlows}\n\t\t\t\tonClearFilters={\n\t\t\t\t\tflowRunsWithFlows.length === 0 ? handleClearFilters : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{/* Pagination Controls */}\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\n\ntype WorkPoolQueueUpcomingRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueUpcomingRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueUpcomingRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 5,\n\t\tpage: 1,\n\t});\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(\n\t\t() => ({\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"EXPECTED_START_TIME_ASC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name, pagination],\n\t);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(\n\t\t() => ({\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name],\n\t);\n\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading upcoming runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t<FlowRunsList flowRuns={flowRunsWithFlows} />\n\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQueryClient, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { zodValidator } from \"@tanstack/zod-adapter\";\nimport { Suspense, useCallback, useMemo } from \"react\";\nimport { z } from \"zod\";\nimport {\n\tbuildWorkPoolQueueDetailsQuery,\n\tworkPoolQueuesQueryKeyFactory,\n} from \"@/api/work-pool-queues\";\nimport {\n\tLayoutWell,\n\tLayoutWellContent,\n\tLayoutWellHeader,\n} from \"@/components/ui/layout-well\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { WorkPoolQueueDetails } from \"@/components/work-pools/work-pool-queue-details\";\nimport { WorkPoolQueuePageHeader } from \"@/components/work-pools/work-pool-queue-page-header\";\nimport { WorkPoolQueueRunsTab } from \"@/components/work-pools/work-pool-queue-runs-tab\";\nimport { WorkPoolQueueUpcomingRunsTab } from \"@/components/work-pools/work-pool-queue-upcoming-runs-tab\";\nimport { cn } from \"@/utils\";\n\nconst searchParams = z.object({\n\tqueueTab: z\n\t\t.enum([\"Details\", \"Upcoming Runs\", \"Runs\"])\n\t\t.default(\"Upcoming Runs\"),\n});\n\ntype SearchParams = z.infer<typeof searchParams>;\n\nfunction DetailsTabSkeleton() {\n\treturn (\n\t\t<div className=\"space-y-6\">\n\t\t\t<div className=\"space-y-4\">\n\t\t\t\t<Skeleton className=\"h-4 w-48\" />\n\t\t\t\t<div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-16\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-24\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-20\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-32\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-24\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-28\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-18\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-36\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<Skeleton className=\"h-5 w-40\" />\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t<Skeleton className=\"h-32 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction UpcomingRunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t</div>\n\t);\n}\n\nfunction RunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/queue/$workQueueName\",\n)({\n\tvalidateSearch: zodValidator(searchParams),\n\tcomponent: RouteComponent,\n\tloader: async ({ params, context: { queryClient } }) => {\n\t\t// Critical data - must await\n\t\tconst queue = await queryClient.ensureQueryData(\n\t\t\tbuildWorkPoolQueueDetailsQuery(params.workPoolName, params.workQueueName),\n\t\t);\n\n\t\treturn { queue };\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName, workQueueName } = Route.useParams();\n\tconst { queueTab } = Route.useSearch();\n\tconst navigate = Route.useNavigate();\n\tconst queryClient = useQueryClient();\n\n\tconst { data: queue } = useSuspenseQuery(\n\t\tbuildWorkPoolQueueDetailsQuery(workPoolName, workQueueName),\n\t);\n\n\tconst tabs = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: \"Details\",\n\t\t\t\tlabel: \"Details\",\n\t\t\t\thiddenOnDesktop: true, // Hide on xl screens and above\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Upcoming Runs\",\n\t\t\t\tlabel: \"Upcoming Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Runs\",\n\t\t\t\tlabel: \"Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t],\n\t\t[],\n\t);\n\n\tconst handleTabChange = useCallback(\n\t\t(newTab: string) => {\n\t\t\tvoid navigate({\n\t\t\t\tto: \".\",\n\t\t\t\tsearch: { queueTab: newTab as SearchParams[\"queueTab\"] },\n\t\t\t});\n\t\t},\n\t\t[navigate],\n\t);\n\n\tconst handleQueueUpdate = useCallback(() => {\n\t\t// Refresh queue data\n\t\tvoid queryClient.invalidateQueries({\n\t\t\tqueryKey: workPoolQueuesQueryKeyFactory.detail(\n\t\t\t\tworkPoolName,\n\t\t\t\tworkQueueName,\n\t\t\t),\n\t\t});\n\t}, [queryClient, workPoolName, workQueueName]);\n\n\treturn (\n\t\t<LayoutWell>\n\t\t\t<LayoutWellContent>\n\t\t\t\t<LayoutWellHeader>\n\t\t\t\t\t<WorkPoolQueuePageHeader\n\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\tonUpdate={handleQueueUpdate}\n\t\t\t\t\t/>\n\t\t\t\t</LayoutWellHeader>\n\n\t\t\t\t<div className=\"flex flex-col xl:flex-row xl:gap-8\">\n\t\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t\t<Tabs value={queueTab} onValueChange={handleTabChange}>\n\t\t\t\t\t\t\t<TabsList className=\"flex w-full overflow-x-auto scrollbar-none\">\n\t\t\t\t\t\t\t\t{tabs.map((tabItem) => (\n\t\t\t\t\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\t\t\t\t\tkey={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tvalue={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\"whitespace-nowrap flex-shrink-0\",\n\t\t\t\t\t\t\t\t\t\t\ttabItem.hiddenOnDesktop ? \"xl:hidden\" : \"\",\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{tabItem.label}\n\t\t\t\t\t\t\t\t\t</TabsTrigger>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</TabsList>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Details\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<DetailsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Upcoming Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<UpcomingRunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueUpcomingRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<RunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<aside className=\"w-full xl:w-80 xl:shrink-0 hidden xl:block\">\n\t\t\t\t\t\t<div className=\"sticky top-8\">\n\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\talternate\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t</div>\n\t\t\t</LayoutWellContent>\n\t\t</LayoutWell>\n\t);\n}\n"],"names":["None","jsx","FieldLabel","children","FieldValue","className","cn","BasicInfoSection","workPoolName","queue","fields","WorkPoolQueueStatusBadge","FormattedDate","ComponentValue","field","MetaInfoSection","WorkPoolQueueDetails","alternate","spacing","Separator","WorkPoolQueuePageHeader","onUpdate","jsxs","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","WorkPoolQueueToggle","WorkPoolQueueMenu","WorkPoolQueueRunsTab","pagination","setPagination","useState","searchTerm","setSearchTerm","selectedStates","setSelectedStates","debouncedSearchTerm","useDebounce","filter","useMemo","baseFilter","stateFilter","countFilter","baseCountFilter","paginatedData","useQuery","buildPaginateFlowRunsQuery","totalCount","buildCountFlowRunsQuery","flowIds","flowRun","flows","buildListFlowsQuery","flowRunsWithFlows","flowMap","flow","handleSearchChange","useCallback","event","prev","handlePaginationChange","newPagination","handleStateFilterChange","newSelectedStates","handleClearFilters","SearchInput","StateFilter","FlowRunsList","FlowRunsPagination","WorkPoolQueueUpcomingRunsTab","z","queueTab","default","DetailsTabSkeleton","Skeleton","UpcomingRunsTabSkeleton","RunsTabSkeleton","RouteComponent","workQueueName","Route","useParams","useSearch","navigate","useNavigate","queryClient","useQueryClient","data","useSuspenseQuery","buildWorkPoolQueueDetailsQuery","tabs","id","label","hiddenOnDesktop","handleTabChange","newTab","to","search","handleQueueUpdate","invalidateQueries","queryKey","workPoolQueuesQueryKeyFactory","detail","LayoutWell","LayoutWellContent","LayoutWellHeader","Tabs","TabsList","map","TabsTrigger","tabItem","TabsContent","Suspense"],"mappings":"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"}
1
+ {"version":3,"file":"work-pool_._workPoolName.queue._workQueueName-CLthz7sB.js","sources":["../../src/components/work-pools/work-pool-queue-details/work-pool-queue-details.tsx","../../src/components/work-pools/work-pool-queue-page-header/work-pool-queue-page-header.tsx","../../src/components/work-pools/work-pool-queue-runs-tab/work-pool-queue-runs-tab.tsx","../../src/components/work-pools/work-pool-queue-upcoming-runs-tab/work-pool-queue-upcoming-runs-tab.tsx","../../src/routes/work-pools/work-pool_.$workPoolName.queue.$workQueueName.tsx?tsr-split=component"],"sourcesContent":["import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FormattedDate } from \"@/components/ui/formatted-date\";\nimport { Separator } from \"@/components/ui/separator\";\nimport { WorkPoolQueueStatusBadge } from \"@/components/work-pools/work-pool-queue-status-badge\";\nimport { cn } from \"@/utils\";\n\ntype WorkPoolQueueDetailsProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\talternate?: boolean;\n\tclassName?: string;\n};\n\n// Helper components for field display\nconst None = () => <dd className=\"text-muted-foreground text-sm\">None</dd>;\nconst FieldLabel = ({ children }: { children: React.ReactNode }) => (\n\t<dt className=\"text-sm text-muted-foreground\">{children}</dt>\n);\nconst FieldValue = ({\n\tchildren,\n\tclassName,\n}: {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}) => <dd className={cn(\"text-sm\", className)}>{children}</dd>;\n\n// Basic Info Section Component\nfunction BasicInfoSection({\n\tworkPoolName,\n\tqueue,\n}: {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n}) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Pool\",\n\t\t\tComponentValue: () => <FieldValue>{workPoolName}</FieldValue>,\n\t\t},\n\t\t{\n\t\t\tfield: \"Status\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<dd>\n\t\t\t\t\t<WorkPoolQueueStatusBadge status={queue.status || \"NOT_READY\"} />\n\t\t\t\t</dd>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Polled\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.last_polled ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.last_polled} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<FieldValue className=\"text-muted-foreground\">Never</FieldValue>\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Description\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.description ? <FieldValue>{queue.description}</FieldValue> : null,\n\t\t},\n\t\t{\n\t\t\tfield: \"Priority\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.priority !== null && queue.priority !== undefined ? (\n\t\t\t\t\t<FieldValue>{String(queue.priority)}</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t].filter(({ ComponentValue }) => ComponentValue() !== null);\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\n// Meta Info Section Component\nfunction MetaInfoSection({ queue }: { queue: WorkPoolQueue }) {\n\tconst fields = [\n\t\t{\n\t\t\tfield: \"Work Queue ID\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.id ? <FieldValue>{queue.id}</FieldValue> : <None />,\n\t\t},\n\t\t{\n\t\t\tfield: \"Flow Run Concurrency\",\n\t\t\tComponentValue: () => (\n\t\t\t\t<FieldValue>\n\t\t\t\t\t{queue.concurrency_limit !== null &&\n\t\t\t\t\tqueue.concurrency_limit !== undefined\n\t\t\t\t\t\t? String(queue.concurrency_limit)\n\t\t\t\t\t\t: \"Unlimited\"}\n\t\t\t\t</FieldValue>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Created\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.created ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.created} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\tfield: \"Last Updated\",\n\t\t\tComponentValue: () =>\n\t\t\t\tqueue.updated ? (\n\t\t\t\t\t<FieldValue>\n\t\t\t\t\t\t<FormattedDate date={queue.updated} />\n\t\t\t\t\t</FieldValue>\n\t\t\t\t) : (\n\t\t\t\t\t<None />\n\t\t\t\t),\n\t\t},\n\t];\n\n\treturn (\n\t\t<div>\n\t\t\t<ul className=\"flex flex-col gap-3\">\n\t\t\t\t{fields.map(({ field, ComponentValue }) => (\n\t\t\t\t\t<li key={field}>\n\t\t\t\t\t\t<dl>\n\t\t\t\t\t\t\t<FieldLabel>{field}</FieldLabel>\n\t\t\t\t\t\t\t<ComponentValue />\n\t\t\t\t\t\t</dl>\n\t\t\t\t\t</li>\n\t\t\t\t))}\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n\nexport function WorkPoolQueueDetails({\n\tworkPoolName,\n\tqueue,\n\talternate = false,\n\tclassName,\n}: WorkPoolQueueDetailsProps) {\n\tconst spacing = alternate ? \"space-y-4\" : \"space-y-6\";\n\n\treturn (\n\t\t<div className={cn(spacing, className)}>\n\t\t\t<BasicInfoSection workPoolName={workPoolName} queue={queue} />\n\t\t\t<Separator />\n\t\t\t<MetaInfoSection queue={queue} />\n\t\t</div>\n\t);\n}\n","import type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport {\n\tBreadcrumb,\n\tBreadcrumbItem,\n\tBreadcrumbLink,\n\tBreadcrumbList,\n\tBreadcrumbPage,\n\tBreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\";\nimport { cn } from \"@/utils\";\nimport { WorkPoolQueueMenu } from \"../work-pool-queue-menu\";\nimport { WorkPoolQueueToggle } from \"../work-pool-queue-toggle\";\n\nexport type WorkPoolQueuePageHeaderProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tonUpdate?: () => void;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueuePageHeader = ({\n\tworkPoolName,\n\tqueue,\n\tonUpdate,\n\tclassName,\n}: WorkPoolQueuePageHeaderProps) => {\n\treturn (\n\t\t<header\n\t\t\tclassName={cn(\n\t\t\t\t\"flex mb-4 flex-row items-center justify-between\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t<Breadcrumb className={className}>\n\t\t\t\t<BreadcrumbList>\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink to=\"/work-pools\" className=\"text-xl font-semibold\">\n\t\t\t\t\t\t\tWork Pools\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem>\n\t\t\t\t\t\t<BreadcrumbLink\n\t\t\t\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\t\t\t\tparams={{ workPoolName }}\n\t\t\t\t\t\t\tclassName=\"text-xl font-semibold\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{workPoolName}\n\t\t\t\t\t\t</BreadcrumbLink>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t\t<BreadcrumbSeparator />\n\t\t\t\t\t<BreadcrumbItem className=\"text-xl font-semibold\">\n\t\t\t\t\t\t<BreadcrumbPage>{queue.name}</BreadcrumbPage>\n\t\t\t\t\t</BreadcrumbItem>\n\t\t\t\t</BreadcrumbList>\n\t\t\t</Breadcrumb>\n\t\t\t<div className=\"flex items-center space-x-2\">\n\t\t\t\t<WorkPoolQueueToggle queue={queue} onUpdate={onUpdate} />\n\t\t\t\t<WorkPoolQueueMenu queue={queue} onUpdate={onUpdate} />\n\t\t\t</div>\n\t\t</header>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport { StateFilter } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filter\";\nimport type { FlowRunState } from \"@/components/flow-runs/flow-runs-list/flow-runs-filters/state-filters.constants\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\nimport { SearchInput } from \"@/components/ui/input\";\nimport useDebounce from \"@/hooks/use-debounce\";\n\ntype WorkPoolQueueRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 10,\n\t\tpage: 1,\n\t});\n\tconst [searchTerm, setSearchTerm] = useState(\"\");\n\tconst [selectedStates, setSelectedStates] = useState<Set<FlowRunState>>(\n\t\tnew Set(),\n\t);\n\n\t// Debounce the search term to avoid too many API calls\n\tconst debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(() => {\n\t\tconst baseFilter: FlowRunsPaginateFilter = {\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"START_TIME_DESC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\t...baseFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseFilter;\n\t}, [\n\t\tworkPoolName,\n\t\tqueue.name,\n\t\tpagination,\n\t\tdebouncedSearchTerm,\n\t\tselectedStates,\n\t]);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(() => {\n\t\tconst baseCountFilter: FlowRunsCountFilter = {\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t};\n\n\t\t// Add search filter to count if search term exists\n\t\tif (debouncedSearchTerm.trim()) {\n\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { like_: debouncedSearchTerm.trim() },\n\t\t\t};\n\t\t}\n\n\t\t// Add state filter to count if states are selected\n\t\tif (selectedStates.size > 0) {\n\t\t\tconst stateFilter = {\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\" as const,\n\t\t\t\t\tname: { any_: Array.from(selectedStates) },\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tif (baseCountFilter.flow_runs) {\n\t\t\t\t// Merge with existing flow_runs filter\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\t...baseCountFilter.flow_runs,\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tbaseCountFilter.flow_runs = {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\t...stateFilter,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn baseCountFilter;\n\t}, [workPoolName, queue.name, debouncedSearchTerm, selectedStates]);\n\n\t// Fetch paginated flow runs data\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\t// Fetch total count for pagination\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\t// Get unique flow IDs for fetching flow details\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\t// Fetch flow details\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\t// Combine flow runs with their corresponding flows\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handleSearchChange = useCallback(\n\t\t(event: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tsetSearchTerm(event.target.value);\n\t\t\t// Reset to first page when searching\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleStateFilterChange = useCallback(\n\t\t(newSelectedStates: Set<FlowRunState>) => {\n\t\t\tsetSelectedStates(newSelectedStates);\n\t\t\t// Reset to first page when filtering\n\t\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleClearFilters = useCallback(() => {\n\t\tsetSearchTerm(\"\");\n\t\tsetSelectedStates(new Set());\n\t\tsetPagination((prev) => ({ ...prev, page: 1 }));\n\t}, []);\n\n\t// Show loading only on initial load, not on pagination/filtering changes\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading flow runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{/* Search and Filter Controls */}\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4 mb-6\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<SearchInput\n\t\t\t\t\t\tplaceholder=\"Search flow runs by name...\"\n\t\t\t\t\t\tvalue={searchTerm}\n\t\t\t\t\t\tonChange={handleSearchChange}\n\t\t\t\t\t\tdebounceMs={500}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<StateFilter\n\t\t\t\t\t\tselectedFilters={selectedStates}\n\t\t\t\t\t\tonSelectFilter={handleStateFilterChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Flow Runs List */}\n\t\t\t<FlowRunsList\n\t\t\t\tflowRuns={flowRunsWithFlows}\n\t\t\t\tonClearFilters={\n\t\t\t\t\tflowRunsWithFlows.length === 0 ? handleClearFilters : undefined\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{/* Pagination Controls */}\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport {\n\tbuildCountFlowRunsQuery,\n\tbuildPaginateFlowRunsQuery,\n\ttype FlowRunsCountFilter,\n\ttype FlowRunsPaginateFilter,\n\ttype FlowRunWithFlow,\n} from \"@/api/flow-runs\";\nimport { buildListFlowsQuery, type Flow } from \"@/api/flows\";\nimport type { WorkPoolQueue } from \"@/api/work-pool-queues\";\nimport { FlowRunsList } from \"@/components/flow-runs/flow-runs-list\";\nimport {\n\tFlowRunsPagination,\n\ttype PaginationState,\n} from \"@/components/flow-runs/flow-runs-list/flow-runs-pagination\";\n\ntype WorkPoolQueueUpcomingRunsTabProps = {\n\tworkPoolName: string;\n\tqueue: WorkPoolQueue;\n\tclassName?: string;\n};\n\nexport const WorkPoolQueueUpcomingRunsTab = ({\n\tworkPoolName,\n\tqueue,\n\tclassName,\n}: WorkPoolQueueUpcomingRunsTabProps) => {\n\tconst [pagination, setPagination] = useState<PaginationState>({\n\t\tlimit: 5,\n\t\tpage: 1,\n\t});\n\n\tconst filter: FlowRunsPaginateFilter = useMemo(\n\t\t() => ({\n\t\t\tpage: pagination.page,\n\t\t\tlimit: pagination.limit,\n\t\t\tsort: \"EXPECTED_START_TIME_ASC\",\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name, pagination],\n\t);\n\n\tconst countFilter: FlowRunsCountFilter = useMemo(\n\t\t() => ({\n\t\t\twork_pools: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [workPoolName] },\n\t\t\t},\n\t\t\twork_pool_queues: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tname: { any_: [queue.name] },\n\t\t\t},\n\t\t\tflow_runs: {\n\t\t\t\toperator: \"and_\",\n\t\t\t\tstate: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tname: { any_: [\"Scheduled\"] },\n\t\t\t\t},\n\t\t\t},\n\t\t}),\n\t\t[workPoolName, queue.name],\n\t);\n\n\tconst { data: paginatedData } = useQuery(buildPaginateFlowRunsQuery(filter));\n\n\tconst { data: totalCount } = useQuery(buildCountFlowRunsQuery(countFilter));\n\n\tconst flowIds = useMemo(\n\t\t() => [\n\t\t\t...new Set(\n\t\t\t\t(paginatedData?.results ?? []).map((flowRun) => flowRun.flow_id),\n\t\t\t),\n\t\t],\n\t\t[paginatedData?.results],\n\t);\n\n\tconst { data: flows } = useQuery(\n\t\tbuildListFlowsQuery(\n\t\t\t{\n\t\t\t\tflows: {\n\t\t\t\t\toperator: \"and_\",\n\t\t\t\t\tid: { any_: flowIds },\n\t\t\t\t},\n\t\t\t\toffset: 0,\n\t\t\t\tsort: \"NAME_ASC\",\n\t\t\t},\n\t\t\t{ enabled: flowIds.length > 0 },\n\t\t),\n\t);\n\n\tconst flowRunsWithFlows = useMemo(() => {\n\t\tif (!paginatedData?.results) return [];\n\t\tconst flowMap = new Map(flows?.map((flow: Flow) => [flow.id, flow]) ?? []);\n\t\treturn paginatedData.results\n\t\t\t.map((flowRun) => {\n\t\t\t\tconst flow = flowMap.get(flowRun.flow_id);\n\t\t\t\tif (!flow) return null;\n\t\t\t\treturn {\n\t\t\t\t\t...flowRun,\n\t\t\t\t\tflow,\n\t\t\t\t};\n\t\t\t})\n\t\t\t.filter((flowRun) => flowRun !== null) as FlowRunWithFlow[];\n\t}, [paginatedData?.results, flows]);\n\n\tconst handlePaginationChange = useCallback(\n\t\t(newPagination: PaginationState) => {\n\t\t\tsetPagination(newPagination);\n\t\t},\n\t\t[],\n\t);\n\n\tif (!paginatedData || totalCount === undefined) {\n\t\treturn (\n\t\t\t<div className={className}>\n\t\t\t\t<div className=\"text-muted-foreground text-center py-8\">\n\t\t\t\t\tLoading upcoming runs...\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t<FlowRunsList flowRuns={flowRunsWithFlows} />\n\n\t\t\t{paginatedData.pages > 1 && (\n\t\t\t\t<div className=\"mt-6\">\n\t\t\t\t\t<FlowRunsPagination\n\t\t\t\t\t\tcount={totalCount}\n\t\t\t\t\t\tpages={paginatedData.pages}\n\t\t\t\t\t\tpagination={pagination}\n\t\t\t\t\t\tonChangePagination={handlePaginationChange}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import { useQueryClient, useSuspenseQuery } from \"@tanstack/react-query\";\nimport { createFileRoute } from \"@tanstack/react-router\";\nimport { zodValidator } from \"@tanstack/zod-adapter\";\nimport { Suspense, useCallback, useMemo } from \"react\";\nimport { z } from \"zod\";\nimport {\n\tbuildWorkPoolQueueDetailsQuery,\n\tworkPoolQueuesQueryKeyFactory,\n} from \"@/api/work-pool-queues\";\nimport {\n\tLayoutWell,\n\tLayoutWellContent,\n\tLayoutWellHeader,\n} from \"@/components/ui/layout-well\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { WorkPoolQueueDetails } from \"@/components/work-pools/work-pool-queue-details\";\nimport { WorkPoolQueuePageHeader } from \"@/components/work-pools/work-pool-queue-page-header\";\nimport { WorkPoolQueueRunsTab } from \"@/components/work-pools/work-pool-queue-runs-tab\";\nimport { WorkPoolQueueUpcomingRunsTab } from \"@/components/work-pools/work-pool-queue-upcoming-runs-tab\";\nimport { cn } from \"@/utils\";\n\nconst searchParams = z.object({\n\tqueueTab: z\n\t\t.enum([\"Details\", \"Upcoming Runs\", \"Runs\"])\n\t\t.default(\"Upcoming Runs\"),\n});\n\ntype SearchParams = z.infer<typeof searchParams>;\n\nfunction DetailsTabSkeleton() {\n\treturn (\n\t\t<div className=\"space-y-6\">\n\t\t\t<div className=\"space-y-4\">\n\t\t\t\t<Skeleton className=\"h-4 w-48\" />\n\t\t\t\t<div className=\"grid grid-cols-1 md:grid-cols-2 gap-4\">\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-16\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-24\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-20\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-32\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-24\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-28\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t\t<Skeleton className=\"h-3 w-18\" />\n\t\t\t\t\t\t<Skeleton className=\"h-6 w-36\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"space-y-3\">\n\t\t\t\t<Skeleton className=\"h-5 w-40\" />\n\t\t\t\t<div className=\"space-y-2\">\n\t\t\t\t\t<Skeleton className=\"h-32 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction UpcomingRunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t</div>\n\t);\n}\n\nfunction RunsTabSkeleton() {\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div className=\"flex flex-col sm:flex-row gap-4\">\n\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"w-full sm:w-64\">\n\t\t\t\t\t<Skeleton className=\"h-9 w-full\" />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t\t<Skeleton className=\"h-24 w-full\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nexport const Route = createFileRoute(\n\t\"/work-pools/work-pool_/$workPoolName/queue/$workQueueName\",\n)({\n\tvalidateSearch: zodValidator(searchParams),\n\tcomponent: RouteComponent,\n\tloader: async ({ params, context: { queryClient } }) => {\n\t\t// Critical data - must await\n\t\tconst queue = await queryClient.ensureQueryData(\n\t\t\tbuildWorkPoolQueueDetailsQuery(params.workPoolName, params.workQueueName),\n\t\t);\n\n\t\treturn { queue };\n\t},\n\twrapInSuspense: true,\n});\n\nfunction RouteComponent() {\n\tconst { workPoolName, workQueueName } = Route.useParams();\n\tconst { queueTab } = Route.useSearch();\n\tconst navigate = Route.useNavigate();\n\tconst queryClient = useQueryClient();\n\n\tconst { data: queue } = useSuspenseQuery(\n\t\tbuildWorkPoolQueueDetailsQuery(workPoolName, workQueueName),\n\t);\n\n\tconst tabs = useMemo(\n\t\t() => [\n\t\t\t{\n\t\t\t\tid: \"Details\",\n\t\t\t\tlabel: \"Details\",\n\t\t\t\thiddenOnDesktop: true, // Hide on xl screens and above\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Upcoming Runs\",\n\t\t\t\tlabel: \"Upcoming Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"Runs\",\n\t\t\t\tlabel: \"Runs\",\n\t\t\t\thiddenOnDesktop: false,\n\t\t\t},\n\t\t],\n\t\t[],\n\t);\n\n\tconst handleTabChange = useCallback(\n\t\t(newTab: string) => {\n\t\t\tvoid navigate({\n\t\t\t\tto: \".\",\n\t\t\t\tsearch: { queueTab: newTab as SearchParams[\"queueTab\"] },\n\t\t\t});\n\t\t},\n\t\t[navigate],\n\t);\n\n\tconst handleQueueUpdate = useCallback(() => {\n\t\t// Refresh queue data\n\t\tvoid queryClient.invalidateQueries({\n\t\t\tqueryKey: workPoolQueuesQueryKeyFactory.detail(\n\t\t\t\tworkPoolName,\n\t\t\t\tworkQueueName,\n\t\t\t),\n\t\t});\n\t}, [queryClient, workPoolName, workQueueName]);\n\n\treturn (\n\t\t<LayoutWell>\n\t\t\t<LayoutWellContent>\n\t\t\t\t<LayoutWellHeader>\n\t\t\t\t\t<WorkPoolQueuePageHeader\n\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\tonUpdate={handleQueueUpdate}\n\t\t\t\t\t/>\n\t\t\t\t</LayoutWellHeader>\n\n\t\t\t\t<div className=\"flex flex-col xl:flex-row xl:gap-8\">\n\t\t\t\t\t<div className=\"flex-1\">\n\t\t\t\t\t\t<Tabs value={queueTab} onValueChange={handleTabChange}>\n\t\t\t\t\t\t\t<TabsList className=\"flex w-full overflow-x-auto scrollbar-none\">\n\t\t\t\t\t\t\t\t{tabs.map((tabItem) => (\n\t\t\t\t\t\t\t\t\t<TabsTrigger\n\t\t\t\t\t\t\t\t\t\tkey={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tvalue={tabItem.id}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\"whitespace-nowrap flex-shrink-0\",\n\t\t\t\t\t\t\t\t\t\t\ttabItem.hiddenOnDesktop ? \"xl:hidden\" : \"\",\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{tabItem.label}\n\t\t\t\t\t\t\t\t\t</TabsTrigger>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</TabsList>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Details\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<DetailsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Upcoming Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<UpcomingRunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueUpcomingRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\n\t\t\t\t\t\t\t<TabsContent value=\"Runs\" className=\"space-y-0\">\n\t\t\t\t\t\t\t\t<Suspense fallback={<RunsTabSkeleton />}>\n\t\t\t\t\t\t\t\t\t<WorkPoolQueueRunsTab\n\t\t\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t\t\t</TabsContent>\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<aside className=\"w-full xl:w-80 xl:shrink-0 hidden xl:block\">\n\t\t\t\t\t\t<div className=\"sticky top-8\">\n\t\t\t\t\t\t\t<WorkPoolQueueDetails\n\t\t\t\t\t\t\t\tworkPoolName={workPoolName}\n\t\t\t\t\t\t\t\tqueue={queue}\n\t\t\t\t\t\t\t\talternate\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</aside>\n\t\t\t\t</div>\n\t\t\t</LayoutWellContent>\n\t\t</LayoutWell>\n\t);\n}\n"],"names":["None","jsx","FieldLabel","children","FieldValue","className","cn","BasicInfoSection","workPoolName","queue","fields","WorkPoolQueueStatusBadge","FormattedDate","ComponentValue","field","MetaInfoSection","WorkPoolQueueDetails","alternate","spacing","Separator","WorkPoolQueuePageHeader","onUpdate","jsxs","Breadcrumb","BreadcrumbList","BreadcrumbItem","BreadcrumbLink","BreadcrumbSeparator","BreadcrumbPage","WorkPoolQueueToggle","WorkPoolQueueMenu","WorkPoolQueueRunsTab","pagination","setPagination","useState","searchTerm","setSearchTerm","selectedStates","setSelectedStates","debouncedSearchTerm","useDebounce","filter","useMemo","baseFilter","stateFilter","countFilter","baseCountFilter","paginatedData","useQuery","buildPaginateFlowRunsQuery","totalCount","buildCountFlowRunsQuery","flowIds","flowRun","flows","buildListFlowsQuery","flowRunsWithFlows","flowMap","flow","handleSearchChange","useCallback","event","prev","handlePaginationChange","newPagination","handleStateFilterChange","newSelectedStates","handleClearFilters","SearchInput","StateFilter","FlowRunsList","FlowRunsPagination","WorkPoolQueueUpcomingRunsTab","z","queueTab","default","DetailsTabSkeleton","Skeleton","UpcomingRunsTabSkeleton","RunsTabSkeleton","RouteComponent","workQueueName","Route","useParams","useSearch","navigate","useNavigate","queryClient","useQueryClient","data","useSuspenseQuery","buildWorkPoolQueueDetailsQuery","tabs","id","label","hiddenOnDesktop","handleTabChange","newTab","to","search","handleQueueUpdate","invalidateQueries","queryKey","workPoolQueuesQueryKeyFactory","detail","LayoutWell","LayoutWellContent","LayoutWellHeader","Tabs","TabsList","map","TabsTrigger","tabItem","TabsContent","Suspense"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{j as s,r as i,p as x,L as n}from"./vendor-tanstack-CLpbOGYv.js";import{b5 as m,ao as d,I as c,db as p}from"./index-BZqccBpn.js";import{a as f}from"./index-faXvGo5k.js";const Q=({flowId:e})=>s.jsx(i.Suspense,{fallback:s.jsx(m,{className:"h-4 w-full"}),children:s.jsx(j,{flowId:e})}),j=({flowId:e})=>{const{data:a}=x(d(e));return s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:["Flow",s.jsxs(n,{to:"/flows/flow/$id",params:{id:a.id},className:"flex items-center gap-1",children:[s.jsx(c,{id:"Workflow",className:"size-4"}),a.name]})]})},I=({workPoolName:e})=>s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:["Work Pool",s.jsxs(n,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:e},className:"flex items-center gap-1",children:[s.jsx(c,{id:"Cpu",className:"size-4"}),e]})]}),L=({workPoolName:e,workQueueName:a,showLabel:o=!1,showStatus:l=!1,className:r,iconSize:t})=>s.jsx(i.Suspense,{fallback:s.jsx(m,{className:"h-4 w-full"}),children:s.jsx(k,{workPoolName:e,workQueueName:a,showLabel:o,showStatus:l,className:r,iconSize:t})}),k=({workPoolName:e,workQueueName:a,showLabel:o,showStatus:l,className:r,iconSize:t})=>{const{data:u}=x(p(e,a));return s.jsx(w,{workQueue:u,workPoolName:e,showLabel:o,showStatus:l,className:r,iconSize:t})},w=({workQueue:e,workPoolName:a,showLabel:o=!1,showStatus:l=!1,className:r,iconSize:t})=>s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[o&&s.jsx("span",{children:"Work Queue"}),s.jsxs(n,{to:"/work-pools/work-pool/$workPoolName/queue/$workQueueName",params:{workPoolName:a,workQueueName:e.name},className:r??"flex items-center gap-1",children:[s.jsx(c,{id:"ListOrdered",size:t,className:t?void 0:"size-4"}),e.name]}),l&&e.status&&s.jsx(f,{status:e.status})]});export{Q as F,L as W,I as a};
2
- //# sourceMappingURL=work-queue-icon-text-DnQAtUi_.js.map
1
+ import{j as s,r as i,s as x,L as n}from"./vendor-tanstack-CWDKYA_B.js";import{b5 as m,ao as d,I as c,db as p}from"./index-DLuXqHi9.js";import{a as f}from"./index-BmdTLblr.js";const Q=({flowId:e})=>s.jsx(i.Suspense,{fallback:s.jsx(m,{className:"h-4 w-full"}),children:s.jsx(j,{flowId:e})}),j=({flowId:e})=>{const{data:a}=x(d(e));return s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:["Flow",s.jsxs(n,{to:"/flows/flow/$id",params:{id:a.id},className:"flex items-center gap-1",children:[s.jsx(c,{id:"Workflow",className:"size-4"}),a.name]})]})},I=({workPoolName:e})=>s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:["Work Pool",s.jsxs(n,{to:"/work-pools/work-pool/$workPoolName",params:{workPoolName:e},className:"flex items-center gap-1",children:[s.jsx(c,{id:"Cpu",className:"size-4"}),e]})]}),L=({workPoolName:e,workQueueName:a,showLabel:o=!1,showStatus:l=!1,className:r,iconSize:t})=>s.jsx(i.Suspense,{fallback:s.jsx(m,{className:"h-4 w-full"}),children:s.jsx(k,{workPoolName:e,workQueueName:a,showLabel:o,showStatus:l,className:r,iconSize:t})}),k=({workPoolName:e,workQueueName:a,showLabel:o,showStatus:l,className:r,iconSize:t})=>{const{data:u}=x(p(e,a));return s.jsx(w,{workQueue:u,workPoolName:e,showLabel:o,showStatus:l,className:r,iconSize:t})},w=({workQueue:e,workPoolName:a,showLabel:o=!1,showStatus:l=!1,className:r,iconSize:t})=>s.jsxs("div",{className:"flex items-center gap-1 text-xs",children:[o&&s.jsx("span",{children:"Work Queue"}),s.jsxs(n,{to:"/work-pools/work-pool/$workPoolName/queue/$workQueueName",params:{workPoolName:a,workQueueName:e.name},className:r??"flex items-center gap-1",children:[s.jsx(c,{id:"ListOrdered",size:t,className:t?void 0:"size-4"}),e.name]}),l&&e.status&&s.jsx(f,{status:e.status})]});export{Q as F,L as W,I as a};
2
+ //# sourceMappingURL=work-queue-icon-text-4iEAtZOh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"work-queue-icon-text-DnQAtUi_.js","sources":["../../src/components/flows/flow-link.tsx","../../src/components/work-pools/work-pool-link.tsx","../../src/components/work-pools/work-queue-icon-text/work-queue-icon-text.tsx"],"sourcesContent":["import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Link } from \"@tanstack/react-router\";\nimport { Suspense } from \"react\";\nimport { buildFLowDetailsQuery } from \"@/api/flows\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\ntype FlowLinkProps = {\n\tflowId: string;\n};\n\nexport const FlowLink = ({ flowId }: FlowLinkProps) => {\n\treturn (\n\t\t<Suspense fallback={<Skeleton className=\"h-4 w-full\" />}>\n\t\t\t<FlowLinkImplementation flowId={flowId} />\n\t\t</Suspense>\n\t);\n};\n\nconst FlowLinkImplementation = ({ flowId }: FlowLinkProps) => {\n\tconst { data: flow } = useSuspenseQuery(buildFLowDetailsQuery(flowId));\n\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\tFlow\n\t\t\t<Link\n\t\t\t\tto=\"/flows/flow/$id\"\n\t\t\t\tparams={{ id: flow.id }}\n\t\t\t\tclassName=\"flex items-center gap-1\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Workflow\" className=\"size-4\" />\n\t\t\t\t{flow.name}\n\t\t\t</Link>\n\t\t</div>\n\t);\n};\n","import { Link } from \"@tanstack/react-router\";\nimport { Icon } from \"@/components/ui/icons\";\n\ntype WorkPoolLinkProps = {\n\tworkPoolName: string;\n};\n\nexport const WorkPoolLink = ({ workPoolName }: WorkPoolLinkProps) => {\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\tWork Pool\n\t\t\t<Link\n\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\tparams={{ workPoolName }}\n\t\t\t\tclassName=\"flex items-center gap-1\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Cpu\" className=\"size-4\" />\n\t\t\t\t{workPoolName}\n\t\t\t</Link>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Link } from \"@tanstack/react-router\";\nimport { Suspense } from \"react\";\nimport { buildWorkQueueDetailsQuery, type WorkQueue } from \"@/api/work-queues\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { StatusIcon } from \"@/components/ui/status-badge\";\n\ntype WorkQueueIconTextBaseProps = {\n\tworkPoolName: string;\n\tworkQueueName: string;\n\tshowLabel?: boolean;\n\tshowStatus?: boolean;\n\tclassName?: string;\n\ticonSize?: number;\n};\n\ntype WorkQueueIconTextProps = WorkQueueIconTextBaseProps;\n\nexport const WorkQueueIconText = ({\n\tworkPoolName,\n\tworkQueueName,\n\tshowLabel = false,\n\tshowStatus = false,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextProps) => (\n\t<Suspense fallback={<Skeleton className=\"h-4 w-full\" />}>\n\t\t<WorkQueueIconTextFetched\n\t\t\tworkPoolName={workPoolName}\n\t\t\tworkQueueName={workQueueName}\n\t\t\tshowLabel={showLabel}\n\t\t\tshowStatus={showStatus}\n\t\t\tclassName={className}\n\t\t\ticonSize={iconSize}\n\t\t/>\n\t</Suspense>\n);\n\nconst WorkQueueIconTextFetched = ({\n\tworkPoolName,\n\tworkQueueName,\n\tshowLabel,\n\tshowStatus,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextBaseProps) => {\n\tconst { data: workQueue } = useSuspenseQuery(\n\t\tbuildWorkQueueDetailsQuery(workPoolName, workQueueName),\n\t);\n\n\treturn (\n\t\t<WorkQueueIconTextPresentational\n\t\t\tworkQueue={workQueue}\n\t\t\tworkPoolName={workPoolName}\n\t\t\tshowLabel={showLabel}\n\t\t\tshowStatus={showStatus}\n\t\t\tclassName={className}\n\t\t\ticonSize={iconSize}\n\t\t/>\n\t);\n};\n\ntype WorkQueueIconTextPresentationalProps = {\n\tworkQueue: WorkQueue;\n\tworkPoolName: string;\n\tshowLabel?: boolean;\n\tshowStatus?: boolean;\n\tclassName?: string;\n\ticonSize?: number;\n};\n\nconst WorkQueueIconTextPresentational = ({\n\tworkQueue,\n\tworkPoolName,\n\tshowLabel = false,\n\tshowStatus = false,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextPresentationalProps) => {\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\t{showLabel && <span>Work Queue</span>}\n\t\t\t<Link\n\t\t\t\tto=\"/work-pools/work-pool/$workPoolName/queue/$workQueueName\"\n\t\t\t\tparams={{ workPoolName, workQueueName: workQueue.name }}\n\t\t\t\tclassName={className ?? \"flex items-center gap-1\"}\n\t\t\t>\n\t\t\t\t<Icon\n\t\t\t\t\tid=\"ListOrdered\"\n\t\t\t\t\tsize={iconSize}\n\t\t\t\t\tclassName={iconSize ? undefined : \"size-4\"}\n\t\t\t\t/>\n\t\t\t\t{workQueue.name}\n\t\t\t</Link>\n\t\t\t{showStatus && workQueue.status && (\n\t\t\t\t<StatusIcon status={workQueue.status} />\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["FlowLink","flowId","jsx","Suspense","Skeleton","FlowLinkImplementation","flow","useSuspenseQuery","buildFLowDetailsQuery","jsxs","Link","Icon","WorkPoolLink","workPoolName","WorkQueueIconText","workQueueName","showLabel","showStatus","className","iconSize","WorkQueueIconTextFetched","workQueue","buildWorkQueueDetailsQuery","WorkQueueIconTextPresentational","StatusIcon"],"mappings":"+KAWO,MAAMA,EAAW,CAAC,CAAE,OAAAC,KAEzBC,EAAAA,IAACC,EAAAA,SAAA,CAAS,SAAUD,EAAAA,IAACE,EAAA,CAAS,UAAU,YAAA,CAAa,EACpD,SAAAF,EAAAA,IAACG,EAAA,CAAuB,OAAAJ,CAAA,CAAgB,EACzC,EAIII,EAAyB,CAAC,CAAE,OAAAJ,KAA4B,CAC7D,KAAM,CAAE,KAAMK,CAAA,EAASC,EAAiBC,EAAsBP,CAAM,CAAC,EAErE,OACCQ,EAAAA,KAAC,MAAA,CAAI,UAAU,kCAAkC,SAAA,CAAA,OAEhDA,EAAAA,KAACC,EAAA,CACA,GAAG,kBACH,OAAQ,CAAE,GAAIJ,EAAK,EAAA,EACnB,UAAU,0BAEV,SAAA,CAAAJ,EAAAA,IAACS,EAAA,CAAK,GAAG,WAAW,UAAU,SAAS,EACtCL,EAAK,IAAA,CAAA,CAAA,CACP,EACD,CAEF,EC5BaM,EAAe,CAAC,CAAE,aAAAC,KAE7BJ,EAAAA,KAAC,MAAA,CAAI,UAAU,kCAAkC,SAAA,CAAA,YAEhDA,EAAAA,KAACC,EAAA,CACA,GAAG,sCACH,OAAQ,CAAE,aAAAG,CAAA,EACV,UAAU,0BAEV,SAAA,CAAAX,EAAAA,IAACS,EAAA,CAAK,GAAG,MAAM,UAAU,SAAS,EACjCE,CAAA,CAAA,CAAA,CACF,EACD,ECAWC,EAAoB,CAAC,CACjC,aAAAD,EACA,cAAAE,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,UAAAC,EACA,SAAAC,CACD,UACEhB,EAAAA,SAAA,CAAS,eAAWC,EAAA,CAAS,UAAU,aAAa,EACpD,SAAAF,EAAAA,IAACkB,EAAA,CACA,aAAAP,EACA,cAAAE,EACA,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CAAA,CACD,CAAA,CACD,EAGKC,EAA2B,CAAC,CACjC,aAAAP,EACA,cAAAE,EACA,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CACD,IAAkC,CACjC,KAAM,CAAE,KAAME,CAAA,EAAcd,EAC3Be,EAA2BT,EAAcE,CAAa,CAAA,EAGvD,OACCb,EAAAA,IAACqB,EAAA,CACA,UAAAF,EACA,aAAAR,EACA,UAAAG,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CAAA,CAAA,CAGH,EAWMI,EAAkC,CAAC,CACxC,UAAAF,EACA,aAAAR,EACA,UAAAG,EAAY,GACZ,WAAAC,EAAa,GACb,UAAAC,EACA,SAAAC,CACD,IAEEV,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAO,GAAad,EAAAA,IAAC,QAAK,SAAA,YAAA,CAAU,EAC9BO,EAAAA,KAACC,EAAA,CACA,GAAG,2DACH,OAAQ,CAAE,aAAAG,EAAc,cAAeQ,EAAU,IAAA,EACjD,UAAWH,GAAa,0BAExB,SAAA,CAAAhB,EAAAA,IAACS,EAAA,CACA,GAAG,cACH,KAAMQ,EACN,UAAWA,EAAW,OAAY,QAAA,CAAA,EAElCE,EAAU,IAAA,CAAA,CAAA,EAEXJ,GAAcI,EAAU,cACvBG,EAAA,CAAW,OAAQH,EAAU,MAAA,CAAQ,CAAA,EAExC"}
1
+ {"version":3,"file":"work-queue-icon-text-4iEAtZOh.js","sources":["../../src/components/flows/flow-link.tsx","../../src/components/work-pools/work-pool-link.tsx","../../src/components/work-pools/work-queue-icon-text/work-queue-icon-text.tsx"],"sourcesContent":["import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Link } from \"@tanstack/react-router\";\nimport { Suspense } from \"react\";\nimport { buildFLowDetailsQuery } from \"@/api/flows\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\n\ntype FlowLinkProps = {\n\tflowId: string;\n};\n\nexport const FlowLink = ({ flowId }: FlowLinkProps) => {\n\treturn (\n\t\t<Suspense fallback={<Skeleton className=\"h-4 w-full\" />}>\n\t\t\t<FlowLinkImplementation flowId={flowId} />\n\t\t</Suspense>\n\t);\n};\n\nconst FlowLinkImplementation = ({ flowId }: FlowLinkProps) => {\n\tconst { data: flow } = useSuspenseQuery(buildFLowDetailsQuery(flowId));\n\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\tFlow\n\t\t\t<Link\n\t\t\t\tto=\"/flows/flow/$id\"\n\t\t\t\tparams={{ id: flow.id }}\n\t\t\t\tclassName=\"flex items-center gap-1\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Workflow\" className=\"size-4\" />\n\t\t\t\t{flow.name}\n\t\t\t</Link>\n\t\t</div>\n\t);\n};\n","import { Link } from \"@tanstack/react-router\";\nimport { Icon } from \"@/components/ui/icons\";\n\ntype WorkPoolLinkProps = {\n\tworkPoolName: string;\n};\n\nexport const WorkPoolLink = ({ workPoolName }: WorkPoolLinkProps) => {\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\tWork Pool\n\t\t\t<Link\n\t\t\t\tto=\"/work-pools/work-pool/$workPoolName\"\n\t\t\t\tparams={{ workPoolName }}\n\t\t\t\tclassName=\"flex items-center gap-1\"\n\t\t\t>\n\t\t\t\t<Icon id=\"Cpu\" className=\"size-4\" />\n\t\t\t\t{workPoolName}\n\t\t\t</Link>\n\t\t</div>\n\t);\n};\n","import { useSuspenseQuery } from \"@tanstack/react-query\";\nimport { Link } from \"@tanstack/react-router\";\nimport { Suspense } from \"react\";\nimport { buildWorkQueueDetailsQuery, type WorkQueue } from \"@/api/work-queues\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { StatusIcon } from \"@/components/ui/status-badge\";\n\ntype WorkQueueIconTextBaseProps = {\n\tworkPoolName: string;\n\tworkQueueName: string;\n\tshowLabel?: boolean;\n\tshowStatus?: boolean;\n\tclassName?: string;\n\ticonSize?: number;\n};\n\ntype WorkQueueIconTextProps = WorkQueueIconTextBaseProps;\n\nexport const WorkQueueIconText = ({\n\tworkPoolName,\n\tworkQueueName,\n\tshowLabel = false,\n\tshowStatus = false,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextProps) => (\n\t<Suspense fallback={<Skeleton className=\"h-4 w-full\" />}>\n\t\t<WorkQueueIconTextFetched\n\t\t\tworkPoolName={workPoolName}\n\t\t\tworkQueueName={workQueueName}\n\t\t\tshowLabel={showLabel}\n\t\t\tshowStatus={showStatus}\n\t\t\tclassName={className}\n\t\t\ticonSize={iconSize}\n\t\t/>\n\t</Suspense>\n);\n\nconst WorkQueueIconTextFetched = ({\n\tworkPoolName,\n\tworkQueueName,\n\tshowLabel,\n\tshowStatus,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextBaseProps) => {\n\tconst { data: workQueue } = useSuspenseQuery(\n\t\tbuildWorkQueueDetailsQuery(workPoolName, workQueueName),\n\t);\n\n\treturn (\n\t\t<WorkQueueIconTextPresentational\n\t\t\tworkQueue={workQueue}\n\t\t\tworkPoolName={workPoolName}\n\t\t\tshowLabel={showLabel}\n\t\t\tshowStatus={showStatus}\n\t\t\tclassName={className}\n\t\t\ticonSize={iconSize}\n\t\t/>\n\t);\n};\n\ntype WorkQueueIconTextPresentationalProps = {\n\tworkQueue: WorkQueue;\n\tworkPoolName: string;\n\tshowLabel?: boolean;\n\tshowStatus?: boolean;\n\tclassName?: string;\n\ticonSize?: number;\n};\n\nconst WorkQueueIconTextPresentational = ({\n\tworkQueue,\n\tworkPoolName,\n\tshowLabel = false,\n\tshowStatus = false,\n\tclassName,\n\ticonSize,\n}: WorkQueueIconTextPresentationalProps) => {\n\treturn (\n\t\t<div className=\"flex items-center gap-1 text-xs\">\n\t\t\t{showLabel && <span>Work Queue</span>}\n\t\t\t<Link\n\t\t\t\tto=\"/work-pools/work-pool/$workPoolName/queue/$workQueueName\"\n\t\t\t\tparams={{ workPoolName, workQueueName: workQueue.name }}\n\t\t\t\tclassName={className ?? \"flex items-center gap-1\"}\n\t\t\t>\n\t\t\t\t<Icon\n\t\t\t\t\tid=\"ListOrdered\"\n\t\t\t\t\tsize={iconSize}\n\t\t\t\t\tclassName={iconSize ? undefined : \"size-4\"}\n\t\t\t\t/>\n\t\t\t\t{workQueue.name}\n\t\t\t</Link>\n\t\t\t{showStatus && workQueue.status && (\n\t\t\t\t<StatusIcon status={workQueue.status} />\n\t\t\t)}\n\t\t</div>\n\t);\n};\n"],"names":["FlowLink","flowId","jsx","Suspense","Skeleton","FlowLinkImplementation","flow","useSuspenseQuery","buildFLowDetailsQuery","jsxs","Link","Icon","WorkPoolLink","workPoolName","WorkQueueIconText","workQueueName","showLabel","showStatus","className","iconSize","WorkQueueIconTextFetched","workQueue","buildWorkQueueDetailsQuery","WorkQueueIconTextPresentational","StatusIcon"],"mappings":"+KAWO,MAAMA,EAAW,CAAC,CAAE,OAAAC,KAEzBC,EAAAA,IAACC,EAAAA,SAAA,CAAS,SAAUD,EAAAA,IAACE,EAAA,CAAS,UAAU,YAAA,CAAa,EACpD,SAAAF,EAAAA,IAACG,EAAA,CAAuB,OAAAJ,CAAA,CAAgB,EACzC,EAIII,EAAyB,CAAC,CAAE,OAAAJ,KAA4B,CAC7D,KAAM,CAAE,KAAMK,CAAA,EAASC,EAAiBC,EAAsBP,CAAM,CAAC,EAErE,OACCQ,EAAAA,KAAC,MAAA,CAAI,UAAU,kCAAkC,SAAA,CAAA,OAEhDA,EAAAA,KAACC,EAAA,CACA,GAAG,kBACH,OAAQ,CAAE,GAAIJ,EAAK,EAAA,EACnB,UAAU,0BAEV,SAAA,CAAAJ,EAAAA,IAACS,EAAA,CAAK,GAAG,WAAW,UAAU,SAAS,EACtCL,EAAK,IAAA,CAAA,CAAA,CACP,EACD,CAEF,EC5BaM,EAAe,CAAC,CAAE,aAAAC,KAE7BJ,EAAAA,KAAC,MAAA,CAAI,UAAU,kCAAkC,SAAA,CAAA,YAEhDA,EAAAA,KAACC,EAAA,CACA,GAAG,sCACH,OAAQ,CAAE,aAAAG,CAAA,EACV,UAAU,0BAEV,SAAA,CAAAX,EAAAA,IAACS,EAAA,CAAK,GAAG,MAAM,UAAU,SAAS,EACjCE,CAAA,CAAA,CAAA,CACF,EACD,ECAWC,EAAoB,CAAC,CACjC,aAAAD,EACA,cAAAE,EACA,UAAAC,EAAY,GACZ,WAAAC,EAAa,GACb,UAAAC,EACA,SAAAC,CACD,UACEhB,EAAAA,SAAA,CAAS,eAAWC,EAAA,CAAS,UAAU,aAAa,EACpD,SAAAF,EAAAA,IAACkB,EAAA,CACA,aAAAP,EACA,cAAAE,EACA,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CAAA,CACD,CAAA,CACD,EAGKC,EAA2B,CAAC,CACjC,aAAAP,EACA,cAAAE,EACA,UAAAC,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CACD,IAAkC,CACjC,KAAM,CAAE,KAAME,CAAA,EAAcd,EAC3Be,EAA2BT,EAAcE,CAAa,CAAA,EAGvD,OACCb,EAAAA,IAACqB,EAAA,CACA,UAAAF,EACA,aAAAR,EACA,UAAAG,EACA,WAAAC,EACA,UAAAC,EACA,SAAAC,CAAA,CAAA,CAGH,EAWMI,EAAkC,CAAC,CACxC,UAAAF,EACA,aAAAR,EACA,UAAAG,EAAY,GACZ,WAAAC,EAAa,GACb,UAAAC,EACA,SAAAC,CACD,IAEEV,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAO,GAAad,EAAAA,IAAC,QAAK,SAAA,YAAA,CAAU,EAC9BO,EAAAA,KAACC,EAAA,CACA,GAAG,2DACH,OAAQ,CAAE,aAAAG,EAAc,cAAeQ,EAAU,IAAA,EACjD,UAAWH,GAAa,0BAExB,SAAA,CAAAhB,EAAAA,IAACS,EAAA,CACA,GAAG,cACH,KAAMQ,EACN,UAAWA,EAAW,OAAY,QAAA,CAAA,EAElCE,EAAU,IAAA,CAAA,CAAA,EAEXJ,GAAcI,EAAU,cACvBG,EAAA,CAAW,OAAQH,EAAU,MAAA,CAAQ,CAAA,EAExC"}
@@ -1,2 +1,2 @@
1
- import{h as p,i as y,j as v}from"./vendor-forms-mroZAMaw.js";function g(r,s,o){function e(t,c){var u;Object.defineProperty(t,"_zod",{value:t._zod??{},enumerable:!1}),(u=t._zod).traits??(u.traits=new Set),t._zod.traits.add(r),s(t,c);for(const f in n.prototype)f in t||Object.defineProperty(t,f,{value:n.prototype[f].bind(t)});t._zod.constr=n,t._zod.def=c}const a=o?.Parent??Object;class i extends a{}Object.defineProperty(i,"name",{value:r});function n(t){var c;const u=o?.Parent?new i:this;e(u,t),(c=u._zod).deferred??(c.deferred=[]);for(const f of u._zod.deferred)f();return u}return Object.defineProperty(n,"init",{value:e}),Object.defineProperty(n,Symbol.hasInstance,{value:t=>o?.Parent&&t instanceof o.Parent?!0:t?._zod?.traits?.has(r)}),Object.defineProperty(n,"name",{value:r}),n}class j extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const z={};function m(r){return z}function w(r,s){return typeof s=="bigint"?s.toString():s}const b=Error.captureStackTrace?Error.captureStackTrace:(...r)=>{};function d(r){return typeof r=="string"?r:r?.message}function E(r,s,o){const e={...r,path:r.path??[]};if(!r.message){const a=d(r.inst?._zod.def?.error?.(r))??d(s?.error?.(r))??d(o.customError?.(r))??d(o.localeError?.(r))??"Invalid input";e.message=a}return delete e.inst,delete e.continue,s?.reportInput||delete e.input,e}const P=(r,s)=>{r.name="$ZodError",Object.defineProperty(r,"_zod",{value:r._zod,enumerable:!1}),Object.defineProperty(r,"issues",{value:s,enumerable:!1}),Object.defineProperty(r,"message",{get(){return JSON.stringify(s,w,2)},enumerable:!0}),Object.defineProperty(r,"toString",{value:()=>r.message,enumerable:!1})},O=g("$ZodError",P),_=g("$ZodError",P,{Parent:Error}),S=r=>(s,o,e,a)=>{const i=e?Object.assign(e,{async:!1}):{async:!1},n=s._zod.run({value:o,issues:[]},i);if(n instanceof Promise)throw new j;if(n.issues.length){const t=new(a?.Err??r)(n.issues.map(c=>E(c,i,m())));throw b(t,a?.callee),t}return n.value},A=S(_),Z=r=>async(s,o,e,a)=>{const i=e?Object.assign(e,{async:!0}):{async:!0};let n=s._zod.run({value:o,issues:[]},i);if(n instanceof Promise&&(n=await n),n.issues.length){const t=new(a?.Err??r)(n.issues.map(c=>E(c,i,m())));throw b(t,a?.callee),t}return n.value},N=Z(_);function h(r,s){try{var o=r()}catch(e){return s(e)}return o&&o.then?o.then(void 0,s):o}function I(r,s){for(var o={};r.length;){var e=r[0],a=e.code,i=e.message,n=e.path.join(".");if(!o[n])if("unionErrors"in e){var t=e.unionErrors[0].errors[0];o[n]={message:t.message,type:t.code}}else o[n]={message:i,type:a};if("unionErrors"in e&&e.unionErrors.forEach(function(f){return f.errors.forEach(function(l){return r.push(l)})}),s){var c=o[n].types,u=c&&c[e.code];o[n]=v(n,s,o,a,u?[].concat(u,e.message):e.message)}r.shift()}return o}function U(r,s){for(var o={};r.length;){var e=r[0],a=e.code,i=e.message,n=e.path.join(".");if(!o[n])if(e.code==="invalid_union"&&e.errors.length>0){var t=e.errors[0][0];o[n]={message:t.message,type:t.code}}else o[n]={message:i,type:a};if(e.code==="invalid_union"&&e.errors.forEach(function(f){return f.forEach(function(l){return r.push(l)})}),s){var c=o[n].types,u=c&&c[e.code];o[n]=v(n,s,o,a,u?[].concat(u,e.message):e.message)}r.shift()}return o}function k(r,s,o){if(o===void 0&&(o={}),(function(e){return"_def"in e&&typeof e._def=="object"&&"typeName"in e._def})(r))return function(e,a,i){try{return Promise.resolve(h(function(){return Promise.resolve(r[o.mode==="sync"?"parse":"parseAsync"](e,s)).then(function(n){return i.shouldUseNativeValidation&&p({},i),{errors:{},values:o.raw?Object.assign({},e):n}})},function(n){if((function(t){return Array.isArray(t?.issues)})(n))return{values:{},errors:y(I(n.errors,!i.shouldUseNativeValidation&&i.criteriaMode==="all"),i)};throw n}))}catch(n){return Promise.reject(n)}};if((function(e){return"_zod"in e&&typeof e._zod=="object"})(r))return function(e,a,i){try{return Promise.resolve(h(function(){return Promise.resolve((o.mode==="sync"?A:N)(r,e,s)).then(function(n){return i.shouldUseNativeValidation&&p({},i),{errors:{},values:o.raw?Object.assign({},e):n}})},function(n){if((function(t){return t instanceof O})(n))return{values:{},errors:y(U(n.issues,!i.shouldUseNativeValidation&&i.criteriaMode==="all"),i)};throw n}))}catch(n){return Promise.reject(n)}};throw new Error("Invalid input: not a Zod schema")}export{k as a};
2
- //# sourceMappingURL=zod-cc-7bk3x.js.map
1
+ import{h as p,i as y,j as v}from"./vendor-forms-D-iybWES.js";function g(r,s,o){function e(t,c){var u;Object.defineProperty(t,"_zod",{value:t._zod??{},enumerable:!1}),(u=t._zod).traits??(u.traits=new Set),t._zod.traits.add(r),s(t,c);for(const f in n.prototype)f in t||Object.defineProperty(t,f,{value:n.prototype[f].bind(t)});t._zod.constr=n,t._zod.def=c}const a=o?.Parent??Object;class i extends a{}Object.defineProperty(i,"name",{value:r});function n(t){var c;const u=o?.Parent?new i:this;e(u,t),(c=u._zod).deferred??(c.deferred=[]);for(const f of u._zod.deferred)f();return u}return Object.defineProperty(n,"init",{value:e}),Object.defineProperty(n,Symbol.hasInstance,{value:t=>o?.Parent&&t instanceof o.Parent?!0:t?._zod?.traits?.has(r)}),Object.defineProperty(n,"name",{value:r}),n}class j extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}const z={};function m(r){return z}function w(r,s){return typeof s=="bigint"?s.toString():s}const b=Error.captureStackTrace?Error.captureStackTrace:(...r)=>{};function d(r){return typeof r=="string"?r:r?.message}function E(r,s,o){const e={...r,path:r.path??[]};if(!r.message){const a=d(r.inst?._zod.def?.error?.(r))??d(s?.error?.(r))??d(o.customError?.(r))??d(o.localeError?.(r))??"Invalid input";e.message=a}return delete e.inst,delete e.continue,s?.reportInput||delete e.input,e}const P=(r,s)=>{r.name="$ZodError",Object.defineProperty(r,"_zod",{value:r._zod,enumerable:!1}),Object.defineProperty(r,"issues",{value:s,enumerable:!1}),Object.defineProperty(r,"message",{get(){return JSON.stringify(s,w,2)},enumerable:!0}),Object.defineProperty(r,"toString",{value:()=>r.message,enumerable:!1})},O=g("$ZodError",P),_=g("$ZodError",P,{Parent:Error}),S=r=>(s,o,e,a)=>{const i=e?Object.assign(e,{async:!1}):{async:!1},n=s._zod.run({value:o,issues:[]},i);if(n instanceof Promise)throw new j;if(n.issues.length){const t=new(a?.Err??r)(n.issues.map(c=>E(c,i,m())));throw b(t,a?.callee),t}return n.value},A=S(_),Z=r=>async(s,o,e,a)=>{const i=e?Object.assign(e,{async:!0}):{async:!0};let n=s._zod.run({value:o,issues:[]},i);if(n instanceof Promise&&(n=await n),n.issues.length){const t=new(a?.Err??r)(n.issues.map(c=>E(c,i,m())));throw b(t,a?.callee),t}return n.value},N=Z(_);function h(r,s){try{var o=r()}catch(e){return s(e)}return o&&o.then?o.then(void 0,s):o}function I(r,s){for(var o={};r.length;){var e=r[0],a=e.code,i=e.message,n=e.path.join(".");if(!o[n])if("unionErrors"in e){var t=e.unionErrors[0].errors[0];o[n]={message:t.message,type:t.code}}else o[n]={message:i,type:a};if("unionErrors"in e&&e.unionErrors.forEach(function(f){return f.errors.forEach(function(l){return r.push(l)})}),s){var c=o[n].types,u=c&&c[e.code];o[n]=v(n,s,o,a,u?[].concat(u,e.message):e.message)}r.shift()}return o}function U(r,s){for(var o={};r.length;){var e=r[0],a=e.code,i=e.message,n=e.path.join(".");if(!o[n])if(e.code==="invalid_union"&&e.errors.length>0){var t=e.errors[0][0];o[n]={message:t.message,type:t.code}}else o[n]={message:i,type:a};if(e.code==="invalid_union"&&e.errors.forEach(function(f){return f.forEach(function(l){return r.push(l)})}),s){var c=o[n].types,u=c&&c[e.code];o[n]=v(n,s,o,a,u?[].concat(u,e.message):e.message)}r.shift()}return o}function k(r,s,o){if(o===void 0&&(o={}),(function(e){return"_def"in e&&typeof e._def=="object"&&"typeName"in e._def})(r))return function(e,a,i){try{return Promise.resolve(h(function(){return Promise.resolve(r[o.mode==="sync"?"parse":"parseAsync"](e,s)).then(function(n){return i.shouldUseNativeValidation&&p({},i),{errors:{},values:o.raw?Object.assign({},e):n}})},function(n){if((function(t){return Array.isArray(t?.issues)})(n))return{values:{},errors:y(I(n.errors,!i.shouldUseNativeValidation&&i.criteriaMode==="all"),i)};throw n}))}catch(n){return Promise.reject(n)}};if((function(e){return"_zod"in e&&typeof e._zod=="object"})(r))return function(e,a,i){try{return Promise.resolve(h(function(){return Promise.resolve((o.mode==="sync"?A:N)(r,e,s)).then(function(n){return i.shouldUseNativeValidation&&p({},i),{errors:{},values:o.raw?Object.assign({},e):n}})},function(n){if((function(t){return t instanceof O})(n))return{values:{},errors:y(U(n.issues,!i.shouldUseNativeValidation&&i.criteriaMode==="all"),i)};throw n}))}catch(n){return Promise.reject(n)}};throw new Error("Invalid input: not a Zod schema")}export{k as a};
2
+ //# sourceMappingURL=zod-CjGf5GIv.js.map