prefect 3.6.15__py3-none-any.whl → 3.6.16.dev2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. prefect/__init__.py +20 -0
  2. prefect/_build_info.py +3 -3
  3. prefect/_internal/analytics/__init__.py +80 -0
  4. prefect/_internal/analytics/_config.py +2 -0
  5. prefect/_internal/analytics/ci_detection.py +39 -0
  6. prefect/_internal/analytics/client.py +132 -0
  7. prefect/_internal/analytics/device_id.py +55 -0
  8. prefect/_internal/analytics/emit.py +90 -0
  9. prefect/_internal/analytics/enabled.py +33 -0
  10. prefect/_internal/analytics/events.py +14 -0
  11. prefect/_internal/analytics/milestones.py +177 -0
  12. prefect/_internal/analytics/notice.py +60 -0
  13. prefect/_internal/analytics/service.py +238 -0
  14. prefect/analytics/__init__.py +67 -0
  15. prefect/deployments/runner.py +20 -0
  16. prefect/flow_engine.py +16 -0
  17. prefect/flows.py +8 -0
  18. prefect/server/ui-v2/assets/{artifact-card-BBzQR-Cj.js → artifact-card-BclosG8t.js} +2 -2
  19. prefect/server/ui-v2/assets/{artifact-card-BBzQR-Cj.js.map → artifact-card-BclosG8t.js.map} +1 -1
  20. prefect/server/ui-v2/assets/artifact._id-C0r4BJr2.js +2 -0
  21. prefect/server/ui-v2/assets/artifact._id-C0r4BJr2.js.map +1 -0
  22. prefect/server/ui-v2/assets/{automation-wizard-EYSfXlQ7.js → automation-wizard-Bmgt6nn8.js} +2 -2
  23. prefect/server/ui-v2/assets/{automation-wizard-EYSfXlQ7.js.map → automation-wizard-Bmgt6nn8.js.map} +1 -1
  24. prefect/server/ui-v2/assets/automation._id-Ccke3KJz.js +2 -0
  25. prefect/server/ui-v2/assets/{automation._id-Dn7jABys.js.map → automation._id-Ccke3KJz.js.map} +1 -1
  26. prefect/server/ui-v2/assets/{automation_._id.edit-COrqswD3.js → automation_._id.edit-BlKPUTVf.js} +2 -2
  27. prefect/server/ui-v2/assets/{automation_._id.edit-COrqswD3.js.map → automation_._id.edit-BlKPUTVf.js.map} +1 -1
  28. prefect/server/ui-v2/assets/{automations-header-DN_dmMXW.js → automations-header-Df2zw3SC.js} +2 -2
  29. prefect/server/ui-v2/assets/{automations-header-DN_dmMXW.js.map → automations-header-Df2zw3SC.js.map} +1 -1
  30. prefect/server/ui-v2/assets/{base-job-template-form-section-De2ACYbw.js → base-job-template-form-section-oZD6U-RW.js} +2 -2
  31. prefect/server/ui-v2/assets/{base-job-template-form-section-De2ACYbw.js.map → base-job-template-form-section-oZD6U-RW.js.map} +1 -1
  32. prefect/server/ui-v2/assets/{block-type-details-Cklc7TkK.js → block-type-details-CYrdaLot.js} +2 -2
  33. prefect/server/ui-v2/assets/{block-type-details-Cklc7TkK.js.map → block-type-details-CYrdaLot.js.map} +1 -1
  34. prefect/server/ui-v2/assets/block-type-logo-CyAWq7mC.js +2 -0
  35. prefect/server/ui-v2/assets/block-type-logo-CyAWq7mC.js.map +1 -0
  36. prefect/server/ui-v2/assets/{block._id-tuz1Bcj2.js → block._id-CBgHrpTP.js} +2 -2
  37. prefect/server/ui-v2/assets/{block._id-tuz1Bcj2.js.map → block._id-CBgHrpTP.js.map} +1 -1
  38. prefect/server/ui-v2/assets/{block_._id.edit-CFEYhF5R.js → block_._id.edit-CW-kdi4O.js} +2 -2
  39. prefect/server/ui-v2/assets/{block_._id.edit-CFEYhF5R.js.map → block_._id.edit-CW-kdi4O.js.map} +1 -1
  40. prefect/server/ui-v2/assets/{catalog-CCPRo7nY.js → catalog-Brh0kn1I.js} +2 -2
  41. prefect/server/ui-v2/assets/{catalog-CCPRo7nY.js.map → catalog-Brh0kn1I.js.map} +1 -1
  42. prefect/server/ui-v2/assets/catalog_._slug-MCgzguIZ.js +2 -0
  43. prefect/server/ui-v2/assets/{catalog_._slug-Bl2J2oI3.js.map → catalog_._slug-MCgzguIZ.js.map} +1 -1
  44. prefect/server/ui-v2/assets/{catalog_._slug_.create-9UD_SxDN.js → catalog_._slug_.create-DBaeHi9Q.js} +2 -2
  45. prefect/server/ui-v2/assets/{catalog_._slug_.create-9UD_SxDN.js.map → catalog_._slug_.create-DBaeHi9Q.js.map} +1 -1
  46. prefect/server/ui-v2/assets/{collapsible-BVQTBG_U.js → collapsible-B_NJS0uJ.js} +2 -2
  47. prefect/server/ui-v2/assets/{collapsible-BVQTBG_U.js.map → collapsible-B_NJS0uJ.js.map} +1 -1
  48. prefect/server/ui-v2/assets/{concurrency-limit._id-CsgRxA0a.js → concurrency-limit._id-qzNUQzQa.js} +2 -2
  49. prefect/server/ui-v2/assets/{concurrency-limit._id-CsgRxA0a.js.map → concurrency-limit._id-qzNUQzQa.js.map} +1 -1
  50. prefect/server/ui-v2/assets/create-BwXG6EIb.js +2 -0
  51. prefect/server/ui-v2/assets/{create-D--LHaji.js.map → create-BwXG6EIb.js.map} +1 -1
  52. prefect/server/ui-v2/assets/{create-BycfZHGQ.js → create-MoiIE9Ms.js} +2 -2
  53. prefect/server/ui-v2/assets/{create-BycfZHGQ.js.map → create-MoiIE9Ms.js.map} +1 -1
  54. prefect/server/ui-v2/assets/data-table-CPkppyg6.js +2 -0
  55. prefect/server/ui-v2/assets/data-table-CPkppyg6.js.map +1 -0
  56. prefect/server/ui-v2/assets/delete-confirmation-dialog-CwDK_2QS.js +2 -0
  57. prefect/server/ui-v2/assets/{delete-confirmation-dialog-DHkm2p8m.js.map → delete-confirmation-dialog-CwDK_2QS.js.map} +1 -1
  58. prefect/server/ui-v2/assets/{deployment-action-header-D5GOooPm.js → deployment-action-header-Vp9YsCJO.js} +2 -2
  59. prefect/server/ui-v2/assets/{deployment-action-header-D5GOooPm.js.map → deployment-action-header-Vp9YsCJO.js.map} +1 -1
  60. prefect/server/ui-v2/assets/{deployment-form-wfg6HeAJ.js → deployment-form-CJcg_6DJ.js} +3 -3
  61. prefect/server/ui-v2/assets/{deployment-form-wfg6HeAJ.js.map → deployment-form-CJcg_6DJ.js.map} +1 -1
  62. prefect/server/ui-v2/assets/{deployment-links-6iugOgDh.js → deployment-links-CIkJIuHh.js} +2 -2
  63. prefect/server/ui-v2/assets/{deployment-links-6iugOgDh.js.map → deployment-links-CIkJIuHh.js.map} +1 -1
  64. prefect/server/ui-v2/assets/deployment._id-C6XrGMp_.js +2 -0
  65. prefect/server/ui-v2/assets/{deployment._id-Ci9zge5n.js.map → deployment._id-C6XrGMp_.js.map} +1 -1
  66. prefect/server/ui-v2/assets/{deployment._id-whsGcHdu.js → deployment._id-CWgTYmTG.js} +2 -2
  67. prefect/server/ui-v2/assets/{deployment._id-whsGcHdu.js.map → deployment._id-CWgTYmTG.js.map} +1 -1
  68. prefect/server/ui-v2/assets/deployment_._id.duplicate-Bg0s0ZJn.js +2 -0
  69. prefect/server/ui-v2/assets/{deployment_._id.duplicate-D9ZWkh8H.js.map → deployment_._id.duplicate-Bg0s0ZJn.js.map} +1 -1
  70. prefect/server/ui-v2/assets/deployment_._id.edit-CnoB0UeG.js +2 -0
  71. prefect/server/ui-v2/assets/{deployment_._id.edit-CS7sObzC.js.map → deployment_._id.edit-CnoB0UeG.js.map} +1 -1
  72. prefect/server/ui-v2/assets/{deployment_._id.run-g7SZuDFi.js → deployment_._id.run-BqPK6rTB.js} +2 -2
  73. prefect/server/ui-v2/assets/{deployment_._id.run-g7SZuDFi.js.map → deployment_._id.run-BqPK6rTB.js.map} +1 -1
  74. prefect/server/ui-v2/assets/{dropdown-menu-0atiOSFo.js → dropdown-menu-D7Gwbd15.js} +2 -2
  75. prefect/server/ui-v2/assets/{dropdown-menu-0atiOSFo.js.map → dropdown-menu-D7Gwbd15.js.map} +1 -1
  76. prefect/server/ui-v2/assets/{event-resource-display-DHiAb1Up.js → event-resource-display-CDRgVKd4.js} +2 -2
  77. prefect/server/ui-v2/assets/{event-resource-display-DHiAb1Up.js.map → event-resource-display-CDRgVKd4.js.map} +1 -1
  78. prefect/server/ui-v2/assets/event._eventDate._eventId-C73GMDkK.js +2 -0
  79. prefect/server/ui-v2/assets/{event._eventDate._eventId-D7Twzb22.js.map → event._eventDate._eventId-C73GMDkK.js.map} +1 -1
  80. prefect/server/ui-v2/assets/{flow-run-graph-BhzuSJLm.js → flow-run-graph-ckiE3mA9.js} +2 -2
  81. prefect/server/ui-v2/assets/{flow-run-graph-BhzuSJLm.js.map → flow-run-graph-ckiE3mA9.js.map} +1 -1
  82. prefect/server/ui-v2/assets/{flow-run._id-CqpH6bvx.js → flow-run._id-BukrNCAq.js} +2 -2
  83. prefect/server/ui-v2/assets/{flow-run._id-CqpH6bvx.js.map → flow-run._id-BukrNCAq.js.map} +1 -1
  84. prefect/server/ui-v2/assets/{flow-run._id-lIIQBD7H.js → flow-run._id-CtI5VZ2M.js} +2 -2
  85. prefect/server/ui-v2/assets/{flow-run._id-lIIQBD7H.js.map → flow-run._id-CtI5VZ2M.js.map} +1 -1
  86. prefect/server/ui-v2/assets/flow-run._id-s1UJuakA.js +4 -0
  87. prefect/server/ui-v2/assets/{flow-run._id-RLy2kBh0.js.map → flow-run._id-s1UJuakA.js.map} +1 -1
  88. prefect/server/ui-v2/assets/{flow-runs-pagination-BATUweRV.js → flow-runs-pagination-SLbYtvaR.js} +2 -2
  89. prefect/server/ui-v2/assets/{flow-runs-pagination-BATUweRV.js.map → flow-runs-pagination-SLbYtvaR.js.map} +1 -1
  90. prefect/server/ui-v2/assets/flow._id-CZ5P0v4N.js +2 -0
  91. prefect/server/ui-v2/assets/{flow._id-BdQGWPKP.js.map → flow._id-CZ5P0v4N.js.map} +1 -1
  92. prefect/server/ui-v2/assets/{form-DLrbC7rV.js → form-mws4law8.js} +2 -2
  93. prefect/server/ui-v2/assets/{form-DLrbC7rV.js.map → form-mws4law8.js.map} +1 -1
  94. prefect/server/ui-v2/assets/{header-BTAWyeXv.js → header-Bes1LmY7.js} +2 -2
  95. prefect/server/ui-v2/assets/{header-BTAWyeXv.js.map → header-Bes1LmY7.js.map} +1 -1
  96. prefect/server/ui-v2/assets/{header-ChFAx5uR.js → header-Bj_zBR-a.js} +2 -2
  97. prefect/server/ui-v2/assets/{header-ChFAx5uR.js.map → header-Bj_zBR-a.js.map} +1 -1
  98. prefect/server/ui-v2/assets/{header-CyQqOj1w.js → header-CPxTHSvz.js} +2 -2
  99. prefect/server/ui-v2/assets/{header-CyQqOj1w.js.map → header-CPxTHSvz.js.map} +1 -1
  100. prefect/server/ui-v2/assets/{index-m48E4KcG.js → index-B8vo2Lrg.js} +5 -5
  101. prefect/server/ui-v2/assets/{index-m48E4KcG.js.map → index-B8vo2Lrg.js.map} +1 -1
  102. prefect/server/ui-v2/assets/{index-D5RT-SAp.js → index-BBeh-3Nh.js} +2 -2
  103. prefect/server/ui-v2/assets/{index-D5RT-SAp.js.map → index-BBeh-3Nh.js.map} +1 -1
  104. prefect/server/ui-v2/assets/index-BLnEvHia.js +2 -0
  105. prefect/server/ui-v2/assets/{index-7i4X9TeK.js.map → index-BLnEvHia.js.map} +1 -1
  106. prefect/server/ui-v2/assets/index-BpKoubXu.js +2 -0
  107. prefect/server/ui-v2/assets/index-BpKoubXu.js.map +1 -0
  108. prefect/server/ui-v2/assets/index-By6YGqR3.js +2 -0
  109. prefect/server/ui-v2/assets/index-By6YGqR3.js.map +1 -0
  110. prefect/server/ui-v2/assets/index-CEi3BlKI.js +2 -0
  111. prefect/server/ui-v2/assets/index-CEi3BlKI.js.map +1 -0
  112. prefect/server/ui-v2/assets/{index-BaWDC4da.js → index-CS-zxv7Z.js} +2 -2
  113. prefect/server/ui-v2/assets/{index-BaWDC4da.js.map → index-CS-zxv7Z.js.map} +1 -1
  114. prefect/server/ui-v2/assets/{index-kP_I5Qfd.js → index-CToHKh4q.js} +2 -2
  115. prefect/server/ui-v2/assets/{index-kP_I5Qfd.js.map → index-CToHKh4q.js.map} +1 -1
  116. prefect/server/ui-v2/assets/{index-CKGj5lSu.js → index-CUVvZndW.js} +2 -2
  117. prefect/server/ui-v2/assets/{index-CKGj5lSu.js.map → index-CUVvZndW.js.map} +1 -1
  118. prefect/server/ui-v2/assets/{index-CxUfZRkN.js → index-CYVn-I3i.js} +2 -2
  119. prefect/server/ui-v2/assets/{index-CxUfZRkN.js.map → index-CYVn-I3i.js.map} +1 -1
  120. prefect/server/ui-v2/assets/{index-CnlN-VC_.js → index-Cun0JN4t.js} +2 -2
  121. prefect/server/ui-v2/assets/{index-CnlN-VC_.js.map → index-Cun0JN4t.js.map} +1 -1
  122. prefect/server/ui-v2/assets/{index-BwCLKpNb.js → index-D6ynV6U7.js} +2 -2
  123. prefect/server/ui-v2/assets/{index-BwCLKpNb.js.map → index-D6ynV6U7.js.map} +1 -1
  124. prefect/server/ui-v2/assets/{index-CHf6xi9j.js → index-DdNUJLRW.js} +2 -2
  125. prefect/server/ui-v2/assets/{index-CHf6xi9j.js.map → index-DdNUJLRW.js.map} +1 -1
  126. prefect/server/ui-v2/assets/{index-CQnWiUE5.js → index-DlHOXQhu.js} +2 -2
  127. prefect/server/ui-v2/assets/{index-CQnWiUE5.js.map → index-DlHOXQhu.js.map} +1 -1
  128. prefect/server/ui-v2/assets/{index-Eqdr6Ff7.js → index-DyVw8YE8.js} +2 -2
  129. prefect/server/ui-v2/assets/{index-Eqdr6Ff7.js.map → index-DyVw8YE8.js.map} +1 -1
  130. prefect/server/ui-v2/assets/{index-Btb_-PDp.js → index-DzRz7D2P.js} +2 -2
  131. prefect/server/ui-v2/assets/{index-Btb_-PDp.js.map → index-DzRz7D2P.js.map} +1 -1
  132. prefect/server/ui-v2/assets/{index-DQGif3jm.js → index-DzUcVNZg.js} +2 -2
  133. prefect/server/ui-v2/assets/{index-DQGif3jm.js.map → index-DzUcVNZg.js.map} +1 -1
  134. prefect/server/ui-v2/assets/{index-DNh9ZBy4.js → index-IBvMMs6S.js} +2 -2
  135. prefect/server/ui-v2/assets/{index-DNh9ZBy4.js.map → index-IBvMMs6S.js.map} +1 -1
  136. prefect/server/ui-v2/assets/index-_kpA__te.js +2 -0
  137. prefect/server/ui-v2/assets/{index-CiSFHkhI.js.map → index-_kpA__te.js.map} +1 -1
  138. prefect/server/ui-v2/assets/index-m9O-nIOl.css +1 -0
  139. prefect/server/ui-v2/assets/{index-lyQav_XM.js → index-wOvyf10b.js} +2 -2
  140. prefect/server/ui-v2/assets/{index-lyQav_XM.js.map → index-wOvyf10b.js.map} +1 -1
  141. prefect/server/ui-v2/assets/{json-input-Ba-BeBcw.js → json-input-Ce-HlRqa.js} +2 -2
  142. prefect/server/ui-v2/assets/{json-input-Ba-BeBcw.js.map → json-input-Ce-HlRqa.js.map} +1 -1
  143. prefect/server/ui-v2/assets/{key-value-DkSKn6jE.js → key-value-XHEZOtZX.js} +2 -2
  144. prefect/server/ui-v2/assets/{key-value-DkSKn6jE.js.map → key-value-XHEZOtZX.js.map} +1 -1
  145. prefect/server/ui-v2/assets/{key._key-Cjx57ymg.js → key._key-LpsMf3zD.js} +2 -2
  146. prefect/server/ui-v2/assets/{key._key-Cjx57ymg.js.map → key._key-LpsMf3zD.js.map} +1 -1
  147. prefect/server/ui-v2/assets/{lazy-markdown-Du2Xu3Yp.js → lazy-markdown-1Hz0xzca.js} +2 -2
  148. prefect/server/ui-v2/assets/{lazy-markdown-Du2Xu3Yp.js.map → lazy-markdown-1Hz0xzca.js.map} +1 -1
  149. prefect/server/ui-v2/assets/{login-DxMF9Jvj.js → login-D5uepl9L.js} +2 -2
  150. prefect/server/ui-v2/assets/{login-DxMF9Jvj.js.map → login-D5uepl9L.js.map} +1 -1
  151. prefect/server/ui-v2/assets/{markdown-input-DPi8zyRr.js → markdown-input-CG6M9zD0.js} +2 -2
  152. prefect/server/ui-v2/assets/{markdown-input-DPi8zyRr.js.map → markdown-input-CG6M9zD0.js.map} +1 -1
  153. prefect/server/ui-v2/assets/python-example-snippet-DRHcUlCX.js +3 -0
  154. prefect/server/ui-v2/assets/{python-example-snippet-DfCFYPN_.js.map → python-example-snippet-DRHcUlCX.js.map} +1 -1
  155. prefect/server/ui-v2/assets/{python-input-mr6GD840.js → python-input-BsUS8fw1.js} +2 -2
  156. prefect/server/ui-v2/assets/{python-input-mr6GD840.js.map → python-input-BsUS8fw1.js.map} +1 -1
  157. prefect/server/ui-v2/assets/{radio-group-Co3cN0Kv.js → radio-group-BUsmwdrt.js} +2 -2
  158. prefect/server/ui-v2/assets/{radio-group-Co3cN0Kv.js.map → radio-group-BUsmwdrt.js.map} +1 -1
  159. prefect/server/ui-v2/assets/{route-error-state-DnBaNT2T.js → route-error-state-BFBpiIhD.js} +2 -2
  160. prefect/server/ui-v2/assets/{route-error-state-DnBaNT2T.js.map → route-error-state-BFBpiIhD.js.map} +1 -1
  161. prefect/server/ui-v2/assets/{schema-form-CWDHSME9.js → schema-form-BwTmkvJk.js} +2 -2
  162. prefect/server/ui-v2/assets/{schema-form-CWDHSME9.js.map → schema-form-BwTmkvJk.js.map} +1 -1
  163. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-BSWlW_aQ.js → schema-form-input-string-format-datetime-nrb3g-JJ.js} +4 -4
  164. prefect/server/ui-v2/assets/{schema-form-input-string-format-datetime-BSWlW_aQ.js.map → schema-form-input-string-format-datetime-nrb3g-JJ.js.map} +1 -1
  165. prefect/server/ui-v2/assets/{settings-DU5y6tJE.js → settings-CUBtK5aW.js} +2 -2
  166. prefect/server/ui-v2/assets/{settings-DU5y6tJE.js.map → settings-CUBtK5aW.js.map} +1 -1
  167. prefect/server/ui-v2/assets/{sort-filter-DpuWNkQo.js → sort-filter-Cv8zAXMp.js} +2 -2
  168. prefect/server/ui-v2/assets/{sort-filter-DpuWNkQo.js.map → sort-filter-Cv8zAXMp.js.map} +1 -1
  169. prefect/server/ui-v2/assets/{table-bBL6C0ZK.js → table-BBNGfPra.js} +2 -2
  170. prefect/server/ui-v2/assets/{table-bBL6C0ZK.js.map → table-BBNGfPra.js.map} +1 -1
  171. prefect/server/ui-v2/assets/{tags-input-BLPMVWpZ.js → tags-input-DHrnkwjQ.js} +2 -2
  172. prefect/server/ui-v2/assets/{tags-input-BLPMVWpZ.js.map → tags-input-DHrnkwjQ.js.map} +1 -1
  173. prefect/server/ui-v2/assets/task-run-concurrency-limits-reset-dialog-Z8-yFZ2_.js +2 -0
  174. prefect/server/ui-v2/assets/{task-run-concurrency-limits-reset-dialog-S69sih55.js.map → task-run-concurrency-limits-reset-dialog-Z8-yFZ2_.js.map} +1 -1
  175. prefect/server/ui-v2/assets/{task-run._id-Dl3Azs8t.js → task-run._id-BY58gqs2.js} +2 -2
  176. prefect/server/ui-v2/assets/{task-run._id-Dl3Azs8t.js.map → task-run._id-BY58gqs2.js.map} +1 -1
  177. prefect/server/ui-v2/assets/{task-run._id-B_tIDm4K.js → task-run._id-u73Jxfqw.js} +3 -3
  178. prefect/server/ui-v2/assets/{task-run._id-B_tIDm4K.js.map → task-run._id-u73Jxfqw.js.map} +1 -1
  179. prefect/server/ui-v2/assets/task-runs-pagination-DUy3147A.js +2 -0
  180. prefect/server/ui-v2/assets/{task-runs-pagination-VdR-LO4r.js.map → task-runs-pagination-DUy3147A.js.map} +1 -1
  181. prefect/server/ui-v2/assets/{textarea-B3_TtPRi.js → textarea-DUhh6-kq.js} +2 -2
  182. prefect/server/ui-v2/assets/{textarea-B3_TtPRi.js.map → textarea-DUhh6-kq.js.map} +1 -1
  183. prefect/server/ui-v2/assets/timezone-select-D4Q6VBtD.js +2 -0
  184. prefect/server/ui-v2/assets/{timezone-select-BuPYznge.js.map → timezone-select-D4Q6VBtD.js.map} +1 -1
  185. prefect/server/ui-v2/assets/{toggle-group-Cn07UIim.js → toggle-group-7WUJn2Tx.js} +2 -2
  186. prefect/server/ui-v2/assets/{toggle-group-Cn07UIim.js.map → toggle-group-7WUJn2Tx.js.map} +1 -1
  187. prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-D4AD5Ndf.js +2 -0
  188. prefect/server/ui-v2/assets/{use-delete-automation-confirmation-dialog-DpdsLH4t.js.map → use-delete-automation-confirmation-dialog-D4AD5Ndf.js.map} +1 -1
  189. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-Cq5nGhzr.js → use-delete-block-document-confirmation-dialog-DnwWEGUY.js} +2 -2
  190. prefect/server/ui-v2/assets/{use-delete-block-document-confirmation-dialog-Cq5nGhzr.js.map → use-delete-block-document-confirmation-dialog-DnwWEGUY.js.map} +1 -1
  191. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DmQSWBTu.js → use-flow-runs-selected-rows-C-tehPRB.js} +2 -2
  192. prefect/server/ui-v2/assets/{use-flow-runs-selected-rows-DmQSWBTu.js.map → use-flow-runs-selected-rows-C-tehPRB.js.map} +1 -1
  193. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DTwcWiqW.js → use-get-artifacts-flow-task-runs-DRWRrmrb.js} +2 -2
  194. prefect/server/ui-v2/assets/{use-get-artifacts-flow-task-runs-DTwcWiqW.js.map → use-get-artifacts-flow-task-runs-DRWRrmrb.js.map} +1 -1
  195. prefect/server/ui-v2/assets/{use-quick-run-CPempwLh.js → use-quick-run-B4Xj-YQQ.js} +2 -2
  196. prefect/server/ui-v2/assets/{use-quick-run-CPempwLh.js.map → use-quick-run-B4Xj-YQQ.js.map} +1 -1
  197. prefect/server/ui-v2/assets/use-state-favicon-au2TZdMV.js +2 -0
  198. prefect/server/ui-v2/assets/{use-state-favicon-M09DmrNy.js.map → use-state-favicon-au2TZdMV.js.map} +1 -1
  199. prefect/server/ui-v2/assets/{use-stepper-CDucnvzp.js → use-stepper-DyIb3vlq.js} +2 -2
  200. prefect/server/ui-v2/assets/{use-stepper-CDucnvzp.js.map → use-stepper-DyIb3vlq.js.map} +1 -1
  201. prefect/server/ui-v2/assets/{utilities-BRCNRcQl.js → utilities-D9Y2wo66.js} +2 -2
  202. prefect/server/ui-v2/assets/{utilities-BRCNRcQl.js.map → utilities-D9Y2wo66.js.map} +1 -1
  203. prefect/server/ui-v2/assets/vendor-recharts-BvvJP9Po.js +34 -0
  204. prefect/server/ui-v2/assets/vendor-recharts-BvvJP9Po.js.map +1 -0
  205. prefect/server/ui-v2/assets/{work-pool-filter-C2tpSS-w.js → work-pool-filter-CSOATj2D.js} +2 -2
  206. prefect/server/ui-v2/assets/{work-pool-filter-C2tpSS-w.js.map → work-pool-filter-CSOATj2D.js.map} +1 -1
  207. prefect/server/ui-v2/assets/work-pool-queue-toggle-Dh7B1zMo.js +2 -0
  208. prefect/server/ui-v2/assets/{work-pool-queue-toggle-BQ9b-Wxy.js.map → work-pool-queue-toggle-Dh7B1zMo.js.map} +1 -1
  209. prefect/server/ui-v2/assets/work-pool._workPoolName-B_NFWXKS.js +2 -0
  210. prefect/server/ui-v2/assets/{work-pool._workPoolName-C_LiL3SE.js.map → work-pool._workPoolName-B_NFWXKS.js.map} +1 -1
  211. prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-DBHlrVVx.js → work-pool_._workPoolName.edit-Cyzn8g-S.js} +2 -2
  212. prefect/server/ui-v2/assets/{work-pool_._workPoolName.edit-DBHlrVVx.js.map → work-pool_._workPoolName.edit-Cyzn8g-S.js.map} +1 -1
  213. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-DkITxJOP.js → work-pool_._workPoolName.queue._workQueueName-DQzqQWPT.js} +2 -2
  214. prefect/server/ui-v2/assets/{work-pool_._workPoolName.queue._workQueueName-DkITxJOP.js.map → work-pool_._workPoolName.queue._workQueueName-DQzqQWPT.js.map} +1 -1
  215. prefect/server/ui-v2/assets/{work-queue-icon-text-D4BWBVDN.js → work-queue-icon-text-BOpcJ8YU.js} +2 -2
  216. prefect/server/ui-v2/assets/{work-queue-icon-text-D4BWBVDN.js.map → work-queue-icon-text-BOpcJ8YU.js.map} +1 -1
  217. prefect/server/ui-v2/index.html +3 -3
  218. {prefect-3.6.15.dist-info → prefect-3.6.16.dev2.dist-info}/METADATA +2 -1
  219. {prefect-3.6.15.dist-info → prefect-3.6.16.dev2.dist-info}/RECORD +222 -210
  220. prefect/server/ui-v2/assets/artifact._id-BFdf1WUA.js +0 -2
  221. prefect/server/ui-v2/assets/artifact._id-BFdf1WUA.js.map +0 -1
  222. prefect/server/ui-v2/assets/automation._id-Dn7jABys.js +0 -2
  223. prefect/server/ui-v2/assets/block-type-logo-Cbpfxded.js +0 -2
  224. prefect/server/ui-v2/assets/block-type-logo-Cbpfxded.js.map +0 -1
  225. prefect/server/ui-v2/assets/catalog_._slug-Bl2J2oI3.js +0 -2
  226. prefect/server/ui-v2/assets/create-D--LHaji.js +0 -2
  227. prefect/server/ui-v2/assets/data-table-rlbkLcrY.js +0 -2
  228. prefect/server/ui-v2/assets/data-table-rlbkLcrY.js.map +0 -1
  229. prefect/server/ui-v2/assets/delete-confirmation-dialog-DHkm2p8m.js +0 -2
  230. prefect/server/ui-v2/assets/deployment._id-Ci9zge5n.js +0 -2
  231. prefect/server/ui-v2/assets/deployment_._id.duplicate-D9ZWkh8H.js +0 -2
  232. prefect/server/ui-v2/assets/deployment_._id.edit-CS7sObzC.js +0 -2
  233. prefect/server/ui-v2/assets/event._eventDate._eventId-D7Twzb22.js +0 -2
  234. prefect/server/ui-v2/assets/flow-run._id-RLy2kBh0.js +0 -4
  235. prefect/server/ui-v2/assets/flow._id-BdQGWPKP.js +0 -2
  236. prefect/server/ui-v2/assets/index-7i4X9TeK.js +0 -2
  237. prefect/server/ui-v2/assets/index-BkiGTHwU.js +0 -2
  238. prefect/server/ui-v2/assets/index-BkiGTHwU.js.map +0 -1
  239. prefect/server/ui-v2/assets/index-COouj_0-.css +0 -1
  240. prefect/server/ui-v2/assets/index-CiSFHkhI.js +0 -2
  241. prefect/server/ui-v2/assets/index-DATPYZfT.js +0 -2
  242. prefect/server/ui-v2/assets/index-DATPYZfT.js.map +0 -1
  243. prefect/server/ui-v2/assets/index-VH4TnZ4e.js +0 -2
  244. prefect/server/ui-v2/assets/index-VH4TnZ4e.js.map +0 -1
  245. prefect/server/ui-v2/assets/python-example-snippet-DfCFYPN_.js +0 -3
  246. prefect/server/ui-v2/assets/task-run-concurrency-limits-reset-dialog-S69sih55.js +0 -2
  247. prefect/server/ui-v2/assets/task-runs-pagination-VdR-LO4r.js +0 -2
  248. prefect/server/ui-v2/assets/timezone-select-BuPYznge.js +0 -2
  249. prefect/server/ui-v2/assets/use-delete-automation-confirmation-dialog-DpdsLH4t.js +0 -2
  250. prefect/server/ui-v2/assets/use-state-favicon-M09DmrNy.js +0 -2
  251. prefect/server/ui-v2/assets/vendor-recharts-BAN776s_.js +0 -34
  252. prefect/server/ui-v2/assets/vendor-recharts-BAN776s_.js.map +0 -1
  253. prefect/server/ui-v2/assets/work-pool-queue-toggle-BQ9b-Wxy.js +0 -2
  254. prefect/server/ui-v2/assets/work-pool._workPoolName-C_LiL3SE.js +0 -2
  255. {prefect-3.6.15.dist-info → prefect-3.6.16.dev2.dist-info}/WHEEL +0 -0
  256. {prefect-3.6.15.dist-info → prefect-3.6.16.dev2.dist-info}/entry_points.txt +0 -0
  257. {prefect-3.6.15.dist-info → prefect-3.6.16.dev2.dist-info}/licenses/LICENSE +0 -0
@@ -1,2 +1,2 @@
1
- import{r as v,j as e}from"./vendor-tanstack-BcZfOOfy.js";import{ct as P,q as E,I as L,ak as N,cu as f,aq as k,al as D,cO as C,C as y,b5 as h,S as _,a as O,b as B,c as z,e as R,b6 as U,b7 as q,b8 as m,cC as V,b9 as W,ba as F,cD as G}from"./index-m48E4KcG.js";import{D as H,a as X,b as Y,d as g}from"./dropdown-menu-0atiOSFo.js";const A=2,ee=({defaultValue:c,selectedFilters:l=c||new Set,onSelectFilter:s})=>{const[n,r]=v.useState(!1),d=v.useMemo(()=>{const a=new Set(P);return l.has("Scheduled")||a.size!==l.size?!1:Array.from(l).every(t=>a.has(t))},[l]),u=()=>{s(new Set(P))},j=()=>{s(new Set)},S=a=>{if(d){s(new Set([a]));return}const t=new Set(l);l.has(a)?t.delete(a):t.add(a),s(t)},p=()=>{if(l.size===0)return"All run states";if(d)return"All except scheduled";const a=Array.from(l),t=a.slice(0,A),o=a.length-A;return e.jsxs("div",{className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:t.map(i=>e.jsx(k,{name:i,type:f[i]},i))}),o>0&&e.jsxs(D,{variant:"bodySmall",className:"shrink-0",children:["+ ",o]})]})};return e.jsxs(H,{open:n,onOpenChange:r,children:[e.jsx(X,{asChild:!0,children:e.jsxs(E,{variant:"outline",className:"justify-between w-full bg-card dark:bg-background",children:[e.jsx("span",{className:"flex-1 min-w-0",children:p()}),e.jsx(L,{id:"ChevronDown",className:"ml-2 size-4 shrink-0"})]})}),e.jsxs(Y,{className:"max-h-96 overflow-x-hidden overflow-y-auto",children:[e.jsxs(g,{onSelect:a=>{a.preventDefault(),u()},children:[e.jsx(N,{checked:d,className:"mr-2"}),"All except scheduled"]}),e.jsxs(g,{onSelect:a=>{a.preventDefault(),j()},children:[e.jsx(N,{checked:l.size===0,className:"mr-2"}),"All run states"]}),Object.keys(f).map(a=>e.jsxs(g,{"aria-label":a,onSelect:t=>{t.preventDefault(),S(a)},children:[e.jsx(N,{"aria-label":a,className:"mr-2",checked:!d&&l.has(a)}),e.jsx(k,{name:a,type:f[a]})]},a))]})]})},se=({flowRuns:c,onClearFilters:l,...s})=>c?c.length===0?e.jsx("div",{className:"flex justify-center py-4",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(D,{children:"No runs found"}),l&&e.jsx(E,{onClick:l,children:"Clear Filters"})]})}):e.jsx("ul",{className:"flex flex-col gap-2",children:c.map(n=>"onSelect"in s&&"selectedRows"in s?e.jsx("li",{children:e.jsx(C,{flowRun:n,checked:s.selectedRows.has(n.id),onCheckedChange:r=>s.onSelect(n.id,r)})},n.id):e.jsx("li",{children:e.jsx(C,{flowRun:n})},n.id))}):e.jsx(J,{numSkeletons:5}),J=({numSkeletons:c=1})=>e.jsx("ul",{className:"flex flex-col gap-1",children:Array.from({length:c}).map((l,s)=>e.jsx("li",{children:e.jsxs(y,{className:"flex flex-col gap-2 p-4",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx(h,{className:"h-4 w-[350px]"}),e.jsx(h,{className:"h-4 w-[400px]"})]}),e.jsx(h,{className:"h-4 w-[400px]"}),e.jsx(h,{className:"h-4 w-[200px]"})]})},s))}),Q=[5,10,25,50,100],ae=({count:c,pages:l,pagination:s,onChangePagination:n,onPrefetchPage:r})=>{const d=()=>n({limit:s.limit,page:1}),u=()=>n({limit:s.limit,page:s.page-1}),j=()=>n({limit:s.limit,page:s.page+1}),S=()=>n({limit:s.limit,page:l}),p=()=>{s.page>1&&r?.(1)},a=()=>{s.page>1&&r?.(s.page-1)},t=()=>{s.page<l&&r?.(s.page+1)},o=()=>{s.page<l&&r?.(l)},i=s.page<=1,w=s.page>=l,M=x=>{const b=Number(x),T=Math.ceil(c/b),I=Math.min(s.page,T);n({limit:b,page:I})};return e.jsxs("div",{className:"flex flex-row justify-between items-center",children:[e.jsxs("div",{className:"flex flex-row items-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:"whitespace-nowrap",children:"Items per page"}),e.jsxs(_,{value:String(s.limit),onValueChange:M,children:[e.jsx(O,{"aria-label":"Items per page",children:e.jsx(B,{placeholder:"Theme"})}),e.jsx(z,{children:Q.map(x=>e.jsx(R,{value:String(x),children:x},x))})]})]}),e.jsx(U,{className:"justify-end",children:e.jsxs(q,{children:[e.jsxs(m,{children:[e.jsx(V,{onClick:d,onMouseEnter:p,disabled:i}),e.jsx(W,{onClick:u,onMouseEnter:a,disabled:i})]}),e.jsxs(m,{className:"text-sm",children:["Page ",l===0?0:s.page," of ",l]}),e.jsx(m,{children:e.jsx(F,{onClick:j,onMouseEnter:t,disabled:w})}),e.jsx(m,{children:e.jsx(G,{onClick:S,onMouseEnter:o,disabled:w})})]})})]})};export{ae as F,ee as S,se as a};
2
- //# sourceMappingURL=flow-runs-pagination-BATUweRV.js.map
1
+ import{r as v,j as e}from"./vendor-tanstack-BcZfOOfy.js";import{cw as P,q as E,I as L,ao as N,cx as f,au as k,ap as M,cR as C,C as y,b9 as h,S as _,a as B,b as O,c as R,e as z,ba as U,bb as F,bc as m,cF as G,bd as V,be as W,cG as q}from"./index-B8vo2Lrg.js";import{D as H,a as X,b as Y,d as g}from"./dropdown-menu-D7Gwbd15.js";const A=2,ee=({defaultValue:c,selectedFilters:l=c||new Set,onSelectFilter:s})=>{const[n,r]=v.useState(!1),d=v.useMemo(()=>{const a=new Set(P);return l.has("Scheduled")||a.size!==l.size?!1:Array.from(l).every(t=>a.has(t))},[l]),u=()=>{s(new Set(P))},j=()=>{s(new Set)},S=a=>{if(d){s(new Set([a]));return}const t=new Set(l);l.has(a)?t.delete(a):t.add(a),s(t)},p=()=>{if(l.size===0)return"All run states";if(d)return"All except scheduled";const a=Array.from(l),t=a.slice(0,A),o=a.length-A;return e.jsxs("div",{className:"flex flex-1 min-w-0 items-center gap-2",children:[e.jsx("div",{className:"flex flex-1 min-w-0 items-center gap-2 overflow-hidden",children:t.map(i=>e.jsx(k,{name:i,type:f[i]},i))}),o>0&&e.jsxs(M,{variant:"bodySmall",className:"shrink-0",children:["+ ",o]})]})};return e.jsxs(H,{open:n,onOpenChange:r,children:[e.jsx(X,{asChild:!0,children:e.jsxs(E,{variant:"outline",className:"justify-between w-full bg-card dark:bg-background",children:[e.jsx("span",{className:"flex-1 min-w-0",children:p()}),e.jsx(L,{id:"ChevronDown",className:"ml-2 size-4 shrink-0"})]})}),e.jsxs(Y,{className:"max-h-96 overflow-x-hidden overflow-y-auto",children:[e.jsxs(g,{onSelect:a=>{a.preventDefault(),u()},children:[e.jsx(N,{checked:d,className:"mr-2"}),"All except scheduled"]}),e.jsxs(g,{onSelect:a=>{a.preventDefault(),j()},children:[e.jsx(N,{checked:l.size===0,className:"mr-2"}),"All run states"]}),Object.keys(f).map(a=>e.jsxs(g,{"aria-label":a,onSelect:t=>{t.preventDefault(),S(a)},children:[e.jsx(N,{"aria-label":a,className:"mr-2",checked:!d&&l.has(a)}),e.jsx(k,{name:a,type:f[a]})]},a))]})]})},se=({flowRuns:c,onClearFilters:l,...s})=>c?c.length===0?e.jsx("div",{className:"flex justify-center py-4",children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx(M,{children:"No runs found"}),l&&e.jsx(E,{onClick:l,children:"Clear Filters"})]})}):e.jsx("ul",{className:"flex flex-col gap-2",children:c.map(n=>"onSelect"in s&&"selectedRows"in s?e.jsx("li",{children:e.jsx(C,{flowRun:n,checked:s.selectedRows.has(n.id),onCheckedChange:r=>s.onSelect(n.id,r)})},n.id):e.jsx("li",{children:e.jsx(C,{flowRun:n})},n.id))}):e.jsx(J,{numSkeletons:5}),J=({numSkeletons:c=1})=>e.jsx("ul",{className:"flex flex-col gap-1",children:Array.from({length:c}).map((l,s)=>e.jsx("li",{children:e.jsxs(y,{className:"flex flex-col gap-2 p-4",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx(h,{className:"h-4 w-[350px]"}),e.jsx(h,{className:"h-4 w-[400px]"})]}),e.jsx(h,{className:"h-4 w-[400px]"}),e.jsx(h,{className:"h-4 w-[200px]"})]})},s))}),Q=[5,10,25,50,100],ae=({count:c,pages:l,pagination:s,onChangePagination:n,onPrefetchPage:r})=>{const d=()=>n({limit:s.limit,page:1}),u=()=>n({limit:s.limit,page:s.page-1}),j=()=>n({limit:s.limit,page:s.page+1}),S=()=>n({limit:s.limit,page:l}),p=()=>{s.page>1&&r?.(1)},a=()=>{s.page>1&&r?.(s.page-1)},t=()=>{s.page<l&&r?.(s.page+1)},o=()=>{s.page<l&&r?.(l)},i=s.page<=1,w=s.page>=l,D=x=>{const b=Number(x),T=Math.ceil(c/b),I=Math.min(s.page,T);n({limit:b,page:I})};return e.jsxs("div",{className:"flex flex-row justify-between items-center",children:[e.jsxs("div",{className:"flex flex-row items-center gap-2 text-xs text-muted-foreground",children:[e.jsx("span",{className:"whitespace-nowrap",children:"Items per page"}),e.jsxs(_,{value:String(s.limit),onValueChange:D,children:[e.jsx(B,{"aria-label":"Items per page",children:e.jsx(O,{placeholder:"Theme"})}),e.jsx(R,{children:Q.map(x=>e.jsx(z,{value:String(x),children:x},x))})]})]}),e.jsx(U,{className:"justify-end",children:e.jsxs(F,{children:[e.jsxs(m,{children:[e.jsx(G,{onClick:d,onMouseEnter:p,disabled:i}),e.jsx(V,{onClick:u,onMouseEnter:a,disabled:i})]}),e.jsxs(m,{className:"text-sm",children:["Page ",l===0?0:s.page," of ",l]}),e.jsx(m,{children:e.jsx(W,{onClick:j,onMouseEnter:t,disabled:w})}),e.jsx(m,{children:e.jsx(q,{onClick:S,onMouseEnter:o,disabled:w})})]})})]})};export{ae as F,ee as S,se as a};
2
+ //# sourceMappingURL=flow-runs-pagination-SLbYtvaR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow-runs-pagination-BATUweRV.js","sources":["../../src/components/flow-runs/flow-runs-list/flow-runs-filters/state-filter.tsx","../../src/components/flow-runs/flow-runs-list/flow-runs-list.tsx","../../src/components/flow-runs/flow-runs-list/flow-runs-pagination.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { StateBadge } from \"@/components/ui/state-badge\";\nimport { Typography } from \"@/components/ui/typography\";\nimport {\n\tFLOW_RUN_STATES_MAP,\n\tFLOW_RUN_STATES_NO_SCHEDULED,\n\ttype FlowRunState,\n} from \"./state-filters.constants\";\n\nconst MAX_FILTERS_DISPLAYED = 2;\n\ntype StateFilterProps = {\n\tdefaultValue?: Set<FlowRunState>;\n\tselectedFilters: Set<FlowRunState> | undefined;\n\tonSelectFilter: (filters: Set<FlowRunState>) => void;\n};\n\nexport const StateFilter = ({\n\tdefaultValue,\n\tselectedFilters = defaultValue || new Set(),\n\tonSelectFilter,\n}: StateFilterProps) => {\n\tconst [open, setOpen] = useState(false);\n\n\tconst isAllButScheduled = useMemo(() => {\n\t\tconst flowRunStatesNoScheduleSet = new Set<FlowRunState>(\n\t\t\tFLOW_RUN_STATES_NO_SCHEDULED,\n\t\t);\n\t\tif (\n\t\t\tselectedFilters.has(\"Scheduled\") ||\n\t\t\tflowRunStatesNoScheduleSet.size !== selectedFilters.size\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn Array.from(selectedFilters).every((filter) =>\n\t\t\tflowRunStatesNoScheduleSet.has(filter),\n\t\t);\n\t}, [selectedFilters]);\n\n\tconst handleSelectAllExceptScheduled = () => {\n\t\tonSelectFilter(new Set(FLOW_RUN_STATES_NO_SCHEDULED));\n\t};\n\n\tconst handleSelectAllRunState = () => {\n\t\tonSelectFilter(new Set());\n\t};\n\n\tconst handleSelectFilter = (filter: FlowRunState) => {\n\t\t// if all but scheduled is already selected, create a new set with the single filter\n\t\tif (isAllButScheduled) {\n\t\t\tonSelectFilter(new Set([filter]));\n\t\t\treturn;\n\t\t}\n\t\tconst updatedFilters = new Set(selectedFilters);\n\t\tif (selectedFilters.has(filter)) {\n\t\t\tupdatedFilters.delete(filter);\n\t\t} else {\n\t\t\tupdatedFilters.add(filter);\n\t\t}\n\t\tonSelectFilter(updatedFilters);\n\t};\n\n\tconst renderSelectedTags = () => {\n\t\tif (selectedFilters.size === 0) {\n\t\t\treturn \"All run states\";\n\t\t}\n\t\tif (isAllButScheduled) {\n\t\t\treturn \"All except scheduled\";\n\t\t}\n\n\t\tconst selected = Array.from(selectedFilters);\n\t\tconst visible = selected.slice(0, MAX_FILTERS_DISPLAYED);\n\t\tconst extraCount = selected.length - MAX_FILTERS_DISPLAYED;\n\n\t\treturn (\n\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2\">\n\t\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2 overflow-hidden\">\n\t\t\t\t\t{visible.map((filter) => (\n\t\t\t\t\t\t<StateBadge\n\t\t\t\t\t\t\tkey={filter}\n\t\t\t\t\t\t\tname={filter}\n\t\t\t\t\t\t\ttype={FLOW_RUN_STATES_MAP[filter]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t{extraCount > 0 && (\n\t\t\t\t\t<Typography variant=\"bodySmall\" className=\"shrink-0\">\n\t\t\t\t\t\t+ {extraCount}\n\t\t\t\t\t</Typography>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\treturn (\n\t\t<DropdownMenu open={open} onOpenChange={setOpen}>\n\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\tclassName=\"justify-between w-full bg-card dark:bg-background\"\n\t\t\t\t>\n\t\t\t\t\t<span className=\"flex-1 min-w-0\">{renderSelectedTags()}</span>\n\t\t\t\t\t<Icon id=\"ChevronDown\" className=\"ml-2 size-4 shrink-0\" />\n\t\t\t\t</Button>\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent className=\"max-h-96 overflow-x-hidden overflow-y-auto\">\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tonSelect={(e) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\thandleSelectAllExceptScheduled();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox checked={isAllButScheduled} className=\"mr-2\" />\n\t\t\t\t\tAll except scheduled\n\t\t\t\t</DropdownMenuItem>\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tonSelect={(e) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\thandleSelectAllRunState();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox checked={selectedFilters.size === 0} className=\"mr-2\" />\n\t\t\t\t\tAll run states\n\t\t\t\t</DropdownMenuItem>\n\t\t\t\t{Object.keys(FLOW_RUN_STATES_MAP).map((filterKey) => (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\taria-label={filterKey}\n\t\t\t\t\t\tkey={filterKey}\n\t\t\t\t\t\tonSelect={(e) => {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleSelectFilter(filterKey as FlowRunState);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\taria-label={filterKey}\n\t\t\t\t\t\t\tclassName=\"mr-2\"\n\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t!isAllButScheduled &&\n\t\t\t\t\t\t\t\tselectedFilters.has(filterKey as FlowRunState)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<StateBadge\n\t\t\t\t\t\t\tname={filterKey}\n\t\t\t\t\t\t\ttype={FLOW_RUN_STATES_MAP[filterKey as FlowRunState]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t))}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n};\n","import {\n\tFlowRunCard,\n\ttype FlowRunCardData,\n} from \"@/components/flow-runs/flow-run-card\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Typography } from \"@/components/ui/typography\";\n\ntype FlowRunCardProps =\n\t| {\n\t\t\tflowRuns: Array<FlowRunCardData> | undefined;\n\t\t\tonClearFilters?: () => void;\n\t }\n\t| {\n\t\t\tflowRuns: Array<FlowRunCardData> | undefined;\n\t\t\tonSelect: (id: string, checked: boolean) => void;\n\t\t\tselectedRows: Set<string>;\n\t\t\tonClearFilters?: () => void;\n\t };\n\nexport const FlowRunsList = ({\n\tflowRuns,\n\tonClearFilters,\n\t...props\n}: FlowRunCardProps) => {\n\tif (!flowRuns) {\n\t\treturn <LoadingSkeleton numSkeletons={5} />;\n\t}\n\n\tif (flowRuns.length === 0) {\n\t\treturn (\n\t\t\t<div className=\"flex justify-center py-4\">\n\t\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t\t<Typography>No runs found</Typography>\n\t\t\t\t\t{onClearFilters && (\n\t\t\t\t\t\t<Button onClick={onClearFilters}>Clear Filters</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ul className=\"flex flex-col gap-2\">\n\t\t\t{flowRuns.map((flowRun) => {\n\t\t\t\t// Variant for selectable list\n\t\t\t\tif (\"onSelect\" in props && \"selectedRows\" in props) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={flowRun.id}>\n\t\t\t\t\t\t\t<FlowRunCard\n\t\t\t\t\t\t\t\tflowRun={flowRun}\n\t\t\t\t\t\t\t\tchecked={props.selectedRows.has(flowRun.id)}\n\t\t\t\t\t\t\t\tonCheckedChange={(checked) =>\n\t\t\t\t\t\t\t\t\tprops.onSelect(flowRun.id, checked)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<li key={flowRun.id}>\n\t\t\t\t\t\t<FlowRunCard flowRun={flowRun} />\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ul>\n\t);\n};\n\ntype LoadingSkeletonProps = {\n\tnumSkeletons?: number;\n};\nconst LoadingSkeleton = ({ numSkeletons = 1 }: LoadingSkeletonProps) => (\n\t<ul className=\"flex flex-col gap-1\">\n\t\t{Array.from({ length: numSkeletons }).map((_, i) => (\n\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: okay for static skeleton list\n\t\t\t<li key={i}>\n\t\t\t\t<Card className=\"flex flex-col gap-2 p-4\">\n\t\t\t\t\t<div className=\"flex justify-between\">\n\t\t\t\t\t\t<Skeleton className=\"h-4 w-[350px]\" />\n\t\t\t\t\t\t<Skeleton className=\"h-4 w-[400px]\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Skeleton className=\"h-4 w-[400px]\" />\n\t\t\t\t\t<Skeleton className=\"h-4 w-[200px]\" />\n\t\t\t\t</Card>\n\t\t\t</li>\n\t\t))}\n\t</ul>\n);\n","import {\n\tPagination,\n\tPaginationContent,\n\tPaginationFirstButton,\n\tPaginationItem,\n\tPaginationLastButton,\n\tPaginationNextButton,\n\tPaginationPreviousButton,\n} from \"@/components/ui/pagination\";\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from \"@/components/ui/select\";\n\nconst PAGINATION_INCREMENTS = [5, 10, 25, 50, 100];\n\nexport type PaginationState = {\n\tlimit: number;\n\tpage: number;\n};\nexport type PaginationStateUpdater = (\n\tprevState: PaginationState,\n) => PaginationState;\n\ntype FlowRunsPaginationProps = {\n\tcount: number;\n\tpages: number;\n\tpagination: PaginationState;\n\tonChangePagination: (pagination: PaginationState) => void;\n\tonPrefetchPage?: (page: number) => void;\n};\nexport const FlowRunsPagination = ({\n\tcount,\n\tpages,\n\tpagination,\n\tonChangePagination,\n\tonPrefetchPage,\n}: FlowRunsPaginationProps) => {\n\tconst handleFirstPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: 1 });\n\tconst handlePreviousPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: pagination.page - 1 });\n\tconst handleNextPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: pagination.page + 1 });\n\n\tconst handleLastPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: pages });\n\n\tconst handlePrefetchFirstPage = () => {\n\t\tif (pagination.page > 1) onPrefetchPage?.(1);\n\t};\n\tconst handlePrefetchPreviousPage = () => {\n\t\tif (pagination.page > 1) onPrefetchPage?.(pagination.page - 1);\n\t};\n\tconst handlePrefetchNextPage = () => {\n\t\tif (pagination.page < pages) onPrefetchPage?.(pagination.page + 1);\n\t};\n\tconst handlePrefetchLastPage = () => {\n\t\tif (pagination.page < pages) onPrefetchPage?.(pages);\n\t};\n\n\tconst disablePreviousPage = pagination.page <= 1;\n\tconst disableNextPage = pagination.page >= pages;\n\n\tconst handleChangeLimit = (value: string) => {\n\t\tconst newLimit = Number(value);\n\t\tconst newTotalPages = Math.ceil(count / newLimit);\n\t\tconst newPage = Math.min(pagination.page, newTotalPages);\n\t\tonChangePagination({\n\t\t\tlimit: newLimit,\n\t\t\tpage: newPage,\n\t\t});\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-row justify-between items-center\">\n\t\t\t<div className=\"flex flex-row items-center gap-2 text-xs text-muted-foreground\">\n\t\t\t\t<span className=\"whitespace-nowrap\">Items per page</span>\n\t\t\t\t<Select\n\t\t\t\t\tvalue={String(pagination.limit)}\n\t\t\t\t\tonValueChange={handleChangeLimit}\n\t\t\t\t>\n\t\t\t\t\t<SelectTrigger aria-label=\"Items per page\">\n\t\t\t\t\t\t<SelectValue placeholder=\"Theme\" />\n\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t{PAGINATION_INCREMENTS.map((increment) => (\n\t\t\t\t\t\t\t<SelectItem key={increment} value={String(increment)}>\n\t\t\t\t\t\t\t\t{increment}\n\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SelectContent>\n\t\t\t\t</Select>\n\t\t\t</div>\n\t\t\t<Pagination className=\"justify-end\">\n\t\t\t\t<PaginationContent>\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationFirstButton\n\t\t\t\t\t\t\tonClick={handleFirstPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchFirstPage}\n\t\t\t\t\t\t\tdisabled={disablePreviousPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<PaginationPreviousButton\n\t\t\t\t\t\t\tonClick={handlePreviousPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchPreviousPage}\n\t\t\t\t\t\t\tdisabled={disablePreviousPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t<PaginationItem className=\"text-sm\">\n\t\t\t\t\t\tPage {pages === 0 ? 0 : pagination.page} of {pages}\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationNextButton\n\t\t\t\t\t\t\tonClick={handleNextPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchNextPage}\n\t\t\t\t\t\t\tdisabled={disableNextPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationLastButton\n\t\t\t\t\t\t\tonClick={handleLastPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchLastPage}\n\t\t\t\t\t\t\tdisabled={disableNextPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</PaginationContent>\n\t\t\t</Pagination>\n\t\t</div>\n\t);\n};\n"],"names":["MAX_FILTERS_DISPLAYED","StateFilter","defaultValue","selectedFilters","onSelectFilter","open","setOpen","useState","isAllButScheduled","useMemo","flowRunStatesNoScheduleSet","FLOW_RUN_STATES_NO_SCHEDULED","filter","handleSelectAllExceptScheduled","handleSelectAllRunState","handleSelectFilter","updatedFilters","renderSelectedTags","selected","visible","extraCount","jsxs","jsx","StateBadge","FLOW_RUN_STATES_MAP","Typography","DropdownMenu","DropdownMenuTrigger","Button","Icon","DropdownMenuContent","DropdownMenuItem","e","Checkbox","filterKey","FlowRunsList","flowRuns","onClearFilters","props","flowRun","FlowRunCard","checked","LoadingSkeleton","numSkeletons","_","i","Card","Skeleton","PAGINATION_INCREMENTS","FlowRunsPagination","count","pages","pagination","onChangePagination","onPrefetchPage","handleFirstPage","handlePreviousPage","handleNextPage","handleLastPage","handlePrefetchFirstPage","handlePrefetchPreviousPage","handlePrefetchNextPage","handlePrefetchLastPage","disablePreviousPage","disableNextPage","handleChangeLimit","value","newLimit","newTotalPages","newPage","Select","SelectTrigger","SelectValue","SelectContent","increment","SelectItem","Pagination","PaginationContent","PaginationItem","PaginationFirstButton","PaginationPreviousButton","PaginationNextButton","PaginationLastButton"],"mappings":"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"}
1
+ {"version":3,"file":"flow-runs-pagination-SLbYtvaR.js","sources":["../../src/components/flow-runs/flow-runs-list/flow-runs-filters/state-filter.tsx","../../src/components/flow-runs/flow-runs-list/flow-runs-list.tsx","../../src/components/flow-runs/flow-runs-list/flow-runs-pagination.tsx"],"sourcesContent":["import { useMemo, useState } from \"react\";\nimport { Button } from \"@/components/ui/button\";\nimport { Checkbox } from \"@/components/ui/checkbox\";\nimport {\n\tDropdownMenu,\n\tDropdownMenuContent,\n\tDropdownMenuItem,\n\tDropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\";\nimport { Icon } from \"@/components/ui/icons\";\nimport { StateBadge } from \"@/components/ui/state-badge\";\nimport { Typography } from \"@/components/ui/typography\";\nimport {\n\tFLOW_RUN_STATES_MAP,\n\tFLOW_RUN_STATES_NO_SCHEDULED,\n\ttype FlowRunState,\n} from \"./state-filters.constants\";\n\nconst MAX_FILTERS_DISPLAYED = 2;\n\ntype StateFilterProps = {\n\tdefaultValue?: Set<FlowRunState>;\n\tselectedFilters: Set<FlowRunState> | undefined;\n\tonSelectFilter: (filters: Set<FlowRunState>) => void;\n};\n\nexport const StateFilter = ({\n\tdefaultValue,\n\tselectedFilters = defaultValue || new Set(),\n\tonSelectFilter,\n}: StateFilterProps) => {\n\tconst [open, setOpen] = useState(false);\n\n\tconst isAllButScheduled = useMemo(() => {\n\t\tconst flowRunStatesNoScheduleSet = new Set<FlowRunState>(\n\t\t\tFLOW_RUN_STATES_NO_SCHEDULED,\n\t\t);\n\t\tif (\n\t\t\tselectedFilters.has(\"Scheduled\") ||\n\t\t\tflowRunStatesNoScheduleSet.size !== selectedFilters.size\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t\treturn Array.from(selectedFilters).every((filter) =>\n\t\t\tflowRunStatesNoScheduleSet.has(filter),\n\t\t);\n\t}, [selectedFilters]);\n\n\tconst handleSelectAllExceptScheduled = () => {\n\t\tonSelectFilter(new Set(FLOW_RUN_STATES_NO_SCHEDULED));\n\t};\n\n\tconst handleSelectAllRunState = () => {\n\t\tonSelectFilter(new Set());\n\t};\n\n\tconst handleSelectFilter = (filter: FlowRunState) => {\n\t\t// if all but scheduled is already selected, create a new set with the single filter\n\t\tif (isAllButScheduled) {\n\t\t\tonSelectFilter(new Set([filter]));\n\t\t\treturn;\n\t\t}\n\t\tconst updatedFilters = new Set(selectedFilters);\n\t\tif (selectedFilters.has(filter)) {\n\t\t\tupdatedFilters.delete(filter);\n\t\t} else {\n\t\t\tupdatedFilters.add(filter);\n\t\t}\n\t\tonSelectFilter(updatedFilters);\n\t};\n\n\tconst renderSelectedTags = () => {\n\t\tif (selectedFilters.size === 0) {\n\t\t\treturn \"All run states\";\n\t\t}\n\t\tif (isAllButScheduled) {\n\t\t\treturn \"All except scheduled\";\n\t\t}\n\n\t\tconst selected = Array.from(selectedFilters);\n\t\tconst visible = selected.slice(0, MAX_FILTERS_DISPLAYED);\n\t\tconst extraCount = selected.length - MAX_FILTERS_DISPLAYED;\n\n\t\treturn (\n\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2\">\n\t\t\t\t<div className=\"flex flex-1 min-w-0 items-center gap-2 overflow-hidden\">\n\t\t\t\t\t{visible.map((filter) => (\n\t\t\t\t\t\t<StateBadge\n\t\t\t\t\t\t\tkey={filter}\n\t\t\t\t\t\t\tname={filter}\n\t\t\t\t\t\t\ttype={FLOW_RUN_STATES_MAP[filter]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\t\t\t\t{extraCount > 0 && (\n\t\t\t\t\t<Typography variant=\"bodySmall\" className=\"shrink-0\">\n\t\t\t\t\t\t+ {extraCount}\n\t\t\t\t\t</Typography>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\treturn (\n\t\t<DropdownMenu open={open} onOpenChange={setOpen}>\n\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\tclassName=\"justify-between w-full bg-card dark:bg-background\"\n\t\t\t\t>\n\t\t\t\t\t<span className=\"flex-1 min-w-0\">{renderSelectedTags()}</span>\n\t\t\t\t\t<Icon id=\"ChevronDown\" className=\"ml-2 size-4 shrink-0\" />\n\t\t\t\t</Button>\n\t\t\t</DropdownMenuTrigger>\n\t\t\t<DropdownMenuContent className=\"max-h-96 overflow-x-hidden overflow-y-auto\">\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tonSelect={(e) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\thandleSelectAllExceptScheduled();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox checked={isAllButScheduled} className=\"mr-2\" />\n\t\t\t\t\tAll except scheduled\n\t\t\t\t</DropdownMenuItem>\n\t\t\t\t<DropdownMenuItem\n\t\t\t\t\tonSelect={(e) => {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\thandleSelectAllRunState();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<Checkbox checked={selectedFilters.size === 0} className=\"mr-2\" />\n\t\t\t\t\tAll run states\n\t\t\t\t</DropdownMenuItem>\n\t\t\t\t{Object.keys(FLOW_RUN_STATES_MAP).map((filterKey) => (\n\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\taria-label={filterKey}\n\t\t\t\t\t\tkey={filterKey}\n\t\t\t\t\t\tonSelect={(e) => {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\thandleSelectFilter(filterKey as FlowRunState);\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Checkbox\n\t\t\t\t\t\t\taria-label={filterKey}\n\t\t\t\t\t\t\tclassName=\"mr-2\"\n\t\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t\t!isAllButScheduled &&\n\t\t\t\t\t\t\t\tselectedFilters.has(filterKey as FlowRunState)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<StateBadge\n\t\t\t\t\t\t\tname={filterKey}\n\t\t\t\t\t\t\ttype={FLOW_RUN_STATES_MAP[filterKey as FlowRunState]}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t))}\n\t\t\t</DropdownMenuContent>\n\t\t</DropdownMenu>\n\t);\n};\n","import {\n\tFlowRunCard,\n\ttype FlowRunCardData,\n} from \"@/components/flow-runs/flow-run-card\";\nimport { Button } from \"@/components/ui/button\";\nimport { Card } from \"@/components/ui/card\";\nimport { Skeleton } from \"@/components/ui/skeleton\";\nimport { Typography } from \"@/components/ui/typography\";\n\ntype FlowRunCardProps =\n\t| {\n\t\t\tflowRuns: Array<FlowRunCardData> | undefined;\n\t\t\tonClearFilters?: () => void;\n\t }\n\t| {\n\t\t\tflowRuns: Array<FlowRunCardData> | undefined;\n\t\t\tonSelect: (id: string, checked: boolean) => void;\n\t\t\tselectedRows: Set<string>;\n\t\t\tonClearFilters?: () => void;\n\t };\n\nexport const FlowRunsList = ({\n\tflowRuns,\n\tonClearFilters,\n\t...props\n}: FlowRunCardProps) => {\n\tif (!flowRuns) {\n\t\treturn <LoadingSkeleton numSkeletons={5} />;\n\t}\n\n\tif (flowRuns.length === 0) {\n\t\treturn (\n\t\t\t<div className=\"flex justify-center py-4\">\n\t\t\t\t<div className=\"flex flex-col gap-2\">\n\t\t\t\t\t<Typography>No runs found</Typography>\n\t\t\t\t\t{onClearFilters && (\n\t\t\t\t\t\t<Button onClick={onClearFilters}>Clear Filters</Button>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ul className=\"flex flex-col gap-2\">\n\t\t\t{flowRuns.map((flowRun) => {\n\t\t\t\t// Variant for selectable list\n\t\t\t\tif (\"onSelect\" in props && \"selectedRows\" in props) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={flowRun.id}>\n\t\t\t\t\t\t\t<FlowRunCard\n\t\t\t\t\t\t\t\tflowRun={flowRun}\n\t\t\t\t\t\t\t\tchecked={props.selectedRows.has(flowRun.id)}\n\t\t\t\t\t\t\t\tonCheckedChange={(checked) =>\n\t\t\t\t\t\t\t\t\tprops.onSelect(flowRun.id, checked)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\t<li key={flowRun.id}>\n\t\t\t\t\t\t<FlowRunCard flowRun={flowRun} />\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t})}\n\t\t</ul>\n\t);\n};\n\ntype LoadingSkeletonProps = {\n\tnumSkeletons?: number;\n};\nconst LoadingSkeleton = ({ numSkeletons = 1 }: LoadingSkeletonProps) => (\n\t<ul className=\"flex flex-col gap-1\">\n\t\t{Array.from({ length: numSkeletons }).map((_, i) => (\n\t\t\t// biome-ignore lint/suspicious/noArrayIndexKey: okay for static skeleton list\n\t\t\t<li key={i}>\n\t\t\t\t<Card className=\"flex flex-col gap-2 p-4\">\n\t\t\t\t\t<div className=\"flex justify-between\">\n\t\t\t\t\t\t<Skeleton className=\"h-4 w-[350px]\" />\n\t\t\t\t\t\t<Skeleton className=\"h-4 w-[400px]\" />\n\t\t\t\t\t</div>\n\t\t\t\t\t<Skeleton className=\"h-4 w-[400px]\" />\n\t\t\t\t\t<Skeleton className=\"h-4 w-[200px]\" />\n\t\t\t\t</Card>\n\t\t\t</li>\n\t\t))}\n\t</ul>\n);\n","import {\n\tPagination,\n\tPaginationContent,\n\tPaginationFirstButton,\n\tPaginationItem,\n\tPaginationLastButton,\n\tPaginationNextButton,\n\tPaginationPreviousButton,\n} from \"@/components/ui/pagination\";\nimport {\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from \"@/components/ui/select\";\n\nconst PAGINATION_INCREMENTS = [5, 10, 25, 50, 100];\n\nexport type PaginationState = {\n\tlimit: number;\n\tpage: number;\n};\nexport type PaginationStateUpdater = (\n\tprevState: PaginationState,\n) => PaginationState;\n\ntype FlowRunsPaginationProps = {\n\tcount: number;\n\tpages: number;\n\tpagination: PaginationState;\n\tonChangePagination: (pagination: PaginationState) => void;\n\tonPrefetchPage?: (page: number) => void;\n};\nexport const FlowRunsPagination = ({\n\tcount,\n\tpages,\n\tpagination,\n\tonChangePagination,\n\tonPrefetchPage,\n}: FlowRunsPaginationProps) => {\n\tconst handleFirstPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: 1 });\n\tconst handlePreviousPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: pagination.page - 1 });\n\tconst handleNextPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: pagination.page + 1 });\n\n\tconst handleLastPage = () =>\n\t\tonChangePagination({ limit: pagination.limit, page: pages });\n\n\tconst handlePrefetchFirstPage = () => {\n\t\tif (pagination.page > 1) onPrefetchPage?.(1);\n\t};\n\tconst handlePrefetchPreviousPage = () => {\n\t\tif (pagination.page > 1) onPrefetchPage?.(pagination.page - 1);\n\t};\n\tconst handlePrefetchNextPage = () => {\n\t\tif (pagination.page < pages) onPrefetchPage?.(pagination.page + 1);\n\t};\n\tconst handlePrefetchLastPage = () => {\n\t\tif (pagination.page < pages) onPrefetchPage?.(pages);\n\t};\n\n\tconst disablePreviousPage = pagination.page <= 1;\n\tconst disableNextPage = pagination.page >= pages;\n\n\tconst handleChangeLimit = (value: string) => {\n\t\tconst newLimit = Number(value);\n\t\tconst newTotalPages = Math.ceil(count / newLimit);\n\t\tconst newPage = Math.min(pagination.page, newTotalPages);\n\t\tonChangePagination({\n\t\t\tlimit: newLimit,\n\t\t\tpage: newPage,\n\t\t});\n\t};\n\n\treturn (\n\t\t<div className=\"flex flex-row justify-between items-center\">\n\t\t\t<div className=\"flex flex-row items-center gap-2 text-xs text-muted-foreground\">\n\t\t\t\t<span className=\"whitespace-nowrap\">Items per page</span>\n\t\t\t\t<Select\n\t\t\t\t\tvalue={String(pagination.limit)}\n\t\t\t\t\tonValueChange={handleChangeLimit}\n\t\t\t\t>\n\t\t\t\t\t<SelectTrigger aria-label=\"Items per page\">\n\t\t\t\t\t\t<SelectValue placeholder=\"Theme\" />\n\t\t\t\t\t</SelectTrigger>\n\t\t\t\t\t<SelectContent>\n\t\t\t\t\t\t{PAGINATION_INCREMENTS.map((increment) => (\n\t\t\t\t\t\t\t<SelectItem key={increment} value={String(increment)}>\n\t\t\t\t\t\t\t\t{increment}\n\t\t\t\t\t\t\t</SelectItem>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SelectContent>\n\t\t\t\t</Select>\n\t\t\t</div>\n\t\t\t<Pagination className=\"justify-end\">\n\t\t\t\t<PaginationContent>\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationFirstButton\n\t\t\t\t\t\t\tonClick={handleFirstPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchFirstPage}\n\t\t\t\t\t\t\tdisabled={disablePreviousPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<PaginationPreviousButton\n\t\t\t\t\t\t\tonClick={handlePreviousPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchPreviousPage}\n\t\t\t\t\t\t\tdisabled={disablePreviousPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t<PaginationItem className=\"text-sm\">\n\t\t\t\t\t\tPage {pages === 0 ? 0 : pagination.page} of {pages}\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationNextButton\n\t\t\t\t\t\t\tonClick={handleNextPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchNextPage}\n\t\t\t\t\t\t\tdisabled={disableNextPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t\t<PaginationItem>\n\t\t\t\t\t\t<PaginationLastButton\n\t\t\t\t\t\t\tonClick={handleLastPage}\n\t\t\t\t\t\t\tonMouseEnter={handlePrefetchLastPage}\n\t\t\t\t\t\t\tdisabled={disableNextPage}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PaginationItem>\n\t\t\t\t</PaginationContent>\n\t\t\t</Pagination>\n\t\t</div>\n\t);\n};\n"],"names":["MAX_FILTERS_DISPLAYED","StateFilter","defaultValue","selectedFilters","onSelectFilter","open","setOpen","useState","isAllButScheduled","useMemo","flowRunStatesNoScheduleSet","FLOW_RUN_STATES_NO_SCHEDULED","filter","handleSelectAllExceptScheduled","handleSelectAllRunState","handleSelectFilter","updatedFilters","renderSelectedTags","selected","visible","extraCount","jsxs","jsx","StateBadge","FLOW_RUN_STATES_MAP","Typography","DropdownMenu","DropdownMenuTrigger","Button","Icon","DropdownMenuContent","DropdownMenuItem","e","Checkbox","filterKey","FlowRunsList","flowRuns","onClearFilters","props","flowRun","FlowRunCard","checked","LoadingSkeleton","numSkeletons","_","i","Card","Skeleton","PAGINATION_INCREMENTS","FlowRunsPagination","count","pages","pagination","onChangePagination","onPrefetchPage","handleFirstPage","handlePreviousPage","handleNextPage","handleLastPage","handlePrefetchFirstPage","handlePrefetchPreviousPage","handlePrefetchNextPage","handlePrefetchLastPage","disablePreviousPage","disableNextPage","handleChangeLimit","value","newLimit","newTotalPages","newPage","Select","SelectTrigger","SelectValue","SelectContent","increment","SelectItem","Pagination","PaginationContent","PaginationItem","PaginationFirstButton","PaginationPreviousButton","PaginationNextButton","PaginationLastButton"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{d as oe,j as e,r as o,t as H,C as Se,D as we,E as G,n as Ne}from"./vendor-tanstack-BcZfOOfy.js";import{aW as Re,y as z,bQ as re,aR as ie,aV as ce,ao as $,q as E,I as de,cH as Fe,ap as q,bR as Te,V as ue,S as ke,a as Ae,b as _e,c as Ee,e as Pe,c7 as me,a2 as Be,a3 as Ie,a4 as Oe,a5 as Me,a6 as Le,a7 as He,bP as U,B as ze,g as Qe,h as Y,bw as Ge,bF as We,bH as Ke,aH as B,cI as Ve,cJ as $e,cK as qe,cL as Ue,cM as Ye,cN as Ze,C as pe,m as he,n as ge,o as xe,a$ as Je,aG as Xe,cO as es,cP as ss,b9 as as,aA as ts,aB as ns,aC as M,aD as L,cQ as m,as as ls,bi as os,aI as Z,aL as J,aP as rs}from"./index-B8vo2Lrg.js";import{S as is}from"./sort-filter-Cv8zAXMp.js";import{S as cs,a as ds,F as us}from"./flow-runs-pagination-SLbYtvaR.js";import{u as ms,F as ps}from"./use-flow-runs-selected-rows-C-tehPRB.js";import{D as hs}from"./delete-confirmation-dialog-CwDK_2QS.js";import{D as gs}from"./data-table-CPkppyg6.js";import{T as xs}from"./tags-input-DHrnkwjQ.js";import{D as fe,a as ye,b as je,d as Q,c as fs}from"./dropdown-menu-D7Gwbd15.js";import{S as ys}from"./index-DlHOXQhu.js";import{S as js}from"./index-CUVvZndW.js";import{s as bs,U as vs,_ as Cs}from"./vendor-date-wwuDAncJ.js";import{A as Ds,b as X}from"./vendor-recharts-BvvJP9Po.js";import{u as Ss}from"./use-page-title-DEH55Ovu.js";import{o as ws,e as I,a as ee,s as O,n as A,d as se}from"./vendor-forms-ClCIacbh.js";import"./vendor-react-Bce9NwRC.js";import"./vendor-radix-BTiKGWfR.js";import"./use-delete-confirmation-dialog-CUdii6Lo.js";import"./table-BBNGfPra.js";import"./cronstrue-Bevg0uGw.js";import"./use-is-overflowing-CpSV4NPP.js";const Ns=({flow:s,open:a,onOpenChange:t,onDeleted:n})=>{const l=oe(),{deleteFlow:r,isPending:c}=Re(),d=()=>{r(s.id,{onSuccess:()=>{z.success("Flow deleted"),n?.(),l({to:"/flows"})},onError:()=>{z.error("Failed to delete flow")}})};return e.jsx(hs,{isOpen:a,title:"Delete Flow",description:`Are you sure you want to delete ${s.name}? This action cannot be undone.`,isLoading:c,loadingText:"Deleting...",onConfirm:d,onClose:()=>t(!1)})},ae=4,Rs=2,Fs=({deploymentId:s})=>{const[a,t]=o.useState(0),n=re(a,150),l=o.useCallback(u=>{if(!u)return;const p=()=>{const h=u.getBoundingClientRect().width;t(Math.floor(h/(ae+Rs)))};p();const x=new ResizeObserver(p);return x.observe(u),()=>{x.disconnect()}},[]),r=n||a,{data:c}=H(ie({deployments:{operator:"and_",id:{any_:[s]}},limit:Math.min(60,r||60),sort:"START_TIME_DESC",offset:0})),d=c?.map(u=>({...u}))??[];return e.jsx("div",{className:"w-full",ref:l,children:e.jsx(ce,{enrichedFlowRuns:d,startDate:bs(new Date,vs),endDate:new Date,barWidth:ae,numberOfBars:r,className:"h-8 w-full",chartId:`deployment-${s}`})})},Ts=[{id:"select",header:({table:s})=>e.jsx($,{checked:s.getIsAllPageRowsSelected(),onCheckedChange:a=>s.toggleAllPageRowsSelected(!!a),"aria-label":"Select all"}),cell:({row:s})=>e.jsx($,{checked:s.getIsSelected(),onCheckedChange:a=>s.toggleSelected(!!a),"aria-label":"Select row"}),enableSorting:!1,enableHiding:!1,maxSize:20,minSize:20},{accessorKey:"name",header:"Name",cell:({row:s})=>s.original.name},{accessorKey:"status",header:"Status",cell:({row:s})=>{const a=s.original.paused?"PAUSED":s.original.status??"NOT_READY";return e.jsx(js,{status:a})}},{accessorKey:"tags",header:"Tags",cell:({row:s})=>e.jsx("div",{className:"flex flex-wrap gap-1",children:s.original.tags?.map(a=>e.jsx("span",{className:"bg-gray-100 text-gray-800 text-xs font-medium px-2 py-0.5 rounded",children:a},a))})},{accessorKey:"schedules",header:"Schedules",cell:({row:s})=>{const a=s.original.schedules;return!a||a.length===0?null:e.jsx(ys,{schedules:a})},size:150},{accessorKey:"activity",header:"Activity",cell:({row:s})=>s.original.id?e.jsx(Fs,{deploymentId:s.original.id}):null},{id:"actions",cell:({row:s})=>s.original.id?e.jsxs(fe,{children:[e.jsx(ye,{asChild:!0,children:e.jsxs(E,{variant:"ghost",className:"size-8 p-0",children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(de,{id:"MoreHorizontal",className:"size-4"})]})}),e.jsx(je,{align:"end",children:e.jsx(Q,{onClick:()=>{navigator.clipboard.writeText(s.original.id)},children:"Copy ID"})})]}):null,minSize:30,maxSize:30}],ks=[{label:"Created",value:"CREATED_DESC"},{label:"A to Z",value:"NAME_ASC"},{label:"Z to A",value:"NAME_DESC"}],As=({deployments:s,deploymentsCount:a,deploymentsPages:t,deploymentSearch:n,onDeploymentSearchChange:l,deploymentTags:r,onDeploymentTagsChange:c,deploymentSort:d,onDeploymentSortChange:u,deploymentPagination:p,onDeploymentPaginationChange:x})=>{const[h,y]=o.useState({}),[g,f]=o.useState(!1),{deleteDeployment:j}=Fe(),b=o.useCallback(i=>{const v={pageIndex:p.page-1,pageSize:p.limit},w=typeof i=="function"?i(v):i;x({page:w.pageIndex+1,limit:w.pageSize}),y({})},[p,x]),R=Se({data:s,columns:Ts,getCoreRowModel:we(),manualPagination:!0,pageCount:t,state:{rowSelection:h,pagination:{pageIndex:p.page-1,pageSize:p.limit}},onRowSelectionChange:y,onPaginationChange:b,getRowId:i=>i.id}),C=Object.keys(h).length,D=o.useCallback(()=>{const i=Object.keys(h);for(const v of i)j(v);y({}),f(!1)},[h,j]),S=o.useCallback(i=>{Array.isArray(i)&&c(i)},[c]);return e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"grid grid-cols-12 items-center gap-2",children:[e.jsx("div",{className:"flex flex-col gap-1 xl:col-span-3 md:col-span-12 col-span-6 md:order-0 order-3",children:C>0?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(q,{variant:"bodySmall",className:"text-muted-foreground",children:[C," selected"]}),e.jsx(E,{variant:"ghost",size:"icon",className:"h-6 w-6 text-destructive hover:text-destructive",onClick:()=>f(!0),"aria-label":"Delete selected deployments",children:e.jsx(Te,{className:"h-4 w-4"})})]}):e.jsxs(q,{variant:"bodySmall",className:"text-muted-foreground",children:[a," Deployment",a!==1?"s":""]})}),e.jsx("div",{className:"xl:col-span-4 md:col-span-6 col-span-12 md:order-1 order-0",children:e.jsx(ue,{placeholder:"Search deployments...",value:n??"",onChange:i=>l(i.target.value),"aria-label":"Search deployments",debounceMs:300})}),e.jsx("div",{className:"xl:col-span-3 md:col-span-6 col-span-12 md:order-2 order-1",children:e.jsx(xs,{placeholder:"Filter by tags",value:r,onChange:S})}),e.jsx("div",{className:"xl:border-l xl:border-border xl:pl-2 xl:col-span-2 md:col-span-6 col-span-6 md:order-3 order-2",children:e.jsxs(ke,{value:d,onValueChange:i=>u(i),children:[e.jsx(Ae,{className:"w-full","aria-label":"Sort deployments",children:e.jsx(_e,{placeholder:"Sort by"})}),e.jsx(Ee,{children:ks.map(i=>e.jsx(Pe,{value:i.value,children:i.label},i.value))})]})})]}),e.jsx(me,{children:e.jsx("div",{className:"[&_[data-slot=table-container]]:overflow-visible",children:e.jsx(gs,{table:R})})}),e.jsx(Be,{open:g,onOpenChange:f,children:e.jsxs(Ie,{children:[e.jsxs(Oe,{children:[e.jsx(Me,{children:"Delete Deployments"}),e.jsxs(Le,{children:["Are you sure you want to delete ",C," deployment",C!==1?"s":"","? This action cannot be undone."]})]}),e.jsxs(He,{children:[e.jsx(E,{variant:"outline",onClick:()=>f(!1),children:"Cancel"}),e.jsx(E,{variant:"destructive",onClick:D,children:"Delete"})]})]})})]})},_s=({flow:s})=>e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("dl",{className:"flex flex-col gap-2",children:[e.jsx("dt",{className:"text-muted-foreground",children:"Flow ID"}),e.jsx("dd",{className:"text-sm font-medium leading-none font-mono",children:s.id})]}),e.jsxs("dl",{className:"flex flex-col gap-2",children:[e.jsx("dt",{className:"text-muted-foreground",children:"Created"}),e.jsx("dd",{className:"text-sm font-medium leading-none font-mono",children:s.created?e.jsx(U,{date:s.created,format:"absolute"}):"N/A"})]}),e.jsxs("dl",{className:"flex flex-col gap-2",children:[e.jsx("dt",{className:"text-muted-foreground",children:"Updated"}),e.jsx("dd",{className:"text-sm font-medium leading-none font-mono",children:s.updated?e.jsx(U,{date:s.updated,format:"absolute"}):"N/A"})]})]}),Es=({flow:s,onDelete:a})=>{const t=()=>{navigator.clipboard.writeText(s.id),z.success("ID copied")};return e.jsxs(fe,{children:[e.jsx(ye,{asChild:!0,children:e.jsxs(E,{variant:"outline",className:"size-8 p-0",children:[e.jsx("span",{className:"sr-only",children:"Open menu"}),e.jsx(de,{id:"MoreVertical",className:"size-4"})]})}),e.jsxs(je,{align:"end",children:[e.jsx(fs,{children:"Actions"}),e.jsx(Q,{onClick:t,children:"Copy ID"}),e.jsx(Q,{variant:"destructive",onClick:a,children:"Delete"})]})]})};function Ps({flow:s,onDelete:a}){return e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(ze,{children:e.jsxs(Qe,{children:[e.jsx(Y,{children:e.jsx(Ge,{to:"/flows",className:"text-xl font-semibold",children:"Flows"})}),e.jsx(We,{}),e.jsx(Y,{className:"text-xl font-semibold",children:e.jsx(Ke,{children:s.name})})]})}),e.jsx(Es,{flow:s,onDelete:a})]})}const _=3e4,Bs={completed:{label:"Completed",color:"hsl(142.1 76.2% 36.3%)"},failed:{label:"Failed",color:"hsl(0 84.2% 60.2%)"}},Is=s=>{const a=[];let t=0,n=0;for(const l of s){let r=0,c=0;for(const d of l.states)d.state_type==="COMPLETED"?r+=d.count_runs:(d.state_type==="FAILED"||d.state_type==="CRASHED")&&(c+=d.count_runs);t+=r,n+=c,a.push({timestamp:l.interval_start,completed:t,failed:n})}return a};function Os({flowId:s}){const[{data:a},{data:t},{data:n},{data:l},{data:r}]=G({queries:[B($e(s),_),B(qe(s),_),B(Ue(s),_),B(Ye(s),_),Ve(Ze(s),_)]}),c=o.useMemo(()=>Is(r),[r]),d=c.some(h=>h.failed>0),u=a-l,p=u>0?(t/u*100).toFixed(0):"0",x=u>0?(n/u*100).toFixed(1):"0";return e.jsxs(pe,{className:"flex-1 relative overflow-hidden pb-20",children:[e.jsx(he,{className:"pb-2",children:e.jsx(ge,{children:"Task Runs"})}),e.jsx(xe,{children:e.jsxs("div",{className:"grid gap-1",children:[e.jsx("div",{className:"inline-flex items-end gap-1 text-base",children:e.jsx("span",{className:"font-semibold",children:a})}),l>0&&e.jsxs("div",{className:"inline-flex items-end gap-1 text-sm",children:[e.jsx("span",{className:"font-semibold text-blue-600",children:l}),e.jsx("span",{className:"text-muted-foreground",children:"Running"})]}),e.jsxs("div",{className:"inline-flex items-end gap-1 text-sm",children:[e.jsx("span",{className:"font-semibold text-green-600",children:t}),e.jsx("span",{className:"text-muted-foreground",children:"Completed"}),e.jsxs("span",{className:"text-green-600",children:[p,"%"]})]}),n>0&&e.jsxs("div",{className:"inline-flex items-end gap-1 text-sm",children:[e.jsx("span",{className:"font-semibold text-red-600",children:n}),e.jsx("span",{className:"text-muted-foreground",children:"Failed"}),e.jsxs("span",{className:"text-red-600",children:[x,"%"]})]})]})}),e.jsx("div",{className:"absolute bottom-4 left-0 right-0 h-16",children:e.jsx(Je,{config:Bs,className:"h-full w-full",children:e.jsxs(Ds,{data:c,margin:{top:0,right:0,bottom:0,left:0},children:[e.jsxs("defs",{children:[e.jsxs("linearGradient",{id:"completedGradientFlow",x1:"0",y1:"1",x2:"0",y2:"0",children:[e.jsx("stop",{offset:"0%",stopColor:"var(--color-completed)",stopOpacity:0}),e.jsx("stop",{offset:"100%",stopColor:"var(--color-completed)",stopOpacity:.3})]}),e.jsxs("linearGradient",{id:"failedGradientFlow",x1:"0",y1:"1",x2:"0",y2:"0",children:[e.jsx("stop",{offset:"0%",stopColor:"var(--color-failed)",stopOpacity:0}),e.jsx("stop",{offset:"100%",stopColor:"var(--color-failed)",stopOpacity:.3})]})]}),d&&e.jsx(X,{type:"monotone",dataKey:"failed",stroke:"var(--color-failed)",strokeWidth:2,activeDot:!1,fill:"url(#failedGradientFlow)",dot:!1,isAnimationActive:!1}),e.jsx(X,{type:"monotone",dataKey:"completed",stroke:"var(--color-completed)",strokeWidth:2,activeDot:!1,fill:"url(#completedGradientFlow)",dot:!1,isAnimationActive:!1})]})})})]})}const te=8,Ms=4,ne=3e4;function Ls({flowId:s,flow:a}){const[t,n]=o.useState(0),l=re(t,150),r=o.useCallback(g=>{if(!g)return;const f=()=>{const b=g.getBoundingClientRect().width;n(Math.floor(b/(te+Ms)))};f();const j=new ResizeObserver(f);return j.observe(g),()=>j.disconnect()},[]),c=l||t,d=60,[{data:u},{data:p}]=G({queries:[ie(es(s,d),ne),Xe(ss(s),ne)]}),x=o.useMemo(()=>u.map(g=>({...g,flow:a})),[u,a]),{startDate:h,endDate:y}=o.useMemo(()=>{const g=new Date;return{startDate:Cs(g),endDate:g}},[]);return e.jsxs(pe,{className:"flex-1",children:[e.jsxs(he,{className:"flex flex-row items-center justify-between pb-2",children:[e.jsx(ge,{children:"Flow Runs"}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:[p," total"]})]}),e.jsx(xe,{children:e.jsx("div",{className:"h-24",ref:r,children:c===0?e.jsx(as,{className:"h-full w-full"}):e.jsx(me,{children:e.jsx(ce,{enrichedFlowRuns:x,startDate:h,endDate:y,numberOfBars:c,barWidth:te,className:"h-full w-full"})})})})]})}function Hs({flowId:s,flow:a}){return e.jsxs("div",{className:"grid gap-5 md:grid-cols-[2fr_1fr]",children:[e.jsx(Ls,{flowId:s,flow:a}),e.jsx(Os,{flowId:s})]})}function zs({flow:s,flowRuns:a,flowRunsCount:t,flowRunsPages:n,deployments:l,deploymentsCount:r,deploymentsPages:c,tab:d="runs",pagination:u,onPaginationChange:p,onPrefetchPage:x,sort:h,onSortChange:y,flowRunSearch:g,onFlowRunSearchChange:f,selectedStates:j,onSelectFilter:b,deploymentSearch:R,onDeploymentSearchChange:C,deploymentTags:D,onDeploymentTagsChange:S,deploymentSort:i,onDeploymentSortChange:v,deploymentPagination:w,onDeploymentPaginationChange:N}){const F=oe(),[W,T]=o.useState(!1),[P,be,{onSelectRow:ve,clearSet:K}]=ms(),V=a.map(k=>({...k,flow:s})),Ce=o.useCallback(()=>{f(""),b(new Set),K()},[f,b,K]);return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"container mx-auto flex flex-col gap-4",children:[e.jsx(Ps,{flow:s,onDelete:()=>T(!0)}),e.jsx(Hs,{flowId:s.id,flow:s}),e.jsxs(ts,{value:d,onValueChange:k=>{F({to:".",search:De=>({...De,tab:k})})},children:[e.jsxs(ns,{children:[e.jsx(M,{value:"runs",children:"Runs"}),e.jsx(M,{value:"deployments",children:"Deployments"}),e.jsx(M,{value:"details",children:"Details"})]}),e.jsxs(L,{value:"runs",className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx(ps,{count:t,results:V,selectedRows:P,setSelectedRows:be}),e.jsxs("div",{className:"flex items-center gap-4",children:[e.jsx(ue,{placeholder:"Search by run name",value:g??"",onChange:k=>f(k.target.value),className:"w-64"}),e.jsx(cs,{selectedFilters:j,onSelectFilter:b}),e.jsx(is,{value:h,onSelect:y})]})]}),e.jsx(ds,{flowRuns:V,selectedRows:P,onSelect:ve,onClearFilters:Ce}),e.jsx(us,{count:t,pages:n,pagination:u,onChangePagination:p,onPrefetchPage:x})]}),e.jsx(L,{value:"deployments",children:e.jsx(As,{deployments:l,deploymentsCount:r,deploymentsPages:c,deploymentSearch:R,onDeploymentSearchChange:C,deploymentTags:D,onDeploymentTagsChange:S,deploymentSort:i,onDeploymentSortChange:v,deploymentPagination:w,onDeploymentPaginationChange:N})}),e.jsx(L,{value:"details",children:e.jsx(_s,{flow:s})})]})]}),e.jsx(Ns,{flow:s,open:W,onOpenChange:T})]})}ws({tab:I(["runs","deployments","details"]).optional().default("runs"),"runs.page":A().int().positive().optional().default(1),"runs.limit":A().int().positive().max(100).optional().default(10),"runs.sort":I(rs).optional().default("START_TIME_DESC"),"runs.flowRuns.nameLike":O().optional().default(""),"runs.flowRuns.state.name":ee(O()).optional(),type:I(["span","range"]).optional(),seconds:A().int().positive().optional(),startDateTime:se().optional(),endDateTime:se().optional(),"deployments.page":A().int().positive().optional().default(1),"deployments.limit":A().int().positive().optional().default(10),"deployments.nameLike":O().optional(),"deployments.tags":ee(O()).optional(),"deployments.sort":I(["CREATED_DESC","UPDATED_DESC","NAME_ASC","NAME_DESC"]).optional().default("NAME_ASC")}).optional().default({});const le=(s,a)=>{const t=s["runs.flowRuns.nameLike"],n=s["runs.flowRuns.state.name"]??[],r=t||n.length>0?{operator:"and_",...t&&{name:{like_:t}},...n.length>0&&{state:{operator:"and_",name:{any_:n}}}}:void 0;return{page:s["runs.page"],limit:s["runs.limit"],sort:s["runs.sort"],flow_runs:r,flows:{operator:"and_",id:{any_:[a]}}}},Qs=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useMemo(()=>({page:s["runs.page"],limit:s["runs.limit"]}),[s["runs.page"],s["runs.limit"]]),n=o.useCallback(l=>{a({to:".",search:r=>({...r,"runs.page":l.page,"runs.limit":l.limit}),replace:!0})},[a]);return[t,n]},Gs=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useCallback(n=>{a({to:".",search:l=>({...l,"runs.sort":n,"runs.page":1}),replace:!0})},[a]);return[s["runs.sort"],t]},Ws=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useCallback(n=>{a({to:".",search:l=>({...l,"runs.flowRuns.nameLike":n,"runs.page":1}),replace:!0})},[a]);return[s["runs.flowRuns.nameLike"],t]},Ks=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useMemo(()=>new Set(s["runs.flowRuns.state.name"]||[]),[s["runs.flowRuns.state.name"]]),n=o.useCallback(l=>{a({to:".",search:r=>({...r,"runs.flowRuns.state.name":Array.from(l),"runs.page":1}),replace:!0})},[a]);return{selectedStates:t,onSelectFilter:n}},Vs=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useCallback(n=>{a({to:".",search:l=>({...l,"deployments.nameLike":n||void 0,"deployments.page":1}),replace:!0})},[a]);return[s["deployments.nameLike"],t]},$s=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useCallback(n=>{a({to:".",search:l=>({...l,"deployments.tags":n.length>0?n:void 0,"deployments.page":1}),replace:!0})},[a]);return[s["deployments.tags"]??[],t]},qs=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useCallback(n=>{a({to:".",search:l=>({...l,"deployments.sort":n,"deployments.page":1}),replace:!0})},[a]);return[s["deployments.sort"],t]},Us=()=>{const s=m.useSearch(),a=m.useNavigate(),t=o.useMemo(()=>({page:s["deployments.page"],limit:s["deployments.limit"]}),[s["deployments.page"],s["deployments.limit"]]),n=o.useCallback(l=>{a({to:".",search:r=>({...r,"deployments.page":l.page,"deployments.limit":l.limit}),replace:!0})},[a]);return[t,n]},fa=()=>{const s=Ne(),{id:a}=m.useParams(),t=m.useSearch(),[n,l]=Qs(),[r,c]=Gs(),[d,u]=Ws(),{selectedStates:p,onSelectFilter:x}=Ks(),[h,y]=Vs(),[g,f]=$s(),[j,b]=qs(),[R,C]=Us(),[{data:D}]=G({queries:[ls(a)]}),{data:S}=H(os({sort:t["deployments.sort"],page:t["deployments.page"],limit:t["deployments.limit"],flows:{operator:"and_",id:{any_:[a]}},deployments:{operator:"and_",flow_or_deployment_name:{like_:t["deployments.nameLike"]},tags:{operator:"and_",all_:t["deployments.tags"]||[]}}}));Ss(D?.name?`Flow: ${D.name}`:"Flow");const{data:i}=H(Z(le(t,a),3e4)),v=i?.results??[];o.useEffect(()=>{const N=v.map(F=>F.id);N.length>0&&s.prefetchQuery(J(N))},[s,v]);const w=o.useCallback(N=>{const F=le({...t,"runs.page":N},a);(async()=>{const T=(await s.ensureQueryData(Z(F,3e4)))?.results?.map(P=>P.id)??[];T.length>0&&s.prefetchQuery(J(T))})()},[s,t,a]);return e.jsx(zs,{flow:D,flowRuns:v,flowRunsCount:i?.count??0,flowRunsPages:i?.pages??0,deployments:S?.results??[],deploymentsCount:S?.count??0,deploymentsPages:S?.pages??0,tab:t.tab,pagination:n,onPaginationChange:l,onPrefetchPage:w,sort:r,onSortChange:c,flowRunSearch:d,onFlowRunSearchChange:u,selectedStates:p,onSelectFilter:x,deploymentSearch:h,onDeploymentSearchChange:y,deploymentTags:g,onDeploymentTagsChange:f,deploymentSort:j,onDeploymentSortChange:b,deploymentPagination:R,onDeploymentPaginationChange:C})};export{fa as component};
2
+ //# sourceMappingURL=flow._id-CZ5P0v4N.js.map