n8n-editor-ui 1.43.0 → 1.43.1

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 (147) hide show
  1. package/.turbo/turbo-build.log +72 -72
  2. package/dist/assets/{AuthView-wAV15F8m.js → AuthView-k9-4l8d2.js} +2 -2
  3. package/dist/assets/{AuthView-wAV15F8m.js.map → AuthView-k9-4l8d2.js.map} +1 -1
  4. package/dist/assets/{CanvasControls-gKuuF9YF.js → CanvasControls-4_78UsoA.js} +2 -2
  5. package/dist/assets/{CanvasControls-gKuuF9YF.js.map → CanvasControls-4_78UsoA.js.map} +1 -1
  6. package/dist/assets/{ChangePasswordView-lW3AftTZ.js → ChangePasswordView-WZx2sxAq.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-lW3AftTZ.js.map → ChangePasswordView-WZx2sxAq.js.map} +1 -1
  8. package/dist/assets/{CollectionParameter-DTYD_Lcf.js → CollectionParameter-DDWzNH-Y.js} +2 -2
  9. package/dist/assets/CollectionParameter-DDWzNH-Y.js.map +1 -0
  10. package/dist/assets/{CredentialsView-R7OKepMF.js → CredentialsView-pP5cOmCw.js} +2 -2
  11. package/dist/assets/{CredentialsView-R7OKepMF.js.map → CredentialsView-pP5cOmCw.js.map} +1 -1
  12. package/dist/assets/{ExecutionsFilter-NfToJM9y.js → ExecutionsFilter-Zq0mjSZf.js} +2 -2
  13. package/dist/assets/{ExecutionsFilter-NfToJM9y.js.map → ExecutionsFilter-Zq0mjSZf.js.map} +1 -1
  14. package/dist/assets/{ExecutionsView-i3z4OWwK.js → ExecutionsView-2RUbEKrf.js} +2 -2
  15. package/dist/assets/{ExecutionsView-i3z4OWwK.js.map → ExecutionsView-2RUbEKrf.js.map} +1 -1
  16. package/dist/assets/{ForgotMyPasswordView-OicEjBTM.js → ForgotMyPasswordView-ZBwhNj_M.js} +2 -2
  17. package/dist/assets/{ForgotMyPasswordView-OicEjBTM.js.map → ForgotMyPasswordView-ZBwhNj_M.js.map} +1 -1
  18. package/dist/assets/{MainHeader-VEoGw9mF.js → MainHeader-__zJO-m7.js} +2 -2
  19. package/dist/assets/{MainHeader-VEoGw9mF.js.map → MainHeader-__zJO-m7.js.map} +1 -1
  20. package/dist/assets/{MainSidebar-9VtAlHw5.js → MainSidebar-7XGRE24x.js} +2 -2
  21. package/dist/assets/{MainSidebar-9VtAlHw5.js.map → MainSidebar-7XGRE24x.js.map} +1 -1
  22. package/dist/assets/{NodeCreation-yGH6whwu.js → NodeCreation-BmkaaGqL.js} +3 -3
  23. package/dist/assets/{NodeCreation-yGH6whwu.js.map → NodeCreation-BmkaaGqL.js.map} +1 -1
  24. package/dist/assets/{NodeCreator-uo45xC8F.js → NodeCreator-iBjoivu6.js} +2 -2
  25. package/dist/assets/{NodeCreator-uo45xC8F.js.map → NodeCreator-iBjoivu6.js.map} +1 -1
  26. package/dist/assets/{NodeList-mBvddp-7.js → NodeList-qt_5gC5-.js} +2 -2
  27. package/dist/assets/{NodeList-mBvddp-7.js.map → NodeList-qt_5gC5-.js.map} +1 -1
  28. package/dist/assets/NodeView-qN4Zuw87.js +9 -0
  29. package/dist/assets/NodeView-qN4Zuw87.js.map +1 -0
  30. package/dist/assets/{NodeView-XB-d5jgs.css → NodeView-sEzPscdT.css} +1 -1
  31. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-YOVpN0pD.js → ProjectCardBadge.vue_vue_type_script_setup_true_lang-tfIcNjaC.js} +2 -2
  32. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-YOVpN0pD.js.map → ProjectCardBadge.vue_vue_type_script_setup_true_lang-tfIcNjaC.js.map} +1 -1
  33. package/dist/assets/{ProjectSettings-ZDAhIwhQ.js → ProjectSettings-B-H5G2EN.js} +2 -2
  34. package/dist/assets/{ProjectSettings-ZDAhIwhQ.js.map → ProjectSettings-B-H5G2EN.js.map} +1 -1
  35. package/dist/assets/{ProjectTabs-L2yrOMy6.js → ProjectTabs-A5hdgqW2.js} +2 -2
  36. package/dist/assets/{ProjectTabs-L2yrOMy6.js.map → ProjectTabs-A5hdgqW2.js.map} +1 -1
  37. package/dist/assets/{PushConnectionTracker-GgAPUiGC.js → PushConnectionTracker-1875-61J.js} +2 -2
  38. package/dist/assets/{PushConnectionTracker-GgAPUiGC.js.map → PushConnectionTracker-1875-61J.js.map} +1 -1
  39. package/dist/assets/{ResourcesListLayout-S53Q3neu.js → ResourcesListLayout-zQLxB7dP.js} +2 -2
  40. package/dist/assets/{ResourcesListLayout-S53Q3neu.js.map → ResourcesListLayout-zQLxB7dP.js.map} +1 -1
  41. package/dist/assets/{RunDataAi-jJ9KfOCF.js → RunDataAi-sZalPI5G.js} +2 -2
  42. package/dist/assets/{RunDataAi-jJ9KfOCF.js.map → RunDataAi-sZalPI5G.js.map} +1 -1
  43. package/dist/assets/{RunDataJson-52-sD-ud.js → RunDataJson-Wjq8QCxZ.js} +3 -3
  44. package/dist/assets/{RunDataJson-52-sD-ud.js.map → RunDataJson-Wjq8QCxZ.js.map} +1 -1
  45. package/dist/assets/{RunDataJsonActions-Zjaa2Qdn.js → RunDataJsonActions-s5miC4iz.js} +2 -2
  46. package/dist/assets/{RunDataJsonActions-Zjaa2Qdn.js.map → RunDataJsonActions-s5miC4iz.js.map} +1 -1
  47. package/dist/assets/{RunDataSchema-iNj_tX9n.js → RunDataSchema-s4wg-kE7.js} +2 -2
  48. package/dist/assets/{RunDataSchema-iNj_tX9n.js.map → RunDataSchema-s4wg-kE7.js.map} +1 -1
  49. package/dist/assets/{RunDataSearch-6GGyQrwT.js → RunDataSearch-jtcvkqv3.js} +2 -2
  50. package/dist/assets/{RunDataSearch-6GGyQrwT.js.map → RunDataSearch-jtcvkqv3.js.map} +1 -1
  51. package/dist/assets/{RunDataTable-f5gLoK65.js → RunDataTable-ViMJNYSP.js} +2 -2
  52. package/dist/assets/{RunDataTable-f5gLoK65.js.map → RunDataTable-ViMJNYSP.js.map} +1 -1
  53. package/dist/assets/{SamlOnboarding--QQ0CjBZ.js → SamlOnboarding-ImP6fnp5.js} +2 -2
  54. package/dist/assets/{SamlOnboarding--QQ0CjBZ.js.map → SamlOnboarding-ImP6fnp5.js.map} +1 -1
  55. package/dist/assets/{SettingsApiView-XqezQtu_.js → SettingsApiView-mtjfmBn2.js} +2 -2
  56. package/dist/assets/{SettingsApiView-XqezQtu_.js.map → SettingsApiView-mtjfmBn2.js.map} +1 -1
  57. package/dist/assets/{SettingsCommunityNodesView-qmLS2FT2.js → SettingsCommunityNodesView-3ZbERy3i.js} +2 -2
  58. package/dist/assets/{SettingsCommunityNodesView-qmLS2FT2.js.map → SettingsCommunityNodesView-3ZbERy3i.js.map} +1 -1
  59. package/dist/assets/{SettingsExternalSecrets--1U82XVJ.js → SettingsExternalSecrets-RZSTXpBn.js} +2 -2
  60. package/dist/assets/{SettingsExternalSecrets--1U82XVJ.js.map → SettingsExternalSecrets-RZSTXpBn.js.map} +1 -1
  61. package/dist/assets/{SettingsFakeDoorView-7i_qMtlE.js → SettingsFakeDoorView-woDCBRrk.js} +2 -2
  62. package/dist/assets/{SettingsFakeDoorView-7i_qMtlE.js.map → SettingsFakeDoorView-woDCBRrk.js.map} +1 -1
  63. package/dist/assets/{SettingsLdapView-uwXk-BOB.js → SettingsLdapView-VGtviAVN.js} +2 -2
  64. package/dist/assets/{SettingsLdapView-uwXk-BOB.js.map → SettingsLdapView-VGtviAVN.js.map} +1 -1
  65. package/dist/assets/{SettingsLogStreamingView-9iFeBG5H.js → SettingsLogStreamingView--Mm-atCG.js} +2 -2
  66. package/dist/assets/{SettingsLogStreamingView-9iFeBG5H.js.map → SettingsLogStreamingView--Mm-atCG.js.map} +1 -1
  67. package/dist/assets/{SettingsPersonalView-wv1eEj4o.js → SettingsPersonalView-5sWpXI6Q.js} +2 -2
  68. package/dist/assets/{SettingsPersonalView-wv1eEj4o.js.map → SettingsPersonalView-5sWpXI6Q.js.map} +1 -1
  69. package/dist/assets/{SettingsSourceControl-Q_7vZyBx.js → SettingsSourceControl-XlFUiK_r.js} +2 -2
  70. package/dist/assets/{SettingsSourceControl-Q_7vZyBx.js.map → SettingsSourceControl-XlFUiK_r.js.map} +1 -1
  71. package/dist/assets/{SettingsSso-9-1iByXJ.js → SettingsSso-RaxUMYEI.js} +2 -2
  72. package/dist/assets/{SettingsSso-9-1iByXJ.js.map → SettingsSso-RaxUMYEI.js.map} +1 -1
  73. package/dist/assets/{SettingsUsageAndPlan-Es866y16.js → SettingsUsageAndPlan-hZIuBr2_.js} +2 -2
  74. package/dist/assets/{SettingsUsageAndPlan-Es866y16.js.map → SettingsUsageAndPlan-hZIuBr2_.js.map} +1 -1
  75. package/dist/assets/{SettingsUsersView-wmmQr7i0.js → SettingsUsersView-Y7yTA_F4.js} +2 -2
  76. package/dist/assets/{SettingsUsersView-wmmQr7i0.js.map → SettingsUsersView-Y7yTA_F4.js.map} +1 -1
  77. package/dist/assets/{SettingsView-oYe3uTRj.js → SettingsView-rKKZ6L11.js} +2 -2
  78. package/dist/assets/{SettingsView-oYe3uTRj.js.map → SettingsView-rKKZ6L11.js.map} +1 -1
  79. package/dist/assets/{SetupView-KGS1CEsN.js → SetupView-vgQT3oJU.js} +2 -2
  80. package/dist/assets/{SetupView-KGS1CEsN.js.map → SetupView-vgQT3oJU.js.map} +1 -1
  81. package/dist/assets/{SetupWorkflowCredentialsButton-Ccl5HCte.js → SetupWorkflowCredentialsButton-QGvaG01Z.js} +2 -2
  82. package/dist/assets/{SetupWorkflowCredentialsButton-Ccl5HCte.js.map → SetupWorkflowCredentialsButton-QGvaG01Z.js.map} +1 -1
  83. package/dist/assets/{SetupWorkflowFromTemplateView-_ayHH-IZ.js → SetupWorkflowFromTemplateView-8kV0zT9M.js} +2 -2
  84. package/dist/assets/{SetupWorkflowFromTemplateView-_ayHH-IZ.js.map → SetupWorkflowFromTemplateView-8kV0zT9M.js.map} +1 -1
  85. package/dist/assets/{SigninView-Gc6N_vLo.js → SigninView-9HcFtYYH.js} +2 -2
  86. package/dist/assets/{SigninView-Gc6N_vLo.js.map → SigninView-9HcFtYYH.js.map} +1 -1
  87. package/dist/assets/SignoutView-aFW_4GHN.js +2 -0
  88. package/dist/assets/SignoutView-aFW_4GHN.js.map +1 -0
  89. package/dist/assets/{SignupView-TUYaR1Nz.js → SignupView-pWu_Kk45.js} +2 -2
  90. package/dist/assets/{SignupView-TUYaR1Nz.js.map → SignupView-pWu_Kk45.js.map} +1 -1
  91. package/dist/assets/{TemplateDetails-s0HGsSP9.js → TemplateDetails-PaDbF87J.js} +2 -2
  92. package/dist/assets/{TemplateDetails-s0HGsSP9.js.map → TemplateDetails-PaDbF87J.js.map} +1 -1
  93. package/dist/assets/{TemplateList--L3zJ5wK.js → TemplateList-M4LBpjOe.js} +2 -2
  94. package/dist/assets/{TemplateList--L3zJ5wK.js.map → TemplateList-M4LBpjOe.js.map} +1 -1
  95. package/dist/assets/{TemplatesCollectionView-d1seBq10.js → TemplatesCollectionView-RBv7X4Gh.js} +2 -2
  96. package/dist/assets/{TemplatesCollectionView-d1seBq10.js.map → TemplatesCollectionView-RBv7X4Gh.js.map} +1 -1
  97. package/dist/assets/{TemplatesInfoCarousel-XG1W0SLa.js → TemplatesInfoCarousel-e2wgfGBn.js} +2 -2
  98. package/dist/assets/{TemplatesInfoCarousel-XG1W0SLa.js.map → TemplatesInfoCarousel-e2wgfGBn.js.map} +1 -1
  99. package/dist/assets/{TemplatesSearchView-OYEX_uZ1.js → TemplatesSearchView-FkqpvNK2.js} +2 -2
  100. package/dist/assets/{TemplatesSearchView-OYEX_uZ1.js.map → TemplatesSearchView-FkqpvNK2.js.map} +1 -1
  101. package/dist/assets/{TemplatesView-RFX1Nriq.js → TemplatesView-bbDzQ95P.js} +2 -2
  102. package/dist/assets/{TemplatesView-RFX1Nriq.js.map → TemplatesView-bbDzQ95P.js.map} +1 -1
  103. package/dist/assets/{TemplatesWorkflowView-t6Xqg5xY.js → TemplatesWorkflowView-7-rFNLp9.js} +2 -2
  104. package/dist/assets/{TemplatesWorkflowView-t6Xqg5xY.js.map → TemplatesWorkflowView-7-rFNLp9.js.map} +1 -1
  105. package/dist/assets/{VariablesView-ZV3cuGWP.js → VariablesView-qHyda1UV.js} +2 -2
  106. package/dist/assets/{VariablesView-ZV3cuGWP.js.map → VariablesView-qHyda1UV.js.map} +1 -1
  107. package/dist/assets/{WorkerView-PvV1tbob.js → WorkerView-B0yhM0J1.js} +2 -2
  108. package/dist/assets/{WorkerView-PvV1tbob.js.map → WorkerView-B0yhM0J1.js.map} +1 -1
  109. package/dist/assets/{WorkflowActivator-TncK9t4c.js → WorkflowActivator-VjkeCh0z.js} +2 -2
  110. package/dist/assets/{WorkflowActivator-TncK9t4c.js.map → WorkflowActivator-VjkeCh0z.js.map} +1 -1
  111. package/dist/assets/{WorkflowExecutionsInfoAccordion-AnHjUFE3.js → WorkflowExecutionsInfoAccordion-3GkCvE9Q.js} +2 -2
  112. package/dist/assets/{WorkflowExecutionsInfoAccordion-AnHjUFE3.js.map → WorkflowExecutionsInfoAccordion-3GkCvE9Q.js.map} +1 -1
  113. package/dist/assets/{WorkflowExecutionsLandingPage-oxT4cL0I.js → WorkflowExecutionsLandingPage-O_YbgvYB.js} +2 -2
  114. package/dist/assets/{WorkflowExecutionsLandingPage-oxT4cL0I.js.map → WorkflowExecutionsLandingPage-O_YbgvYB.js.map} +1 -1
  115. package/dist/assets/{WorkflowExecutionsPreview-S4t3V3mn.js → WorkflowExecutionsPreview-6bNa2avB.js} +2 -2
  116. package/dist/assets/{WorkflowExecutionsPreview-S4t3V3mn.js.map → WorkflowExecutionsPreview-6bNa2avB.js.map} +1 -1
  117. package/dist/assets/{WorkflowExecutionsView-2SiI_dZv.js → WorkflowExecutionsView-e12KrPNp.js} +2 -2
  118. package/dist/assets/{WorkflowExecutionsView-2SiI_dZv.js.map → WorkflowExecutionsView-e12KrPNp.js.map} +1 -1
  119. package/dist/assets/{WorkflowHistory-tlNmMBC4.js → WorkflowHistory-XyI7xi5R.js} +2 -2
  120. package/dist/assets/{WorkflowHistory-tlNmMBC4.js.map → WorkflowHistory-XyI7xi5R.js.map} +1 -1
  121. package/dist/assets/{WorkflowOnboardingView-sQP7Ib3w.js → WorkflowOnboardingView-wfo0sagy.js} +2 -2
  122. package/dist/assets/{WorkflowOnboardingView-sQP7Ib3w.js.map → WorkflowOnboardingView-wfo0sagy.js.map} +1 -1
  123. package/dist/assets/{WorkflowsView-77fg2wMF.js → WorkflowsView-zWdxjaUV.js} +2 -2
  124. package/dist/assets/{WorkflowsView-77fg2wMF.js.map → WorkflowsView-zWdxjaUV.js.map} +1 -1
  125. package/dist/assets/{cloud-k5hx0-AG.js → cloud-FHxD5S8r.js} +2 -2
  126. package/dist/assets/{cloud-k5hx0-AG.js.map → cloud-FHxD5S8r.js.map} +1 -1
  127. package/dist/assets/{collaboration.store-nJkMa2Yk.js → collaboration.store-aa4nebcL.js} +2 -2
  128. package/dist/assets/{collaboration.store-nJkMa2Yk.js.map → collaboration.store-aa4nebcL.js.map} +1 -1
  129. package/dist/assets/{index-OLvpAx8p.js → index-6ulnOLCO.js} +4 -4
  130. package/dist/assets/{index-OLvpAx8p.js.map → index-6ulnOLCO.js.map} +1 -1
  131. package/dist/assets/{templateActions-4mG5U0Gi.js → templateActions-9fUm8Xpc.js} +2 -2
  132. package/dist/assets/{templateActions-4mG5U0Gi.js.map → templateActions-9fUm8Xpc.js.map} +1 -1
  133. package/dist/assets/{useExecutionDebugging-PDsNeD99.js → useExecutionDebugging-QUE85fFt.js} +2 -2
  134. package/dist/assets/{useExecutionDebugging-PDsNeD99.js.map → useExecutionDebugging-QUE85fFt.js.map} +1 -1
  135. package/dist/assets/{useExecutionHelpers-z0jWdDj0.js → useExecutionHelpers-5nDBsYfy.js} +2 -2
  136. package/dist/assets/{useExecutionHelpers-z0jWdDj0.js.map → useExecutionHelpers-5nDBsYfy.js.map} +1 -1
  137. package/dist/assets/{usePushConnection-5HhKaz1I.js → usePushConnection-FzHJLOiR.js} +2 -2
  138. package/dist/assets/{usePushConnection-5HhKaz1I.js.map → usePushConnection-FzHJLOiR.js.map} +1 -1
  139. package/dist/assets/{useWorkflowActivate--rX-aMfx.js → useWorkflowActivate-rx_C76SX.js} +2 -2
  140. package/dist/assets/{useWorkflowActivate--rX-aMfx.js.map → useWorkflowActivate-rx_C76SX.js.map} +1 -1
  141. package/dist/index.html +1 -1
  142. package/package.json +1 -1
  143. package/dist/assets/CollectionParameter-DTYD_Lcf.js.map +0 -1
  144. package/dist/assets/NodeView-vh3Qdfdh.js +0 -9
  145. package/dist/assets/NodeView-vh3Qdfdh.js.map +0 -1
  146. package/dist/assets/SignoutView-zep-aWVN.js +0 -2
  147. package/dist/assets/SignoutView-zep-aWVN.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowExecutionsLandingPage-oxT4cL0I.js","sources":["../../src/components/executions/workflow/WorkflowExecutionsLandingPage.vue"],"sourcesContent":["<template>\n\t<div :class=\"['workflow-executions-container', $style.container]\">\n\t\t<div v-if=\"executionCount === 0\" :class=\"[$style.messageContainer, $style.noExecutionsMessage]\">\n\t\t\t<div v-if=\"!containsTrigger\">\n\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" color=\"text-dark\" class=\"mb-2xs\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.noTrigger.heading') }}\n\t\t\t\t</n8n-heading>\n\t\t\t\t<n8n-text size=\"medium\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.message') }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-button class=\"mt-l\" type=\"tertiary\" size=\"large\" @click=\"onSetupFirstStep\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.noTrigger.buttonText') }}\n\t\t\t\t</n8n-button>\n\t\t\t</div>\n\t\t\t<div v-else>\n\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" color=\"text-dark\" class=\"mb-2xs\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.heading') }}\n\t\t\t\t</n8n-heading>\n\t\t\t\t<WorkflowExecutionsInfoAccordion />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { PLACEHOLDER_EMPTY_WORKFLOW_ID, VIEWS } from '@/constants';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { mapStores } from 'pinia';\nimport { defineComponent } from 'vue';\nimport WorkflowExecutionsInfoAccordion from './WorkflowExecutionsInfoAccordion.vue';\n\nexport default defineComponent({\n\tname: 'ExecutionsLandingPage',\n\tcomponents: {\n\t\tWorkflowExecutionsInfoAccordion,\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore, useWorkflowsStore),\n\t\texecutionCount(): number {\n\t\t\treturn this.workflowsStore.currentWorkflowExecutions.length;\n\t\t},\n\t\tcontainsTrigger(): boolean {\n\t\t\treturn this.workflowsStore.workflowTriggerNodes.length > 0;\n\t\t},\n\t},\n\tmethods: {\n\t\tonSetupFirstStep(): void {\n\t\t\tthis.uiStore.addFirstStepOnLoad = true;\n\t\t\tconst workflowRoute = this.getWorkflowRoute();\n\t\t\tvoid this.$router.push(workflowRoute);\n\t\t},\n\t\tgetWorkflowRoute(): { name: string; params: {} } {\n\t\t\tconst workflowId = this.workflowsStore.workflowId || this.$route.params.name;\n\t\t\tif (workflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID) {\n\t\t\t\treturn { name: VIEWS.NEW_WORKFLOW, params: {} };\n\t\t\t} else {\n\t\t\t\treturn { name: VIEWS.WORKFLOW, params: { name: workflowId } };\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.container {\n\twidth: 100%;\n\theight: 100%;\n\tflex: 1;\n\tbackground-color: var(--color-background-light);\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n\n.messageContainer {\n\tmargin-top: var(--spacing-4xl);\n\tcolor: var(--color-text-base);\n\n\tdiv {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\ttext-align: center;\n\t}\n}\n\n.icon {\n\tfont-size: 24px;\n\tcolor: var(--color-foreground-dark);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","WorkflowExecutionsInfoAccordion","mapStores","useUIStore","useWorkflowsStore","workflowRoute","workflowId","PLACEHOLDER_EMPTY_WORKFLOW_ID","VIEWS","_component_WorkflowExecutionsInfoAccordion","_resolveComponent","executionCount","_ctx","_openBlock","_createElementBlock","$style","containsTrigger","_hoisted_2","_createVNode","_component_n8n_heading","_createTextVNode","_toDisplayString","_hoisted_1","_component_n8n_text","$locale","_withCtx","_component_n8n_button","_createCommentVNode"],"mappings":"ksCAgCA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,wBACN,WAAY,CACX,gCAAAC,CACD,EACA,SAAU,CACT,GAAGC,EAAUC,EAAYC,CAAiB,EAC1C,gBAAyB,CACjB,OAAA,KAAK,eAAe,0BAA0B,MACtD,EACA,iBAA2B,CACnB,OAAA,KAAK,eAAe,qBAAqB,OAAS,CAC1D,CACD,EACA,QAAS,CACR,kBAAyB,CACxB,KAAK,QAAQ,mBAAqB,GAC5B,MAAAC,EAAgB,KAAK,mBACtB,KAAK,QAAQ,KAAKA,CAAa,CACrC,EACA,kBAAiD,CAChD,MAAMC,EAAa,KAAK,eAAe,YAAc,KAAK,OAAO,OAAO,KACxE,OAAIA,IAAeC,EACX,CAAE,KAAMC,EAAM,aAAc,OAAQ,CAAG,CAAA,EAEvC,CAAE,KAAMA,EAAM,SAAU,OAAQ,CAAE,KAAMF,GAEjD,CACD,CACD,CAAC,4NAxCMG,EAAAC,EAAA,iCAAA,4BAnBMC,EAAc,CAAA,gCAAAC,EAAA,OAAA,SAAA,CAAA,CAAA,EAAA,CAF3BA,EAAA,iBAAA,GAAAC,EAAA,EAAAC,EAE4CC,MAAO,CAAA,IAAA,QACpCC,EAAe,CAAAJ,EAAA,OAAA,iBAAAA,EAAA,OAAA,mBAAA,CAAA,CAAA,EAAA,CAC1BA,EAAA,iBAUDC,EACsB,EAAAC,EAAA,MAAAG,EAAA,CAAAC,EAAMC,EAAQ,CAAC,IAAK,KAAa,KAAK,SAAA,MAAA,YAf/D,MAAA,QAAA,EAAA,gBAAAC,EAAAC,EAAAT,EAAA,QAAA,SAAA,0CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAkBI,EAAA,CAAA,CAAA,MAlBJ,CAAA,IAIIC,EAAqB,EAAAC,EAAA,MAAAQ,EAAA,CAAAJ,EAAMC,EAAQ,CAAC,IAAK,KAAa,KAAK,SAAA,MAAA,YAJ/D,MAAA,QAAA,EAAA,gBAAAC,EAAAC,EAAAT,EAAA,QAAA,SAAA,oDAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAOI,EAAA,CAAA,CAAA,EAPJM,EAAAK,EAAA,CAAA,KAQQC,QAAQ,EAAA,CAAA,QAAAC,EAAA,IAAA,CARhBL,EAAAC,EAAAT,EAAA,QAAA,SAAA,0CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAUI,EAAA,CAAA,CAAA,IAA8Bc,EAAU,CAAC,MAAK,OAAS,KAAA,WAAA,KAAA,QAV3D,QAAAd,EAAA,gBAAA,EAAA,gBAAAQ,EAAAC,EAAAT,EAAA,QAAA,SAAA,uDAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAcG,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAdH,EAAA,CAAA,GAAAe,EAAA,GAAA,EAAA"}
1
+ {"version":3,"file":"WorkflowExecutionsLandingPage-O_YbgvYB.js","sources":["../../src/components/executions/workflow/WorkflowExecutionsLandingPage.vue"],"sourcesContent":["<template>\n\t<div :class=\"['workflow-executions-container', $style.container]\">\n\t\t<div v-if=\"executionCount === 0\" :class=\"[$style.messageContainer, $style.noExecutionsMessage]\">\n\t\t\t<div v-if=\"!containsTrigger\">\n\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" color=\"text-dark\" class=\"mb-2xs\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.noTrigger.heading') }}\n\t\t\t\t</n8n-heading>\n\t\t\t\t<n8n-text size=\"medium\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.message') }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-button class=\"mt-l\" type=\"tertiary\" size=\"large\" @click=\"onSetupFirstStep\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.noTrigger.buttonText') }}\n\t\t\t\t</n8n-button>\n\t\t\t</div>\n\t\t\t<div v-else>\n\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" color=\"text-dark\" class=\"mb-2xs\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.heading') }}\n\t\t\t\t</n8n-heading>\n\t\t\t\t<WorkflowExecutionsInfoAccordion />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { PLACEHOLDER_EMPTY_WORKFLOW_ID, VIEWS } from '@/constants';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { mapStores } from 'pinia';\nimport { defineComponent } from 'vue';\nimport WorkflowExecutionsInfoAccordion from './WorkflowExecutionsInfoAccordion.vue';\n\nexport default defineComponent({\n\tname: 'ExecutionsLandingPage',\n\tcomponents: {\n\t\tWorkflowExecutionsInfoAccordion,\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore, useWorkflowsStore),\n\t\texecutionCount(): number {\n\t\t\treturn this.workflowsStore.currentWorkflowExecutions.length;\n\t\t},\n\t\tcontainsTrigger(): boolean {\n\t\t\treturn this.workflowsStore.workflowTriggerNodes.length > 0;\n\t\t},\n\t},\n\tmethods: {\n\t\tonSetupFirstStep(): void {\n\t\t\tthis.uiStore.addFirstStepOnLoad = true;\n\t\t\tconst workflowRoute = this.getWorkflowRoute();\n\t\t\tvoid this.$router.push(workflowRoute);\n\t\t},\n\t\tgetWorkflowRoute(): { name: string; params: {} } {\n\t\t\tconst workflowId = this.workflowsStore.workflowId || this.$route.params.name;\n\t\t\tif (workflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID) {\n\t\t\t\treturn { name: VIEWS.NEW_WORKFLOW, params: {} };\n\t\t\t} else {\n\t\t\t\treturn { name: VIEWS.WORKFLOW, params: { name: workflowId } };\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.container {\n\twidth: 100%;\n\theight: 100%;\n\tflex: 1;\n\tbackground-color: var(--color-background-light);\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n\n.messageContainer {\n\tmargin-top: var(--spacing-4xl);\n\tcolor: var(--color-text-base);\n\n\tdiv {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\ttext-align: center;\n\t}\n}\n\n.icon {\n\tfont-size: 24px;\n\tcolor: var(--color-foreground-dark);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","WorkflowExecutionsInfoAccordion","mapStores","useUIStore","useWorkflowsStore","workflowRoute","workflowId","PLACEHOLDER_EMPTY_WORKFLOW_ID","VIEWS","_component_WorkflowExecutionsInfoAccordion","_resolveComponent","executionCount","_ctx","_openBlock","_createElementBlock","$style","containsTrigger","_hoisted_2","_createVNode","_component_n8n_heading","_createTextVNode","_toDisplayString","_hoisted_1","_component_n8n_text","$locale","_withCtx","_component_n8n_button","_createCommentVNode"],"mappings":"ksCAgCA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,wBACN,WAAY,CACX,gCAAAC,CACD,EACA,SAAU,CACT,GAAGC,EAAUC,EAAYC,CAAiB,EAC1C,gBAAyB,CACjB,OAAA,KAAK,eAAe,0BAA0B,MACtD,EACA,iBAA2B,CACnB,OAAA,KAAK,eAAe,qBAAqB,OAAS,CAC1D,CACD,EACA,QAAS,CACR,kBAAyB,CACxB,KAAK,QAAQ,mBAAqB,GAC5B,MAAAC,EAAgB,KAAK,mBACtB,KAAK,QAAQ,KAAKA,CAAa,CACrC,EACA,kBAAiD,CAChD,MAAMC,EAAa,KAAK,eAAe,YAAc,KAAK,OAAO,OAAO,KACxE,OAAIA,IAAeC,EACX,CAAE,KAAMC,EAAM,aAAc,OAAQ,CAAG,CAAA,EAEvC,CAAE,KAAMA,EAAM,SAAU,OAAQ,CAAE,KAAMF,GAEjD,CACD,CACD,CAAC,4NAxCMG,EAAAC,EAAA,iCAAA,4BAnBMC,EAAc,CAAA,gCAAAC,EAAA,OAAA,SAAA,CAAA,CAAA,EAAA,CAF3BA,EAAA,iBAAA,GAAAC,EAAA,EAAAC,EAE4CC,MAAO,CAAA,IAAA,QACpCC,EAAe,CAAAJ,EAAA,OAAA,iBAAAA,EAAA,OAAA,mBAAA,CAAA,CAAA,EAAA,CAC1BA,EAAA,iBAUDC,EACsB,EAAAC,EAAA,MAAAG,EAAA,CAAAC,EAAMC,EAAQ,CAAC,IAAK,KAAa,KAAK,SAAA,MAAA,YAf/D,MAAA,QAAA,EAAA,gBAAAC,EAAAC,EAAAT,EAAA,QAAA,SAAA,0CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAkBI,EAAA,CAAA,CAAA,MAlBJ,CAAA,IAIIC,EAAqB,EAAAC,EAAA,MAAAQ,EAAA,CAAAJ,EAAMC,EAAQ,CAAC,IAAK,KAAa,KAAK,SAAA,MAAA,YAJ/D,MAAA,QAAA,EAAA,gBAAAC,EAAAC,EAAAT,EAAA,QAAA,SAAA,oDAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAOI,EAAA,CAAA,CAAA,EAPJM,EAAAK,EAAA,CAAA,KAQQC,QAAQ,EAAA,CAAA,QAAAC,EAAA,IAAA,CARhBL,EAAAC,EAAAT,EAAA,QAAA,SAAA,0CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAUI,EAAA,CAAA,CAAA,IAA8Bc,EAAU,CAAC,MAAK,OAAS,KAAA,WAAA,KAAA,QAV3D,QAAAd,EAAA,gBAAA,EAAA,gBAAAQ,EAAAC,EAAAT,EAAA,QAAA,SAAA,uDAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAcG,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA,EAdH,EAAA,CAAA,GAAAe,EAAA,GAAA,EAAA"}
@@ -1,2 +1,2 @@
1
- import{u as T}from"./useExecutionDebugging-PDsNeD99.js";import{d7 as E,G as v,j as B,V as h,z as M}from"./index-OLvpAx8p.js";import{u as U}from"./useExecutionHelpers-z0jWdDj0.js";import{m as L}from"./pinia-hqNpa1CE.js";import{ar as z,_ as R}from"./n8n-roXSR3ff.js";import{G as W,l as r,m as x,p as c,T as o,I as a,O as t,S as i,R as n,M as d,Q as m,ag as u}from"./vendor-qzAIxxHa.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";import"./dateFormatter-cvdD716J.js";const q=W({name:"WorkflowExecutionsPreview",components:{ElDropdown:z,WorkflowPreview:E},props:{execution:{type:Object,required:!0}},setup(){return{executionHelpers:U(),...v(),...T()}},computed:{...L(B),executionId(){return this.$route.params.executionId},executionUIDetails(){return this.execution?this.executionHelpers.getUIDetails(this.execution):null},executionMode(){var e;return((e=this.execution)==null?void 0:e.mode)||""},debugButtonData(){var e;return((e=this.execution)==null?void 0:e.status)==="success"?{text:this.$locale.baseText("executionsList.debug.button.copyToEditor"),type:"secondary"}:{text:this.$locale.baseText("executionsList.debug.button.debugInEditor"),type:"primary"}},isRetriable(){return!!this.execution&&this.executionHelpers.isExecutionRetriable(this.execution)},executionDebugViewName(){return h.EXECUTION_DEBUG},executionPreviewViewName(){return h.EXECUTION_PREVIEW}},methods:{async onDeleteExecution(){await this.confirm(this.$locale.baseText("executionDetails.confirmMessage.message"),this.$locale.baseText("executionDetails.confirmMessage.headline"),{type:"warning",confirmButtonText:this.$locale.baseText("executionDetails.confirmMessage.confirmButtonText"),cancelButtonText:""})===M&&this.$emit("deleteCurrentExecution")},handleRetryClick(e){this.$emit("retryExecution",{execution:this.execution,command:e})},handleStopClick(){this.$emit("stopExecution")},onRetryButtonBlur(e){const p=this.$refs.retryDropdown;p&&e.relatedTarget===null&&p.handleClose()}}}),N="_previewContainer_1qf32_1",V="_executionDetails_1qf32_7",O="_spinner_1qf32_26",P="_running_1qf32_32",S="_waiting_1qf32_37",H="_success_1qf32_41",G="_error_1qf32_45",j="_runningInfo_1qf32_49",F="_runningMessage_1qf32_56",X="_debugLink_1qf32_62",A={previewContainer:N,executionDetails:V,spinner:O,running:P,waiting:S,success:H,error:G,runningInfo:j,runningMessage:F,debugLink:X},Q=["data-test-id"],J=c("br",null,null,-1),K=c("br",null,null,-1),Y={class:"retry-button"};function Z(e,p,te,ne,oe,ie){var k,D,_;const f=u("n8n-spinner"),l=u("n8n-text"),g=u("n8n-button"),y=u("router-link"),w=u("n8n-icon-button"),b=u("el-dropdown-item"),I=u("el-dropdown-menu"),$=u("ElDropdown"),C=u("WorkflowPreview");return((k=e.executionUIDetails)==null?void 0:k.name)==="running"?(r(),x("div",{key:0,class:a(e.$style.runningInfo)},[c("div",{class:a(e.$style.spinner)},[o(f,{type:"ring"})],2),o(l,{class:a(e.$style.runningMessage),color:"text-light"},{default:t(()=>[i(n(e.$locale.baseText("executionDetails.runningMessage")),1)]),_:1},8,["class"]),o(g,{class:"mt-l",type:"tertiary",onClick:e.handleStopClick},{default:t(()=>[i(n(e.$locale.baseText("executionsList.stopExecution")),1)]),_:1},8,["onClick"])],2)):e.executionUIDetails?(r(),x("div",{key:1,class:a(e.$style.previewContainer)},[e.execution?(r(),x("div",{key:0,class:a(e.$style.executionDetails),"data-test-id":`execution-preview-details-${e.executionId}`},[c("div",null,[o(l,{size:"large",color:"text-base",bold:!0,"data-test-id":"execution-time"},{default:t(()=>{var s;return[i(n((s=e.executionUIDetails)==null?void 0:s.startTime),1)]}),_:1}),J,((D=e.executionUIDetails)==null?void 0:D.name)==="running"?(r(),d(f,{key:0,size:"small",class:a([e.$style.spinner,"mr-4xs"])},null,8,["class"])):m("",!0),o(l,{size:"medium",class:a([e.$style.status,e.$style[e.executionUIDetails.name]]),"data-test-id":"execution-preview-label"},{default:t(()=>[i(n(e.executionUIDetails.label),1)]),_:1},8,["class"]),i(" "+n(" ")+" "),e.executionUIDetails.name==="running"?(r(),d(l,{key:1,color:"text-base",size:"medium"},{default:t(()=>{var s;return[i(n(e.$locale.baseText("executionDetails.runningTimeRunning",{interpolate:{time:(s=e.executionUIDetails)==null?void 0:s.runningTime}}))+" | ID#"+n(e.execution.id),1)]}),_:1})):e.executionUIDetails.name!=="waiting"?(r(),d(l,{key:2,color:"text-base",size:"medium","data-test-id":"execution-preview-id"},{default:t(()=>{var s;return[i(n(e.$locale.baseText("executionDetails.runningTimeFinished",{interpolate:{time:((s=e.executionUIDetails)==null?void 0:s.runningTime)??"unknown"}}))+" | ID#"+n(e.execution.id),1)]}),_:1})):((_=e.executionUIDetails)==null?void 0:_.name)==="waiting"?(r(),d(l,{key:3,color:"text-base",size:"medium"},{default:t(()=>[i(" | ID#"+n(e.execution.id),1)]),_:1})):m("",!0),K,e.execution.mode==="retry"?(r(),d(l,{key:4,color:"text-base",size:"medium"},{default:t(()=>[i(n(e.$locale.baseText("executionDetails.retry"))+" ",1),o(y,{class:a(e.$style.executionLink),to:{name:e.executionPreviewViewName,params:{workflowId:e.execution.workflowId,executionId:e.execution.retryOf}}},{default:t(()=>[i(" #"+n(e.execution.retryOf),1)]),_:1},8,["class","to"])]),_:1})):m("",!0)]),c("div",null,[o(g,{size:"medium",type:e.debugButtonData.type,class:a(e.$style.debugLink)},{default:t(()=>[o(y,{to:{name:e.executionDebugViewName,params:{name:e.execution.workflowId,executionId:e.execution.id}}},{default:t(()=>[c("span",{"data-test-id":"execution-debug-button",onClick:p[0]||(p[0]=(...s)=>e.handleDebugLinkClick&&e.handleDebugLinkClick(...s))},n(e.debugButtonData.text),1)]),_:1},8,["to"])]),_:1},8,["type","class"]),e.isRetriable?(r(),d($,{key:0,ref:"retryDropdown",trigger:"click",class:"mr-xs",onCommand:e.handleRetryClick},{dropdown:t(()=>[o(I,null,{default:t(()=>[o(b,{command:"current-workflow"},{default:t(()=>[i(n(e.$locale.baseText("executionsList.retryWithCurrentlySavedWorkflow")),1)]),_:1}),o(b,{command:"original-workflow"},{default:t(()=>[i(n(e.$locale.baseText("executionsList.retryWithOriginalWorkflow")),1)]),_:1})]),_:1})]),default:t(()=>[c("span",Y,[o(w,{size:"medium",type:"tertiary",title:e.$locale.baseText("executionsList.retryExecution"),icon:"redo","data-test-id":"execution-preview-retry-button",onBlur:e.onRetryButtonBlur},null,8,["title","onBlur"])])]),_:1},8,["onCommand"])):m("",!0),o(w,{title:e.$locale.baseText("executionDetails.deleteExecution"),icon:"trash",size:"medium",type:"tertiary","data-test-id":"execution-preview-delete-button",onClick:e.onDeleteExecution},null,8,["title","onClick"])])],10,Q)):m("",!0),o(C,{mode:"execution","loader-type":"spinner","execution-id":e.executionId,"execution-mode":e.executionMode},null,8,["execution-id","execution-mode"])],2)):m("",!0)}const ee={$style:A},qe=R(q,[["render",Z],["__cssModules",ee]]);export{qe as default};
2
- //# sourceMappingURL=WorkflowExecutionsPreview-S4t3V3mn.js.map
1
+ import{u as T}from"./useExecutionDebugging-QUE85fFt.js";import{d7 as E,G as v,j as B,V as h,z as M}from"./index-6ulnOLCO.js";import{u as U}from"./useExecutionHelpers-5nDBsYfy.js";import{m as L}from"./pinia-hqNpa1CE.js";import{ar as z,_ as R}from"./n8n-roXSR3ff.js";import{G as W,l as r,m as x,p as c,T as o,I as a,O as t,S as i,R as n,M as d,Q as m,ag as u}from"./vendor-qzAIxxHa.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";import"./dateFormatter-cvdD716J.js";const q=W({name:"WorkflowExecutionsPreview",components:{ElDropdown:z,WorkflowPreview:E},props:{execution:{type:Object,required:!0}},setup(){return{executionHelpers:U(),...v(),...T()}},computed:{...L(B),executionId(){return this.$route.params.executionId},executionUIDetails(){return this.execution?this.executionHelpers.getUIDetails(this.execution):null},executionMode(){var e;return((e=this.execution)==null?void 0:e.mode)||""},debugButtonData(){var e;return((e=this.execution)==null?void 0:e.status)==="success"?{text:this.$locale.baseText("executionsList.debug.button.copyToEditor"),type:"secondary"}:{text:this.$locale.baseText("executionsList.debug.button.debugInEditor"),type:"primary"}},isRetriable(){return!!this.execution&&this.executionHelpers.isExecutionRetriable(this.execution)},executionDebugViewName(){return h.EXECUTION_DEBUG},executionPreviewViewName(){return h.EXECUTION_PREVIEW}},methods:{async onDeleteExecution(){await this.confirm(this.$locale.baseText("executionDetails.confirmMessage.message"),this.$locale.baseText("executionDetails.confirmMessage.headline"),{type:"warning",confirmButtonText:this.$locale.baseText("executionDetails.confirmMessage.confirmButtonText"),cancelButtonText:""})===M&&this.$emit("deleteCurrentExecution")},handleRetryClick(e){this.$emit("retryExecution",{execution:this.execution,command:e})},handleStopClick(){this.$emit("stopExecution")},onRetryButtonBlur(e){const p=this.$refs.retryDropdown;p&&e.relatedTarget===null&&p.handleClose()}}}),N="_previewContainer_1qf32_1",V="_executionDetails_1qf32_7",O="_spinner_1qf32_26",P="_running_1qf32_32",S="_waiting_1qf32_37",H="_success_1qf32_41",G="_error_1qf32_45",j="_runningInfo_1qf32_49",F="_runningMessage_1qf32_56",X="_debugLink_1qf32_62",A={previewContainer:N,executionDetails:V,spinner:O,running:P,waiting:S,success:H,error:G,runningInfo:j,runningMessage:F,debugLink:X},Q=["data-test-id"],J=c("br",null,null,-1),K=c("br",null,null,-1),Y={class:"retry-button"};function Z(e,p,te,ne,oe,ie){var k,D,_;const f=u("n8n-spinner"),l=u("n8n-text"),g=u("n8n-button"),y=u("router-link"),w=u("n8n-icon-button"),b=u("el-dropdown-item"),I=u("el-dropdown-menu"),$=u("ElDropdown"),C=u("WorkflowPreview");return((k=e.executionUIDetails)==null?void 0:k.name)==="running"?(r(),x("div",{key:0,class:a(e.$style.runningInfo)},[c("div",{class:a(e.$style.spinner)},[o(f,{type:"ring"})],2),o(l,{class:a(e.$style.runningMessage),color:"text-light"},{default:t(()=>[i(n(e.$locale.baseText("executionDetails.runningMessage")),1)]),_:1},8,["class"]),o(g,{class:"mt-l",type:"tertiary",onClick:e.handleStopClick},{default:t(()=>[i(n(e.$locale.baseText("executionsList.stopExecution")),1)]),_:1},8,["onClick"])],2)):e.executionUIDetails?(r(),x("div",{key:1,class:a(e.$style.previewContainer)},[e.execution?(r(),x("div",{key:0,class:a(e.$style.executionDetails),"data-test-id":`execution-preview-details-${e.executionId}`},[c("div",null,[o(l,{size:"large",color:"text-base",bold:!0,"data-test-id":"execution-time"},{default:t(()=>{var s;return[i(n((s=e.executionUIDetails)==null?void 0:s.startTime),1)]}),_:1}),J,((D=e.executionUIDetails)==null?void 0:D.name)==="running"?(r(),d(f,{key:0,size:"small",class:a([e.$style.spinner,"mr-4xs"])},null,8,["class"])):m("",!0),o(l,{size:"medium",class:a([e.$style.status,e.$style[e.executionUIDetails.name]]),"data-test-id":"execution-preview-label"},{default:t(()=>[i(n(e.executionUIDetails.label),1)]),_:1},8,["class"]),i(" "+n(" ")+" "),e.executionUIDetails.name==="running"?(r(),d(l,{key:1,color:"text-base",size:"medium"},{default:t(()=>{var s;return[i(n(e.$locale.baseText("executionDetails.runningTimeRunning",{interpolate:{time:(s=e.executionUIDetails)==null?void 0:s.runningTime}}))+" | ID#"+n(e.execution.id),1)]}),_:1})):e.executionUIDetails.name!=="waiting"?(r(),d(l,{key:2,color:"text-base",size:"medium","data-test-id":"execution-preview-id"},{default:t(()=>{var s;return[i(n(e.$locale.baseText("executionDetails.runningTimeFinished",{interpolate:{time:((s=e.executionUIDetails)==null?void 0:s.runningTime)??"unknown"}}))+" | ID#"+n(e.execution.id),1)]}),_:1})):((_=e.executionUIDetails)==null?void 0:_.name)==="waiting"?(r(),d(l,{key:3,color:"text-base",size:"medium"},{default:t(()=>[i(" | ID#"+n(e.execution.id),1)]),_:1})):m("",!0),K,e.execution.mode==="retry"?(r(),d(l,{key:4,color:"text-base",size:"medium"},{default:t(()=>[i(n(e.$locale.baseText("executionDetails.retry"))+" ",1),o(y,{class:a(e.$style.executionLink),to:{name:e.executionPreviewViewName,params:{workflowId:e.execution.workflowId,executionId:e.execution.retryOf}}},{default:t(()=>[i(" #"+n(e.execution.retryOf),1)]),_:1},8,["class","to"])]),_:1})):m("",!0)]),c("div",null,[o(g,{size:"medium",type:e.debugButtonData.type,class:a(e.$style.debugLink)},{default:t(()=>[o(y,{to:{name:e.executionDebugViewName,params:{name:e.execution.workflowId,executionId:e.execution.id}}},{default:t(()=>[c("span",{"data-test-id":"execution-debug-button",onClick:p[0]||(p[0]=(...s)=>e.handleDebugLinkClick&&e.handleDebugLinkClick(...s))},n(e.debugButtonData.text),1)]),_:1},8,["to"])]),_:1},8,["type","class"]),e.isRetriable?(r(),d($,{key:0,ref:"retryDropdown",trigger:"click",class:"mr-xs",onCommand:e.handleRetryClick},{dropdown:t(()=>[o(I,null,{default:t(()=>[o(b,{command:"current-workflow"},{default:t(()=>[i(n(e.$locale.baseText("executionsList.retryWithCurrentlySavedWorkflow")),1)]),_:1}),o(b,{command:"original-workflow"},{default:t(()=>[i(n(e.$locale.baseText("executionsList.retryWithOriginalWorkflow")),1)]),_:1})]),_:1})]),default:t(()=>[c("span",Y,[o(w,{size:"medium",type:"tertiary",title:e.$locale.baseText("executionsList.retryExecution"),icon:"redo","data-test-id":"execution-preview-retry-button",onBlur:e.onRetryButtonBlur},null,8,["title","onBlur"])])]),_:1},8,["onCommand"])):m("",!0),o(w,{title:e.$locale.baseText("executionDetails.deleteExecution"),icon:"trash",size:"medium",type:"tertiary","data-test-id":"execution-preview-delete-button",onClick:e.onDeleteExecution},null,8,["title","onClick"])])],10,Q)):m("",!0),o(C,{mode:"execution","loader-type":"spinner","execution-id":e.executionId,"execution-mode":e.executionMode},null,8,["execution-id","execution-mode"])],2)):m("",!0)}const ee={$style:A},qe=R(q,[["render",Z],["__cssModules",ee]]);export{qe as default};
2
+ //# sourceMappingURL=WorkflowExecutionsPreview-6bNa2avB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowExecutionsPreview-S4t3V3mn.js","sources":["../../src/components/executions/workflow/WorkflowExecutionsPreview.vue"],"sourcesContent":["<template>\n\t<div v-if=\"executionUIDetails?.name === 'running'\" :class=\"$style.runningInfo\">\n\t\t<div :class=\"$style.spinner\">\n\t\t\t<n8n-spinner type=\"ring\" />\n\t\t</div>\n\t\t<n8n-text :class=\"$style.runningMessage\" color=\"text-light\">\n\t\t\t{{ $locale.baseText('executionDetails.runningMessage') }}\n\t\t</n8n-text>\n\t\t<n8n-button class=\"mt-l\" type=\"tertiary\" @click=\"handleStopClick\">\n\t\t\t{{ $locale.baseText('executionsList.stopExecution') }}\n\t\t</n8n-button>\n\t</div>\n\t<div v-else-if=\"executionUIDetails\" :class=\"$style.previewContainer\">\n\t\t<div\n\t\t\tv-if=\"execution\"\n\t\t\t:class=\"$style.executionDetails\"\n\t\t\t:data-test-id=\"`execution-preview-details-${executionId}`\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<n8n-text size=\"large\" color=\"text-base\" :bold=\"true\" data-test-id=\"execution-time\">{{\n\t\t\t\t\texecutionUIDetails?.startTime\n\t\t\t\t}}</n8n-text\n\t\t\t\t><br />\n\t\t\t\t<n8n-spinner\n\t\t\t\t\tv-if=\"executionUIDetails?.name === 'running'\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t:class=\"[$style.spinner, 'mr-4xs']\"\n\t\t\t\t/>\n\t\t\t\t<n8n-text\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t:class=\"[$style.status, $style[executionUIDetails.name]]\"\n\t\t\t\t\tdata-test-id=\"execution-preview-label\"\n\t\t\t\t>\n\t\t\t\t\t{{ executionUIDetails.label }}\n\t\t\t\t</n8n-text>\n\t\t\t\t{{ ' ' }}\n\t\t\t\t<n8n-text v-if=\"executionUIDetails.name === 'running'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeRunning', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ execution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails.name !== 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tdata-test-id=\"execution-preview-id\"\n\t\t\t\t>\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeFinished', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime ?? 'unknown' },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ execution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails?.name === 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t| ID#{{ execution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<br /><n8n-text v-if=\"execution.mode === 'retry'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{ $locale.baseText('executionDetails.retry') }}\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:class=\"$style.executionLink\"\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: executionPreviewViewName,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tworkflowId: execution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: execution.retryOf,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t#{{ execution.retryOf }}\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<n8n-button size=\"medium\" :type=\"debugButtonData.type\" :class=\"$style.debugLink\">\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: executionDebugViewName,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tname: execution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: execution.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span data-test-id=\"execution-debug-button\" @click=\"handleDebugLinkClick\">{{\n\t\t\t\t\t\t\tdebugButtonData.text\n\t\t\t\t\t\t}}</span>\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-button>\n\n\t\t\t\t<ElDropdown\n\t\t\t\t\tv-if=\"isRetriable\"\n\t\t\t\t\tref=\"retryDropdown\"\n\t\t\t\t\ttrigger=\"click\"\n\t\t\t\t\tclass=\"mr-xs\"\n\t\t\t\t\t@command=\"handleRetryClick\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"retry-button\">\n\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('executionsList.retryExecution')\"\n\t\t\t\t\t\t\ticon=\"redo\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-preview-retry-button\"\n\t\t\t\t\t\t\t@blur=\"onRetryButtonBlur\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<template #dropdown>\n\t\t\t\t\t\t<el-dropdown-menu>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"current-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithCurrentlySavedWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"original-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithOriginalWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t</el-dropdown-menu>\n\t\t\t\t\t</template>\n\t\t\t\t</ElDropdown>\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\t:title=\"$locale.baseText('executionDetails.deleteExecution')\"\n\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\tdata-test-id=\"execution-preview-delete-button\"\n\t\t\t\t\t@click=\"onDeleteExecution\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t\t<WorkflowPreview\n\t\t\tmode=\"execution\"\n\t\t\tloader-type=\"spinner\"\n\t\t\t:execution-id=\"executionId\"\n\t\t\t:execution-mode=\"executionMode\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { ElDropdown } from 'element-plus';\nimport { useExecutionDebugging } from '@/composables/useExecutionDebugging';\nimport { useMessage } from '@/composables/useMessage';\nimport WorkflowPreview from '@/components/WorkflowPreview.vue';\nimport { MODAL_CONFIRM, VIEWS } from '@/constants';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport type { IExecutionUIData } from '@/composables/useExecutionHelpers';\nimport { useExecutionHelpers } from '@/composables/useExecutionHelpers';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { mapStores } from 'pinia';\n\ntype RetryDropdownRef = InstanceType<typeof ElDropdown> & { hide: () => void };\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsPreview',\n\tcomponents: {\n\t\tElDropdown,\n\t\tWorkflowPreview,\n\t},\n\tprops: {\n\t\texecution: {\n\t\t\ttype: Object as () => ExecutionSummary | null,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst executionHelpers = useExecutionHelpers();\n\n\t\treturn {\n\t\t\texecutionHelpers,\n\t\t\t...useMessage(),\n\t\t\t...useExecutionDebugging(),\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useWorkflowsStore),\n\t\texecutionId(): string {\n\t\t\treturn this.$route.params.executionId as string;\n\t\t},\n\t\texecutionUIDetails(): IExecutionUIData | null {\n\t\t\treturn this.execution ? this.executionHelpers.getUIDetails(this.execution) : null;\n\t\t},\n\t\texecutionMode(): string {\n\t\t\treturn this.execution?.mode || '';\n\t\t},\n\t\tdebugButtonData(): Record<string, string> {\n\t\t\treturn this.execution?.status === 'success'\n\t\t\t\t? {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.copyToEditor'),\n\t\t\t\t\t\ttype: 'secondary',\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.debugInEditor'),\n\t\t\t\t\t\ttype: 'primary',\n\t\t\t\t\t};\n\t\t},\n\t\tisRetriable(): boolean {\n\t\t\treturn !!this.execution && this.executionHelpers.isExecutionRetriable(this.execution);\n\t\t},\n\t\texecutionDebugViewName() {\n\t\t\treturn VIEWS.EXECUTION_DEBUG;\n\t\t},\n\t\texecutionPreviewViewName() {\n\t\t\treturn VIEWS.EXECUTION_PREVIEW;\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onDeleteExecution(): Promise<void> {\n\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.message'),\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.headline'),\n\t\t\t\t{\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'executionDetails.confirmMessage.confirmButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tcancelButtonText: '',\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (deleteConfirmed !== MODAL_CONFIRM) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$emit('deleteCurrentExecution');\n\t\t},\n\t\thandleRetryClick(command: string): void {\n\t\t\tthis.$emit('retryExecution', { execution: this.execution, command });\n\t\t},\n\t\thandleStopClick(): void {\n\t\t\tthis.$emit('stopExecution');\n\t\t},\n\t\tonRetryButtonBlur(event: FocusEvent): void {\n\t\t\t// Hide dropdown when clicking outside of current document\n\t\t\tconst retryDropdownRef = this.$refs.retryDropdown as RetryDropdownRef | undefined;\n\t\t\tif (retryDropdownRef && event.relatedTarget === null) {\n\t\t\t\tretryDropdownRef.handleClose();\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.previewContainer {\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n}\n\n.executionDetails {\n\tposition: absolute;\n\tpadding: var(--spacing-m);\n\tpadding-right: var(--spacing-xl);\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\ttransition: all 150ms ease-in-out;\n\tpointer-events: none;\n\n\t> div:last-child {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t& * {\n\t\tpointer-events: all;\n\t}\n}\n\n.spinner {\n\tdiv div {\n\t\twidth: 30px;\n\t\theight: 30px;\n\t\tborder-width: 2px;\n\t}\n}\n\n.running,\n.spinner {\n\tcolor: var(--color-warning);\n}\n.waiting {\n\tcolor: var(--color-secondary);\n}\n.success {\n\tcolor: var(--color-success);\n}\n.error {\n\tcolor: var(--color-danger);\n}\n\n.runningInfo {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tmargin-top: var(--spacing-4xl);\n}\n\n.runningMessage {\n\twidth: 200px;\n\tmargin-top: var(--spacing-l);\n\ttext-align: center;\n}\n\n.debugLink {\n\tmargin-right: var(--spacing-xs);\n\tpadding: 0;\n\n\ta > span {\n\t\tdisplay: block;\n\t\tpadding: var(--button-padding-vertical, var(--spacing-xs))\n\t\t\tvar(--button-padding-horizontal, var(--spacing-m));\n\t}\n}\n</style>\n"],"names":["_sfc_main","defineComponent","ElDropdown","WorkflowPreview","useExecutionHelpers","useMessage","useExecutionDebugging","mapStores","useWorkflowsStore","_a","VIEWS","MODAL_CONFIRM","command","event","retryDropdownRef","_hoisted_1","_createElementVNode","_resolveComponent","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_createVNode","_component_n8n_spinner","_component_n8n_text","_createTextVNode","_toDisplayString","_component_n8n_button","executionUIDetails","execution","_b","_createBlock","_createCommentVNode","_hoisted_3","_withCtx","_component_router_link","executionPreviewViewName","debugButtonData","executionDebugViewName","isRetriable","_component_ElDropdown","_component_el_dropdown_menu","_component_el_dropdown_item","$locale","_hoisted_4","_component_n8n_icon_button","_component_WorkflowPreview"],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowExecutionsPreview-6bNa2avB.js","sources":["../../src/components/executions/workflow/WorkflowExecutionsPreview.vue"],"sourcesContent":["<template>\n\t<div v-if=\"executionUIDetails?.name === 'running'\" :class=\"$style.runningInfo\">\n\t\t<div :class=\"$style.spinner\">\n\t\t\t<n8n-spinner type=\"ring\" />\n\t\t</div>\n\t\t<n8n-text :class=\"$style.runningMessage\" color=\"text-light\">\n\t\t\t{{ $locale.baseText('executionDetails.runningMessage') }}\n\t\t</n8n-text>\n\t\t<n8n-button class=\"mt-l\" type=\"tertiary\" @click=\"handleStopClick\">\n\t\t\t{{ $locale.baseText('executionsList.stopExecution') }}\n\t\t</n8n-button>\n\t</div>\n\t<div v-else-if=\"executionUIDetails\" :class=\"$style.previewContainer\">\n\t\t<div\n\t\t\tv-if=\"execution\"\n\t\t\t:class=\"$style.executionDetails\"\n\t\t\t:data-test-id=\"`execution-preview-details-${executionId}`\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<n8n-text size=\"large\" color=\"text-base\" :bold=\"true\" data-test-id=\"execution-time\">{{\n\t\t\t\t\texecutionUIDetails?.startTime\n\t\t\t\t}}</n8n-text\n\t\t\t\t><br />\n\t\t\t\t<n8n-spinner\n\t\t\t\t\tv-if=\"executionUIDetails?.name === 'running'\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t:class=\"[$style.spinner, 'mr-4xs']\"\n\t\t\t\t/>\n\t\t\t\t<n8n-text\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t:class=\"[$style.status, $style[executionUIDetails.name]]\"\n\t\t\t\t\tdata-test-id=\"execution-preview-label\"\n\t\t\t\t>\n\t\t\t\t\t{{ executionUIDetails.label }}\n\t\t\t\t</n8n-text>\n\t\t\t\t{{ ' ' }}\n\t\t\t\t<n8n-text v-if=\"executionUIDetails.name === 'running'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeRunning', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ execution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails.name !== 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tdata-test-id=\"execution-preview-id\"\n\t\t\t\t>\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeFinished', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime ?? 'unknown' },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ execution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails?.name === 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t| ID#{{ execution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<br /><n8n-text v-if=\"execution.mode === 'retry'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{ $locale.baseText('executionDetails.retry') }}\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:class=\"$style.executionLink\"\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: executionPreviewViewName,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tworkflowId: execution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: execution.retryOf,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t#{{ execution.retryOf }}\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<n8n-button size=\"medium\" :type=\"debugButtonData.type\" :class=\"$style.debugLink\">\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: executionDebugViewName,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tname: execution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: execution.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span data-test-id=\"execution-debug-button\" @click=\"handleDebugLinkClick\">{{\n\t\t\t\t\t\t\tdebugButtonData.text\n\t\t\t\t\t\t}}</span>\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-button>\n\n\t\t\t\t<ElDropdown\n\t\t\t\t\tv-if=\"isRetriable\"\n\t\t\t\t\tref=\"retryDropdown\"\n\t\t\t\t\ttrigger=\"click\"\n\t\t\t\t\tclass=\"mr-xs\"\n\t\t\t\t\t@command=\"handleRetryClick\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"retry-button\">\n\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('executionsList.retryExecution')\"\n\t\t\t\t\t\t\ticon=\"redo\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-preview-retry-button\"\n\t\t\t\t\t\t\t@blur=\"onRetryButtonBlur\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<template #dropdown>\n\t\t\t\t\t\t<el-dropdown-menu>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"current-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithCurrentlySavedWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"original-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithOriginalWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t</el-dropdown-menu>\n\t\t\t\t\t</template>\n\t\t\t\t</ElDropdown>\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\t:title=\"$locale.baseText('executionDetails.deleteExecution')\"\n\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\tdata-test-id=\"execution-preview-delete-button\"\n\t\t\t\t\t@click=\"onDeleteExecution\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t\t<WorkflowPreview\n\t\t\tmode=\"execution\"\n\t\t\tloader-type=\"spinner\"\n\t\t\t:execution-id=\"executionId\"\n\t\t\t:execution-mode=\"executionMode\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { ElDropdown } from 'element-plus';\nimport { useExecutionDebugging } from '@/composables/useExecutionDebugging';\nimport { useMessage } from '@/composables/useMessage';\nimport WorkflowPreview from '@/components/WorkflowPreview.vue';\nimport { MODAL_CONFIRM, VIEWS } from '@/constants';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport type { IExecutionUIData } from '@/composables/useExecutionHelpers';\nimport { useExecutionHelpers } from '@/composables/useExecutionHelpers';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { mapStores } from 'pinia';\n\ntype RetryDropdownRef = InstanceType<typeof ElDropdown> & { hide: () => void };\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsPreview',\n\tcomponents: {\n\t\tElDropdown,\n\t\tWorkflowPreview,\n\t},\n\tprops: {\n\t\texecution: {\n\t\t\ttype: Object as () => ExecutionSummary | null,\n\t\t\trequired: true,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst executionHelpers = useExecutionHelpers();\n\n\t\treturn {\n\t\t\texecutionHelpers,\n\t\t\t...useMessage(),\n\t\t\t...useExecutionDebugging(),\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useWorkflowsStore),\n\t\texecutionId(): string {\n\t\t\treturn this.$route.params.executionId as string;\n\t\t},\n\t\texecutionUIDetails(): IExecutionUIData | null {\n\t\t\treturn this.execution ? this.executionHelpers.getUIDetails(this.execution) : null;\n\t\t},\n\t\texecutionMode(): string {\n\t\t\treturn this.execution?.mode || '';\n\t\t},\n\t\tdebugButtonData(): Record<string, string> {\n\t\t\treturn this.execution?.status === 'success'\n\t\t\t\t? {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.copyToEditor'),\n\t\t\t\t\t\ttype: 'secondary',\n\t\t\t\t\t}\n\t\t\t\t: {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.debugInEditor'),\n\t\t\t\t\t\ttype: 'primary',\n\t\t\t\t\t};\n\t\t},\n\t\tisRetriable(): boolean {\n\t\t\treturn !!this.execution && this.executionHelpers.isExecutionRetriable(this.execution);\n\t\t},\n\t\texecutionDebugViewName() {\n\t\t\treturn VIEWS.EXECUTION_DEBUG;\n\t\t},\n\t\texecutionPreviewViewName() {\n\t\t\treturn VIEWS.EXECUTION_PREVIEW;\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onDeleteExecution(): Promise<void> {\n\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.message'),\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.headline'),\n\t\t\t\t{\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'executionDetails.confirmMessage.confirmButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tcancelButtonText: '',\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (deleteConfirmed !== MODAL_CONFIRM) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$emit('deleteCurrentExecution');\n\t\t},\n\t\thandleRetryClick(command: string): void {\n\t\t\tthis.$emit('retryExecution', { execution: this.execution, command });\n\t\t},\n\t\thandleStopClick(): void {\n\t\t\tthis.$emit('stopExecution');\n\t\t},\n\t\tonRetryButtonBlur(event: FocusEvent): void {\n\t\t\t// Hide dropdown when clicking outside of current document\n\t\t\tconst retryDropdownRef = this.$refs.retryDropdown as RetryDropdownRef | undefined;\n\t\t\tif (retryDropdownRef && event.relatedTarget === null) {\n\t\t\t\tretryDropdownRef.handleClose();\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.previewContainer {\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n}\n\n.executionDetails {\n\tposition: absolute;\n\tpadding: var(--spacing-m);\n\tpadding-right: var(--spacing-xl);\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\ttransition: all 150ms ease-in-out;\n\tpointer-events: none;\n\n\t> div:last-child {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t& * {\n\t\tpointer-events: all;\n\t}\n}\n\n.spinner {\n\tdiv div {\n\t\twidth: 30px;\n\t\theight: 30px;\n\t\tborder-width: 2px;\n\t}\n}\n\n.running,\n.spinner {\n\tcolor: var(--color-warning);\n}\n.waiting {\n\tcolor: var(--color-secondary);\n}\n.success {\n\tcolor: var(--color-success);\n}\n.error {\n\tcolor: var(--color-danger);\n}\n\n.runningInfo {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tmargin-top: var(--spacing-4xl);\n}\n\n.runningMessage {\n\twidth: 200px;\n\tmargin-top: var(--spacing-l);\n\ttext-align: center;\n}\n\n.debugLink {\n\tmargin-right: var(--spacing-xs);\n\tpadding: 0;\n\n\ta > span {\n\t\tdisplay: block;\n\t\tpadding: var(--button-padding-vertical, var(--spacing-xs))\n\t\t\tvar(--button-padding-horizontal, var(--spacing-m));\n\t}\n}\n</style>\n"],"names":["_sfc_main","defineComponent","ElDropdown","WorkflowPreview","useExecutionHelpers","useMessage","useExecutionDebugging","mapStores","useWorkflowsStore","_a","VIEWS","MODAL_CONFIRM","command","event","retryDropdownRef","_hoisted_1","_createElementVNode","_resolveComponent","_ctx","_openBlock","_createElementBlock","$style","_normalizeClass","_createVNode","_component_n8n_spinner","_component_n8n_text","_createTextVNode","_toDisplayString","_component_n8n_button","executionUIDetails","execution","_b","_createBlock","_createCommentVNode","_hoisted_3","_withCtx","_component_router_link","executionPreviewViewName","debugButtonData","executionDebugViewName","isRetriable","_component_ElDropdown","_component_el_dropdown_menu","_component_el_dropdown_item","$locale","_hoisted_4","_component_n8n_icon_button","_component_WorkflowPreview"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{m as O,s as re}from"./pinia-hqNpa1CE.js";import{G as D,l as u,m as $,T as d,O as x,p as T,S as k,R as w,I as l,M as _,Q as y,ag as c,F as ae,a7 as ue,a0 as le,aG as P,az as ce,r as W,e as C,d as B,b as de,y as fe,u as me}from"./vendor-qzAIxxHa.js";import{j as U,V as b,J as q,c6 as pe,I as xe,z as he,c7 as we,p as ye,d as G,u as X,G as Ee,i as ge,b as ve,a4 as j,c as ke,P as _e,d5 as $e,a3 as Te,w as be,d6 as Ie,F as Re}from"./index-OLvpAx8p.js";import{E as Se,a as Le}from"./ExecutionsFilter-NfToJM9y.js";import{u as Me}from"./useExecutionHelpers-z0jWdDj0.js";import{_ as F}from"./n8n-roXSR3ff.js";import{W as We}from"./WorkflowExecutionsInfoAccordion-AnHjUFE3.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";import"./dateFormatter-cvdD716J.js";const Ce=D({name:"WorkflowExecutionsCard",components:{ExecutionsTime:Se},props:{execution:{type:Object,required:!0},highlight:{type:Boolean,default:!1},showGap:{type:Boolean,default:!1}},setup(){return{executionHelpers:Me()}},computed:{...O(U),currentWorkflow(){return this.$route.params.name||this.workflowsStore.workflowId},retryExecutionActions(){return[{id:"current-workflow",label:this.$locale.baseText("executionsList.retryWithCurrentlySavedWorkflow")},{id:"original-workflow",label:this.$locale.baseText("executionsList.retryWithOriginalWorkflow")}]},executionUIDetails(){return this.executionHelpers.getUIDetails(this.execution)},isActive(){return this.execution.id===this.$route.params.executionId},isRetriable(){return this.executionHelpers.isExecutionRetriable(this.execution)},executionPreviewViewName(){return b.EXECUTION_PREVIEW}},methods:{onRetryMenuItemSelect(e){this.$emit("retryExecution",{execution:this.execution,command:e})}}}),De="_WorkflowExecutionsCard_16ozu_1",ze="_active_16ozu_8",Ae="_executionStatus_16ozu_11",Oe="_executionLink_16ozu_14",Ue="_spinner_16ozu_17",Fe="_running_16ozu_17",Ne="_statusLabel_16ozu_24",Ve="_success_16ozu_29",He="_waiting_16ozu_32",Be="_error_16ozu_38",Pe="_unknown_16ozu_44",qe="_icon_16ozu_61",Ge="_icons_16ozu_66",Xe="_retry_16ozu_74",je="_manual_16ozu_77",Ke="_showGap_16ozu_85",Qe={WorkflowExecutionsCard:De,active:ze,executionStatus:Ae,executionLink:Oe,new:"_new_16ozu_17",spinner:Ue,running:Fe,statusLabel:Ne,success:Ve,waiting:He,error:Be,unknown:Pe,icon:qe,icons:Ge,retry:Xe,manual:je,showGap:Ke},Je={key:0};function Ye(e,t,s,f,n,I){const m=c("n8n-text"),E=c("n8n-spinner"),i=c("ExecutionsTime"),R=c("n8n-action-dropdown"),S=c("font-awesome-icon"),g=c("n8n-tooltip"),v=c("router-link");return u(),$("div",{class:l({"execution-card":!0,[e.$style.WorkflowExecutionsCard]:!0,[e.$style.active]:e.isActive,[e.$style[e.executionUIDetails.name]]:!0,[e.$style.highlight]:e.highlight,[e.$style.showGap]:e.showGap})},[d(v,{class:l(e.$style.executionLink),to:{name:e.executionPreviewViewName,params:{name:e.currentWorkflow,executionId:e.execution.id}},"data-test-execution-status":e.executionUIDetails.name},{default:x(()=>[T("div",{class:l(e.$style.description)},[d(m,{color:"text-dark",bold:!0,size:"medium","data-test-id":"execution-time"},{default:x(()=>[k(w(e.executionUIDetails.startTime),1)]),_:1}),T("div",{class:l(e.$style.executionStatus)},[e.executionUIDetails.name==="running"?(u(),_(E,{key:0,size:"small",class:l([e.$style.spinner,"mr-4xs"])},null,8,["class"])):y("",!0),d(m,{class:l(e.$style.statusLabel),size:"small"},{default:x(()=>[k(w(e.executionUIDetails.label),1)]),_:1},8,["class"]),k(" "+w(" ")+" "),e.executionUIDetails.name==="running"?(u(),_(m,{key:1,color:e.isActive?"text-dark":"text-base",size:"small"},{default:x(()=>[k(w(e.$locale.baseText("executionDetails.runningTimeRunning"))+" ",1),d(i,{"start-time":e.execution.startedAt},null,8,["start-time"])]),_:1},8,["color"])):e.executionUIDetails.runningTime!==""?(u(),_(m,{key:2,color:e.isActive?"text-dark":"text-base",size:"small"},{default:x(()=>{var r;return[k(w(e.$locale.baseText("executionDetails.runningTimeFinished",{interpolate:{time:(r=e.executionUIDetails)==null?void 0:r.runningTime}})),1)]}),_:1},8,["color"])):y("",!0)],2),e.execution.mode==="retry"?(u(),$("div",Je,[d(m,{color:e.isActive?"text-dark":"text-base",size:"small"},{default:x(()=>[k(w(e.$locale.baseText("executionDetails.retry"))+" #"+w(e.execution.retryOf),1)]),_:1},8,["color"])])):y("",!0)],2),T("div",{class:l(e.$style.icons)},[e.isRetriable?(u(),_(R,{key:0,class:l([e.$style.icon,e.$style.retry]),items:e.retryExecutionActions,"activator-icon":"redo","data-test-id":"retry-execution-button",onSelect:e.onRetryMenuItemSelect},null,8,["class","items","onSelect"])):y("",!0),e.execution.mode==="manual"?(u(),_(g,{key:1,placement:"top"},{content:x(()=>[T("span",null,w(e.$locale.baseText("executionsList.test")),1)]),default:x(()=>[e.execution.mode==="manual"?(u(),_(S,{key:0,class:l([e.$style.icon,e.$style.manual]),icon:"flask"},null,8,["class"])):y("",!0)]),_:1})):y("",!0)],2)]),_:1},8,["class","to","data-test-execution-status"])],2)}const Ze={$style:Qe},et=F(Ce,[["render",Ye],["__cssModules",Ze]]),tt=D({name:"WorkflowExecutionsSidebar",components:{WorkflowExecutionsCard:et,WorkflowExecutionsInfoAccordion:We,ExecutionsFilter:Le},props:{executions:{type:Array,required:!0},loading:{type:Boolean,default:!0},loadingMore:{type:Boolean,default:!1},temporaryExecution:{type:Object,default:null}},emits:{retryExecution:null,loadMore:null,refresh:null,filterUpdated:null,reloadExecutions:null,"update:autoRefresh":null},data(){return{filter:{}}},computed:{...O(q,U)},watch:{$route(e,t){t.name===b.EXECUTION_PREVIEW&&e.name===b.EXECUTION_HOME&&this.$router.go(-1)}},mounted(){this.checkListSize(),setTimeout(()=>{this.scrollToActiveCard()},1e3)},methods:{loadMore(e=20){if(!this.loading){const t=this.$refs.executionList;if(t){const s=t.offsetHeight-(t.scrollHeight-t.scrollTop);s>-10&&s<10&&this.$emit("loadMore",e)}}},onRetryExecution(e){this.$emit("retryExecution",e)},onRefresh(){this.$emit("refresh")},onFilterChanged(e){this.$emit("filterUpdated",e)},reloadExecutions(){this.$emit("reloadExecutions")},checkListSize(){var s;const e=this.$refs.container,t=this.$refs[`execution-${(s=this.executionsStore.activeExecution)==null?void 0:s.id}`];if(e&&(t!=null&&t.length)){const f=t[0].$el,n=Math.ceil(e.clientHeight/f.clientHeight);n>this.executions.length&&this.$emit("loadMore",n-this.executions.length)}},scrollToActiveCard(){var s;const e=this.$refs.executionList,t=this.$refs[`execution-${(s=this.executionsStore.activeExecution)==null?void 0:s.id}`];if(e&&(t!=null&&t.length)&&this.executionsStore.activeExecution){const n=t[0].$el.getBoundingClientRect(),I=200;n.top>e.offsetHeight&&e.scrollTo({top:n.top-I})}}}}),ot="_container_qg8we_1",nt="_heading_qg8we_12",st="_controls_qg8we_19",it="_executionList_qg8we_31",rt="_infoAccordion_qg8we_49",at="_noResultsContainer_qg8we_61",ut={container:ot,heading:nt,controls:st,executionList:it,infoAccordion:rt,noResultsContainer:at},lt={key:0,class:"mr-l"},ct={key:3,class:"mr-m"};function dt(e,t,s,f,n,I){const m=c("n8n-heading"),E=c("el-checkbox"),i=c("ExecutionsFilter"),R=c("n8n-loading"),S=c("n8n-text"),g=c("WorkflowExecutionsCard"),v=c("WorkflowExecutionsInfoAccordion");return u(),$("div",{ref:"container",class:l(["executions-sidebar",e.$style.container]),"data-test-id":"executions-sidebar"},[T("div",{class:l(e.$style.heading)},[d(m,{tag:"h2",size:"medium",color:"text-dark"},{default:x(()=>[k(w(e.$locale.baseText("generic.executions")),1)]),_:1})],2),T("div",{class:l(e.$style.controls)},[d(E,{modelValue:e.executionsStore.autoRefresh,"onUpdate:modelValue":[t[0]||(t[0]=r=>e.executionsStore.autoRefresh=r),t[1]||(t[1]=r=>e.$emit("update:autoRefresh",r))],"data-test-id":"auto-refresh-checkbox"},{default:x(()=>[k(w(e.$locale.baseText("executionsList.autoRefresh")),1)]),_:1},8,["modelValue"]),d(i,{"popover-placement":"left-start",onFilterChanged:e.onFilterChanged},null,8,["onFilterChanged"])],2),T("div",{ref:"executionList",class:l(e.$style.executionList),"data-test-id":"current-executions-list",onScroll:t[2]||(t[2]=r=>e.loadMore(20))},[e.loading?(u(),$("div",lt,[d(R,{variant:"rect"})])):y("",!0),!e.loading&&e.executions.length===0?(u(),$("div",{key:1,class:l(e.$style.noResultsContainer),"data-test-id":"execution-list-empty"},[d(S,{color:"text-base",size:"medium",align:"center"},{default:x(()=>[k(w(e.$locale.baseText("executionsLandingPage.noResults")),1)]),_:1})],2)):e.temporaryExecution?(u(),_(g,{key:2,ref:`execution-${e.temporaryExecution.id}`,execution:e.temporaryExecution,"data-test-id":`execution-details-${e.temporaryExecution.id}`,"show-gap":!0,onRetryExecution:e.onRetryExecution},null,8,["execution","data-test-id","onRetryExecution"])):y("",!0),d(le,{name:"executions-list"},{default:x(()=>[(u(!0),$(ae,null,ue(e.executions,r=>(u(),_(g,{key:r.id,ref_for:!0,ref:`execution-${r.id}`,execution:r,"data-test-id":`execution-details-${r.id}`,onRetryExecution:e.onRetryExecution},null,8,["execution","data-test-id","onRetryExecution"]))),128))]),_:1}),e.loadingMore?(u(),$("div",ct,[d(R,{variant:"p",rows:1})])):y("",!0)],34),T("div",{class:l(e.$style.infoAccordion)},[d(v,{"initially-expanded":!1})],2)],2)}const ft={$style:ut},mt=F(tt,[["render",dt],["__cssModules",ft],["__scopeId","data-v-e984bba5"]]),pt=D({name:"WorkflowExecutionsList",components:{WorkflowExecutionsSidebar:mt},async beforeRouteLeave(e,t,s){if(pe(e)===xe.WORKFLOW){s();return}if(this.uiStore.stateIsDirty){const f=await this.confirm(this.$locale.baseText("generic.unsavedWork.confirmMessage.message"),{title:this.$locale.baseText("generic.unsavedWork.confirmMessage.headline"),type:"warning",confirmButtonText:this.$locale.baseText("generic.unsavedWork.confirmMessage.confirmButtonText"),cancelButtonText:this.$locale.baseText("generic.unsavedWork.confirmMessage.cancelButtonText"),showClose:!0});f===he?(await this.workflowHelpers.saveCurrentWorkflow({},!1)&&await this.settingsStore.fetchPromptsData(),this.uiStore.stateIsDirty=!1,s()):f===we&&(this.uiStore.stateIsDirty=!1,s())}else s()},props:{loading:{type:Boolean,default:!1},workflow:{type:Object,required:!0},executions:{type:Array,default:()=>[]},filters:{type:Object,default:()=>({})},execution:{type:Object,default:null},loadingMore:{type:Boolean,default:!1}},emits:["execution:delete","execution:stop","execution:retry","update:auto-refresh","update:filters","load-more","reload"],setup(){const e=Te(),t=P(),s=ye({router:t}),{callDebounced:f}=G();return{externalHooks:e,workflowHelpers:s,callDebounced:f,...X(),...Ee()}},computed:{...O(ke,j,ve,ge),temporaryExecution(){return!this.executions.find(t=>{var s;return t.id===((s=this.execution)==null?void 0:s.id)})?this.execution:void 0},hidePreview(){return this.loading||!this.execution&&this.executions.length},filterApplied(){return this.filters.status!=="all"},workflowDataNotLoaded(){return this.workflow.id===_e&&this.workflow.name===""},requestFilter(){return $e({...this.filters,workflowId:this.workflow.id})}},watch:{execution(e){e&&this.$router.push({name:b.EXECUTION_PREVIEW,params:{name:this.workflow.id,executionId:e.id}}).catch(()=>{})}},methods:{async onDeleteCurrentExecution(){this.$emit("execution:delete",this.execution.id)},async onStopExecution(){this.$emit("execution:stop",this.execution.id)},async onRetryExecution(e){const t=e.command==="current-workflow";this.$emit("execution:retry",{id:e.execution.id,loadWorkflow:t})}}}),xt="_container_16o1g_1",ht="_content_16o1g_7",wt={container:xt,content:ht};function yt(e,t,s,f,n,I){const m=c("WorkflowExecutionsSidebar"),E=c("router-view");return u(),$("div",{class:l(e.$style.container)},[d(m,{executions:e.executions,loading:e.loading&&!e.executions.length,"loading-more":e.loadingMore,"temporary-execution":e.temporaryExecution,"onUpdate:autoRefresh":t[0]||(t[0]=i=>e.$emit("update:auto-refresh",i)),onReloadExecutions:t[1]||(t[1]=i=>e.$emit("reload")),onFilterUpdated:t[2]||(t[2]=i=>e.$emit("update:filters",i)),onLoadMore:t[3]||(t[3]=i=>e.$emit("load-more")),onRetryExecution:e.onRetryExecution},null,8,["executions","loading","loading-more","temporary-execution","onRetryExecution"]),e.hidePreview?y("",!0):(u(),$("div",{key:0,class:l(e.$style.content)},[d(E,{name:"executionPreview",execution:e.execution,onDeleteCurrentExecution:e.onDeleteCurrentExecution,onRetryExecution:e.onRetryExecution,onStopExecution:e.onStopExecution},null,8,["execution","onDeleteCurrentExecution","onRetryExecution","onStopExecution"])],2))],2)}const Et={$style:wt},gt=F(pt,[["render",yt],["__cssModules",Et]]),eo=D({__name:"WorkflowExecutionsView",setup(e){const t=q(),s=U(),f=j(),n=be(),I=Re(),m=ce(),E=P(),i=X(),{callDebounced:R}=G(),{filters:S}=re(t),g=W(!1),v=W(!1),r=W(),h=C(()=>m.params.name||s.workflowId),L=C(()=>m.params.executionId),p=C(()=>[...t.currentExecutionsByWorkflowId[h.value]??[],...t.executionsByWorkflowId[h.value]??[]]),K=C(()=>p.value.find(o=>o.id===L.value)??z.value),z=W();B(()=>h.value,async()=>{await H()}),B(()=>L.value,async()=>{await N()}),de(async()=>{await f.loadNodeTypesIfNotLoaded(),await Promise.all([f.loadNodeTypesIfNotLoaded(),H(),t.initialize(h.value)]),await N(),await Q(),document.addEventListener("visibilitychange",V)}),fe(()=>{t.reset(),document.removeEventListener("visibilitychange",V)});async function N(){if(L.value)try{z.value=await t.fetchExecution(L.value),t.activeExecution=z.value}catch(o){i.showError(o,n.baseText("nodeView.showError.openExecution.title"))}}function V(){document.visibilityState==="hidden"?t.stopAutoRefreshInterval():t.startAutoRefreshInterval(h.value)}async function Q(){m.name===b.EXECUTION_HOME&&p.value.length>0&&r.value&&await E.push({name:b.EXECUTION_PREVIEW,params:{name:r.value.id,executionId:p.value[0].id}}).catch(()=>{})}async function H(){let o;try{o=await s.fetchWorkflow(h.value)}catch(a){i.showError(a,n.baseText("nodeView.showError.openWorkflow.title"));return}if(!o)throw new Error(n.baseText("nodeView.workflowWithIdCouldNotBeFound",{interpolate:{workflowId:h.value}}));r.value=o}async function J(o){o?await t.startAutoRefreshInterval(h.value):t.stopAutoRefreshInterval()}async function A(){if(h.value)try{await t.fetchExecutions({...t.executionsFilters,workflowId:h.value})}catch(o){o.errorCode===Ie?i.showMessage({title:n.baseText("executionsList.showError.refreshData.title"),message:o.message,type:"error",duration:3500},!1):i.showError(o,n.baseText("executionsList.showError.refreshData.title"))}}async function Y(o){t.reset(),t.setFilters(o),await t.initialize(h.value)}async function Z(o){try{await t.stopCurrentExecution(o),i.showMessage({title:n.baseText("executionsList.showMessage.stopExecution.title"),message:n.baseText("executionsList.showMessage.stopExecution.message",{interpolate:{activeExecutionId:o}}),type:"success"}),await A()}catch(a){i.showError(a,n.baseText("executionsList.showError.stopExecution.title"))}}async function ee(o){g.value=!0;try{const a=p.value.findIndex(ie=>ie.id===o),M=p.value[a+1]||p.value[a-1]||p.value[0];await t.deleteExecutions({ids:[o]}),r.value&&(p.value.length>0?await E.replace({name:b.EXECUTION_PREVIEW,params:{name:r.value.id,executionId:M.id}}).catch(()=>{}):await E.replace({name:b.EXECUTION_HOME,params:{name:r.value.id}}))}catch(a){g.value=!1,i.showError(a,n.baseText("executionsList.showError.handleDeleteSelected.title"));return}g.value=!1,i.showMessage({title:n.baseText("executionsList.showMessage.handleDeleteSelected.title"),type:"success"})}async function te(o){var a;i.showMessage({title:n.baseText("executionDetails.runningMessage"),type:"info",duration:2e3}),await oe(o),await A(),I.track("User clicked retry execution button",{workflow_id:(a=r.value)==null?void 0:a.id,execution_id:o.id,retry_type:o.loadWorkflow?"current":"original"})}async function oe(o){try{await t.retryExecution(o.id,o.loadWorkflow)?i.showMessage({title:n.baseText("executionsList.showMessage.retrySuccessfulTrue.title"),type:"success"}):i.showMessage({title:n.baseText("executionsList.showMessage.retrySuccessfulFalse.title"),type:"error"})}catch(a){i.showError(a,n.baseText("executionsList.showError.retryExecution.title"))}}async function ne(){v.value||await R(se,{debounceTime:1e3})}async function se(){var a;if((a=t.executionsFilters.status)!=null&&a.includes("running")||p.value.length>=t.executionsCount)return;v.value=!0;let o;p.value.length!==0&&(o=p.value.slice(-1)[0].id);try{await t.fetchExecutions(t.executionsFilters,o)}catch(M){v.value=!1,i.showError(M,n.baseText("executionsList.showError.loadMore.title"));return}v.value=!1}return(o,a)=>r.value?(u(),_(gt,{key:0,executions:p.value,execution:K.value,filters:me(S),workflow:r.value,loading:g.value,"loading-more":v.value,"onExecution:stop":Z,"onExecution:delete":ee,"onExecution:retry":te,"onUpdate:filters":Y,"onUpdate:autoRefresh":J,onLoadMore:ne,onReload:A},null,8,["executions","execution","filters","workflow","loading","loading-more"])):y("",!0)}});export{eo as default};
2
- //# sourceMappingURL=WorkflowExecutionsView-2SiI_dZv.js.map
1
+ import{m as O,s as re}from"./pinia-hqNpa1CE.js";import{G as D,l as u,m as $,T as d,O as x,p as T,S as k,R as w,I as l,M as _,Q as y,ag as c,F as ae,a7 as ue,a0 as le,aG as P,az as ce,r as W,e as C,d as B,b as de,y as fe,u as me}from"./vendor-qzAIxxHa.js";import{j as U,V as b,J as q,c6 as pe,I as xe,z as he,c7 as we,p as ye,d as G,u as X,G as Ee,i as ge,b as ve,a4 as j,c as ke,P as _e,d5 as $e,a3 as Te,w as be,d6 as Ie,F as Re}from"./index-6ulnOLCO.js";import{E as Se,a as Le}from"./ExecutionsFilter-Zq0mjSZf.js";import{u as Me}from"./useExecutionHelpers-5nDBsYfy.js";import{_ as F}from"./n8n-roXSR3ff.js";import{W as We}from"./WorkflowExecutionsInfoAccordion-3GkCvE9Q.js";import"./axios-s2RMMPhA.js";import"./flatted-jPn12Tq4.js";import"./@vueuse/core-3K2u_AzZ.js";import"./lodash-es-SWsik9tP.js";import"./@n8n/permissions-1O7vSg-k.js";import"./dateformat-ZLFwQ-J0.js";import"./vue-i18n-COIxmhgq.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./@n8n/codemirror-lang-sql-PDL6jaEc.js";import"./@lezer/common-1hBQ1gIF.js";import"./prettier-XiNuC5bg.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-AlqFM-P6.js";import"./codemirror-lang-html-n8n-m8pcIqw_.js";import"./@n8n/codemirror-lang-uuamtW6H.js";import"./esprima-next-ulPLCZ1Z.js";import"./fast-json-stable-stringify-F21sPGMl.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-NS1qgWpD.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";import"./dateFormatter-cvdD716J.js";const Ce=D({name:"WorkflowExecutionsCard",components:{ExecutionsTime:Se},props:{execution:{type:Object,required:!0},highlight:{type:Boolean,default:!1},showGap:{type:Boolean,default:!1}},setup(){return{executionHelpers:Me()}},computed:{...O(U),currentWorkflow(){return this.$route.params.name||this.workflowsStore.workflowId},retryExecutionActions(){return[{id:"current-workflow",label:this.$locale.baseText("executionsList.retryWithCurrentlySavedWorkflow")},{id:"original-workflow",label:this.$locale.baseText("executionsList.retryWithOriginalWorkflow")}]},executionUIDetails(){return this.executionHelpers.getUIDetails(this.execution)},isActive(){return this.execution.id===this.$route.params.executionId},isRetriable(){return this.executionHelpers.isExecutionRetriable(this.execution)},executionPreviewViewName(){return b.EXECUTION_PREVIEW}},methods:{onRetryMenuItemSelect(e){this.$emit("retryExecution",{execution:this.execution,command:e})}}}),De="_WorkflowExecutionsCard_16ozu_1",ze="_active_16ozu_8",Ae="_executionStatus_16ozu_11",Oe="_executionLink_16ozu_14",Ue="_spinner_16ozu_17",Fe="_running_16ozu_17",Ne="_statusLabel_16ozu_24",Ve="_success_16ozu_29",He="_waiting_16ozu_32",Be="_error_16ozu_38",Pe="_unknown_16ozu_44",qe="_icon_16ozu_61",Ge="_icons_16ozu_66",Xe="_retry_16ozu_74",je="_manual_16ozu_77",Ke="_showGap_16ozu_85",Qe={WorkflowExecutionsCard:De,active:ze,executionStatus:Ae,executionLink:Oe,new:"_new_16ozu_17",spinner:Ue,running:Fe,statusLabel:Ne,success:Ve,waiting:He,error:Be,unknown:Pe,icon:qe,icons:Ge,retry:Xe,manual:je,showGap:Ke},Je={key:0};function Ye(e,t,s,f,n,I){const m=c("n8n-text"),E=c("n8n-spinner"),i=c("ExecutionsTime"),R=c("n8n-action-dropdown"),S=c("font-awesome-icon"),g=c("n8n-tooltip"),v=c("router-link");return u(),$("div",{class:l({"execution-card":!0,[e.$style.WorkflowExecutionsCard]:!0,[e.$style.active]:e.isActive,[e.$style[e.executionUIDetails.name]]:!0,[e.$style.highlight]:e.highlight,[e.$style.showGap]:e.showGap})},[d(v,{class:l(e.$style.executionLink),to:{name:e.executionPreviewViewName,params:{name:e.currentWorkflow,executionId:e.execution.id}},"data-test-execution-status":e.executionUIDetails.name},{default:x(()=>[T("div",{class:l(e.$style.description)},[d(m,{color:"text-dark",bold:!0,size:"medium","data-test-id":"execution-time"},{default:x(()=>[k(w(e.executionUIDetails.startTime),1)]),_:1}),T("div",{class:l(e.$style.executionStatus)},[e.executionUIDetails.name==="running"?(u(),_(E,{key:0,size:"small",class:l([e.$style.spinner,"mr-4xs"])},null,8,["class"])):y("",!0),d(m,{class:l(e.$style.statusLabel),size:"small"},{default:x(()=>[k(w(e.executionUIDetails.label),1)]),_:1},8,["class"]),k(" "+w(" ")+" "),e.executionUIDetails.name==="running"?(u(),_(m,{key:1,color:e.isActive?"text-dark":"text-base",size:"small"},{default:x(()=>[k(w(e.$locale.baseText("executionDetails.runningTimeRunning"))+" ",1),d(i,{"start-time":e.execution.startedAt},null,8,["start-time"])]),_:1},8,["color"])):e.executionUIDetails.runningTime!==""?(u(),_(m,{key:2,color:e.isActive?"text-dark":"text-base",size:"small"},{default:x(()=>{var r;return[k(w(e.$locale.baseText("executionDetails.runningTimeFinished",{interpolate:{time:(r=e.executionUIDetails)==null?void 0:r.runningTime}})),1)]}),_:1},8,["color"])):y("",!0)],2),e.execution.mode==="retry"?(u(),$("div",Je,[d(m,{color:e.isActive?"text-dark":"text-base",size:"small"},{default:x(()=>[k(w(e.$locale.baseText("executionDetails.retry"))+" #"+w(e.execution.retryOf),1)]),_:1},8,["color"])])):y("",!0)],2),T("div",{class:l(e.$style.icons)},[e.isRetriable?(u(),_(R,{key:0,class:l([e.$style.icon,e.$style.retry]),items:e.retryExecutionActions,"activator-icon":"redo","data-test-id":"retry-execution-button",onSelect:e.onRetryMenuItemSelect},null,8,["class","items","onSelect"])):y("",!0),e.execution.mode==="manual"?(u(),_(g,{key:1,placement:"top"},{content:x(()=>[T("span",null,w(e.$locale.baseText("executionsList.test")),1)]),default:x(()=>[e.execution.mode==="manual"?(u(),_(S,{key:0,class:l([e.$style.icon,e.$style.manual]),icon:"flask"},null,8,["class"])):y("",!0)]),_:1})):y("",!0)],2)]),_:1},8,["class","to","data-test-execution-status"])],2)}const Ze={$style:Qe},et=F(Ce,[["render",Ye],["__cssModules",Ze]]),tt=D({name:"WorkflowExecutionsSidebar",components:{WorkflowExecutionsCard:et,WorkflowExecutionsInfoAccordion:We,ExecutionsFilter:Le},props:{executions:{type:Array,required:!0},loading:{type:Boolean,default:!0},loadingMore:{type:Boolean,default:!1},temporaryExecution:{type:Object,default:null}},emits:{retryExecution:null,loadMore:null,refresh:null,filterUpdated:null,reloadExecutions:null,"update:autoRefresh":null},data(){return{filter:{}}},computed:{...O(q,U)},watch:{$route(e,t){t.name===b.EXECUTION_PREVIEW&&e.name===b.EXECUTION_HOME&&this.$router.go(-1)}},mounted(){this.checkListSize(),setTimeout(()=>{this.scrollToActiveCard()},1e3)},methods:{loadMore(e=20){if(!this.loading){const t=this.$refs.executionList;if(t){const s=t.offsetHeight-(t.scrollHeight-t.scrollTop);s>-10&&s<10&&this.$emit("loadMore",e)}}},onRetryExecution(e){this.$emit("retryExecution",e)},onRefresh(){this.$emit("refresh")},onFilterChanged(e){this.$emit("filterUpdated",e)},reloadExecutions(){this.$emit("reloadExecutions")},checkListSize(){var s;const e=this.$refs.container,t=this.$refs[`execution-${(s=this.executionsStore.activeExecution)==null?void 0:s.id}`];if(e&&(t!=null&&t.length)){const f=t[0].$el,n=Math.ceil(e.clientHeight/f.clientHeight);n>this.executions.length&&this.$emit("loadMore",n-this.executions.length)}},scrollToActiveCard(){var s;const e=this.$refs.executionList,t=this.$refs[`execution-${(s=this.executionsStore.activeExecution)==null?void 0:s.id}`];if(e&&(t!=null&&t.length)&&this.executionsStore.activeExecution){const n=t[0].$el.getBoundingClientRect(),I=200;n.top>e.offsetHeight&&e.scrollTo({top:n.top-I})}}}}),ot="_container_qg8we_1",nt="_heading_qg8we_12",st="_controls_qg8we_19",it="_executionList_qg8we_31",rt="_infoAccordion_qg8we_49",at="_noResultsContainer_qg8we_61",ut={container:ot,heading:nt,controls:st,executionList:it,infoAccordion:rt,noResultsContainer:at},lt={key:0,class:"mr-l"},ct={key:3,class:"mr-m"};function dt(e,t,s,f,n,I){const m=c("n8n-heading"),E=c("el-checkbox"),i=c("ExecutionsFilter"),R=c("n8n-loading"),S=c("n8n-text"),g=c("WorkflowExecutionsCard"),v=c("WorkflowExecutionsInfoAccordion");return u(),$("div",{ref:"container",class:l(["executions-sidebar",e.$style.container]),"data-test-id":"executions-sidebar"},[T("div",{class:l(e.$style.heading)},[d(m,{tag:"h2",size:"medium",color:"text-dark"},{default:x(()=>[k(w(e.$locale.baseText("generic.executions")),1)]),_:1})],2),T("div",{class:l(e.$style.controls)},[d(E,{modelValue:e.executionsStore.autoRefresh,"onUpdate:modelValue":[t[0]||(t[0]=r=>e.executionsStore.autoRefresh=r),t[1]||(t[1]=r=>e.$emit("update:autoRefresh",r))],"data-test-id":"auto-refresh-checkbox"},{default:x(()=>[k(w(e.$locale.baseText("executionsList.autoRefresh")),1)]),_:1},8,["modelValue"]),d(i,{"popover-placement":"left-start",onFilterChanged:e.onFilterChanged},null,8,["onFilterChanged"])],2),T("div",{ref:"executionList",class:l(e.$style.executionList),"data-test-id":"current-executions-list",onScroll:t[2]||(t[2]=r=>e.loadMore(20))},[e.loading?(u(),$("div",lt,[d(R,{variant:"rect"})])):y("",!0),!e.loading&&e.executions.length===0?(u(),$("div",{key:1,class:l(e.$style.noResultsContainer),"data-test-id":"execution-list-empty"},[d(S,{color:"text-base",size:"medium",align:"center"},{default:x(()=>[k(w(e.$locale.baseText("executionsLandingPage.noResults")),1)]),_:1})],2)):e.temporaryExecution?(u(),_(g,{key:2,ref:`execution-${e.temporaryExecution.id}`,execution:e.temporaryExecution,"data-test-id":`execution-details-${e.temporaryExecution.id}`,"show-gap":!0,onRetryExecution:e.onRetryExecution},null,8,["execution","data-test-id","onRetryExecution"])):y("",!0),d(le,{name:"executions-list"},{default:x(()=>[(u(!0),$(ae,null,ue(e.executions,r=>(u(),_(g,{key:r.id,ref_for:!0,ref:`execution-${r.id}`,execution:r,"data-test-id":`execution-details-${r.id}`,onRetryExecution:e.onRetryExecution},null,8,["execution","data-test-id","onRetryExecution"]))),128))]),_:1}),e.loadingMore?(u(),$("div",ct,[d(R,{variant:"p",rows:1})])):y("",!0)],34),T("div",{class:l(e.$style.infoAccordion)},[d(v,{"initially-expanded":!1})],2)],2)}const ft={$style:ut},mt=F(tt,[["render",dt],["__cssModules",ft],["__scopeId","data-v-e984bba5"]]),pt=D({name:"WorkflowExecutionsList",components:{WorkflowExecutionsSidebar:mt},async beforeRouteLeave(e,t,s){if(pe(e)===xe.WORKFLOW){s();return}if(this.uiStore.stateIsDirty){const f=await this.confirm(this.$locale.baseText("generic.unsavedWork.confirmMessage.message"),{title:this.$locale.baseText("generic.unsavedWork.confirmMessage.headline"),type:"warning",confirmButtonText:this.$locale.baseText("generic.unsavedWork.confirmMessage.confirmButtonText"),cancelButtonText:this.$locale.baseText("generic.unsavedWork.confirmMessage.cancelButtonText"),showClose:!0});f===he?(await this.workflowHelpers.saveCurrentWorkflow({},!1)&&await this.settingsStore.fetchPromptsData(),this.uiStore.stateIsDirty=!1,s()):f===we&&(this.uiStore.stateIsDirty=!1,s())}else s()},props:{loading:{type:Boolean,default:!1},workflow:{type:Object,required:!0},executions:{type:Array,default:()=>[]},filters:{type:Object,default:()=>({})},execution:{type:Object,default:null},loadingMore:{type:Boolean,default:!1}},emits:["execution:delete","execution:stop","execution:retry","update:auto-refresh","update:filters","load-more","reload"],setup(){const e=Te(),t=P(),s=ye({router:t}),{callDebounced:f}=G();return{externalHooks:e,workflowHelpers:s,callDebounced:f,...X(),...Ee()}},computed:{...O(ke,j,ve,ge),temporaryExecution(){return!this.executions.find(t=>{var s;return t.id===((s=this.execution)==null?void 0:s.id)})?this.execution:void 0},hidePreview(){return this.loading||!this.execution&&this.executions.length},filterApplied(){return this.filters.status!=="all"},workflowDataNotLoaded(){return this.workflow.id===_e&&this.workflow.name===""},requestFilter(){return $e({...this.filters,workflowId:this.workflow.id})}},watch:{execution(e){e&&this.$router.push({name:b.EXECUTION_PREVIEW,params:{name:this.workflow.id,executionId:e.id}}).catch(()=>{})}},methods:{async onDeleteCurrentExecution(){this.$emit("execution:delete",this.execution.id)},async onStopExecution(){this.$emit("execution:stop",this.execution.id)},async onRetryExecution(e){const t=e.command==="current-workflow";this.$emit("execution:retry",{id:e.execution.id,loadWorkflow:t})}}}),xt="_container_16o1g_1",ht="_content_16o1g_7",wt={container:xt,content:ht};function yt(e,t,s,f,n,I){const m=c("WorkflowExecutionsSidebar"),E=c("router-view");return u(),$("div",{class:l(e.$style.container)},[d(m,{executions:e.executions,loading:e.loading&&!e.executions.length,"loading-more":e.loadingMore,"temporary-execution":e.temporaryExecution,"onUpdate:autoRefresh":t[0]||(t[0]=i=>e.$emit("update:auto-refresh",i)),onReloadExecutions:t[1]||(t[1]=i=>e.$emit("reload")),onFilterUpdated:t[2]||(t[2]=i=>e.$emit("update:filters",i)),onLoadMore:t[3]||(t[3]=i=>e.$emit("load-more")),onRetryExecution:e.onRetryExecution},null,8,["executions","loading","loading-more","temporary-execution","onRetryExecution"]),e.hidePreview?y("",!0):(u(),$("div",{key:0,class:l(e.$style.content)},[d(E,{name:"executionPreview",execution:e.execution,onDeleteCurrentExecution:e.onDeleteCurrentExecution,onRetryExecution:e.onRetryExecution,onStopExecution:e.onStopExecution},null,8,["execution","onDeleteCurrentExecution","onRetryExecution","onStopExecution"])],2))],2)}const Et={$style:wt},gt=F(pt,[["render",yt],["__cssModules",Et]]),eo=D({__name:"WorkflowExecutionsView",setup(e){const t=q(),s=U(),f=j(),n=be(),I=Re(),m=ce(),E=P(),i=X(),{callDebounced:R}=G(),{filters:S}=re(t),g=W(!1),v=W(!1),r=W(),h=C(()=>m.params.name||s.workflowId),L=C(()=>m.params.executionId),p=C(()=>[...t.currentExecutionsByWorkflowId[h.value]??[],...t.executionsByWorkflowId[h.value]??[]]),K=C(()=>p.value.find(o=>o.id===L.value)??z.value),z=W();B(()=>h.value,async()=>{await H()}),B(()=>L.value,async()=>{await N()}),de(async()=>{await f.loadNodeTypesIfNotLoaded(),await Promise.all([f.loadNodeTypesIfNotLoaded(),H(),t.initialize(h.value)]),await N(),await Q(),document.addEventListener("visibilitychange",V)}),fe(()=>{t.reset(),document.removeEventListener("visibilitychange",V)});async function N(){if(L.value)try{z.value=await t.fetchExecution(L.value),t.activeExecution=z.value}catch(o){i.showError(o,n.baseText("nodeView.showError.openExecution.title"))}}function V(){document.visibilityState==="hidden"?t.stopAutoRefreshInterval():t.startAutoRefreshInterval(h.value)}async function Q(){m.name===b.EXECUTION_HOME&&p.value.length>0&&r.value&&await E.push({name:b.EXECUTION_PREVIEW,params:{name:r.value.id,executionId:p.value[0].id}}).catch(()=>{})}async function H(){let o;try{o=await s.fetchWorkflow(h.value)}catch(a){i.showError(a,n.baseText("nodeView.showError.openWorkflow.title"));return}if(!o)throw new Error(n.baseText("nodeView.workflowWithIdCouldNotBeFound",{interpolate:{workflowId:h.value}}));r.value=o}async function J(o){o?await t.startAutoRefreshInterval(h.value):t.stopAutoRefreshInterval()}async function A(){if(h.value)try{await t.fetchExecutions({...t.executionsFilters,workflowId:h.value})}catch(o){o.errorCode===Ie?i.showMessage({title:n.baseText("executionsList.showError.refreshData.title"),message:o.message,type:"error",duration:3500},!1):i.showError(o,n.baseText("executionsList.showError.refreshData.title"))}}async function Y(o){t.reset(),t.setFilters(o),await t.initialize(h.value)}async function Z(o){try{await t.stopCurrentExecution(o),i.showMessage({title:n.baseText("executionsList.showMessage.stopExecution.title"),message:n.baseText("executionsList.showMessage.stopExecution.message",{interpolate:{activeExecutionId:o}}),type:"success"}),await A()}catch(a){i.showError(a,n.baseText("executionsList.showError.stopExecution.title"))}}async function ee(o){g.value=!0;try{const a=p.value.findIndex(ie=>ie.id===o),M=p.value[a+1]||p.value[a-1]||p.value[0];await t.deleteExecutions({ids:[o]}),r.value&&(p.value.length>0?await E.replace({name:b.EXECUTION_PREVIEW,params:{name:r.value.id,executionId:M.id}}).catch(()=>{}):await E.replace({name:b.EXECUTION_HOME,params:{name:r.value.id}}))}catch(a){g.value=!1,i.showError(a,n.baseText("executionsList.showError.handleDeleteSelected.title"));return}g.value=!1,i.showMessage({title:n.baseText("executionsList.showMessage.handleDeleteSelected.title"),type:"success"})}async function te(o){var a;i.showMessage({title:n.baseText("executionDetails.runningMessage"),type:"info",duration:2e3}),await oe(o),await A(),I.track("User clicked retry execution button",{workflow_id:(a=r.value)==null?void 0:a.id,execution_id:o.id,retry_type:o.loadWorkflow?"current":"original"})}async function oe(o){try{await t.retryExecution(o.id,o.loadWorkflow)?i.showMessage({title:n.baseText("executionsList.showMessage.retrySuccessfulTrue.title"),type:"success"}):i.showMessage({title:n.baseText("executionsList.showMessage.retrySuccessfulFalse.title"),type:"error"})}catch(a){i.showError(a,n.baseText("executionsList.showError.retryExecution.title"))}}async function ne(){v.value||await R(se,{debounceTime:1e3})}async function se(){var a;if((a=t.executionsFilters.status)!=null&&a.includes("running")||p.value.length>=t.executionsCount)return;v.value=!0;let o;p.value.length!==0&&(o=p.value.slice(-1)[0].id);try{await t.fetchExecutions(t.executionsFilters,o)}catch(M){v.value=!1,i.showError(M,n.baseText("executionsList.showError.loadMore.title"));return}v.value=!1}return(o,a)=>r.value?(u(),_(gt,{key:0,executions:p.value,execution:K.value,filters:me(S),workflow:r.value,loading:g.value,"loading-more":v.value,"onExecution:stop":Z,"onExecution:delete":ee,"onExecution:retry":te,"onUpdate:filters":Y,"onUpdate:autoRefresh":J,onLoadMore:ne,onReload:A},null,8,["executions","execution","filters","workflow","loading","loading-more"])):y("",!0)}});export{eo as default};
2
+ //# sourceMappingURL=WorkflowExecutionsView-e12KrPNp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowExecutionsView-2SiI_dZv.js","sources":["../../src/components/executions/workflow/WorkflowExecutionsCard.vue","../../src/components/executions/workflow/WorkflowExecutionsSidebar.vue","../../src/components/executions/workflow/WorkflowExecutionsList.vue","../../src/views/WorkflowExecutionsView.vue"],"sourcesContent":["<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['execution-card']: true,\n\t\t\t[$style.WorkflowExecutionsCard]: true,\n\t\t\t[$style.active]: isActive,\n\t\t\t[$style[executionUIDetails.name]]: true,\n\t\t\t[$style.highlight]: highlight,\n\t\t\t[$style.showGap]: showGap,\n\t\t}\"\n\t>\n\t\t<router-link\n\t\t\t:class=\"$style.executionLink\"\n\t\t\t:to=\"{\n\t\t\t\tname: executionPreviewViewName,\n\t\t\t\tparams: { name: currentWorkflow, executionId: execution.id },\n\t\t\t}\"\n\t\t\t:data-test-execution-status=\"executionUIDetails.name\"\n\t\t>\n\t\t\t<div :class=\"$style.description\">\n\t\t\t\t<n8n-text color=\"text-dark\" :bold=\"true\" size=\"medium\" data-test-id=\"execution-time\">\n\t\t\t\t\t{{ executionUIDetails.startTime }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<div :class=\"$style.executionStatus\">\n\t\t\t\t\t<n8n-spinner\n\t\t\t\t\t\tv-if=\"executionUIDetails.name === 'running'\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t:class=\"[$style.spinner, 'mr-4xs']\"\n\t\t\t\t\t/>\n\t\t\t\t\t<n8n-text :class=\"$style.statusLabel\" size=\"small\">{{\n\t\t\t\t\t\texecutionUIDetails.label\n\t\t\t\t\t}}</n8n-text>\n\t\t\t\t\t{{ ' ' }}\n\t\t\t\t\t<n8n-text\n\t\t\t\t\t\tv-if=\"executionUIDetails.name === 'running'\"\n\t\t\t\t\t\t:color=\"isActive ? 'text-dark' : 'text-base'\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $locale.baseText('executionDetails.runningTimeRunning') }}\n\t\t\t\t\t\t<ExecutionsTime :start-time=\"execution.startedAt\" />\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-text\n\t\t\t\t\t\tv-else-if=\"executionUIDetails.runningTime !== ''\"\n\t\t\t\t\t\t:color=\"isActive ? 'text-dark' : 'text-base'\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeFinished', {\n\t\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"execution.mode === 'retry'\">\n\t\t\t\t\t<n8n-text :color=\"isActive ? 'text-dark' : 'text-base'\" size=\"small\">\n\t\t\t\t\t\t{{ $locale.baseText('executionDetails.retry') }} #{{ execution.retryOf }}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.icons\">\n\t\t\t\t<n8n-action-dropdown\n\t\t\t\t\tv-if=\"isRetriable\"\n\t\t\t\t\t:class=\"[$style.icon, $style.retry]\"\n\t\t\t\t\t:items=\"retryExecutionActions\"\n\t\t\t\t\tactivator-icon=\"redo\"\n\t\t\t\t\tdata-test-id=\"retry-execution-button\"\n\t\t\t\t\t@select=\"onRetryMenuItemSelect\"\n\t\t\t\t/>\n\t\t\t\t<n8n-tooltip v-if=\"execution.mode === 'manual'\" placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<span>{{ $locale.baseText('executionsList.test') }}</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\tv-if=\"execution.mode === 'manual'\"\n\t\t\t\t\t\t:class=\"[$style.icon, $style.manual]\"\n\t\t\t\t\t\ticon=\"flask\"\n\t\t\t\t\t/>\n\t\t\t\t</n8n-tooltip>\n\t\t\t</div>\n\t\t</router-link>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { IExecutionUIData } from '@/composables/useExecutionHelpers';\nimport { VIEWS } from '@/constants';\nimport ExecutionsTime from '@/components/executions/ExecutionsTime.vue';\nimport { useExecutionHelpers } from '@/composables/useExecutionHelpers';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport { mapStores } from 'pinia';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsCard',\n\tcomponents: {\n\t\tExecutionsTime,\n\t},\n\tprops: {\n\t\texecution: {\n\t\t\ttype: Object as () => ExecutionSummary,\n\t\t\trequired: true,\n\t\t},\n\t\thighlight: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tshowGap: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst executionHelpers = useExecutionHelpers();\n\n\t\treturn {\n\t\t\texecutionHelpers,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useWorkflowsStore),\n\t\tcurrentWorkflow(): string {\n\t\t\treturn (this.$route.params.name as string) || this.workflowsStore.workflowId;\n\t\t},\n\t\tretryExecutionActions(): object[] {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: 'current-workflow',\n\t\t\t\t\tlabel: this.$locale.baseText('executionsList.retryWithCurrentlySavedWorkflow'),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'original-workflow',\n\t\t\t\t\tlabel: this.$locale.baseText('executionsList.retryWithOriginalWorkflow'),\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\texecutionUIDetails(): IExecutionUIData {\n\t\t\treturn this.executionHelpers.getUIDetails(this.execution);\n\t\t},\n\t\tisActive(): boolean {\n\t\t\treturn this.execution.id === this.$route.params.executionId;\n\t\t},\n\t\tisRetriable(): boolean {\n\t\t\treturn this.executionHelpers.isExecutionRetriable(this.execution);\n\t\t},\n\t\texecutionPreviewViewName() {\n\t\t\treturn VIEWS.EXECUTION_PREVIEW;\n\t\t},\n\t},\n\tmethods: {\n\t\tonRetryMenuItemSelect(action: string): void {\n\t\t\tthis.$emit('retryExecution', { execution: this.execution, command: action });\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n@import '@/styles/variables';\n\n.WorkflowExecutionsCard {\n\t--execution-list-item-background: var(--color-foreground-xlight);\n\t--execution-list-item-highlight-background: var(--color-warning-tint-1);\n\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding-right: var(--spacing-m);\n\n\t&.active {\n\t\tborder-left: var(--spacing-4xs) var(--border-style-base) transparent !important;\n\n\t\t.executionStatus {\n\t\t\tcolor: var(--color-text-dark) !important;\n\t\t}\n\t}\n\n\t&:hover,\n\t&.active {\n\t\t.executionLink {\n\t\t\t--execution-list-item-background: var(--color-foreground-light);\n\t\t}\n\t}\n\n\t&.new,\n\t&.running {\n\t\t.spinner {\n\t\t\tposition: relative;\n\t\t\ttop: 1px;\n\t\t}\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-running);\n\t\t}\n\t\t.statusLabel,\n\t\t.spinner {\n\t\t\tcolor: var(--color-warning);\n\t\t}\n\t}\n\n\t&.success {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-success);\n\t\t}\n\t}\n\n\t&.waiting {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-waiting);\n\t\t}\n\t\t.statusLabel {\n\t\t\tcolor: var(--color-secondary);\n\t\t}\n\t}\n\n\t&.error {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-error);\n\t\t}\n\t\t.statusLabel {\n\t\t\tcolor: var(--color-danger);\n\t\t}\n\t}\n\n\t&.unknown {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-unknown);\n\t\t}\n\t}\n}\n\n.executionLink {\n\tbackground: var(--execution-list-item-background);\n\tdisplay: flex;\n\twidth: 100%;\n\talign-items: center;\n\tjustify-content: space-between;\n\tcolor: var(--color-text-base);\n\tfont-size: var(--font-size-xs);\n\tpadding: var(--spacing-xs);\n\tpadding-right: var(--spacing-s);\n\tposition: relative;\n\tleft: calc(\n\t\t-1 * var(--spacing-4xs)\n\t); // Hide link border under card border so it's not visible when not hovered\n\n\t&:active {\n\t\t.icon,\n\t\t.statusLabel {\n\t\t\tcolor: var(--color-text-base);\n\t\t}\n\t}\n}\n\n.icons {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.icon {\n\tfont-size: var(--font-size-s);\n\n\t&.retry {\n\t\tsvg {\n\t\t\tcolor: var(--color-primary);\n\t\t}\n\t}\n\n\t&.manual {\n\t\tposition: relative;\n\t\ttop: 1px;\n\t}\n\n\t& + & {\n\t\tmargin-left: var(--spacing-2xs);\n\t}\n}\n.showGap {\n\tmargin-bottom: var(--spacing-2xs);\n\t.executionLink {\n\t\tborder-bottom: 1px solid var(--color-foreground-dark);\n\t}\n}\n</style>\n","<template>\n\t<div\n\t\tref=\"container\"\n\t\t:class=\"['executions-sidebar', $style.container]\"\n\t\tdata-test-id=\"executions-sidebar\"\n\t>\n\t\t<div :class=\"$style.heading\">\n\t\t\t<n8n-heading tag=\"h2\" size=\"medium\" color=\"text-dark\">\n\t\t\t\t{{ $locale.baseText('generic.executions') }}\n\t\t\t</n8n-heading>\n\t\t</div>\n\t\t<div :class=\"$style.controls\">\n\t\t\t<el-checkbox\n\t\t\t\tv-model=\"executionsStore.autoRefresh\"\n\t\t\t\tdata-test-id=\"auto-refresh-checkbox\"\n\t\t\t\t@update:model-value=\"$emit('update:autoRefresh', $event)\"\n\t\t\t>\n\t\t\t\t{{ $locale.baseText('executionsList.autoRefresh') }}\n\t\t\t</el-checkbox>\n\t\t\t<ExecutionsFilter popover-placement=\"left-start\" @filter-changed=\"onFilterChanged\" />\n\t\t</div>\n\t\t<div\n\t\t\tref=\"executionList\"\n\t\t\t:class=\"$style.executionList\"\n\t\t\tdata-test-id=\"current-executions-list\"\n\t\t\t@scroll=\"loadMore(20)\"\n\t\t>\n\t\t\t<div v-if=\"loading\" class=\"mr-l\">\n\t\t\t\t<n8n-loading variant=\"rect\" />\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-if=\"!loading && executions.length === 0\"\n\t\t\t\t:class=\"$style.noResultsContainer\"\n\t\t\t\tdata-test-id=\"execution-list-empty\"\n\t\t\t>\n\t\t\t\t<n8n-text color=\"text-base\" size=\"medium\" align=\"center\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.noResults') }}\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<WorkflowExecutionsCard\n\t\t\t\tv-else-if=\"temporaryExecution\"\n\t\t\t\t:ref=\"`execution-${temporaryExecution.id}`\"\n\t\t\t\t:execution=\"temporaryExecution\"\n\t\t\t\t:data-test-id=\"`execution-details-${temporaryExecution.id}`\"\n\t\t\t\t:show-gap=\"true\"\n\t\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t\t/>\n\t\t\t<TransitionGroup name=\"executions-list\">\n\t\t\t\t<WorkflowExecutionsCard\n\t\t\t\t\tv-for=\"execution in executions\"\n\t\t\t\t\t:key=\"execution.id\"\n\t\t\t\t\t:ref=\"`execution-${execution.id}`\"\n\t\t\t\t\t:execution=\"execution\"\n\t\t\t\t\t:data-test-id=\"`execution-details-${execution.id}`\"\n\t\t\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t\t\t/>\n\t\t\t</TransitionGroup>\n\t\t\t<div v-if=\"loadingMore\" class=\"mr-m\">\n\t\t\t\t<n8n-loading variant=\"p\" :rows=\"1\" />\n\t\t\t</div>\n\t\t</div>\n\t\t<div :class=\"$style.infoAccordion\">\n\t\t\t<WorkflowExecutionsInfoAccordion :initially-expanded=\"false\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport WorkflowExecutionsCard from '@/components/executions/workflow/WorkflowExecutionsCard.vue';\nimport WorkflowExecutionsInfoAccordion from '@/components/executions/workflow/WorkflowExecutionsInfoAccordion.vue';\nimport ExecutionsFilter from '@/components/executions/ExecutionsFilter.vue';\nimport { VIEWS } from '@/constants';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport type { Route } from 'vue-router';\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useExecutionsStore } from '@/stores/executions.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport type { ExecutionFilterType } from '@/Interface';\n\ntype WorkflowExecutionsCardRef = InstanceType<typeof WorkflowExecutionsCard>;\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsSidebar',\n\tcomponents: {\n\t\tWorkflowExecutionsCard,\n\t\tWorkflowExecutionsInfoAccordion,\n\t\tExecutionsFilter,\n\t},\n\tprops: {\n\t\texecutions: {\n\t\t\ttype: Array as PropType<ExecutionSummary[]>,\n\t\t\trequired: true,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tloadingMore: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\ttemporaryExecution: {\n\t\t\ttype: Object as PropType<ExecutionSummary>,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\temits: {\n\t\tretryExecution: null,\n\t\tloadMore: null,\n\t\trefresh: null,\n\t\tfilterUpdated: null,\n\t\treloadExecutions: null,\n\t\t'update:autoRefresh': null,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfilter: {} as ExecutionFilterType,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useExecutionsStore, useWorkflowsStore),\n\t},\n\twatch: {\n\t\t$route(to: Route, from: Route) {\n\t\t\tif (from.name === VIEWS.EXECUTION_PREVIEW && to.name === VIEWS.EXECUTION_HOME) {\n\t\t\t\t// Skip parent route when navigating through executions with back button\n\t\t\t\tthis.$router.go(-1);\n\t\t\t}\n\t\t},\n\t},\n\tmounted() {\n\t\t// On larger screens, we need to load more then first page of executions\n\t\t// for the scroll bar to appear and infinite scrolling is enabled\n\t\tthis.checkListSize();\n\t\tsetTimeout(() => {\n\t\t\tthis.scrollToActiveCard();\n\t\t}, 1000);\n\t},\n\tmethods: {\n\t\tloadMore(limit = 20): void {\n\t\t\tif (!this.loading) {\n\t\t\t\tconst executionsListRef = this.$refs.executionList as HTMLElement | undefined;\n\t\t\t\tif (executionsListRef) {\n\t\t\t\t\tconst diff =\n\t\t\t\t\t\texecutionsListRef.offsetHeight -\n\t\t\t\t\t\t(executionsListRef.scrollHeight - executionsListRef.scrollTop);\n\t\t\t\t\tif (diff > -10 && diff < 10) {\n\t\t\t\t\t\tthis.$emit('loadMore', limit);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonRetryExecution(payload: object) {\n\t\t\tthis.$emit('retryExecution', payload);\n\t\t},\n\t\tonRefresh(): void {\n\t\t\tthis.$emit('refresh');\n\t\t},\n\t\tonFilterChanged(filter: ExecutionFilterType) {\n\t\t\tthis.$emit('filterUpdated', filter);\n\t\t},\n\t\treloadExecutions(): void {\n\t\t\tthis.$emit('reloadExecutions');\n\t\t},\n\t\tcheckListSize(): void {\n\t\t\tconst sidebarContainerRef = this.$refs.container as HTMLElement | undefined;\n\t\t\tconst currentWorkflowExecutionsCardRefs = this.$refs[\n\t\t\t\t`execution-${this.executionsStore.activeExecution?.id}`\n\t\t\t] as WorkflowExecutionsCardRef[] | undefined;\n\n\t\t\t// Find out how many execution card can fit into list\n\t\t\t// and load more if needed\n\t\t\tif (sidebarContainerRef && currentWorkflowExecutionsCardRefs?.length) {\n\t\t\t\tconst cardElement = currentWorkflowExecutionsCardRefs[0].$el as HTMLElement;\n\t\t\t\tconst listCapacity = Math.ceil(sidebarContainerRef.clientHeight / cardElement.clientHeight);\n\n\t\t\t\tif (listCapacity > this.executions.length) {\n\t\t\t\t\tthis.$emit('loadMore', listCapacity - this.executions.length);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tscrollToActiveCard(): void {\n\t\t\tconst executionsListRef = this.$refs.executionList as HTMLElement | undefined;\n\t\t\tconst currentWorkflowExecutionsCardRefs = this.$refs[\n\t\t\t\t`execution-${this.executionsStore.activeExecution?.id}`\n\t\t\t] as WorkflowExecutionsCardRef[] | undefined;\n\n\t\t\tif (\n\t\t\t\texecutionsListRef &&\n\t\t\t\tcurrentWorkflowExecutionsCardRefs?.length &&\n\t\t\t\tthis.executionsStore.activeExecution\n\t\t\t) {\n\t\t\t\tconst cardElement = currentWorkflowExecutionsCardRefs[0].$el as HTMLElement;\n\t\t\t\tconst cardRect = cardElement.getBoundingClientRect();\n\t\t\t\tconst LIST_HEADER_OFFSET = 200;\n\t\t\t\tif (cardRect.top > executionsListRef.offsetHeight) {\n\t\t\t\t\texecutionsListRef.scrollTo({ top: cardRect.top - LIST_HEADER_OFFSET });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.container {\n\tflex: 310px 0 0;\n\tbackground-color: var(--color-background-xlight);\n\tborder-right: var(--border-base);\n\tpadding: var(--spacing-l) 0 var(--spacing-l) var(--spacing-l);\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n}\n\n.heading {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: baseline;\n\tpadding-right: var(--spacing-l);\n}\n\n.controls {\n\tpadding: var(--spacing-s) 0 var(--spacing-xs);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding-right: var(--spacing-m);\n\n\tbutton {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n}\n\n.executionList {\n\tflex: 1;\n\toverflow: auto;\n\tmargin-bottom: var(--spacing-m);\n\tbackground-color: var(--color-background-xlight) !important;\n\n\t// Scrolling fader\n\t&::before {\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\twidth: 270px;\n\t\theight: 6px;\n\t\tbackground: linear-gradient(to bottom, rgba(251, 251, 251, 1) 0%, rgba(251, 251, 251, 0) 100%);\n\t\tz-index: 999;\n\t}\n\n\t// Lower first execution card so fader is not visible when not scrolled\n\t& > div:first-child {\n\t\tmargin-top: 3px;\n\t}\n}\n\n.infoAccordion {\n\tposition: absolute;\n\tbottom: 0;\n\tmargin-left: calc(-1 * var(--spacing-l));\n\tborder-top: var(--border-base);\n\n\t& > div {\n\t\twidth: 309px;\n\t\tbackground-color: var(--color-background-light);\n\t\tmargin-top: 0 !important;\n\t}\n}\n\n.noResultsContainer {\n\twidth: 100%;\n\tmargin-top: var(--spacing-2xl);\n\ttext-align: center;\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.executions-sidebar {\n\t:deep(.el-skeleton__item) {\n\t\theight: 60px;\n\t\tborder-radius: 0;\n\t}\n}\n</style>\n","<template>\n\t<div :class=\"$style.container\">\n\t\t<WorkflowExecutionsSidebar\n\t\t\t:executions=\"executions\"\n\t\t\t:loading=\"loading && !executions.length\"\n\t\t\t:loading-more=\"loadingMore\"\n\t\t\t:temporary-execution=\"temporaryExecution\"\n\t\t\t@update:auto-refresh=\"$emit('update:auto-refresh', $event)\"\n\t\t\t@reload-executions=\"$emit('reload')\"\n\t\t\t@filter-updated=\"$emit('update:filters', $event)\"\n\t\t\t@load-more=\"$emit('load-more')\"\n\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t/>\n\t\t<div v-if=\"!hidePreview\" :class=\"$style.content\">\n\t\t\t<router-view\n\t\t\t\tname=\"executionPreview\"\n\t\t\t\t:execution=\"execution\"\n\t\t\t\t@delete-current-execution=\"onDeleteCurrentExecution\"\n\t\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t\t\t@stop-execution=\"onStopExecution\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport type { PropType } from 'vue';\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useRouter } from 'vue-router';\nimport WorkflowExecutionsSidebar from '@/components/executions/workflow/WorkflowExecutionsSidebar.vue';\nimport {\n\tMAIN_HEADER_TABS,\n\tMODAL_CANCEL,\n\tMODAL_CONFIRM,\n\tPLACEHOLDER_EMPTY_WORKFLOW_ID,\n\tVIEWS,\n} from '@/constants';\nimport type { ExecutionFilterType, IWorkflowDb } from '@/Interface';\nimport type { ExecutionSummary, IDataObject } from 'n8n-workflow';\nimport { useMessage } from '@/composables/useMessage';\nimport { useToast } from '@/composables/useToast';\nimport { getNodeViewTab } from '@/utils/canvasUtils';\nimport { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport { useTagsStore } from '@/stores/tags.store';\nimport { executionFilterToQueryFilter } from '@/utils/executionUtils';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useDebounce } from '@/composables/useDebounce';\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsList',\n\tcomponents: {\n\t\tWorkflowExecutionsSidebar,\n\t},\n\tasync beforeRouteLeave(to, _, next) {\n\t\tif (getNodeViewTab(to) === MAIN_HEADER_TABS.WORKFLOW) {\n\t\t\tnext();\n\t\t\treturn;\n\t\t}\n\t\tif (this.uiStore.stateIsDirty) {\n\t\t\tconst confirmModal = await this.confirm(\n\t\t\t\tthis.$locale.baseText('generic.unsavedWork.confirmMessage.message'),\n\t\t\t\t{\n\t\t\t\t\ttitle: this.$locale.baseText('generic.unsavedWork.confirmMessage.headline'),\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'generic.unsavedWork.confirmMessage.confirmButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tcancelButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'generic.unsavedWork.confirmMessage.cancelButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tshowClose: true,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tif (confirmModal === MODAL_CONFIRM) {\n\t\t\t\tconst saved = await this.workflowHelpers.saveCurrentWorkflow({}, false);\n\t\t\t\tif (saved) {\n\t\t\t\t\tawait this.settingsStore.fetchPromptsData();\n\t\t\t\t}\n\t\t\t\tthis.uiStore.stateIsDirty = false;\n\t\t\t\tnext();\n\t\t\t} else if (confirmModal === MODAL_CANCEL) {\n\t\t\t\tthis.uiStore.stateIsDirty = false;\n\t\t\t\tnext();\n\t\t\t}\n\t\t} else {\n\t\t\tnext();\n\t\t}\n\t},\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tworkflow: {\n\t\t\ttype: Object as PropType<IWorkflowDb>,\n\t\t\trequired: true,\n\t\t},\n\t\texecutions: {\n\t\t\ttype: Array as PropType<ExecutionSummary[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tfilters: {\n\t\t\ttype: Object as PropType<ExecutionFilterType>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\texecution: {\n\t\t\ttype: Object as PropType<ExecutionSummary>,\n\t\t\tdefault: null,\n\t\t},\n\t\tloadingMore: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: [\n\t\t'execution:delete',\n\t\t'execution:stop',\n\t\t'execution:retry',\n\t\t'update:auto-refresh',\n\t\t'update:filters',\n\t\t'load-more',\n\t\t'reload',\n\t],\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\t\tconst router = useRouter();\n\t\tconst workflowHelpers = useWorkflowHelpers({ router });\n\t\tconst { callDebounced } = useDebounce();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t\tworkflowHelpers,\n\t\t\tcallDebounced,\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTagsStore, useNodeTypesStore, useSettingsStore, useUIStore),\n\t\ttemporaryExecution(): ExecutionSummary | undefined {\n\t\t\tconst isTemporary = !this.executions.find((execution) => execution.id === this.execution?.id);\n\t\t\treturn isTemporary ? this.execution : undefined;\n\t\t},\n\t\thidePreview(): boolean {\n\t\t\treturn this.loading || (!this.execution && this.executions.length);\n\t\t},\n\t\tfilterApplied(): boolean {\n\t\t\treturn this.filters.status !== 'all';\n\t\t},\n\t\tworkflowDataNotLoaded(): boolean {\n\t\t\treturn this.workflow.id === PLACEHOLDER_EMPTY_WORKFLOW_ID && this.workflow.name === '';\n\t\t},\n\t\trequestFilter(): IDataObject {\n\t\t\treturn executionFilterToQueryFilter({\n\t\t\t\t...this.filters,\n\t\t\t\tworkflowId: this.workflow.id,\n\t\t\t});\n\t\t},\n\t},\n\twatch: {\n\t\texecution(value: ExecutionSummary) {\n\t\t\tif (!value) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.$router\n\t\t\t\t.push({\n\t\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\t\tparams: { name: this.workflow.id, executionId: value.id },\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onDeleteCurrentExecution(): Promise<void> {\n\t\t\tthis.$emit('execution:delete', this.execution.id);\n\t\t},\n\t\tasync onStopExecution(): Promise<void> {\n\t\t\tthis.$emit('execution:stop', this.execution.id);\n\t\t},\n\t\tasync onRetryExecution(payload: { execution: ExecutionSummary; command: string }) {\n\t\t\tconst loadWorkflow = payload.command === 'current-workflow';\n\n\t\t\tthis.$emit('execution:retry', {\n\t\t\t\tid: payload.execution.id,\n\t\t\t\tloadWorkflow,\n\t\t\t});\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.container {\n\tdisplay: flex;\n\theight: 100%;\n\twidth: 100%;\n}\n\n.content {\n\tflex: 1;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport WorkflowExecutionsList from '@/components/executions/workflow/WorkflowExecutionsList.vue';\nimport { useExecutionsStore } from '@/stores/executions.store';\nimport { useI18n } from '@/composables/useI18n';\nimport type { ExecutionFilterType, IWorkflowDb } from '@/Interface';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport { NO_NETWORK_ERROR_CODE } from '@/utils/apiUtils';\nimport { useToast } from '@/composables/useToast';\nimport { VIEWS } from '@/constants';\nimport { useRoute, useRouter } from 'vue-router';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport { useDebounce } from '@/composables/useDebounce';\nimport { storeToRefs } from 'pinia';\nimport { useTelemetry } from '@/composables/useTelemetry';\n\nconst executionsStore = useExecutionsStore();\nconst workflowsStore = useWorkflowsStore();\nconst nodeTypesStore = useNodeTypesStore();\nconst i18n = useI18n();\nconst telemetry = useTelemetry();\nconst route = useRoute();\nconst router = useRouter();\nconst toast = useToast();\nconst { callDebounced } = useDebounce();\n\nconst { filters } = storeToRefs(executionsStore);\n\nconst loading = ref(false);\nconst loadingMore = ref(false);\n\nconst workflow = ref<IWorkflowDb | undefined>();\n\nconst workflowId = computed(() => {\n\treturn (route.params.name as string) || workflowsStore.workflowId;\n});\n\nconst executionId = computed(() => route.params.executionId as string);\n\nconst executions = computed(() => [\n\t...(executionsStore.currentExecutionsByWorkflowId[workflowId.value] ?? []),\n\t...(executionsStore.executionsByWorkflowId[workflowId.value] ?? []),\n]);\n\nconst execution = computed(() => {\n\treturn executions.value.find((e) => e.id === executionId.value) ?? currentExecution.value;\n});\n\nconst currentExecution = ref<ExecutionSummary | undefined>();\n\nwatch(\n\t() => workflowId.value,\n\tasync () => {\n\t\tawait fetchWorkflow();\n\t},\n);\n\nwatch(\n\t() => executionId.value,\n\tasync () => {\n\t\tawait fetchExecution();\n\t},\n);\n\nonMounted(async () => {\n\tawait nodeTypesStore.loadNodeTypesIfNotLoaded();\n\tawait Promise.all([\n\t\tnodeTypesStore.loadNodeTypesIfNotLoaded(),\n\t\tfetchWorkflow(),\n\t\texecutionsStore.initialize(workflowId.value),\n\t]);\n\tawait fetchExecution();\n\tawait initializeRoute();\n\tdocument.addEventListener('visibilitychange', onDocumentVisibilityChange);\n});\n\nonBeforeUnmount(() => {\n\texecutionsStore.reset();\n\tdocument.removeEventListener('visibilitychange', onDocumentVisibilityChange);\n});\n\nasync function fetchExecution() {\n\tif (!executionId.value) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tcurrentExecution.value = (await executionsStore.fetchExecution(\n\t\t\texecutionId.value,\n\t\t)) as ExecutionSummary;\n\t\texecutionsStore.activeExecution = currentExecution.value;\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('nodeView.showError.openExecution.title'));\n\t}\n}\n\nfunction onDocumentVisibilityChange() {\n\tif (document.visibilityState === 'hidden') {\n\t\texecutionsStore.stopAutoRefreshInterval();\n\t} else {\n\t\tvoid executionsStore.startAutoRefreshInterval(workflowId.value);\n\t}\n}\n\nasync function initializeRoute() {\n\tif (route.name === VIEWS.EXECUTION_HOME && executions.value.length > 0 && workflow.value) {\n\t\tawait router\n\t\t\t.push({\n\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\tparams: { name: workflow.value.id, executionId: executions.value[0].id },\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nasync function fetchWorkflow() {\n\tlet data: IWorkflowDb | undefined;\n\ttry {\n\t\t// @TODO Retrieve from store if exists\n\t\tdata = await workflowsStore.fetchWorkflow(workflowId.value);\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('nodeView.showError.openWorkflow.title'));\n\t\treturn;\n\t}\n\n\tif (!data) {\n\t\tthrow new Error(\n\t\t\ti18n.baseText('nodeView.workflowWithIdCouldNotBeFound', {\n\t\t\t\tinterpolate: { workflowId: workflowId.value },\n\t\t\t}),\n\t\t);\n\t}\n\n\tworkflow.value = data;\n}\n\nasync function onAutoRefreshToggle(value: boolean) {\n\tif (value) {\n\t\tawait executionsStore.startAutoRefreshInterval(workflowId.value);\n\t} else {\n\t\texecutionsStore.stopAutoRefreshInterval();\n\t}\n}\n\nasync function onRefreshData() {\n\tif (!workflowId.value) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait executionsStore.fetchExecutions({\n\t\t\t...executionsStore.executionsFilters,\n\t\t\tworkflowId: workflowId.value,\n\t\t});\n\t} catch (error) {\n\t\tif (error.errorCode === NO_NETWORK_ERROR_CODE) {\n\t\t\ttoast.showMessage(\n\t\t\t\t{\n\t\t\t\t\ttitle: i18n.baseText('executionsList.showError.refreshData.title'),\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tduration: 3500,\n\t\t\t\t},\n\t\t\t\tfalse,\n\t\t\t);\n\t\t} else {\n\t\t\ttoast.showError(error, i18n.baseText('executionsList.showError.refreshData.title'));\n\t\t}\n\t}\n}\n\nasync function onUpdateFilters(newFilters: ExecutionFilterType) {\n\texecutionsStore.reset();\n\texecutionsStore.setFilters(newFilters);\n\tawait executionsStore.initialize(workflowId.value);\n}\n\nasync function onExecutionStop(id: string) {\n\ttry {\n\t\tawait executionsStore.stopCurrentExecution(id);\n\n\t\ttoast.showMessage({\n\t\t\ttitle: i18n.baseText('executionsList.showMessage.stopExecution.title'),\n\t\t\tmessage: i18n.baseText('executionsList.showMessage.stopExecution.message', {\n\t\t\t\tinterpolate: { activeExecutionId: id },\n\t\t\t}),\n\t\t\ttype: 'success',\n\t\t});\n\n\t\tawait onRefreshData();\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.stopExecution.title'));\n\t}\n}\n\nasync function onExecutionDelete(id: string) {\n\tloading.value = true;\n\ttry {\n\t\tconst executionIndex = executions.value.findIndex((e: ExecutionSummary) => e.id === id);\n\n\t\tconst nextExecution =\n\t\t\texecutions.value[executionIndex + 1] ||\n\t\t\texecutions.value[executionIndex - 1] ||\n\t\t\texecutions.value[0];\n\n\t\tawait executionsStore.deleteExecutions({\n\t\t\tids: [id],\n\t\t});\n\n\t\tif (workflow.value) {\n\t\t\tif (executions.value.length > 0) {\n\t\t\t\tawait router\n\t\t\t\t\t.replace({\n\t\t\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\t\t\tparams: { name: workflow.value.id, executionId: nextExecution.id },\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t\t} else {\n\t\t\t\t// If there are no executions left, show empty state\n\t\t\t\tawait router.replace({\n\t\t\t\t\tname: VIEWS.EXECUTION_HOME,\n\t\t\t\t\tparams: { name: workflow.value.id },\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tloading.value = false;\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.handleDeleteSelected.title'));\n\t\treturn;\n\t}\n\tloading.value = false;\n\n\ttoast.showMessage({\n\t\ttitle: i18n.baseText('executionsList.showMessage.handleDeleteSelected.title'),\n\t\ttype: 'success',\n\t});\n}\n\nasync function onExecutionRetry(payload: { id: string; loadWorkflow: boolean }) {\n\ttoast.showMessage({\n\t\ttitle: i18n.baseText('executionDetails.runningMessage'),\n\t\ttype: 'info',\n\t\tduration: 2000,\n\t});\n\n\tawait retryExecution(payload);\n\tawait onRefreshData();\n\n\ttelemetry.track('User clicked retry execution button', {\n\t\tworkflow_id: workflow.value?.id,\n\t\texecution_id: payload.id,\n\t\tretry_type: payload.loadWorkflow ? 'current' : 'original',\n\t});\n}\n\nasync function retryExecution(payload: { id: string; loadWorkflow: boolean }) {\n\ttry {\n\t\tconst retrySuccessful = await executionsStore.retryExecution(payload.id, payload.loadWorkflow);\n\n\t\tif (retrySuccessful) {\n\t\t\ttoast.showMessage({\n\t\t\t\ttitle: i18n.baseText('executionsList.showMessage.retrySuccessfulTrue.title'),\n\t\t\t\ttype: 'success',\n\t\t\t});\n\t\t} else {\n\t\t\ttoast.showMessage({\n\t\t\t\ttitle: i18n.baseText('executionsList.showMessage.retrySuccessfulFalse.title'),\n\t\t\t\ttype: 'error',\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.retryExecution.title'));\n\t}\n}\n\nasync function onLoadMore(): Promise<void> {\n\tif (!loadingMore.value) {\n\t\tawait callDebounced(loadMore, { debounceTime: 1000 });\n\t}\n}\n\nasync function loadMore(): Promise<void> {\n\tif (\n\t\t!!executionsStore.executionsFilters.status?.includes('running') ||\n\t\texecutions.value.length >= executionsStore.executionsCount\n\t) {\n\t\treturn;\n\t}\n\n\tloadingMore.value = true;\n\n\tlet lastId: string | undefined;\n\tif (executions.value.length !== 0) {\n\t\tconst lastItem = executions.value.slice(-1)[0];\n\t\tlastId = lastItem.id;\n\t}\n\n\ttry {\n\t\tawait executionsStore.fetchExecutions(executionsStore.executionsFilters, lastId);\n\t} catch (error) {\n\t\tloadingMore.value = false;\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.loadMore.title'));\n\t\treturn;\n\t}\n\n\tloadingMore.value = false;\n}\n</script>\n<template>\n\t<WorkflowExecutionsList\n\t\tv-if=\"workflow\"\n\t\t:executions=\"executions\"\n\t\t:execution=\"execution\"\n\t\t:filters=\"filters\"\n\t\t:workflow=\"workflow\"\n\t\t:loading=\"loading\"\n\t\t:loading-more=\"loadingMore\"\n\t\t@execution:stop=\"onExecutionStop\"\n\t\t@execution:delete=\"onExecutionDelete\"\n\t\t@execution:retry=\"onExecutionRetry\"\n\t\t@update:filters=\"onUpdateFilters\"\n\t\t@update:auto-refresh=\"onAutoRefreshToggle\"\n\t\t@load-more=\"onLoadMore\"\n\t\t@reload=\"onRefreshData\"\n\t/>\n</template>\n"],"names":["_sfc_main$3","defineComponent","ExecutionsTime","useExecutionHelpers","mapStores","useWorkflowsStore","VIEWS","action","_resolveComponent","$style","_normalizeClass","executionUIDetails","_ctx","highlight","_createVNode","_component_router_link","executionPreviewViewName","_withCtx","_createElementVNode","_component_n8n_text","_createTextVNode","_toDisplayString","_openBlock","_createBlock","_component_n8n_spinner","_createCommentVNode","execution","_component_ExecutionsTime","_createElementBlock","_hoisted_1","isRetriable","onRetryMenuItemSelect","_component_n8n_tooltip","_sfc_main$2","WorkflowExecutionsCard","WorkflowExecutionsInfoAccordion","ExecutionsFilter","useExecutionsStore","to","from","limit","executionsListRef","diff","payload","filter","sidebarContainerRef","currentWorkflowExecutionsCardRefs","_a","cardElement","listCapacity","cardRect","LIST_HEADER_OFFSET","_hoisted_2","_component_WorkflowExecutionsInfoAccordion","_component_n8n_heading","_component_el_checkbox","_cache","$event","_component_ExecutionsFilter","loadMore","loading","_component_n8n_loading","temporaryExecution","onRetryExecution","_TransitionGroup","_Fragment","_renderList","_component_WorkflowExecutionsCard","loadingMore","_sfc_main$1","WorkflowExecutionsSidebar","_","next","getNodeViewTab","MAIN_HEADER_TABS","confirmModal","MODAL_CONFIRM","MODAL_CANCEL","externalHooks","useExternalHooks","router","useRouter","workflowHelpers","useWorkflowHelpers","callDebounced","useDebounce","useToast","useMessage","useTagsStore","useNodeTypesStore","useSettingsStore","useUIStore","PLACEHOLDER_EMPTY_WORKFLOW_ID","executionFilterToQueryFilter","value","loadWorkflow","$emit","hidePreview","onStopExecution","executionsStore","workflowsStore","nodeTypesStore","i18n","useI18n","telemetry","useTelemetry","route","useRoute","toast","filters","storeToRefs","ref","workflow","workflowId","computed","executionId","executions","e","currentExecution","watch","fetchWorkflow","fetchExecution","onMounted","initializeRoute","onDocumentVisibilityChange","onBeforeUnmount","error","data","onAutoRefreshToggle","onRefreshData","NO_NETWORK_ERROR_CODE","onUpdateFilters","newFilters","onExecutionStop","id","onExecutionDelete","executionIndex","nextExecution","onExecutionRetry","retryExecution","onLoadMore","lastId"],"mappings":"olDA6FA,MAAAA,GAAeC,EAAgB,CAC9B,KAAM,yBACN,WAAY,CACX,eAAAC,EACD,EACA,MAAO,CACN,UAAW,CACV,KAAM,OACN,SAAU,EACX,EACA,UAAW,CACV,KAAM,QACN,QAAS,EACV,EACA,QAAS,CACR,KAAM,QACN,QAAS,EACV,CACD,EACA,OAAQ,CAGA,MAAA,CACN,iBAHwBC,IAGxB,CAEF,EACA,SAAU,CACT,GAAGC,EAAUC,CAAiB,EAC9B,iBAA0B,CACzB,OAAQ,KAAK,OAAO,OAAO,MAAmB,KAAK,eAAe,UACnE,EACA,uBAAkC,CAC1B,MAAA,CACN,CACC,GAAI,mBACJ,MAAO,KAAK,QAAQ,SAAS,gDAAgD,CAC9E,EACA,CACC,GAAI,oBACJ,MAAO,KAAK,QAAQ,SAAS,0CAA0C,CACxE,CAAA,CAEF,EACA,oBAAuC,CACtC,OAAO,KAAK,iBAAiB,aAAa,KAAK,SAAS,CACzD,EACA,UAAoB,CACnB,OAAO,KAAK,UAAU,KAAO,KAAK,OAAO,OAAO,WACjD,EACA,aAAuB,CACtB,OAAO,KAAK,iBAAiB,qBAAqB,KAAK,SAAS,CACjE,EACA,0BAA2B,CAC1B,OAAOC,EAAM,iBACd,CACD,EACA,QAAS,CACR,sBAAsBC,EAAsB,CACtC,KAAA,MAAM,iBAAkB,CAAE,UAAW,KAAK,UAAW,QAASA,EAAQ,CAC5E,CACD,CACD,CAAC,ixBAzJAC,EA+EM,aAAA,sBA9EsCC,MAAOC,EAAA,CAAmCD,iBAAa,GAAA,CAAiBA,SAAOE,sBAAmB,EAAA,GAAkBF,CAAAA,EAAAA,OAAO,QAASG,EAAGC,SAAAA,CAAeJ,SAAOG,EAAiB,mBAAA,IAAA,CAAA,EAAA,GAAA,CAAAA,EAAA,OAAA,SAAA,EAAAA,EAAA,2CAWrNE,EAAAC,EAAA,CAAA,MAAcC,EAAwBJ,EAAA,OAAA,aAAA,EAAA,GAAA,iCAIxC,OAAA,CAAA,KAAAA,EAAA,gBAA4BD,cAAmB,UAAI,EAAA,CAAA,EAjBvD,6BA0DSC,EAAA,mBAAA,IAAA,EAAA,SAvCKK,EAnBd,IAAA,CAAAC,EAAA,MAAA,CAoBI,MAEWR,EAAAE,EAAA,OAAA,WAAA,CAAA,EAAA,CAF4BE,EAAAK,EAAA,CAAE,MAAK,YAAS,KAAA,GAAA,KAAA,SApB3D,eAAA,gBAAA,EAAA,gBAAAC,EAAAC,EAAAT,EAAA,mBAAA,SAAA,EAAA,CAAA,CAAA,CAAA,EAuBI,EAAA,CAAA,CAAA,WAEQD,MAAAA,EAAAA,EAAmB,OAAI,eAAA,CAAA,EAAA,CAzBnCC,EAAA,mBAAA,OAAA,WAAAU,EA0BkB,EAAAC,EAAAC,EAAA,CACX,IAAK,EAAA,KAAA,QA3BZ,MAAAd,EAAA,CAAAE,EAAA,OAAA,QAAA,QAAA,CAAA,CAAA,EA6BK,KAEa,EAFF,CAAA,OAAA,CAAA,GAAAa,EA7BhB,GA6BuBhB,EAAAA,EAAAA,EAAyBU,EAAO,CAAA,MAAAT,EAAAE,EAAA,OAAA,WAAA,EA7BvD,KAAA,OAAA,EAAA,gBAAAQ,EAAAC,EAAAT,EAAA,mBAAA,KAAA,EAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,EAkCYD,EAAAA,CAAAA,OAAAA,CAAAA,EAAAA,EAAAA,IADPU,EAOW,GAAA,EAAA,GAAA,EAAAT,EAxChB,uCAmCsB,EAAAW,EAAAJ,EAAA,CAChB,IAAI,EAAA,MAAAP,EAAA,SAAA,YAAA,YApCV,KAAA,OAAA,EAAA,SAuCMK,EAAoD,IAAA,CAAAG,EAAvBM,EAAUd,EAAS,QAAA,SAAA,qCAAA,CAAA,EAAA,IAAA,CAAA,EAAAE,EAAAa,EAAA,mCAvCtD,EAAA,KAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EA0CiBhB,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,OAAAA,CAAAA,GAAAA,EA1CjB,yCA2CsBY,EAAAJ,EAAA,CAChB,IAAI,EAAA,MAAAP,EAAA,SAAA,YAAA,YA5CV,KAAA,OAAA,EAAA,CA+C+FD,QAAAA,EAAAA,IAAAA,OAAAA,OAAAA,EAAAA,EAAAA,EAAAA,QAAAA,SAAAA,uCAAAA,iFA/C/F,EAAA,CAAA,EAAA,EAAA,CAAA,OAAA,CAAA,GAqDee,EAAc,GAAA,EAAA,CAAA,EAAA,CAAA,EACxBd,EAAA,UAAA,OAEW,aAFegB,EAAA,MAAAC,GAAA,CAAAf,EAAmCK,EAAO,CAAA,MAAAP,EAAA,SAAA,YAAA,YAtDzE,KAAA,OAAA,EAAA,gBAAAQ,EAAAC,EAAAT,EAAA,QAAA,SAAA,wBAAA,CAAA,EAAA,KAAAS,EAAAT,EAAA,UAAA,OAAA,EAAA,CAAA,CAAA,CAAA,KAAA,EAAA,EAAA,CAAA,OAAA,CAAA,CAAA,CAAA,GA2DGa,EAmBM,GAAA,EAAA,CAnBA,EAAA,CAAA,EAAAP,EAAA,MAAA,OAEEY,EAAWlB,EAAA,OAAA,KAAA,CAAA,EAAA,CA7DtBA,EAAA,aAAAU,IAAAC,EA8Dcd,EAAoB,CAC5B,IAAK,EACN,QAAe,CAAMG,EAAA,OAAA,KAAAA,EAAA,OAAA,KAAA,CAAA,EACrB,MAAAA,EAAA,sBACC,iBAAQmB,OAAAA,eAAAA,yBAlEd,SAAAnB,EAAA,qBAAA,EAoEuBc,KAAAA,EAAU,CAAI,QAAA,QAAA,UAAA,CAAA,GAAAD,EAAjC,GASc,EAAA,EA7ElBb,EAAA,UAAA,OAAA,UAAAU,IAoE8DC,EAAKS,EAAA,CAAA,IAAA,EACnD,UAAO,KAAA,EAAA,gBArEvBd,EA4EO,OAAA,KAAAG,EAAAT,EAAA,QAAA,SAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAJF,QAAAK,EAAA,IAAA,CAAAL,EAxEL,iCA0EeH,EAAoB,CAC7B,IAAI,EAAA,MAAAC,EAAA,CAAAE,EAAA,OAAA,KAAAA,EAAA,OAAA,MAAA,CAAA,EA3EV,KAAA,OAAA,EAAA,KAAA,EAAA,CAAA,OAAA,CAAA,GAAAa,EAAA,GAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA,GAAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,4HCmFAQ,GAAehC,EAAgB,CAC9B,KAAM,4BACN,WAAY,CACX,uBAAAiC,GACA,gCAAAC,GACA,iBAAAC,EACD,EACA,MAAO,CACN,WAAY,CACX,KAAM,MACN,SAAU,EACX,EACA,QAAS,CACR,KAAM,QACN,QAAS,EACV,EACA,YAAa,CACZ,KAAM,QACN,QAAS,EACV,EACA,mBAAoB,CACnB,KAAM,OACN,QAAS,IACV,CACD,EACA,MAAO,CACN,eAAgB,KAChB,SAAU,KACV,QAAS,KACT,cAAe,KACf,iBAAkB,KAClB,qBAAsB,IACvB,EACA,MAAO,CACC,MAAA,CACN,OAAQ,CAAC,CAAA,CAEX,EACA,SAAU,CACT,GAAGhC,EAAUiC,EAAoBhC,CAAiB,CACnD,EACA,MAAO,CACN,OAAOiC,EAAWC,EAAa,CAC1BA,EAAK,OAASjC,EAAM,mBAAqBgC,EAAG,OAAShC,EAAM,gBAEzD,KAAA,QAAQ,GAAG,EAAE,CAEpB,CACD,EACA,SAAU,CAGT,KAAK,cAAc,EACnB,WAAW,IAAM,CAChB,KAAK,mBAAmB,GACtB,GAAI,CACR,EACA,QAAS,CACR,SAASkC,EAAQ,GAAU,CACtB,GAAA,CAAC,KAAK,QAAS,CACZ,MAAAC,EAAoB,KAAK,MAAM,cACrC,GAAIA,EAAmB,CACtB,MAAMC,EACLD,EAAkB,cACjBA,EAAkB,aAAeA,EAAkB,WACjDC,EAAO,KAAOA,EAAO,IACnB,KAAA,MAAM,WAAYF,CAAK,CAE9B,CACD,CACD,EACA,iBAAiBG,EAAiB,CAC5B,KAAA,MAAM,iBAAkBA,CAAO,CACrC,EACA,WAAkB,CACjB,KAAK,MAAM,SAAS,CACrB,EACA,gBAAgBC,EAA6B,CACvC,KAAA,MAAM,gBAAiBA,CAAM,CACnC,EACA,kBAAyB,CACxB,KAAK,MAAM,kBAAkB,CAC9B,EACA,eAAsB,OACf,MAAAC,EAAsB,KAAK,MAAM,UACjCC,EAAoC,KAAK,MAC9C,cAAaC,EAAA,KAAK,gBAAgB,kBAArB,YAAAA,EAAsC,EAAE,EACtD,EAII,GAAAF,IAAuBC,GAAA,MAAAA,EAAmC,QAAQ,CAC/D,MAAAE,EAAcF,EAAkC,CAAC,EAAE,IACnDG,EAAe,KAAK,KAAKJ,EAAoB,aAAeG,EAAY,YAAY,EAEtFC,EAAe,KAAK,WAAW,QAClC,KAAK,MAAM,WAAYA,EAAe,KAAK,WAAW,MAAM,CAE9D,CACD,EACA,oBAA2B,OACpB,MAAAR,EAAoB,KAAK,MAAM,cAC/BK,EAAoC,KAAK,MAC9C,cAAaC,EAAA,KAAK,gBAAgB,kBAArB,YAAAA,EAAsC,EAAE,EACtD,EAEA,GACCN,IACAK,GAAA,MAAAA,EAAmC,SACnC,KAAK,gBAAgB,gBACpB,CAEK,MAAAI,EADcJ,EAAkC,CAAC,EAAE,IAC5B,wBACvBK,EAAqB,IACvBD,EAAS,IAAMT,EAAkB,cACpCA,EAAkB,SAAS,CAAE,IAAKS,EAAS,IAAMC,EAAoB,CAEvE,CACD,CACD,CACD,CAAC,sQAhLsBtB,GAAY,CAAA,IAAA,gBA8BRuB,GAAY,CAAA,IAAA,8KAOhCC,EAAA7C,EAAA,iCAAA,EA7DC,OAAAc,EAAA,EAAyBb,EAAAA,MAAAA,CAC/B,IAAA,YAAA,MAAAC,EAAA,CAAA,qBAAAE,EAAA,OAAA,SAAA,CAAA,EAEA,eAAA,oBAAA,EAAA,UACC,MAEcF,EAAAE,EAAA,OAAA,OAAA,CAAA,EAAA,GAFa0C,EAAQ,CAAC,IAAK,KAAA,KAAA,SAP5C,MAAA,WAAA,EAAA,gBAAAlC,EAAAC,EAAAT,EAAA,QAAA,SAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAWE,CAAA,CAAM,EAAA,CAAA,EAAAM,EAAA,MAAA,CACL,MAMcR,EAAAE,EAAA,OAAA,QAAA,CAAA,EAAA,CAlBjBE,EAAAyC,EAAA,CAAA,WAAA3C,EAAA,gBAAA,mFAcI4C,EAAA,CAAA,IAAaA,EAAuB,CAAA,EAAAC,GAAA7C,EAAA,MAAA,qBAAA6C,CAAA,EAAA,EAdxC,eAAA,uBAAA,EAAA,gBAAArC,EAAAC,EAAAT,EAAA,QAAA,SAAA,4BAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAmBG,EAAA,CAAA,EAAkB,EAAA,CAAA,YAAA,CAAA,EAAAE,EAAgC4C,EAA+B,CAAA,oBAAA,8CAyC5E,EAAA,KAAA,EAAA,CAAA,iBAAA,CAAA,CAtCL,EAAA,CAAA,EAAAxC,EAtBH,MAuBWT,CACR,IAAA,gBACC,QAAMG,EAAE+C,OAAAA,aAAAA,EAAAA,eAAAA,mCAEEC,EAAO,CAAA,IAAAJ,EAAA,CAAA,EAAAC,GAAA7C,EAAA,SAAA,EAAA,EAAA,EAAA,CACjBA,EAAA,SAAAU,EAAA,EAAAM,EAAA,MAAAC,GAAA,CA5BJf,EAAA+C,EAAA,CAAA,QAAA,MAAA,CAAA,CAAA,CA8BG,GAAApC,EAAA,GAAA,EAAA,EAAA,CAAAb,EA9BH,wCAgCYH,MAAO,CACf,IAAA,EAAA,MAAAC,EAAAE,EAAA,OAAA,kBAAA,EAEA,eAEW,sBAAA,EAAA,GAFsBO,EAAQ,CAAC,MAAM,YAAA,KAAA,SAnCpD,MAAA,QAAA,EAAA,gBAAAC,EAAAC,EAAAT,EAAA,QAAA,SAAA,iCAAA,CAAA,EAAA,CAAA,CAAA,CAAA,KAwCekD,CAAAA,CAAAA,EAxCf,CAAA,GAAAlD,EAAA,oBAAAU,MAyCuBwC,EAAqB,CACvC,IAAA,EACA,iBAAYlD,EAAuBkD,mBAAAA,EAAAA,GACnC,UAAQlD,EAAM,mBACd,eAAe,qBAAEmD,EAAgB,mBAAA,EAAA,GAAA,WAAA,GA7CtC,iBAAAnD,EAAA,gBAAA,EAwDqB,KAAA,EAAA,CAAA,YAAA,eATI,kBAAiB,CAAA,GA/C1Ca,EAiDoC,GAAA,EAAA,EAAAX,EAAAkD,GADhC,yBAhDJ,CAAA,QAAA/C,EAAA,IAAA,EAkDWK,EAAA,EAAA,EAAUM,EAAEqC,GAAA,KAAAC,GAAAtD,EAAA,WAAAc,IAlDvBJ,EAAA,EAAAC,EAAA4C,EAAA,CAmDM,IAAGzC,EAAA,GACH,QAAS,GACT,IAAY,aAAAA,EAAA,EAAA,GACZ,UAAAA,EAAA,eAAA,qBAAAA,EAAA,EAAA,gGAtDN,EAAA,GAAA,EAAA,CAAA,EAyDc0C,EAAAA,CAAAA,CAAAA,EACVxD,EAAA,aAAAU,EAAA,EAAqBM,EAAG,MAAAwB,GAAA,CAAStC,EAAA+C,EAAA,CAAA,QAAA,UA1DrC,CAAA,CAAA,CAAA,GA6DEpC,EAEM,GAAA,EAAA,CAFA,EAAA,EAAA,EAAAP,EAAA,MAAA,CACL,MAA+DR,EAAAE,EAAA,OAAA,aAAA,CAAA,EAAA,0ICVlEyD,GAAepE,EAAgB,CAC9B,KAAM,yBACN,WAAY,CACX,0BAAAqE,EACD,EACA,MAAM,iBAAiBhC,EAAIiC,EAAGC,EAAM,CACnC,GAAIC,GAAenC,CAAE,IAAMoC,GAAiB,SAAU,CAChDF,IACL,MACD,CACI,GAAA,KAAK,QAAQ,aAAc,CACxB,MAAAG,EAAe,MAAM,KAAK,QAC/B,KAAK,QAAQ,SAAS,4CAA4C,EAClE,CACC,MAAO,KAAK,QAAQ,SAAS,6CAA6C,EAC1E,KAAM,UACN,kBAAmB,KAAK,QAAQ,SAC/B,sDACD,EACA,iBAAkB,KAAK,QAAQ,SAC9B,qDACD,EACA,UAAW,EACZ,CAAA,EAGGA,IAAiBC,IACN,MAAM,KAAK,gBAAgB,oBAAoB,CAAA,EAAI,EAAK,GAE/D,MAAA,KAAK,cAAc,mBAE1B,KAAK,QAAQ,aAAe,GACvBJ,KACKG,IAAiBE,KAC3B,KAAK,QAAQ,aAAe,GACvBL,IACN,MAEKA,GAEP,EACA,MAAO,CACN,QAAS,CACR,KAAM,QACN,QAAS,EACV,EACA,SAAU,CACT,KAAM,OACN,SAAU,EACX,EACA,WAAY,CACX,KAAM,MACN,QAAS,IAAM,CAAC,CACjB,EACA,QAAS,CACR,KAAM,OACN,QAAS,KAAO,CAAA,EACjB,EACA,UAAW,CACV,KAAM,OACN,QAAS,IACV,EACA,YAAa,CACZ,KAAM,QACN,QAAS,EACV,CACD,EACA,MAAO,CACN,mBACA,iBACA,kBACA,sBACA,iBACA,YACA,QACD,EACA,OAAQ,CACP,MAAMM,EAAgBC,KAChBC,EAASC,IACTC,EAAkBC,GAAmB,CAAE,OAAAH,CAAQ,CAAA,EAC/C,CAAE,cAAAI,GAAkBC,IAEnB,MAAA,CACN,cAAAP,EACA,gBAAAI,EACA,cAAAE,EACA,GAAGE,EAAS,EACZ,GAAGC,GAAW,CAAA,CAEhB,EACA,SAAU,CACT,GAAGnF,EAAUoF,GAAcC,EAAmBC,GAAkBC,EAAU,EAC1E,oBAAmD,CAE3C,MADa,CAAC,KAAK,WAAW,KAAMjE,GAAc,OAAA,OAAAA,EAAU,OAAOqB,EAAA,KAAK,YAAL,YAAAA,EAAgB,IAAE,EACvE,KAAK,UAAY,MACvC,EACA,aAAuB,CACtB,OAAO,KAAK,SAAY,CAAC,KAAK,WAAa,KAAK,WAAW,MAC5D,EACA,eAAyB,CACjB,OAAA,KAAK,QAAQ,SAAW,KAChC,EACA,uBAAiC,CAChC,OAAO,KAAK,SAAS,KAAO6C,IAAiC,KAAK,SAAS,OAAS,EACrF,EACA,eAA6B,CAC5B,OAAOC,GAA6B,CACnC,GAAG,KAAK,QACR,WAAY,KAAK,SAAS,EAAA,CAC1B,CACF,CACD,EACA,MAAO,CACN,UAAUC,EAAyB,CAC7BA,GAIL,KAAK,QACH,KAAK,CACL,KAAMxF,EAAM,kBACZ,OAAQ,CAAE,KAAM,KAAK,SAAS,GAAI,YAAawF,EAAM,EAAG,CAAA,CACxD,EACA,MAAM,IAAM,CAAA,CAAE,CACjB,CACD,EACA,QAAS,CACR,MAAM,0BAA0C,CAC/C,KAAK,MAAM,mBAAoB,KAAK,UAAU,EAAE,CACjD,EACA,MAAM,iBAAiC,CACtC,KAAK,MAAM,iBAAkB,KAAK,UAAU,EAAE,CAC/C,EACA,MAAM,iBAAiBnD,EAA2D,CAC3E,MAAAoD,EAAepD,EAAQ,UAAY,mBAEzC,KAAK,MAAM,kBAAmB,CAC7B,GAAIA,EAAQ,UAAU,GACtB,aAAAoD,CAAA,CACA,CACF,CACD,CACD,CAAC,+IAjMAvF,EAqBM,aAAA,sBApBL,MAUEE,EAAAE,EAAA,OAAA,SAAA,CAAA,EAAA,GARSgD,EAA6B,CACtC,WAAcQ,EAAAA,WACd,QAAqBN,EAAAA,SAAAA,CAAAA,EAAAA,WAAAA,OACrB,eAAAlD,EAAA,YACA,sBAAiBA,EAAA,mBACjB,uBAAc4C,EAAEwC,CAAAA,IAAAA,EAAAA,CAAAA,EAAAA,GAAAA,EAAK,MAAyB,sBAAAvC,CAAA,GAC9C,mBAASD,eAAEwC,EAAK,MAAA,QAAA,GAChB,gBAAexC,EAAEO,CAAgB,IAAAP,EAAA,CAAA,EAAAC,GAAA7C,EAAA,MAAA,iBAAA6C,CAAA,GAAA,WAAAD,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,GAAA7C,EAAA,MAAA,WAAA,GAEvBqF,iBAAWrF,EAAA,gBAAA,EAAA,KAAA,EAAA,CAAA,aAAvB,UAQM,eAAA,sBAAA,kBAAA,CAAA,EAAAA,EArBR,YAAAa,EAAA,GAAA,EAAA,SAamChB,MAAO,CAAA,IAAA,EACvC,MAMEC,EAAAE,EAAA,OAAA,OAAA,CAAA,EAAA,GAJWc,EAAS,CACpB,KAAA,mBACA,UAAed,EAAA,UACf,yBAAgBsF,EAAAA,yBAAAA,iBAAAA,EAAAA,kDAnBrB,EAAA,KAAA,EAAA,CAAA,YAAA,2BAAA,mBAAA,iBAAA,CAAA,CAAA,EAAA,CAAA,wHCiBA,MAAMC,EAAkB9D,IAClB+D,EAAiB/F,IACjBgG,EAAiBZ,IACjBa,EAAOC,KACPC,EAAYC,KACZC,EAAQC,KACR3B,EAASC,IACT2B,EAAQtB,IACR,CAAE,cAAAF,GAAkBC,IAEpB,CAAE,QAAAwB,CAAA,EAAYC,GAAYX,CAAe,EAEzCvC,EAAUmD,EAAI,EAAK,EACnB3C,EAAc2C,EAAI,EAAK,EAEvBC,EAAWD,IAEXE,EAAaC,EAAS,IACnBR,EAAM,OAAO,MAAmBN,EAAe,UACvD,EAEKe,EAAcD,EAAS,IAAMR,EAAM,OAAO,WAAqB,EAE/DU,EAAaF,EAAS,IAAM,CACjC,GAAIf,EAAgB,8BAA8Bc,EAAW,KAAK,GAAK,CAAC,EACxE,GAAId,EAAgB,uBAAuBc,EAAW,KAAK,GAAK,CAAC,CAAA,CACjE,EAEKvF,EAAYwF,EAAS,IACnBE,EAAW,MAAM,KAAMC,GAAMA,EAAE,KAAOF,EAAY,KAAK,GAAKG,EAAiB,KACpF,EAEKA,EAAmBP,IAEzBQ,EACC,IAAMN,EAAW,MACjB,SAAY,CACX,MAAMO,EAAc,CACrB,CAAA,EAGDD,EACC,IAAMJ,EAAY,MAClB,SAAY,CACX,MAAMM,EAAe,CACtB,CAAA,EAGDC,GAAU,SAAY,CACrB,MAAMrB,EAAe,2BACrB,MAAM,QAAQ,IAAI,CACjBA,EAAe,yBAAyB,EACxCmB,EAAc,EACdrB,EAAgB,WAAWc,EAAW,KAAK,CAAA,CAC3C,EACD,MAAMQ,EAAe,EACrB,MAAME,EAAgB,EACb,SAAA,iBAAiB,mBAAoBC,CAA0B,CAAA,CACxE,EAEDC,GAAgB,IAAM,CACrB1B,EAAgB,MAAM,EACb,SAAA,oBAAoB,mBAAoByB,CAA0B,CAAA,CAC3E,EAED,eAAeH,GAAiB,CAC3B,GAACN,EAAY,MAIb,GAAA,CACcG,EAAA,MAAS,MAAMnB,EAAgB,eAC/CgB,EAAY,KAAA,EAEbhB,EAAgB,gBAAkBmB,EAAiB,YAC3CQ,EAAO,CACflB,EAAM,UAAUkB,EAAOxB,EAAK,SAAS,wCAAwC,CAAC,CAC/E,CACD,CAEA,SAASsB,GAA6B,CACjC,SAAS,kBAAoB,SAChCzB,EAAgB,wBAAwB,EAEnCA,EAAgB,yBAAyBc,EAAW,KAAK,CAEhE,CAEA,eAAeU,GAAkB,CAC5BjB,EAAM,OAASpG,EAAM,gBAAkB8G,EAAW,MAAM,OAAS,GAAKJ,EAAS,OAClF,MAAMhC,EACJ,KAAK,CACL,KAAM1E,EAAM,kBACZ,OAAQ,CAAE,KAAM0G,EAAS,MAAM,GAAI,YAAaI,EAAW,MAAM,CAAC,EAAE,EAAG,CAAA,CACvE,EACA,MAAM,IAAM,CAAA,CAAE,CAElB,CAEA,eAAeI,GAAgB,CAC1B,IAAAO,EACA,GAAA,CAEHA,EAAO,MAAM3B,EAAe,cAAca,EAAW,KAAK,QAClDa,EAAO,CACflB,EAAM,UAAUkB,EAAOxB,EAAK,SAAS,uCAAuC,CAAC,EAC7E,MACD,CAEA,GAAI,CAACyB,EACJ,MAAM,IAAI,MACTzB,EAAK,SAAS,yCAA0C,CACvD,YAAa,CAAE,WAAYW,EAAW,KAAM,CAAA,CAC5C,CAAA,EAIHD,EAAS,MAAQe,CAClB,CAEA,eAAeC,EAAoBlC,EAAgB,CAC9CA,EACG,MAAAK,EAAgB,yBAAyBc,EAAW,KAAK,EAE/Dd,EAAgB,wBAAwB,CAE1C,CAEA,eAAe8B,GAAgB,CAC1B,GAAChB,EAAW,MAIZ,GAAA,CACH,MAAMd,EAAgB,gBAAgB,CACrC,GAAGA,EAAgB,kBACnB,WAAYc,EAAW,KAAA,CACvB,QACOa,EAAO,CACXA,EAAM,YAAcI,GACjBtB,EAAA,YACL,CACC,MAAON,EAAK,SAAS,4CAA4C,EACjE,QAASwB,EAAM,QACf,KAAM,QACN,SAAU,IACX,EACA,EAAA,EAGDlB,EAAM,UAAUkB,EAAOxB,EAAK,SAAS,4CAA4C,CAAC,CAEpF,CACD,CAEA,eAAe6B,EAAgBC,EAAiC,CAC/DjC,EAAgB,MAAM,EACtBA,EAAgB,WAAWiC,CAAU,EAC/B,MAAAjC,EAAgB,WAAWc,EAAW,KAAK,CAClD,CAEA,eAAeoB,EAAgBC,EAAY,CACtC,GAAA,CACG,MAAAnC,EAAgB,qBAAqBmC,CAAE,EAE7C1B,EAAM,YAAY,CACjB,MAAON,EAAK,SAAS,gDAAgD,EACrE,QAASA,EAAK,SAAS,mDAAoD,CAC1E,YAAa,CAAE,kBAAmBgC,CAAG,CAAA,CACrC,EACD,KAAM,SAAA,CACN,EAED,MAAML,EAAc,QACZH,EAAO,CACflB,EAAM,UAAUkB,EAAOxB,EAAK,SAAS,8CAA8C,CAAC,CACrF,CACD,CAEA,eAAeiC,GAAkBD,EAAY,CAC5C1E,EAAQ,MAAQ,GACZ,GAAA,CACG,MAAA4E,EAAiBpB,EAAW,MAAM,UAAWC,IAAwBA,GAAE,KAAOiB,CAAE,EAEhFG,EACLrB,EAAW,MAAMoB,EAAiB,CAAC,GACnCpB,EAAW,MAAMoB,EAAiB,CAAC,GACnCpB,EAAW,MAAM,CAAC,EAEnB,MAAMjB,EAAgB,iBAAiB,CACtC,IAAK,CAACmC,CAAE,CAAA,CACR,EAEGtB,EAAS,QACRI,EAAW,MAAM,OAAS,EAC7B,MAAMpC,EACJ,QAAQ,CACR,KAAM1E,EAAM,kBACZ,OAAQ,CAAE,KAAM0G,EAAS,MAAM,GAAI,YAAayB,EAAc,EAAG,CAAA,CACjE,EACA,MAAM,IAAM,CAAA,CAAE,EAGhB,MAAMzD,EAAO,QAAQ,CACpB,KAAM1E,EAAM,eACZ,OAAQ,CAAE,KAAM0G,EAAS,MAAM,EAAG,CAAA,CAClC,SAGKc,EAAO,CACflE,EAAQ,MAAQ,GAChBgD,EAAM,UAAUkB,EAAOxB,EAAK,SAAS,qDAAqD,CAAC,EAC3F,MACD,CACA1C,EAAQ,MAAQ,GAEhBgD,EAAM,YAAY,CACjB,MAAON,EAAK,SAAS,uDAAuD,EAC5E,KAAM,SAAA,CACN,CACF,CAEA,eAAeoC,GAAiB/F,EAAgD,OAC/EiE,EAAM,YAAY,CACjB,MAAON,EAAK,SAAS,iCAAiC,EACtD,KAAM,OACN,SAAU,GAAA,CACV,EAED,MAAMqC,GAAehG,CAAO,EAC5B,MAAMsF,EAAc,EAEpBzB,EAAU,MAAM,sCAAuC,CACtD,aAAazD,EAAAiE,EAAS,QAAT,YAAAjE,EAAgB,GAC7B,aAAcJ,EAAQ,GACtB,WAAYA,EAAQ,aAAe,UAAY,UAAA,CAC/C,CACF,CAEA,eAAegG,GAAehG,EAAgD,CACzE,GAAA,CACqB,MAAMwD,EAAgB,eAAexD,EAAQ,GAAIA,EAAQ,YAAY,EAG5FiE,EAAM,YAAY,CACjB,MAAON,EAAK,SAAS,sDAAsD,EAC3E,KAAM,SAAA,CACN,EAEDM,EAAM,YAAY,CACjB,MAAON,EAAK,SAAS,uDAAuD,EAC5E,KAAM,OAAA,CACN,QAEMwB,EAAO,CACflB,EAAM,UAAUkB,EAAOxB,EAAK,SAAS,+CAA+C,CAAC,CACtF,CACD,CAEA,eAAesC,IAA4B,CACrCxE,EAAY,OAChB,MAAMgB,EAAczB,GAAU,CAAE,aAAc,GAAM,CAAA,CAEtD,CAEA,eAAeA,IAA0B,OACxC,IACGZ,EAAAoD,EAAgB,kBAAkB,SAAlC,MAAApD,EAA0C,SAAS,YACrDqE,EAAW,MAAM,QAAUjB,EAAgB,gBAE3C,OAGD/B,EAAY,MAAQ,GAEhB,IAAAyE,EACAzB,EAAW,MAAM,SAAW,IAE/ByB,EADiBzB,EAAW,MAAM,MAAM,EAAE,EAAE,CAAC,EAC3B,IAGf,GAAA,CACH,MAAMjB,EAAgB,gBAAgBA,EAAgB,kBAAmB0C,CAAM,QACvEf,EAAO,CACf1D,EAAY,MAAQ,GACpBwC,EAAM,UAAUkB,EAAOxB,EAAK,SAAS,yCAAyC,CAAC,EAC/E,MACD,CAEAlC,EAAY,MAAQ,EACrB"}
1
+ {"version":3,"file":"WorkflowExecutionsView-e12KrPNp.js","sources":["../../src/components/executions/workflow/WorkflowExecutionsCard.vue","../../src/components/executions/workflow/WorkflowExecutionsSidebar.vue","../../src/components/executions/workflow/WorkflowExecutionsList.vue","../../src/views/WorkflowExecutionsView.vue"],"sourcesContent":["<template>\n\t<div\n\t\t:class=\"{\n\t\t\t['execution-card']: true,\n\t\t\t[$style.WorkflowExecutionsCard]: true,\n\t\t\t[$style.active]: isActive,\n\t\t\t[$style[executionUIDetails.name]]: true,\n\t\t\t[$style.highlight]: highlight,\n\t\t\t[$style.showGap]: showGap,\n\t\t}\"\n\t>\n\t\t<router-link\n\t\t\t:class=\"$style.executionLink\"\n\t\t\t:to=\"{\n\t\t\t\tname: executionPreviewViewName,\n\t\t\t\tparams: { name: currentWorkflow, executionId: execution.id },\n\t\t\t}\"\n\t\t\t:data-test-execution-status=\"executionUIDetails.name\"\n\t\t>\n\t\t\t<div :class=\"$style.description\">\n\t\t\t\t<n8n-text color=\"text-dark\" :bold=\"true\" size=\"medium\" data-test-id=\"execution-time\">\n\t\t\t\t\t{{ executionUIDetails.startTime }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<div :class=\"$style.executionStatus\">\n\t\t\t\t\t<n8n-spinner\n\t\t\t\t\t\tv-if=\"executionUIDetails.name === 'running'\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t:class=\"[$style.spinner, 'mr-4xs']\"\n\t\t\t\t\t/>\n\t\t\t\t\t<n8n-text :class=\"$style.statusLabel\" size=\"small\">{{\n\t\t\t\t\t\texecutionUIDetails.label\n\t\t\t\t\t}}</n8n-text>\n\t\t\t\t\t{{ ' ' }}\n\t\t\t\t\t<n8n-text\n\t\t\t\t\t\tv-if=\"executionUIDetails.name === 'running'\"\n\t\t\t\t\t\t:color=\"isActive ? 'text-dark' : 'text-base'\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $locale.baseText('executionDetails.runningTimeRunning') }}\n\t\t\t\t\t\t<ExecutionsTime :start-time=\"execution.startedAt\" />\n\t\t\t\t\t</n8n-text>\n\t\t\t\t\t<n8n-text\n\t\t\t\t\t\tv-else-if=\"executionUIDetails.runningTime !== ''\"\n\t\t\t\t\t\t:color=\"isActive ? 'text-dark' : 'text-base'\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeFinished', {\n\t\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime },\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t}}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t\t<div v-if=\"execution.mode === 'retry'\">\n\t\t\t\t\t<n8n-text :color=\"isActive ? 'text-dark' : 'text-base'\" size=\"small\">\n\t\t\t\t\t\t{{ $locale.baseText('executionDetails.retry') }} #{{ execution.retryOf }}\n\t\t\t\t\t</n8n-text>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.icons\">\n\t\t\t\t<n8n-action-dropdown\n\t\t\t\t\tv-if=\"isRetriable\"\n\t\t\t\t\t:class=\"[$style.icon, $style.retry]\"\n\t\t\t\t\t:items=\"retryExecutionActions\"\n\t\t\t\t\tactivator-icon=\"redo\"\n\t\t\t\t\tdata-test-id=\"retry-execution-button\"\n\t\t\t\t\t@select=\"onRetryMenuItemSelect\"\n\t\t\t\t/>\n\t\t\t\t<n8n-tooltip v-if=\"execution.mode === 'manual'\" placement=\"top\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<span>{{ $locale.baseText('executionsList.test') }}</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<font-awesome-icon\n\t\t\t\t\t\tv-if=\"execution.mode === 'manual'\"\n\t\t\t\t\t\t:class=\"[$style.icon, $style.manual]\"\n\t\t\t\t\t\ticon=\"flask\"\n\t\t\t\t\t/>\n\t\t\t\t</n8n-tooltip>\n\t\t\t</div>\n\t\t</router-link>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport type { IExecutionUIData } from '@/composables/useExecutionHelpers';\nimport { VIEWS } from '@/constants';\nimport ExecutionsTime from '@/components/executions/ExecutionsTime.vue';\nimport { useExecutionHelpers } from '@/composables/useExecutionHelpers';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport { mapStores } from 'pinia';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsCard',\n\tcomponents: {\n\t\tExecutionsTime,\n\t},\n\tprops: {\n\t\texecution: {\n\t\t\ttype: Object as () => ExecutionSummary,\n\t\t\trequired: true,\n\t\t},\n\t\thighlight: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tshowGap: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst executionHelpers = useExecutionHelpers();\n\n\t\treturn {\n\t\t\texecutionHelpers,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useWorkflowsStore),\n\t\tcurrentWorkflow(): string {\n\t\t\treturn (this.$route.params.name as string) || this.workflowsStore.workflowId;\n\t\t},\n\t\tretryExecutionActions(): object[] {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: 'current-workflow',\n\t\t\t\t\tlabel: this.$locale.baseText('executionsList.retryWithCurrentlySavedWorkflow'),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'original-workflow',\n\t\t\t\t\tlabel: this.$locale.baseText('executionsList.retryWithOriginalWorkflow'),\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\texecutionUIDetails(): IExecutionUIData {\n\t\t\treturn this.executionHelpers.getUIDetails(this.execution);\n\t\t},\n\t\tisActive(): boolean {\n\t\t\treturn this.execution.id === this.$route.params.executionId;\n\t\t},\n\t\tisRetriable(): boolean {\n\t\t\treturn this.executionHelpers.isExecutionRetriable(this.execution);\n\t\t},\n\t\texecutionPreviewViewName() {\n\t\t\treturn VIEWS.EXECUTION_PREVIEW;\n\t\t},\n\t},\n\tmethods: {\n\t\tonRetryMenuItemSelect(action: string): void {\n\t\t\tthis.$emit('retryExecution', { execution: this.execution, command: action });\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n@import '@/styles/variables';\n\n.WorkflowExecutionsCard {\n\t--execution-list-item-background: var(--color-foreground-xlight);\n\t--execution-list-item-highlight-background: var(--color-warning-tint-1);\n\n\tdisplay: flex;\n\tflex-direction: column;\n\tpadding-right: var(--spacing-m);\n\n\t&.active {\n\t\tborder-left: var(--spacing-4xs) var(--border-style-base) transparent !important;\n\n\t\t.executionStatus {\n\t\t\tcolor: var(--color-text-dark) !important;\n\t\t}\n\t}\n\n\t&:hover,\n\t&.active {\n\t\t.executionLink {\n\t\t\t--execution-list-item-background: var(--color-foreground-light);\n\t\t}\n\t}\n\n\t&.new,\n\t&.running {\n\t\t.spinner {\n\t\t\tposition: relative;\n\t\t\ttop: 1px;\n\t\t}\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-running);\n\t\t}\n\t\t.statusLabel,\n\t\t.spinner {\n\t\t\tcolor: var(--color-warning);\n\t\t}\n\t}\n\n\t&.success {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-success);\n\t\t}\n\t}\n\n\t&.waiting {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-waiting);\n\t\t}\n\t\t.statusLabel {\n\t\t\tcolor: var(--color-secondary);\n\t\t}\n\t}\n\n\t&.error {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-error);\n\t\t}\n\t\t.statusLabel {\n\t\t\tcolor: var(--color-danger);\n\t\t}\n\t}\n\n\t&.unknown {\n\t\t&,\n\t\t& .executionLink {\n\t\t\tborder-left: var(--spacing-4xs) var(--border-style-base) var(--execution-card-border-unknown);\n\t\t}\n\t}\n}\n\n.executionLink {\n\tbackground: var(--execution-list-item-background);\n\tdisplay: flex;\n\twidth: 100%;\n\talign-items: center;\n\tjustify-content: space-between;\n\tcolor: var(--color-text-base);\n\tfont-size: var(--font-size-xs);\n\tpadding: var(--spacing-xs);\n\tpadding-right: var(--spacing-s);\n\tposition: relative;\n\tleft: calc(\n\t\t-1 * var(--spacing-4xs)\n\t); // Hide link border under card border so it's not visible when not hovered\n\n\t&:active {\n\t\t.icon,\n\t\t.statusLabel {\n\t\t\tcolor: var(--color-text-base);\n\t\t}\n\t}\n}\n\n.icons {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.icon {\n\tfont-size: var(--font-size-s);\n\n\t&.retry {\n\t\tsvg {\n\t\t\tcolor: var(--color-primary);\n\t\t}\n\t}\n\n\t&.manual {\n\t\tposition: relative;\n\t\ttop: 1px;\n\t}\n\n\t& + & {\n\t\tmargin-left: var(--spacing-2xs);\n\t}\n}\n.showGap {\n\tmargin-bottom: var(--spacing-2xs);\n\t.executionLink {\n\t\tborder-bottom: 1px solid var(--color-foreground-dark);\n\t}\n}\n</style>\n","<template>\n\t<div\n\t\tref=\"container\"\n\t\t:class=\"['executions-sidebar', $style.container]\"\n\t\tdata-test-id=\"executions-sidebar\"\n\t>\n\t\t<div :class=\"$style.heading\">\n\t\t\t<n8n-heading tag=\"h2\" size=\"medium\" color=\"text-dark\">\n\t\t\t\t{{ $locale.baseText('generic.executions') }}\n\t\t\t</n8n-heading>\n\t\t</div>\n\t\t<div :class=\"$style.controls\">\n\t\t\t<el-checkbox\n\t\t\t\tv-model=\"executionsStore.autoRefresh\"\n\t\t\t\tdata-test-id=\"auto-refresh-checkbox\"\n\t\t\t\t@update:model-value=\"$emit('update:autoRefresh', $event)\"\n\t\t\t>\n\t\t\t\t{{ $locale.baseText('executionsList.autoRefresh') }}\n\t\t\t</el-checkbox>\n\t\t\t<ExecutionsFilter popover-placement=\"left-start\" @filter-changed=\"onFilterChanged\" />\n\t\t</div>\n\t\t<div\n\t\t\tref=\"executionList\"\n\t\t\t:class=\"$style.executionList\"\n\t\t\tdata-test-id=\"current-executions-list\"\n\t\t\t@scroll=\"loadMore(20)\"\n\t\t>\n\t\t\t<div v-if=\"loading\" class=\"mr-l\">\n\t\t\t\t<n8n-loading variant=\"rect\" />\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-if=\"!loading && executions.length === 0\"\n\t\t\t\t:class=\"$style.noResultsContainer\"\n\t\t\t\tdata-test-id=\"execution-list-empty\"\n\t\t\t>\n\t\t\t\t<n8n-text color=\"text-base\" size=\"medium\" align=\"center\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.noResults') }}\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<WorkflowExecutionsCard\n\t\t\t\tv-else-if=\"temporaryExecution\"\n\t\t\t\t:ref=\"`execution-${temporaryExecution.id}`\"\n\t\t\t\t:execution=\"temporaryExecution\"\n\t\t\t\t:data-test-id=\"`execution-details-${temporaryExecution.id}`\"\n\t\t\t\t:show-gap=\"true\"\n\t\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t\t/>\n\t\t\t<TransitionGroup name=\"executions-list\">\n\t\t\t\t<WorkflowExecutionsCard\n\t\t\t\t\tv-for=\"execution in executions\"\n\t\t\t\t\t:key=\"execution.id\"\n\t\t\t\t\t:ref=\"`execution-${execution.id}`\"\n\t\t\t\t\t:execution=\"execution\"\n\t\t\t\t\t:data-test-id=\"`execution-details-${execution.id}`\"\n\t\t\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t\t\t/>\n\t\t\t</TransitionGroup>\n\t\t\t<div v-if=\"loadingMore\" class=\"mr-m\">\n\t\t\t\t<n8n-loading variant=\"p\" :rows=\"1\" />\n\t\t\t</div>\n\t\t</div>\n\t\t<div :class=\"$style.infoAccordion\">\n\t\t\t<WorkflowExecutionsInfoAccordion :initially-expanded=\"false\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport WorkflowExecutionsCard from '@/components/executions/workflow/WorkflowExecutionsCard.vue';\nimport WorkflowExecutionsInfoAccordion from '@/components/executions/workflow/WorkflowExecutionsInfoAccordion.vue';\nimport ExecutionsFilter from '@/components/executions/ExecutionsFilter.vue';\nimport { VIEWS } from '@/constants';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport type { Route } from 'vue-router';\nimport { defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useExecutionsStore } from '@/stores/executions.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport type { ExecutionFilterType } from '@/Interface';\n\ntype WorkflowExecutionsCardRef = InstanceType<typeof WorkflowExecutionsCard>;\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsSidebar',\n\tcomponents: {\n\t\tWorkflowExecutionsCard,\n\t\tWorkflowExecutionsInfoAccordion,\n\t\tExecutionsFilter,\n\t},\n\tprops: {\n\t\texecutions: {\n\t\t\ttype: Array as PropType<ExecutionSummary[]>,\n\t\t\trequired: true,\n\t\t},\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tloadingMore: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\ttemporaryExecution: {\n\t\t\ttype: Object as PropType<ExecutionSummary>,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\temits: {\n\t\tretryExecution: null,\n\t\tloadMore: null,\n\t\trefresh: null,\n\t\tfilterUpdated: null,\n\t\treloadExecutions: null,\n\t\t'update:autoRefresh': null,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfilter: {} as ExecutionFilterType,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useExecutionsStore, useWorkflowsStore),\n\t},\n\twatch: {\n\t\t$route(to: Route, from: Route) {\n\t\t\tif (from.name === VIEWS.EXECUTION_PREVIEW && to.name === VIEWS.EXECUTION_HOME) {\n\t\t\t\t// Skip parent route when navigating through executions with back button\n\t\t\t\tthis.$router.go(-1);\n\t\t\t}\n\t\t},\n\t},\n\tmounted() {\n\t\t// On larger screens, we need to load more then first page of executions\n\t\t// for the scroll bar to appear and infinite scrolling is enabled\n\t\tthis.checkListSize();\n\t\tsetTimeout(() => {\n\t\t\tthis.scrollToActiveCard();\n\t\t}, 1000);\n\t},\n\tmethods: {\n\t\tloadMore(limit = 20): void {\n\t\t\tif (!this.loading) {\n\t\t\t\tconst executionsListRef = this.$refs.executionList as HTMLElement | undefined;\n\t\t\t\tif (executionsListRef) {\n\t\t\t\t\tconst diff =\n\t\t\t\t\t\texecutionsListRef.offsetHeight -\n\t\t\t\t\t\t(executionsListRef.scrollHeight - executionsListRef.scrollTop);\n\t\t\t\t\tif (diff > -10 && diff < 10) {\n\t\t\t\t\t\tthis.$emit('loadMore', limit);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonRetryExecution(payload: object) {\n\t\t\tthis.$emit('retryExecution', payload);\n\t\t},\n\t\tonRefresh(): void {\n\t\t\tthis.$emit('refresh');\n\t\t},\n\t\tonFilterChanged(filter: ExecutionFilterType) {\n\t\t\tthis.$emit('filterUpdated', filter);\n\t\t},\n\t\treloadExecutions(): void {\n\t\t\tthis.$emit('reloadExecutions');\n\t\t},\n\t\tcheckListSize(): void {\n\t\t\tconst sidebarContainerRef = this.$refs.container as HTMLElement | undefined;\n\t\t\tconst currentWorkflowExecutionsCardRefs = this.$refs[\n\t\t\t\t`execution-${this.executionsStore.activeExecution?.id}`\n\t\t\t] as WorkflowExecutionsCardRef[] | undefined;\n\n\t\t\t// Find out how many execution card can fit into list\n\t\t\t// and load more if needed\n\t\t\tif (sidebarContainerRef && currentWorkflowExecutionsCardRefs?.length) {\n\t\t\t\tconst cardElement = currentWorkflowExecutionsCardRefs[0].$el as HTMLElement;\n\t\t\t\tconst listCapacity = Math.ceil(sidebarContainerRef.clientHeight / cardElement.clientHeight);\n\n\t\t\t\tif (listCapacity > this.executions.length) {\n\t\t\t\t\tthis.$emit('loadMore', listCapacity - this.executions.length);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tscrollToActiveCard(): void {\n\t\t\tconst executionsListRef = this.$refs.executionList as HTMLElement | undefined;\n\t\t\tconst currentWorkflowExecutionsCardRefs = this.$refs[\n\t\t\t\t`execution-${this.executionsStore.activeExecution?.id}`\n\t\t\t] as WorkflowExecutionsCardRef[] | undefined;\n\n\t\t\tif (\n\t\t\t\texecutionsListRef &&\n\t\t\t\tcurrentWorkflowExecutionsCardRefs?.length &&\n\t\t\t\tthis.executionsStore.activeExecution\n\t\t\t) {\n\t\t\t\tconst cardElement = currentWorkflowExecutionsCardRefs[0].$el as HTMLElement;\n\t\t\t\tconst cardRect = cardElement.getBoundingClientRect();\n\t\t\t\tconst LIST_HEADER_OFFSET = 200;\n\t\t\t\tif (cardRect.top > executionsListRef.offsetHeight) {\n\t\t\t\t\texecutionsListRef.scrollTo({ top: cardRect.top - LIST_HEADER_OFFSET });\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.container {\n\tflex: 310px 0 0;\n\tbackground-color: var(--color-background-xlight);\n\tborder-right: var(--border-base);\n\tpadding: var(--spacing-l) 0 var(--spacing-l) var(--spacing-l);\n\tz-index: 1;\n\tdisplay: flex;\n\tflex-direction: column;\n\toverflow: hidden;\n}\n\n.heading {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: baseline;\n\tpadding-right: var(--spacing-l);\n}\n\n.controls {\n\tpadding: var(--spacing-s) 0 var(--spacing-xs);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding-right: var(--spacing-m);\n\n\tbutton {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n}\n\n.executionList {\n\tflex: 1;\n\toverflow: auto;\n\tmargin-bottom: var(--spacing-m);\n\tbackground-color: var(--color-background-xlight) !important;\n\n\t// Scrolling fader\n\t&::before {\n\t\tposition: absolute;\n\t\tdisplay: block;\n\t\twidth: 270px;\n\t\theight: 6px;\n\t\tbackground: linear-gradient(to bottom, rgba(251, 251, 251, 1) 0%, rgba(251, 251, 251, 0) 100%);\n\t\tz-index: 999;\n\t}\n\n\t// Lower first execution card so fader is not visible when not scrolled\n\t& > div:first-child {\n\t\tmargin-top: 3px;\n\t}\n}\n\n.infoAccordion {\n\tposition: absolute;\n\tbottom: 0;\n\tmargin-left: calc(-1 * var(--spacing-l));\n\tborder-top: var(--border-base);\n\n\t& > div {\n\t\twidth: 309px;\n\t\tbackground-color: var(--color-background-light);\n\t\tmargin-top: 0 !important;\n\t}\n}\n\n.noResultsContainer {\n\twidth: 100%;\n\tmargin-top: var(--spacing-2xl);\n\ttext-align: center;\n}\n</style>\n\n<style lang=\"scss\" scoped>\n.executions-sidebar {\n\t:deep(.el-skeleton__item) {\n\t\theight: 60px;\n\t\tborder-radius: 0;\n\t}\n}\n</style>\n","<template>\n\t<div :class=\"$style.container\">\n\t\t<WorkflowExecutionsSidebar\n\t\t\t:executions=\"executions\"\n\t\t\t:loading=\"loading && !executions.length\"\n\t\t\t:loading-more=\"loadingMore\"\n\t\t\t:temporary-execution=\"temporaryExecution\"\n\t\t\t@update:auto-refresh=\"$emit('update:auto-refresh', $event)\"\n\t\t\t@reload-executions=\"$emit('reload')\"\n\t\t\t@filter-updated=\"$emit('update:filters', $event)\"\n\t\t\t@load-more=\"$emit('load-more')\"\n\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t/>\n\t\t<div v-if=\"!hidePreview\" :class=\"$style.content\">\n\t\t\t<router-view\n\t\t\t\tname=\"executionPreview\"\n\t\t\t\t:execution=\"execution\"\n\t\t\t\t@delete-current-execution=\"onDeleteCurrentExecution\"\n\t\t\t\t@retry-execution=\"onRetryExecution\"\n\t\t\t\t@stop-execution=\"onStopExecution\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport type { PropType } from 'vue';\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useRouter } from 'vue-router';\nimport WorkflowExecutionsSidebar from '@/components/executions/workflow/WorkflowExecutionsSidebar.vue';\nimport {\n\tMAIN_HEADER_TABS,\n\tMODAL_CANCEL,\n\tMODAL_CONFIRM,\n\tPLACEHOLDER_EMPTY_WORKFLOW_ID,\n\tVIEWS,\n} from '@/constants';\nimport type { ExecutionFilterType, IWorkflowDb } from '@/Interface';\nimport type { ExecutionSummary, IDataObject } from 'n8n-workflow';\nimport { useMessage } from '@/composables/useMessage';\nimport { useToast } from '@/composables/useToast';\nimport { getNodeViewTab } from '@/utils/canvasUtils';\nimport { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport { useTagsStore } from '@/stores/tags.store';\nimport { executionFilterToQueryFilter } from '@/utils/executionUtils';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useDebounce } from '@/composables/useDebounce';\n\nexport default defineComponent({\n\tname: 'WorkflowExecutionsList',\n\tcomponents: {\n\t\tWorkflowExecutionsSidebar,\n\t},\n\tasync beforeRouteLeave(to, _, next) {\n\t\tif (getNodeViewTab(to) === MAIN_HEADER_TABS.WORKFLOW) {\n\t\t\tnext();\n\t\t\treturn;\n\t\t}\n\t\tif (this.uiStore.stateIsDirty) {\n\t\t\tconst confirmModal = await this.confirm(\n\t\t\t\tthis.$locale.baseText('generic.unsavedWork.confirmMessage.message'),\n\t\t\t\t{\n\t\t\t\t\ttitle: this.$locale.baseText('generic.unsavedWork.confirmMessage.headline'),\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'generic.unsavedWork.confirmMessage.confirmButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tcancelButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'generic.unsavedWork.confirmMessage.cancelButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tshowClose: true,\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tif (confirmModal === MODAL_CONFIRM) {\n\t\t\t\tconst saved = await this.workflowHelpers.saveCurrentWorkflow({}, false);\n\t\t\t\tif (saved) {\n\t\t\t\t\tawait this.settingsStore.fetchPromptsData();\n\t\t\t\t}\n\t\t\t\tthis.uiStore.stateIsDirty = false;\n\t\t\t\tnext();\n\t\t\t} else if (confirmModal === MODAL_CANCEL) {\n\t\t\t\tthis.uiStore.stateIsDirty = false;\n\t\t\t\tnext();\n\t\t\t}\n\t\t} else {\n\t\t\tnext();\n\t\t}\n\t},\n\tprops: {\n\t\tloading: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tworkflow: {\n\t\t\ttype: Object as PropType<IWorkflowDb>,\n\t\t\trequired: true,\n\t\t},\n\t\texecutions: {\n\t\t\ttype: Array as PropType<ExecutionSummary[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tfilters: {\n\t\t\ttype: Object as PropType<ExecutionFilterType>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\texecution: {\n\t\t\ttype: Object as PropType<ExecutionSummary>,\n\t\t\tdefault: null,\n\t\t},\n\t\tloadingMore: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\temits: [\n\t\t'execution:delete',\n\t\t'execution:stop',\n\t\t'execution:retry',\n\t\t'update:auto-refresh',\n\t\t'update:filters',\n\t\t'load-more',\n\t\t'reload',\n\t],\n\tsetup() {\n\t\tconst externalHooks = useExternalHooks();\n\t\tconst router = useRouter();\n\t\tconst workflowHelpers = useWorkflowHelpers({ router });\n\t\tconst { callDebounced } = useDebounce();\n\n\t\treturn {\n\t\t\texternalHooks,\n\t\t\tworkflowHelpers,\n\t\t\tcallDebounced,\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useTagsStore, useNodeTypesStore, useSettingsStore, useUIStore),\n\t\ttemporaryExecution(): ExecutionSummary | undefined {\n\t\t\tconst isTemporary = !this.executions.find((execution) => execution.id === this.execution?.id);\n\t\t\treturn isTemporary ? this.execution : undefined;\n\t\t},\n\t\thidePreview(): boolean {\n\t\t\treturn this.loading || (!this.execution && this.executions.length);\n\t\t},\n\t\tfilterApplied(): boolean {\n\t\t\treturn this.filters.status !== 'all';\n\t\t},\n\t\tworkflowDataNotLoaded(): boolean {\n\t\t\treturn this.workflow.id === PLACEHOLDER_EMPTY_WORKFLOW_ID && this.workflow.name === '';\n\t\t},\n\t\trequestFilter(): IDataObject {\n\t\t\treturn executionFilterToQueryFilter({\n\t\t\t\t...this.filters,\n\t\t\t\tworkflowId: this.workflow.id,\n\t\t\t});\n\t\t},\n\t},\n\twatch: {\n\t\texecution(value: ExecutionSummary) {\n\t\t\tif (!value) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.$router\n\t\t\t\t.push({\n\t\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\t\tparams: { name: this.workflow.id, executionId: value.id },\n\t\t\t\t})\n\t\t\t\t.catch(() => {});\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onDeleteCurrentExecution(): Promise<void> {\n\t\t\tthis.$emit('execution:delete', this.execution.id);\n\t\t},\n\t\tasync onStopExecution(): Promise<void> {\n\t\t\tthis.$emit('execution:stop', this.execution.id);\n\t\t},\n\t\tasync onRetryExecution(payload: { execution: ExecutionSummary; command: string }) {\n\t\t\tconst loadWorkflow = payload.command === 'current-workflow';\n\n\t\t\tthis.$emit('execution:retry', {\n\t\t\t\tid: payload.execution.id,\n\t\t\t\tloadWorkflow,\n\t\t\t});\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.container {\n\tdisplay: flex;\n\theight: 100%;\n\twidth: 100%;\n}\n\n.content {\n\tflex: 1;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';\nimport WorkflowExecutionsList from '@/components/executions/workflow/WorkflowExecutionsList.vue';\nimport { useExecutionsStore } from '@/stores/executions.store';\nimport { useI18n } from '@/composables/useI18n';\nimport type { ExecutionFilterType, IWorkflowDb } from '@/Interface';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { useNodeTypesStore } from '@/stores/nodeTypes.store';\nimport { NO_NETWORK_ERROR_CODE } from '@/utils/apiUtils';\nimport { useToast } from '@/composables/useToast';\nimport { VIEWS } from '@/constants';\nimport { useRoute, useRouter } from 'vue-router';\nimport type { ExecutionSummary } from 'n8n-workflow';\nimport { useDebounce } from '@/composables/useDebounce';\nimport { storeToRefs } from 'pinia';\nimport { useTelemetry } from '@/composables/useTelemetry';\n\nconst executionsStore = useExecutionsStore();\nconst workflowsStore = useWorkflowsStore();\nconst nodeTypesStore = useNodeTypesStore();\nconst i18n = useI18n();\nconst telemetry = useTelemetry();\nconst route = useRoute();\nconst router = useRouter();\nconst toast = useToast();\nconst { callDebounced } = useDebounce();\n\nconst { filters } = storeToRefs(executionsStore);\n\nconst loading = ref(false);\nconst loadingMore = ref(false);\n\nconst workflow = ref<IWorkflowDb | undefined>();\n\nconst workflowId = computed(() => {\n\treturn (route.params.name as string) || workflowsStore.workflowId;\n});\n\nconst executionId = computed(() => route.params.executionId as string);\n\nconst executions = computed(() => [\n\t...(executionsStore.currentExecutionsByWorkflowId[workflowId.value] ?? []),\n\t...(executionsStore.executionsByWorkflowId[workflowId.value] ?? []),\n]);\n\nconst execution = computed(() => {\n\treturn executions.value.find((e) => e.id === executionId.value) ?? currentExecution.value;\n});\n\nconst currentExecution = ref<ExecutionSummary | undefined>();\n\nwatch(\n\t() => workflowId.value,\n\tasync () => {\n\t\tawait fetchWorkflow();\n\t},\n);\n\nwatch(\n\t() => executionId.value,\n\tasync () => {\n\t\tawait fetchExecution();\n\t},\n);\n\nonMounted(async () => {\n\tawait nodeTypesStore.loadNodeTypesIfNotLoaded();\n\tawait Promise.all([\n\t\tnodeTypesStore.loadNodeTypesIfNotLoaded(),\n\t\tfetchWorkflow(),\n\t\texecutionsStore.initialize(workflowId.value),\n\t]);\n\tawait fetchExecution();\n\tawait initializeRoute();\n\tdocument.addEventListener('visibilitychange', onDocumentVisibilityChange);\n});\n\nonBeforeUnmount(() => {\n\texecutionsStore.reset();\n\tdocument.removeEventListener('visibilitychange', onDocumentVisibilityChange);\n});\n\nasync function fetchExecution() {\n\tif (!executionId.value) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tcurrentExecution.value = (await executionsStore.fetchExecution(\n\t\t\texecutionId.value,\n\t\t)) as ExecutionSummary;\n\t\texecutionsStore.activeExecution = currentExecution.value;\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('nodeView.showError.openExecution.title'));\n\t}\n}\n\nfunction onDocumentVisibilityChange() {\n\tif (document.visibilityState === 'hidden') {\n\t\texecutionsStore.stopAutoRefreshInterval();\n\t} else {\n\t\tvoid executionsStore.startAutoRefreshInterval(workflowId.value);\n\t}\n}\n\nasync function initializeRoute() {\n\tif (route.name === VIEWS.EXECUTION_HOME && executions.value.length > 0 && workflow.value) {\n\t\tawait router\n\t\t\t.push({\n\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\tparams: { name: workflow.value.id, executionId: executions.value[0].id },\n\t\t\t})\n\t\t\t.catch(() => {});\n\t}\n}\n\nasync function fetchWorkflow() {\n\tlet data: IWorkflowDb | undefined;\n\ttry {\n\t\t// @TODO Retrieve from store if exists\n\t\tdata = await workflowsStore.fetchWorkflow(workflowId.value);\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('nodeView.showError.openWorkflow.title'));\n\t\treturn;\n\t}\n\n\tif (!data) {\n\t\tthrow new Error(\n\t\t\ti18n.baseText('nodeView.workflowWithIdCouldNotBeFound', {\n\t\t\t\tinterpolate: { workflowId: workflowId.value },\n\t\t\t}),\n\t\t);\n\t}\n\n\tworkflow.value = data;\n}\n\nasync function onAutoRefreshToggle(value: boolean) {\n\tif (value) {\n\t\tawait executionsStore.startAutoRefreshInterval(workflowId.value);\n\t} else {\n\t\texecutionsStore.stopAutoRefreshInterval();\n\t}\n}\n\nasync function onRefreshData() {\n\tif (!workflowId.value) {\n\t\treturn;\n\t}\n\n\ttry {\n\t\tawait executionsStore.fetchExecutions({\n\t\t\t...executionsStore.executionsFilters,\n\t\t\tworkflowId: workflowId.value,\n\t\t});\n\t} catch (error) {\n\t\tif (error.errorCode === NO_NETWORK_ERROR_CODE) {\n\t\t\ttoast.showMessage(\n\t\t\t\t{\n\t\t\t\t\ttitle: i18n.baseText('executionsList.showError.refreshData.title'),\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\ttype: 'error',\n\t\t\t\t\tduration: 3500,\n\t\t\t\t},\n\t\t\t\tfalse,\n\t\t\t);\n\t\t} else {\n\t\t\ttoast.showError(error, i18n.baseText('executionsList.showError.refreshData.title'));\n\t\t}\n\t}\n}\n\nasync function onUpdateFilters(newFilters: ExecutionFilterType) {\n\texecutionsStore.reset();\n\texecutionsStore.setFilters(newFilters);\n\tawait executionsStore.initialize(workflowId.value);\n}\n\nasync function onExecutionStop(id: string) {\n\ttry {\n\t\tawait executionsStore.stopCurrentExecution(id);\n\n\t\ttoast.showMessage({\n\t\t\ttitle: i18n.baseText('executionsList.showMessage.stopExecution.title'),\n\t\t\tmessage: i18n.baseText('executionsList.showMessage.stopExecution.message', {\n\t\t\t\tinterpolate: { activeExecutionId: id },\n\t\t\t}),\n\t\t\ttype: 'success',\n\t\t});\n\n\t\tawait onRefreshData();\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.stopExecution.title'));\n\t}\n}\n\nasync function onExecutionDelete(id: string) {\n\tloading.value = true;\n\ttry {\n\t\tconst executionIndex = executions.value.findIndex((e: ExecutionSummary) => e.id === id);\n\n\t\tconst nextExecution =\n\t\t\texecutions.value[executionIndex + 1] ||\n\t\t\texecutions.value[executionIndex - 1] ||\n\t\t\texecutions.value[0];\n\n\t\tawait executionsStore.deleteExecutions({\n\t\t\tids: [id],\n\t\t});\n\n\t\tif (workflow.value) {\n\t\t\tif (executions.value.length > 0) {\n\t\t\t\tawait router\n\t\t\t\t\t.replace({\n\t\t\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\t\t\tparams: { name: workflow.value.id, executionId: nextExecution.id },\n\t\t\t\t\t})\n\t\t\t\t\t.catch(() => {});\n\t\t\t} else {\n\t\t\t\t// If there are no executions left, show empty state\n\t\t\t\tawait router.replace({\n\t\t\t\t\tname: VIEWS.EXECUTION_HOME,\n\t\t\t\t\tparams: { name: workflow.value.id },\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tloading.value = false;\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.handleDeleteSelected.title'));\n\t\treturn;\n\t}\n\tloading.value = false;\n\n\ttoast.showMessage({\n\t\ttitle: i18n.baseText('executionsList.showMessage.handleDeleteSelected.title'),\n\t\ttype: 'success',\n\t});\n}\n\nasync function onExecutionRetry(payload: { id: string; loadWorkflow: boolean }) {\n\ttoast.showMessage({\n\t\ttitle: i18n.baseText('executionDetails.runningMessage'),\n\t\ttype: 'info',\n\t\tduration: 2000,\n\t});\n\n\tawait retryExecution(payload);\n\tawait onRefreshData();\n\n\ttelemetry.track('User clicked retry execution button', {\n\t\tworkflow_id: workflow.value?.id,\n\t\texecution_id: payload.id,\n\t\tretry_type: payload.loadWorkflow ? 'current' : 'original',\n\t});\n}\n\nasync function retryExecution(payload: { id: string; loadWorkflow: boolean }) {\n\ttry {\n\t\tconst retrySuccessful = await executionsStore.retryExecution(payload.id, payload.loadWorkflow);\n\n\t\tif (retrySuccessful) {\n\t\t\ttoast.showMessage({\n\t\t\t\ttitle: i18n.baseText('executionsList.showMessage.retrySuccessfulTrue.title'),\n\t\t\t\ttype: 'success',\n\t\t\t});\n\t\t} else {\n\t\t\ttoast.showMessage({\n\t\t\t\ttitle: i18n.baseText('executionsList.showMessage.retrySuccessfulFalse.title'),\n\t\t\t\ttype: 'error',\n\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.retryExecution.title'));\n\t}\n}\n\nasync function onLoadMore(): Promise<void> {\n\tif (!loadingMore.value) {\n\t\tawait callDebounced(loadMore, { debounceTime: 1000 });\n\t}\n}\n\nasync function loadMore(): Promise<void> {\n\tif (\n\t\t!!executionsStore.executionsFilters.status?.includes('running') ||\n\t\texecutions.value.length >= executionsStore.executionsCount\n\t) {\n\t\treturn;\n\t}\n\n\tloadingMore.value = true;\n\n\tlet lastId: string | undefined;\n\tif (executions.value.length !== 0) {\n\t\tconst lastItem = executions.value.slice(-1)[0];\n\t\tlastId = lastItem.id;\n\t}\n\n\ttry {\n\t\tawait executionsStore.fetchExecutions(executionsStore.executionsFilters, lastId);\n\t} catch (error) {\n\t\tloadingMore.value = false;\n\t\ttoast.showError(error, i18n.baseText('executionsList.showError.loadMore.title'));\n\t\treturn;\n\t}\n\n\tloadingMore.value = false;\n}\n</script>\n<template>\n\t<WorkflowExecutionsList\n\t\tv-if=\"workflow\"\n\t\t:executions=\"executions\"\n\t\t:execution=\"execution\"\n\t\t:filters=\"filters\"\n\t\t:workflow=\"workflow\"\n\t\t:loading=\"loading\"\n\t\t:loading-more=\"loadingMore\"\n\t\t@execution:stop=\"onExecutionStop\"\n\t\t@execution:delete=\"onExecutionDelete\"\n\t\t@execution:retry=\"onExecutionRetry\"\n\t\t@update:filters=\"onUpdateFilters\"\n\t\t@update:auto-refresh=\"onAutoRefreshToggle\"\n\t\t@load-more=\"onLoadMore\"\n\t\t@reload=\"onRefreshData\"\n\t/>\n</template>\n"],"names":["_sfc_main$3","defineComponent","ExecutionsTime","useExecutionHelpers","mapStores","useWorkflowsStore","VIEWS","action","_resolveComponent","$style","_normalizeClass","executionUIDetails","_ctx","highlight","_createVNode","_component_router_link","executionPreviewViewName","_withCtx","_createElementVNode","_component_n8n_text","_createTextVNode","_toDisplayString","_openBlock","_createBlock","_component_n8n_spinner","_createCommentVNode","execution","_component_ExecutionsTime","_createElementBlock","_hoisted_1","isRetriable","onRetryMenuItemSelect","_component_n8n_tooltip","_sfc_main$2","WorkflowExecutionsCard","WorkflowExecutionsInfoAccordion","ExecutionsFilter","useExecutionsStore","to","from","limit","executionsListRef","diff","payload","filter","sidebarContainerRef","currentWorkflowExecutionsCardRefs","_a","cardElement","listCapacity","cardRect","LIST_HEADER_OFFSET","_hoisted_2","_component_WorkflowExecutionsInfoAccordion","_component_n8n_heading","_component_el_checkbox","_cache","$event","_component_ExecutionsFilter","loadMore","loading","_component_n8n_loading","temporaryExecution","onRetryExecution","_TransitionGroup","_Fragment","_renderList","_component_WorkflowExecutionsCard","loadingMore","_sfc_main$1","WorkflowExecutionsSidebar","_","next","getNodeViewTab","MAIN_HEADER_TABS","confirmModal","MODAL_CONFIRM","MODAL_CANCEL","externalHooks","useExternalHooks","router","useRouter","workflowHelpers","useWorkflowHelpers","callDebounced","useDebounce","useToast","useMessage","useTagsStore","useNodeTypesStore","useSettingsStore","useUIStore","PLACEHOLDER_EMPTY_WORKFLOW_ID","executionFilterToQueryFilter","value","loadWorkflow","$emit","hidePreview","onStopExecution","executionsStore","workflowsStore","nodeTypesStore","i18n","useI18n","telemetry","useTelemetry","route","useRoute","toast","filters","storeToRefs","ref","workflow","workflowId","computed","executionId","executions","e","currentExecution","watch","fetchWorkflow","fetchExecution","onMounted","initializeRoute","onDocumentVisibilityChange","onBeforeUnmount","error","data","onAutoRefreshToggle","onRefreshData","NO_NETWORK_ERROR_CODE","onUpdateFilters","newFilters","onExecutionStop","id","onExecutionDelete","executionIndex","nextExecution","onExecutionRetry","retryExecution","onLoadMore","lastId"],"mappings":"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"}