prefect 3.6.16.dev4__py3-none-any.whl → 3.6.16.dev5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. prefect/__init__.py +5 -4
  2. prefect/_build_info.py +3 -3
  3. prefect/_experimental/plugins/__init__.py +1 -1
  4. prefect/cli/deploy/_core.py +8 -1
  5. prefect/client/orchestration/routes.py +0 -3
  6. prefect/server/api/admin.py +0 -60
  7. prefect/server/api/deployments.py +267 -1
  8. prefect/server/api/flow_runs.py +139 -0
  9. prefect/server/api/flows.py +49 -1
  10. prefect/server/models/deployments.py +53 -0
  11. prefect/server/models/flow_runs.py +42 -0
  12. prefect/server/models/flows.py +40 -1
  13. prefect/server/schemas/filters.py +5 -0
  14. prefect/server/schemas/responses.py +50 -0
  15. prefect/server/ui/assets/404-DG3AGnT0.js +2 -0
  16. prefect/server/ui/assets/{404-K6PaZiye.js.map → 404-DG3AGnT0.js.map} +1 -1
  17. prefect/server/ui/assets/{AppRouterView-DwDQtyvQ.js → AppRouterView-C0FcJnhj.js} +2 -2
  18. prefect/server/ui/assets/{AppRouterView-DwDQtyvQ.js.map → AppRouterView-C0FcJnhj.js.map} +1 -1
  19. prefect/server/ui/assets/{Artifact-C7r-iu_n.js → Artifact-sGuFYSde.js} +2 -2
  20. prefect/server/ui/assets/{Artifact-C7r-iu_n.js.map → Artifact-sGuFYSde.js.map} +1 -1
  21. prefect/server/ui/assets/{ArtifactKey-BEMo4yoK.js → ArtifactKey-9Q9Vx-fc.js} +2 -2
  22. prefect/server/ui/assets/{ArtifactKey-BEMo4yoK.js.map → ArtifactKey-9Q9Vx-fc.js.map} +1 -1
  23. prefect/server/ui/assets/{Artifacts-jFQdgIdh.js → Artifacts-B53vn988.js} +2 -2
  24. prefect/server/ui/assets/{Artifacts-jFQdgIdh.js.map → Artifacts-B53vn988.js.map} +1 -1
  25. prefect/server/ui/assets/{Automation-CoPk3WhK.js → Automation-BaE0He4N.js} +2 -2
  26. prefect/server/ui/assets/{Automation-CoPk3WhK.js.map → Automation-BaE0He4N.js.map} +1 -1
  27. prefect/server/ui/assets/{AutomationCreate-DC7QapQA.js → AutomationCreate-CYfB5QDE.js} +2 -2
  28. prefect/server/ui/assets/{AutomationCreate-DC7QapQA.js.map → AutomationCreate-CYfB5QDE.js.map} +1 -1
  29. prefect/server/ui/assets/{AutomationEdit-DEqdGB6r.js → AutomationEdit-CUrFmfaN.js} +2 -2
  30. prefect/server/ui/assets/{AutomationEdit-DEqdGB6r.js.map → AutomationEdit-CUrFmfaN.js.map} +1 -1
  31. prefect/server/ui/assets/{AutomationWizard.vue_vue_type_script_setup_true_lang-Cx_Qey3p.js → AutomationWizard.vue_vue_type_script_setup_true_lang-CRRm91Zq.js} +2 -2
  32. prefect/server/ui/assets/{AutomationWizard.vue_vue_type_script_setup_true_lang-Cx_Qey3p.js.map → AutomationWizard.vue_vue_type_script_setup_true_lang-CRRm91Zq.js.map} +1 -1
  33. prefect/server/ui/assets/{Automations-BSljFu5U.js → Automations--PyqO2IS.js} +2 -2
  34. prefect/server/ui/assets/{Automations-BSljFu5U.js.map → Automations--PyqO2IS.js.map} +1 -1
  35. prefect/server/ui/assets/{BlockEdit-PBHxWs2I.js → BlockEdit-BnyuldVn.js} +2 -2
  36. prefect/server/ui/assets/{BlockEdit-PBHxWs2I.js.map → BlockEdit-BnyuldVn.js.map} +1 -1
  37. prefect/server/ui/assets/{BlockView-D0GWTwFv.js → BlockView-B2WHGgyQ.js} +2 -2
  38. prefect/server/ui/assets/{BlockView-D0GWTwFv.js.map → BlockView-B2WHGgyQ.js.map} +1 -1
  39. prefect/server/ui/assets/{Blocks-D_9GkxFk.js → Blocks-CCtj7wrz.js} +2 -2
  40. prefect/server/ui/assets/{Blocks-D_9GkxFk.js.map → Blocks-CCtj7wrz.js.map} +1 -1
  41. prefect/server/ui/assets/{BlocksCatalog-kqMThRld.js → BlocksCatalog-CMTvZPfa.js} +2 -2
  42. prefect/server/ui/assets/{BlocksCatalog-kqMThRld.js.map → BlocksCatalog-CMTvZPfa.js.map} +1 -1
  43. prefect/server/ui/assets/{BlocksCatalogCreate-DMhVoHqt.js → BlocksCatalogCreate-BvAnp5Nv.js} +2 -2
  44. prefect/server/ui/assets/{BlocksCatalogCreate-DMhVoHqt.js.map → BlocksCatalogCreate-BvAnp5Nv.js.map} +1 -1
  45. prefect/server/ui/assets/{BlocksCatalogView-30zvf2Zf.js → BlocksCatalogView-dqnPzpRL.js} +2 -2
  46. prefect/server/ui/assets/{BlocksCatalogView-30zvf2Zf.js.map → BlocksCatalogView-dqnPzpRL.js.map} +1 -1
  47. prefect/server/ui/assets/{ConcurrencyLimit-BW7Bnl17.js → ConcurrencyLimit-ontTM1oT.js} +2 -2
  48. prefect/server/ui/assets/{ConcurrencyLimit-BW7Bnl17.js.map → ConcurrencyLimit-ontTM1oT.js.map} +1 -1
  49. prefect/server/ui/assets/{ConcurrencyLimits-Ct9fPcPd.js → ConcurrencyLimits-Ctczt53J.js} +2 -2
  50. prefect/server/ui/assets/{ConcurrencyLimits-Ct9fPcPd.js.map → ConcurrencyLimits-Ctczt53J.js.map} +1 -1
  51. prefect/server/ui/assets/{Dashboard-C9HbsW9C.js → Dashboard-o-S3xTqz.js} +2 -2
  52. prefect/server/ui/assets/{Dashboard-C9HbsW9C.js.map → Dashboard-o-S3xTqz.js.map} +1 -1
  53. prefect/server/ui/assets/{Deployment-BnhoLgTP.js → Deployment-DY8bGLAc.js} +2 -2
  54. prefect/server/ui/assets/{Deployment-BnhoLgTP.js.map → Deployment-DY8bGLAc.js.map} +1 -1
  55. prefect/server/ui/assets/{DeploymentDuplicate-B8_LrQLl.js → DeploymentDuplicate-CMMz8lrd.js} +2 -2
  56. prefect/server/ui/assets/{DeploymentDuplicate-B8_LrQLl.js.map → DeploymentDuplicate-CMMz8lrd.js.map} +1 -1
  57. prefect/server/ui/assets/{DeploymentEdit-B4W9AHKw.js → DeploymentEdit-BlRSxdKn.js} +2 -2
  58. prefect/server/ui/assets/{DeploymentEdit-B4W9AHKw.js.map → DeploymentEdit-BlRSxdKn.js.map} +1 -1
  59. prefect/server/ui/assets/Deployments-lcIIbm1i.js +2 -0
  60. prefect/server/ui/assets/Deployments-lcIIbm1i.js.map +1 -0
  61. prefect/server/ui/assets/{Event-DQwLIzdd.js → Event-0j-HIfsu.js} +2 -2
  62. prefect/server/ui/assets/{Event-DQwLIzdd.js.map → Event-0j-HIfsu.js.map} +1 -1
  63. prefect/server/ui/assets/{Events-D62-llVt.js → Events-UuQjwz0L.js} +2 -2
  64. prefect/server/ui/assets/{Events-D62-llVt.js.map → Events-UuQjwz0L.js.map} +1 -1
  65. prefect/server/ui/assets/{Flow-Cq4u3Hyv.js → Flow-RmpH3LjK.js} +2 -2
  66. prefect/server/ui/assets/{Flow-Cq4u3Hyv.js.map → Flow-RmpH3LjK.js.map} +1 -1
  67. prefect/server/ui/assets/{FlowRun-3dhHtN2i.js → FlowRun-C3yAz7L4.js} +2 -2
  68. prefect/server/ui/assets/{FlowRun-3dhHtN2i.js.map → FlowRun-C3yAz7L4.js.map} +1 -1
  69. prefect/server/ui/assets/{FlowRunCreate-BwLIWkPS.js → FlowRunCreate-UNkalFWW.js} +2 -2
  70. prefect/server/ui/assets/{FlowRunCreate-BwLIWkPS.js.map → FlowRunCreate-UNkalFWW.js.map} +1 -1
  71. prefect/server/ui/assets/{Flows-DDhFukcU.js → Flows-BrSJzZzX.js} +2 -2
  72. prefect/server/ui/assets/{Flows-DDhFukcU.js.map → Flows-BrSJzZzX.js.map} +1 -1
  73. prefect/server/ui/assets/{Runs-CAwq35x9.js → Runs-DlwKZ4nz.js} +2 -2
  74. prefect/server/ui/assets/{Runs-CAwq35x9.js.map → Runs-DlwKZ4nz.js.map} +1 -1
  75. prefect/server/ui/assets/{RunsPageWithDefaultFilter-VUJP7e64-CnkYar0q.js → RunsPageWithDefaultFilter-VUJP7e64-C4FVTl9j.js} +2 -2
  76. prefect/server/ui/assets/{RunsPageWithDefaultFilter-VUJP7e64-CnkYar0q.js.map → RunsPageWithDefaultFilter-VUJP7e64-C4FVTl9j.js.map} +1 -1
  77. prefect/server/ui/assets/{Settings-DBdmXrdg.js → Settings-CrsUm3c9.js} +2 -2
  78. prefect/server/ui/assets/{Settings-DBdmXrdg.js.map → Settings-CrsUm3c9.js.map} +1 -1
  79. prefect/server/ui/assets/{TaskRun-DWfpXthA.js → TaskRun-BPnbcZPW.js} +2 -2
  80. prefect/server/ui/assets/{TaskRun-DWfpXthA.js.map → TaskRun-BPnbcZPW.js.map} +1 -1
  81. prefect/server/ui/assets/{Unauthenticated-C8GRLLPD.js → Unauthenticated-2pBvXwGA.js} +2 -2
  82. prefect/server/ui/assets/{Unauthenticated-C8GRLLPD.js.map → Unauthenticated-2pBvXwGA.js.map} +1 -1
  83. prefect/server/ui/assets/{Variables-EylxYrv9.js → Variables-Bjlboyhp.js} +2 -2
  84. prefect/server/ui/assets/{Variables-EylxYrv9.js.map → Variables-Bjlboyhp.js.map} +1 -1
  85. prefect/server/ui/assets/{WorkPool-CfgEuRe7.js → WorkPool-lRyupHlB.js} +2 -2
  86. prefect/server/ui/assets/{WorkPool-CfgEuRe7.js.map → WorkPool-lRyupHlB.js.map} +1 -1
  87. prefect/server/ui/assets/{WorkPoolCreate-C4DC7Wtp.js → WorkPoolCreate-_lyGs-1E.js} +2 -2
  88. prefect/server/ui/assets/{WorkPoolCreate-C4DC7Wtp.js.map → WorkPoolCreate-_lyGs-1E.js.map} +1 -1
  89. prefect/server/ui/assets/{WorkPoolEdit-D1PFei0l.js → WorkPoolEdit-FAAVeANy.js} +2 -2
  90. prefect/server/ui/assets/{WorkPoolEdit-D1PFei0l.js.map → WorkPoolEdit-FAAVeANy.js.map} +1 -1
  91. prefect/server/ui/assets/{WorkPoolQueue-CisaZ0pF.js → WorkPoolQueue-CRctEElk.js} +2 -2
  92. prefect/server/ui/assets/{WorkPoolQueue-CisaZ0pF.js.map → WorkPoolQueue-CRctEElk.js.map} +1 -1
  93. prefect/server/ui/assets/{WorkPoolQueueCreate-30kVnfeo.js → WorkPoolQueueCreate-BDTuIRGA.js} +2 -2
  94. prefect/server/ui/assets/{WorkPoolQueueCreate-30kVnfeo.js.map → WorkPoolQueueCreate-BDTuIRGA.js.map} +1 -1
  95. prefect/server/ui/assets/{WorkPoolQueueEdit-DBsgToTG.js → WorkPoolQueueEdit-qqk5OXB2.js} +2 -2
  96. prefect/server/ui/assets/{WorkPoolQueueEdit-DBsgToTG.js.map → WorkPoolQueueEdit-qqk5OXB2.js.map} +1 -1
  97. prefect/server/ui/assets/{WorkPools-Dt8Bj0YS.js → WorkPools-CLW1U3iu.js} +2 -2
  98. prefect/server/ui/assets/{WorkPools-Dt8Bj0YS.js.map → WorkPools-CLW1U3iu.js.map} +1 -1
  99. prefect/server/ui/assets/{WorkQueueToWorkPoolQueueRedirect-DJZTvjVT-D9qSz7kl.js → WorkQueueToWorkPoolQueueRedirect-DJZTvjVT-B__6dQYl.js} +2 -2
  100. prefect/server/ui/assets/{WorkQueueToWorkPoolQueueRedirect-DJZTvjVT-D9qSz7kl.js.map → WorkQueueToWorkPoolQueueRedirect-DJZTvjVT-B__6dQYl.js.map} +1 -1
  101. prefect/server/ui/assets/{index-C9FkjDpZ.js → index-DS86r6aC.js} +4 -4
  102. prefect/server/ui/assets/{index-C9FkjDpZ.js.map → index-DS86r6aC.js.map} +1 -1
  103. prefect/server/ui/assets/{mapper-NwaeXCHc.js → mapper-Bm5aN_dh.js} +2 -2
  104. prefect/server/ui/assets/{mapper-NwaeXCHc.js.map → mapper-Bm5aN_dh.js.map} +1 -1
  105. prefect/server/ui/assets/useCan-DzvhQ1fT.js +2 -0
  106. prefect/server/ui/assets/{useCan-DDmEnNFg.js.map → useCan-DzvhQ1fT.js.map} +1 -1
  107. prefect/server/ui/assets/{usePageTitle-B0Hz_El0.js → usePageTitle-BXVkHaWQ.js} +2 -2
  108. prefect/server/ui/assets/{usePageTitle-B0Hz_El0.js.map → usePageTitle-BXVkHaWQ.js.map} +1 -1
  109. prefect/server/ui/assets/{usePrefectApi-B2fKZYDa.js → usePrefectApi-Cn-hX9ms.js} +2 -2
  110. prefect/server/ui/assets/{usePrefectApi-B2fKZYDa.js.map → usePrefectApi-Cn-hX9ms.js.map} +1 -1
  111. prefect/server/ui/index.html +1 -1
  112. prefect/utilities/collections.py +5 -1
  113. {prefect-3.6.16.dev4.dist-info → prefect-3.6.16.dev5.dist-info}/METADATA +1 -1
  114. {prefect-3.6.16.dev4.dist-info → prefect-3.6.16.dev5.dist-info}/RECORD +117 -117
  115. prefect/server/ui/assets/404-K6PaZiye.js +0 -2
  116. prefect/server/ui/assets/Deployments-DAHDVCIs.js +0 -2
  117. prefect/server/ui/assets/Deployments-DAHDVCIs.js.map +0 -1
  118. prefect/server/ui/assets/useCan-DDmEnNFg.js +0 -2
  119. {prefect-3.6.16.dev4.dist-info → prefect-3.6.16.dev5.dist-info}/WHEEL +0 -0
  120. {prefect-3.6.16.dev4.dist-info → prefect-3.6.16.dev5.dist-info}/entry_points.txt +0 -0
  121. {prefect-3.6.16.dev4.dist-info → prefect-3.6.16.dev5.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationEdit-DEqdGB6r.js","sources":["../../src/pages/AutomationEdit.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"workspace-automation-create\">\n <template #header>\n <PageHeading :crumbs=\"crumbs\">\n <template #actions>\n <DocumentationButton :to=\"localization.docs.automations\">\n Documentation\n </DocumentationButton>\n </template>\n </PageHeading>\n </template>\n\n <AutomationWizard :automation=\"automation\" editing @submit=\"submit\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { BreadCrumbs, showToast } from '@prefecthq/prefect-design'\n import { PageHeading, DocumentationButton, getApiErrorMessage, useWorkspaceRoutes, localization } from '@prefecthq/prefect-ui-library'\n import { useRouteParam } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import AutomationWizard from '@/components/AutomationWizard.vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { usePrefectApi } from '@/compositions/usePrefectApi'\n import { Automation } from '@/types/automation'\n\n const api = usePrefectApi()\n const routes = useWorkspaceRoutes()\n const router = useRouter()\n const automationId = useRouteParam('automationId')\n const automation = await api.automations.getAutomation(automationId.value)\n\n usePageTitle(`Edit Automation: ${automation.name}`)\n\n const crumbs = computed<BreadCrumbs>(() => [\n { text: 'Automations', to: routes.automations() },\n { text: automation.name },\n ])\n\n async function submit(automation: Automation): Promise<void> {\n try {\n await api.automations.updateAutomation(automationId.value, automation)\n\n showToast(localization.success.automationUpdate)\n\n router.push(routes.automations())\n } catch (error) {\n console.error(error)\n const message = getApiErrorMessage(error, localization.error.automationUpdate)\n showToast(message, 'error', { timeout: false })\n }\n }\n</script>"],"names":["api","usePrefectApi","routes","useWorkspaceRoutes","router","useRouter","automationId","useRouteParam","automation","__temp","__restore","_withAsyncContext","usePageTitle","crumbs","computed","submit","showToast","localization","error","message","getApiErrorMessage","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeading","DocumentationButton","_cache","AutomationWizard"],"mappings":"4aA2BE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAASC,EAAA,EACTC,EAAeC,EAAc,cAAc,EAC3CC,GAAa,CAAAC,EAAAC,CAAA,EAAAC,EAAA,IAAMX,EAAI,YAAY,cAAcM,EAAa,KAAK,CAAA,mBAEzEM,EAAa,oBAAoBJ,EAAW,IAAI,EAAE,EAElD,MAAMK,EAASC,EAAsB,IAAM,CACzC,CAAE,KAAM,cAAe,GAAIZ,EAAO,aAAY,EAC9C,CAAE,KAAMM,EAAW,IAAA,CAAK,CACzB,EAED,eAAeO,EAAOP,EAAuC,CAC3D,GAAI,CACF,MAAMR,EAAI,YAAY,iBAAiBM,EAAa,MAAOE,CAAU,EAErEQ,EAAUC,EAAa,QAAQ,gBAAgB,EAE/Cb,EAAO,KAAKF,EAAO,aAAa,CAClC,OAASgB,EAAO,CACd,QAAQ,MAAMA,CAAK,EACnB,MAAMC,EAAUC,EAAmBF,EAAOD,EAAa,MAAM,gBAAgB,EAC7ED,EAAUG,EAAS,QAAS,CAAE,QAAS,GAAO,CAChD,CACF,wDAnDAE,EAYmBC,EAAA,CAZD,MAAM,+BAA6B,CACxC,SACT,IAMc,CANdC,EAMcC,EAAAC,CAAA,EAAA,CANA,OAAQZ,EAAA,OAAM,CACf,UACT,IAEsB,CAFtBU,EAEsBC,EAAAE,CAAA,EAAA,CAFA,GAAIF,EAAAP,CAAA,EAAa,KAAK,WAAA,aAAa,IAEzD,CAAA,GAAAU,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAFyD,kBAEzD,EAAA,CAAA,qDAKN,IAAsE,CAAtEJ,EAAsEK,EAAA,CAAnD,WAAYJ,EAAAhB,CAAA,EAAY,QAAA,GAAS,SAAQO,CAAA"}
1
+ {"version":3,"file":"AutomationEdit-CUrFmfaN.js","sources":["../../src/pages/AutomationEdit.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"workspace-automation-create\">\n <template #header>\n <PageHeading :crumbs=\"crumbs\">\n <template #actions>\n <DocumentationButton :to=\"localization.docs.automations\">\n Documentation\n </DocumentationButton>\n </template>\n </PageHeading>\n </template>\n\n <AutomationWizard :automation=\"automation\" editing @submit=\"submit\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { BreadCrumbs, showToast } from '@prefecthq/prefect-design'\n import { PageHeading, DocumentationButton, getApiErrorMessage, useWorkspaceRoutes, localization } from '@prefecthq/prefect-ui-library'\n import { useRouteParam } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import AutomationWizard from '@/components/AutomationWizard.vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { usePrefectApi } from '@/compositions/usePrefectApi'\n import { Automation } from '@/types/automation'\n\n const api = usePrefectApi()\n const routes = useWorkspaceRoutes()\n const router = useRouter()\n const automationId = useRouteParam('automationId')\n const automation = await api.automations.getAutomation(automationId.value)\n\n usePageTitle(`Edit Automation: ${automation.name}`)\n\n const crumbs = computed<BreadCrumbs>(() => [\n { text: 'Automations', to: routes.automations() },\n { text: automation.name },\n ])\n\n async function submit(automation: Automation): Promise<void> {\n try {\n await api.automations.updateAutomation(automationId.value, automation)\n\n showToast(localization.success.automationUpdate)\n\n router.push(routes.automations())\n } catch (error) {\n console.error(error)\n const message = getApiErrorMessage(error, localization.error.automationUpdate)\n showToast(message, 'error', { timeout: false })\n }\n }\n</script>"],"names":["api","usePrefectApi","routes","useWorkspaceRoutes","router","useRouter","automationId","useRouteParam","automation","__temp","__restore","_withAsyncContext","usePageTitle","crumbs","computed","submit","showToast","localization","error","message","getApiErrorMessage","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeading","DocumentationButton","_cache","AutomationWizard"],"mappings":"4aA2BE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAASC,EAAA,EACTC,EAAeC,EAAc,cAAc,EAC3CC,GAAa,CAAAC,EAAAC,CAAA,EAAAC,EAAA,IAAMX,EAAI,YAAY,cAAcM,EAAa,KAAK,CAAA,mBAEzEM,EAAa,oBAAoBJ,EAAW,IAAI,EAAE,EAElD,MAAMK,EAASC,EAAsB,IAAM,CACzC,CAAE,KAAM,cAAe,GAAIZ,EAAO,aAAY,EAC9C,CAAE,KAAMM,EAAW,IAAA,CAAK,CACzB,EAED,eAAeO,EAAOP,EAAuC,CAC3D,GAAI,CACF,MAAMR,EAAI,YAAY,iBAAiBM,EAAa,MAAOE,CAAU,EAErEQ,EAAUC,EAAa,QAAQ,gBAAgB,EAE/Cb,EAAO,KAAKF,EAAO,aAAa,CAClC,OAASgB,EAAO,CACd,QAAQ,MAAMA,CAAK,EACnB,MAAMC,EAAUC,EAAmBF,EAAOD,EAAa,MAAM,gBAAgB,EAC7ED,EAAUG,EAAS,QAAS,CAAE,QAAS,GAAO,CAChD,CACF,wDAnDAE,EAYmBC,EAAA,CAZD,MAAM,+BAA6B,CACxC,SACT,IAMc,CANdC,EAMcC,EAAAC,CAAA,EAAA,CANA,OAAQZ,EAAA,OAAM,CACf,UACT,IAEsB,CAFtBU,EAEsBC,EAAAE,CAAA,EAAA,CAFA,GAAIF,EAAAP,CAAA,EAAa,KAAK,WAAA,aAAa,IAEzD,CAAA,GAAAU,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAFyD,kBAEzD,EAAA,CAAA,qDAKN,IAAsE,CAAtEJ,EAAsEK,EAAA,CAAnD,WAAYJ,EAAAhB,CAAA,EAAY,QAAA,GAAS,SAAQO,CAAA"}
@@ -1,2 +1,2 @@
1
- import{d as w,K as $,g as S,N as Z,P as H,h as f,c as T,o as v,Q as B,W as E,R as Y,V as J,T as R,X as tt,n as k,l as M,k as c,t as I,i as y,a as U,m as u,r as K,Z as Q,$ as et,a0 as F,a1 as D,a2 as at,w as G,a3 as ot,F as q,x as nt,B as C,a4 as st,a5 as W,a6 as P,O as it,G as rt,a7 as ut,a8 as lt,a9 as mt,aa as pt,ab as ct,ac as dt,ad as gt,ae as O,af as j,ag as _t,ah as vt,ai as ft,u as At,aj as yt}from"./index-C9FkjDpZ.js";import{m as h,i as Vt,A as bt}from"./mapper-NwaeXCHc.js";const Tt=w({__name:"AutomationActionTypeSelect",props:{type:{required:!0},typeModifiers:{}},emits:["update:type"],setup(d){const n=$(d,"type"),o=S(()=>{const e=Z.map(t=>({label:H[t],value:t}));return n.value==="do-nothing"?e:e.filter(t=>t.value!=="do-nothing")});return(e,t)=>{const l=f("p-select");return v(),T(l,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=m=>n.value=m),options:o.value,class:"automation-action-type-select"},null,8,["modelValue","options"])}}}),wt={class:"automation-wizard-action"},St={class:"automation-wizard-action__header"},xt={class:"automation-wizard-action__heading"},kt=w({__name:"AutomationWizardAction",props:{index:{},action:{},automation:{}},emits:["delete","update:action"],setup(d,{emit:n}){const o=d,e=n,t=S({get(){return o.action.type??null},set(p){if(B(p)){e("update:action",{});return}const r=E(o.automation.trigger),g=Y(p,r);e("update:action",g)}}),{state:l,error:m}=J(t,"Action Type",p=>!!p),s=S(()=>o.action.type?R(tt,{action:o.action,"onUpdate:action":p=>e("update:action",p)}):null);function i(p){e("update:action",p)}return(p,r)=>{const g=f("p-button"),_=f("p-label"),A=f("p-content");return v(),k("div",wt,[M("div",St,[M("span",xt,"Action "+I(d.index+1),1),c(g,{size:"sm",icon:"TrashIcon",onClick:r[0]||(r[0]=V=>e("delete"))})]),c(A,null,{default:y(()=>[c(_,{label:"Action Type",state:u(l),message:u(m)},{default:y(({id:V})=>[c(Tt,{id:V,type:t.value,"onUpdate:type":r[1]||(r[1]=a=>t.value=a),state:u(l)},null,8,["id","type","state"])]),_:1},8,["state","message"]),s.value?(v(),T(K(s.value.component),Q({key:0},s.value.props,{"onUpdate:action":i}),null,16)):U("",!0)]),_:1})])}}}),zt={class:"automation-wizard-step-actions"},Ut=w({__name:"AutomationWizardStepActions",props:{automation:{}},emits:["update:automation"],setup(d,{emit:n}){const o=d,e=n,t=et(o.automation.actions??[]);function l(){t.push({})}function m(g){t.splice(g,1)}function s(g,_){t[g]=_}const{error:i}=J(t,"Actions",g=>g.length?!0:"At least 1 action is required"),{defineValidate:p}=F(),{validate:r}=D();return p(r),at(()=>{t.length===0&&l()}),G(t,()=>{e("update:automation",{...o.automation,actions:t.filter(st)})}),(g,_)=>{const A=f("p-divider"),V=f("p-message"),a=f("p-button");return v(),k("div",zt,[(v(),T(ot,null,[(v(!0),k(q,null,nt(t,(b,x)=>(v(),k(q,{key:x},[c(kt,{action:b,automation:d.automation,index:x,"onUpdate:action":N=>s(x,N),onDelete:N=>m(x)},null,8,["action","automation","index","onUpdate:action","onDelete"]),c(A)],64))),128))],1024)),u(i)?(v(),T(V,{key:0,error:""},{default:y(()=>[C(I(u(i)),1)]),_:1})):U("",!0),c(a,{class:"automations-wizard-step-actions__add",icon:"PlusIcon",onClick:l},{default:y(()=>[..._[0]||(_[0]=[C(" Add Action ",-1)])]),_:1})])}}}),$t=w({__name:"AutomationWizardStepDetails",props:{automation:{required:!0},automationModifiers:{}},emits:["update:automation"],setup(d){const n=$(d,"automation"),o=W(n,"name"),e=W(n,"description"),{validate:t}=D(),l=(p="",r)=>p.length>0?!0:`${r} is required`,{state:m,error:s}=J(o,"Automation name",l),{defineValidate:i}=F();return i(t),(p,r)=>{const g=f("p-text-input"),_=f("p-label"),A=f("p-content");return v(),T(A,{class:"automation-wizard-step-details"},{default:y(()=>[c(_,{label:"Automation Name",state:u(m),message:u(s)},{default:y(({id:V})=>[c(g,{id:V,modelValue:u(o),"onUpdate:modelValue":r[0]||(r[0]=a=>P(o)?o.value=a:null),state:u(m)},null,8,["id","modelValue","state"])]),_:1},8,["state","message"]),c(_,{label:"Description (Optional)"},{default:y(({id:V})=>[c(g,{id:V,modelValue:u(e),"onUpdate:modelValue":r[1]||(r[1]=a=>P(e)?e.value=a:null)},null,8,["id","modelValue"])]),_:1})]),_:1})}}}),Jt=w({__name:"AutomationTriggerJsonInput",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(d){const n=$(d,"modelValue"),o=s=>{try{const i=JSON.parse(s);h.map("AutomationTriggerResponse",i,"AutomationTrigger")}catch{return!1}return!0},e=(s,i)=>B(s)||lt(s)||mt(s)||pt(s)?`${i} is required`:!0,t=(s,i)=>{try{JSON.parse(s)}catch{return`${i} must be valid JSON`}return!0},{state:l,error:m}=J(n,"Trigger",[e,t,o]);return(s,i)=>{const p=f("p-message"),r=f("p-label");return v(),k(q,null,[c(p,{info:""},{action:y(()=>[c(u(it),{to:u(rt).docs.automationTriggers,small:""},null,8,["to"])]),default:y(()=>[i[1]||(i[1]=C(" Custom triggers allow advanced configuration of the conditions on which a trigger executes its actions. ",-1))]),_:1}),c(r,{label:"Trigger",state:u(l),message:u(m)},{default:y(()=>[c(u(ut),{modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=g=>n.value=g),class:"automation-trigger-json-input__json-input","show-format-button":"",state:u(l)},null,8,["modelValue","state"])]),_:1},8,["state","message"])],64)}}}),Nt=w({__name:"AutomationTriggerTemplateSelect",props:{template:{required:!0},templateModifiers:{}},emits:["update:template"],setup(d){const n=$(d,"template"),o=S(()=>ct.map(e=>({label:dt(e),value:e})));return(e,t)=>{const l=f("p-select");return v(),T(l,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=m=>n.value=m),"empty-message":"Select template",options:o.value,class:"automation-trigger-template-select"},null,8,["modelValue","options"])}}}),qt=w({__name:"AutomationWizardStepTrigger",props:{automation:{required:!0},automationModifiers:{}},emits:["update:automation"],setup(d){const n=$(d,"automation"),o=S({get(){return n.value.trigger?E(n.value.trigger):null},set(a){if(B(a)){V(void 0);return}V(j(a))}}),{values:e}=gt(["Form","JSON"]),t=O("Form");function l(){const a=h.map("AutomationTrigger",n.value.trigger,"AutomationTriggerRequest");return vt(a)}const m=O(l());G(()=>n.value.trigger,()=>m.value=l());function s(){const a=JSON.parse(m.value),b=h.map("AutomationTriggerResponse",a,"AutomationTrigger");return V(b),b}async function i(a){t.value!==a&&await r()&&(a==="Form"&&s(),a==="JSON"&&(m.value=l()),t.value=a)}const{defineValidate:p}=F(),{validate:r}=D(),{state:g,error:_}=J(o,"Trigger template",a=>a?!0:"Trigger type is required");p(async()=>{const a=await r();return a&&t.value==="JSON"&&s(),a});const A=S(()=>{if(!o.value)return null;const a=n.value.trigger??j(o.value);switch(a.type){case"event":return R(_t,{template:o.value,trigger:a,"onUpdate:trigger":V});case"compound":case"sequence":return R(ft,{trigger:a,"onUpdate:trigger":V});default:const b=a;throw new Error(`AutomationWizardStepTrigger is missing case for trigger type ${b.type}`)}});function V(a){n.value={...n.value,trigger:a}}return(a,b)=>{const x=f("p-label"),N=f("p-button-group"),L=f("p-content");return v(),T(L,{class:"automation-wizard-step-trigger"},{default:y(()=>[c(x,{label:"Trigger Template",state:u(g),message:u(_)},{default:y(({id:z})=>[c(Nt,{id:z,template:o.value,"onUpdate:template":b[0]||(b[0]=X=>o.value=X),state:u(g)},null,8,["id","template","state"])]),_:1},8,["state","message"]),A.value?(v(),k(q,{key:0},[c(N,{class:"automation-wizard-step-trigger__mode-switcher","model-value":t.value,options:u(e),small:"","onUpdate:modelValue":b[1]||(b[1]=z=>i(z))},null,8,["model-value","options"]),t.value==="Form"&&o.value?(v(),T(K(A.value.component),Q({key:o.value},A.value.props),null,16)):t.value==="JSON"?(v(),T(Jt,{key:1,modelValue:m.value,"onUpdate:modelValue":b[2]||(b[2]=z=>m.value=z)},null,8,["modelValue"])):U("",!0)],64)):U("",!0)]),_:1})}}}),Ct=w({__name:"AutomationWizard",props:{automation:{},editing:{type:Boolean}},emits:["submit"],setup(d,{emit:n}){const o=d,e=O(o.automation??{}),t=n,l=At(),m=S(()=>o.automation?"Save":"Create"),s=[{title:"Trigger",key:"trigger-step"},{title:"Actions",key:"actions-step"},{title:"Details",key:"details-step"}],i=O();function p(){t("submit",new bt(e.value))}function r(){l.back()}return(g,_)=>(v(),T(u(yt),{ref_key:"wizardRef",ref:i,class:"automation-wizard",steps:s,"last-step-text":m.value,"show-cancel":"",nonlinear:d.editing,"show-save-and-exit":d.editing,onCancel:r,onSubmit:p},{"trigger-step":y(()=>[c(qt,{automation:e.value,"onUpdate:automation":_[0]||(_[0]=A=>e.value=A)},null,8,["automation"])]),"actions-step":y(()=>[u(Vt)(e.value)?(v(),T(Ut,{key:0,automation:e.value,"onUpdate:automation":_[1]||(_[1]=A=>e.value=A)},null,8,["automation"])):U("",!0)]),"details-step":y(()=>[c($t,{automation:e.value,"onUpdate:automation":_[2]||(_[2]=A=>e.value=A)},null,8,["automation"])]),_:1},8,["last-step-text","nonlinear","show-save-and-exit"]))}});export{Ct as _};
2
- //# sourceMappingURL=AutomationWizard.vue_vue_type_script_setup_true_lang-Cx_Qey3p.js.map
1
+ import{d as w,K as $,g as S,N as Z,P as H,h as f,c as T,o as v,Q as B,W as E,R as Y,V as J,T as R,X as tt,n as k,l as M,k as c,t as I,i as y,a as U,m as u,r as K,Z as Q,$ as et,a0 as F,a1 as D,a2 as at,w as G,a3 as ot,F as q,x as nt,B as C,a4 as st,a5 as W,a6 as P,O as it,G as rt,a7 as ut,a8 as lt,a9 as mt,aa as pt,ab as ct,ac as dt,ad as gt,ae as O,af as j,ag as _t,ah as vt,ai as ft,u as At,aj as yt}from"./index-DS86r6aC.js";import{m as h,i as Vt,A as bt}from"./mapper-Bm5aN_dh.js";const Tt=w({__name:"AutomationActionTypeSelect",props:{type:{required:!0},typeModifiers:{}},emits:["update:type"],setup(d){const n=$(d,"type"),o=S(()=>{const e=Z.map(t=>({label:H[t],value:t}));return n.value==="do-nothing"?e:e.filter(t=>t.value!=="do-nothing")});return(e,t)=>{const l=f("p-select");return v(),T(l,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=m=>n.value=m),options:o.value,class:"automation-action-type-select"},null,8,["modelValue","options"])}}}),wt={class:"automation-wizard-action"},St={class:"automation-wizard-action__header"},xt={class:"automation-wizard-action__heading"},kt=w({__name:"AutomationWizardAction",props:{index:{},action:{},automation:{}},emits:["delete","update:action"],setup(d,{emit:n}){const o=d,e=n,t=S({get(){return o.action.type??null},set(p){if(B(p)){e("update:action",{});return}const r=E(o.automation.trigger),g=Y(p,r);e("update:action",g)}}),{state:l,error:m}=J(t,"Action Type",p=>!!p),s=S(()=>o.action.type?R(tt,{action:o.action,"onUpdate:action":p=>e("update:action",p)}):null);function i(p){e("update:action",p)}return(p,r)=>{const g=f("p-button"),_=f("p-label"),A=f("p-content");return v(),k("div",wt,[M("div",St,[M("span",xt,"Action "+I(d.index+1),1),c(g,{size:"sm",icon:"TrashIcon",onClick:r[0]||(r[0]=V=>e("delete"))})]),c(A,null,{default:y(()=>[c(_,{label:"Action Type",state:u(l),message:u(m)},{default:y(({id:V})=>[c(Tt,{id:V,type:t.value,"onUpdate:type":r[1]||(r[1]=a=>t.value=a),state:u(l)},null,8,["id","type","state"])]),_:1},8,["state","message"]),s.value?(v(),T(K(s.value.component),Q({key:0},s.value.props,{"onUpdate:action":i}),null,16)):U("",!0)]),_:1})])}}}),zt={class:"automation-wizard-step-actions"},Ut=w({__name:"AutomationWizardStepActions",props:{automation:{}},emits:["update:automation"],setup(d,{emit:n}){const o=d,e=n,t=et(o.automation.actions??[]);function l(){t.push({})}function m(g){t.splice(g,1)}function s(g,_){t[g]=_}const{error:i}=J(t,"Actions",g=>g.length?!0:"At least 1 action is required"),{defineValidate:p}=F(),{validate:r}=D();return p(r),at(()=>{t.length===0&&l()}),G(t,()=>{e("update:automation",{...o.automation,actions:t.filter(st)})}),(g,_)=>{const A=f("p-divider"),V=f("p-message"),a=f("p-button");return v(),k("div",zt,[(v(),T(ot,null,[(v(!0),k(q,null,nt(t,(b,x)=>(v(),k(q,{key:x},[c(kt,{action:b,automation:d.automation,index:x,"onUpdate:action":N=>s(x,N),onDelete:N=>m(x)},null,8,["action","automation","index","onUpdate:action","onDelete"]),c(A)],64))),128))],1024)),u(i)?(v(),T(V,{key:0,error:""},{default:y(()=>[C(I(u(i)),1)]),_:1})):U("",!0),c(a,{class:"automations-wizard-step-actions__add",icon:"PlusIcon",onClick:l},{default:y(()=>[..._[0]||(_[0]=[C(" Add Action ",-1)])]),_:1})])}}}),$t=w({__name:"AutomationWizardStepDetails",props:{automation:{required:!0},automationModifiers:{}},emits:["update:automation"],setup(d){const n=$(d,"automation"),o=W(n,"name"),e=W(n,"description"),{validate:t}=D(),l=(p="",r)=>p.length>0?!0:`${r} is required`,{state:m,error:s}=J(o,"Automation name",l),{defineValidate:i}=F();return i(t),(p,r)=>{const g=f("p-text-input"),_=f("p-label"),A=f("p-content");return v(),T(A,{class:"automation-wizard-step-details"},{default:y(()=>[c(_,{label:"Automation Name",state:u(m),message:u(s)},{default:y(({id:V})=>[c(g,{id:V,modelValue:u(o),"onUpdate:modelValue":r[0]||(r[0]=a=>P(o)?o.value=a:null),state:u(m)},null,8,["id","modelValue","state"])]),_:1},8,["state","message"]),c(_,{label:"Description (Optional)"},{default:y(({id:V})=>[c(g,{id:V,modelValue:u(e),"onUpdate:modelValue":r[1]||(r[1]=a=>P(e)?e.value=a:null)},null,8,["id","modelValue"])]),_:1})]),_:1})}}}),Jt=w({__name:"AutomationTriggerJsonInput",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(d){const n=$(d,"modelValue"),o=s=>{try{const i=JSON.parse(s);h.map("AutomationTriggerResponse",i,"AutomationTrigger")}catch{return!1}return!0},e=(s,i)=>B(s)||lt(s)||mt(s)||pt(s)?`${i} is required`:!0,t=(s,i)=>{try{JSON.parse(s)}catch{return`${i} must be valid JSON`}return!0},{state:l,error:m}=J(n,"Trigger",[e,t,o]);return(s,i)=>{const p=f("p-message"),r=f("p-label");return v(),k(q,null,[c(p,{info:""},{action:y(()=>[c(u(it),{to:u(rt).docs.automationTriggers,small:""},null,8,["to"])]),default:y(()=>[i[1]||(i[1]=C(" Custom triggers allow advanced configuration of the conditions on which a trigger executes its actions. ",-1))]),_:1}),c(r,{label:"Trigger",state:u(l),message:u(m)},{default:y(()=>[c(u(ut),{modelValue:n.value,"onUpdate:modelValue":i[0]||(i[0]=g=>n.value=g),class:"automation-trigger-json-input__json-input","show-format-button":"",state:u(l)},null,8,["modelValue","state"])]),_:1},8,["state","message"])],64)}}}),Nt=w({__name:"AutomationTriggerTemplateSelect",props:{template:{required:!0},templateModifiers:{}},emits:["update:template"],setup(d){const n=$(d,"template"),o=S(()=>ct.map(e=>({label:dt(e),value:e})));return(e,t)=>{const l=f("p-select");return v(),T(l,{modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=m=>n.value=m),"empty-message":"Select template",options:o.value,class:"automation-trigger-template-select"},null,8,["modelValue","options"])}}}),qt=w({__name:"AutomationWizardStepTrigger",props:{automation:{required:!0},automationModifiers:{}},emits:["update:automation"],setup(d){const n=$(d,"automation"),o=S({get(){return n.value.trigger?E(n.value.trigger):null},set(a){if(B(a)){V(void 0);return}V(j(a))}}),{values:e}=gt(["Form","JSON"]),t=O("Form");function l(){const a=h.map("AutomationTrigger",n.value.trigger,"AutomationTriggerRequest");return vt(a)}const m=O(l());G(()=>n.value.trigger,()=>m.value=l());function s(){const a=JSON.parse(m.value),b=h.map("AutomationTriggerResponse",a,"AutomationTrigger");return V(b),b}async function i(a){t.value!==a&&await r()&&(a==="Form"&&s(),a==="JSON"&&(m.value=l()),t.value=a)}const{defineValidate:p}=F(),{validate:r}=D(),{state:g,error:_}=J(o,"Trigger template",a=>a?!0:"Trigger type is required");p(async()=>{const a=await r();return a&&t.value==="JSON"&&s(),a});const A=S(()=>{if(!o.value)return null;const a=n.value.trigger??j(o.value);switch(a.type){case"event":return R(_t,{template:o.value,trigger:a,"onUpdate:trigger":V});case"compound":case"sequence":return R(ft,{trigger:a,"onUpdate:trigger":V});default:const b=a;throw new Error(`AutomationWizardStepTrigger is missing case for trigger type ${b.type}`)}});function V(a){n.value={...n.value,trigger:a}}return(a,b)=>{const x=f("p-label"),N=f("p-button-group"),L=f("p-content");return v(),T(L,{class:"automation-wizard-step-trigger"},{default:y(()=>[c(x,{label:"Trigger Template",state:u(g),message:u(_)},{default:y(({id:z})=>[c(Nt,{id:z,template:o.value,"onUpdate:template":b[0]||(b[0]=X=>o.value=X),state:u(g)},null,8,["id","template","state"])]),_:1},8,["state","message"]),A.value?(v(),k(q,{key:0},[c(N,{class:"automation-wizard-step-trigger__mode-switcher","model-value":t.value,options:u(e),small:"","onUpdate:modelValue":b[1]||(b[1]=z=>i(z))},null,8,["model-value","options"]),t.value==="Form"&&o.value?(v(),T(K(A.value.component),Q({key:o.value},A.value.props),null,16)):t.value==="JSON"?(v(),T(Jt,{key:1,modelValue:m.value,"onUpdate:modelValue":b[2]||(b[2]=z=>m.value=z)},null,8,["modelValue"])):U("",!0)],64)):U("",!0)]),_:1})}}}),Ct=w({__name:"AutomationWizard",props:{automation:{},editing:{type:Boolean}},emits:["submit"],setup(d,{emit:n}){const o=d,e=O(o.automation??{}),t=n,l=At(),m=S(()=>o.automation?"Save":"Create"),s=[{title:"Trigger",key:"trigger-step"},{title:"Actions",key:"actions-step"},{title:"Details",key:"details-step"}],i=O();function p(){t("submit",new bt(e.value))}function r(){l.back()}return(g,_)=>(v(),T(u(yt),{ref_key:"wizardRef",ref:i,class:"automation-wizard",steps:s,"last-step-text":m.value,"show-cancel":"",nonlinear:d.editing,"show-save-and-exit":d.editing,onCancel:r,onSubmit:p},{"trigger-step":y(()=>[c(qt,{automation:e.value,"onUpdate:automation":_[0]||(_[0]=A=>e.value=A)},null,8,["automation"])]),"actions-step":y(()=>[u(Vt)(e.value)?(v(),T(Ut,{key:0,automation:e.value,"onUpdate:automation":_[1]||(_[1]=A=>e.value=A)},null,8,["automation"])):U("",!0)]),"details-step":y(()=>[c($t,{automation:e.value,"onUpdate:automation":_[2]||(_[2]=A=>e.value=A)},null,8,["automation"])]),_:1},8,["last-step-text","nonlinear","show-save-and-exit"]))}});export{Ct as _};
2
+ //# sourceMappingURL=AutomationWizard.vue_vue_type_script_setup_true_lang-CRRm91Zq.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationWizard.vue_vue_type_script_setup_true_lang-Cx_Qey3p.js","sources":["../../src/components/AutomationActionTypeSelect.vue","../../src/components/AutomationWizardAction.vue","../../src/components/AutomationWizardStepActions.vue","../../src/components/AutomationWizardStepDetails.vue","../../src/components/AutomationTriggerJsonInput.vue","../../src/components/AutomationTriggerTemplateSelect.vue","../../src/components/AutomationWizardStepTrigger.vue","../../src/components/AutomationWizard.vue"],"sourcesContent":["<template>\n <p-select v-model=\"type\" :options=\"options\" class=\"automation-action-type-select\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { SelectOption } from '@prefecthq/prefect-design'\n import { AutomationActionType, automationActionTypeLabels, automationActionTypes } from '@prefecthq/prefect-ui-library'\n import { computed } from 'vue'\n\n const type = defineModel<AutomationActionType | null>('type', { required: true })\n\n const options = computed<SelectOption[]>(() => {\n const allOptions = automationActionTypes.map(type => {\n const label = automationActionTypeLabels[type]\n\n return {\n label,\n value: type,\n }\n })\n\n if (type.value === 'do-nothing') {\n return allOptions\n }\n\n return allOptions.filter(option => option.value !== 'do-nothing')\n })\n</script>","<template>\n <div class=\"automation-wizard-action\">\n <div class=\"automation-wizard-action__header\">\n <span class=\"automation-wizard-action__heading\">Action {{ index + 1 }}</span>\n <p-button size=\"sm\" icon=\"TrashIcon\" @click=\"emit('delete')\" />\n </div>\n\n <p-content>\n <p-label label=\"Action Type\" :state :message>\n <template #default=\"{ id }\">\n <AutomationActionTypeSelect :id v-model:type=\"type\" :state />\n </template>\n </p-label>\n\n\n <template v-if=\"input\">\n <component :is=\"input.component\" v-bind=\"input.props\" @update:action=\"updateAction\" />\n </template>\n </p-content>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { withProps, AutomationActionInput, AutomationAction, isNullish, getAutomationTriggerTemplate, getDefaultValueForAction } from '@prefecthq/prefect-ui-library'\n import { useValidation } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import AutomationActionTypeSelect from '@/components/AutomationActionTypeSelect.vue'\n import { AutomationActionFormValues } from '@/types/automation'\n\n const props = defineProps<{\n index: number,\n action: Partial<AutomationAction>,\n automation: AutomationActionFormValues,\n }>()\n\n const emit = defineEmits<{\n (event: 'delete'): void,\n (event: 'update:action', value: Partial<AutomationAction>): void,\n }>()\n\n const type = computed({\n get() {\n return props.action.type ?? null\n },\n set(value) {\n if (isNullish(value)) {\n emit('update:action', {})\n return\n }\n\n const template = getAutomationTriggerTemplate(props.automation.trigger)\n const action = getDefaultValueForAction(value, template)\n\n emit('update:action', action)\n },\n })\n\n const { state, error: message } = useValidation(type, 'Action Type', value => !!value)\n\n const input = computed(() => {\n if (!props.action.type) {\n return null\n }\n\n return withProps(AutomationActionInput, {\n action: props.action,\n 'onUpdate:action': value => emit('update:action', value),\n })\n })\n\n function updateAction(action: Partial<AutomationAction>): void {\n emit('update:action', action)\n }\n</script>\n\n<style>\n.automation-wizard-action { @apply\n grid\n gap-1\n}\n\n.automation-wizard-action__header { @apply\n flex\n items-center\n justify-between\n}\n\n.automation-wizard-action__heading { @apply\n font-bold\n}\n</style>","<template>\n <div class=\"automation-wizard-step-actions\">\n <keep-alive>\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <AutomationWizardAction :action :automation :index @update:action=\"updateAction(index, $event)\" @delete=\"removeAction(index)\" />\n <p-divider />\n </template>\n </keep-alive>\n\n <template v-if=\"actionsError\">\n <p-message error>\n {{ actionsError }}\n </p-message>\n </template>\n\n <p-button class=\"automations-wizard-step-actions__add\" icon=\"PlusIcon\" @click=\"addAction\">\n Add Action\n </p-button>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { useWizardStep } from '@prefecthq/prefect-design'\n import { AutomationAction, isAutomationAction } from '@prefecthq/prefect-ui-library'\n import { useValidation, useValidationObserver } from '@prefecthq/vue-compositions'\n import { onMounted, reactive, watch } from 'vue'\n import AutomationWizardAction from '@/components/AutomationWizardAction.vue'\n import { AutomationActionFormValues } from '@/types/automation'\n\n const props = defineProps<{\n automation: AutomationActionFormValues,\n }>()\n\n const emit = defineEmits<{\n (event: 'update:automation', value: AutomationActionFormValues): void,\n }>()\n\n const actions = reactive<Partial<AutomationAction>[]>(props.automation.actions ?? [])\n\n function addAction(): void {\n actions.push({})\n }\n\n function removeAction(index: number): void {\n actions.splice(index, 1)\n }\n\n function updateAction(index: number, action: Partial<AutomationAction>): void {\n actions[index] = action\n }\n\n const { error: actionsError } = useValidation(actions, 'Actions', value => {\n if (value.length) {\n return true\n }\n\n return 'At least 1 action is required'\n })\n\n const { defineValidate } = useWizardStep()\n const { validate } = useValidationObserver()\n\n defineValidate(validate)\n\n onMounted(() => {\n if (actions.length === 0) {\n addAction()\n }\n })\n\n watch(actions, () => {\n emit('update:automation', {\n ...props.automation,\n actions: actions.filter(isAutomationAction),\n })\n })\n</script>\n\n<style>\n.automation-wizard-step-actions { @apply\n grid\n gap-8\n}\n\n.automations-wizard-step-actions__add { @apply\n justify-self-start\n}\n</style>\n","<template>\n <p-content class=\"automation-wizard-step-details\">\n <p-label label=\"Automation Name\" :state :message>\n <template #default=\"{ id }\">\n <p-text-input :id v-model=\"name\" :state />\n </template>\n </p-label>\n <p-label label=\"Description (Optional)\">\n <template #default=\"{ id }\">\n <p-text-input :id v-model=\"description\" />\n </template>\n </p-label>\n </p-content>\n</template>\n\n<script lang=\"ts\" setup>\n import { useWizardStep } from '@prefecthq/prefect-design'\n import { usePatchRef, useValidation, useValidationObserver, ValidationRule } from '@prefecthq/vue-compositions'\n import { AutomationFormValues } from '@/types/automation'\n\n const automation = defineModel<AutomationFormValues>('automation', { required: true })\n\n const name = usePatchRef(automation, 'name')\n const description = usePatchRef(automation, 'description')\n\n const { validate } = useValidationObserver()\n\n const isRequired: ValidationRule<string | undefined> = (value = '', label) => {\n if (value.length > 0) {\n return true\n }\n\n return `${label} is required`\n }\n\n const { state, error: message } = useValidation(name, 'Automation name', isRequired)\n\n\n const { defineValidate } = useWizardStep()\n\n defineValidate(validate)\n</script>","<template>\n <p-message info>\n Custom triggers allow advanced configuration of the conditions on which a trigger executes its actions.\n\n <template #action>\n <DocumentationButton :to=\"localization.docs.automationTriggers\" small />\n </template>\n </p-message>\n\n <p-label label=\"Trigger\" :state=\"state\" :message=\"error\">\n <JsonInput v-model=\"model\" class=\"automation-trigger-json-input__json-input\" show-format-button :state=\"state\" />\n </p-label>\n</template>\n\n<script setup lang=\"ts\">\n import { DocumentationButton, JsonInput, isEmptyArray, isEmptyString, isInvalidDate, isNullish, localization } from '@prefecthq/prefect-ui-library'\n import { ValidationRule, useValidation } from '@prefecthq/vue-compositions'\n import { mapper } from '@/services/mapper'\n\n const model = defineModel<string>({ required: true })\n\n const isMappableAutomationTriggerJson: ValidationRule<string> = (value) => {\n try {\n const json = JSON.parse(value)\n\n mapper.map('AutomationTriggerResponse', json, 'AutomationTrigger')\n } catch (error) {\n return false\n }\n\n return true\n }\n\n const isRequired: ValidationRule<unknown> = (value, name) => {\n if (isNullish(value) || isEmptyArray(value) || isEmptyString(value) || isInvalidDate(value)) {\n return `${name} is required`\n }\n\n return true\n }\n\n const isJson: ValidationRule<string> = (value, name) => {\n try {\n JSON.parse(value)\n } catch {\n return `${name} must be valid JSON`\n }\n\n return true\n }\n\n const { state, error } = useValidation(model, 'Trigger', [isRequired, isJson, isMappableAutomationTriggerJson])\n</script>\n\n<style>\n.automation-trigger-json-input__json-input {\n min-height: 400px;\n}\n</style>","<template>\n <p-select v-model=\"template\" empty-message=\"Select template\" :options=\"options\" class=\"automation-trigger-template-select\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { SelectOptionNormalized } from '@prefecthq/prefect-design'\n import { AutomationTriggerTemplate, automationTriggerTemplates, getAutomationTriggerTemplateLabel } from '@prefecthq/prefect-ui-library'\n import { computed } from 'vue'\n\n const template = defineModel<AutomationTriggerTemplate | null>('template', { required: true })\n\n /*\n * Currently OSS doesn't have support for enabled/disabled trigger templates like cloud does.\n * Only because it wasn't needed at the time of porting automations to OSS.\n */\n const options = computed<SelectOptionNormalized[]>(() => automationTriggerTemplates.map(type => {\n return {\n label: getAutomationTriggerTemplateLabel(type),\n value: type,\n }\n }))\n</script>","<template>\n <p-content class=\"automation-wizard-step-trigger\">\n <p-label label=\"Trigger Template\" :state :message>\n <template #default=\"{ id }\">\n <AutomationTriggerTemplateSelect :id v-model:template=\"template\" :state />\n </template>\n </p-label>\n\n <template v-if=\"input\">\n <p-button-group class=\"automation-wizard-step-trigger__mode-switcher\" :model-value=\"mode\" :options=\"formMode\" small @update:model-value=\"switchMode($event)\" />\n\n <template v-if=\"mode === 'Form' && template\">\n <component :is=\"input.component\" :key=\"template\" v-bind=\"input.props\" />\n </template>\n\n <template v-else-if=\"mode === 'JSON'\">\n <AutomationTriggerJsonInput v-model=\"jsonString\" />\n </template>\n </template>\n </p-content>\n</template>\n\n<script lang=\"ts\" setup>\n import { useWizardStep } from '@prefecthq/prefect-design'\n import { createTuple, stringify, withProps, AutomationTriggerEventInput, AutomationTrigger, AutomationTriggerResponse, getAutomationTriggerTemplate, getDefaultAutomationTriggerValue, isNullish, AutomationTriggerCustomInput } from '@prefecthq/prefect-ui-library'\n import { useValidation, useValidationObserver } from '@prefecthq/vue-compositions'\n import { computed, ref, watch } from 'vue'\n import AutomationTriggerJsonInput from '@/components/AutomationTriggerJsonInput.vue'\n import AutomationTriggerTemplateSelect from '@/components/AutomationTriggerTemplateSelect.vue'\n import { mapper } from '@/services/mapper'\n import { AutomationFormValues } from '@/types/automation'\n\n const automation = defineModel<AutomationFormValues>('automation', { required: true })\n\n const template = computed({\n get() {\n if (automation.value.trigger) {\n return getAutomationTriggerTemplate(automation.value.trigger)\n }\n\n return null\n },\n set(template) {\n if (isNullish(template)) {\n updateTrigger(undefined)\n return\n }\n\n updateTrigger(getDefaultAutomationTriggerValue(template))\n },\n })\n\n const { values: formMode } = createTuple(['Form', 'JSON'])\n type FormMode = typeof formMode[number]\n const mode = ref<FormMode>('Form')\n\n function triggerAsJsonString(): string {\n const triggerMatchingApi = mapper.map('AutomationTrigger', automation.value.trigger, 'AutomationTriggerRequest')\n\n return stringify(triggerMatchingApi)\n }\n\n const jsonString = ref<string>(triggerAsJsonString())\n\n watch(() => automation.value.trigger, () => jsonString.value = triggerAsJsonString())\n\n function updateTriggerFromJsonString(): AutomationTrigger {\n const parsedTriggerJson: AutomationTriggerResponse = JSON.parse(jsonString.value)\n const trigger = mapper.map('AutomationTriggerResponse', parsedTriggerJson, 'AutomationTrigger')\n updateTrigger(trigger)\n\n return trigger\n }\n\n async function switchMode(newMode: FormMode): Promise<void> {\n if (mode.value === newMode) {\n return\n }\n\n if (!await validate()) {\n return\n }\n\n if (newMode === 'Form') {\n updateTriggerFromJsonString()\n }\n\n if (newMode === 'JSON') {\n jsonString.value = triggerAsJsonString()\n }\n\n mode.value = newMode\n }\n\n\n const { defineValidate } = useWizardStep()\n const { validate } = useValidationObserver()\n const { state, error: message } = useValidation(template, 'Trigger template', value => {\n if (value) {\n return true\n }\n\n return 'Trigger type is required'\n })\n\n defineValidate(async () => {\n const valid = await validate()\n\n if (valid) {\n // In form mode, the trigger is kept in sync with the form component's values,\n // but in JSON mode, we'll sync on submit so that the input can be freely\n // updated without affecting the form state. Also delay (de)serialization\n // to submit rather than on every change.\n if (mode.value === 'JSON') {\n updateTriggerFromJsonString()\n }\n }\n return valid\n })\n\n const input = computed(() => {\n if (!template.value) {\n return null\n }\n\n const trigger = automation.value.trigger ?? getDefaultAutomationTriggerValue(template.value)\n\n switch (trigger.type) {\n case 'event':\n return withProps(AutomationTriggerEventInput, {\n template: template.value,\n trigger,\n 'onUpdate:trigger': updateTrigger,\n })\n case 'compound':\n case 'sequence':\n return withProps(AutomationTriggerCustomInput, {\n trigger,\n 'onUpdate:trigger': updateTrigger,\n })\n\n default:\n const exhaustive: never = trigger\n throw new Error(`AutomationWizardStepTrigger is missing case for trigger type ${(exhaustive as AutomationTrigger).type}`)\n }\n\n })\n\n function updateTrigger(trigger: AutomationTrigger | undefined): void {\n automation.value = {\n ...automation.value,\n trigger,\n }\n }\n</script>\n\n<style>\n.automation-wizard-step-trigger__mode-switcher { @apply\n mx-auto\n}\n</style>","<template>\n <p-wizard\n ref=\"wizardRef\"\n class=\"automation-wizard\"\n :steps=\"steps\"\n :last-step-text=\"lastStepText\"\n show-cancel\n :nonlinear=\"editing\"\n :show-save-and-exit=\"editing\"\n @cancel=\"cancel\"\n @submit=\"submit\"\n >\n <template #trigger-step>\n <AutomationWizardStepTrigger v-model:automation=\"automation\" />\n </template>\n <template #actions-step>\n <template v-if=\"isAutomationActionFormValues(automation)\">\n <AutomationWizardStepActions v-model:automation=\"automation\" />\n </template>\n </template>\n <template #details-step>\n <AutomationWizardStepDetails v-model:automation=\"automation\" />\n </template>\n </p-wizard>\n</template>\n\n<script lang=\"ts\" setup>\n import { PWizard, WizardStep } from '@prefecthq/prefect-design'\n import { computed, ref } from 'vue'\n import { useRouter } from 'vue-router'\n import AutomationWizardStepActions from '@/components/AutomationWizardStepActions.vue'\n import AutomationWizardStepDetails from '@/components/AutomationWizardStepDetails.vue'\n import AutomationWizardStepTrigger from '@/components/AutomationWizardStepTrigger.vue'\n import { Automation, AutomationFormValues, IAutomation, isAutomationActionFormValues } from '@/types/automation'\n\n const props = defineProps<{\n automation?: Partial<Automation>,\n editing?: boolean,\n }>()\n\n const automation = ref<AutomationFormValues>(props.automation ?? {})\n\n const emit = defineEmits<{\n (event: 'submit', value: Automation): void,\n }>()\n\n const router = useRouter()\n\n const lastStepText = computed(() => props.automation ? 'Save' : 'Create')\n\n const steps: WizardStep[] = [\n { title: 'Trigger', key: 'trigger-step' },\n { title: 'Actions', key: 'actions-step' },\n { title: 'Details', key: 'details-step' },\n ]\n\n const wizardRef = ref<InstanceType<typeof PWizard>>()\n\n function submit(): void {\n emit('submit', new Automation(automation.value as IAutomation))\n }\n\n function cancel(): void {\n router.back()\n }\n</script>"],"names":["type","_useModel","__props","options","computed","allOptions","automationActionTypes","automationActionTypeLabels","option","_createBlock","_component_p_select","$event","props","emit","__emit","value","isNullish","template","getAutomationTriggerTemplate","action","getDefaultValueForAction","state","message","useValidation","input","withProps","AutomationActionInput","updateAction","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_p_button","_component_p_content","_component_p_label","_unref","_withCtx","id","AutomationActionTypeSelect","_resolveDynamicComponent","_mergeProps","actions","reactive","addAction","removeAction","index","actionsError","defineValidate","useWizardStep","validate","useValidationObserver","onMounted","watch","isAutomationAction","_KeepAlive","_Fragment","_renderList","AutomationWizardAction","_component_p_divider","_component_p_message","_cache","automation","name","usePatchRef","description","isRequired","label","_component_p_text_input","model","isMappableAutomationTriggerJson","json","mapper","isEmptyArray","isEmptyString","isInvalidDate","isJson","error","DocumentationButton","localization","JsonInput","automationTriggerTemplates","getAutomationTriggerTemplateLabel","updateTrigger","getDefaultAutomationTriggerValue","formMode","createTuple","mode","ref","triggerAsJsonString","triggerMatchingApi","stringify","jsonString","updateTriggerFromJsonString","parsedTriggerJson","trigger","switchMode","newMode","valid","AutomationTriggerEventInput","AutomationTriggerCustomInput","exhaustive","AutomationTriggerTemplateSelect","_component_p_button_group","AutomationTriggerJsonInput","router","useRouter","lastStepText","steps","wizardRef","submit","Automation","cancel","PWizard","AutomationWizardStepTrigger","isAutomationActionFormValues","AutomationWizardStepActions","AutomationWizardStepDetails"],"mappings":"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"}
1
+ {"version":3,"file":"AutomationWizard.vue_vue_type_script_setup_true_lang-CRRm91Zq.js","sources":["../../src/components/AutomationActionTypeSelect.vue","../../src/components/AutomationWizardAction.vue","../../src/components/AutomationWizardStepActions.vue","../../src/components/AutomationWizardStepDetails.vue","../../src/components/AutomationTriggerJsonInput.vue","../../src/components/AutomationTriggerTemplateSelect.vue","../../src/components/AutomationWizardStepTrigger.vue","../../src/components/AutomationWizard.vue"],"sourcesContent":["<template>\n <p-select v-model=\"type\" :options=\"options\" class=\"automation-action-type-select\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { SelectOption } from '@prefecthq/prefect-design'\n import { AutomationActionType, automationActionTypeLabels, automationActionTypes } from '@prefecthq/prefect-ui-library'\n import { computed } from 'vue'\n\n const type = defineModel<AutomationActionType | null>('type', { required: true })\n\n const options = computed<SelectOption[]>(() => {\n const allOptions = automationActionTypes.map(type => {\n const label = automationActionTypeLabels[type]\n\n return {\n label,\n value: type,\n }\n })\n\n if (type.value === 'do-nothing') {\n return allOptions\n }\n\n return allOptions.filter(option => option.value !== 'do-nothing')\n })\n</script>","<template>\n <div class=\"automation-wizard-action\">\n <div class=\"automation-wizard-action__header\">\n <span class=\"automation-wizard-action__heading\">Action {{ index + 1 }}</span>\n <p-button size=\"sm\" icon=\"TrashIcon\" @click=\"emit('delete')\" />\n </div>\n\n <p-content>\n <p-label label=\"Action Type\" :state :message>\n <template #default=\"{ id }\">\n <AutomationActionTypeSelect :id v-model:type=\"type\" :state />\n </template>\n </p-label>\n\n\n <template v-if=\"input\">\n <component :is=\"input.component\" v-bind=\"input.props\" @update:action=\"updateAction\" />\n </template>\n </p-content>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { withProps, AutomationActionInput, AutomationAction, isNullish, getAutomationTriggerTemplate, getDefaultValueForAction } from '@prefecthq/prefect-ui-library'\n import { useValidation } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import AutomationActionTypeSelect from '@/components/AutomationActionTypeSelect.vue'\n import { AutomationActionFormValues } from '@/types/automation'\n\n const props = defineProps<{\n index: number,\n action: Partial<AutomationAction>,\n automation: AutomationActionFormValues,\n }>()\n\n const emit = defineEmits<{\n (event: 'delete'): void,\n (event: 'update:action', value: Partial<AutomationAction>): void,\n }>()\n\n const type = computed({\n get() {\n return props.action.type ?? null\n },\n set(value) {\n if (isNullish(value)) {\n emit('update:action', {})\n return\n }\n\n const template = getAutomationTriggerTemplate(props.automation.trigger)\n const action = getDefaultValueForAction(value, template)\n\n emit('update:action', action)\n },\n })\n\n const { state, error: message } = useValidation(type, 'Action Type', value => !!value)\n\n const input = computed(() => {\n if (!props.action.type) {\n return null\n }\n\n return withProps(AutomationActionInput, {\n action: props.action,\n 'onUpdate:action': value => emit('update:action', value),\n })\n })\n\n function updateAction(action: Partial<AutomationAction>): void {\n emit('update:action', action)\n }\n</script>\n\n<style>\n.automation-wizard-action { @apply\n grid\n gap-1\n}\n\n.automation-wizard-action__header { @apply\n flex\n items-center\n justify-between\n}\n\n.automation-wizard-action__heading { @apply\n font-bold\n}\n</style>","<template>\n <div class=\"automation-wizard-step-actions\">\n <keep-alive>\n <template v-for=\"(action, index) in actions\" :key=\"index\">\n <AutomationWizardAction :action :automation :index @update:action=\"updateAction(index, $event)\" @delete=\"removeAction(index)\" />\n <p-divider />\n </template>\n </keep-alive>\n\n <template v-if=\"actionsError\">\n <p-message error>\n {{ actionsError }}\n </p-message>\n </template>\n\n <p-button class=\"automations-wizard-step-actions__add\" icon=\"PlusIcon\" @click=\"addAction\">\n Add Action\n </p-button>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { useWizardStep } from '@prefecthq/prefect-design'\n import { AutomationAction, isAutomationAction } from '@prefecthq/prefect-ui-library'\n import { useValidation, useValidationObserver } from '@prefecthq/vue-compositions'\n import { onMounted, reactive, watch } from 'vue'\n import AutomationWizardAction from '@/components/AutomationWizardAction.vue'\n import { AutomationActionFormValues } from '@/types/automation'\n\n const props = defineProps<{\n automation: AutomationActionFormValues,\n }>()\n\n const emit = defineEmits<{\n (event: 'update:automation', value: AutomationActionFormValues): void,\n }>()\n\n const actions = reactive<Partial<AutomationAction>[]>(props.automation.actions ?? [])\n\n function addAction(): void {\n actions.push({})\n }\n\n function removeAction(index: number): void {\n actions.splice(index, 1)\n }\n\n function updateAction(index: number, action: Partial<AutomationAction>): void {\n actions[index] = action\n }\n\n const { error: actionsError } = useValidation(actions, 'Actions', value => {\n if (value.length) {\n return true\n }\n\n return 'At least 1 action is required'\n })\n\n const { defineValidate } = useWizardStep()\n const { validate } = useValidationObserver()\n\n defineValidate(validate)\n\n onMounted(() => {\n if (actions.length === 0) {\n addAction()\n }\n })\n\n watch(actions, () => {\n emit('update:automation', {\n ...props.automation,\n actions: actions.filter(isAutomationAction),\n })\n })\n</script>\n\n<style>\n.automation-wizard-step-actions { @apply\n grid\n gap-8\n}\n\n.automations-wizard-step-actions__add { @apply\n justify-self-start\n}\n</style>\n","<template>\n <p-content class=\"automation-wizard-step-details\">\n <p-label label=\"Automation Name\" :state :message>\n <template #default=\"{ id }\">\n <p-text-input :id v-model=\"name\" :state />\n </template>\n </p-label>\n <p-label label=\"Description (Optional)\">\n <template #default=\"{ id }\">\n <p-text-input :id v-model=\"description\" />\n </template>\n </p-label>\n </p-content>\n</template>\n\n<script lang=\"ts\" setup>\n import { useWizardStep } from '@prefecthq/prefect-design'\n import { usePatchRef, useValidation, useValidationObserver, ValidationRule } from '@prefecthq/vue-compositions'\n import { AutomationFormValues } from '@/types/automation'\n\n const automation = defineModel<AutomationFormValues>('automation', { required: true })\n\n const name = usePatchRef(automation, 'name')\n const description = usePatchRef(automation, 'description')\n\n const { validate } = useValidationObserver()\n\n const isRequired: ValidationRule<string | undefined> = (value = '', label) => {\n if (value.length > 0) {\n return true\n }\n\n return `${label} is required`\n }\n\n const { state, error: message } = useValidation(name, 'Automation name', isRequired)\n\n\n const { defineValidate } = useWizardStep()\n\n defineValidate(validate)\n</script>","<template>\n <p-message info>\n Custom triggers allow advanced configuration of the conditions on which a trigger executes its actions.\n\n <template #action>\n <DocumentationButton :to=\"localization.docs.automationTriggers\" small />\n </template>\n </p-message>\n\n <p-label label=\"Trigger\" :state=\"state\" :message=\"error\">\n <JsonInput v-model=\"model\" class=\"automation-trigger-json-input__json-input\" show-format-button :state=\"state\" />\n </p-label>\n</template>\n\n<script setup lang=\"ts\">\n import { DocumentationButton, JsonInput, isEmptyArray, isEmptyString, isInvalidDate, isNullish, localization } from '@prefecthq/prefect-ui-library'\n import { ValidationRule, useValidation } from '@prefecthq/vue-compositions'\n import { mapper } from '@/services/mapper'\n\n const model = defineModel<string>({ required: true })\n\n const isMappableAutomationTriggerJson: ValidationRule<string> = (value) => {\n try {\n const json = JSON.parse(value)\n\n mapper.map('AutomationTriggerResponse', json, 'AutomationTrigger')\n } catch (error) {\n return false\n }\n\n return true\n }\n\n const isRequired: ValidationRule<unknown> = (value, name) => {\n if (isNullish(value) || isEmptyArray(value) || isEmptyString(value) || isInvalidDate(value)) {\n return `${name} is required`\n }\n\n return true\n }\n\n const isJson: ValidationRule<string> = (value, name) => {\n try {\n JSON.parse(value)\n } catch {\n return `${name} must be valid JSON`\n }\n\n return true\n }\n\n const { state, error } = useValidation(model, 'Trigger', [isRequired, isJson, isMappableAutomationTriggerJson])\n</script>\n\n<style>\n.automation-trigger-json-input__json-input {\n min-height: 400px;\n}\n</style>","<template>\n <p-select v-model=\"template\" empty-message=\"Select template\" :options=\"options\" class=\"automation-trigger-template-select\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { SelectOptionNormalized } from '@prefecthq/prefect-design'\n import { AutomationTriggerTemplate, automationTriggerTemplates, getAutomationTriggerTemplateLabel } from '@prefecthq/prefect-ui-library'\n import { computed } from 'vue'\n\n const template = defineModel<AutomationTriggerTemplate | null>('template', { required: true })\n\n /*\n * Currently OSS doesn't have support for enabled/disabled trigger templates like cloud does.\n * Only because it wasn't needed at the time of porting automations to OSS.\n */\n const options = computed<SelectOptionNormalized[]>(() => automationTriggerTemplates.map(type => {\n return {\n label: getAutomationTriggerTemplateLabel(type),\n value: type,\n }\n }))\n</script>","<template>\n <p-content class=\"automation-wizard-step-trigger\">\n <p-label label=\"Trigger Template\" :state :message>\n <template #default=\"{ id }\">\n <AutomationTriggerTemplateSelect :id v-model:template=\"template\" :state />\n </template>\n </p-label>\n\n <template v-if=\"input\">\n <p-button-group class=\"automation-wizard-step-trigger__mode-switcher\" :model-value=\"mode\" :options=\"formMode\" small @update:model-value=\"switchMode($event)\" />\n\n <template v-if=\"mode === 'Form' && template\">\n <component :is=\"input.component\" :key=\"template\" v-bind=\"input.props\" />\n </template>\n\n <template v-else-if=\"mode === 'JSON'\">\n <AutomationTriggerJsonInput v-model=\"jsonString\" />\n </template>\n </template>\n </p-content>\n</template>\n\n<script lang=\"ts\" setup>\n import { useWizardStep } from '@prefecthq/prefect-design'\n import { createTuple, stringify, withProps, AutomationTriggerEventInput, AutomationTrigger, AutomationTriggerResponse, getAutomationTriggerTemplate, getDefaultAutomationTriggerValue, isNullish, AutomationTriggerCustomInput } from '@prefecthq/prefect-ui-library'\n import { useValidation, useValidationObserver } from '@prefecthq/vue-compositions'\n import { computed, ref, watch } from 'vue'\n import AutomationTriggerJsonInput from '@/components/AutomationTriggerJsonInput.vue'\n import AutomationTriggerTemplateSelect from '@/components/AutomationTriggerTemplateSelect.vue'\n import { mapper } from '@/services/mapper'\n import { AutomationFormValues } from '@/types/automation'\n\n const automation = defineModel<AutomationFormValues>('automation', { required: true })\n\n const template = computed({\n get() {\n if (automation.value.trigger) {\n return getAutomationTriggerTemplate(automation.value.trigger)\n }\n\n return null\n },\n set(template) {\n if (isNullish(template)) {\n updateTrigger(undefined)\n return\n }\n\n updateTrigger(getDefaultAutomationTriggerValue(template))\n },\n })\n\n const { values: formMode } = createTuple(['Form', 'JSON'])\n type FormMode = typeof formMode[number]\n const mode = ref<FormMode>('Form')\n\n function triggerAsJsonString(): string {\n const triggerMatchingApi = mapper.map('AutomationTrigger', automation.value.trigger, 'AutomationTriggerRequest')\n\n return stringify(triggerMatchingApi)\n }\n\n const jsonString = ref<string>(triggerAsJsonString())\n\n watch(() => automation.value.trigger, () => jsonString.value = triggerAsJsonString())\n\n function updateTriggerFromJsonString(): AutomationTrigger {\n const parsedTriggerJson: AutomationTriggerResponse = JSON.parse(jsonString.value)\n const trigger = mapper.map('AutomationTriggerResponse', parsedTriggerJson, 'AutomationTrigger')\n updateTrigger(trigger)\n\n return trigger\n }\n\n async function switchMode(newMode: FormMode): Promise<void> {\n if (mode.value === newMode) {\n return\n }\n\n if (!await validate()) {\n return\n }\n\n if (newMode === 'Form') {\n updateTriggerFromJsonString()\n }\n\n if (newMode === 'JSON') {\n jsonString.value = triggerAsJsonString()\n }\n\n mode.value = newMode\n }\n\n\n const { defineValidate } = useWizardStep()\n const { validate } = useValidationObserver()\n const { state, error: message } = useValidation(template, 'Trigger template', value => {\n if (value) {\n return true\n }\n\n return 'Trigger type is required'\n })\n\n defineValidate(async () => {\n const valid = await validate()\n\n if (valid) {\n // In form mode, the trigger is kept in sync with the form component's values,\n // but in JSON mode, we'll sync on submit so that the input can be freely\n // updated without affecting the form state. Also delay (de)serialization\n // to submit rather than on every change.\n if (mode.value === 'JSON') {\n updateTriggerFromJsonString()\n }\n }\n return valid\n })\n\n const input = computed(() => {\n if (!template.value) {\n return null\n }\n\n const trigger = automation.value.trigger ?? getDefaultAutomationTriggerValue(template.value)\n\n switch (trigger.type) {\n case 'event':\n return withProps(AutomationTriggerEventInput, {\n template: template.value,\n trigger,\n 'onUpdate:trigger': updateTrigger,\n })\n case 'compound':\n case 'sequence':\n return withProps(AutomationTriggerCustomInput, {\n trigger,\n 'onUpdate:trigger': updateTrigger,\n })\n\n default:\n const exhaustive: never = trigger\n throw new Error(`AutomationWizardStepTrigger is missing case for trigger type ${(exhaustive as AutomationTrigger).type}`)\n }\n\n })\n\n function updateTrigger(trigger: AutomationTrigger | undefined): void {\n automation.value = {\n ...automation.value,\n trigger,\n }\n }\n</script>\n\n<style>\n.automation-wizard-step-trigger__mode-switcher { @apply\n mx-auto\n}\n</style>","<template>\n <p-wizard\n ref=\"wizardRef\"\n class=\"automation-wizard\"\n :steps=\"steps\"\n :last-step-text=\"lastStepText\"\n show-cancel\n :nonlinear=\"editing\"\n :show-save-and-exit=\"editing\"\n @cancel=\"cancel\"\n @submit=\"submit\"\n >\n <template #trigger-step>\n <AutomationWizardStepTrigger v-model:automation=\"automation\" />\n </template>\n <template #actions-step>\n <template v-if=\"isAutomationActionFormValues(automation)\">\n <AutomationWizardStepActions v-model:automation=\"automation\" />\n </template>\n </template>\n <template #details-step>\n <AutomationWizardStepDetails v-model:automation=\"automation\" />\n </template>\n </p-wizard>\n</template>\n\n<script lang=\"ts\" setup>\n import { PWizard, WizardStep } from '@prefecthq/prefect-design'\n import { computed, ref } from 'vue'\n import { useRouter } from 'vue-router'\n import AutomationWizardStepActions from '@/components/AutomationWizardStepActions.vue'\n import AutomationWizardStepDetails from '@/components/AutomationWizardStepDetails.vue'\n import AutomationWizardStepTrigger from '@/components/AutomationWizardStepTrigger.vue'\n import { Automation, AutomationFormValues, IAutomation, isAutomationActionFormValues } from '@/types/automation'\n\n const props = defineProps<{\n automation?: Partial<Automation>,\n editing?: boolean,\n }>()\n\n const automation = ref<AutomationFormValues>(props.automation ?? {})\n\n const emit = defineEmits<{\n (event: 'submit', value: Automation): void,\n }>()\n\n const router = useRouter()\n\n const lastStepText = computed(() => props.automation ? 'Save' : 'Create')\n\n const steps: WizardStep[] = [\n { title: 'Trigger', key: 'trigger-step' },\n { title: 'Actions', key: 'actions-step' },\n { title: 'Details', key: 'details-step' },\n ]\n\n const wizardRef = ref<InstanceType<typeof PWizard>>()\n\n function submit(): void {\n emit('submit', new Automation(automation.value as IAutomation))\n }\n\n function cancel(): void {\n router.back()\n }\n</script>"],"names":["type","_useModel","__props","options","computed","allOptions","automationActionTypes","automationActionTypeLabels","option","_createBlock","_component_p_select","$event","props","emit","__emit","value","isNullish","template","getAutomationTriggerTemplate","action","getDefaultValueForAction","state","message","useValidation","input","withProps","AutomationActionInput","updateAction","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_createVNode","_component_p_button","_component_p_content","_component_p_label","_unref","_withCtx","id","AutomationActionTypeSelect","_resolveDynamicComponent","_mergeProps","actions","reactive","addAction","removeAction","index","actionsError","defineValidate","useWizardStep","validate","useValidationObserver","onMounted","watch","isAutomationAction","_KeepAlive","_Fragment","_renderList","AutomationWizardAction","_component_p_divider","_component_p_message","_cache","automation","name","usePatchRef","description","isRequired","label","_component_p_text_input","model","isMappableAutomationTriggerJson","json","mapper","isEmptyArray","isEmptyString","isInvalidDate","isJson","error","DocumentationButton","localization","JsonInput","automationTriggerTemplates","getAutomationTriggerTemplateLabel","updateTrigger","getDefaultAutomationTriggerValue","formMode","createTuple","mode","ref","triggerAsJsonString","triggerMatchingApi","stringify","jsonString","updateTriggerFromJsonString","parsedTriggerJson","trigger","switchMode","newMode","valid","AutomationTriggerEventInput","AutomationTriggerCustomInput","exhaustive","AutomationTriggerTemplateSelect","_component_p_button_group","AutomationTriggerJsonInput","router","useRouter","lastStepText","steps","wizardRef","submit","Automation","cancel","PWizard","AutomationWizardStepTrigger","isAutomationActionFormValues","AutomationWizardStepActions","AutomationWizardStepDetails"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{d as h,f as x,h as l,c as d,o as s,i as a,k as t,l as r,n as _,a as A,m as o,B as C,t as y,L as V,A as j,M as E,_ as L,x as P,E as T,F as b,j as $,g as k,C as z,U as F,z as M,D as O,O as S,G as w}from"./index-C9FkjDpZ.js";import{u as G}from"./usePageTitle-B0Hz_El0.js";import{u as I}from"./usePrefectApi-B2fKZYDa.js";import"./mapper-NwaeXCHc.js";const q={class:"automation-card__header"},H={class:"automation-card__header-actions"},J={key:0,class:"automation-card__description"},K={class:"automation-card__label"},Q=h({__name:"AutomationCard",props:{automation:{}},emits:["update"],setup(e,{emit:p}){const c=p,f=x();return(m,n)=>{const g=l("p-link"),u=l("p-content"),v=l("p-card");return s(),d(v,{class:"automation-card"},{default:a(()=>[t(u,null,{default:a(()=>[t(u,{secondary:""},{default:a(()=>[r("div",q,[t(g,{class:"automation-card__name",to:o(f).automation(e.automation.id)},{default:a(()=>[C(y(e.automation.name),1)]),_:1},8,["to"]),r("div",H,[t(o(V),{automation:e.automation,onUpdate:n[0]||(n[0]=i=>c("update"))},null,8,["automation"]),t(o(j),{automation:e.automation,onDelete:n[1]||(n[1]=i=>c("update"))},null,8,["automation"])])]),e.automation.description?(s(),_("p",J,y(e.automation.description),1)):A("",!0)]),_:1}),t(u,{secondary:""},{default:a(()=>[n[2]||(n[2]=r("span",{class:"automation-card__label"},"Trigger",-1)),t(o(E),{trigger:e.automation.trigger},null,8,["trigger"])]),_:1}),t(u,{secondary:""},{default:a(()=>[r("span",K,y(o(L)("Action",e.automation.actions.length)),1),(s(!0),_(b,null,P(e.automation.actions,i=>(s(),d(v,{key:i.id},{default:a(()=>[t(o(T),{action:i},null,8,["action"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})}}}),Z=h({__name:"Automations",setup(e){const p=x();G("Automations");const c=[{text:"Automations"}],f=I(),m=$(f.automations.getAutomations),n=k(()=>m.response??[]),g=k(()=>m.executed),u=k(()=>n.value.length===0);return(v,i)=>{const B=l("p-button"),U=l("p-virtual-scroller"),D=l("p-layout-default");return s(),d(D,{class:"automations"},{header:a(()=>[t(o(M),{crumbs:c},O({"after-crumbs":a(()=>[t(B,{size:"sm",icon:"PlusIcon",to:o(p).automationCreate()},null,8,["to"])]),_:2},[u.value?void 0:{name:"actions",fn:a(()=>[t(o(S),{to:o(w).docs.automations},{default:a(()=>[...i[0]||(i[0]=[C(" Documentation ",-1)])]),_:1},8,["to"])]),key:"0"}]),1024)]),default:a(()=>[g.value?(s(),_(b,{key:0},[u.value?(s(),d(o(z),{key:0})):(s(),_(b,{key:1},[t(o(F),{count:n.value.length,label:"automation"},null,8,["count"]),t(U,{items:n.value,class:"automations-list"},{default:a(({item:N})=>[t(Q,{automation:N,onUpdate:o(m).refresh},null,8,["automation","onUpdate"])]),_:1},8,["items"])],64))],64)):A("",!0)]),_:1})}}});export{Z as default};
2
- //# sourceMappingURL=Automations-BSljFu5U.js.map
1
+ import{d as h,f as x,h as l,c as d,o as s,i as a,k as t,l as r,n as _,a as A,m as o,B as C,t as y,L as V,A as j,M as E,_ as L,x as P,E as T,F as b,j as $,g as k,C as z,U as F,z as M,D as O,O as S,G as w}from"./index-DS86r6aC.js";import{u as G}from"./usePageTitle-BXVkHaWQ.js";import{u as I}from"./usePrefectApi-Cn-hX9ms.js";import"./mapper-Bm5aN_dh.js";const q={class:"automation-card__header"},H={class:"automation-card__header-actions"},J={key:0,class:"automation-card__description"},K={class:"automation-card__label"},Q=h({__name:"AutomationCard",props:{automation:{}},emits:["update"],setup(e,{emit:p}){const c=p,f=x();return(m,n)=>{const g=l("p-link"),u=l("p-content"),v=l("p-card");return s(),d(v,{class:"automation-card"},{default:a(()=>[t(u,null,{default:a(()=>[t(u,{secondary:""},{default:a(()=>[r("div",q,[t(g,{class:"automation-card__name",to:o(f).automation(e.automation.id)},{default:a(()=>[C(y(e.automation.name),1)]),_:1},8,["to"]),r("div",H,[t(o(V),{automation:e.automation,onUpdate:n[0]||(n[0]=i=>c("update"))},null,8,["automation"]),t(o(j),{automation:e.automation,onDelete:n[1]||(n[1]=i=>c("update"))},null,8,["automation"])])]),e.automation.description?(s(),_("p",J,y(e.automation.description),1)):A("",!0)]),_:1}),t(u,{secondary:""},{default:a(()=>[n[2]||(n[2]=r("span",{class:"automation-card__label"},"Trigger",-1)),t(o(E),{trigger:e.automation.trigger},null,8,["trigger"])]),_:1}),t(u,{secondary:""},{default:a(()=>[r("span",K,y(o(L)("Action",e.automation.actions.length)),1),(s(!0),_(b,null,P(e.automation.actions,i=>(s(),d(v,{key:i.id},{default:a(()=>[t(o(T),{action:i},null,8,["action"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})}}}),Z=h({__name:"Automations",setup(e){const p=x();G("Automations");const c=[{text:"Automations"}],f=I(),m=$(f.automations.getAutomations),n=k(()=>m.response??[]),g=k(()=>m.executed),u=k(()=>n.value.length===0);return(v,i)=>{const B=l("p-button"),U=l("p-virtual-scroller"),D=l("p-layout-default");return s(),d(D,{class:"automations"},{header:a(()=>[t(o(M),{crumbs:c},O({"after-crumbs":a(()=>[t(B,{size:"sm",icon:"PlusIcon",to:o(p).automationCreate()},null,8,["to"])]),_:2},[u.value?void 0:{name:"actions",fn:a(()=>[t(o(S),{to:o(w).docs.automations},{default:a(()=>[...i[0]||(i[0]=[C(" Documentation ",-1)])]),_:1},8,["to"])]),key:"0"}]),1024)]),default:a(()=>[g.value?(s(),_(b,{key:0},[u.value?(s(),d(o(z),{key:0})):(s(),_(b,{key:1},[t(o(F),{count:n.value.length,label:"automation"},null,8,["count"]),t(U,{items:n.value,class:"automations-list"},{default:a(({item:N})=>[t(Q,{automation:N,onUpdate:o(m).refresh},null,8,["automation","onUpdate"])]),_:1},8,["items"])],64))],64)):A("",!0)]),_:1})}}});export{Z as default};
2
+ //# sourceMappingURL=Automations--PyqO2IS.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Automations-BSljFu5U.js","sources":["../../src/components/AutomationCard.vue","../../src/pages/Automations.vue"],"sourcesContent":["<template>\n <p-card class=\"automation-card\">\n <p-content>\n <p-content secondary>\n <div class=\"automation-card__header\">\n <p-link class=\"automation-card__name\" :to=\"routes.automation(automation.id)\">\n {{ automation.name }}\n </p-link>\n <div class=\"automation-card__header-actions\">\n <AutomationToggle :automation=\"automation\" @update=\"emit('update')\" />\n <AutomationMenu :automation=\"automation\" @delete=\"emit('update')\" />\n </div>\n </div>\n <template v-if=\"automation.description\">\n <p class=\"automation-card__description\">\n {{ automation.description }}\n </p>\n </template>\n </p-content>\n\n <p-content secondary>\n <span class=\"automation-card__label\">Trigger</span>\n <AutomationTriggerDescription :trigger=\"automation.trigger\" />\n </p-content>\n\n <p-content secondary>\n <span class=\"automation-card__label\">{{ toPluralString('Action', automation.actions.length) }}</span>\n <template v-for=\"action in automation.actions\" :key=\"action.id\">\n <p-card><AutomationActionDescription :action=\"action\" /></p-card>\n </template>\n </p-content>\n </p-content>\n </p-card>\n</template>\n\n<script lang=\"ts\" setup>\n import { toPluralString } from '@prefecthq/prefect-design'\n import { AutomationMenu, AutomationToggle, AutomationTriggerDescription, AutomationActionDescription, useWorkspaceRoutes } from '@prefecthq/prefect-ui-library'\n import { Automation } from '@/types/automation'\n\n defineProps<{\n automation: Automation,\n }>()\n\n const emit = defineEmits<{\n (event: 'update'): void,\n }>()\n\n const routes = useWorkspaceRoutes()\n</script>\n\n<style>\n.automation-card__header { @apply\n flex\n gap-2\n items-center\n justify-between\n}\n\n.automation-card__header-actions { @apply\n flex\n gap-2\n items-center\n}\n\n.automation-card__name { @apply\n text-lg\n}\n\n.automation-card__description { @apply\n text-sm\n}\n\n.automation-card__label { @apply\n font-medium\n mr-2\n}\n</style>","<template>\n <p-layout-default class=\"automations\">\n <template #header>\n <PageHeading :crumbs=\"crumbs\">\n <template #after-crumbs>\n <p-button size=\"sm\" icon=\"PlusIcon\" :to=\"routes.automationCreate()\" />\n </template>\n\n <template v-if=\"!empty\" #actions>\n <DocumentationButton :to=\"localization.docs.automations\">\n Documentation\n </DocumentationButton>\n </template>\n </PageHeading>\n </template>\n <template v-if=\"loaded\">\n <template v-if=\"empty\">\n <AutomationsPageEmptyState />\n </template>\n <template v-else>\n <ResultsCount :count=\"automations.length\" label=\"automation\" />\n\n <p-virtual-scroller :items=\"automations\" class=\"automations-list\">\n <template #default=\"{ item: automation }\">\n <AutomationCard :automation=\"automation\" @update=\"subscription.refresh\" />\n </template>\n </p-virtual-scroller>\n </template>\n </template>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeading, ResultsCount, AutomationsPageEmptyState, DocumentationButton, localization, useWorkspaceRoutes } from '@prefecthq/prefect-ui-library'\n import { useSubscription } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import AutomationCard from '@/components/AutomationCard.vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { usePrefectApi } from '@/compositions/usePrefectApi'\n\n const routes = useWorkspaceRoutes()\n\n usePageTitle('Automations')\n\n const crumbs = [{ text: 'Automations' }]\n const api = usePrefectApi()\n\n const subscription = useSubscription(api.automations.getAutomations)\n const automations = computed(() => subscription.response ?? [])\n\n const loaded = computed(() => subscription.executed)\n const empty = computed(() => automations.value.length === 0)\n</script>\n\n<style>\n.automations {\n --virtual-scroller-item-gap: theme('spacing.2')\n}\n</style>"],"names":["emit","__emit","routes","useWorkspaceRoutes","_createBlock","_component_p_card","_createVNode","_component_p_content","_createElementVNode","_hoisted_1","_component_p_link","_unref","__props","_createTextVNode","_toDisplayString","_hoisted_2","AutomationToggle","AutomationMenu","_openBlock","_createElementBlock","_hoisted_3","_cache","AutomationTriggerDescription","_hoisted_4","toPluralString","_Fragment","_renderList","action","AutomationActionDescription","usePageTitle","crumbs","api","usePrefectApi","subscription","useSubscription","automations","computed","loaded","empty","_component_p_layout_default","PageHeading","_createSlots","_component_p_button","DocumentationButton","localization","AutomationsPageEmptyState","ResultsCount","_component_p_virtual_scroller","_withCtx","automation","AutomationCard"],"mappings":"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"}
1
+ {"version":3,"file":"Automations--PyqO2IS.js","sources":["../../src/components/AutomationCard.vue","../../src/pages/Automations.vue"],"sourcesContent":["<template>\n <p-card class=\"automation-card\">\n <p-content>\n <p-content secondary>\n <div class=\"automation-card__header\">\n <p-link class=\"automation-card__name\" :to=\"routes.automation(automation.id)\">\n {{ automation.name }}\n </p-link>\n <div class=\"automation-card__header-actions\">\n <AutomationToggle :automation=\"automation\" @update=\"emit('update')\" />\n <AutomationMenu :automation=\"automation\" @delete=\"emit('update')\" />\n </div>\n </div>\n <template v-if=\"automation.description\">\n <p class=\"automation-card__description\">\n {{ automation.description }}\n </p>\n </template>\n </p-content>\n\n <p-content secondary>\n <span class=\"automation-card__label\">Trigger</span>\n <AutomationTriggerDescription :trigger=\"automation.trigger\" />\n </p-content>\n\n <p-content secondary>\n <span class=\"automation-card__label\">{{ toPluralString('Action', automation.actions.length) }}</span>\n <template v-for=\"action in automation.actions\" :key=\"action.id\">\n <p-card><AutomationActionDescription :action=\"action\" /></p-card>\n </template>\n </p-content>\n </p-content>\n </p-card>\n</template>\n\n<script lang=\"ts\" setup>\n import { toPluralString } from '@prefecthq/prefect-design'\n import { AutomationMenu, AutomationToggle, AutomationTriggerDescription, AutomationActionDescription, useWorkspaceRoutes } from '@prefecthq/prefect-ui-library'\n import { Automation } from '@/types/automation'\n\n defineProps<{\n automation: Automation,\n }>()\n\n const emit = defineEmits<{\n (event: 'update'): void,\n }>()\n\n const routes = useWorkspaceRoutes()\n</script>\n\n<style>\n.automation-card__header { @apply\n flex\n gap-2\n items-center\n justify-between\n}\n\n.automation-card__header-actions { @apply\n flex\n gap-2\n items-center\n}\n\n.automation-card__name { @apply\n text-lg\n}\n\n.automation-card__description { @apply\n text-sm\n}\n\n.automation-card__label { @apply\n font-medium\n mr-2\n}\n</style>","<template>\n <p-layout-default class=\"automations\">\n <template #header>\n <PageHeading :crumbs=\"crumbs\">\n <template #after-crumbs>\n <p-button size=\"sm\" icon=\"PlusIcon\" :to=\"routes.automationCreate()\" />\n </template>\n\n <template v-if=\"!empty\" #actions>\n <DocumentationButton :to=\"localization.docs.automations\">\n Documentation\n </DocumentationButton>\n </template>\n </PageHeading>\n </template>\n <template v-if=\"loaded\">\n <template v-if=\"empty\">\n <AutomationsPageEmptyState />\n </template>\n <template v-else>\n <ResultsCount :count=\"automations.length\" label=\"automation\" />\n\n <p-virtual-scroller :items=\"automations\" class=\"automations-list\">\n <template #default=\"{ item: automation }\">\n <AutomationCard :automation=\"automation\" @update=\"subscription.refresh\" />\n </template>\n </p-virtual-scroller>\n </template>\n </template>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeading, ResultsCount, AutomationsPageEmptyState, DocumentationButton, localization, useWorkspaceRoutes } from '@prefecthq/prefect-ui-library'\n import { useSubscription } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import AutomationCard from '@/components/AutomationCard.vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { usePrefectApi } from '@/compositions/usePrefectApi'\n\n const routes = useWorkspaceRoutes()\n\n usePageTitle('Automations')\n\n const crumbs = [{ text: 'Automations' }]\n const api = usePrefectApi()\n\n const subscription = useSubscription(api.automations.getAutomations)\n const automations = computed(() => subscription.response ?? [])\n\n const loaded = computed(() => subscription.executed)\n const empty = computed(() => automations.value.length === 0)\n</script>\n\n<style>\n.automations {\n --virtual-scroller-item-gap: theme('spacing.2')\n}\n</style>"],"names":["emit","__emit","routes","useWorkspaceRoutes","_createBlock","_component_p_card","_createVNode","_component_p_content","_createElementVNode","_hoisted_1","_component_p_link","_unref","__props","_createTextVNode","_toDisplayString","_hoisted_2","AutomationToggle","AutomationMenu","_openBlock","_createElementBlock","_hoisted_3","_cache","AutomationTriggerDescription","_hoisted_4","toPluralString","_Fragment","_renderList","action","AutomationActionDescription","usePageTitle","crumbs","api","usePrefectApi","subscription","useSubscription","automations","computed","loaded","empty","_component_p_layout_default","PageHeading","_createSlots","_component_p_button","DocumentationButton","localization","AutomationsPageEmptyState","ResultsCount","_component_p_virtual_scroller","_withCtx","automation","AutomationCard"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{d as B,S as D,u as x,v as C,I as g,ae as p,h as w,c as S,a as I,m as e,o as P,i as c,k as s,cp as E,cw as J,Z as N,cr as T,cx as V,J as b,bg as A}from"./index-C9FkjDpZ.js";import{u as F}from"./usePageTitle-B0Hz_El0.js";const X=B({__name:"BlockEdit",async setup(H){let t,l;const n=D(),u=x(),r=C("blockDocumentId"),o=([t,l]=g(()=>n.blockDocuments.getBlockDocument(r.value)),t=await t,l(),t),{blockType:i,blockSchema:_}=o,d=p(o.data),m=p(o.name);function f(k){n.blockDocuments.updateBlockDocument(o.id,k).then(()=>{b("Block updated successfully","success"),u.push(A.block(r.value))}).catch(a=>{b("Failed to update block","error"),console.error(a)})}function h(){u.back()}return F(`Edit Block: ${m.value}`),(k,a)=>{const v=w("p-layout-default");return e(o)?(P(),S(v,{key:0,class:"block-edit"},{header:c(()=>[s(e(V),{"block-document":e(o)},null,8,["block-document"])]),default:c(()=>[s(e(E),{"block-type":e(i)},{default:c(()=>[s(e(J),N({data:d.value,"onUpdate:data":a[0]||(a[0]=y=>d.value=y)},{name:m.value,blockSchema:e(_)},T({submit:f,cancel:h})),null,16,["data"])]),_:1},8,["block-type"])]),_:1})):I("",!0)}}});export{X as default};
2
- //# sourceMappingURL=BlockEdit-PBHxWs2I.js.map
1
+ import{d as B,S as D,u as x,v as C,I as g,ae as p,h as w,c as S,a as I,m as e,o as P,i as c,k as s,cp as E,cw as J,Z as N,cr as T,cx as V,J as b,bg as A}from"./index-DS86r6aC.js";import{u as F}from"./usePageTitle-BXVkHaWQ.js";const X=B({__name:"BlockEdit",async setup(H){let t,l;const n=D(),u=x(),r=C("blockDocumentId"),o=([t,l]=g(()=>n.blockDocuments.getBlockDocument(r.value)),t=await t,l(),t),{blockType:i,blockSchema:_}=o,d=p(o.data),m=p(o.name);function f(k){n.blockDocuments.updateBlockDocument(o.id,k).then(()=>{b("Block updated successfully","success"),u.push(A.block(r.value))}).catch(a=>{b("Failed to update block","error"),console.error(a)})}function h(){u.back()}return F(`Edit Block: ${m.value}`),(k,a)=>{const v=w("p-layout-default");return e(o)?(P(),S(v,{key:0,class:"block-edit"},{header:c(()=>[s(e(V),{"block-document":e(o)},null,8,["block-document"])]),default:c(()=>[s(e(E),{"block-type":e(i)},{default:c(()=>[s(e(J),N({data:d.value,"onUpdate:data":a[0]||(a[0]=y=>d.value=y)},{name:m.value,blockSchema:e(_)},T({submit:f,cancel:h})),null,16,["data"])]),_:1},8,["block-type"])]),_:1})):I("",!0)}}});export{X as default};
2
+ //# sourceMappingURL=BlockEdit-BnyuldVn.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockEdit-PBHxWs2I.js","sources":["../../src/pages/BlockEdit.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockDocument\" class=\"block-edit\">\n <template #header>\n <PageHeadingBlockEdit :block-document=\"blockDocument\" />\n </template>\n\n <BlockTypeCardLayout :block-type=\"blockType\">\n <BlockSchemaEditForm v-model:data=\"data\" v-bind=\"{ name, blockSchema }\" v-on=\"{ submit, cancel }\" />\n </BlockTypeCardLayout>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { showToast } from '@prefecthq/prefect-design'\n import { BlockTypeCardLayout, BlockSchemaEditForm, PageHeadingBlockEdit, BlockDocumentUpdate, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam } from '@prefecthq/vue-compositions'\n import { ref } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router/routes'\n\n const api = useWorkspaceApi()\n const router = useRouter()\n const blockDocumentId = useRouteParam('blockDocumentId')\n const blockDocument = await api.blockDocuments.getBlockDocument(blockDocumentId.value)\n const { blockType, blockSchema } = blockDocument\n const data = ref(blockDocument.data)\n const name = ref(blockDocument.name)\n\n function submit(request: BlockDocumentUpdate): void {\n api.blockDocuments\n .updateBlockDocument(blockDocument.id, request)\n .then(() => {\n showToast('Block updated successfully', 'success')\n router.push(routes.block(blockDocumentId.value))\n })\n .catch(err => {\n showToast('Failed to update block', 'error')\n console.error(err)\n })\n }\n\n function cancel(): void {\n router.back()\n }\n\n usePageTitle(`Edit Block: ${name.value}`)\n</script>"],"names":["api","useWorkspaceApi","router","useRouter","blockDocumentId","useRouteParam","blockDocument","__temp","__restore","_withAsyncContext","blockType","blockSchema","data","ref","name","submit","request","showToast","routes","err","cancel","usePageTitle","_unref","_createBlock","_component_p_layout_default","_createVNode","PageHeadingBlockEdit","BlockTypeCardLayout","_mergeProps","$event","_toHandlers"],"mappings":"uRAqBE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAAkBC,EAAc,iBAAiB,EACjDC,GAAgB,CAAAC,EAAAC,CAAA,EAAAC,EAAA,IAAMT,EAAI,eAAe,iBAAiBI,EAAgB,KAAK,CAAA,mBAC/E,CAAE,UAAAM,EAAW,YAAAC,CAAA,EAAgBL,EAC7BM,EAAOC,EAAIP,EAAc,IAAI,EAC7BQ,EAAOD,EAAIP,EAAc,IAAI,EAEnC,SAASS,EAAOC,EAAoC,CAClDhB,EAAI,eACD,oBAAoBM,EAAc,GAAIU,CAAO,EAC7C,KAAK,IAAM,CACVC,EAAU,6BAA8B,SAAS,EACjDf,EAAO,KAAKgB,EAAO,MAAMd,EAAgB,KAAK,CAAC,CACjD,CAAC,EACA,MAAMe,GAAO,CACZF,EAAU,yBAA0B,OAAO,EAC3C,QAAQ,MAAME,CAAG,CACnB,CAAC,CACL,CAEA,SAASC,GAAe,CACtBlB,EAAO,KAAA,CACT,CAEA,OAAAmB,EAAa,eAAeP,EAAK,KAAK,EAAE,+CA7ChBQ,EAAAhB,CAAA,OAAxBiB,EAQmBC,EAAA,OARoB,MAAM,YAAA,GAChC,SACT,IAAwD,CAAxDC,EAAwDH,EAAAI,CAAA,EAAA,CAAjC,iBAAgBJ,EAAAhB,CAAA,GAAa,KAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,aAGtD,IAEsB,CAFtBmB,EAEsBH,EAAAK,CAAA,EAAA,CAFA,aAAYL,EAAAZ,CAAA,GAAS,WACzC,IAAoG,CAApGe,EAAoGH,KAApGM,EAAoG,CAAvE,KAAMhB,EAAA,qCAAAA,EAAI,MAAAiB,EAAA,EAAY,CAAA,KAAAf,EAAA,kBAAMQ,EAAAX,CAAA,CAAA,EAAemB,EAAyB,CAAA,OAAAf,WAAH,CAAA,EAAA,KAAA,GAAA,CAAA,MAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"BlockEdit-BnyuldVn.js","sources":["../../src/pages/BlockEdit.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockDocument\" class=\"block-edit\">\n <template #header>\n <PageHeadingBlockEdit :block-document=\"blockDocument\" />\n </template>\n\n <BlockTypeCardLayout :block-type=\"blockType\">\n <BlockSchemaEditForm v-model:data=\"data\" v-bind=\"{ name, blockSchema }\" v-on=\"{ submit, cancel }\" />\n </BlockTypeCardLayout>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { showToast } from '@prefecthq/prefect-design'\n import { BlockTypeCardLayout, BlockSchemaEditForm, PageHeadingBlockEdit, BlockDocumentUpdate, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam } from '@prefecthq/vue-compositions'\n import { ref } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router/routes'\n\n const api = useWorkspaceApi()\n const router = useRouter()\n const blockDocumentId = useRouteParam('blockDocumentId')\n const blockDocument = await api.blockDocuments.getBlockDocument(blockDocumentId.value)\n const { blockType, blockSchema } = blockDocument\n const data = ref(blockDocument.data)\n const name = ref(blockDocument.name)\n\n function submit(request: BlockDocumentUpdate): void {\n api.blockDocuments\n .updateBlockDocument(blockDocument.id, request)\n .then(() => {\n showToast('Block updated successfully', 'success')\n router.push(routes.block(blockDocumentId.value))\n })\n .catch(err => {\n showToast('Failed to update block', 'error')\n console.error(err)\n })\n }\n\n function cancel(): void {\n router.back()\n }\n\n usePageTitle(`Edit Block: ${name.value}`)\n</script>"],"names":["api","useWorkspaceApi","router","useRouter","blockDocumentId","useRouteParam","blockDocument","__temp","__restore","_withAsyncContext","blockType","blockSchema","data","ref","name","submit","request","showToast","routes","err","cancel","usePageTitle","_unref","_createBlock","_component_p_layout_default","_createVNode","PageHeadingBlockEdit","BlockTypeCardLayout","_mergeProps","$event","_toHandlers"],"mappings":"uRAqBE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAAkBC,EAAc,iBAAiB,EACjDC,GAAgB,CAAAC,EAAAC,CAAA,EAAAC,EAAA,IAAMT,EAAI,eAAe,iBAAiBI,EAAgB,KAAK,CAAA,mBAC/E,CAAE,UAAAM,EAAW,YAAAC,CAAA,EAAgBL,EAC7BM,EAAOC,EAAIP,EAAc,IAAI,EAC7BQ,EAAOD,EAAIP,EAAc,IAAI,EAEnC,SAASS,EAAOC,EAAoC,CAClDhB,EAAI,eACD,oBAAoBM,EAAc,GAAIU,CAAO,EAC7C,KAAK,IAAM,CACVC,EAAU,6BAA8B,SAAS,EACjDf,EAAO,KAAKgB,EAAO,MAAMd,EAAgB,KAAK,CAAC,CACjD,CAAC,EACA,MAAMe,GAAO,CACZF,EAAU,yBAA0B,OAAO,EAC3C,QAAQ,MAAME,CAAG,CACnB,CAAC,CACL,CAEA,SAASC,GAAe,CACtBlB,EAAO,KAAA,CACT,CAEA,OAAAmB,EAAa,eAAeP,EAAK,KAAK,EAAE,+CA7ChBQ,EAAAhB,CAAA,OAAxBiB,EAQmBC,EAAA,OARoB,MAAM,YAAA,GAChC,SACT,IAAwD,CAAxDC,EAAwDH,EAAAI,CAAA,EAAA,CAAjC,iBAAgBJ,EAAAhB,CAAA,GAAa,KAAA,EAAA,CAAA,gBAAA,CAAA,CAAA,aAGtD,IAEsB,CAFtBmB,EAEsBH,EAAAK,CAAA,EAAA,CAFA,aAAYL,EAAAZ,CAAA,GAAS,WACzC,IAAoG,CAApGe,EAAoGH,KAApGM,EAAoG,CAAvE,KAAMhB,EAAA,qCAAAA,EAAI,MAAAiB,EAAA,EAAY,CAAA,KAAAf,EAAA,kBAAMQ,EAAAX,CAAA,CAAA,EAAemB,EAAyB,CAAA,OAAAf,WAAH,CAAA,EAAA,KAAA,GAAA,CAAA,MAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{d as b,S as i,u as d,v as _,g as o,bH as v,h as f,c as D,a as B,o as h,i as c,k as u,m as n,cu as g,cv as C,bg as S}from"./index-C9FkjDpZ.js";import{u as w}from"./usePageTitle-B0Hz_El0.js";const T=b({__name:"BlockView",setup(x){const s=i(),a=d(),t=_("blockDocumentId"),l=o(()=>t.value?[t.value]:null),r=v(s.blockDocuments.getBlockDocument,l),e=o(()=>r.response),m=()=>{a.push(S.blocks())},k=o(()=>e.value?`Block: ${e.value.name}`:"Block");return w(k),(y,V)=>{const p=f("p-layout-default");return e.value?(h(),D(p,{key:0,class:"block-view"},{header:c(()=>[u(n(C),{"block-document":e.value,onDelete:m},null,8,["block-document"])]),default:c(()=>[u(n(g),{"block-document":e.value},null,8,["block-document"])]),_:1})):B("",!0)}}});export{T as default};
2
- //# sourceMappingURL=BlockView-D0GWTwFv.js.map
1
+ import{d as b,S as i,u as d,v as _,g as o,bH as v,h as f,c as D,a as B,o as h,i as c,k as u,m as n,cu as g,cv as C,bg as S}from"./index-DS86r6aC.js";import{u as w}from"./usePageTitle-BXVkHaWQ.js";const T=b({__name:"BlockView",setup(x){const s=i(),a=d(),t=_("blockDocumentId"),l=o(()=>t.value?[t.value]:null),r=v(s.blockDocuments.getBlockDocument,l),e=o(()=>r.response),m=()=>{a.push(S.blocks())},k=o(()=>e.value?`Block: ${e.value.name}`:"Block");return w(k),(y,V)=>{const p=f("p-layout-default");return e.value?(h(),D(p,{key:0,class:"block-view"},{header:c(()=>[u(n(C),{"block-document":e.value,onDelete:m},null,8,["block-document"])]),default:c(()=>[u(n(g),{"block-document":e.value},null,8,["block-document"])]),_:1})):B("",!0)}}});export{T as default};
2
+ //# sourceMappingURL=BlockView-B2WHGgyQ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockView-D0GWTwFv.js","sources":["../../src/pages/BlockView.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockDocument\" class=\"block-view\">\n <template #header>\n <PageHeadingBlock :block-document=\"blockDocument\" @delete=\"routeToBlocks\" />\n </template>\n\n <BlockDocumentCard :block-document=\"blockDocument\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlock, BlockDocumentCard, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useSubscriptionWithDependencies, useRouteParam } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router'\n\n const api = useWorkspaceApi()\n const router = useRouter()\n const blockDocumentId = useRouteParam('blockDocumentId')\n const blockDocumentSubscriptionsArgs = computed<Parameters<typeof api.blockDocuments.getBlockDocument> | null >(() => {\n if (!blockDocumentId.value) {\n return null\n }\n\n return [blockDocumentId.value]\n })\n const blockDocumentSubscription = useSubscriptionWithDependencies(api.blockDocuments.getBlockDocument, blockDocumentSubscriptionsArgs)\n const blockDocument = computed(() => blockDocumentSubscription.response)\n\n const routeToBlocks = (): void => {\n router.push(routes.blocks())\n }\n\n const title = computed(() => {\n if (!blockDocument.value) {\n return 'Block'\n }\n return `Block: ${blockDocument.value.name}`\n })\n usePageTitle(title)\n</script>"],"names":["api","useWorkspaceApi","router","useRouter","blockDocumentId","useRouteParam","blockDocumentSubscriptionsArgs","computed","blockDocumentSubscription","useSubscriptionWithDependencies","blockDocument","routeToBlocks","routes","title","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlock","BlockDocumentCard"],"mappings":"2OAkBE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAAkBC,EAAc,iBAAiB,EACjDC,EAAiCC,EAAyE,IACzGH,EAAgB,MAId,CAACA,EAAgB,KAAK,EAHpB,IAIV,EACKI,EAA4BC,EAAgCT,EAAI,eAAe,iBAAkBM,CAA8B,EAC/HI,EAAgBH,EAAS,IAAMC,EAA0B,QAAQ,EAEjEG,EAAgB,IAAY,CAChCT,EAAO,KAAKU,EAAO,QAAQ,CAC7B,EAEMC,EAAQN,EAAS,IAChBG,EAAc,MAGZ,UAAUA,EAAc,MAAM,IAAI,GAFhC,OAGV,EACD,OAAAI,EAAaD,CAAK,+CAxCMH,EAAA,WAAxBK,EAMmBC,EAAA,OANoB,MAAM,YAAA,GAChC,SACT,IAA4E,CAA5EC,EAA4EC,EAAAC,CAAA,EAAA,CAAzD,iBAAgBT,EAAA,MAAgB,SAAQC,CAAA,yCAG7D,IAAqD,CAArDM,EAAqDC,EAAAE,CAAA,EAAA,CAAjC,iBAAgBV,EAAA,OAAa,KAAA,EAAA,CAAA,gBAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"BlockView-B2WHGgyQ.js","sources":["../../src/pages/BlockView.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockDocument\" class=\"block-view\">\n <template #header>\n <PageHeadingBlock :block-document=\"blockDocument\" @delete=\"routeToBlocks\" />\n </template>\n\n <BlockDocumentCard :block-document=\"blockDocument\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlock, BlockDocumentCard, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useSubscriptionWithDependencies, useRouteParam } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router'\n\n const api = useWorkspaceApi()\n const router = useRouter()\n const blockDocumentId = useRouteParam('blockDocumentId')\n const blockDocumentSubscriptionsArgs = computed<Parameters<typeof api.blockDocuments.getBlockDocument> | null >(() => {\n if (!blockDocumentId.value) {\n return null\n }\n\n return [blockDocumentId.value]\n })\n const blockDocumentSubscription = useSubscriptionWithDependencies(api.blockDocuments.getBlockDocument, blockDocumentSubscriptionsArgs)\n const blockDocument = computed(() => blockDocumentSubscription.response)\n\n const routeToBlocks = (): void => {\n router.push(routes.blocks())\n }\n\n const title = computed(() => {\n if (!blockDocument.value) {\n return 'Block'\n }\n return `Block: ${blockDocument.value.name}`\n })\n usePageTitle(title)\n</script>"],"names":["api","useWorkspaceApi","router","useRouter","blockDocumentId","useRouteParam","blockDocumentSubscriptionsArgs","computed","blockDocumentSubscription","useSubscriptionWithDependencies","blockDocument","routeToBlocks","routes","title","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlock","BlockDocumentCard"],"mappings":"2OAkBE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAAkBC,EAAc,iBAAiB,EACjDC,EAAiCC,EAAyE,IACzGH,EAAgB,MAId,CAACA,EAAgB,KAAK,EAHpB,IAIV,EACKI,EAA4BC,EAAgCT,EAAI,eAAe,iBAAkBM,CAA8B,EAC/HI,EAAgBH,EAAS,IAAMC,EAA0B,QAAQ,EAEjEG,EAAgB,IAAY,CAChCT,EAAO,KAAKU,EAAO,QAAQ,CAC7B,EAEMC,EAAQN,EAAS,IAChBG,EAAc,MAGZ,UAAUA,EAAc,MAAM,IAAI,GAFhC,OAGV,EACD,OAAAI,EAAaD,CAAK,+CAxCMH,EAAA,WAAxBK,EAMmBC,EAAA,OANoB,MAAM,YAAA,GAChC,SACT,IAA4E,CAA5EC,EAA4EC,EAAAC,CAAA,EAAA,CAAzD,iBAAgBT,EAAA,MAAgB,SAAQC,CAAA,yCAG7D,IAAqD,CAArDM,EAAqDC,EAAAE,CAAA,EAAA,CAAjC,iBAAgBV,EAAA,OAAa,KAAA,EAAA,CAAA,gBAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{d as m,S as p,j as d,g as s,h as _,c as a,o as t,i as c,n as k,a as i,F as f,m as o,ch as h,ci as y,k as B,cj as C}from"./index-C9FkjDpZ.js";import{u as x}from"./usePageTitle-B0Hz_El0.js";const E=m({__name:"Blocks",setup(g){const n=p(),e=d(n.blockDocuments.getBlockDocumentsCount),l=s(()=>e.executed&&e.response==0),r=s(()=>e.executed);return x("Blocks"),(D,b)=>{const u=_("p-layout-default");return t(),a(u,{class:"blocks"},{header:c(()=>[B(o(C))]),default:c(()=>[r.value?(t(),k(f,{key:0},[l.value?(t(),a(o(h),{key:0})):(t(),a(o(y),{key:1,onDelete:o(e).refresh},null,8,["onDelete"]))],64)):i("",!0)]),_:1})}}});export{E as default};
2
- //# sourceMappingURL=Blocks-D_9GkxFk.js.map
1
+ import{d as m,S as p,j as d,g as s,h as _,c as a,o as t,i as c,n as k,a as i,F as f,m as o,ch as h,ci as y,k as B,cj as C}from"./index-DS86r6aC.js";import{u as x}from"./usePageTitle-BXVkHaWQ.js";const E=m({__name:"Blocks",setup(g){const n=p(),e=d(n.blockDocuments.getBlockDocumentsCount),l=s(()=>e.executed&&e.response==0),r=s(()=>e.executed);return x("Blocks"),(D,b)=>{const u=_("p-layout-default");return t(),a(u,{class:"blocks"},{header:c(()=>[B(o(C))]),default:c(()=>[r.value?(t(),k(f,{key:0},[l.value?(t(),a(o(h),{key:0})):(t(),a(o(y),{key:1,onDelete:o(e).refresh},null,8,["onDelete"]))],64)):i("",!0)]),_:1})}}});export{E as default};
2
+ //# sourceMappingURL=Blocks-CCtj7wrz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Blocks-D_9GkxFk.js","sources":["../../src/pages/Blocks.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"blocks\">\n <template #header>\n <PageHeadingBlocks />\n </template>\n <template v-if=\"loaded\">\n <template v-if=\"empty\">\n <BlocksPageEmptyState />\n </template>\n <template v-else>\n <BlockDocumentsTable @delete=\"subscription.refresh\" />\n </template>\n </template>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlocks, BlockDocumentsTable, BlocksPageEmptyState, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useSubscription } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n\n const api = useWorkspaceApi()\n const subscription = useSubscription(api.blockDocuments.getBlockDocumentsCount)\n const empty = computed(() => subscription.executed && subscription.response == 0)\n const loaded = computed(() => subscription.executed)\n\n usePageTitle('Blocks')\n</script>"],"names":["api","useWorkspaceApi","subscription","useSubscription","empty","computed","loaded","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocks","_createElementBlock","_Fragment","BlocksPageEmptyState","BlockDocumentsTable"],"mappings":"uOAsBE,MAAMA,EAAMC,EAAA,EACNC,EAAeC,EAAgBH,EAAI,eAAe,sBAAsB,EACxEI,EAAQC,EAAS,IAAMH,EAAa,UAAYA,EAAa,UAAY,CAAC,EAC1EI,EAASD,EAAS,IAAMH,EAAa,QAAQ,EAEnD,OAAAK,EAAa,QAAQ,mDA1BrBC,EAYmBC,EAAA,CAZD,MAAM,UAAQ,CACnB,SACT,IAAqB,CAArBC,EAAqBC,EAAAC,CAAA,CAAA,CAAA,aAEvB,IAOW,CAPKN,EAAA,WAAhBO,EAOWC,EAAA,CAAA,IAAA,GAAA,CANOV,EAAA,WACdI,EAAwBG,EAAAI,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,QAGxBP,EAAsDG,EAAAK,CAAA,EAAA,OAAhC,SAAQL,EAAAT,CAAA,EAAa,OAAA"}
1
+ {"version":3,"file":"Blocks-CCtj7wrz.js","sources":["../../src/pages/Blocks.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"blocks\">\n <template #header>\n <PageHeadingBlocks />\n </template>\n <template v-if=\"loaded\">\n <template v-if=\"empty\">\n <BlocksPageEmptyState />\n </template>\n <template v-else>\n <BlockDocumentsTable @delete=\"subscription.refresh\" />\n </template>\n </template>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlocks, BlockDocumentsTable, BlocksPageEmptyState, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useSubscription } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n\n const api = useWorkspaceApi()\n const subscription = useSubscription(api.blockDocuments.getBlockDocumentsCount)\n const empty = computed(() => subscription.executed && subscription.response == 0)\n const loaded = computed(() => subscription.executed)\n\n usePageTitle('Blocks')\n</script>"],"names":["api","useWorkspaceApi","subscription","useSubscription","empty","computed","loaded","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocks","_createElementBlock","_Fragment","BlocksPageEmptyState","BlockDocumentsTable"],"mappings":"uOAsBE,MAAMA,EAAMC,EAAA,EACNC,EAAeC,EAAgBH,EAAI,eAAe,sBAAsB,EACxEI,EAAQC,EAAS,IAAMH,EAAa,UAAYA,EAAa,UAAY,CAAC,EAC1EI,EAASD,EAAS,IAAMH,EAAa,QAAQ,EAEnD,OAAAK,EAAa,QAAQ,mDA1BrBC,EAYmBC,EAAA,CAZD,MAAM,UAAQ,CACnB,SACT,IAAqB,CAArBC,EAAqBC,EAAAC,CAAA,CAAA,CAAA,aAEvB,IAOW,CAPKN,EAAA,WAAhBO,EAOWC,EAAA,CAAA,IAAA,GAAA,CANOV,EAAA,WACdI,EAAwBG,EAAAI,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA,QAGxBP,EAAsDG,EAAAK,CAAA,EAAA,OAAhC,SAAQL,EAAAT,CAAA,EAAa,OAAA"}
@@ -1,2 +1,2 @@
1
- import{d as b,S as m,ae as y,g as o,ck as f,j as _,h as d,c as g,o as v,i as s,k as t,m as l,cl as C,cm as B}from"./index-C9FkjDpZ.js";import{u as T}from"./usePageTitle-B0Hz_El0.js";const j=b({__name:"BlocksCatalog",setup(S){const c=m(),a=y(null),p=o(()=>a.value?[a.value]:[]),{filter:n}=f({blockSchemas:{blockCapabilities:p}}),i=_(c.blockTypes.getBlockTypes,[n]),u=o(()=>i.response??[]);return T("Blocks Catalog"),(h,e)=>{const r=d("p-layout-default");return v(),g(r,{class:"blocks-catalog"},{header:s(()=>[t(l(B))]),default:s(()=>[t(l(C),{capability:a.value,"onUpdate:capability":e[0]||(e[0]=k=>a.value=k),"block-types":u.value},null,8,["capability","block-types"])]),_:1})}}});export{j as default};
2
- //# sourceMappingURL=BlocksCatalog-kqMThRld.js.map
1
+ import{d as b,S as m,ae as y,g as o,ck as f,j as _,h as d,c as g,o as v,i as s,k as t,m as l,cl as C,cm as B}from"./index-DS86r6aC.js";import{u as T}from"./usePageTitle-BXVkHaWQ.js";const j=b({__name:"BlocksCatalog",setup(S){const c=m(),a=y(null),p=o(()=>a.value?[a.value]:[]),{filter:n}=f({blockSchemas:{blockCapabilities:p}}),i=_(c.blockTypes.getBlockTypes,[n]),u=o(()=>i.response??[]);return T("Blocks Catalog"),(h,e)=>{const r=d("p-layout-default");return v(),g(r,{class:"blocks-catalog"},{header:s(()=>[t(l(B))]),default:s(()=>[t(l(C),{capability:a.value,"onUpdate:capability":e[0]||(e[0]=k=>a.value=k),"block-types":u.value},null,8,["capability","block-types"])]),_:1})}}});export{j as default};
2
+ //# sourceMappingURL=BlocksCatalog-CMTvZPfa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksCatalog-kqMThRld.js","sources":["../../src/pages/BlocksCatalog.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"blocks-catalog\">\n <template #header>\n <PageHeadingBlocksCatalog />\n </template>\n\n <BlockTypeList v-model:capability=\"capability\" :block-types=\"blockTypes\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlocksCatalog, BlockTypeList, useWorkspaceApi, useBlockTypesFilter } from '@prefecthq/prefect-ui-library'\n import { useSubscription } from '@prefecthq/vue-compositions'\n import { computed, ref } from 'vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n\n const api = useWorkspaceApi()\n const capability = ref<string | null>(null)\n const blockCapabilities = computed(() => capability.value ? [capability.value] : [])\n\n const { filter } = useBlockTypesFilter({\n blockSchemas: {\n blockCapabilities,\n },\n })\n const blockTypesSubscription = useSubscription(api.blockTypes.getBlockTypes, [filter])\n const blockTypes = computed(() => blockTypesSubscription.response ?? [])\n\n usePageTitle('Blocks Catalog')\n</script>"],"names":["api","useWorkspaceApi","capability","ref","blockCapabilities","computed","filter","useBlockTypesFilter","blockTypesSubscription","useSubscription","blockTypes","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocksCatalog","BlockTypeList","$event"],"mappings":"iOAgBE,MAAMA,EAAMC,EAAA,EACNC,EAAaC,EAAmB,IAAI,EACpCC,EAAoBC,EAAS,IAAMH,EAAW,MAAQ,CAACA,EAAW,KAAK,EAAI,EAAE,EAE7E,CAAE,OAAAI,CAAA,EAAWC,EAAoB,CACrC,aAAc,CACZ,kBAAAH,CAAA,CACF,CACD,EACKI,EAAyBC,EAAgBT,EAAI,WAAW,cAAe,CAACM,CAAM,CAAC,EAC/EI,EAAaL,EAAS,IAAMG,EAAuB,UAAY,CAAA,CAAE,EAEvE,OAAAG,EAAa,gBAAgB,mDA3B7BC,EAMmBC,EAAA,CAND,MAAM,kBAAgB,CAC3B,SACT,IAA4B,CAA5BC,EAA4BC,EAAAC,CAAA,CAAA,CAAA,aAG9B,IAA2E,CAA3EF,EAA2EC,EAAAE,CAAA,EAAA,CAApD,WAAYf,EAAA,2CAAAA,EAAU,MAAAgB,GAAG,cAAaR,EAAA,KAAA"}
1
+ {"version":3,"file":"BlocksCatalog-CMTvZPfa.js","sources":["../../src/pages/BlocksCatalog.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"blocks-catalog\">\n <template #header>\n <PageHeadingBlocksCatalog />\n </template>\n\n <BlockTypeList v-model:capability=\"capability\" :block-types=\"blockTypes\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlocksCatalog, BlockTypeList, useWorkspaceApi, useBlockTypesFilter } from '@prefecthq/prefect-ui-library'\n import { useSubscription } from '@prefecthq/vue-compositions'\n import { computed, ref } from 'vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n\n const api = useWorkspaceApi()\n const capability = ref<string | null>(null)\n const blockCapabilities = computed(() => capability.value ? [capability.value] : [])\n\n const { filter } = useBlockTypesFilter({\n blockSchemas: {\n blockCapabilities,\n },\n })\n const blockTypesSubscription = useSubscription(api.blockTypes.getBlockTypes, [filter])\n const blockTypes = computed(() => blockTypesSubscription.response ?? [])\n\n usePageTitle('Blocks Catalog')\n</script>"],"names":["api","useWorkspaceApi","capability","ref","blockCapabilities","computed","filter","useBlockTypesFilter","blockTypesSubscription","useSubscription","blockTypes","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocksCatalog","BlockTypeList","$event"],"mappings":"iOAgBE,MAAMA,EAAMC,EAAA,EACNC,EAAaC,EAAmB,IAAI,EACpCC,EAAoBC,EAAS,IAAMH,EAAW,MAAQ,CAACA,EAAW,KAAK,EAAI,EAAE,EAE7E,CAAE,OAAAI,CAAA,EAAWC,EAAoB,CACrC,aAAc,CACZ,kBAAAH,CAAA,CACF,CACD,EACKI,EAAyBC,EAAgBT,EAAI,WAAW,cAAe,CAACM,CAAM,CAAC,EAC/EI,EAAaL,EAAS,IAAMG,EAAuB,UAAY,CAAA,CAAE,EAEvE,OAAAG,EAAa,gBAAgB,mDA3B7BC,EAMmBC,EAAA,CAND,MAAM,kBAAgB,CAC3B,SACT,IAA4B,CAA5BC,EAA4BC,EAAAC,CAAA,CAAA,CAAA,aAG9B,IAA2E,CAA3EF,EAA2EC,EAAAE,CAAA,EAAA,CAApD,WAAYf,EAAA,2CAAAA,EAAU,MAAAgB,GAAG,cAAaR,EAAA,KAAA"}
@@ -1,2 +1,2 @@
1
- import{d as T,S as x,u as N,al as P,v as V,g as o,bH as m,h as A,c as r,a as u,o as n,i as p,m as k,cp as D,cq as F,Z as H,cr as J,k as q,cs as w,J as v,ct as z,bg as G}from"./index-C9FkjDpZ.js";import{u as L}from"./usePageTitle-B0Hz_El0.js";const j=T({__name:"BlocksCatalogCreate",setup(R){const s=x(),t=N(),i=P("redirect"),b=V("blockTypeSlug"),y=o(()=>b.value?[b.value]:null),d=m(s.blockTypes.getBlockTypeBySlug,y),e=o(()=>d.response),f=o(()=>e.value?[e.value.id]:null),h=m(s.blockSchemas.getBlockSchemaForBlockType,f),l=o(()=>h.response);function S(a){s.blockDocuments.createBlockDocument(a).then(({id:c})=>g(c)).catch(c=>{v("Failed to create block","error"),console.error(c)})}function _(){t.back()}function g(a){if(v("Block created successfully","success"),i.value){const c=t.resolve(z(i.value));t.push(c);return}t.push(G.block(a))}const B=o(()=>e.value?`Create ${e.value.name} Block`:"Create Block");return L(B),(a,c)=>{const C=A("p-layout-default");return e.value?(n(),r(C,{key:0,class:"blocks-catalog-create"},{header:p(()=>[q(k(w),{"block-type":e.value},null,8,["block-type"])]),default:p(()=>[e.value?(n(),r(k(D),{key:0,"block-type":e.value},{default:p(()=>[l.value?(n(),r(k(F),H({key:l.value.id,"block-schema":l.value},J({submit:S,cancel:_})),null,16,["block-schema"])):u("",!0)]),_:1},8,["block-type"])):u("",!0)]),_:1})):u("",!0)}}});export{j as default};
2
- //# sourceMappingURL=BlocksCatalogCreate-DMhVoHqt.js.map
1
+ import{d as T,S as x,u as N,al as P,v as V,g as o,bH as m,h as A,c as r,a as u,o as n,i as p,m as k,cp as D,cq as F,Z as H,cr as J,k as q,cs as w,J as v,ct as z,bg as G}from"./index-DS86r6aC.js";import{u as L}from"./usePageTitle-BXVkHaWQ.js";const j=T({__name:"BlocksCatalogCreate",setup(R){const s=x(),t=N(),i=P("redirect"),b=V("blockTypeSlug"),y=o(()=>b.value?[b.value]:null),d=m(s.blockTypes.getBlockTypeBySlug,y),e=o(()=>d.response),f=o(()=>e.value?[e.value.id]:null),h=m(s.blockSchemas.getBlockSchemaForBlockType,f),l=o(()=>h.response);function S(a){s.blockDocuments.createBlockDocument(a).then(({id:c})=>g(c)).catch(c=>{v("Failed to create block","error"),console.error(c)})}function _(){t.back()}function g(a){if(v("Block created successfully","success"),i.value){const c=t.resolve(z(i.value));t.push(c);return}t.push(G.block(a))}const B=o(()=>e.value?`Create ${e.value.name} Block`:"Create Block");return L(B),(a,c)=>{const C=A("p-layout-default");return e.value?(n(),r(C,{key:0,class:"blocks-catalog-create"},{header:p(()=>[q(k(w),{"block-type":e.value},null,8,["block-type"])]),default:p(()=>[e.value?(n(),r(k(D),{key:0,"block-type":e.value},{default:p(()=>[l.value?(n(),r(k(F),H({key:l.value.id,"block-schema":l.value},J({submit:S,cancel:_})),null,16,["block-schema"])):u("",!0)]),_:1},8,["block-type"])):u("",!0)]),_:1})):u("",!0)}}});export{j as default};
2
+ //# sourceMappingURL=BlocksCatalogCreate-BvAnp5Nv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksCatalogCreate-DMhVoHqt.js","sources":["../../src/pages/BlocksCatalogCreate.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockType\" class=\"blocks-catalog-create\">\n <template #header>\n <PageHeadingBlocksCatalogCreate :block-type=\"blockType\" />\n </template>\n\n <template v-if=\"blockType\">\n <BlockTypeCardLayout :block-type=\"blockType\">\n <template v-if=\"blockSchema\">\n <BlockSchemaCreateForm :key=\"blockSchema.id\" :block-schema=\"blockSchema\" v-on=\"{ submit, cancel }\" />\n </template>\n </BlockTypeCardLayout>\n </template>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { showToast } from '@prefecthq/prefect-design'\n import { PageHeadingBlocksCatalogCreate, BlockTypeCardLayout, BlockSchemaCreateForm, BlockDocumentCreateNamed, asSingle, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam, useRouteQueryParam, useSubscriptionWithDependencies } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router'\n\n const api = useWorkspaceApi()\n const router = useRouter()\n const redirect = useRouteQueryParam('redirect')\n\n const blockTypeSlugParam = useRouteParam('blockTypeSlug')\n const blockTypeSubscriptionArgs = computed<Parameters<typeof api.blockTypes.getBlockTypeBySlug> | null>(() => {\n if (!blockTypeSlugParam.value) {\n return null\n }\n\n return [blockTypeSlugParam.value]\n })\n\n const blockTypeSubscription = useSubscriptionWithDependencies(api.blockTypes.getBlockTypeBySlug, blockTypeSubscriptionArgs)\n const blockType = computed(() => blockTypeSubscription.response)\n\n const blockSchemaSubscriptionArgs = computed<Parameters<typeof api.blockSchemas.getBlockSchemaForBlockType> | null>(() => {\n if (!blockType.value) {\n return null\n }\n\n return [blockType.value.id]\n })\n\n const blockSchemaSubscription = useSubscriptionWithDependencies(api.blockSchemas.getBlockSchemaForBlockType, blockSchemaSubscriptionArgs)\n const blockSchema = computed(() => blockSchemaSubscription.response)\n\n function submit(request: BlockDocumentCreateNamed): void {\n api.blockDocuments\n .createBlockDocument(request)\n .then(({ id }) => onSuccess(id))\n .catch(err => {\n showToast('Failed to create block', 'error')\n console.error(err)\n })\n }\n\n function cancel(): void {\n router.back()\n }\n\n function onSuccess(id: string): void {\n showToast('Block created successfully', 'success')\n\n if (redirect.value) {\n const route = router.resolve(asSingle(redirect.value))\n\n router.push(route)\n return\n }\n\n router.push(routes.block(id))\n }\n\n const title = computed<string>(() => {\n if (blockType.value) {\n return `Create ${blockType.value.name} Block`\n }\n return 'Create Block'\n })\n\n usePageTitle(title)\n</script>"],"names":["api","useWorkspaceApi","router","useRouter","redirect","useRouteQueryParam","blockTypeSlugParam","useRouteParam","blockTypeSubscriptionArgs","computed","blockTypeSubscription","useSubscriptionWithDependencies","blockType","blockSchemaSubscriptionArgs","blockSchemaSubscription","blockSchema","submit","request","id","onSuccess","err","showToast","cancel","route","asSingle","routes","title","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocksCatalogCreate","BlockTypeCardLayout","_openBlock","_mergeProps","_toHandlers"],"mappings":"mSAyBE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAAWC,EAAmB,UAAU,EAExCC,EAAqBC,EAAc,eAAe,EAClDC,EAA4BC,EAAsE,IACjGH,EAAmB,MAIjB,CAACA,EAAmB,KAAK,EAHvB,IAIV,EAEKI,EAAwBC,EAAgCX,EAAI,WAAW,mBAAoBQ,CAAyB,EACpHI,EAAYH,EAAS,IAAMC,EAAsB,QAAQ,EAEzDG,EAA8BJ,EAAgF,IAC7GG,EAAU,MAIR,CAACA,EAAU,MAAM,EAAE,EAHjB,IAIV,EAEKE,EAA0BH,EAAgCX,EAAI,aAAa,2BAA4Ba,CAA2B,EAClIE,EAAcN,EAAS,IAAMK,EAAwB,QAAQ,EAEnE,SAASE,EAAOC,EAAyC,CACvDjB,EAAI,eACD,oBAAoBiB,CAAO,EAC3B,KAAK,CAAC,CAAE,GAAAC,CAAA,IAASC,EAAUD,CAAE,CAAC,EAC9B,MAAME,GAAO,CACZC,EAAU,yBAA0B,OAAO,EAC3C,QAAQ,MAAMD,CAAG,CACnB,CAAC,CACL,CAEA,SAASE,GAAe,CACtBpB,EAAO,KAAA,CACT,CAEA,SAASiB,EAAUD,EAAkB,CAGnC,GAFAG,EAAU,6BAA8B,SAAS,EAE7CjB,EAAS,MAAO,CAClB,MAAMmB,EAAQrB,EAAO,QAAQsB,EAASpB,EAAS,KAAK,CAAC,EAErDF,EAAO,KAAKqB,CAAK,EACjB,MACF,CAEArB,EAAO,KAAKuB,EAAO,MAAMP,CAAE,CAAC,CAC9B,CAEA,MAAMQ,EAAQjB,EAAiB,IACzBG,EAAU,MACL,UAAUA,EAAU,MAAM,IAAI,SAEhC,cACR,EAED,OAAAe,EAAaD,CAAK,+CArFMd,EAAA,WAAxBgB,EAYmBC,EAAA,OAZgB,MAAM,uBAAA,GAC5B,SACT,IAA0D,CAA1DC,EAA0DC,EAAAC,CAAA,EAAA,CAAzB,aAAYpB,EAAA,OAAS,KAAA,EAAA,CAAA,YAAA,CAAA,CAAA,aAGxD,IAMW,CANKA,EAAA,WACdgB,EAIsBG,EAAAE,CAAA,EAAA,OAJA,aAAYrB,EAAA,KAAA,aAChC,IAEW,CAFKG,EAAA,OACdmB,EAAA,EAAAN,EAAqGG,KAArGI,EAAqG,CAA7E,IAAKpB,EAAA,MAAY,GAAK,eAAcA,EAAA,KAAA,EAAaqB,EAAyB,CAAA,OAAApB,EAAX,OAAAM,CAAA,CAAQ,CAAA,EAAA,KAAA,GAAA,CAAA,cAAA,CAAA"}
1
+ {"version":3,"file":"BlocksCatalogCreate-BvAnp5Nv.js","sources":["../../src/pages/BlocksCatalogCreate.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockType\" class=\"blocks-catalog-create\">\n <template #header>\n <PageHeadingBlocksCatalogCreate :block-type=\"blockType\" />\n </template>\n\n <template v-if=\"blockType\">\n <BlockTypeCardLayout :block-type=\"blockType\">\n <template v-if=\"blockSchema\">\n <BlockSchemaCreateForm :key=\"blockSchema.id\" :block-schema=\"blockSchema\" v-on=\"{ submit, cancel }\" />\n </template>\n </BlockTypeCardLayout>\n </template>\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { showToast } from '@prefecthq/prefect-design'\n import { PageHeadingBlocksCatalogCreate, BlockTypeCardLayout, BlockSchemaCreateForm, BlockDocumentCreateNamed, asSingle, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam, useRouteQueryParam, useSubscriptionWithDependencies } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router'\n\n const api = useWorkspaceApi()\n const router = useRouter()\n const redirect = useRouteQueryParam('redirect')\n\n const blockTypeSlugParam = useRouteParam('blockTypeSlug')\n const blockTypeSubscriptionArgs = computed<Parameters<typeof api.blockTypes.getBlockTypeBySlug> | null>(() => {\n if (!blockTypeSlugParam.value) {\n return null\n }\n\n return [blockTypeSlugParam.value]\n })\n\n const blockTypeSubscription = useSubscriptionWithDependencies(api.blockTypes.getBlockTypeBySlug, blockTypeSubscriptionArgs)\n const blockType = computed(() => blockTypeSubscription.response)\n\n const blockSchemaSubscriptionArgs = computed<Parameters<typeof api.blockSchemas.getBlockSchemaForBlockType> | null>(() => {\n if (!blockType.value) {\n return null\n }\n\n return [blockType.value.id]\n })\n\n const blockSchemaSubscription = useSubscriptionWithDependencies(api.blockSchemas.getBlockSchemaForBlockType, blockSchemaSubscriptionArgs)\n const blockSchema = computed(() => blockSchemaSubscription.response)\n\n function submit(request: BlockDocumentCreateNamed): void {\n api.blockDocuments\n .createBlockDocument(request)\n .then(({ id }) => onSuccess(id))\n .catch(err => {\n showToast('Failed to create block', 'error')\n console.error(err)\n })\n }\n\n function cancel(): void {\n router.back()\n }\n\n function onSuccess(id: string): void {\n showToast('Block created successfully', 'success')\n\n if (redirect.value) {\n const route = router.resolve(asSingle(redirect.value))\n\n router.push(route)\n return\n }\n\n router.push(routes.block(id))\n }\n\n const title = computed<string>(() => {\n if (blockType.value) {\n return `Create ${blockType.value.name} Block`\n }\n return 'Create Block'\n })\n\n usePageTitle(title)\n</script>"],"names":["api","useWorkspaceApi","router","useRouter","redirect","useRouteQueryParam","blockTypeSlugParam","useRouteParam","blockTypeSubscriptionArgs","computed","blockTypeSubscription","useSubscriptionWithDependencies","blockType","blockSchemaSubscriptionArgs","blockSchemaSubscription","blockSchema","submit","request","id","onSuccess","err","showToast","cancel","route","asSingle","routes","title","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocksCatalogCreate","BlockTypeCardLayout","_openBlock","_mergeProps","_toHandlers"],"mappings":"mSAyBE,MAAMA,EAAMC,EAAA,EACNC,EAASC,EAAA,EACTC,EAAWC,EAAmB,UAAU,EAExCC,EAAqBC,EAAc,eAAe,EAClDC,EAA4BC,EAAsE,IACjGH,EAAmB,MAIjB,CAACA,EAAmB,KAAK,EAHvB,IAIV,EAEKI,EAAwBC,EAAgCX,EAAI,WAAW,mBAAoBQ,CAAyB,EACpHI,EAAYH,EAAS,IAAMC,EAAsB,QAAQ,EAEzDG,EAA8BJ,EAAgF,IAC7GG,EAAU,MAIR,CAACA,EAAU,MAAM,EAAE,EAHjB,IAIV,EAEKE,EAA0BH,EAAgCX,EAAI,aAAa,2BAA4Ba,CAA2B,EAClIE,EAAcN,EAAS,IAAMK,EAAwB,QAAQ,EAEnE,SAASE,EAAOC,EAAyC,CACvDjB,EAAI,eACD,oBAAoBiB,CAAO,EAC3B,KAAK,CAAC,CAAE,GAAAC,CAAA,IAASC,EAAUD,CAAE,CAAC,EAC9B,MAAME,GAAO,CACZC,EAAU,yBAA0B,OAAO,EAC3C,QAAQ,MAAMD,CAAG,CACnB,CAAC,CACL,CAEA,SAASE,GAAe,CACtBpB,EAAO,KAAA,CACT,CAEA,SAASiB,EAAUD,EAAkB,CAGnC,GAFAG,EAAU,6BAA8B,SAAS,EAE7CjB,EAAS,MAAO,CAClB,MAAMmB,EAAQrB,EAAO,QAAQsB,EAASpB,EAAS,KAAK,CAAC,EAErDF,EAAO,KAAKqB,CAAK,EACjB,MACF,CAEArB,EAAO,KAAKuB,EAAO,MAAMP,CAAE,CAAC,CAC9B,CAEA,MAAMQ,EAAQjB,EAAiB,IACzBG,EAAU,MACL,UAAUA,EAAU,MAAM,IAAI,SAEhC,cACR,EAED,OAAAe,EAAaD,CAAK,+CArFMd,EAAA,WAAxBgB,EAYmBC,EAAA,OAZgB,MAAM,uBAAA,GAC5B,SACT,IAA0D,CAA1DC,EAA0DC,EAAAC,CAAA,EAAA,CAAzB,aAAYpB,EAAA,OAAS,KAAA,EAAA,CAAA,YAAA,CAAA,CAAA,aAGxD,IAMW,CANKA,EAAA,WACdgB,EAIsBG,EAAAE,CAAA,EAAA,OAJA,aAAYrB,EAAA,KAAA,aAChC,IAEW,CAFKG,EAAA,OACdmB,EAAA,EAAAN,EAAqGG,KAArGI,EAAqG,CAA7E,IAAKpB,EAAA,MAAY,GAAK,eAAcA,EAAA,KAAA,EAAaqB,EAAyB,CAAA,OAAApB,EAAX,OAAAM,CAAA,CAAQ,CAAA,EAAA,KAAA,GAAA,CAAA,cAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{d as k,S as i,v as y,g as o,bH as b,h as m,c as _,a as f,o as v,i as l,k as t,m as c,cn as T,co as d}from"./index-C9FkjDpZ.js";import{u as g}from"./usePageTitle-B0Hz_El0.js";const x=k({__name:"BlocksCatalogView",setup(S){const s=i(),a=y("blockTypeSlug"),n=o(()=>a.value?[a.value]:null),u=b(s.blockTypes.getBlockTypeBySlug,n),e=o(()=>u.response),p=o(()=>e.value?`Block Type: ${e.value.name}`:null);return g(p),(B,C)=>{const r=m("p-layout-default");return e.value?(v(),_(r,{key:0,class:"blocks-catalog-view"},{header:l(()=>[t(c(d),{"block-type":e.value},null,8,["block-type"])]),default:l(()=>[t(c(T),{"block-type":e.value},null,8,["block-type"])]),_:1})):f("",!0)}}});export{x as default};
2
- //# sourceMappingURL=BlocksCatalogView-30zvf2Zf.js.map
1
+ import{d as k,S as i,v as y,g as o,bH as b,h as m,c as _,a as f,o as v,i as l,k as t,m as c,cn as T,co as d}from"./index-DS86r6aC.js";import{u as g}from"./usePageTitle-BXVkHaWQ.js";const x=k({__name:"BlocksCatalogView",setup(S){const s=i(),a=y("blockTypeSlug"),n=o(()=>a.value?[a.value]:null),u=b(s.blockTypes.getBlockTypeBySlug,n),e=o(()=>u.response),p=o(()=>e.value?`Block Type: ${e.value.name}`:null);return g(p),(B,C)=>{const r=m("p-layout-default");return e.value?(v(),_(r,{key:0,class:"blocks-catalog-view"},{header:l(()=>[t(c(d),{"block-type":e.value},null,8,["block-type"])]),default:l(()=>[t(c(T),{"block-type":e.value},null,8,["block-type"])]),_:1})):f("",!0)}}});export{x as default};
2
+ //# sourceMappingURL=BlocksCatalogView-dqnPzpRL.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlocksCatalogView-30zvf2Zf.js","sources":["../../src/pages/BlocksCatalogView.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockType\" class=\"blocks-catalog-view\">\n <template #header>\n <PageHeadingBlocksCatalogView :block-type=\"blockType\" />\n </template>\n\n <BlockTypeCard :block-type=\"blockType\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlocksCatalogView, BlockTypeCard, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam, useSubscriptionWithDependencies } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n\n const api = useWorkspaceApi()\n const blockTypeSlugParam = useRouteParam('blockTypeSlug')\n const blockTypeSubscriptionArgs = computed<Parameters<typeof api.blockTypes.getBlockTypeBySlug> | null>(() => {\n if (!blockTypeSlugParam.value) {\n return null\n }\n\n return [blockTypeSlugParam.value]\n })\n\n const blockTypeSubscription = useSubscriptionWithDependencies(api.blockTypes.getBlockTypeBySlug, blockTypeSubscriptionArgs)\n const blockType = computed(() => blockTypeSubscription.response)\n\n const blockTypeTitle = computed<string | null>(() => {\n if (!blockType.value) {\n return null\n }\n return `Block Type: ${blockType.value.name}`\n })\n usePageTitle(blockTypeTitle)\n</script>"],"names":["api","useWorkspaceApi","blockTypeSlugParam","useRouteParam","blockTypeSubscriptionArgs","computed","blockTypeSubscription","useSubscriptionWithDependencies","blockType","blockTypeTitle","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocksCatalogView","BlockTypeCard"],"mappings":"oOAgBE,MAAMA,EAAMC,EAAA,EACNC,EAAqBC,EAAc,eAAe,EAClDC,EAA4BC,EAAsE,IACjGH,EAAmB,MAIjB,CAACA,EAAmB,KAAK,EAHvB,IAIV,EAEKI,EAAwBC,EAAgCP,EAAI,WAAW,mBAAoBI,CAAyB,EACpHI,EAAYH,EAAS,IAAMC,EAAsB,QAAQ,EAEzDG,EAAiBJ,EAAwB,IACxCG,EAAU,MAGR,eAAeA,EAAU,MAAM,IAAI,GAFjC,IAGV,EACD,OAAAE,EAAaD,CAAc,+CAlCHD,EAAA,WAAxBG,EAMmBC,EAAA,OANgB,MAAM,qBAAA,GAC5B,SACT,IAAwD,CAAxDC,EAAwDC,EAAAC,CAAA,EAAA,CAAzB,aAAYP,EAAA,OAAS,KAAA,EAAA,CAAA,YAAA,CAAA,CAAA,aAGtD,IAAyC,CAAzCK,EAAyCC,EAAAE,CAAA,EAAA,CAAzB,aAAYR,EAAA,OAAS,KAAA,EAAA,CAAA,YAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"BlocksCatalogView-dqnPzpRL.js","sources":["../../src/pages/BlocksCatalogView.vue"],"sourcesContent":["<template>\n <p-layout-default v-if=\"blockType\" class=\"blocks-catalog-view\">\n <template #header>\n <PageHeadingBlocksCatalogView :block-type=\"blockType\" />\n </template>\n\n <BlockTypeCard :block-type=\"blockType\" />\n </p-layout-default>\n</template>\n\n<script lang=\"ts\" setup>\n import { PageHeadingBlocksCatalogView, BlockTypeCard, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam, useSubscriptionWithDependencies } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { usePageTitle } from '@/compositions/usePageTitle'\n\n const api = useWorkspaceApi()\n const blockTypeSlugParam = useRouteParam('blockTypeSlug')\n const blockTypeSubscriptionArgs = computed<Parameters<typeof api.blockTypes.getBlockTypeBySlug> | null>(() => {\n if (!blockTypeSlugParam.value) {\n return null\n }\n\n return [blockTypeSlugParam.value]\n })\n\n const blockTypeSubscription = useSubscriptionWithDependencies(api.blockTypes.getBlockTypeBySlug, blockTypeSubscriptionArgs)\n const blockType = computed(() => blockTypeSubscription.response)\n\n const blockTypeTitle = computed<string | null>(() => {\n if (!blockType.value) {\n return null\n }\n return `Block Type: ${blockType.value.name}`\n })\n usePageTitle(blockTypeTitle)\n</script>"],"names":["api","useWorkspaceApi","blockTypeSlugParam","useRouteParam","blockTypeSubscriptionArgs","computed","blockTypeSubscription","useSubscriptionWithDependencies","blockType","blockTypeTitle","usePageTitle","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeadingBlocksCatalogView","BlockTypeCard"],"mappings":"oOAgBE,MAAMA,EAAMC,EAAA,EACNC,EAAqBC,EAAc,eAAe,EAClDC,EAA4BC,EAAsE,IACjGH,EAAmB,MAIjB,CAACA,EAAmB,KAAK,EAHvB,IAIV,EAEKI,EAAwBC,EAAgCP,EAAI,WAAW,mBAAoBI,CAAyB,EACpHI,EAAYH,EAAS,IAAMC,EAAsB,QAAQ,EAEzDG,EAAiBJ,EAAwB,IACxCG,EAAU,MAGR,eAAeA,EAAU,MAAM,IAAI,GAFjC,IAGV,EACD,OAAAE,EAAaD,CAAc,+CAlCHD,EAAA,WAAxBG,EAMmBC,EAAA,OANgB,MAAM,qBAAA,GAC5B,SACT,IAAwD,CAAxDC,EAAwDC,EAAAC,CAAA,EAAA,CAAzB,aAAYP,EAAA,OAAS,KAAA,EAAA,CAAA,YAAA,CAAA,CAAA,aAGtD,IAAyC,CAAzCK,EAAyCC,EAAAE,CAAA,EAAA,CAAzB,aAAYR,EAAA,OAAS,KAAA,EAAA,CAAA,YAAA,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{d as S,S as h,v as w,u as x,g as r,aJ as D,al as j,bv as R,j as T,h as l,c,o as n,i as a,k as z,m as t,a6 as A,a as o,cy as B,cz as u,cA as I,bg as N}from"./index-C9FkjDpZ.js";import{u as V}from"./usePageTitle-B0Hz_El0.js";const $=S({__name:"ConcurrencyLimit",setup(J){const m=h(),y=w("concurrencyLimitId"),p=x(),v=r(()=>[{label:"Details",hidden:D.xl},{label:"Active Task Runs"}]),s=j("tab","Details"),{tabs:d}=R(v,s),_={interval:3e5},b=T(m.concurrencyLimits.getConcurrencyLimit,[y.value],_),e=r(()=>b.response);function f(){p.push(N.concurrencyLimits())}const L=r(()=>e.value?`Concurrency Limit: ${e.value.tag}`:"Concurrency Limit");return V(L),(O,i)=>{const k=l("p-tabs"),C=l("p-layout-well");return n(),c(C,{class:"concurrencyLimit"},{header:a(()=>[e.value?(n(),c(t(I),{key:0,"concurrency-limit":e.value,onDelete:f},null,8,["concurrency-limit"])):o("",!0)]),well:a(()=>[e.value?(n(),c(t(u),{key:0,alternate:"","concurrency-limit":e.value},null,8,["concurrency-limit"])):o("",!0)]),default:a(()=>[z(k,{selected:t(s),"onUpdate:selected":i[0]||(i[0]=g=>A(s)?s.value=g:null),tabs:t(d)},{details:a(()=>[e.value?(n(),c(t(u),{key:0,"concurrency-limit":e.value},null,8,["concurrency-limit"])):o("",!0)]),"active-task-runs":a(()=>[e.value?.activeSlots?(n(),c(t(B),{key:0,"active-slots":e.value.activeSlots},null,8,["active-slots"])):o("",!0)]),_:1},8,["selected","tabs"])]),_:1})}}});export{$ as default};
2
- //# sourceMappingURL=ConcurrencyLimit-BW7Bnl17.js.map
1
+ import{d as S,S as h,v as w,u as x,g as r,aJ as D,al as j,bv as R,j as T,h as l,c,o as n,i as a,k as z,m as t,a6 as A,a as o,cy as B,cz as u,cA as I,bg as N}from"./index-DS86r6aC.js";import{u as V}from"./usePageTitle-BXVkHaWQ.js";const $=S({__name:"ConcurrencyLimit",setup(J){const m=h(),y=w("concurrencyLimitId"),p=x(),v=r(()=>[{label:"Details",hidden:D.xl},{label:"Active Task Runs"}]),s=j("tab","Details"),{tabs:d}=R(v,s),_={interval:3e5},b=T(m.concurrencyLimits.getConcurrencyLimit,[y.value],_),e=r(()=>b.response);function f(){p.push(N.concurrencyLimits())}const L=r(()=>e.value?`Concurrency Limit: ${e.value.tag}`:"Concurrency Limit");return V(L),(O,i)=>{const k=l("p-tabs"),C=l("p-layout-well");return n(),c(C,{class:"concurrencyLimit"},{header:a(()=>[e.value?(n(),c(t(I),{key:0,"concurrency-limit":e.value,onDelete:f},null,8,["concurrency-limit"])):o("",!0)]),well:a(()=>[e.value?(n(),c(t(u),{key:0,alternate:"","concurrency-limit":e.value},null,8,["concurrency-limit"])):o("",!0)]),default:a(()=>[z(k,{selected:t(s),"onUpdate:selected":i[0]||(i[0]=g=>A(s)?s.value=g:null),tabs:t(d)},{details:a(()=>[e.value?(n(),c(t(u),{key:0,"concurrency-limit":e.value},null,8,["concurrency-limit"])):o("",!0)]),"active-task-runs":a(()=>[e.value?.activeSlots?(n(),c(t(B),{key:0,"active-slots":e.value.activeSlots},null,8,["active-slots"])):o("",!0)]),_:1},8,["selected","tabs"])]),_:1})}}});export{$ as default};
2
+ //# sourceMappingURL=ConcurrencyLimit-ontTM1oT.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConcurrencyLimit-BW7Bnl17.js","sources":["../../src/pages/ConcurrencyLimit.vue"],"sourcesContent":["<template>\n <p-layout-well class=\"concurrencyLimit\">\n <template #header>\n <PageHeadingConcurrencyLimit v-if=\"concurrencyLimit\" :concurrency-limit=\"concurrencyLimit\" @delete=\"deleteConcurrencyLimit\" />\n </template>\n\n <p-tabs v-model:selected=\"tab\" :tabs=\"tabs\">\n <template #details>\n <ConcurrencyLimitDetails v-if=\"concurrencyLimit\" :concurrency-limit=\"concurrencyLimit\" />\n </template>\n <template #active-task-runs>\n <ConcurrencyLimitActiveRuns v-if=\"concurrencyLimit?.activeSlots\" :active-slots=\"concurrencyLimit.activeSlots\" />\n </template>\n </p-tabs>\n\n <template #well>\n <ConcurrencyLimitDetails v-if=\"concurrencyLimit\" alternate :concurrency-limit=\"concurrencyLimit\" />\n </template>\n </p-layout-well>\n</template>\n\n<script lang=\"ts\" setup>\n import { media } from '@prefecthq/prefect-design'\n import { PageHeadingConcurrencyLimit, ConcurrencyLimitDetails, ConcurrencyLimitActiveRuns, useTabs, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam, useRouteQueryParam, useSubscription } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router'\n\n const api = useWorkspaceApi()\n const concurrencyLimitId = useRouteParam('concurrencyLimitId')\n const router = useRouter()\n\n const computedTabs = computed(() => [\n { label: 'Details', hidden: media.xl },\n { label: 'Active Task Runs' },\n ])\n const tab = useRouteQueryParam('tab', 'Details')\n const { tabs } = useTabs(computedTabs, tab)\n\n const subscriptionOptions = {\n interval: 300000,\n }\n\n const concurrencyLimitSubscription = useSubscription(api.concurrencyLimits.getConcurrencyLimit, [concurrencyLimitId.value], subscriptionOptions)\n const concurrencyLimit = computed(() => concurrencyLimitSubscription.response)\n\n\n function deleteConcurrencyLimit(): void {\n router.push(routes.concurrencyLimits())\n }\n\n const title = computed<string>(() => {\n if (!concurrencyLimit.value) {\n return 'Concurrency Limit'\n }\n\n return `Concurrency Limit: ${concurrencyLimit.value.tag}`\n })\n\n usePageTitle(title)\n</script>"],"names":["api","useWorkspaceApi","concurrencyLimitId","useRouteParam","router","useRouter","computedTabs","computed","media","tab","useRouteQueryParam","tabs","useTabs","subscriptionOptions","concurrencyLimitSubscription","useSubscription","concurrencyLimit","deleteConcurrencyLimit","routes","title","usePageTitle","_createBlock","_component_p_layout_well","_unref","PageHeadingConcurrencyLimit","ConcurrencyLimitDetails","_createVNode","_component_p_tabs","$event","ConcurrencyLimitActiveRuns"],"mappings":"oRA8BE,MAAMA,EAAMC,EAAA,EACNC,EAAqBC,EAAc,oBAAoB,EACvDC,EAASC,EAAA,EAETC,EAAeC,EAAS,IAAM,CAClC,CAAE,MAAO,UAAW,OAAQC,EAAM,EAAA,EAClC,CAAE,MAAO,kBAAA,CAAmB,CAC7B,EACKC,EAAMC,EAAmB,MAAO,SAAS,EACzC,CAAE,KAAAC,CAAA,EAASC,EAAQN,EAAcG,CAAG,EAEpCI,EAAsB,CAC1B,SAAU,GAAA,EAGNC,EAA+BC,EAAgBf,EAAI,kBAAkB,oBAAqB,CAACE,EAAmB,KAAK,EAAGW,CAAmB,EACzIG,EAAmBT,EAAS,IAAMO,EAA6B,QAAQ,EAG7E,SAASG,GAA+B,CACtCb,EAAO,KAAKc,EAAO,mBAAmB,CACxC,CAEA,MAAMC,EAAQZ,EAAiB,IACxBS,EAAiB,MAIf,sBAAsBA,EAAiB,MAAM,GAAG,GAH9C,mBAIV,EAED,OAAAI,EAAaD,CAAK,8DA5DlBE,EAiBgBC,EAAA,CAjBD,MAAM,oBAAkB,CAC1B,SACT,IAA8H,CAA3FN,EAAA,WAAnCK,EAA8HE,EAAAC,CAAA,EAAA,OAAxE,oBAAmBR,EAAA,MAAmB,SAAQC,CAAA,4CAY3F,OACT,IAAmG,CAApED,EAAA,WAA/BK,EAAmGE,EAAAE,CAAA,EAAA,OAAlD,UAAA,GAAW,oBAAmBT,EAAA,KAAA,sDAVjF,IAOS,CAPTU,EAOSC,EAAA,CAPO,SAAUJ,EAAAd,CAAA,0CAAAA,EAAG,MAAAmB,EAAA,MAAG,KAAML,EAAAZ,CAAA,CAAA,GACzB,UACT,IAAyF,CAA1DK,EAAA,WAA/BK,EAAyFE,EAAAE,CAAA,EAAA,OAAvC,oBAAmBT,EAAA,KAAA,4CAE5D,qBACT,IAAgH,CAA9EA,EAAA,OAAkB,iBAApDK,EAAgHE,EAAAM,CAAA,EAAA,OAA9C,eAAcb,EAAA,MAAiB,WAAA"}
1
+ {"version":3,"file":"ConcurrencyLimit-ontTM1oT.js","sources":["../../src/pages/ConcurrencyLimit.vue"],"sourcesContent":["<template>\n <p-layout-well class=\"concurrencyLimit\">\n <template #header>\n <PageHeadingConcurrencyLimit v-if=\"concurrencyLimit\" :concurrency-limit=\"concurrencyLimit\" @delete=\"deleteConcurrencyLimit\" />\n </template>\n\n <p-tabs v-model:selected=\"tab\" :tabs=\"tabs\">\n <template #details>\n <ConcurrencyLimitDetails v-if=\"concurrencyLimit\" :concurrency-limit=\"concurrencyLimit\" />\n </template>\n <template #active-task-runs>\n <ConcurrencyLimitActiveRuns v-if=\"concurrencyLimit?.activeSlots\" :active-slots=\"concurrencyLimit.activeSlots\" />\n </template>\n </p-tabs>\n\n <template #well>\n <ConcurrencyLimitDetails v-if=\"concurrencyLimit\" alternate :concurrency-limit=\"concurrencyLimit\" />\n </template>\n </p-layout-well>\n</template>\n\n<script lang=\"ts\" setup>\n import { media } from '@prefecthq/prefect-design'\n import { PageHeadingConcurrencyLimit, ConcurrencyLimitDetails, ConcurrencyLimitActiveRuns, useTabs, useWorkspaceApi } from '@prefecthq/prefect-ui-library'\n import { useRouteParam, useRouteQueryParam, useSubscription } from '@prefecthq/vue-compositions'\n import { computed } from 'vue'\n import { useRouter } from 'vue-router'\n import { usePageTitle } from '@/compositions/usePageTitle'\n import { routes } from '@/router'\n\n const api = useWorkspaceApi()\n const concurrencyLimitId = useRouteParam('concurrencyLimitId')\n const router = useRouter()\n\n const computedTabs = computed(() => [\n { label: 'Details', hidden: media.xl },\n { label: 'Active Task Runs' },\n ])\n const tab = useRouteQueryParam('tab', 'Details')\n const { tabs } = useTabs(computedTabs, tab)\n\n const subscriptionOptions = {\n interval: 300000,\n }\n\n const concurrencyLimitSubscription = useSubscription(api.concurrencyLimits.getConcurrencyLimit, [concurrencyLimitId.value], subscriptionOptions)\n const concurrencyLimit = computed(() => concurrencyLimitSubscription.response)\n\n\n function deleteConcurrencyLimit(): void {\n router.push(routes.concurrencyLimits())\n }\n\n const title = computed<string>(() => {\n if (!concurrencyLimit.value) {\n return 'Concurrency Limit'\n }\n\n return `Concurrency Limit: ${concurrencyLimit.value.tag}`\n })\n\n usePageTitle(title)\n</script>"],"names":["api","useWorkspaceApi","concurrencyLimitId","useRouteParam","router","useRouter","computedTabs","computed","media","tab","useRouteQueryParam","tabs","useTabs","subscriptionOptions","concurrencyLimitSubscription","useSubscription","concurrencyLimit","deleteConcurrencyLimit","routes","title","usePageTitle","_createBlock","_component_p_layout_well","_unref","PageHeadingConcurrencyLimit","ConcurrencyLimitDetails","_createVNode","_component_p_tabs","$event","ConcurrencyLimitActiveRuns"],"mappings":"oRA8BE,MAAMA,EAAMC,EAAA,EACNC,EAAqBC,EAAc,oBAAoB,EACvDC,EAASC,EAAA,EAETC,EAAeC,EAAS,IAAM,CAClC,CAAE,MAAO,UAAW,OAAQC,EAAM,EAAA,EAClC,CAAE,MAAO,kBAAA,CAAmB,CAC7B,EACKC,EAAMC,EAAmB,MAAO,SAAS,EACzC,CAAE,KAAAC,CAAA,EAASC,EAAQN,EAAcG,CAAG,EAEpCI,EAAsB,CAC1B,SAAU,GAAA,EAGNC,EAA+BC,EAAgBf,EAAI,kBAAkB,oBAAqB,CAACE,EAAmB,KAAK,EAAGW,CAAmB,EACzIG,EAAmBT,EAAS,IAAMO,EAA6B,QAAQ,EAG7E,SAASG,GAA+B,CACtCb,EAAO,KAAKc,EAAO,mBAAmB,CACxC,CAEA,MAAMC,EAAQZ,EAAiB,IACxBS,EAAiB,MAIf,sBAAsBA,EAAiB,MAAM,GAAG,GAH9C,mBAIV,EAED,OAAAI,EAAaD,CAAK,8DA5DlBE,EAiBgBC,EAAA,CAjBD,MAAM,oBAAkB,CAC1B,SACT,IAA8H,CAA3FN,EAAA,WAAnCK,EAA8HE,EAAAC,CAAA,EAAA,OAAxE,oBAAmBR,EAAA,MAAmB,SAAQC,CAAA,4CAY3F,OACT,IAAmG,CAApED,EAAA,WAA/BK,EAAmGE,EAAAE,CAAA,EAAA,OAAlD,UAAA,GAAW,oBAAmBT,EAAA,KAAA,sDAVjF,IAOS,CAPTU,EAOSC,EAAA,CAPO,SAAUJ,EAAAd,CAAA,0CAAAA,EAAG,MAAAmB,EAAA,MAAG,KAAML,EAAAZ,CAAA,CAAA,GACzB,UACT,IAAyF,CAA1DK,EAAA,WAA/BK,EAAyFE,EAAAE,CAAA,EAAA,OAAvC,oBAAmBT,EAAA,KAAA,4CAE5D,qBACT,IAAgH,CAA9EA,EAAA,OAAkB,iBAApDK,EAAgHE,EAAAM,CAAA,EAAA,OAA9C,eAAcb,EAAA,MAAiB,WAAA"}
@@ -1,2 +1,2 @@
1
- import{d as w,cB as m,al as C,h as u,c as M,o as y,i as a,k as l,a6 as r,m as o,z as i,cC as h,cD as x,cE as z,cF as G}from"./index-C9FkjDpZ.js";const T=w({__name:"ConcurrencyLimits",setup(R){const{showModal:t,open:p}=m(),{showModal:e,open:b}=m(),_=[{label:"Global"},{label:"Task Run"}],c=C("tab","Global");return(g,s)=>{const d=u("p-button"),f=u("p-tabs"),k=u("p-layout-default");return y(),M(k,{class:"concurrency-limits"},{header:a(()=>[l(o(i),{crumbs:[{text:"Concurrency"}]})]),default:a(()=>[l(f,{selected:o(c),"onUpdate:selected":s[2]||(s[2]=n=>r(c)?c.value=n:null),tabs:_},{global:a(()=>[l(o(i),{size:"lg",crumbs:[{text:"Global Concurrency Limits"}]},{"after-crumbs":a(()=>[l(d,{small:"",icon:"PlusIcon",onClick:o(p)},null,8,["onClick"])]),_:1}),l(o(z),{showModal:o(t),"onUpdate:showModal":s[0]||(s[0]=n=>r(t)?t.value=n:null)},null,8,["showModal"]),l(o(G),{class:"concurrency-limits__global-table"})]),"task-run":a(()=>[l(o(i),{size:"lg",crumbs:[{text:"Task Run Concurrency Limits"}]},{"after-crumbs":a(()=>[l(d,{small:"",icon:"PlusIcon",onClick:o(b)},null,8,["onClick"])]),_:1}),l(o(h),{showModal:o(e),"onUpdate:showModal":s[1]||(s[1]=n=>r(e)?e.value=n:null)},null,8,["showModal"]),l(o(x),{class:"concurrency-limits__task-limits-table"})]),_:1},8,["selected"])]),_:1})}}});export{T as default};
2
- //# sourceMappingURL=ConcurrencyLimits-Ct9fPcPd.js.map
1
+ import{d as w,cB as m,al as C,h as u,c as M,o as y,i as a,k as l,a6 as r,m as o,z as i,cC as h,cD as x,cE as z,cF as G}from"./index-DS86r6aC.js";const T=w({__name:"ConcurrencyLimits",setup(R){const{showModal:t,open:p}=m(),{showModal:e,open:b}=m(),_=[{label:"Global"},{label:"Task Run"}],c=C("tab","Global");return(g,s)=>{const d=u("p-button"),f=u("p-tabs"),k=u("p-layout-default");return y(),M(k,{class:"concurrency-limits"},{header:a(()=>[l(o(i),{crumbs:[{text:"Concurrency"}]})]),default:a(()=>[l(f,{selected:o(c),"onUpdate:selected":s[2]||(s[2]=n=>r(c)?c.value=n:null),tabs:_},{global:a(()=>[l(o(i),{size:"lg",crumbs:[{text:"Global Concurrency Limits"}]},{"after-crumbs":a(()=>[l(d,{small:"",icon:"PlusIcon",onClick:o(p)},null,8,["onClick"])]),_:1}),l(o(z),{showModal:o(t),"onUpdate:showModal":s[0]||(s[0]=n=>r(t)?t.value=n:null)},null,8,["showModal"]),l(o(G),{class:"concurrency-limits__global-table"})]),"task-run":a(()=>[l(o(i),{size:"lg",crumbs:[{text:"Task Run Concurrency Limits"}]},{"after-crumbs":a(()=>[l(d,{small:"",icon:"PlusIcon",onClick:o(b)},null,8,["onClick"])]),_:1}),l(o(h),{showModal:o(e),"onUpdate:showModal":s[1]||(s[1]=n=>r(e)?e.value=n:null)},null,8,["showModal"]),l(o(x),{class:"concurrency-limits__task-limits-table"})]),_:1},8,["selected"])]),_:1})}}});export{T as default};
2
+ //# sourceMappingURL=ConcurrencyLimits-Ctczt53J.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConcurrencyLimits-Ct9fPcPd.js","sources":["../../src/pages/ConcurrencyLimits.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"concurrency-limits\">\n <template #header>\n <PageHeading :crumbs=\"[{ text: 'Concurrency' }]\" />\n </template>\n <p-tabs v-model:selected=\"tab\" :tabs=\"tabs\">\n <template #global>\n <PageHeading size=\"lg\" :crumbs=\"[{ text: 'Global Concurrency Limits' }]\">\n <template #after-crumbs>\n <p-button small icon=\"PlusIcon\" @click=\"openGlobal\" />\n </template>\n </PageHeading>\n <ConcurrencyLimitsV2CreateModal v-model:showModal=\"showModalGlobal\" />\n <ConcurrencyLimitsV2Table class=\"concurrency-limits__global-table\" />\n </template>\n <template #task-run>\n <PageHeading size=\"lg\" :crumbs=\"[{ text: 'Task Run Concurrency Limits' }]\">\n <template #after-crumbs>\n <p-button small icon=\"PlusIcon\" @click=\"openTaskRun\" />\n </template>\n </PageHeading>\n <ConcurrencyLimitsCreateModal v-model:showModal=\"showModalTaskRun\" />\n <ConcurrencyLimitsTable class=\"concurrency-limits__task-limits-table\" />\n </template>\n </p-tabs>\n </p-layout-default>\n</template>\n\n <script lang=\"ts\" setup>\n import { PageHeading, ConcurrencyLimitsV2Table, ConcurrencyLimitsTable, ConcurrencyLimitsCreateModal, ConcurrencyLimitsV2CreateModal, useShowModal } from '@prefecthq/prefect-ui-library'\n import { useRouteQueryParam } from '@prefecthq/vue-compositions'\n\n const { showModal: showModalGlobal, open: openGlobal } = useShowModal()\n const { showModal: showModalTaskRun, open: openTaskRun } = useShowModal()\n\n const tabs = [\n { label: 'Global' },\n { label: 'Task Run' },\n ]\n\n const tab = useRouteQueryParam('tab', 'Global')\n</script>\n\n<style>\n.concurrency-limits__global-table { @apply\n mb-2\n mt-4\n}\n\n.concurrency-limits__task-limits-table { @apply\n mb-2\n mt-4\n}\n</style>"],"names":["showModalGlobal","openGlobal","useShowModal","showModalTaskRun","openTaskRun","tabs","tab","useRouteQueryParam","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeading","_component_p_tabs","$event","_component_p_button","ConcurrencyLimitsV2CreateModal","ConcurrencyLimitsV2Table","ConcurrencyLimitsCreateModal","ConcurrencyLimitsTable"],"mappings":"gMAgCE,KAAM,CAAE,UAAWA,EAAiB,KAAMC,CAAA,EAAeC,EAAA,EACnD,CAAE,UAAWC,EAAkB,KAAMC,CAAA,EAAgBF,EAAA,EAErDG,EAAO,CACX,CAAE,MAAO,QAAA,EACT,CAAE,MAAO,UAAA,CAAW,EAGhBC,EAAMC,EAAmB,MAAO,QAAQ,uFAvC9CC,EAwBmBC,EAAA,CAxBD,MAAM,sBAAoB,CAC/B,SACT,IAAmD,CAAnDC,EAAmDC,EAAAC,CAAA,EAAA,CAArC,OAAQ,CAAA,CAAA,KAAA,aAAA,CAAA,CAAA,CAAyB,CAAA,aAEjD,IAmBS,CAnBTF,EAmBSG,EAAA,CAnBO,SAAUF,EAAAL,CAAA,0CAAAA,EAAG,MAAAQ,EAAA,MAAG,KAAAT,CAAA,GACnB,SACT,IAIc,CAJdK,EAIcC,EAAAC,CAAA,EAAA,CAJD,KAAK,KAAM,OAAQ,CAAA,CAAA,KAAA,4BAAA,CAAA,GACnB,iBACT,IAAsD,CAAtDF,EAAsDK,EAAA,CAA5C,MAAA,GAAM,KAAK,WAAY,QAAOJ,EAAAV,CAAA,CAAA,8BAG5CS,EAAsEC,EAAAK,CAAA,EAAA,CAA9B,UAAWL,EAAAX,CAAA,2CAAAA,EAAe,MAAAc,EAAA,KAAA,wBAClEJ,EAAqEC,EAAAM,CAAA,EAAA,CAA3C,MAAM,mCAAkC,CAAA,GAEzD,aACT,IAIc,CAJdP,EAIcC,EAAAC,CAAA,EAAA,CAJD,KAAK,KAAM,OAAQ,CAAA,CAAA,KAAA,8BAAA,CAAA,GACnB,iBACT,IAAuD,CAAvDF,EAAuDK,EAAA,CAA7C,MAAA,GAAM,KAAK,WAAY,QAAOJ,EAAAP,CAAA,CAAA,8BAG5CM,EAAqEC,EAAAO,CAAA,EAAA,CAA/B,UAAWP,EAAAR,CAAA,2CAAAA,EAAgB,MAAAW,EAAA,KAAA,wBACjEJ,EAAwEC,EAAAQ,CAAA,EAAA,CAAhD,MAAM,wCAAuC,CAAA"}
1
+ {"version":3,"file":"ConcurrencyLimits-Ctczt53J.js","sources":["../../src/pages/ConcurrencyLimits.vue"],"sourcesContent":["<template>\n <p-layout-default class=\"concurrency-limits\">\n <template #header>\n <PageHeading :crumbs=\"[{ text: 'Concurrency' }]\" />\n </template>\n <p-tabs v-model:selected=\"tab\" :tabs=\"tabs\">\n <template #global>\n <PageHeading size=\"lg\" :crumbs=\"[{ text: 'Global Concurrency Limits' }]\">\n <template #after-crumbs>\n <p-button small icon=\"PlusIcon\" @click=\"openGlobal\" />\n </template>\n </PageHeading>\n <ConcurrencyLimitsV2CreateModal v-model:showModal=\"showModalGlobal\" />\n <ConcurrencyLimitsV2Table class=\"concurrency-limits__global-table\" />\n </template>\n <template #task-run>\n <PageHeading size=\"lg\" :crumbs=\"[{ text: 'Task Run Concurrency Limits' }]\">\n <template #after-crumbs>\n <p-button small icon=\"PlusIcon\" @click=\"openTaskRun\" />\n </template>\n </PageHeading>\n <ConcurrencyLimitsCreateModal v-model:showModal=\"showModalTaskRun\" />\n <ConcurrencyLimitsTable class=\"concurrency-limits__task-limits-table\" />\n </template>\n </p-tabs>\n </p-layout-default>\n</template>\n\n <script lang=\"ts\" setup>\n import { PageHeading, ConcurrencyLimitsV2Table, ConcurrencyLimitsTable, ConcurrencyLimitsCreateModal, ConcurrencyLimitsV2CreateModal, useShowModal } from '@prefecthq/prefect-ui-library'\n import { useRouteQueryParam } from '@prefecthq/vue-compositions'\n\n const { showModal: showModalGlobal, open: openGlobal } = useShowModal()\n const { showModal: showModalTaskRun, open: openTaskRun } = useShowModal()\n\n const tabs = [\n { label: 'Global' },\n { label: 'Task Run' },\n ]\n\n const tab = useRouteQueryParam('tab', 'Global')\n</script>\n\n<style>\n.concurrency-limits__global-table { @apply\n mb-2\n mt-4\n}\n\n.concurrency-limits__task-limits-table { @apply\n mb-2\n mt-4\n}\n</style>"],"names":["showModalGlobal","openGlobal","useShowModal","showModalTaskRun","openTaskRun","tabs","tab","useRouteQueryParam","_createBlock","_component_p_layout_default","_createVNode","_unref","PageHeading","_component_p_tabs","$event","_component_p_button","ConcurrencyLimitsV2CreateModal","ConcurrencyLimitsV2Table","ConcurrencyLimitsCreateModal","ConcurrencyLimitsTable"],"mappings":"gMAgCE,KAAM,CAAE,UAAWA,EAAiB,KAAMC,CAAA,EAAeC,EAAA,EACnD,CAAE,UAAWC,EAAkB,KAAMC,CAAA,EAAgBF,EAAA,EAErDG,EAAO,CACX,CAAE,MAAO,QAAA,EACT,CAAE,MAAO,UAAA,CAAW,EAGhBC,EAAMC,EAAmB,MAAO,QAAQ,uFAvC9CC,EAwBmBC,EAAA,CAxBD,MAAM,sBAAoB,CAC/B,SACT,IAAmD,CAAnDC,EAAmDC,EAAAC,CAAA,EAAA,CAArC,OAAQ,CAAA,CAAA,KAAA,aAAA,CAAA,CAAA,CAAyB,CAAA,aAEjD,IAmBS,CAnBTF,EAmBSG,EAAA,CAnBO,SAAUF,EAAAL,CAAA,0CAAAA,EAAG,MAAAQ,EAAA,MAAG,KAAAT,CAAA,GACnB,SACT,IAIc,CAJdK,EAIcC,EAAAC,CAAA,EAAA,CAJD,KAAK,KAAM,OAAQ,CAAA,CAAA,KAAA,4BAAA,CAAA,GACnB,iBACT,IAAsD,CAAtDF,EAAsDK,EAAA,CAA5C,MAAA,GAAM,KAAK,WAAY,QAAOJ,EAAAV,CAAA,CAAA,8BAG5CS,EAAsEC,EAAAK,CAAA,EAAA,CAA9B,UAAWL,EAAAX,CAAA,2CAAAA,EAAe,MAAAc,EAAA,KAAA,wBAClEJ,EAAqEC,EAAAM,CAAA,EAAA,CAA3C,MAAM,mCAAkC,CAAA,GAEzD,aACT,IAIc,CAJdP,EAIcC,EAAAC,CAAA,EAAA,CAJD,KAAK,KAAM,OAAQ,CAAA,CAAA,KAAA,8BAAA,CAAA,GACnB,iBACT,IAAuD,CAAvDF,EAAuDK,EAAA,CAA7C,MAAA,GAAM,KAAK,WAAY,QAAOJ,EAAAP,CAAA,CAAA,8BAG5CM,EAAqEC,EAAAO,CAAA,EAAA,CAA/B,UAAWP,EAAAR,CAAA,2CAAAA,EAAgB,MAAAW,EAAA,KAAA,wBACjEJ,EAAwEC,EAAAQ,CAAA,EAAA,CAAhD,MAAM,wCAAuC,CAAA"}
@@ -1,2 +1,2 @@
1
- import{d as F,aS as R,aT as A,aU as B,S as U,I as D,g as d,j as N,aV as P,h as c,c as u,o as n,i as l,n as w,a as b,F as T,m as e,aW as j,k as o,l as i,aX as I,aY as W,y as X,aZ as Y,a_ as z,B as E,z as H,D as L,a$ as M,ay as Z,aC as $}from"./index-C9FkjDpZ.js";import{u as q}from"./usePrefectApi-B2fKZYDa.js";import"./mapper-NwaeXCHc.js";const G={class:"workspace-dashboard__header-actions"},J={class:"workspace-dashboard__subflows-toggle"},K={key:1,class:"workspace-dashboard__grid"},O={class:"workspace-dashboard__side"},te=F({__name:"Dashboard",async setup(Q){let r,p;R(B,{interval:A.secondsToMilliseconds(30)});const k=U(),h=q(),v=([r,p]=D(()=>h.admin.getSettings()),r=await r,p(),r),_=d(()=>v.server.ui.show_promotional_content);localStorage.setItem("prefect-show-promotional-content",String(_.value));const m=N(k.flowRuns.getFlowRunsCount,[{}]),f=d(()=>m.executed),g=d(()=>m.response===0),y=[{text:"Dashboard"}],s=P({range:{type:"span",seconds:-$},tags:[]}),C=()=>X.map("WorkspaceDashboardFilter",s,"TaskRunsFilter");return(ee,a)=>{const S=c("p-toggle"),V=c("p-button"),x=c("p-layout-default");return n(),u(x,{class:"workspace-dashboard"},{header:l(()=>[o(e(H),{crumbs:y,class:"workspace-dashboard__page-heading"},L({_:2},[f.value&&!g.value?{name:"actions",fn:l(()=>[i("div",G,[i("div",J,[o(S,{modelValue:e(s).hideSubflows,"onUpdate:modelValue":a[0]||(a[0]=t=>e(s).hideSubflows=t),append:"Hide subflows"},null,8,["modelValue"])]),o(e(M),{selected:e(s).tags,"onUpdate:selected":a[1]||(a[1]=t=>e(s).tags=t),"empty-message":"All tags"},null,8,["selected"]),o(e(Z),{modelValue:e(s).range,"onUpdate:modelValue":a[2]||(a[2]=t=>e(s).range=t),class:"workspace-dashboard__date-select"},null,8,["modelValue"])])]),key:"0"}:void 0]),1024)]),default:l(()=>[f.value?(n(),w(T,{key:0},[g.value?(n(),u(e(j),{key:0})):(n(),w("div",K,[o(e(I),{filter:e(s)},null,8,["filter"]),i("div",O,[o(e(W),{filter:C}),o(e(Y),{class:"workspace-dashboard__work-pools",filter:e(s)},null,8,["filter"])])]))],64)):b("",!0),_.value?(n(),u(e(z),{key:1,title:"Ready to scale?",subtitle:"Webhooks, role and object-level security, and serverless push work pools on Prefect Cloud"},{actions:l(()=>[o(V,{to:"https://www.prefect.io/cloud-vs-oss?utm_source=oss&utm_medium=oss&utm_campaign=oss&utm_term=none&utm_content=none",target:"_blank",primary:""},{default:l(()=>[...a[3]||(a[3]=[E(" Upgrade to Cloud ",-1)])]),_:1})]),_:1})):b("",!0)]),_:1})}}});export{te as default};
2
- //# sourceMappingURL=Dashboard-C9HbsW9C.js.map
1
+ import{d as F,aS as R,aT as A,aU as B,S as U,I as D,g as d,j as N,aV as P,h as c,c as u,o as n,i as l,n as w,a as b,F as T,m as e,aW as j,k as o,l as i,aX as I,aY as W,y as X,aZ as Y,a_ as z,B as E,z as H,D as L,a$ as M,ay as Z,aC as $}from"./index-DS86r6aC.js";import{u as q}from"./usePrefectApi-Cn-hX9ms.js";import"./mapper-Bm5aN_dh.js";const G={class:"workspace-dashboard__header-actions"},J={class:"workspace-dashboard__subflows-toggle"},K={key:1,class:"workspace-dashboard__grid"},O={class:"workspace-dashboard__side"},te=F({__name:"Dashboard",async setup(Q){let r,p;R(B,{interval:A.secondsToMilliseconds(30)});const k=U(),h=q(),v=([r,p]=D(()=>h.admin.getSettings()),r=await r,p(),r),_=d(()=>v.server.ui.show_promotional_content);localStorage.setItem("prefect-show-promotional-content",String(_.value));const m=N(k.flowRuns.getFlowRunsCount,[{}]),f=d(()=>m.executed),g=d(()=>m.response===0),y=[{text:"Dashboard"}],s=P({range:{type:"span",seconds:-$},tags:[]}),C=()=>X.map("WorkspaceDashboardFilter",s,"TaskRunsFilter");return(ee,a)=>{const S=c("p-toggle"),V=c("p-button"),x=c("p-layout-default");return n(),u(x,{class:"workspace-dashboard"},{header:l(()=>[o(e(H),{crumbs:y,class:"workspace-dashboard__page-heading"},L({_:2},[f.value&&!g.value?{name:"actions",fn:l(()=>[i("div",G,[i("div",J,[o(S,{modelValue:e(s).hideSubflows,"onUpdate:modelValue":a[0]||(a[0]=t=>e(s).hideSubflows=t),append:"Hide subflows"},null,8,["modelValue"])]),o(e(M),{selected:e(s).tags,"onUpdate:selected":a[1]||(a[1]=t=>e(s).tags=t),"empty-message":"All tags"},null,8,["selected"]),o(e(Z),{modelValue:e(s).range,"onUpdate:modelValue":a[2]||(a[2]=t=>e(s).range=t),class:"workspace-dashboard__date-select"},null,8,["modelValue"])])]),key:"0"}:void 0]),1024)]),default:l(()=>[f.value?(n(),w(T,{key:0},[g.value?(n(),u(e(j),{key:0})):(n(),w("div",K,[o(e(I),{filter:e(s)},null,8,["filter"]),i("div",O,[o(e(W),{filter:C}),o(e(Y),{class:"workspace-dashboard__work-pools",filter:e(s)},null,8,["filter"])])]))],64)):b("",!0),_.value?(n(),u(e(z),{key:1,title:"Ready to scale?",subtitle:"Webhooks, role and object-level security, and serverless push work pools on Prefect Cloud"},{actions:l(()=>[o(V,{to:"https://www.prefect.io/cloud-vs-oss?utm_source=oss&utm_medium=oss&utm_campaign=oss&utm_term=none&utm_content=none",target:"_blank",primary:""},{default:l(()=>[...a[3]||(a[3]=[E(" Upgrade to Cloud ",-1)])]),_:1})]),_:1})):b("",!0)]),_:1})}}});export{te as default};
2
+ //# sourceMappingURL=Dashboard-o-S3xTqz.js.map