n8n-editor-ui 1.47.0 → 1.47.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 (160) hide show
  1. package/.turbo/turbo-build.log +78 -78
  2. package/dist/assets/{AuthView-BgFWzBDm.js → AuthView-CMxdNKZJ.js} +2 -2
  3. package/dist/assets/{AuthView-BgFWzBDm.js.map → AuthView-CMxdNKZJ.js.map} +1 -1
  4. package/dist/assets/{CanvasControls-m_3acPPd.js → CanvasControls-3FMjwMqA.js} +2 -2
  5. package/dist/assets/{CanvasControls-m_3acPPd.js.map → CanvasControls-3FMjwMqA.js.map} +1 -1
  6. package/dist/assets/{ChangePasswordView-CN6JWR-N.js → ChangePasswordView-_NkkcUVb.js} +2 -2
  7. package/dist/assets/{ChangePasswordView-CN6JWR-N.js.map → ChangePasswordView-_NkkcUVb.js.map} +1 -1
  8. package/dist/assets/{CollectionParameter-DHmcKhO-.js → CollectionParameter-BXMOfisf.js} +2 -2
  9. package/dist/assets/CollectionParameter-BXMOfisf.js.map +1 -0
  10. package/dist/assets/{CredentialsView-D9TXjOnK.js → CredentialsView-B2UF3tK_.js} +2 -2
  11. package/dist/assets/{CredentialsView-D9TXjOnK.js.map → CredentialsView-B2UF3tK_.js.map} +1 -1
  12. package/dist/assets/{ErrorView-CYag8fsg.js → ErrorView-B_lpOlen.js} +2 -2
  13. package/dist/assets/{ErrorView-CYag8fsg.js.map → ErrorView-B_lpOlen.js.map} +1 -1
  14. package/dist/assets/{ExecutionsFilter-Cf35yNfd.js → ExecutionsFilter-dNFZor7l.js} +2 -2
  15. package/dist/assets/{ExecutionsFilter-Cf35yNfd.js.map → ExecutionsFilter-dNFZor7l.js.map} +1 -1
  16. package/dist/assets/{ExecutionsView-ztrgLYNP.js → ExecutionsView-BYe-KERG.js} +2 -2
  17. package/dist/assets/{ExecutionsView-ztrgLYNP.js.map → ExecutionsView-BYe-KERG.js.map} +1 -1
  18. package/dist/assets/{ForgotMyPasswordView-C-0yB-bx.js → ForgotMyPasswordView-D97J06wc.js} +2 -2
  19. package/dist/assets/{ForgotMyPasswordView-C-0yB-bx.js.map → ForgotMyPasswordView-D97J06wc.js.map} +1 -1
  20. package/dist/assets/MainHeader-CT4nF2mY.js +2 -0
  21. package/dist/assets/{MainHeader-CMxbwL4C.js.map → MainHeader-CT4nF2mY.js.map} +1 -1
  22. package/dist/assets/{MainSidebar-BuwaBgG9.js → MainSidebar-CTg5wPzP.js} +2 -2
  23. package/dist/assets/{MainSidebar-BuwaBgG9.js.map → MainSidebar-CTg5wPzP.js.map} +1 -1
  24. package/dist/assets/{NodeCreation-B7Uimsok.js → NodeCreation-BF_L2-99.js} +3 -3
  25. package/dist/assets/{NodeCreation-B7Uimsok.js.map → NodeCreation-BF_L2-99.js.map} +1 -1
  26. package/dist/assets/{NodeCreator-IRjqf3_R.js → NodeCreator-B_yCtSu6.js} +2 -2
  27. package/dist/assets/{NodeCreator-IRjqf3_R.js.map → NodeCreator-B_yCtSu6.js.map} +1 -1
  28. package/dist/assets/{NodeDetailsView-CSnjluIR.js → NodeDetailsView-ggolOsHM.js} +4 -4
  29. package/dist/assets/{NodeDetailsView-CSnjluIR.js.map → NodeDetailsView-ggolOsHM.js.map} +1 -1
  30. package/dist/assets/{NodeView-DMzj-gox.css → NodeView--67hs6V6.css} +1 -1
  31. package/dist/assets/NodeView-B2MlTl6g.js +3 -0
  32. package/dist/assets/NodeView-B2MlTl6g.js.map +1 -0
  33. package/dist/assets/{NodeView.v2-DyU_S0rY.js → NodeView.v2-D_CKj9CS.js} +3 -3
  34. package/dist/assets/{NodeView.v2-DyU_S0rY.js.map → NodeView.v2-D_CKj9CS.js.map} +1 -1
  35. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-C1N0EZCM.js → ProjectCardBadge.vue_vue_type_script_setup_true_lang-DdHOM703.js} +2 -2
  36. package/dist/assets/{ProjectCardBadge.vue_vue_type_script_setup_true_lang-C1N0EZCM.js.map → ProjectCardBadge.vue_vue_type_script_setup_true_lang-DdHOM703.js.map} +1 -1
  37. package/dist/assets/{ProjectSettings-CbNlX27g.js → ProjectSettings-DpJesEZX.js} +2 -2
  38. package/dist/assets/{ProjectSettings-CbNlX27g.js.map → ProjectSettings-DpJesEZX.js.map} +1 -1
  39. package/dist/assets/{ProjectTabs-Cx2VWeba.js → ProjectTabs-D7nNxtFO.js} +2 -2
  40. package/dist/assets/{ProjectTabs-Cx2VWeba.js.map → ProjectTabs-D7nNxtFO.js.map} +1 -1
  41. package/dist/assets/{PushConnectionTracker-C_r8Zv-p.js → PushConnectionTracker-YJuy57g2.js} +2 -2
  42. package/dist/assets/{PushConnectionTracker-C_r8Zv-p.js.map → PushConnectionTracker-YJuy57g2.js.map} +1 -1
  43. package/dist/assets/{ResourcesListLayout-CKSHiUAP.js → ResourcesListLayout-mZ4ijKRB.js} +2 -2
  44. package/dist/assets/{ResourcesListLayout-CKSHiUAP.js.map → ResourcesListLayout-mZ4ijKRB.js.map} +1 -1
  45. package/dist/assets/{RunDataAi-BVqsN7UN.js → RunDataAi-D0m0Vg_p.js} +2 -2
  46. package/dist/assets/{RunDataAi-BVqsN7UN.js.map → RunDataAi-D0m0Vg_p.js.map} +1 -1
  47. package/dist/assets/{RunDataJson-6Yfwd78r.js → RunDataJson-DkHNIqVj.js} +3 -3
  48. package/dist/assets/{RunDataJson-6Yfwd78r.js.map → RunDataJson-DkHNIqVj.js.map} +1 -1
  49. package/dist/assets/{RunDataJsonActions-5ig3g4km.js → RunDataJsonActions-Cgxcpw8t.js} +2 -2
  50. package/dist/assets/{RunDataJsonActions-5ig3g4km.js.map → RunDataJsonActions-Cgxcpw8t.js.map} +1 -1
  51. package/dist/assets/{RunDataSchema-CrW957BW.js → RunDataSchema-C6aZoC0a.js} +3 -3
  52. package/dist/assets/{RunDataSchema-CrW957BW.js.map → RunDataSchema-C6aZoC0a.js.map} +1 -1
  53. package/dist/assets/{RunDataSearch-BrIWOZXO.js → RunDataSearch-D2CDg21N.js} +2 -2
  54. package/dist/assets/{RunDataSearch-BrIWOZXO.js.map → RunDataSearch-D2CDg21N.js.map} +1 -1
  55. package/dist/assets/RunDataTable-D597NRFD.js +2 -0
  56. package/dist/assets/{RunDataTable-B01U16vv.js.map → RunDataTable-D597NRFD.js.map} +1 -1
  57. package/dist/assets/{SamlOnboarding-CfbBlTNm.js → SamlOnboarding-Me669myi.js} +2 -2
  58. package/dist/assets/{SamlOnboarding-CfbBlTNm.js.map → SamlOnboarding-Me669myi.js.map} +1 -1
  59. package/dist/assets/{SettingsApiView-CuliNEKo.js → SettingsApiView-DV8pIHDw.js} +2 -2
  60. package/dist/assets/{SettingsApiView-CuliNEKo.js.map → SettingsApiView-DV8pIHDw.js.map} +1 -1
  61. package/dist/assets/{SettingsCommunityNodesView-CeY4uqH-.js → SettingsCommunityNodesView-D_gtSdk3.js} +2 -2
  62. package/dist/assets/{SettingsCommunityNodesView-CeY4uqH-.js.map → SettingsCommunityNodesView-D_gtSdk3.js.map} +1 -1
  63. package/dist/assets/{SettingsExternalSecrets-CE7ObFx_.js → SettingsExternalSecrets-xprYKjAW.js} +2 -2
  64. package/dist/assets/{SettingsExternalSecrets-CE7ObFx_.js.map → SettingsExternalSecrets-xprYKjAW.js.map} +1 -1
  65. package/dist/assets/{SettingsFakeDoorView-DQqNf_Q9.js → SettingsFakeDoorView-CKaSOYh5.js} +2 -2
  66. package/dist/assets/{SettingsFakeDoorView-DQqNf_Q9.js.map → SettingsFakeDoorView-CKaSOYh5.js.map} +1 -1
  67. package/dist/assets/{SettingsLdapView-9hy5C87y.js → SettingsLdapView-BBCv2tmk.js} +2 -2
  68. package/dist/assets/{SettingsLdapView-9hy5C87y.js.map → SettingsLdapView-BBCv2tmk.js.map} +1 -1
  69. package/dist/assets/{SettingsLogStreamingView-Cc0h5DhT.js → SettingsLogStreamingView-HRIp8kyL.js} +2 -2
  70. package/dist/assets/{SettingsLogStreamingView-Cc0h5DhT.js.map → SettingsLogStreamingView-HRIp8kyL.js.map} +1 -1
  71. package/dist/assets/{SettingsPersonalView-Cs82ezMX.js → SettingsPersonalView-CsUb3SvK.js} +2 -2
  72. package/dist/assets/{SettingsPersonalView-Cs82ezMX.js.map → SettingsPersonalView-CsUb3SvK.js.map} +1 -1
  73. package/dist/assets/{SettingsSourceControl-Dr7R-QpH.js → SettingsSourceControl-BkPpVGsk.js} +2 -2
  74. package/dist/assets/{SettingsSourceControl-Dr7R-QpH.js.map → SettingsSourceControl-BkPpVGsk.js.map} +1 -1
  75. package/dist/assets/{SettingsSso-Di6lHXV2.js → SettingsSso-BueUV3RH.js} +2 -2
  76. package/dist/assets/{SettingsSso-Di6lHXV2.js.map → SettingsSso-BueUV3RH.js.map} +1 -1
  77. package/dist/assets/{SettingsUsageAndPlan-g86Q7EQY.js → SettingsUsageAndPlan-DzDC9m54.js} +2 -2
  78. package/dist/assets/{SettingsUsageAndPlan-g86Q7EQY.js.map → SettingsUsageAndPlan-DzDC9m54.js.map} +1 -1
  79. package/dist/assets/{SettingsUsersView-dOWjUJTW.js → SettingsUsersView-CTd5MQLw.js} +2 -2
  80. package/dist/assets/{SettingsUsersView-dOWjUJTW.js.map → SettingsUsersView-CTd5MQLw.js.map} +1 -1
  81. package/dist/assets/{SettingsView-DQ0hQWFt.js → SettingsView-DMxqsNh0.js} +2 -2
  82. package/dist/assets/{SettingsView-DQ0hQWFt.js.map → SettingsView-DMxqsNh0.js.map} +1 -1
  83. package/dist/assets/{SetupView-CqT8d0D8.js → SetupView-tkyttChl.js} +2 -2
  84. package/dist/assets/{SetupView-CqT8d0D8.js.map → SetupView-tkyttChl.js.map} +1 -1
  85. package/dist/assets/{SetupWorkflowCredentialsButton-BR-ObOqw.js → SetupWorkflowCredentialsButton-B3HZvKQp.js} +2 -2
  86. package/dist/assets/{SetupWorkflowCredentialsButton-BR-ObOqw.js.map → SetupWorkflowCredentialsButton-B3HZvKQp.js.map} +1 -1
  87. package/dist/assets/{SetupWorkflowFromTemplateView-DHHtk6_-.js → SetupWorkflowFromTemplateView-DL3b-TZS.js} +2 -2
  88. package/dist/assets/{SetupWorkflowFromTemplateView-DHHtk6_-.js.map → SetupWorkflowFromTemplateView-DL3b-TZS.js.map} +1 -1
  89. package/dist/assets/{SigninView-2eLLF8DU.js → SigninView-BPLGsvzz.js} +2 -2
  90. package/dist/assets/{SigninView-2eLLF8DU.js.map → SigninView-BPLGsvzz.js.map} +1 -1
  91. package/dist/assets/{SignoutView-BQyCyjsK.js → SignoutView-BySf9D7k.js} +2 -2
  92. package/dist/assets/{SignoutView-BQyCyjsK.js.map → SignoutView-BySf9D7k.js.map} +1 -1
  93. package/dist/assets/{SignupView-ByYEkUpW.js → SignupView-EU3JWt4T.js} +2 -2
  94. package/dist/assets/{SignupView-ByYEkUpW.js.map → SignupView-EU3JWt4T.js.map} +1 -1
  95. package/dist/assets/{TemplateDetails-I6WMCxGm.js → TemplateDetails-Cemx-ozB.js} +2 -2
  96. package/dist/assets/{TemplateDetails-I6WMCxGm.js.map → TemplateDetails-Cemx-ozB.js.map} +1 -1
  97. package/dist/assets/{TemplateList-DRf0Cbhg.js → TemplateList-h3b91b7e.js} +2 -2
  98. package/dist/assets/{TemplateList-DRf0Cbhg.js.map → TemplateList-h3b91b7e.js.map} +1 -1
  99. package/dist/assets/{TemplatesCollectionView-BYkDe49v.js → TemplatesCollectionView-aBX3f7Pp.js} +2 -2
  100. package/dist/assets/{TemplatesCollectionView-BYkDe49v.js.map → TemplatesCollectionView-aBX3f7Pp.js.map} +1 -1
  101. package/dist/assets/{TemplatesSearchView-CiZ7aZcy.js → TemplatesSearchView-DyoC9WUR.js} +2 -2
  102. package/dist/assets/{TemplatesSearchView-CiZ7aZcy.js.map → TemplatesSearchView-DyoC9WUR.js.map} +1 -1
  103. package/dist/assets/{TemplatesView-zULLoEwu.js → TemplatesView-GQmC_sY8.js} +2 -2
  104. package/dist/assets/{TemplatesView-zULLoEwu.js.map → TemplatesView-GQmC_sY8.js.map} +1 -1
  105. package/dist/assets/{TemplatesWorkflowView-DptRLbdX.js → TemplatesWorkflowView-C-0pXdDh.js} +2 -2
  106. package/dist/assets/{TemplatesWorkflowView-DptRLbdX.js.map → TemplatesWorkflowView-C-0pXdDh.js.map} +1 -1
  107. package/dist/assets/{VariablesView-NcNcsjHY.js → VariablesView-BO5fdkwt.js} +2 -2
  108. package/dist/assets/{VariablesView-NcNcsjHY.js.map → VariablesView-BO5fdkwt.js.map} +1 -1
  109. package/dist/assets/{WorkerView-dtJzfgCM.js → WorkerView-C3Rdbsfq.js} +2 -2
  110. package/dist/assets/{WorkerView-dtJzfgCM.js.map → WorkerView-C3Rdbsfq.js.map} +1 -1
  111. package/dist/assets/{WorkflowActivator-D6Zad1X2.js → WorkflowActivator-DQXSsw0V.js} +2 -2
  112. package/dist/assets/{WorkflowActivator-D6Zad1X2.js.map → WorkflowActivator-DQXSsw0V.js.map} +1 -1
  113. package/dist/assets/{WorkflowExecutionsInfoAccordion-C86A1CHv.js → WorkflowExecutionsInfoAccordion-DJPF47om.js} +2 -2
  114. package/dist/assets/{WorkflowExecutionsInfoAccordion-C86A1CHv.js.map → WorkflowExecutionsInfoAccordion-DJPF47om.js.map} +1 -1
  115. package/dist/assets/{WorkflowExecutionsLandingPage-DAfHDMth.js → WorkflowExecutionsLandingPage-DoSsHWxH.js} +2 -2
  116. package/dist/assets/{WorkflowExecutionsLandingPage-DAfHDMth.js.map → WorkflowExecutionsLandingPage-DoSsHWxH.js.map} +1 -1
  117. package/dist/assets/{WorkflowExecutionsPreview-C_EBlNX6.js → WorkflowExecutionsPreview-Dt23N5A4.js} +2 -2
  118. package/dist/assets/WorkflowExecutionsPreview-Dt23N5A4.js.map +1 -0
  119. package/dist/assets/WorkflowExecutionsView-CpAIVxYQ.js +2 -0
  120. package/dist/assets/WorkflowExecutionsView-CpAIVxYQ.js.map +1 -0
  121. package/dist/assets/{WorkflowHistory-DkdQ1koF.js → WorkflowHistory-D1-E_J_s.js} +2 -2
  122. package/dist/assets/{WorkflowHistory-DkdQ1koF.js.map → WorkflowHistory-D1-E_J_s.js.map} +1 -1
  123. package/dist/assets/{WorkflowOnboardingView-BPMBW_hz.js → WorkflowOnboardingView-fzAZuVh5.js} +2 -2
  124. package/dist/assets/{WorkflowOnboardingView-BPMBW_hz.js.map → WorkflowOnboardingView-fzAZuVh5.js.map} +1 -1
  125. package/dist/assets/{WorkflowPreview-CLzyAzmJ.js → WorkflowPreview-BkL2jDRm.js} +2 -2
  126. package/dist/assets/{WorkflowPreview-CLzyAzmJ.js.map → WorkflowPreview-BkL2jDRm.js.map} +1 -1
  127. package/dist/assets/{WorkflowsView-CzJx_-P5.js → WorkflowsView-rbygROmM.js} +2 -2
  128. package/dist/assets/{WorkflowsView-CzJx_-P5.js.map → WorkflowsView-rbygROmM.js.map} +1 -1
  129. package/dist/assets/{cloud-CRMEbZfJ.js → cloud-B90x0-JC.js} +2 -2
  130. package/dist/assets/{cloud-CRMEbZfJ.js.map → cloud-B90x0-JC.js.map} +1 -1
  131. package/dist/assets/{collaboration.store-Co5wlk8y.js → collaboration.store-ElxCV91F.js} +2 -2
  132. package/dist/assets/{collaboration.store-Co5wlk8y.js.map → collaboration.store-ElxCV91F.js.map} +1 -1
  133. package/dist/assets/index-BE0Xl-jy.js +341 -0
  134. package/dist/assets/index-BE0Xl-jy.js.map +1 -0
  135. package/dist/assets/{nodeCreator.store-CTXKjjQB.js → nodeCreator.store-Q1T99YCl.js} +2 -2
  136. package/dist/assets/{nodeCreator.store-CTXKjjQB.js.map → nodeCreator.store-Q1T99YCl.js.map} +1 -1
  137. package/dist/assets/{templateActions-CIRsIG2W.js → templateActions-B7R6qRak.js} +2 -2
  138. package/dist/assets/{templateActions-CIRsIG2W.js.map → templateActions-B7R6qRak.js.map} +1 -1
  139. package/dist/assets/{useExecutionDebugging-BzC-1xF-.js → useExecutionDebugging-BJ0CgMh8.js} +2 -2
  140. package/dist/assets/{useExecutionDebugging-BzC-1xF-.js.map → useExecutionDebugging-BJ0CgMh8.js.map} +1 -1
  141. package/dist/assets/{useExecutionHelpers-C2K8pfbF.js → useExecutionHelpers-D3294Pbg.js} +2 -2
  142. package/dist/assets/{useExecutionHelpers-C2K8pfbF.js.map → useExecutionHelpers-D3294Pbg.js.map} +1 -1
  143. package/dist/assets/{usePushConnection-EMXpPhl-.js → usePushConnection-CsYeEXN4.js} +2 -2
  144. package/dist/assets/{usePushConnection-EMXpPhl-.js.map → usePushConnection-CsYeEXN4.js.map} +1 -1
  145. package/dist/assets/{useUserHelpers-Bn_ZV9Jv.js → useUserHelpers-CzNhI0vP.js} +2 -2
  146. package/dist/assets/{useUserHelpers-Bn_ZV9Jv.js.map → useUserHelpers-CzNhI0vP.js.map} +1 -1
  147. package/dist/assets/{useWorkflowActivate-BwVActuc.js → useWorkflowActivate-D8iK20ua.js} +2 -2
  148. package/dist/assets/{useWorkflowActivate-BwVActuc.js.map → useWorkflowActivate-D8iK20ua.js.map} +1 -1
  149. package/dist/index.html +1 -1
  150. package/package.json +1 -1
  151. package/dist/assets/CollectionParameter-DHmcKhO-.js.map +0 -1
  152. package/dist/assets/MainHeader-CMxbwL4C.js +0 -2
  153. package/dist/assets/NodeView-C-hQ3_xD.js +0 -3
  154. package/dist/assets/NodeView-C-hQ3_xD.js.map +0 -1
  155. package/dist/assets/RunDataTable-B01U16vv.js +0 -2
  156. package/dist/assets/WorkflowExecutionsPreview-C_EBlNX6.js.map +0 -1
  157. package/dist/assets/WorkflowExecutionsView-Nm1Oo9El.js +0 -2
  158. package/dist/assets/WorkflowExecutionsView-Nm1Oo9El.js.map +0 -1
  159. package/dist/assets/index-Dtri_pSJ.js +0 -341
  160. package/dist/assets/index-Dtri_pSJ.js.map +0 -1
@@ -1,2 +0,0 @@
1
- import{m as A}from"./pinia-sugP77Im.js";import{j as L,L as j,s as O,et as R,eu as S,a3 as B}from"./index-Dtri_pSJ.js";import{D as F}from"./NodeDetailsView-CSnjluIR.js";import{M as W,T as J}from"./TextWithHighlights-kUoC0rXY.js";import{G as q,ag as v,l as r,m as g,I as a,p as o,F as M,a7 as E,U as h,O as d,S as T,T as $,R as N,M as P}from"./vendor-Dv5OeN6t.js";import{_ as G}from"./n8n-4UEsHtUL.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-BBHtM40w.js";import"./lodash-es-CZ1inz46.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-CIxnBJXX.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-DBO6T13I.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-CWDO6_kP.js";import"./@n8n/codemirror-lang-Dl0FW_KM.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-BOfzoJX1.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";import"./file-saver-By8WREO3.js";import"./vue-json-pretty-Cqx2Hpq3.js";import"./dateFormatter-CfbOITvW.js";import"./RunDataAi-BVqsN7UN.js";import"./useWorkflowActivate-BwVActuc.js";const I=40,U=q({name:"RunDataTable",components:{Draggable:F,MappingPill:W,TextWithHighlights:J},props:{node:{type:Object,required:!0},inputData:{type:Array,required:!0},mappingEnabled:{type:Boolean},distanceFromActive:{type:Number,required:!0},runIndex:{type:Number},outputIndex:{type:Number},totalRuns:{type:Number},pageOffset:{type:Number,required:!0},hasDefaultHoverState:{type:Boolean},search:{type:String}},setup(){return{externalHooks:B()}},data(){return{activeColumn:-1,forceShowGrip:!1,draggedColumn:!1,draggingPath:null,hoveringPath:null,mappingHintVisible:!1,activeRow:null,columnLimit:I,columnLimitExceeded:!1}},mounted(){if(this.tableData&&this.tableData.columns&&this.$refs.draggable){const e=this.$refs.draggable.$refs.wrapper;e&&this.$emit("mounted",{avgRowHeight:e.offsetHeight/this.tableData.data.length})}},computed:{...A(j,L),hoveringItem(){return this.ndvStore.hoveringItem},pairedItemMappings(){return this.workflowsStore.workflowExecutionPairedItemMappings},tableData(){return this.convertToTable(this.inputData)},focusedMappableInput(){return this.ndvStore.focusedMappableInput},highlight(){return this.ndvStore.highlightDraggables}},methods:{shorten:O,isHoveringRow(e){var l;if(e===this.activeRow)return!0;const t=this.pageOffset+e;if(t===0&&!this.hoveringItem&&this.hasDefaultHoverState&&this.distanceFromActive===1)return!0;const n=R(((l=this.node)==null?void 0:l.name)??"",this.runIndex||0,this.outputIndex||0,t);if(!this.hoveringItem||!this.pairedItemMappings[n])return!1;const m=R(this.hoveringItem.nodeName,this.hoveringItem.runIndex,this.hoveringItem.outputIndex,this.hoveringItem.itemIndex);return this.pairedItemMappings[n].has(m)},onMouseEnterCell(e){const t=e.target;if(t&&this.mappingEnabled){const n=t.dataset.col;n&&!isNaN(parseInt(n,10))&&(this.activeColumn=parseInt(n,10))}if(t){const n=t.dataset.row;n&&!isNaN(parseInt(n,10))&&(this.activeRow=parseInt(n,10),this.$emit("activeRowChanged",this.pageOffset+this.activeRow))}},onMouseLeaveCell(){this.activeColumn=-1,this.activeRow=null,this.$emit("activeRowChanged",null)},onMouseEnterKey(e,t){this.hoveringPath=this.getCellExpression(e,t)},onMouseLeaveKey(){this.hoveringPath=null},isHovering(e,t){const n=this.getCellExpression(e,t);return this.hoveringPath===n},getExpression(e){return this.node?S({nodeName:this.node.name,distanceFromActive:this.distanceFromActive,path:[e]}):""},getPathNameFromTarget(e){return e?e.dataset.name:""},getCellPathName(e,t){const n=e[e.length-1];return typeof n=="string"?n:e.length>1?`${e[e.length-2]}[${n}]`:`${this.tableData.columns[t]}[${n}]`},getCellExpression(e,t){if(!this.node)return"";const n=this.tableData.columns[t];return S({nodeName:this.node.name,distanceFromActive:this.distanceFromActive,path:[n,...e]})},isEmpty(e){return e===""||Array.isArray(e)&&e.length===0||typeof e=="object"&&e!==null&&Object.keys(e).length===0||e===null||e===void 0},getValueToRender(e){return e===""?this.$locale.baseText("runData.emptyString"):typeof e=="string"?e:Array.isArray(e)&&e.length===0?this.$locale.baseText("runData.emptyArray"):typeof e=="object"&&e!==null&&Object.keys(e).length===0?this.$locale.baseText("runData.emptyObject"):e==null?`[${e}]`:e===!0||e===!1||typeof e=="number"?e.toString():JSON.stringify(e)},onDragStart(){this.draggedColumn=!0,this.ndvStore.resetMappingTelemetry()},onCellDragStart(e){e!=null&&e.dataset.value&&(this.draggingPath=e.dataset.value),this.onDragStart()},onCellDragEnd(e){this.draggingPath=null,this.onDragEnd(e.dataset.name||"","tree",e.dataset.depth||"0")},isDraggingKey(e,t){if(this.draggingPath)return this.draggingPath===this.getCellExpression(e,t)},onDragEnd(e,t,n="0"){setTimeout(()=>{const m=this.ndvStore.mappingTelemetry,l={src_node_type:this.node.type,src_field_name:e,src_nodes_back:this.distanceFromActive,src_run_index:this.runIndex,src_runs_total:this.totalRuns,src_field_nest_level:parseInt(n,10),src_view:"table",src_element:t,success:!1,...m};this.externalHooks.run("runDataTable.onDragEnd",l),this.$telemetry.track("User dragged data for mapping",l,{withPostHog:!0})},1e3)},isSimple(e){return typeof e!="object"||e===null||Array.isArray(e)&&e.length===0||typeof e=="object"&&Object.keys(e).length===0},hasJsonInColumn(e){return this.tableData.hasJson[this.tableData.columns[e]]},convertToTable(e){const t=[],n=[];let m,l,c;const C={};return e.forEach(y=>{if(!y.hasOwnProperty("json"))return;c=y.json,l=[];const D=Object.keys(c||{});D.length>I?(this.columnLimitExceeded=!0,m=D.slice(0,I)):m=D,n.forEach(s=>{c.hasOwnProperty(s)?(l.push(c[s]),m.splice(m.indexOf(s),1),C[s]=C[s]||typeof c[s]=="object"&&Object.keys(c[s]||{}).length>0||!1):l.push(void 0)}),m.forEach(s=>{n.push(s),l.push(c[s]),C[s]=C[s]||typeof c[s]=="object"&&Object.keys(c[s]||{}).length>0||!1}),t.push(l)}),t.forEach(y=>{n.length>y.length&&y.push(...new Array(n.length-y.length))}),{hasJson:C,columns:n,data:t}},switchToJsonView(){this.$emit("displayModeChange","json")}},watch:{focusedMappableInput(e){setTimeout(()=>{this.forceShowGrip=!!this.focusedMappableInput},e?300:150)}}}),z="/%257B%257BBASE_PATH%257D%257D/static/data-mapping-gif.gif",X="_dataDisplay_5ss8n_1",Q="_table_5ss8n_14",Y="_nodeClass_5ss8n_63",Z="_emptyCell_5ss8n_67",x="_header_5ss8n_71",ee="_draggableHeader_5ss8n_83",te="_dragButton_5ss8n_87",ne="_highlight_5ss8n_91",ae="_draggingHeader_5ss8n_95",se="_activeHeader_5ss8n_100",oe="_dataKey_5ss8n_109",re="_value_5ss8n_118",ie="_nestedValue_5ss8n_122 _value_5ss8n_118",le="_mappable_5ss8n_127",ge="_empty_5ss8n_67",de="_limitColWidth_5ss8n_135",pe="_minColWidth_5ss8n_139",he="_hoveringKey_5ss8n_143",me="_draggingKey_5ss8n_147",ue="_tableRightMargin_5ss8n_151",ce="_hoveringRow_5ss8n_159",ye="_warningTooltip_5ss8n_164",be={dataDisplay:X,table:Q,nodeClass:Y,emptyCell:Z,header:x,draggableHeader:ee,dragButton:te,highlight:ne,draggingHeader:ae,activeHeader:se,dataKey:oe,value:re,nestedValue:ie,mappable:le,empty:ge,limitColWidth:de,minColWidth:pe,hoveringKey:he,draggingKey:me,tableRightMargin:ue,hoveringRow:ce,warningTooltip:ye},fe=["data-row"],ve=o("img",{src:z},null,-1),Ce=["data-test-id"],De=["data-row","data-col"],we=["data-name","data-value","data-depth","onMouseenter"],$e={key:0};function Me(e,t,n,m,l,c){const C=v("n8n-info-tip"),y=v("MappingPill"),D=v("TextWithHighlights"),s=v("font-awesome-icon"),_=v("Draggable"),H=v("n8n-tooltip"),k=v("i18n-t"),K=v("n8n-tree");return r(),g("div",{class:a([e.$style.dataDisplay,{[e.$style.highlight]:e.highlight}])},[e.tableData.columns&&e.tableData.columns.length===0?(r(),g("table",{key:0,class:a(e.$style.table)},[o("tr",null,[o("th",{class:a(e.$style.emptyCell)},null,2),o("th",{class:a(e.$style.tableRightMargin)},null,2)]),(r(!0),g(M,null,E(e.tableData.data,(u,p)=>(r(),g("tr",{key:p,class:a({[e.$style.hoveringRow]:e.isHoveringRow(p)})},[o("td",{"data-row":p,"data-col":0,onMouseenter:t[0]||(t[0]=(...i)=>e.onMouseEnterCell&&e.onMouseEnterCell(...i)),onMouseleave:t[1]||(t[1]=(...i)=>e.onMouseLeaveCell&&e.onMouseLeaveCell(...i))},[h(C,null,{default:d(()=>[T($(e.$locale.baseText("runData.emptyItemHint")),1)]),_:1})],40,fe),o("td",{class:a(e.$style.tableRightMargin)},null,2)],2))),128))],2)):(r(),g("table",{key:1,class:a(e.$style.table)},[o("thead",null,[o("tr",null,[(r(!0),g(M,null,E(e.tableData.columns||[],(u,p)=>(r(),g("th",{key:u},[h(H,{placement:"bottom-start",disabled:!e.mappingEnabled,"show-after":1e3},{content:d(()=>[o("div",null,[ve,T(" "+$(e.$locale.baseText("dataMapping.dragColumnToFieldHint")),1)])]),default:d(()=>[h(_,{type:"mapping",data:e.getExpression(u),disabled:!e.mappingEnabled,onDragstart:e.onDragStart,onDragend:i=>e.onDragEnd(i,"column")},{preview:d(({canDrop:i})=>[h(y,{html:e.shorten(u,16,2),"can-drop":i},null,8,["html","can-drop"])]),default:d(({isDragging:i})=>[o("div",{class:a({[e.$style.header]:!0,[e.$style.draggableHeader]:e.mappingEnabled,[e.$style.activeHeader]:(p===e.activeColumn||e.forceShowGrip)&&e.mappingEnabled,[e.$style.draggingHeader]:i})},[h(D,{content:e.getValueToRender(u||""),search:e.search},null,8,["content","search"]),o("div",{class:a(e.$style.dragButton)},[h(s,{icon:"grip-vertical"})],2)],2)]),_:2},1032,["data","disabled","onDragstart","onDragend"])]),_:2},1032,["disabled"])]))),128)),e.columnLimitExceeded?(r(),g("th",{key:0,class:a(e.$style.header)},[h(H,{placement:"bottom-end"},{content:d(()=>[o("div",null,[h(k,{tag:"span",keypath:"dataMapping.tableView.tableColumnsExceeded.tooltip"},{columnLimit:d(()=>[T($(e.columnLimit),1)]),link:d(()=>[o("a",{onClick:t[2]||(t[2]=(...u)=>e.switchToJsonView&&e.switchToJsonView(...u))},$(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded.tooltip.link")),1)]),_:1})])]),default:d(()=>[o("span",null,[h(s,{class:a(e.$style.warningTooltip),icon:"exclamation-triangle"},null,8,["class"]),T(" "+$(e.$locale.baseText("dataMapping.tableView.tableColumnsExceeded")),1)])]),_:1})],2)):N("",!0),o("th",{class:a(e.$style.tableRightMargin)},null,2)])]),h(_,{ref:"draggable",tag:"tbody",type:"mapping","target-data-key":"mappable",disabled:!e.mappingEnabled,onDragstart:e.onCellDragStart,onDragend:e.onCellDragEnd},{preview:d(({canDrop:u,el:p})=>[h(y,{html:e.shorten(e.getPathNameFromTarget(p)||"",16,2),"can-drop":u},null,8,["html","can-drop"])]),default:d(()=>[(r(!0),g(M,null,E(e.tableData.data,(u,p)=>(r(),g("tr",{key:p,class:a({[e.$style.hoveringRow]:e.isHoveringRow(p)}),"data-test-id":e.isHoveringRow(p)?"hovering-item":void 0},[(r(!0),g(M,null,E(u,(i,b)=>(r(),g("td",{key:b,"data-row":p,"data-col":b,class:a(e.hasJsonInColumn(b)?e.$style.minColWidth:e.$style.limitColWidth),onMouseenter:t[4]||(t[4]=(...f)=>e.onMouseEnterCell&&e.onMouseEnterCell(...f)),onMouseleave:t[5]||(t[5]=(...f)=>e.onMouseLeaveCell&&e.onMouseLeaveCell(...f))},[e.isSimple(i)?(r(),P(D,{key:0,content:e.getValueToRender(i),search:e.search,class:a({[e.$style.value]:!0,[e.$style.empty]:e.isEmpty(i)})},null,8,["content","search","class"])):(r(),P(K,{key:1,"node-class":e.$style.nodeClass,value:i},{label:d(({label:f,path:w})=>[o("span",{class:a({[e.$style.hoveringKey]:e.mappingEnabled&&e.isHovering(w,b),[e.$style.draggingKey]:e.isDraggingKey(w,b),[e.$style.dataKey]:!0,[e.$style.mappable]:e.mappingEnabled}),"data-target":"mappable","data-name":e.getCellPathName(w,b),"data-value":e.getCellExpression(w,b),"data-depth":w.length,onMouseenter:()=>e.onMouseEnterKey(w,b),onMouseleave:t[3]||(t[3]=(...V)=>e.onMouseLeaveKey&&e.onMouseLeaveKey(...V))},$(f||e.$locale.baseText("runData.unnamedField")),43,we)]),value:d(({value:f})=>[h(D,{content:e.getValueToRender(f),search:e.search,class:a({[e.$style.nestedValue]:!0,[e.$style.empty]:e.isEmpty(f)})},null,8,["content","search","class"])]),_:2},1032,["node-class","value"]))],42,De))),128)),e.columnLimitExceeded?(r(),g("td",$e)):N("",!0),o("td",{class:a(e.$style.tableRightMargin)},null,2)],10,Ce))),128))]),_:1},8,["disabled","onDragstart","onDragend"])],2))],2)}const Ee={$style:be},lt=G(U,[["render",Me],["__cssModules",Ee]]);export{lt as default};
2
- //# sourceMappingURL=RunDataTable-B01U16vv.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkflowExecutionsPreview-C_EBlNX6.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 +0,0 @@
1
- import{m as N,s as ue}from"./pinia-sugP77Im.js";import{G as A,ag as c,l as u,m as I,U as d,O as h,p as S,S as $,T as y,I as l,M as _,R as E,F as le,a7 as ce,a0 as de,aH as q,az as fe,r as C,e as D,d as P,b as me,y as pe,u as xe}from"./vendor-Dv5OeN6t.js";import{j as U,V as R,K as G,aI as he,J as we,A as ye,aJ as Ee,q as ge,d as X,u as j,H as ve,p as ke,e as $e,b as _e,a4 as K,c as J,P as Ie,cI as Te,a3 as be,x as Se,cJ as Re,G as Me}from"./index-Dtri_pSJ.js";import{E as Le,a as We}from"./ExecutionsFilter-Cf35yNfd.js";import{u as Ce}from"./useExecutionHelpers-C2K8pfbF.js";import{_ as F}from"./n8n-4UEsHtUL.js";import{W as De}from"./WorkflowExecutionsInfoAccordion-C86A1CHv.js";import"./axios-Mm4CS0gO.js";import"./flatted-DN8lQ2XG.js";import"./@vueuse/core-BBHtM40w.js";import"./lodash-es-CZ1inz46.js";import"./@n8n/permissions-BxxteU-C.js";import"./dateformat-CIxnBJXX.js";import"./vue-i18n-Delvyc9x.js";import"./uuid-SoommWqA.js";import"./luxon-CLwAIbs0.js";import"./@n8n/codemirror-lang-sql-DBO6T13I.js";import"./@lezer/common-B6ct0j_v.js";import"./prettier-bS6l4Vb1.js";import"./@jsplumb/util-DS-9vq_E.js";import"./@jsplumb/core-CVBraiyY.js";import"./@jsplumb/common-CF-b-6-M.js";import"./@jsplumb/connector-bezier-BGU0Ovbw.js";import"./@jsplumb/browser-ui-BVF2KoJK.js";import"./codemirror-lang-html-n8n-CWDO6_kP.js";import"./@n8n/codemirror-lang-Dl0FW_KM.js";import"./esprima-next-nhoSXAeq.js";import"./fast-json-stable-stringify-BOfzoJX1.js";import"./timeago.js-CiyKClrF.js";import"./qrcode.vue-BGkPba5A.js";import"./vue3-touch-events-mV0oX_Sl.js";import"./chart.js-343vZi4M.js";import"./dateFormatter-CfbOITvW.js";const Ae=A({name:"WorkflowExecutionsCard",components:{ExecutionsTime:Le},props:{execution:{type:Object,required:!0},highlight:{type:Boolean,default:!1},showGap:{type:Boolean,default:!1}},emits:["retryExecution","mounted"],setup(){return{executionHelpers:Ce()}},computed:{...N(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 R.EXECUTION_PREVIEW}},mounted(){this.$emit("mounted",this.execution.id)},methods:{onRetryMenuItemSelect(e){this.$emit("retryExecution",{execution:this.execution,command:e})}}}),Oe="_WorkflowExecutionsCard_16ozu_1",ze="_active_16ozu_8",Ne="_executionStatus_16ozu_11",Ue="_executionLink_16ozu_14",Fe="_spinner_16ozu_17",He="_running_16ozu_17",Be="_statusLabel_16ozu_24",Ve="_success_16ozu_29",Pe="_waiting_16ozu_32",qe="_error_16ozu_38",Ge="_unknown_16ozu_44",Xe="_icon_16ozu_61",je="_icons_16ozu_66",Ke="_retry_16ozu_74",Je="_manual_16ozu_77",Qe="_showGap_16ozu_85",Ye={WorkflowExecutionsCard:Oe,active:ze,executionStatus:Ne,executionLink:Ue,new:"_new_16ozu_17",spinner:Fe,running:He,statusLabel:Be,success:Ve,waiting:Pe,error:qe,unknown:Ge,icon:Xe,icons:je,retry:Ke,manual:Je,showGap:Qe},Ze={key:0};function et(e,t,n,f,g,s){const w=c("n8n-text"),v=c("n8n-spinner"),m=c("ExecutionsTime"),r=c("n8n-action-dropdown"),L=c("font-awesome-icon"),M=c("n8n-tooltip"),T=c("router-link");return u(),I("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(T,{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:h(()=>[S("div",{class:l(e.$style.description)},[d(w,{color:"text-dark",bold:!0,size:"medium","data-test-id":"execution-time"},{default:h(()=>[$(y(e.executionUIDetails.startTime),1)]),_:1}),S("div",{class:l(e.$style.executionStatus)},[e.executionUIDetails.name==="running"?(u(),_(v,{key:0,size:"small",class:l([e.$style.spinner,"mr-4xs"])},null,8,["class"])):E("",!0),d(w,{class:l(e.$style.statusLabel),size:"small"},{default:h(()=>[$(y(e.executionUIDetails.label),1)]),_:1},8,["class"]),$(" "+y(" ")+" "),e.executionUIDetails.name==="running"?(u(),_(w,{key:1,color:e.isActive?"text-dark":"text-base",size:"small"},{default:h(()=>[$(y(e.$locale.baseText("executionDetails.runningTimeRunning"))+" ",1),d(m,{"start-time":e.execution.startedAt},null,8,["start-time"])]),_:1},8,["color"])):e.executionUIDetails.runningTime!==""?(u(),_(w,{key:2,color:e.isActive?"text-dark":"text-base",size:"small"},{default:h(()=>{var a;return[$(y(e.$locale.baseText("executionDetails.runningTimeFinished",{interpolate:{time:(a=e.executionUIDetails)==null?void 0:a.runningTime}})),1)]}),_:1},8,["color"])):E("",!0)],2),e.execution.mode==="retry"?(u(),I("div",Ze,[d(w,{color:e.isActive?"text-dark":"text-base",size:"small"},{default:h(()=>[$(y(e.$locale.baseText("executionDetails.retry"))+" #"+y(e.execution.retryOf),1)]),_:1},8,["color"])])):E("",!0)],2),S("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"])):E("",!0),e.execution.mode==="manual"?(u(),_(M,{key:1,placement:"top"},{content:h(()=>[S("span",null,y(e.$locale.baseText("executionsList.test")),1)]),default:h(()=>[e.execution.mode==="manual"?(u(),_(L,{key:0,class:l([e.$style.icon,e.$style.manual]),icon:"flask"},null,8,["class"])):E("",!0)]),_:1})):E("",!0)],2)]),_:1},8,["class","to","data-test-execution-status"])],2)}const tt={$style:Ye},ot=F(Ae,[["render",et],["__cssModules",tt]]),nt=A({name:"WorkflowExecutionsSidebar",components:{WorkflowExecutionsCard:ot,WorkflowExecutionsInfoAccordion:De,ExecutionsFilter:We},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:{},mountedItems:[],autoScrollDeps:{activeExecutionSet:!1,cardsMounted:!1,scroll:!0}}},computed:{...N(G,U)},watch:{$route(e,t){t.name===R.EXECUTION_PREVIEW&&e.name===R.EXECUTION_HOME&&this.$router.go(-1)},"executionsStore.activeExecution"(e,t){e&&e.id!==(t==null?void 0:t.id)&&(this.autoScrollDeps.activeExecutionSet=!0)},autoScrollDeps:{handler(e){Object.values(e).every(Boolean)&&this.scrollToActiveCard()},deep:!0}},methods:{onItemMounted(e){var t;this.mountedItems.push(e),this.mountedItems.length===this.executions.length&&(this.autoScrollDeps.cardsMounted=!0,this.checkListSize()),((t=this.executionsStore.activeExecution)==null?void 0:t.id)===e&&(this.autoScrollDeps.activeExecutionSet=!0)},loadMore(e=20){if(!this.loading){const t=this.$refs.executionList;if(t){const n=t.offsetHeight-(t.scrollHeight-t.scrollTop);n>-10&&n<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(){const e=this.$refs.container,t=this.$refs[`execution-${this.mountedItems[this.mountedItems.length-1]}`];if(e&&(t!=null&&t.length)){const n=t[0].$el,f=Math.ceil(e.clientHeight/n.clientHeight);f>this.executions.length&&this.$emit("loadMore",f-this.executions.length)}},scrollToActiveCard(){var n;const e=this.$refs.executionList,t=this.$refs[`execution-${(n=this.executionsStore.activeExecution)==null?void 0:n.id}`];if(e&&(t!=null&&t.length)&&this.executionsStore.activeExecution){const g=t[0].$el.getBoundingClientRect(),s=200;g.top>e.offsetHeight&&(this.autoScrollDeps.scroll=!1,e.scrollTo({top:g.top-s,behavior:"smooth"}))}}}}),st="_container_qg8we_1",it="_heading_qg8we_12",rt="_controls_qg8we_19",at="_executionList_qg8we_31",ut="_infoAccordion_qg8we_49",lt="_noResultsContainer_qg8we_61",ct={container:st,heading:it,controls:rt,executionList:at,infoAccordion:ut,noResultsContainer:lt},dt={key:0,class:"mr-l"},ft={key:3,class:"mr-m"};function mt(e,t,n,f,g,s){const w=c("n8n-heading"),v=c("el-checkbox"),m=c("ExecutionsFilter"),r=c("n8n-loading"),L=c("n8n-text"),M=c("WorkflowExecutionsCard"),T=c("WorkflowExecutionsInfoAccordion");return u(),I("div",{ref:"container",class:l(["executions-sidebar",e.$style.container]),"data-test-id":"executions-sidebar"},[S("div",{class:l(e.$style.heading)},[d(w,{tag:"h2",size:"medium",color:"text-dark"},{default:h(()=>[$(y(e.$locale.baseText("generic.executions")),1)]),_:1})],2),S("div",{class:l(e.$style.controls)},[d(v,{modelValue:e.executionsStore.autoRefresh,"onUpdate:modelValue":[t[0]||(t[0]=a=>e.executionsStore.autoRefresh=a),t[1]||(t[1]=a=>e.$emit("update:autoRefresh",a))],"data-test-id":"auto-refresh-checkbox"},{default:h(()=>[$(y(e.$locale.baseText("executionsList.autoRefresh")),1)]),_:1},8,["modelValue"]),d(m,{"popover-placement":"left-start",onFilterChanged:e.onFilterChanged},null,8,["onFilterChanged"])],2),S("div",{ref:"executionList",class:l(e.$style.executionList),"data-test-id":"current-executions-list",onScroll:t[2]||(t[2]=a=>e.loadMore(20))},[e.loading?(u(),I("div",dt,[d(r,{variant:"rect"})])):E("",!0),!e.loading&&e.executions.length===0?(u(),I("div",{key:1,class:l(e.$style.noResultsContainer),"data-test-id":"execution-list-empty"},[d(L,{color:"text-base",size:"medium",align:"center"},{default:h(()=>[$(y(e.$locale.baseText("executionsLandingPage.noResults")),1)]),_:1})],2)):e.temporaryExecution?(u(),_(M,{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"])):E("",!0),d(de,{name:"executions-list"},{default:h(()=>[(u(!0),I(le,null,ce(e.executions,a=>(u(),_(M,{key:a.id,ref_for:!0,ref:`execution-${a.id}`,execution:a,"data-test-id":`execution-details-${a.id}`,onRetryExecution:e.onRetryExecution,onMounted:e.onItemMounted},null,8,["execution","data-test-id","onRetryExecution","onMounted"]))),128))]),_:1}),e.loadingMore?(u(),I("div",ft,[d(r,{variant:"p",rows:1})])):E("",!0)],34),S("div",{class:l(e.$style.infoAccordion)},[d(T,{"initially-expanded":!1})],2)],2)}const pt={$style:ct},xt=F(nt,[["render",mt],["__cssModules",pt],["__scopeId","data-v-4ab2abd5"]]),ht=A({name:"WorkflowExecutionsList",components:{WorkflowExecutionsSidebar:xt},async beforeRouteLeave(e,t,n){if(he(e)===we.WORKFLOW){n();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===ye?(await this.workflowHelpers.saveCurrentWorkflow({},!1)&&await this.npsSurveyStore.fetchPromptsData(),this.uiStore.stateIsDirty=!1,n()):f===Ee&&(this.uiStore.stateIsDirty=!1,n())}else n()},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=be(),t=q(),n=ge({router:t}),{callDebounced:f}=X();return{externalHooks:e,workflowHelpers:n,callDebounced:f,...j(),...ve()}},computed:{...N(J,K,_e,$e,ke),temporaryExecution(){return!this.executions.find(t=>{var n;return t.id===((n=this.execution)==null?void 0:n.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===Ie&&this.workflow.name===""},requestFilter(){return Te({...this.filters,workflowId:this.workflow.id})}},watch:{execution(e){e&&this.$router.push({name:R.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})}}}),wt="_container_16o1g_1",yt="_content_16o1g_7",Et={container:wt,content:yt};function gt(e,t,n,f,g,s){const w=c("WorkflowExecutionsSidebar"),v=c("router-view");return u(),I("div",{class:l(e.$style.container)},[d(w,{executions:e.executions,loading:e.loading&&!e.executions.length,"loading-more":e.loadingMore,"temporary-execution":e.temporaryExecution,"onUpdate:autoRefresh":t[0]||(t[0]=m=>e.$emit("update:auto-refresh",m)),onReloadExecutions:t[1]||(t[1]=m=>e.$emit("reload")),onFilterUpdated:t[2]||(t[2]=m=>e.$emit("update:filters",m)),onLoadMore:t[3]||(t[3]=m=>e.$emit("load-more")),onRetryExecution:e.onRetryExecution},null,8,["executions","loading","loading-more","temporary-execution","onRetryExecution"]),e.hidePreview?E("",!0):(u(),I("div",{key:0,class:l(e.$style.content)},[d(v,{name:"executionPreview",execution:e.execution,onDeleteCurrentExecution:e.onDeleteCurrentExecution,onRetryExecution:e.onRetryExecution,onStopExecution:e.onStopExecution},null,8,["execution","onDeleteCurrentExecution","onRetryExecution","onStopExecution"])],2))],2)}const vt={$style:Et},kt=F(ht,[["render",gt],["__cssModules",vt]]),oo=A({__name:"WorkflowExecutionsView",setup(e){const t=G(),n=U(),f=J(),g=K(),s=Se(),w=Me(),v=fe(),m=q(),r=j(),{callDebounced:L}=X(),{filters:M}=ue(t),T=C(!1),a=C(!1),k=C(),p=D(()=>v.params.name||n.workflowId),W=D(()=>v.params.executionId),x=D(()=>[...t.currentExecutionsByWorkflowId[p.value]??[],...t.executionsByWorkflowId[p.value]??[]]),Q=D(()=>x.value.find(o=>o.id===W.value)??O.value),O=C();P(()=>p.value,async()=>{await V()}),P(()=>W.value,async()=>{await H()}),me(async()=>{await g.loadNodeTypesIfNotLoaded(),await Promise.all([g.loadNodeTypesIfNotLoaded(),V(),t.initialize(p.value)]),await H(),await Y(),document.addEventListener("visibilitychange",B)}),pe(()=>{t.reset(),document.removeEventListener("visibilitychange",B)});async function H(){if(W.value)try{O.value=await t.fetchExecution(W.value),t.activeExecution=O.value}catch(o){r.showError(o,s.baseText("nodeView.showError.openExecution.title"))}}function B(){document.visibilityState==="hidden"?t.stopAutoRefreshInterval():t.startAutoRefreshInterval(p.value)}async function Y(){v.name===R.EXECUTION_HOME&&x.value.length>0&&k.value&&await m.push({name:R.EXECUTION_PREVIEW,params:{name:k.value.id,executionId:x.value[0].id}}).catch(()=>{})}async function V(){let o=n.workflowsById[p.value];if(!o)try{o=await n.fetchWorkflow(p.value)}catch(b){r.showError(b,s.baseText("nodeView.showError.openWorkflow.title"));return}if(!o)throw new Error(s.baseText("nodeView.workflowWithIdCouldNotBeFound",{interpolate:{workflowId:p.value}}));const i=o.tags??[];k.value=o,n.setWorkflowName({newName:o.name,setStateDirty:!1}),n.setWorkflowTagIds(i.map(({id:b})=>b)??[]),f.upsertTags(i)}async function Z(o){o?await t.startAutoRefreshInterval(p.value):t.stopAutoRefreshInterval()}async function z(){if(p.value)try{await t.fetchExecutions({...t.executionsFilters,workflowId:p.value})}catch(o){o.errorCode===Re?r.showMessage({title:s.baseText("executionsList.showError.refreshData.title"),message:o.message,type:"error",duration:3500},!1):r.showError(o,s.baseText("executionsList.showError.refreshData.title"))}}async function ee(o){t.reset(),t.setFilters(o),await t.initialize(p.value)}async function te(o){try{await t.stopCurrentExecution(o),r.showMessage({title:s.baseText("executionsList.showMessage.stopExecution.title"),message:s.baseText("executionsList.showMessage.stopExecution.message",{interpolate:{activeExecutionId:o}}),type:"success"}),await z()}catch(i){r.showError(i,s.baseText("executionsList.showError.stopExecution.title"))}}async function oe(o){T.value=!0;try{const i=x.value.findIndex(ae=>ae.id===o),b=x.value[i+1]||x.value[i-1]||x.value[0];await t.deleteExecutions({ids:[o]}),k.value&&(x.value.length>0?await m.replace({name:R.EXECUTION_PREVIEW,params:{name:k.value.id,executionId:b.id}}).catch(()=>{}):await m.replace({name:R.EXECUTION_HOME,params:{name:k.value.id}}))}catch(i){T.value=!1,r.showError(i,s.baseText("executionsList.showError.handleDeleteSelected.title"));return}T.value=!1,r.showMessage({title:s.baseText("executionsList.showMessage.handleDeleteSelected.title"),type:"success"})}async function ne(o){var i;r.showMessage({title:s.baseText("executionDetails.runningMessage"),type:"info",duration:2e3}),await se(o),await z(),w.track("User clicked retry execution button",{workflow_id:(i=k.value)==null?void 0:i.id,execution_id:o.id,retry_type:o.loadWorkflow?"current":"original"})}async function se(o){try{await t.retryExecution(o.id,o.loadWorkflow)?r.showMessage({title:s.baseText("executionsList.showMessage.retrySuccessfulTrue.title"),type:"success"}):r.showMessage({title:s.baseText("executionsList.showMessage.retrySuccessfulFalse.title"),type:"error"})}catch(i){r.showError(i,s.baseText("executionsList.showError.retryExecution.title"))}}async function ie(){a.value||await L(re,{debounceTime:1e3})}async function re(){var i;if((i=t.executionsFilters.status)!=null&&i.includes("running")||x.value.length>=t.executionsCount)return;a.value=!0;let o;x.value.length!==0&&(o=x.value.slice(-1)[0].id);try{await t.fetchExecutions(t.executionsFilters,o)}catch(b){a.value=!1,r.showError(b,s.baseText("executionsList.showError.loadMore.title"));return}a.value=!1}return(o,i)=>k.value?(u(),_(kt,{key:0,executions:x.value,execution:Q.value,filters:xe(M),workflow:k.value,loading:T.value,"loading-more":a.value,"onExecution:stop":te,"onExecution:delete":oe,"onExecution:retry":ne,"onUpdate:filters":ee,"onUpdate:autoRefresh":Z,onLoadMore:ie,onReload:z},null,8,["executions","execution","filters","workflow","loading","loading-more"])):E("",!0)}});export{oo as default};
2
- //# sourceMappingURL=WorkflowExecutionsView-Nm1Oo9El.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WorkflowExecutionsView-Nm1Oo9El.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\temits: ['retryExecution', 'mounted'],\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\tmounted() {\n\t\tthis.$emit('mounted', this.execution.id);\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\t@mounted=\"onItemMounted\"\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 { RouteRecord } 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>;\ntype AutoScrollDeps = { activeExecutionSet: boolean; cardsMounted: boolean; scroll: boolean };\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\tmountedItems: [] as string[],\n\t\t\tautoScrollDeps: {\n\t\t\t\tactiveExecutionSet: false,\n\t\t\t\tcardsMounted: false,\n\t\t\t\tscroll: true,\n\t\t\t} as AutoScrollDeps,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useExecutionsStore, useWorkflowsStore),\n\t},\n\twatch: {\n\t\t$route(to: RouteRecord, from: RouteRecord) {\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\t'executionsStore.activeExecution'(\n\t\t\tnewValue: ExecutionSummary | null,\n\t\t\toldValue: ExecutionSummary | null,\n\t\t) {\n\t\t\tif (newValue && newValue.id !== oldValue?.id) {\n\t\t\t\tthis.autoScrollDeps.activeExecutionSet = true;\n\t\t\t}\n\t\t},\n\t\tautoScrollDeps: {\n\t\t\thandler(updatedDeps: AutoScrollDeps) {\n\t\t\t\tif (Object.values(updatedDeps).every(Boolean)) {\n\t\t\t\t\tthis.scrollToActiveCard();\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeep: true,\n\t\t},\n\t},\n\tmethods: {\n\t\tonItemMounted(id: string): void {\n\t\t\tthis.mountedItems.push(id);\n\t\t\tif (this.mountedItems.length === this.executions.length) {\n\t\t\t\tthis.autoScrollDeps.cardsMounted = true;\n\t\t\t\tthis.checkListSize();\n\t\t\t}\n\n\t\t\tif (this.executionsStore.activeExecution?.id === id) {\n\t\t\t\tthis.autoScrollDeps.activeExecutionSet = true;\n\t\t\t}\n\t\t},\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.mountedItems[this.mountedItems.length - 1]}`\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\tthis.autoScrollDeps.scroll = false;\n\t\t\t\t\texecutionsListRef.scrollTo({\n\t\t\t\t\t\ttop: cardRect.top - LIST_HEADER_OFFSET,\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t});\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';\nimport { useNpsSurveyStore } from '@/stores/npsSurvey.store';\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.npsSurveyStore.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, useNpsSurveyStore),\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, ITag, 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';\nimport { useTagsStore } from '@/stores/tags.store';\n\nconst executionsStore = useExecutionsStore();\nconst workflowsStore = useWorkflowsStore();\nconst tagsStore = useTagsStore();\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 = workflowsStore.workflowsById[workflowId.value];\n\tif (!data) {\n\t\ttry {\n\t\t\tdata = await workflowsStore.fetchWorkflow(workflowId.value);\n\t\t} catch (error) {\n\t\t\ttoast.showError(error, i18n.baseText('nodeView.showError.openWorkflow.title'));\n\t\t\treturn;\n\t\t}\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\tconst tags = (data.tags ?? []) as ITag[];\n\tworkflow.value = data;\n\tworkflowsStore.setWorkflowName({ newName: data.name, setStateDirty: false });\n\tworkflowsStore.setWorkflowTagIds(tags.map(({ id }) => id) ?? []);\n\ttagsStore.upsertTags(tags);\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","newValue","oldValue","updatedDeps","id","_a","limit","executionsListRef","diff","payload","filter","sidebarContainerRef","currentWorkflowExecutionsCardRefs","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","onItemMounted","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","useNpsSurveyStore","PLACEHOLDER_EMPTY_WORKFLOW_ID","executionFilterToQueryFilter","value","loadWorkflow","$emit","hidePreview","onStopExecution","executionsStore","workflowsStore","tagsStore","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","tags","onAutoRefreshToggle","onRefreshData","NO_NETWORK_ERROR_CODE","onUpdateFilters","newFilters","onExecutionStop","onExecutionDelete","executionIndex","nextExecution","onExecutionRetry","retryExecution","onLoadMore","lastId"],"mappings":"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"}