n8n-editor-ui 1.22.0 → 1.22.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.
- package/.turbo/turbo-build.log +62 -62
- package/dist/assets/{AuthView-_5lvIORY.js → AuthView--On8E3VP.js} +2 -2
- package/dist/assets/{AuthView-_5lvIORY.js.map → AuthView--On8E3VP.js.map} +1 -1
- package/dist/assets/{CanvasControls-_S6dAUFr.js → CanvasControls-ebFBI-_5.js} +2 -2
- package/dist/assets/{CanvasControls-_S6dAUFr.js.map → CanvasControls-ebFBI-_5.js.map} +1 -1
- package/dist/assets/{ChangePasswordView-Gto324pL.js → ChangePasswordView-gj93rkzc.js} +2 -2
- package/dist/assets/{ChangePasswordView-Gto324pL.js.map → ChangePasswordView-gj93rkzc.js.map} +1 -1
- package/dist/assets/{CollectionParameter-ThiBAc6J.js → CollectionParameter-V1n0L6ao.js} +2 -2
- package/dist/assets/CollectionParameter-V1n0L6ao.js.map +1 -0
- package/dist/assets/{CredentialsView-WF2GuXwX.js → CredentialsView-9Nq2fOpi.js} +2 -2
- package/dist/assets/{CredentialsView-WF2GuXwX.js.map → CredentialsView-9Nq2fOpi.js.map} +1 -1
- package/dist/assets/{ExecutionFilter-6e5m1hky.js → ExecutionFilter-dfrYJ_Rf.js} +2 -2
- package/dist/assets/{ExecutionFilter-6e5m1hky.js.map → ExecutionFilter-dfrYJ_Rf.js.map} +1 -1
- package/dist/assets/{ExecutionPreview-qQdwo4nO.js → ExecutionPreview-yFW7oTRf.js} +2 -2
- package/dist/assets/{ExecutionPreview-qQdwo4nO.js.map → ExecutionPreview-yFW7oTRf.js.map} +1 -1
- package/dist/assets/{ExecutionsInfoAccordion-HQZywboM.js → ExecutionsInfoAccordion-EztI4QOE.js} +2 -2
- package/dist/assets/{ExecutionsInfoAccordion-HQZywboM.js.map → ExecutionsInfoAccordion-EztI4QOE.js.map} +1 -1
- package/dist/assets/{ExecutionsLandingPage-FEiybFSK.js → ExecutionsLandingPage-ygQGHLu2.js} +2 -2
- package/dist/assets/{ExecutionsLandingPage-FEiybFSK.js.map → ExecutionsLandingPage-ygQGHLu2.js.map} +1 -1
- package/dist/assets/{ExecutionsList-9Pc2Zrql.js → ExecutionsList-H9VKc4jb.js} +2 -2
- package/dist/assets/{ExecutionsList-9Pc2Zrql.js.map → ExecutionsList-H9VKc4jb.js.map} +1 -1
- package/dist/assets/{ExecutionsView-Li55aBU0.js → ExecutionsView-NdkXn6EA.js} +2 -2
- package/dist/assets/{ExecutionsView-Li55aBU0.js.map → ExecutionsView-NdkXn6EA.js.map} +1 -1
- package/dist/assets/{FixedCollectionParameter-d68rB1aT.js → FixedCollectionParameter-tJFyljoK.js} +3 -3
- package/dist/assets/{FixedCollectionParameter-d68rB1aT.js.map → FixedCollectionParameter-tJFyljoK.js.map} +1 -1
- package/dist/assets/{ForgotMyPasswordView-3lTe1SvY.js → ForgotMyPasswordView-VxAVQQgB.js} +2 -2
- package/dist/assets/{ForgotMyPasswordView-3lTe1SvY.js.map → ForgotMyPasswordView-VxAVQQgB.js.map} +1 -1
- package/dist/assets/{MainHeader-wtrPt4Uz.js → MainHeader-luMJdQn2.js} +2 -2
- package/dist/assets/{MainHeader-wtrPt4Uz.js.map → MainHeader-luMJdQn2.js.map} +1 -1
- package/dist/assets/{MainSidebar-dKXNC9E9.js → MainSidebar-nf-k1wHF.js} +2 -2
- package/dist/assets/{MainSidebar-dKXNC9E9.js.map → MainSidebar-nf-k1wHF.js.map} +1 -1
- package/dist/assets/{NodeCreation-lpcdOti7.js → NodeCreation-RvlbocPg.js} +3 -3
- package/dist/assets/{NodeCreation-lpcdOti7.js.map → NodeCreation-RvlbocPg.js.map} +1 -1
- package/dist/assets/{NodeCreator-YAF-VpA5.js → NodeCreator-zDLKC62A.js} +2 -2
- package/dist/assets/{NodeCreator-YAF-VpA5.js.map → NodeCreator-zDLKC62A.js.map} +1 -1
- package/dist/assets/{NodeList-8URsrxUQ.js → NodeList-U4qs88M0.js} +2 -2
- package/dist/assets/{NodeList-8URsrxUQ.js.map → NodeList-U4qs88M0.js.map} +1 -1
- package/dist/assets/{NodeView-caDno-kw.js → NodeView-fUdpq96X.js} +3 -3
- package/dist/assets/{NodeView-caDno-kw.js.map → NodeView-fUdpq96X.js.map} +1 -1
- package/dist/assets/{ResourcesListLayout-N4zg03Vf.js → ResourcesListLayout-y5FSwJeu.js} +2 -2
- package/dist/assets/{ResourcesListLayout-N4zg03Vf.js.map → ResourcesListLayout-y5FSwJeu.js.map} +1 -1
- package/dist/assets/{RunDataAi-EdxjRrVc.js → RunDataAi-dgEyN_Yl.js} +2 -2
- package/dist/assets/{RunDataAi-EdxjRrVc.js.map → RunDataAi-dgEyN_Yl.js.map} +1 -1
- package/dist/assets/{RunDataJson-wqxHrAY5.js → RunDataJson-RuNn5FTw.js} +3 -3
- package/dist/assets/{RunDataJson-wqxHrAY5.js.map → RunDataJson-RuNn5FTw.js.map} +1 -1
- package/dist/assets/{RunDataJsonActions-MfJV4quL.js → RunDataJsonActions-wMN8ObC3.js} +2 -2
- package/dist/assets/{RunDataJsonActions-MfJV4quL.js.map → RunDataJsonActions-wMN8ObC3.js.map} +1 -1
- package/dist/assets/{RunDataSchema-rxgd4Q_M.js → RunDataSchema-NrdiV0Bv.js} +2 -2
- package/dist/assets/{RunDataSchema-rxgd4Q_M.js.map → RunDataSchema-NrdiV0Bv.js.map} +1 -1
- package/dist/assets/{RunDataTable-2IMpD8oi.js → RunDataTable-vThTeakV.js} +2 -2
- package/dist/assets/{RunDataTable-2IMpD8oi.js.map → RunDataTable-vThTeakV.js.map} +1 -1
- package/dist/assets/{SamlOnboarding-RIlvbmgY.js → SamlOnboarding-7ZeWtOoT.js} +2 -2
- package/dist/assets/{SamlOnboarding-RIlvbmgY.js.map → SamlOnboarding-7ZeWtOoT.js.map} +1 -1
- package/dist/assets/SettingsApiView-d7znGVgB.js +2 -0
- package/dist/assets/SettingsApiView-d7znGVgB.js.map +1 -0
- package/dist/assets/{SettingsCommunityNodesView-xqn73tJO.js → SettingsCommunityNodesView-U2OqH5_g.js} +2 -2
- package/dist/assets/{SettingsCommunityNodesView-xqn73tJO.js.map → SettingsCommunityNodesView-U2OqH5_g.js.map} +1 -1
- package/dist/assets/{SettingsExternalSecrets-yr_g8DWk.js → SettingsExternalSecrets-OK2zcF3w.js} +2 -2
- package/dist/assets/{SettingsExternalSecrets-yr_g8DWk.js.map → SettingsExternalSecrets-OK2zcF3w.js.map} +1 -1
- package/dist/assets/{SettingsFakeDoorView-ogkrrHSL.js → SettingsFakeDoorView-wbngwN3n.js} +2 -2
- package/dist/assets/{SettingsFakeDoorView-ogkrrHSL.js.map → SettingsFakeDoorView-wbngwN3n.js.map} +1 -1
- package/dist/assets/{SettingsLdapView-aWCvc1gM.js → SettingsLdapView-rYSjSdpv.js} +2 -2
- package/dist/assets/{SettingsLdapView-aWCvc1gM.js.map → SettingsLdapView-rYSjSdpv.js.map} +1 -1
- package/dist/assets/{SettingsLogStreamingView-IdWAQAEz.js → SettingsLogStreamingView-r4yJe9rt.js} +2 -2
- package/dist/assets/{SettingsLogStreamingView-IdWAQAEz.js.map → SettingsLogStreamingView-r4yJe9rt.js.map} +1 -1
- package/dist/assets/{SettingsSourceControl-s8B2f1Et.js → SettingsSourceControl-2sJrfiQZ.js} +2 -2
- package/dist/assets/{SettingsSourceControl-s8B2f1Et.js.map → SettingsSourceControl-2sJrfiQZ.js.map} +1 -1
- package/dist/assets/{SettingsSso-xhUlnU8v.js → SettingsSso-F08fTaoT.js} +2 -2
- package/dist/assets/{SettingsSso-xhUlnU8v.js.map → SettingsSso-F08fTaoT.js.map} +1 -1
- package/dist/assets/{SettingsUsageAndPlan-qguburG-.js → SettingsUsageAndPlan-P3NemeAe.js} +2 -2
- package/dist/assets/{SettingsUsageAndPlan-qguburG-.js.map → SettingsUsageAndPlan-P3NemeAe.js.map} +1 -1
- package/dist/assets/{SettingsUsersView-mRes9Qkr.js → SettingsUsersView-qkwybUvB.js} +2 -2
- package/dist/assets/{SettingsUsersView-mRes9Qkr.js.map → SettingsUsersView-qkwybUvB.js.map} +1 -1
- package/dist/assets/{SettingsView-3Vqg8kdv.js → SettingsView-9Bw0MXcT.js} +2 -2
- package/dist/assets/{SettingsView-3Vqg8kdv.js.map → SettingsView-9Bw0MXcT.js.map} +1 -1
- package/dist/assets/{SetupView-RR2VulZH.js → SetupView-s0yzV7Gm.js} +2 -2
- package/dist/assets/{SetupView-RR2VulZH.js.map → SetupView-s0yzV7Gm.js.map} +1 -1
- package/dist/assets/{SetupWorkflowFromTemplateView-BbMhs31Z.js → SetupWorkflowFromTemplateView-6De7ws36.js} +2 -2
- package/dist/assets/{SetupWorkflowFromTemplateView-BbMhs31Z.js.map → SetupWorkflowFromTemplateView-6De7ws36.js.map} +1 -1
- package/dist/assets/{SigninView-hIeIEews.js → SigninView-QvYhHXWz.js} +2 -2
- package/dist/assets/{SigninView-hIeIEews.js.map → SigninView-QvYhHXWz.js.map} +1 -1
- package/dist/assets/{SignupView-iaO_BXyp.js → SignupView-ZLqXA-fI.js} +2 -2
- package/dist/assets/{SignupView-iaO_BXyp.js.map → SignupView-ZLqXA-fI.js.map} +1 -1
- package/dist/assets/{TemplateDetails-HasVFCUO.js → TemplateDetails-qWnefMYx.js} +2 -2
- package/dist/assets/{TemplateDetails-HasVFCUO.js.map → TemplateDetails-qWnefMYx.js.map} +1 -1
- package/dist/assets/{TemplateList-uT0I7BC-.js → TemplateList-Ek8NkQLd.js} +2 -2
- package/dist/assets/{TemplateList-uT0I7BC-.js.map → TemplateList-Ek8NkQLd.js.map} +1 -1
- package/dist/assets/{TemplatesCollectionView-WwdzPK0w.js → TemplatesCollectionView-xoRz-QfG.js} +2 -2
- package/dist/assets/{TemplatesCollectionView-WwdzPK0w.js.map → TemplatesCollectionView-xoRz-QfG.js.map} +1 -1
- package/dist/assets/{TemplatesInfoCarousel-WUt6CUAt.js → TemplatesInfoCarousel-TKGxiVaR.js} +2 -2
- package/dist/assets/{TemplatesInfoCarousel-WUt6CUAt.js.map → TemplatesInfoCarousel-TKGxiVaR.js.map} +1 -1
- package/dist/assets/{TemplatesSearchView-pwVBF7_m.js → TemplatesSearchView-gwbhQE6_.js} +2 -2
- package/dist/assets/{TemplatesSearchView-pwVBF7_m.js.map → TemplatesSearchView-gwbhQE6_.js.map} +1 -1
- package/dist/assets/{TemplatesWorkflowView-OxfZO4yX.js → TemplatesWorkflowView-VbJuwYVl.js} +2 -2
- package/dist/assets/{TemplatesWorkflowView-OxfZO4yX.js.map → TemplatesWorkflowView-VbJuwYVl.js.map} +1 -1
- package/dist/assets/{VariablesView-O1dh47w6.js → VariablesView-ZNxPDs_G.js} +2 -2
- package/dist/assets/{VariablesView-O1dh47w6.js.map → VariablesView-ZNxPDs_G.js.map} +1 -1
- package/dist/assets/{WorkerView-ehe17h1Q.js → WorkerView-Rzm_p5Pv.js} +2 -2
- package/dist/assets/{WorkerView-ehe17h1Q.js.map → WorkerView-Rzm_p5Pv.js.map} +1 -1
- package/dist/assets/{WorkflowActivator-EK3d11st.js → WorkflowActivator-H10vhdIV.js} +2 -2
- package/dist/assets/{WorkflowActivator-EK3d11st.js.map → WorkflowActivator-H10vhdIV.js.map} +1 -1
- package/dist/assets/{WorkflowHistory-mqWH3nQZ.js → WorkflowHistory-diO3ekal.js} +2 -2
- package/dist/assets/{WorkflowHistory-mqWH3nQZ.js.map → WorkflowHistory-diO3ekal.js.map} +1 -1
- package/dist/assets/{WorkflowOnboardingView-LZfOfbX4.js → WorkflowOnboardingView-gUVzVQsZ.js} +2 -2
- package/dist/assets/{WorkflowOnboardingView-LZfOfbX4.js.map → WorkflowOnboardingView-gUVzVQsZ.js.map} +1 -1
- package/dist/assets/{WorkflowsView-NL0wKv4C.js → WorkflowsView-Qqq1sZTo.js} +2 -2
- package/dist/assets/{WorkflowsView-NL0wKv4C.js.map → WorkflowsView-Qqq1sZTo.js.map} +1 -1
- package/dist/assets/{cloud-JhkwKZAE.js → cloud-g7GqwUFZ.js} +2 -2
- package/dist/assets/{cloud-JhkwKZAE.js.map → cloud-g7GqwUFZ.js.map} +1 -1
- package/dist/assets/{executionsHelpers-Gkj6bYJi.js → executionsHelpers-gnbzcx5j.js} +2 -2
- package/dist/assets/{executionsHelpers-Gkj6bYJi.js.map → executionsHelpers-gnbzcx5j.js.map} +1 -1
- package/dist/assets/{index--RuZ5wHr.js → index-RXjMHIPR.js} +11 -11
- package/dist/assets/{index--RuZ5wHr.js.map → index-RXjMHIPR.js.map} +1 -1
- package/dist/assets/{pushConnection-UpdxMjHa.js → pushConnection-HdjAqr4R.js} +2 -2
- package/dist/assets/{pushConnection-UpdxMjHa.js.map → pushConnection-HdjAqr4R.js.map} +1 -1
- package/dist/assets/{templateActions-CZfTXoBx.js → templateActions-y8msVyEB.js} +2 -2
- package/dist/assets/{templateActions-CZfTXoBx.js.map → templateActions-y8msVyEB.js.map} +1 -1
- package/dist/assets/{useExecutionDebugging-FPo5qMF0.js → useExecutionDebugging-Yog1CJXv.js} +2 -2
- package/dist/assets/{useExecutionDebugging-FPo5qMF0.js.map → useExecutionDebugging-Yog1CJXv.js.map} +1 -1
- package/dist/assets/{workflowActivate-FltKJaAB.js → workflowActivate-IRvCsxq5.js} +2 -2
- package/dist/assets/{workflowActivate-FltKJaAB.js.map → workflowActivate-IRvCsxq5.js.map} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/dist/assets/CollectionParameter-ThiBAc6J.js.map +0 -1
- package/dist/assets/SettingsApiView-_7qUJ2zm.js +0 -2
- package/dist/assets/SettingsApiView-_7qUJ2zm.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionsView-Li55aBU0.js","sources":["../../src/components/ExecutionsList.vue","../../src/views/ExecutionsView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.execListWrapper\">\n\t\t<div :class=\"$style.execList\">\n\t\t\t<div :class=\"$style.execListHeader\">\n\t\t\t\t<n8n-heading tag=\"h1\" size=\"2xlarge\">{{ this.pageTitle }}</n8n-heading>\n\t\t\t\t<div :class=\"$style.execListHeaderControls\">\n\t\t\t\t\t<n8n-loading v-if=\"isMounting\" :class=\"$style.filterLoader\" variant=\"custom\" />\n\t\t\t\t\t<el-checkbox\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"mr-xl\"\n\t\t\t\t\t\tv-model=\"autoRefresh\"\n\t\t\t\t\t\t@update:modelValue=\"handleAutoRefreshToggle\"\n\t\t\t\t\t\tdata-test-id=\"execution-auto-refresh-checkbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ i18n.baseText('executionsList.autoRefresh') }}\n\t\t\t\t\t</el-checkbox>\n\t\t\t\t\t<execution-filter\n\t\t\t\t\t\tv-show=\"!isMounting\"\n\t\t\t\t\t\t:workflows=\"workflows\"\n\t\t\t\t\t\t@filterChanged=\"onFilterChanged\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<el-checkbox\n\t\t\t\tv-if=\"allVisibleSelected && finishedExecutionsCount > 0\"\n\t\t\t\t:class=\"$style.selectAll\"\n\t\t\t\t:label=\"\n\t\t\t\t\ti18n.baseText('executionsList.selectAll', {\n\t\t\t\t\t\tadjustToNumber: finishedExecutionsCount,\n\t\t\t\t\t\tinterpolate: { executionNum: finishedExecutionsCount },\n\t\t\t\t\t})\n\t\t\t\t\"\n\t\t\t\t:modelValue=\"allExistingSelected\"\n\t\t\t\t@update:modelValue=\"handleCheckAllExistingChange\"\n\t\t\t\tdata-test-id=\"select-all-executions-checkbox\"\n\t\t\t/>\n\n\t\t\t<div v-if=\"isMounting\">\n\t\t\t\t<n8n-loading :class=\"$style.tableLoader\" variant=\"custom\" />\n\t\t\t\t<n8n-loading :class=\"$style.tableLoader\" variant=\"custom\" />\n\t\t\t\t<n8n-loading :class=\"$style.tableLoader\" variant=\"custom\" />\n\t\t\t</div>\n\t\t\t<table v-else :class=\"$style.execTable\">\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<el-checkbox\n\t\t\t\t\t\t\t\t:modelValue=\"allVisibleSelected\"\n\t\t\t\t\t\t\t\t@update:modelValue=\"handleCheckAllVisibleChange\"\n\t\t\t\t\t\t\t\t:disabled=\"finishedExecutionsCount < 1\"\n\t\t\t\t\t\t\t\tlabel=\"\"\n\t\t\t\t\t\t\t\tdata-test-id=\"select-visible-executions-checkbox\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.name') }}</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.startedAt') }}</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.status') }}</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.id') }}</th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr\n\t\t\t\t\t\tv-for=\"execution in combinedExecutions\"\n\t\t\t\t\t\t:key=\"execution.id\"\n\t\t\t\t\t\t:class=\"getRowClass(execution)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<el-checkbox\n\t\t\t\t\t\t\t\tv-if=\"execution.stoppedAt !== undefined && execution.id\"\n\t\t\t\t\t\t\t\t:modelValue=\"selectedItems[execution.id] || allExistingSelected\"\n\t\t\t\t\t\t\t\t@update:modelValue=\"handleCheckboxChanged(execution.id)\"\n\t\t\t\t\t\t\t\tlabel=\"\"\n\t\t\t\t\t\t\t\tdata-test-id=\"select-execution-checkbox\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span @click.stop=\"displayExecution(execution)\"\n\t\t\t\t\t\t\t\t><a href=\"#\" :class=\"$style.link\">{{\n\t\t\t\t\t\t\t\t\texecution.workflowName || i18n.baseText('executionsList.unsavedWorkflow')\n\t\t\t\t\t\t\t\t}}</a></span\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span>{{ formatDate(execution.startedAt) }}</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div :class=\"$style.statusColumn\">\n\t\t\t\t\t\t\t\t<span v-if=\"isRunning(execution)\" :class=\"$style.spinner\">\n\t\t\t\t\t\t\t\t\t<font-awesome-icon icon=\"spinner\" spin />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<i18n-t\n\t\t\t\t\t\t\t\t\tv-if=\"!isWaitTillIndefinite(execution)\"\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t:keypath=\"getStatusTextTranslationPath(execution)\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<template #status>\n\t\t\t\t\t\t\t\t\t\t<span :class=\"$style.status\">{{ getStatusText(execution) }}</span>\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<template #time>\n\t\t\t\t\t\t\t\t\t\t<span v-if=\"execution.waitTill\">{{ formatDate(execution.waitTill) }}</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tv-else-if=\"execution.stoppedAt !== null && execution.stoppedAt !== undefined\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayTimer(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(execution.stoppedAt).getTime() -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(execution.startedAt).getTime(),\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<execution-time v-else :start-time=\"execution.startedAt\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t\t\t<n8n-tooltip v-else placement=\"top\">\n\t\t\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t\t\t<span>{{ getStatusTooltipText(execution) }}</span>\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<span :class=\"$style.status\">{{ getStatusText(execution) }}</span>\n\t\t\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span v-if=\"execution.id\">#{{ execution.id }}</span>\n\t\t\t\t\t\t\t<span v-if=\"execution.retryOf\">\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t\t\t({{ i18n.baseText('executionsList.retryOf') }} #{{ execution.retryOf }})\n\t\t\t\t\t\t\t\t</small>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span v-else-if=\"execution.retrySuccessId\">\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t\t\t({{ i18n.baseText('executionsList.successRetry') }} #{{\n\t\t\t\t\t\t\t\t\t\texecution.retrySuccessId\n\t\t\t\t\t\t\t\t\t}})\n\t\t\t\t\t\t\t\t</small>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<n8n-tooltip v-if=\"execution.mode === 'manual'\" placement=\"top\">\n\t\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t\t<span>{{ i18n.baseText('executionsList.test') }}</span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<font-awesome-icon icon=\"flask\" />\n\t\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div :class=\"$style.buttonCell\">\n\t\t\t\t\t\t\t\t<n8n-button\n\t\t\t\t\t\t\t\t\tv-if=\"execution.stoppedAt !== undefined && execution.id\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\toutline\n\t\t\t\t\t\t\t\t\t:label=\"i18n.baseText('executionsList.view')\"\n\t\t\t\t\t\t\t\t\t@click.stop=\"displayExecution(execution)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div :class=\"$style.buttonCell\">\n\t\t\t\t\t\t\t\t<n8n-button\n\t\t\t\t\t\t\t\t\tv-if=\"execution.stoppedAt === undefined || execution.waitTill\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\toutline\n\t\t\t\t\t\t\t\t\t:label=\"i18n.baseText('executionsList.stop')\"\n\t\t\t\t\t\t\t\t\t@click.stop=\"stopExecution(execution.id)\"\n\t\t\t\t\t\t\t\t\t:loading=\"stoppingExecutions.includes(execution.id)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<el-dropdown\n\t\t\t\t\t\t\t\tv-if=\"!isRunning(execution)\"\n\t\t\t\t\t\t\t\ttrigger=\"click\"\n\t\t\t\t\t\t\t\t@command=\"handleActionItemClick\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"retry-button\">\n\t\t\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\t\t\t:title=\"i18n.baseText('executionsList.retryExecution')\"\n\t\t\t\t\t\t\t\t\t\ticon=\"ellipsis-v\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<template #dropdown>\n\t\t\t\t\t\t\t\t\t<el-dropdown-menu\n\t\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t\t[$style.actions]: true,\n\t\t\t\t\t\t\t\t\t\t\t[$style.deleteOnly]: !isExecutionRetriable(execution),\n\t\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<el-dropdown-item\n\t\t\t\t\t\t\t\t\t\t\tv-if=\"isExecutionRetriable(execution)\"\n\t\t\t\t\t\t\t\t\t\t\t:class=\"$style.retryAction\"\n\t\t\t\t\t\t\t\t\t\t\t:command=\"{ command: 'currentlySaved', execution }\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{ i18n.baseText('executionsList.retryWithCurrentlySavedWorkflow') }}\n\t\t\t\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t\t\t\t<el-dropdown-item\n\t\t\t\t\t\t\t\t\t\t\tv-if=\"isExecutionRetriable(execution)\"\n\t\t\t\t\t\t\t\t\t\t\t:class=\"$style.retryAction\"\n\t\t\t\t\t\t\t\t\t\t\t:command=\"{ command: 'original', execution }\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{ i18n.baseText('executionsList.retryWithOriginalWorkflow') }}\n\t\t\t\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t\t\t\t<el-dropdown-item\n\t\t\t\t\t\t\t\t\t\t\t:class=\"$style.deleteAction\"\n\t\t\t\t\t\t\t\t\t\t\t:command=\"{ command: 'delete', execution }\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{ i18n.baseText('generic.delete') }}\n\t\t\t\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t\t\t</el-dropdown-menu>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</el-dropdown>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\n\t\t\t<div\n\t\t\t\tv-if=\"!combinedExecutions.length && !isMounting && !isDataLoading\"\n\t\t\t\t:class=\"$style.loadedAll\"\n\t\t\t\tdata-test-id=\"execution-list-empty\"\n\t\t\t>\n\t\t\t\t{{ i18n.baseText('executionsList.empty') }}\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\t:class=\"$style.loadMore\"\n\t\t\t\tv-else-if=\"\n\t\t\t\t\tfinishedExecutionsCount > finishedExecutions.length || finishedExecutionsCountEstimated\n\t\t\t\t\"\n\t\t\t>\n\t\t\t\t<n8n-button\n\t\t\t\t\ticon=\"sync\"\n\t\t\t\t\t:title=\"i18n.baseText('executionsList.loadMore')\"\n\t\t\t\t\t:label=\"i18n.baseText('executionsList.loadMore')\"\n\t\t\t\t\t@click=\"loadMore()\"\n\t\t\t\t\t:loading=\"isDataLoading\"\n\t\t\t\t\tdata-test-id=\"load-more-button\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-else-if=\"!isMounting && !isDataLoading\"\n\t\t\t\t:class=\"$style.loadedAll\"\n\t\t\t\tdata-test-id=\"execution-all-loaded\"\n\t\t\t>\n\t\t\t\t{{ i18n.baseText('executionsList.loadedAll') }}\n\t\t\t</div>\n\t\t</div>\n\t\t<div\n\t\t\tv-if=\"numSelected > 0\"\n\t\t\t:class=\"$style.selectionOptions\"\n\t\t\tdata-test-id=\"selected-executions-info\"\n\t\t>\n\t\t\t<span>\n\t\t\t\t{{\n\t\t\t\t\ti18n.baseText('executionsList.selected', {\n\t\t\t\t\t\tadjustToNumber: numSelected,\n\t\t\t\t\t\tinterpolate: { numSelected },\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t</span>\n\t\t\t<n8n-button\n\t\t\t\t:label=\"i18n.baseText('generic.delete')\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t@click=\"handleDeleteSelected\"\n\t\t\t\tdata-test-id=\"delete-selected-button\"\n\t\t\t/>\n\t\t\t<n8n-button\n\t\t\t\t:label=\"i18n.baseText('executionsList.clearSelection')\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t@click=\"handleClearSelection\"\n\t\t\t\tdata-test-id=\"clear-selection-button\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport ExecutionTime from '@/components/ExecutionTime.vue';\nimport ExecutionFilter from '@/components/ExecutionFilter.vue';\nimport { MODAL_CONFIRM, VIEWS, WAIT_TIME_UNLIMITED } from '@/constants';\nimport { genericHelpers } from '@/mixins/genericHelpers';\nimport { executionHelpers } from '@/mixins/executionsHelpers';\nimport { useToast } from '@/composables/useToast';\nimport { useMessage } from '@/composables/useMessage';\nimport { useI18n } from '@/composables/useI18n';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport type {\n\tIExecutionsCurrentSummaryExtended,\n\tIExecutionDeleteFilter,\n\tIExecutionsListResponse,\n\tIWorkflowShortResponse,\n\tExecutionFilterType,\n\tExecutionsQueryFilter,\n} from '@/Interface';\nimport type { IExecutionsSummary, ExecutionStatus } from 'n8n-workflow';\nimport { range as _range } from 'lodash-es';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { isEmpty } from '@/utils/typesUtils';\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { executionFilterToQueryFilter } from '@/utils/executionUtils';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useRoute } from 'vue-router';\n\nexport default defineComponent({\n\tname: 'ExecutionsList',\n\tmixins: [genericHelpers, executionHelpers],\n\tcomponents: {\n\t\tExecutionTime,\n\t\tExecutionFilter,\n\t},\n\tprops: {\n\t\tautoRefreshEnabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst i18n = useI18n();\n\t\tconst telemetry = useTelemetry();\n\t\tconst externalHooks = useExternalHooks();\n\t\tconst route = useRoute();\n\n\t\treturn {\n\t\t\ti18n,\n\t\t\ttelemetry,\n\t\t\texternalHooks,\n\t\t\troute,\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisMounting: true,\n\t\t\tfinishedExecutions: [] as IExecutionsSummary[],\n\t\t\tfinishedExecutionsCount: 0,\n\t\t\tfinishedExecutionsCountEstimated: false,\n\n\t\t\tallVisibleSelected: false,\n\t\t\tallExistingSelected: false,\n\t\t\tautoRefresh: false,\n\t\t\tautoRefreshTimeout: undefined as undefined | NodeJS.Timer,\n\n\t\t\tfilter: {} as ExecutionFilterType,\n\n\t\t\tisDataLoading: false,\n\n\t\t\trequestItemsPerRequest: 10,\n\n\t\t\tselectedItems: {} as { [key: string]: boolean },\n\n\t\t\tstoppingExecutions: [] as string[],\n\t\t\tworkflows: [] as IWorkflowShortResponse[],\n\t\t};\n\t},\n\tmounted() {\n\t\tsetPageTitle(`n8n - ${this.pageTitle}`);\n\n\t\tvoid this.handleAutoRefreshToggle();\n\t\tdocument.addEventListener('visibilitychange', this.onDocumentVisibilityChange);\n\t},\n\tasync created() {\n\t\tthis.autoRefresh = this.autoRefreshEnabled;\n\t\tawait this.loadWorkflows();\n\n\t\tvoid this.externalHooks.run('executionsList.openDialog');\n\t\tthis.telemetry.track('User opened Executions log', {\n\t\t\tworkflow_id: this.workflowsStore.workflowId,\n\t\t});\n\t},\n\tbeforeUnmount() {\n\t\tthis.autoRefresh = false;\n\t\tthis.stopAutoRefreshInterval();\n\t\tdocument.removeEventListener('visibilitychange', this.onDocumentVisibilityChange);\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore, useWorkflowsStore),\n\t\tactiveExecutions(): IExecutionsCurrentSummaryExtended[] {\n\t\t\treturn this.workflowsStore.activeExecutions;\n\t\t},\n\t\tcombinedExecutions(): IExecutionsSummary[] {\n\t\t\tconst returnData: IExecutionsSummary[] = [];\n\n\t\t\tif (['all', 'running'].includes(this.filter.status)) {\n\t\t\t\treturnData.push(...this.activeExecutions);\n\t\t\t}\n\t\t\tif (['all', 'error', 'success', 'waiting'].includes(this.filter.status)) {\n\t\t\t\treturnData.push(...this.finishedExecutions);\n\t\t\t}\n\n\t\t\treturn returnData.filter(\n\t\t\t\t(execution) =>\n\t\t\t\t\tthis.filter.workflowId === 'all' || execution.workflowId === this.filter.workflowId,\n\t\t\t);\n\t\t},\n\t\tnumSelected(): number {\n\t\t\tif (this.allExistingSelected) {\n\t\t\t\treturn this.finishedExecutionsCount;\n\t\t\t}\n\n\t\t\treturn Object.keys(this.selectedItems).length;\n\t\t},\n\t\tworkflowFilterCurrent(): ExecutionsQueryFilter {\n\t\t\tconst filter: ExecutionsQueryFilter = {};\n\t\t\tif (this.filter.workflowId !== 'all') {\n\t\t\t\tfilter.workflowId = this.filter.workflowId;\n\t\t\t}\n\t\t\treturn filter;\n\t\t},\n\t\tworkflowFilterPast(): ExecutionsQueryFilter {\n\t\t\treturn executionFilterToQueryFilter(this.filter);\n\t\t},\n\t\tpageTitle() {\n\t\t\treturn this.i18n.baseText('executionsList.workflowExecutions');\n\t\t},\n\t},\n\tmethods: {\n\t\tcloseDialog() {\n\t\t\tthis.$emit('closeModal');\n\t\t},\n\t\tdisplayExecution(execution: IExecutionsSummary) {\n\t\t\tconst route = this.$router.resolve({\n\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\tparams: { name: execution.workflowId, executionId: execution.id },\n\t\t\t});\n\t\t\twindow.open(route.href, '_blank');\n\t\t},\n\t\tasync handleAutoRefreshToggle() {\n\t\t\tthis.stopAutoRefreshInterval(); // Clear any previously existing intervals (if any - there shouldn't)\n\t\t\tvoid this.startAutoRefreshInterval();\n\t\t},\n\t\thandleCheckAllExistingChange() {\n\t\t\tthis.allExistingSelected = !this.allExistingSelected;\n\t\t\tthis.allVisibleSelected = !this.allExistingSelected;\n\t\t\tthis.handleCheckAllVisibleChange();\n\t\t},\n\t\thandleCheckAllVisibleChange() {\n\t\t\tthis.allVisibleSelected = !this.allVisibleSelected;\n\t\t\tif (!this.allVisibleSelected) {\n\t\t\t\tthis.allExistingSelected = false;\n\t\t\t\tthis.selectedItems = {};\n\t\t\t} else {\n\t\t\t\tthis.selectAllVisibleExecutions();\n\t\t\t}\n\t\t},\n\t\thandleCheckboxChanged(executionId: string) {\n\t\t\tif (this.selectedItems[executionId]) {\n\t\t\t\tconst { [executionId]: removedSelectedItem, ...remainingSelectedItems } =\n\t\t\t\t\tthis.selectedItems;\n\t\t\t\tthis.selectedItems = remainingSelectedItems;\n\t\t\t} else {\n\t\t\t\tthis.selectedItems = {\n\t\t\t\t\t...this.selectedItems,\n\t\t\t\t\t[executionId]: true,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthis.allVisibleSelected =\n\t\t\t\tObject.keys(this.selectedItems).length === this.combinedExecutions.length;\n\t\t\tthis.allExistingSelected =\n\t\t\t\tObject.keys(this.selectedItems).length === this.finishedExecutionsCount;\n\t\t},\n\t\tasync handleDeleteSelected() {\n\t\t\tconst deleteExecutions = await this.confirm(\n\t\t\t\tthis.i18n.baseText('executionsList.confirmMessage.message', {\n\t\t\t\t\tinterpolate: { numSelected: this.numSelected.toString() },\n\t\t\t\t}),\n\t\t\t\tthis.i18n.baseText('executionsList.confirmMessage.headline'),\n\t\t\t\t{\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.i18n.baseText('executionsList.confirmMessage.confirmButtonText'),\n\t\t\t\t\tcancelButtonText: this.i18n.baseText('executionsList.confirmMessage.cancelButtonText'),\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tif (deleteExecutions !== MODAL_CONFIRM) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isDataLoading = true;\n\n\t\t\tconst sendData: IExecutionDeleteFilter = {};\n\t\t\tif (this.allExistingSelected) {\n\t\t\t\tsendData.deleteBefore = this.finishedExecutions[0].startedAt as Date;\n\t\t\t} else {\n\t\t\t\tsendData.ids = Object.keys(this.selectedItems);\n\t\t\t}\n\n\t\t\tsendData.filters = this.workflowFilterPast;\n\n\t\t\ttry {\n\t\t\t\tawait this.workflowsStore.deleteExecutions(sendData);\n\t\t\t} catch (error) {\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t\tthis.showError(\n\t\t\t\t\terror,\n\t\t\t\t\tthis.i18n.baseText('executionsList.showError.handleDeleteSelected.title'),\n\t\t\t\t);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.isDataLoading = false;\n\n\t\t\tthis.showMessage({\n\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.handleDeleteSelected.title'),\n\t\t\t\ttype: 'success',\n\t\t\t});\n\n\t\t\tthis.handleClearSelection();\n\t\t\tawait this.refreshData();\n\t\t},\n\t\thandleClearSelection(): void {\n\t\t\tthis.allVisibleSelected = false;\n\t\t\tthis.allExistingSelected = false;\n\t\t\tthis.selectedItems = {};\n\t\t},\n\t\tasync onFilterChanged(filter: ExecutionFilterType) {\n\t\t\tthis.filter = filter;\n\t\t\tawait this.refreshData();\n\t\t\tthis.handleClearSelection();\n\t\t\tthis.isMounting = false;\n\t\t},\n\t\tasync handleActionItemClick(commandData: { command: string; execution: IExecutionsSummary }) {\n\t\t\tif (['currentlySaved', 'original'].includes(commandData.command)) {\n\t\t\t\tlet loadWorkflow = false;\n\t\t\t\tif (commandData.command === 'currentlySaved') {\n\t\t\t\t\tloadWorkflow = true;\n\t\t\t\t}\n\n\t\t\t\tawait this.retryExecution(commandData.execution, loadWorkflow);\n\n\t\t\t\tthis.telemetry.track('User clicked retry execution button', {\n\t\t\t\t\tworkflow_id: this.workflowsStore.workflowId,\n\t\t\t\t\texecution_id: commandData.execution.id,\n\t\t\t\t\tretry_type: loadWorkflow ? 'current' : 'original',\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (commandData.command === 'delete') {\n\t\t\t\tawait this.deleteExecution(commandData.execution);\n\t\t\t}\n\t\t},\n\t\tgetWorkflowName(workflowId: string): string | undefined {\n\t\t\treturn this.workflows.find((data) => data.id === workflowId)?.name;\n\t\t},\n\t\tasync loadActiveExecutions(): Promise<void> {\n\t\t\tconst activeExecutions = isEmpty(this.workflowFilterCurrent.metadata)\n\t\t\t\t? await this.workflowsStore.getCurrentExecutions(this.workflowFilterCurrent)\n\t\t\t\t: [];\n\t\t\tfor (const activeExecution of activeExecutions) {\n\t\t\t\tif (activeExecution.workflowId && !activeExecution.workflowName) {\n\t\t\t\t\tactiveExecution.workflowName = this.getWorkflowName(activeExecution.workflowId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.workflowsStore.activeExecutions = activeExecutions;\n\t\t\tthis.workflowsStore.addToCurrentExecutions(activeExecutions);\n\t\t},\n\t\tasync loadAutoRefresh(): Promise<void> {\n\t\t\tconst filter: ExecutionsQueryFilter = this.workflowFilterPast;\n\t\t\t// We cannot use firstId here as some executions finish out of order. Let's say\n\t\t\t// You have execution ids 500 to 505 running.\n\t\t\t// Suppose 504 finishes before 500, 501, 502 and 503.\n\t\t\t// iF you use firstId, filtering id >= 504 you won't\n\t\t\t// ever get ids 500, 501, 502 and 503 when they finish\n\t\t\tconst promises = [this.workflowsStore.getPastExecutions(filter, this.requestItemsPerRequest)];\n\t\t\tif (isEmpty(filter.metadata)) {\n\t\t\t\tpromises.push(this.workflowsStore.getCurrentExecutions({}));\n\t\t\t}\n\n\t\t\tconst results = await Promise.all(promises);\n\n\t\t\tfor (const activeExecution of results[1]) {\n\t\t\t\tif (\n\t\t\t\t\tactiveExecution.workflowId !== undefined &&\n\t\t\t\t\tactiveExecution.workflowName === undefined\n\t\t\t\t) {\n\t\t\t\t\tactiveExecution.workflowName = this.getWorkflowName(activeExecution.workflowId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.workflowsStore.activeExecutions = results[1];\n\n\t\t\t// execution IDs are typed as string, int conversion is necessary so we can order.\n\t\t\tconst alreadyPresentExecutions = [...this.finishedExecutions];\n\t\t\tconst alreadyPresentExecutionIds = alreadyPresentExecutions.map((exec) =>\n\t\t\t\tparseInt(exec.id, 10),\n\t\t\t);\n\t\t\tlet lastId = 0;\n\t\t\tconst gaps = [] as number[];\n\n\t\t\tconst pastExecutions = results[0] || { results: [], count: 0, estimated: false };\n\n\t\t\tfor (let i = pastExecutions.results.length - 1; i >= 0; i--) {\n\t\t\t\tconst currentItem = pastExecutions.results[i];\n\t\t\t\tconst currentId = parseInt(currentItem.id, 10);\n\t\t\t\tif (lastId !== 0 && !isNaN(currentId)) {\n\t\t\t\t\t// We are doing this iteration to detect possible gaps.\n\t\t\t\t\t// The gaps are used to remove executions that finished\n\t\t\t\t\t// and were deleted from database but were displaying\n\t\t\t\t\t// in this list while running.\n\t\t\t\t\tif (currentId - lastId > 1) {\n\t\t\t\t\t\t// We have some gaps.\n\t\t\t\t\t\tconst range = _range(lastId + 1, currentId);\n\t\t\t\t\t\tgaps.push(...range);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlastId = parseInt(currentItem.id, 10) || 0;\n\n\t\t\t\t// Check new results from end to start\n\t\t\t\t// Add new items accordingly.\n\t\t\t\tconst executionIndex = alreadyPresentExecutionIds.indexOf(currentId);\n\t\t\t\tif (executionIndex !== -1) {\n\t\t\t\t\t// Execution that we received is already present.\n\n\t\t\t\t\tif (\n\t\t\t\t\t\talreadyPresentExecutions[executionIndex].finished === false &&\n\t\t\t\t\t\tcurrentItem.finished === true\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Concurrency stuff. This might happen if the execution finishes\n\t\t\t\t\t\t// prior to saving all information to database. Somewhat rare but\n\t\t\t\t\t\t// With auto refresh and several executions, it happens sometimes.\n\t\t\t\t\t\t// So we replace the execution data so it displays correctly.\n\t\t\t\t\t\talreadyPresentExecutions[executionIndex] = currentItem;\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Find the correct position to place this newcomer\n\t\t\t\tlet j;\n\t\t\t\tfor (j = alreadyPresentExecutions.length - 1; j >= 0; j--) {\n\t\t\t\t\tif (currentId < parseInt(alreadyPresentExecutions[j].id, 10)) {\n\t\t\t\t\t\talreadyPresentExecutions.splice(j + 1, 0, currentItem);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (j === -1) {\n\t\t\t\t\talreadyPresentExecutions.unshift(currentItem);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst alreadyPresentExecutionsFiltered = alreadyPresentExecutions.filter(\n\t\t\t\t(execution) =>\n\t\t\t\t\t!gaps.includes(parseInt(execution.id, 10)) && lastId >= parseInt(execution.id, 10),\n\t\t\t);\n\t\t\tthis.finishedExecutionsCount = pastExecutions.count;\n\t\t\tthis.finishedExecutionsCountEstimated = pastExecutions.estimated;\n\n\t\t\tthis.finishedExecutions = alreadyPresentExecutionsFiltered;\n\t\t\tthis.workflowsStore.addToCurrentExecutions(alreadyPresentExecutionsFiltered);\n\n\t\t\tthis.adjustSelectionAfterMoreItemsLoaded();\n\t\t},\n\t\tasync loadFinishedExecutions(): Promise<void> {\n\t\t\tif (this.filter.status === 'running') {\n\t\t\t\tthis.finishedExecutions = [];\n\t\t\t\tthis.finishedExecutionsCount = 0;\n\t\t\t\tthis.finishedExecutionsCountEstimated = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = await this.workflowsStore.getPastExecutions(\n\t\t\t\tthis.workflowFilterPast,\n\t\t\t\tthis.requestItemsPerRequest,\n\t\t\t);\n\t\t\tthis.finishedExecutions = data.results;\n\t\t\tthis.finishedExecutionsCount = data.count;\n\t\t\tthis.finishedExecutionsCountEstimated = data.estimated;\n\n\t\t\tthis.workflowsStore.addToCurrentExecutions(data.results);\n\n\t\t\tif (this.finishedExecutions.length === 0) {\n\t\t\t\tthis.handleClearSelection();\n\t\t\t}\n\t\t},\n\t\tasync loadMore() {\n\t\t\tif (this.filter.status === 'running') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isDataLoading = true;\n\n\t\t\tconst filter = this.workflowFilterPast;\n\t\t\tlet lastId: string | undefined;\n\n\t\t\tif (this.finishedExecutions.length !== 0) {\n\t\t\t\tconst lastItem = this.finishedExecutions.slice(-1)[0];\n\t\t\t\tlastId = lastItem.id;\n\t\t\t}\n\n\t\t\tlet data: IExecutionsListResponse;\n\t\t\ttry {\n\t\t\t\tdata = await this.workflowsStore.getPastExecutions(\n\t\t\t\t\tfilter,\n\t\t\t\t\tthis.requestItemsPerRequest,\n\t\t\t\t\tlastId,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.loadMore.title'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata.results = data.results.map((execution) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { ...execution, mode: execution.mode };\n\t\t\t});\n\n\t\t\tthis.finishedExecutions.push(...data.results);\n\t\t\tthis.finishedExecutionsCount = data.count;\n\t\t\tthis.finishedExecutionsCountEstimated = data.estimated;\n\n\t\t\tthis.isDataLoading = false;\n\n\t\t\tthis.workflowsStore.addToCurrentExecutions(data.results);\n\n\t\t\tthis.adjustSelectionAfterMoreItemsLoaded();\n\t\t},\n\t\tasync loadWorkflows() {\n\t\t\ttry {\n\t\t\t\tconst workflows =\n\t\t\t\t\t(await this.workflowsStore.fetchAllWorkflows()) as IWorkflowShortResponse[];\n\t\t\t\tworkflows.sort((a, b) => {\n\t\t\t\t\tif (a.name.toLowerCase() < b.name.toLowerCase()) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t}\n\t\t\t\t\tif (a.name.toLowerCase() > b.name.toLowerCase()) {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\n\t\t\t\tworkflows.unshift({\n\t\t\t\t\tid: 'all',\n\t\t\t\t\tname: this.i18n.baseText('executionsList.allWorkflows'),\n\t\t\t\t} as IWorkflowShortResponse);\n\n\t\t\t\tthis.workflows = workflows;\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.loadWorkflows.title'));\n\t\t\t}\n\t\t},\n\t\tasync retryExecution(execution: IExecutionsSummary, loadWorkflow?: boolean) {\n\t\t\tthis.isDataLoading = true;\n\n\t\t\ttry {\n\t\t\t\tconst retrySuccessful = await this.workflowsStore.retryExecution(\n\t\t\t\t\texecution.id,\n\t\t\t\t\tloadWorkflow,\n\t\t\t\t);\n\n\t\t\t\tif (retrySuccessful) {\n\t\t\t\t\tthis.showMessage({\n\t\t\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.retrySuccessfulTrue.title'),\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.showMessage({\n\t\t\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.retrySuccessfulFalse.title'),\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.retryExecution.title'));\n\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t}\n\t\t},\n\t\tasync refreshData() {\n\t\t\tthis.isDataLoading = true;\n\n\t\t\ttry {\n\t\t\t\tawait Promise.all([this.loadActiveExecutions(), this.loadFinishedExecutions()]);\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.refreshData.title'));\n\t\t\t}\n\n\t\t\tthis.isDataLoading = false;\n\t\t},\n\t\tgetStatus(execution: IExecutionsSummary): ExecutionStatus {\n\t\t\tif (execution.status) {\n\t\t\t\treturn execution.status;\n\t\t\t} else {\n\t\t\t\t// this should not happen but just in case\n\t\t\t\tlet status: ExecutionStatus = 'unknown';\n\t\t\t\tif (execution.waitTill) {\n\t\t\t\t\tstatus = 'waiting';\n\t\t\t\t} else if (execution.stoppedAt === undefined) {\n\t\t\t\t\tstatus = 'running';\n\t\t\t\t} else if (execution.finished) {\n\t\t\t\t\tstatus = 'success';\n\t\t\t\t} else if (execution.stoppedAt !== null) {\n\t\t\t\t\tstatus = 'failed';\n\t\t\t\t} else {\n\t\t\t\t\tstatus = 'unknown';\n\t\t\t\t}\n\t\t\t\treturn status;\n\t\t\t}\n\t\t},\n\t\tgetRowClass(execution: IExecutionsSummary): string {\n\t\t\treturn [this.$style.execRow, this.$style[this.getStatus(execution)]].join(' ');\n\t\t},\n\t\tgetStatusText(entry: IExecutionsSummary): string {\n\t\t\tconst status = this.getStatus(entry);\n\t\t\tlet text = '';\n\n\t\t\tif (status === 'waiting') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.waiting');\n\t\t\t} else if (status === 'canceled') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.canceled');\n\t\t\t} else if (status === 'crashed') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.error');\n\t\t\t} else if (status === 'new') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.running');\n\t\t\t} else if (status === 'running') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.running');\n\t\t\t} else if (status === 'success') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.succeeded');\n\t\t\t} else if (status === 'failed') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.error');\n\t\t\t} else {\n\t\t\t\ttext = this.i18n.baseText('executionsList.unknown');\n\t\t\t}\n\n\t\t\treturn text;\n\t\t},\n\t\tgetStatusTextTranslationPath(entry: IExecutionsSummary): string {\n\t\t\tconst status = this.getStatus(entry);\n\t\t\tlet path = '';\n\n\t\t\tif (status === 'waiting') {\n\t\t\t\tpath = 'executionsList.statusWaiting';\n\t\t\t} else if (status === 'canceled') {\n\t\t\t\tpath = 'executionsList.statusCanceled';\n\t\t\t} else if (['crashed', 'failed', 'success'].includes(status)) {\n\t\t\t\tif (!entry.stoppedAt) {\n\t\t\t\t\tpath = 'executionsList.statusTextWithoutTime';\n\t\t\t\t} else {\n\t\t\t\t\tpath = 'executionsList.statusText';\n\t\t\t\t}\n\t\t\t} else if (status === 'new') {\n\t\t\t\tpath = 'executionsList.statusRunning';\n\t\t\t} else if (status === 'running') {\n\t\t\t\tpath = 'executionsList.statusRunning';\n\t\t\t} else {\n\t\t\t\tpath = 'executionsList.statusUnknown';\n\t\t\t}\n\n\t\t\treturn path;\n\t\t},\n\t\tgetStatusTooltipText(entry: IExecutionsSummary): string {\n\t\t\tconst status = this.getStatus(entry);\n\t\t\tlet text = '';\n\n\t\t\tif (status === 'waiting' && this.isWaitTillIndefinite(entry)) {\n\t\t\t\ttext = this.i18n.baseText(\n\t\t\t\t\t'executionsList.statusTooltipText.theWorkflowIsWaitingIndefinitely',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn text;\n\t\t},\n\t\tasync stopExecution(activeExecutionId: string) {\n\t\t\ttry {\n\t\t\t\t// Add it to the list of currently stopping executions that we\n\t\t\t\t// can show the user in the UI that it is in progress\n\t\t\t\tthis.stoppingExecutions.push(activeExecutionId);\n\n\t\t\t\tawait this.workflowsStore.stopCurrentExecution(activeExecutionId);\n\n\t\t\t\t// Remove it from the list of currently stopping executions\n\t\t\t\tconst index = this.stoppingExecutions.indexOf(activeExecutionId);\n\t\t\t\tthis.stoppingExecutions.splice(index, 1);\n\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.stopExecution.title'),\n\t\t\t\t\tmessage: this.i18n.baseText('executionsList.showMessage.stopExecution.message', {\n\t\t\t\t\t\tinterpolate: { activeExecutionId },\n\t\t\t\t\t}),\n\t\t\t\t\ttype: 'success',\n\t\t\t\t});\n\n\t\t\t\tawait this.refreshData();\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.stopExecution.title'));\n\t\t\t}\n\t\t},\n\t\tisExecutionRetriable(execution: IExecutionsSummary): boolean {\n\t\t\treturn (\n\t\t\t\texecution.stoppedAt !== undefined &&\n\t\t\t\t!execution.finished &&\n\t\t\t\texecution.retryOf === undefined &&\n\t\t\t\texecution.retrySuccessId === undefined &&\n\t\t\t\t!execution.waitTill\n\t\t\t);\n\t\t},\n\t\tasync deleteExecution(execution: IExecutionsSummary) {\n\t\t\tthis.isDataLoading = true;\n\t\t\ttry {\n\t\t\t\tawait this.workflowsStore.deleteExecutions({ ids: [execution.id] });\n\t\t\t\tawait this.refreshData();\n\n\t\t\t\tif (this.allVisibleSelected) {\n\t\t\t\t\tthis.selectedItems = {};\n\t\t\t\t\tthis.selectAllVisibleExecutions();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(\n\t\t\t\t\terror,\n\t\t\t\t\tthis.i18n.baseText('executionsList.showError.handleDeleteSelected.title'),\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.isDataLoading = true;\n\t\t},\n\t\tisWaitTillIndefinite(execution: IExecutionsSummary): boolean {\n\t\t\tif (!execution.waitTill) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn new Date(execution.waitTill).toISOString() === WAIT_TIME_UNLIMITED;\n\t\t},\n\t\tisRunning(execution: IExecutionsSummary): boolean {\n\t\t\treturn this.getStatus(execution) === 'running';\n\t\t},\n\t\tselectAllVisibleExecutions() {\n\t\t\tthis.combinedExecutions.forEach((execution: IExecutionsSummary) => {\n\t\t\t\tthis.selectedItems = { ...this.selectedItems, [execution.id]: true };\n\t\t\t});\n\t\t},\n\t\tadjustSelectionAfterMoreItemsLoaded() {\n\t\t\tif (this.allExistingSelected) {\n\t\t\t\tthis.allVisibleSelected = true;\n\t\t\t\tthis.selectAllVisibleExecutions();\n\t\t\t}\n\t\t},\n\t\tasync startAutoRefreshInterval() {\n\t\t\tif (this.autoRefresh && this.route.name === VIEWS.EXECUTIONS) {\n\t\t\t\tawait this.loadAutoRefresh();\n\t\t\t\tthis.autoRefreshTimeout = setTimeout(() => {\n\t\t\t\t\tvoid this.startAutoRefreshInterval();\n\t\t\t\t}, 4 * 1000); // refresh data every 4 secs\n\t\t\t}\n\t\t},\n\t\tstopAutoRefreshInterval() {\n\t\t\tclearTimeout(this.autoRefreshTimeout);\n\t\t\tthis.autoRefreshTimeout = undefined;\n\t\t},\n\t\tonDocumentVisibilityChange() {\n\t\t\tif (document.visibilityState === 'hidden') {\n\t\t\t\tthis.stopAutoRefreshInterval();\n\t\t\t} else {\n\t\t\t\tvoid this.startAutoRefreshInterval();\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.execListWrapper {\n\tdisplay: grid;\n\tgrid-template-rows: 1fr 0;\n\tposition: relative;\n\theight: 100%;\n\twidth: 100%;\n\tmax-width: 1280px;\n}\n\n.execList {\n\tposition: relative;\n\theight: 100%;\n\toverflow: auto;\n\tpadding: var(--spacing-l) var(--spacing-l) 0;\n\t@media (min-width: 1200px) {\n\t\tpadding: var(--spacing-2xl) var(--spacing-2xl) 0;\n\t}\n}\n\n.execListHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmargin-bottom: var(--spacing-s);\n}\n\n.execListHeaderControls {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n}\n\n.selectionOptions {\n\tdisplay: flex;\n\talign-items: center;\n\tposition: absolute;\n\tpadding: var(--spacing-2xs);\n\tz-index: 2;\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tbottom: var(--spacing-3xl);\n\tbackground: var(--color-background-dark);\n\tborder-radius: var(--border-radius-base);\n\tcolor: var(--color-text-xlight);\n\tfont-size: var(--font-size-2xs);\n\n\tbutton {\n\t\tmargin-left: var(--spacing-2xs);\n\t}\n}\n\n.statusColumn {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.spinner {\n\tmargin-right: var(--spacing-2xs);\n}\n\n.status {\n\tline-height: 22.6px;\n\ttext-align: center;\n\tfont-size: var(--font-size-s);\n\tfont-weight: var(--font-weight-bold);\n\n\t.crashed &,\n\t.failed & {\n\t\tcolor: var(--color-danger);\n\t}\n\n\t.waiting & {\n\t\tcolor: var(--color-secondary);\n\t}\n\n\t.success & {\n\t\tfont-weight: var(--font-weight-normal);\n\t}\n\n\t.new &,\n\t.running & {\n\t\tcolor: var(--color-warning);\n\t}\n\n\t.unknown & {\n\t\tcolor: var(--color-background-dark);\n\t}\n}\n\n.buttonCell {\n\toverflow: hidden;\n\n\tbutton {\n\t\ttransform: translateX(1000%);\n\t\ttransition: transform 0s;\n\n\t\t&:focus-visible,\n\t\t.execRow:hover & {\n\t\t\ttransform: translateX(0);\n\t\t}\n\t}\n}\n\n.execTable {\n\t/*\n\t Table height needs to be set to 0 in order to use height 100% for elements in table cells\n\t*/\n\theight: 0;\n\twidth: 100%;\n\ttext-align: left;\n\tfont-size: var(--font-size-s);\n\n\tthead th {\n\t\tposition: sticky;\n\t\ttop: calc(var(--spacing-3xl) * -1);\n\t\tz-index: 2;\n\t\tpadding: var(--spacing-s) var(--spacing-s) var(--spacing-s) 0;\n\t\tbackground: var(--color-table-header-background);\n\n\t\t&:first-child {\n\t\t\tpadding-left: var(--spacing-s);\n\t\t}\n\t}\n\n\tth,\n\ttd {\n\t\theight: 100%;\n\t\tpadding: var(--spacing-s) var(--spacing-s) var(--spacing-s) 0;\n\t\tbackground: var(--color-table-row-background);\n\n\t\t&:not(:first-child, :nth-last-child(-n + 3)) {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&:nth-last-child(-n + 2) {\n\t\t\tpadding-left: 0;\n\t\t}\n\n\t\t@media (min-width: $breakpoint-sm) {\n\t\t\t&:not(:nth-child(2)) {\n\t\t\t\t&,\n\t\t\t\tdiv,\n\t\t\t\tspan {\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.execRow {\n\t\tcolor: var(--color-text-base);\n\n\t\ttd:first-child {\n\t\t\twidth: 30px;\n\t\t\tpadding: 0 var(--spacing-s) 0 0;\n\n\t\t\t/*\n\t\t\t This is needed instead of table cell border because they are overlapping the sticky header\n\t\t\t*/\n\t\t\t&::before {\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: var(--spacing-4xs);\n\t\t\t\theight: 100%;\n\t\t\t\tvertical-align: middle;\n\t\t\t\tmargin-right: var(--spacing-xs);\n\t\t\t}\n\t\t}\n\n\t\t&:nth-child(even) td {\n\t\t\tbackground: var(--color-table-row-even-background);\n\t\t}\n\n\t\t&:hover td {\n\t\t\tbackground: var(--color-table-row-hover-background);\n\t\t}\n\n\t\t&.crashed td:first-child::before,\n\t\t&.failed td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-error);\n\t\t}\n\n\t\t&.success td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-success);\n\t\t}\n\n\t\t&.new td:first-child::before,\n\t\t&.running td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-running);\n\t\t}\n\n\t\t&.waiting td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-waiting);\n\t\t}\n\n\t\t&.unknown td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-unknown);\n\t\t}\n\t}\n}\n\n.loadMore {\n\tmargin: var(--spacing-m) 0;\n\twidth: 100%;\n\ttext-align: center;\n}\n\n.loadedAll {\n\ttext-align: center;\n\tfont-size: var(--font-size-s);\n\tcolor: var(--color-text-light);\n\tmargin: var(--spacing-l) 0;\n}\n\n.actions.deleteOnly {\n\tpadding: 0;\n}\n\n.retryAction + .deleteAction {\n\tborder-top: 1px solid var(--color-foreground-light);\n}\n\n.selectAll {\n\tdisplay: inline-block;\n\tmargin: 0 0 var(--spacing-s) var(--spacing-s);\n\tcolor: var(--color-danger);\n}\n\n.filterLoader {\n\twidth: 220px;\n\theight: 32px;\n}\n\n.tableLoader {\n\twidth: 100%;\n\theight: 48px;\n\tmargin-bottom: var(--spacing-2xs);\n}\n\n.link {\n\tcolor: var(--color-text-base);\n\ttext-decoration: underline;\n}\n</style>\n","<template>\n\t<ExecutionsList />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport ExecutionsList from '@/components/ExecutionsList.vue';\n\nexport default defineComponent({\n\tname: 'ExecutionsView',\n\tcomponents: {\n\t\tExecutionsList,\n\t},\n});\n</script>\n"],"names":["_sfc_main$1","defineComponent","genericHelpers","executionHelpers","ExecutionTime","ExecutionFilter","i18n","useI18n","telemetry","useTelemetry","externalHooks","useExternalHooks","route","useRoute","useToast","useMessage","setPageTitle","mapStores","useUIStore","useWorkflowsStore","returnData","execution","filter","executionFilterToQueryFilter","VIEWS","executionId","removedSelectedItem","remainingSelectedItems","MODAL_CONFIRM","sendData","error","commandData","loadWorkflow","workflowId","_a","data","activeExecutions","isEmpty","activeExecution","promises","results","alreadyPresentExecutions","alreadyPresentExecutionIds","exec","lastId","gaps","pastExecutions","i","currentItem","currentId","range","_range","executionIndex","j","alreadyPresentExecutionsFiltered","workflows","a","b","status","entry","text","path","activeExecutionId","index","WAIT_TIME_UNLIMITED","_createElementVNode","_hoisted_12","_resolveComponent","_normalizeClass","_ctx","_component_n8n_heading","_openBlock","_createBlock","_component_n8n_loading","_component_el_checkbox","_cache","$event","_withDirectives","_createVNode","_component_execution_filter","_createCommentVNode","_createElementBlock","_hoisted_1","_toDisplayString","_hoisted_2","_hoisted_3","_hoisted_4","_Fragment","_renderList","_withModifiers","_hoisted_6","_component_font_awesome_icon","_component_n8n_tooltip","_withCtx","_component_i18n_t","_hoisted_7","_hoisted_8","_component_execution_time","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_13","_component_n8n_button","_component_el_dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_hoisted_14","_component_n8n_icon_button","_sfc_main","ExecutionsList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutionsView-NdkXn6EA.js","sources":["../../src/components/ExecutionsList.vue","../../src/views/ExecutionsView.vue"],"sourcesContent":["<template>\n\t<div :class=\"$style.execListWrapper\">\n\t\t<div :class=\"$style.execList\">\n\t\t\t<div :class=\"$style.execListHeader\">\n\t\t\t\t<n8n-heading tag=\"h1\" size=\"2xlarge\">{{ this.pageTitle }}</n8n-heading>\n\t\t\t\t<div :class=\"$style.execListHeaderControls\">\n\t\t\t\t\t<n8n-loading v-if=\"isMounting\" :class=\"$style.filterLoader\" variant=\"custom\" />\n\t\t\t\t\t<el-checkbox\n\t\t\t\t\t\tv-else\n\t\t\t\t\t\tclass=\"mr-xl\"\n\t\t\t\t\t\tv-model=\"autoRefresh\"\n\t\t\t\t\t\t@update:modelValue=\"handleAutoRefreshToggle\"\n\t\t\t\t\t\tdata-test-id=\"execution-auto-refresh-checkbox\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ i18n.baseText('executionsList.autoRefresh') }}\n\t\t\t\t\t</el-checkbox>\n\t\t\t\t\t<execution-filter\n\t\t\t\t\t\tv-show=\"!isMounting\"\n\t\t\t\t\t\t:workflows=\"workflows\"\n\t\t\t\t\t\t@filterChanged=\"onFilterChanged\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<el-checkbox\n\t\t\t\tv-if=\"allVisibleSelected && finishedExecutionsCount > 0\"\n\t\t\t\t:class=\"$style.selectAll\"\n\t\t\t\t:label=\"\n\t\t\t\t\ti18n.baseText('executionsList.selectAll', {\n\t\t\t\t\t\tadjustToNumber: finishedExecutionsCount,\n\t\t\t\t\t\tinterpolate: { executionNum: finishedExecutionsCount },\n\t\t\t\t\t})\n\t\t\t\t\"\n\t\t\t\t:modelValue=\"allExistingSelected\"\n\t\t\t\t@update:modelValue=\"handleCheckAllExistingChange\"\n\t\t\t\tdata-test-id=\"select-all-executions-checkbox\"\n\t\t\t/>\n\n\t\t\t<div v-if=\"isMounting\">\n\t\t\t\t<n8n-loading :class=\"$style.tableLoader\" variant=\"custom\" />\n\t\t\t\t<n8n-loading :class=\"$style.tableLoader\" variant=\"custom\" />\n\t\t\t\t<n8n-loading :class=\"$style.tableLoader\" variant=\"custom\" />\n\t\t\t</div>\n\t\t\t<table v-else :class=\"$style.execTable\">\n\t\t\t\t<thead>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>\n\t\t\t\t\t\t\t<el-checkbox\n\t\t\t\t\t\t\t\t:modelValue=\"allVisibleSelected\"\n\t\t\t\t\t\t\t\t@update:modelValue=\"handleCheckAllVisibleChange\"\n\t\t\t\t\t\t\t\t:disabled=\"finishedExecutionsCount < 1\"\n\t\t\t\t\t\t\t\tlabel=\"\"\n\t\t\t\t\t\t\t\tdata-test-id=\"select-visible-executions-checkbox\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.name') }}</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.startedAt') }}</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.status') }}</th>\n\t\t\t\t\t\t<th>{{ i18n.baseText('executionsList.id') }}</th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t\t<th></th>\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr\n\t\t\t\t\t\tv-for=\"execution in combinedExecutions\"\n\t\t\t\t\t\t:key=\"execution.id\"\n\t\t\t\t\t\t:class=\"getRowClass(execution)\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<el-checkbox\n\t\t\t\t\t\t\t\tv-if=\"execution.stoppedAt !== undefined && execution.id\"\n\t\t\t\t\t\t\t\t:modelValue=\"selectedItems[execution.id] || allExistingSelected\"\n\t\t\t\t\t\t\t\t@update:modelValue=\"handleCheckboxChanged(execution.id)\"\n\t\t\t\t\t\t\t\tlabel=\"\"\n\t\t\t\t\t\t\t\tdata-test-id=\"select-execution-checkbox\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span @click.stop=\"displayExecution(execution)\"\n\t\t\t\t\t\t\t\t><a href=\"#\" :class=\"$style.link\">{{\n\t\t\t\t\t\t\t\t\texecution.workflowName || i18n.baseText('executionsList.unsavedWorkflow')\n\t\t\t\t\t\t\t\t}}</a></span\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span>{{ formatDate(execution.startedAt) }}</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div :class=\"$style.statusColumn\">\n\t\t\t\t\t\t\t\t<span v-if=\"isRunning(execution)\" :class=\"$style.spinner\">\n\t\t\t\t\t\t\t\t\t<font-awesome-icon icon=\"spinner\" spin />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<i18n-t\n\t\t\t\t\t\t\t\t\tv-if=\"!isWaitTillIndefinite(execution)\"\n\t\t\t\t\t\t\t\t\ttag=\"span\"\n\t\t\t\t\t\t\t\t\t:keypath=\"getStatusTextTranslationPath(execution)\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<template #status>\n\t\t\t\t\t\t\t\t\t\t<span :class=\"$style.status\">{{ getStatusText(execution) }}</span>\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<template #time>\n\t\t\t\t\t\t\t\t\t\t<span v-if=\"execution.waitTill\">{{ formatDate(execution.waitTill) }}</span>\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tv-else-if=\"execution.stoppedAt !== null && execution.stoppedAt !== undefined\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t\t\t\t\tdisplayTimer(\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(execution.stoppedAt).getTime() -\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(execution.startedAt).getTime(),\n\t\t\t\t\t\t\t\t\t\t\t\t\ttrue,\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t<execution-time v-else :start-time=\"execution.startedAt\" />\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t\t\t<n8n-tooltip v-else placement=\"top\">\n\t\t\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t\t\t<span>{{ getStatusTooltipText(execution) }}</span>\n\t\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t\t<span :class=\"$style.status\">{{ getStatusText(execution) }}</span>\n\t\t\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<span v-if=\"execution.id\">#{{ execution.id }}</span>\n\t\t\t\t\t\t\t<span v-if=\"execution.retryOf\">\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t\t\t({{ i18n.baseText('executionsList.retryOf') }} #{{ execution.retryOf }})\n\t\t\t\t\t\t\t\t</small>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span v-else-if=\"execution.retrySuccessId\">\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t<small>\n\t\t\t\t\t\t\t\t\t({{ i18n.baseText('executionsList.successRetry') }} #{{\n\t\t\t\t\t\t\t\t\t\texecution.retrySuccessId\n\t\t\t\t\t\t\t\t\t}})\n\t\t\t\t\t\t\t\t</small>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<n8n-tooltip v-if=\"execution.mode === 'manual'\" placement=\"top\">\n\t\t\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t\t\t<span>{{ i18n.baseText('executionsList.test') }}</span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<font-awesome-icon icon=\"flask\" />\n\t\t\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div :class=\"$style.buttonCell\">\n\t\t\t\t\t\t\t\t<n8n-button\n\t\t\t\t\t\t\t\t\tv-if=\"execution.stoppedAt !== undefined && execution.id\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\toutline\n\t\t\t\t\t\t\t\t\t:label=\"i18n.baseText('executionsList.view')\"\n\t\t\t\t\t\t\t\t\t@click.stop=\"displayExecution(execution)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<div :class=\"$style.buttonCell\">\n\t\t\t\t\t\t\t\t<n8n-button\n\t\t\t\t\t\t\t\t\tv-if=\"execution.stoppedAt === undefined || execution.waitTill\"\n\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\toutline\n\t\t\t\t\t\t\t\t\t:label=\"i18n.baseText('executionsList.stop')\"\n\t\t\t\t\t\t\t\t\t@click.stop=\"stopExecution(execution.id)\"\n\t\t\t\t\t\t\t\t\t:loading=\"stoppingExecutions.includes(execution.id)\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<el-dropdown\n\t\t\t\t\t\t\t\tv-if=\"!isRunning(execution)\"\n\t\t\t\t\t\t\t\ttrigger=\"click\"\n\t\t\t\t\t\t\t\t@command=\"handleActionItemClick\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"retry-button\">\n\t\t\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\t\t\t:title=\"i18n.baseText('executionsList.retryExecution')\"\n\t\t\t\t\t\t\t\t\t\ticon=\"ellipsis-v\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<template #dropdown>\n\t\t\t\t\t\t\t\t\t<el-dropdown-menu\n\t\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t\t[$style.actions]: true,\n\t\t\t\t\t\t\t\t\t\t\t[$style.deleteOnly]: !isExecutionRetriable(execution),\n\t\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<el-dropdown-item\n\t\t\t\t\t\t\t\t\t\t\tv-if=\"isExecutionRetriable(execution)\"\n\t\t\t\t\t\t\t\t\t\t\t:class=\"$style.retryAction\"\n\t\t\t\t\t\t\t\t\t\t\t:command=\"{ command: 'currentlySaved', execution }\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{ i18n.baseText('executionsList.retryWithCurrentlySavedWorkflow') }}\n\t\t\t\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t\t\t\t<el-dropdown-item\n\t\t\t\t\t\t\t\t\t\t\tv-if=\"isExecutionRetriable(execution)\"\n\t\t\t\t\t\t\t\t\t\t\t:class=\"$style.retryAction\"\n\t\t\t\t\t\t\t\t\t\t\t:command=\"{ command: 'original', execution }\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{ i18n.baseText('executionsList.retryWithOriginalWorkflow') }}\n\t\t\t\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t\t\t\t<el-dropdown-item\n\t\t\t\t\t\t\t\t\t\t\t:class=\"$style.deleteAction\"\n\t\t\t\t\t\t\t\t\t\t\t:command=\"{ command: 'delete', execution }\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{{ i18n.baseText('generic.delete') }}\n\t\t\t\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t\t\t</el-dropdown-menu>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</el-dropdown>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\n\t\t\t<div\n\t\t\t\tv-if=\"!combinedExecutions.length && !isMounting && !isDataLoading\"\n\t\t\t\t:class=\"$style.loadedAll\"\n\t\t\t\tdata-test-id=\"execution-list-empty\"\n\t\t\t>\n\t\t\t\t{{ i18n.baseText('executionsList.empty') }}\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\t:class=\"$style.loadMore\"\n\t\t\t\tv-else-if=\"\n\t\t\t\t\tfinishedExecutionsCount > finishedExecutions.length || finishedExecutionsCountEstimated\n\t\t\t\t\"\n\t\t\t>\n\t\t\t\t<n8n-button\n\t\t\t\t\ticon=\"sync\"\n\t\t\t\t\t:title=\"i18n.baseText('executionsList.loadMore')\"\n\t\t\t\t\t:label=\"i18n.baseText('executionsList.loadMore')\"\n\t\t\t\t\t@click=\"loadMore()\"\n\t\t\t\t\t:loading=\"isDataLoading\"\n\t\t\t\t\tdata-test-id=\"load-more-button\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tv-else-if=\"!isMounting && !isDataLoading\"\n\t\t\t\t:class=\"$style.loadedAll\"\n\t\t\t\tdata-test-id=\"execution-all-loaded\"\n\t\t\t>\n\t\t\t\t{{ i18n.baseText('executionsList.loadedAll') }}\n\t\t\t</div>\n\t\t</div>\n\t\t<div\n\t\t\tv-if=\"numSelected > 0\"\n\t\t\t:class=\"$style.selectionOptions\"\n\t\t\tdata-test-id=\"selected-executions-info\"\n\t\t>\n\t\t\t<span>\n\t\t\t\t{{\n\t\t\t\t\ti18n.baseText('executionsList.selected', {\n\t\t\t\t\t\tadjustToNumber: numSelected,\n\t\t\t\t\t\tinterpolate: { numSelected },\n\t\t\t\t\t})\n\t\t\t\t}}\n\t\t\t</span>\n\t\t\t<n8n-button\n\t\t\t\t:label=\"i18n.baseText('generic.delete')\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t@click=\"handleDeleteSelected\"\n\t\t\t\tdata-test-id=\"delete-selected-button\"\n\t\t\t/>\n\t\t\t<n8n-button\n\t\t\t\t:label=\"i18n.baseText('executionsList.clearSelection')\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t@click=\"handleClearSelection\"\n\t\t\t\tdata-test-id=\"clear-selection-button\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport ExecutionTime from '@/components/ExecutionTime.vue';\nimport ExecutionFilter from '@/components/ExecutionFilter.vue';\nimport { MODAL_CONFIRM, VIEWS, WAIT_TIME_UNLIMITED } from '@/constants';\nimport { genericHelpers } from '@/mixins/genericHelpers';\nimport { executionHelpers } from '@/mixins/executionsHelpers';\nimport { useToast } from '@/composables/useToast';\nimport { useMessage } from '@/composables/useMessage';\nimport { useI18n } from '@/composables/useI18n';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport type {\n\tIExecutionsCurrentSummaryExtended,\n\tIExecutionDeleteFilter,\n\tIExecutionsListResponse,\n\tIWorkflowShortResponse,\n\tExecutionFilterType,\n\tExecutionsQueryFilter,\n} from '@/Interface';\nimport type { IExecutionsSummary, ExecutionStatus } from 'n8n-workflow';\nimport { range as _range } from 'lodash-es';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { isEmpty } from '@/utils/typesUtils';\nimport { setPageTitle } from '@/utils/htmlUtils';\nimport { executionFilterToQueryFilter } from '@/utils/executionUtils';\nimport { useExternalHooks } from '@/composables/useExternalHooks';\nimport { useRoute } from 'vue-router';\n\nexport default defineComponent({\n\tname: 'ExecutionsList',\n\tmixins: [genericHelpers, executionHelpers],\n\tcomponents: {\n\t\tExecutionTime,\n\t\tExecutionFilter,\n\t},\n\tprops: {\n\t\tautoRefreshEnabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\tsetup() {\n\t\tconst i18n = useI18n();\n\t\tconst telemetry = useTelemetry();\n\t\tconst externalHooks = useExternalHooks();\n\t\tconst route = useRoute();\n\n\t\treturn {\n\t\t\ti18n,\n\t\t\ttelemetry,\n\t\t\texternalHooks,\n\t\t\troute,\n\t\t\t...useToast(),\n\t\t\t...useMessage(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisMounting: true,\n\t\t\tfinishedExecutions: [] as IExecutionsSummary[],\n\t\t\tfinishedExecutionsCount: 0,\n\t\t\tfinishedExecutionsCountEstimated: false,\n\n\t\t\tallVisibleSelected: false,\n\t\t\tallExistingSelected: false,\n\t\t\tautoRefresh: false,\n\t\t\tautoRefreshTimeout: undefined as undefined | NodeJS.Timer,\n\n\t\t\tfilter: {} as ExecutionFilterType,\n\n\t\t\tisDataLoading: false,\n\n\t\t\trequestItemsPerRequest: 10,\n\n\t\t\tselectedItems: {} as { [key: string]: boolean },\n\n\t\t\tstoppingExecutions: [] as string[],\n\t\t\tworkflows: [] as IWorkflowShortResponse[],\n\t\t};\n\t},\n\tmounted() {\n\t\tsetPageTitle(`n8n - ${this.pageTitle}`);\n\n\t\tvoid this.handleAutoRefreshToggle();\n\t\tdocument.addEventListener('visibilitychange', this.onDocumentVisibilityChange);\n\t},\n\tasync created() {\n\t\tthis.autoRefresh = this.autoRefreshEnabled;\n\t\tawait this.loadWorkflows();\n\n\t\tvoid this.externalHooks.run('executionsList.openDialog');\n\t\tthis.telemetry.track('User opened Executions log', {\n\t\t\tworkflow_id: this.workflowsStore.workflowId,\n\t\t});\n\t},\n\tbeforeUnmount() {\n\t\tthis.autoRefresh = false;\n\t\tthis.stopAutoRefreshInterval();\n\t\tdocument.removeEventListener('visibilitychange', this.onDocumentVisibilityChange);\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore, useWorkflowsStore),\n\t\tactiveExecutions(): IExecutionsCurrentSummaryExtended[] {\n\t\t\treturn this.workflowsStore.activeExecutions;\n\t\t},\n\t\tcombinedExecutions(): IExecutionsSummary[] {\n\t\t\tconst returnData: IExecutionsSummary[] = [];\n\n\t\t\tif (['all', 'running'].includes(this.filter.status)) {\n\t\t\t\treturnData.push(...this.activeExecutions);\n\t\t\t}\n\t\t\tif (['all', 'error', 'success', 'waiting'].includes(this.filter.status)) {\n\t\t\t\treturnData.push(...this.finishedExecutions);\n\t\t\t}\n\n\t\t\treturn returnData.filter(\n\t\t\t\t(execution) =>\n\t\t\t\t\tthis.filter.workflowId === 'all' || execution.workflowId === this.filter.workflowId,\n\t\t\t);\n\t\t},\n\t\tnumSelected(): number {\n\t\t\tif (this.allExistingSelected) {\n\t\t\t\treturn this.finishedExecutionsCount;\n\t\t\t}\n\n\t\t\treturn Object.keys(this.selectedItems).length;\n\t\t},\n\t\tworkflowFilterCurrent(): ExecutionsQueryFilter {\n\t\t\tconst filter: ExecutionsQueryFilter = {};\n\t\t\tif (this.filter.workflowId !== 'all') {\n\t\t\t\tfilter.workflowId = this.filter.workflowId;\n\t\t\t}\n\t\t\treturn filter;\n\t\t},\n\t\tworkflowFilterPast(): ExecutionsQueryFilter {\n\t\t\treturn executionFilterToQueryFilter(this.filter);\n\t\t},\n\t\tpageTitle() {\n\t\t\treturn this.i18n.baseText('executionsList.workflowExecutions');\n\t\t},\n\t},\n\tmethods: {\n\t\tcloseDialog() {\n\t\t\tthis.$emit('closeModal');\n\t\t},\n\t\tdisplayExecution(execution: IExecutionsSummary) {\n\t\t\tconst route = this.$router.resolve({\n\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\tparams: { name: execution.workflowId, executionId: execution.id },\n\t\t\t});\n\t\t\twindow.open(route.href, '_blank');\n\t\t},\n\t\tasync handleAutoRefreshToggle() {\n\t\t\tthis.stopAutoRefreshInterval(); // Clear any previously existing intervals (if any - there shouldn't)\n\t\t\tvoid this.startAutoRefreshInterval();\n\t\t},\n\t\thandleCheckAllExistingChange() {\n\t\t\tthis.allExistingSelected = !this.allExistingSelected;\n\t\t\tthis.allVisibleSelected = !this.allExistingSelected;\n\t\t\tthis.handleCheckAllVisibleChange();\n\t\t},\n\t\thandleCheckAllVisibleChange() {\n\t\t\tthis.allVisibleSelected = !this.allVisibleSelected;\n\t\t\tif (!this.allVisibleSelected) {\n\t\t\t\tthis.allExistingSelected = false;\n\t\t\t\tthis.selectedItems = {};\n\t\t\t} else {\n\t\t\t\tthis.selectAllVisibleExecutions();\n\t\t\t}\n\t\t},\n\t\thandleCheckboxChanged(executionId: string) {\n\t\t\tif (this.selectedItems[executionId]) {\n\t\t\t\tconst { [executionId]: removedSelectedItem, ...remainingSelectedItems } =\n\t\t\t\t\tthis.selectedItems;\n\t\t\t\tthis.selectedItems = remainingSelectedItems;\n\t\t\t} else {\n\t\t\t\tthis.selectedItems = {\n\t\t\t\t\t...this.selectedItems,\n\t\t\t\t\t[executionId]: true,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthis.allVisibleSelected =\n\t\t\t\tObject.keys(this.selectedItems).length === this.combinedExecutions.length;\n\t\t\tthis.allExistingSelected =\n\t\t\t\tObject.keys(this.selectedItems).length === this.finishedExecutionsCount;\n\t\t},\n\t\tasync handleDeleteSelected() {\n\t\t\tconst deleteExecutions = await this.confirm(\n\t\t\t\tthis.i18n.baseText('executionsList.confirmMessage.message', {\n\t\t\t\t\tinterpolate: { numSelected: this.numSelected.toString() },\n\t\t\t\t}),\n\t\t\t\tthis.i18n.baseText('executionsList.confirmMessage.headline'),\n\t\t\t\t{\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.i18n.baseText('executionsList.confirmMessage.confirmButtonText'),\n\t\t\t\t\tcancelButtonText: this.i18n.baseText('executionsList.confirmMessage.cancelButtonText'),\n\t\t\t\t},\n\t\t\t);\n\n\t\t\tif (deleteExecutions !== MODAL_CONFIRM) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isDataLoading = true;\n\n\t\t\tconst sendData: IExecutionDeleteFilter = {};\n\t\t\tif (this.allExistingSelected) {\n\t\t\t\tsendData.deleteBefore = this.finishedExecutions[0].startedAt as Date;\n\t\t\t} else {\n\t\t\t\tsendData.ids = Object.keys(this.selectedItems);\n\t\t\t}\n\n\t\t\tsendData.filters = this.workflowFilterPast;\n\n\t\t\ttry {\n\t\t\t\tawait this.workflowsStore.deleteExecutions(sendData);\n\t\t\t} catch (error) {\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t\tthis.showError(\n\t\t\t\t\terror,\n\t\t\t\t\tthis.i18n.baseText('executionsList.showError.handleDeleteSelected.title'),\n\t\t\t\t);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.isDataLoading = false;\n\n\t\t\tthis.showMessage({\n\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.handleDeleteSelected.title'),\n\t\t\t\ttype: 'success',\n\t\t\t});\n\n\t\t\tthis.handleClearSelection();\n\t\t\tawait this.refreshData();\n\t\t},\n\t\thandleClearSelection(): void {\n\t\t\tthis.allVisibleSelected = false;\n\t\t\tthis.allExistingSelected = false;\n\t\t\tthis.selectedItems = {};\n\t\t},\n\t\tasync onFilterChanged(filter: ExecutionFilterType) {\n\t\t\tthis.filter = filter;\n\t\t\tawait this.refreshData();\n\t\t\tthis.handleClearSelection();\n\t\t\tthis.isMounting = false;\n\t\t},\n\t\tasync handleActionItemClick(commandData: { command: string; execution: IExecutionsSummary }) {\n\t\t\tif (['currentlySaved', 'original'].includes(commandData.command)) {\n\t\t\t\tlet loadWorkflow = false;\n\t\t\t\tif (commandData.command === 'currentlySaved') {\n\t\t\t\t\tloadWorkflow = true;\n\t\t\t\t}\n\n\t\t\t\tawait this.retryExecution(commandData.execution, loadWorkflow);\n\n\t\t\t\tthis.telemetry.track('User clicked retry execution button', {\n\t\t\t\t\tworkflow_id: this.workflowsStore.workflowId,\n\t\t\t\t\texecution_id: commandData.execution.id,\n\t\t\t\t\tretry_type: loadWorkflow ? 'current' : 'original',\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (commandData.command === 'delete') {\n\t\t\t\tawait this.deleteExecution(commandData.execution);\n\t\t\t}\n\t\t},\n\t\tgetWorkflowName(workflowId: string): string | undefined {\n\t\t\treturn this.workflows.find((data) => data.id === workflowId)?.name;\n\t\t},\n\t\tasync loadActiveExecutions(): Promise<void> {\n\t\t\tconst activeExecutions = isEmpty(this.workflowFilterCurrent.metadata)\n\t\t\t\t? await this.workflowsStore.getCurrentExecutions(this.workflowFilterCurrent)\n\t\t\t\t: [];\n\t\t\tfor (const activeExecution of activeExecutions) {\n\t\t\t\tif (activeExecution.workflowId && !activeExecution.workflowName) {\n\t\t\t\t\tactiveExecution.workflowName = this.getWorkflowName(activeExecution.workflowId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.workflowsStore.activeExecutions = activeExecutions;\n\t\t\tthis.workflowsStore.addToCurrentExecutions(activeExecutions);\n\t\t},\n\t\tasync loadAutoRefresh(): Promise<void> {\n\t\t\tconst filter: ExecutionsQueryFilter = this.workflowFilterPast;\n\t\t\t// We cannot use firstId here as some executions finish out of order. Let's say\n\t\t\t// You have execution ids 500 to 505 running.\n\t\t\t// Suppose 504 finishes before 500, 501, 502 and 503.\n\t\t\t// iF you use firstId, filtering id >= 504 you won't\n\t\t\t// ever get ids 500, 501, 502 and 503 when they finish\n\t\t\tconst promises = [this.workflowsStore.getPastExecutions(filter, this.requestItemsPerRequest)];\n\t\t\tif (isEmpty(filter.metadata)) {\n\t\t\t\tpromises.push(this.workflowsStore.getCurrentExecutions({}));\n\t\t\t}\n\n\t\t\tconst results = await Promise.all(promises);\n\n\t\t\tfor (const activeExecution of results[1]) {\n\t\t\t\tif (\n\t\t\t\t\tactiveExecution.workflowId !== undefined &&\n\t\t\t\t\tactiveExecution.workflowName === undefined\n\t\t\t\t) {\n\t\t\t\t\tactiveExecution.workflowName = this.getWorkflowName(activeExecution.workflowId);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.workflowsStore.activeExecutions = results[1];\n\n\t\t\t// execution IDs are typed as string, int conversion is necessary so we can order.\n\t\t\tconst alreadyPresentExecutions = [...this.finishedExecutions];\n\t\t\tconst alreadyPresentExecutionIds = alreadyPresentExecutions.map((exec) =>\n\t\t\t\tparseInt(exec.id, 10),\n\t\t\t);\n\t\t\tlet lastId = 0;\n\t\t\tconst gaps = [] as number[];\n\n\t\t\tconst pastExecutions = results[0] || { results: [], count: 0, estimated: false };\n\n\t\t\tfor (let i = pastExecutions.results.length - 1; i >= 0; i--) {\n\t\t\t\tconst currentItem = pastExecutions.results[i];\n\t\t\t\tconst currentId = parseInt(currentItem.id, 10);\n\t\t\t\tif (lastId !== 0 && !isNaN(currentId)) {\n\t\t\t\t\t// We are doing this iteration to detect possible gaps.\n\t\t\t\t\t// The gaps are used to remove executions that finished\n\t\t\t\t\t// and were deleted from database but were displaying\n\t\t\t\t\t// in this list while running.\n\t\t\t\t\tif (currentId - lastId > 1) {\n\t\t\t\t\t\t// We have some gaps.\n\t\t\t\t\t\tconst range = _range(lastId + 1, currentId);\n\t\t\t\t\t\tgaps.push(...range);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlastId = parseInt(currentItem.id, 10) || 0;\n\n\t\t\t\t// Check new results from end to start\n\t\t\t\t// Add new items accordingly.\n\t\t\t\tconst executionIndex = alreadyPresentExecutionIds.indexOf(currentId);\n\t\t\t\tif (executionIndex !== -1) {\n\t\t\t\t\t// Execution that we received is already present.\n\n\t\t\t\t\tif (\n\t\t\t\t\t\talreadyPresentExecutions[executionIndex].finished === false &&\n\t\t\t\t\t\tcurrentItem.finished === true\n\t\t\t\t\t) {\n\t\t\t\t\t\t// Concurrency stuff. This might happen if the execution finishes\n\t\t\t\t\t\t// prior to saving all information to database. Somewhat rare but\n\t\t\t\t\t\t// With auto refresh and several executions, it happens sometimes.\n\t\t\t\t\t\t// So we replace the execution data so it displays correctly.\n\t\t\t\t\t\talreadyPresentExecutions[executionIndex] = currentItem;\n\t\t\t\t\t}\n\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Find the correct position to place this newcomer\n\t\t\t\tlet j;\n\t\t\t\tfor (j = alreadyPresentExecutions.length - 1; j >= 0; j--) {\n\t\t\t\t\tif (currentId < parseInt(alreadyPresentExecutions[j].id, 10)) {\n\t\t\t\t\t\talreadyPresentExecutions.splice(j + 1, 0, currentItem);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (j === -1) {\n\t\t\t\t\talreadyPresentExecutions.unshift(currentItem);\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst alreadyPresentExecutionsFiltered = alreadyPresentExecutions.filter(\n\t\t\t\t(execution) =>\n\t\t\t\t\t!gaps.includes(parseInt(execution.id, 10)) && lastId >= parseInt(execution.id, 10),\n\t\t\t);\n\t\t\tthis.finishedExecutionsCount = pastExecutions.count;\n\t\t\tthis.finishedExecutionsCountEstimated = pastExecutions.estimated;\n\n\t\t\tthis.finishedExecutions = alreadyPresentExecutionsFiltered;\n\t\t\tthis.workflowsStore.addToCurrentExecutions(alreadyPresentExecutionsFiltered);\n\n\t\t\tthis.adjustSelectionAfterMoreItemsLoaded();\n\t\t},\n\t\tasync loadFinishedExecutions(): Promise<void> {\n\t\t\tif (this.filter.status === 'running') {\n\t\t\t\tthis.finishedExecutions = [];\n\t\t\t\tthis.finishedExecutionsCount = 0;\n\t\t\t\tthis.finishedExecutionsCountEstimated = false;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst data = await this.workflowsStore.getPastExecutions(\n\t\t\t\tthis.workflowFilterPast,\n\t\t\t\tthis.requestItemsPerRequest,\n\t\t\t);\n\t\t\tthis.finishedExecutions = data.results;\n\t\t\tthis.finishedExecutionsCount = data.count;\n\t\t\tthis.finishedExecutionsCountEstimated = data.estimated;\n\n\t\t\tthis.workflowsStore.addToCurrentExecutions(data.results);\n\n\t\t\tif (this.finishedExecutions.length === 0) {\n\t\t\t\tthis.handleClearSelection();\n\t\t\t}\n\t\t},\n\t\tasync loadMore() {\n\t\t\tif (this.filter.status === 'running') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isDataLoading = true;\n\n\t\t\tconst filter = this.workflowFilterPast;\n\t\t\tlet lastId: string | undefined;\n\n\t\t\tif (this.finishedExecutions.length !== 0) {\n\t\t\t\tconst lastItem = this.finishedExecutions.slice(-1)[0];\n\t\t\t\tlastId = lastItem.id;\n\t\t\t}\n\n\t\t\tlet data: IExecutionsListResponse;\n\t\t\ttry {\n\t\t\t\tdata = await this.workflowsStore.getPastExecutions(\n\t\t\t\t\tfilter,\n\t\t\t\t\tthis.requestItemsPerRequest,\n\t\t\t\t\tlastId,\n\t\t\t\t);\n\t\t\t} catch (error) {\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.loadMore.title'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata.results = data.results.map((execution) => {\n\t\t\t\t// @ts-ignore\n\t\t\t\treturn { ...execution, mode: execution.mode };\n\t\t\t});\n\n\t\t\tthis.finishedExecutions.push(...data.results);\n\t\t\tthis.finishedExecutionsCount = data.count;\n\t\t\tthis.finishedExecutionsCountEstimated = data.estimated;\n\n\t\t\tthis.isDataLoading = false;\n\n\t\t\tthis.workflowsStore.addToCurrentExecutions(data.results);\n\n\t\t\tthis.adjustSelectionAfterMoreItemsLoaded();\n\t\t},\n\t\tasync loadWorkflows() {\n\t\t\ttry {\n\t\t\t\tconst workflows =\n\t\t\t\t\t(await this.workflowsStore.fetchAllWorkflows()) as IWorkflowShortResponse[];\n\t\t\t\tworkflows.sort((a, b) => {\n\t\t\t\t\tif (a.name.toLowerCase() < b.name.toLowerCase()) {\n\t\t\t\t\t\treturn -1;\n\t\t\t\t\t}\n\t\t\t\t\tif (a.name.toLowerCase() > b.name.toLowerCase()) {\n\t\t\t\t\t\treturn 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn 0;\n\t\t\t\t});\n\n\t\t\t\tworkflows.unshift({\n\t\t\t\t\tid: 'all',\n\t\t\t\t\tname: this.i18n.baseText('executionsList.allWorkflows'),\n\t\t\t\t} as IWorkflowShortResponse);\n\n\t\t\t\tthis.workflows = workflows;\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.loadWorkflows.title'));\n\t\t\t}\n\t\t},\n\t\tasync retryExecution(execution: IExecutionsSummary, loadWorkflow?: boolean) {\n\t\t\tthis.isDataLoading = true;\n\n\t\t\ttry {\n\t\t\t\tconst retrySuccessful = await this.workflowsStore.retryExecution(\n\t\t\t\t\texecution.id,\n\t\t\t\t\tloadWorkflow,\n\t\t\t\t);\n\n\t\t\t\tif (retrySuccessful) {\n\t\t\t\t\tthis.showMessage({\n\t\t\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.retrySuccessfulTrue.title'),\n\t\t\t\t\t\ttype: 'success',\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.showMessage({\n\t\t\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.retrySuccessfulFalse.title'),\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.retryExecution.title'));\n\n\t\t\t\tthis.isDataLoading = false;\n\t\t\t}\n\t\t},\n\t\tasync refreshData() {\n\t\t\tthis.isDataLoading = true;\n\n\t\t\ttry {\n\t\t\t\tawait Promise.all([this.loadActiveExecutions(), this.loadFinishedExecutions()]);\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.refreshData.title'));\n\t\t\t}\n\n\t\t\tthis.isDataLoading = false;\n\t\t},\n\t\tgetStatus(execution: IExecutionsSummary): ExecutionStatus {\n\t\t\tif (execution.status) {\n\t\t\t\treturn execution.status;\n\t\t\t} else {\n\t\t\t\t// this should not happen but just in case\n\t\t\t\tlet status: ExecutionStatus = 'unknown';\n\t\t\t\tif (execution.waitTill) {\n\t\t\t\t\tstatus = 'waiting';\n\t\t\t\t} else if (execution.stoppedAt === undefined) {\n\t\t\t\t\tstatus = 'running';\n\t\t\t\t} else if (execution.finished) {\n\t\t\t\t\tstatus = 'success';\n\t\t\t\t} else if (execution.stoppedAt !== null) {\n\t\t\t\t\tstatus = 'failed';\n\t\t\t\t} else {\n\t\t\t\t\tstatus = 'unknown';\n\t\t\t\t}\n\t\t\t\treturn status;\n\t\t\t}\n\t\t},\n\t\tgetRowClass(execution: IExecutionsSummary): string {\n\t\t\treturn [this.$style.execRow, this.$style[this.getStatus(execution)]].join(' ');\n\t\t},\n\t\tgetStatusText(entry: IExecutionsSummary): string {\n\t\t\tconst status = this.getStatus(entry);\n\t\t\tlet text = '';\n\n\t\t\tif (status === 'waiting') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.waiting');\n\t\t\t} else if (status === 'canceled') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.canceled');\n\t\t\t} else if (status === 'crashed') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.error');\n\t\t\t} else if (status === 'new') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.running');\n\t\t\t} else if (status === 'running') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.running');\n\t\t\t} else if (status === 'success') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.succeeded');\n\t\t\t} else if (status === 'failed') {\n\t\t\t\ttext = this.i18n.baseText('executionsList.error');\n\t\t\t} else {\n\t\t\t\ttext = this.i18n.baseText('executionsList.unknown');\n\t\t\t}\n\n\t\t\treturn text;\n\t\t},\n\t\tgetStatusTextTranslationPath(entry: IExecutionsSummary): string {\n\t\t\tconst status = this.getStatus(entry);\n\t\t\tlet path = '';\n\n\t\t\tif (status === 'waiting') {\n\t\t\t\tpath = 'executionsList.statusWaiting';\n\t\t\t} else if (status === 'canceled') {\n\t\t\t\tpath = 'executionsList.statusCanceled';\n\t\t\t} else if (['crashed', 'failed', 'success'].includes(status)) {\n\t\t\t\tif (!entry.stoppedAt) {\n\t\t\t\t\tpath = 'executionsList.statusTextWithoutTime';\n\t\t\t\t} else {\n\t\t\t\t\tpath = 'executionsList.statusText';\n\t\t\t\t}\n\t\t\t} else if (status === 'new') {\n\t\t\t\tpath = 'executionsList.statusRunning';\n\t\t\t} else if (status === 'running') {\n\t\t\t\tpath = 'executionsList.statusRunning';\n\t\t\t} else {\n\t\t\t\tpath = 'executionsList.statusUnknown';\n\t\t\t}\n\n\t\t\treturn path;\n\t\t},\n\t\tgetStatusTooltipText(entry: IExecutionsSummary): string {\n\t\t\tconst status = this.getStatus(entry);\n\t\t\tlet text = '';\n\n\t\t\tif (status === 'waiting' && this.isWaitTillIndefinite(entry)) {\n\t\t\t\ttext = this.i18n.baseText(\n\t\t\t\t\t'executionsList.statusTooltipText.theWorkflowIsWaitingIndefinitely',\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn text;\n\t\t},\n\t\tasync stopExecution(activeExecutionId: string) {\n\t\t\ttry {\n\t\t\t\t// Add it to the list of currently stopping executions that we\n\t\t\t\t// can show the user in the UI that it is in progress\n\t\t\t\tthis.stoppingExecutions.push(activeExecutionId);\n\n\t\t\t\tawait this.workflowsStore.stopCurrentExecution(activeExecutionId);\n\n\t\t\t\t// Remove it from the list of currently stopping executions\n\t\t\t\tconst index = this.stoppingExecutions.indexOf(activeExecutionId);\n\t\t\t\tthis.stoppingExecutions.splice(index, 1);\n\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttitle: this.i18n.baseText('executionsList.showMessage.stopExecution.title'),\n\t\t\t\t\tmessage: this.i18n.baseText('executionsList.showMessage.stopExecution.message', {\n\t\t\t\t\t\tinterpolate: { activeExecutionId },\n\t\t\t\t\t}),\n\t\t\t\t\ttype: 'success',\n\t\t\t\t});\n\n\t\t\t\tawait this.refreshData();\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(error, this.i18n.baseText('executionsList.showError.stopExecution.title'));\n\t\t\t}\n\t\t},\n\t\tisExecutionRetriable(execution: IExecutionsSummary): boolean {\n\t\t\treturn (\n\t\t\t\texecution.stoppedAt !== undefined &&\n\t\t\t\t!execution.finished &&\n\t\t\t\texecution.retryOf === undefined &&\n\t\t\t\texecution.retrySuccessId === undefined &&\n\t\t\t\t!execution.waitTill\n\t\t\t);\n\t\t},\n\t\tasync deleteExecution(execution: IExecutionsSummary) {\n\t\t\tthis.isDataLoading = true;\n\t\t\ttry {\n\t\t\t\tawait this.workflowsStore.deleteExecutions({ ids: [execution.id] });\n\t\t\t\tawait this.refreshData();\n\n\t\t\t\tif (this.allVisibleSelected) {\n\t\t\t\t\tthis.selectedItems = {};\n\t\t\t\t\tthis.selectAllVisibleExecutions();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tthis.showError(\n\t\t\t\t\terror,\n\t\t\t\t\tthis.i18n.baseText('executionsList.showError.handleDeleteSelected.title'),\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.isDataLoading = true;\n\t\t},\n\t\tisWaitTillIndefinite(execution: IExecutionsSummary): boolean {\n\t\t\tif (!execution.waitTill) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn new Date(execution.waitTill).toISOString() === WAIT_TIME_UNLIMITED;\n\t\t},\n\t\tisRunning(execution: IExecutionsSummary): boolean {\n\t\t\treturn this.getStatus(execution) === 'running';\n\t\t},\n\t\tselectAllVisibleExecutions() {\n\t\t\tthis.combinedExecutions.forEach((execution: IExecutionsSummary) => {\n\t\t\t\tthis.selectedItems = { ...this.selectedItems, [execution.id]: true };\n\t\t\t});\n\t\t},\n\t\tadjustSelectionAfterMoreItemsLoaded() {\n\t\t\tif (this.allExistingSelected) {\n\t\t\t\tthis.allVisibleSelected = true;\n\t\t\t\tthis.selectAllVisibleExecutions();\n\t\t\t}\n\t\t},\n\t\tasync startAutoRefreshInterval() {\n\t\t\tif (this.autoRefresh && this.route.name === VIEWS.EXECUTIONS) {\n\t\t\t\tawait this.loadAutoRefresh();\n\t\t\t\tthis.autoRefreshTimeout = setTimeout(() => {\n\t\t\t\t\tvoid this.startAutoRefreshInterval();\n\t\t\t\t}, 4 * 1000); // refresh data every 4 secs\n\t\t\t}\n\t\t},\n\t\tstopAutoRefreshInterval() {\n\t\t\tclearTimeout(this.autoRefreshTimeout);\n\t\t\tthis.autoRefreshTimeout = undefined;\n\t\t},\n\t\tonDocumentVisibilityChange() {\n\t\t\tif (document.visibilityState === 'hidden') {\n\t\t\t\tthis.stopAutoRefreshInterval();\n\t\t\t} else {\n\t\t\t\tvoid this.startAutoRefreshInterval();\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.execListWrapper {\n\tdisplay: grid;\n\tgrid-template-rows: 1fr 0;\n\tposition: relative;\n\theight: 100%;\n\twidth: 100%;\n\tmax-width: 1280px;\n}\n\n.execList {\n\tposition: relative;\n\theight: 100%;\n\toverflow: auto;\n\tpadding: var(--spacing-l) var(--spacing-l) 0;\n\t@media (min-width: 1200px) {\n\t\tpadding: var(--spacing-2xl) var(--spacing-2xl) 0;\n\t}\n}\n\n.execListHeader {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tmargin-bottom: var(--spacing-s);\n}\n\n.execListHeaderControls {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: flex-end;\n}\n\n.selectionOptions {\n\tdisplay: flex;\n\talign-items: center;\n\tposition: absolute;\n\tpadding: var(--spacing-2xs);\n\tz-index: 2;\n\tleft: 50%;\n\ttransform: translateX(-50%);\n\tbottom: var(--spacing-3xl);\n\tbackground: var(--color-background-dark);\n\tborder-radius: var(--border-radius-base);\n\tcolor: var(--color-text-xlight);\n\tfont-size: var(--font-size-2xs);\n\n\tbutton {\n\t\tmargin-left: var(--spacing-2xs);\n\t}\n}\n\n.statusColumn {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.spinner {\n\tmargin-right: var(--spacing-2xs);\n}\n\n.status {\n\tline-height: 22.6px;\n\ttext-align: center;\n\tfont-size: var(--font-size-s);\n\tfont-weight: var(--font-weight-bold);\n\n\t.crashed &,\n\t.failed & {\n\t\tcolor: var(--color-danger);\n\t}\n\n\t.waiting & {\n\t\tcolor: var(--color-secondary);\n\t}\n\n\t.success & {\n\t\tfont-weight: var(--font-weight-normal);\n\t}\n\n\t.new &,\n\t.running & {\n\t\tcolor: var(--color-warning);\n\t}\n\n\t.unknown & {\n\t\tcolor: var(--color-background-dark);\n\t}\n}\n\n.buttonCell {\n\toverflow: hidden;\n\n\tbutton {\n\t\ttransform: translateX(1000%);\n\t\ttransition: transform 0s;\n\n\t\t&:focus-visible,\n\t\t.execRow:hover & {\n\t\t\ttransform: translateX(0);\n\t\t}\n\t}\n}\n\n.execTable {\n\t/*\n\t Table height needs to be set to 0 in order to use height 100% for elements in table cells\n\t*/\n\theight: 0;\n\twidth: 100%;\n\ttext-align: left;\n\tfont-size: var(--font-size-s);\n\n\tthead th {\n\t\tposition: sticky;\n\t\ttop: calc(var(--spacing-3xl) * -1);\n\t\tz-index: 2;\n\t\tpadding: var(--spacing-s) var(--spacing-s) var(--spacing-s) 0;\n\t\tbackground: var(--color-table-header-background);\n\n\t\t&:first-child {\n\t\t\tpadding-left: var(--spacing-s);\n\t\t}\n\t}\n\n\tth,\n\ttd {\n\t\theight: 100%;\n\t\tpadding: var(--spacing-s) var(--spacing-s) var(--spacing-s) 0;\n\t\tbackground: var(--color-table-row-background);\n\n\t\t&:not(:first-child, :nth-last-child(-n + 3)) {\n\t\t\twidth: 100%;\n\t\t}\n\n\t\t&:nth-last-child(-n + 2) {\n\t\t\tpadding-left: 0;\n\t\t}\n\n\t\t@media (min-width: $breakpoint-sm) {\n\t\t\t&:not(:nth-child(2)) {\n\t\t\t\t&,\n\t\t\t\tdiv,\n\t\t\t\tspan {\n\t\t\t\t\twhite-space: nowrap;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t.execRow {\n\t\tcolor: var(--color-text-base);\n\n\t\ttd:first-child {\n\t\t\twidth: 30px;\n\t\t\tpadding: 0 var(--spacing-s) 0 0;\n\n\t\t\t/*\n\t\t\t This is needed instead of table cell border because they are overlapping the sticky header\n\t\t\t*/\n\t\t\t&::before {\n\t\t\t\tcontent: '';\n\t\t\t\tdisplay: inline-block;\n\t\t\t\twidth: var(--spacing-4xs);\n\t\t\t\theight: 100%;\n\t\t\t\tvertical-align: middle;\n\t\t\t\tmargin-right: var(--spacing-xs);\n\t\t\t}\n\t\t}\n\n\t\t&:nth-child(even) td {\n\t\t\tbackground: var(--color-table-row-even-background);\n\t\t}\n\n\t\t&:hover td {\n\t\t\tbackground: var(--color-table-row-hover-background);\n\t\t}\n\n\t\t&.crashed td:first-child::before,\n\t\t&.failed td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-error);\n\t\t}\n\n\t\t&.success td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-success);\n\t\t}\n\n\t\t&.new td:first-child::before,\n\t\t&.running td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-running);\n\t\t}\n\n\t\t&.waiting td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-waiting);\n\t\t}\n\n\t\t&.unknown td:first-child::before {\n\t\t\tbackground: var(--execution-card-border-unknown);\n\t\t}\n\t}\n}\n\n.loadMore {\n\tmargin: var(--spacing-m) 0;\n\twidth: 100%;\n\ttext-align: center;\n}\n\n.loadedAll {\n\ttext-align: center;\n\tfont-size: var(--font-size-s);\n\tcolor: var(--color-text-light);\n\tmargin: var(--spacing-l) 0;\n}\n\n.actions.deleteOnly {\n\tpadding: 0;\n}\n\n.retryAction + .deleteAction {\n\tborder-top: 1px solid var(--color-foreground-light);\n}\n\n.selectAll {\n\tdisplay: inline-block;\n\tmargin: 0 0 var(--spacing-s) var(--spacing-s);\n\tcolor: var(--color-danger);\n}\n\n.filterLoader {\n\twidth: 220px;\n\theight: 32px;\n}\n\n.tableLoader {\n\twidth: 100%;\n\theight: 48px;\n\tmargin-bottom: var(--spacing-2xs);\n}\n\n.link {\n\tcolor: var(--color-text-base);\n\ttext-decoration: underline;\n}\n</style>\n","<template>\n\t<ExecutionsList />\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport ExecutionsList from '@/components/ExecutionsList.vue';\n\nexport default defineComponent({\n\tname: 'ExecutionsView',\n\tcomponents: {\n\t\tExecutionsList,\n\t},\n});\n</script>\n"],"names":["_sfc_main$1","defineComponent","genericHelpers","executionHelpers","ExecutionTime","ExecutionFilter","i18n","useI18n","telemetry","useTelemetry","externalHooks","useExternalHooks","route","useRoute","useToast","useMessage","setPageTitle","mapStores","useUIStore","useWorkflowsStore","returnData","execution","filter","executionFilterToQueryFilter","VIEWS","executionId","removedSelectedItem","remainingSelectedItems","MODAL_CONFIRM","sendData","error","commandData","loadWorkflow","workflowId","_a","data","activeExecutions","isEmpty","activeExecution","promises","results","alreadyPresentExecutions","alreadyPresentExecutionIds","exec","lastId","gaps","pastExecutions","i","currentItem","currentId","range","_range","executionIndex","j","alreadyPresentExecutionsFiltered","workflows","a","b","status","entry","text","path","activeExecutionId","index","WAIT_TIME_UNLIMITED","_createElementVNode","_hoisted_12","_resolveComponent","_normalizeClass","_ctx","_component_n8n_heading","_openBlock","_createBlock","_component_n8n_loading","_component_el_checkbox","_cache","$event","_withDirectives","_createVNode","_component_execution_filter","_createCommentVNode","_createElementBlock","_hoisted_1","_toDisplayString","_hoisted_2","_hoisted_3","_hoisted_4","_Fragment","_renderList","_withModifiers","_hoisted_6","_component_font_awesome_icon","_component_n8n_tooltip","_withCtx","_component_i18n_t","_hoisted_7","_hoisted_8","_component_execution_time","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_13","_component_n8n_button","_component_el_dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_hoisted_14","_component_n8n_icon_button","_sfc_main","ExecutionsList"],"mappings":"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"}
|
package/dist/assets/{FixedCollectionParameter-d68rB1aT.js → FixedCollectionParameter-tJFyljoK.js}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{U as c,fW as C,d4 as _,_ as z}from"./n8n-ZKR6bms9.js";import{g as P}from"./lodash-es-s_m9YyW7.js";import{G as A,aD as I,ag as p,l as s,m as n,T as m,O as v,R as S,S as U,Q as u,F as f,a7 as b,M as d,p as $,aF as j,I as B,a2 as F}from"./vendor-2CfOYFi2.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./pinia-jX93eZRS.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";const L=I(async()=>_(()=>import("./index
|
|
2
|
-
//# sourceMappingURL=FixedCollectionParameter-
|
|
1
|
+
import{U as c,fW as C,d4 as _,_ as z}from"./n8n-ZKR6bms9.js";import{g as P}from"./lodash-es-s_m9YyW7.js";import{G as A,aD as I,ag as p,l as s,m as n,T as m,O as v,R as S,S as U,Q as u,F as f,a7 as b,M as d,p as $,aF as j,I as B,a2 as F}from"./vendor-2CfOYFi2.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./pinia-jX93eZRS.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";const L=I(async()=>_(()=>import("./index-RXjMHIPR.js").then(e=>e.aZ),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29]))),E=A({name:"FixedCollectionParameter",props:{nodeValues:{type:Object,required:!0},parameter:{type:Object,required:!0},path:{type:String,required:!0},values:{type:Object,default:()=>({})},isReadOnly:{type:Boolean,default:!1}},components:{ParameterInputList:L},data(){return{selectedOption:void 0,mutableValues:{}}},watch:{values:{handler(e){this.mutableValues=c(e)},deep:!0}},created(){this.mutableValues=c(this.values)},computed:{getPlaceholderText(){const e=this.$locale.nodeText().placeholder(this.parameter,this.path);return e||this.$locale.baseText("fixedCollectionParameter.choose")},getProperties(){const e=[];let t;for(const o of this.propertyNames)t=this.getOptionProperties(o),t!==void 0&&e.push(t);return e},multipleValues(){var e;return!!((e=this.parameter.typeOptions)!=null&&e.multipleValues)},parameterOptions(){return this.multipleValues&&C(this.parameter.options)?this.parameter.options:this.parameter.options.filter(e=>!this.propertyNames.includes(e.name))},propertyNames(){return Object.keys(this.mutableValues||{})},sortable(){var e;return!!((e=this.parameter.typeOptions)!=null&&e.sortable)}},methods:{deleteOption(e,t){const o=this.mutableValues[e];!o||o.length>1?this.$emit("valueChanged",{name:this.getPropertyPath(e,t),value:void 0}):this.$emit("valueChanged",{name:this.getPropertyPath(e),value:void 0})},getPropertyPath(e,t){return`${this.path}.${e}`+(t!==void 0?`[${t}]`:"")},getOptionProperties(e){if(C(this.parameter.options)){for(const t of this.parameter.options)if(t.name===e)return t}},moveOptionDown(e,t){Array.isArray(this.mutableValues[e])&&this.mutableValues[e].splice(t+1,0,this.mutableValues[e].splice(t,1)[0]);const o={name:this.getPropertyPath(e),value:this.mutableValues[e]};this.$emit("valueChanged",o)},moveOptionUp(e,t){var i;Array.isArray(this.mutableValues[e])&&((i=this.mutableValues)==null||i[e].splice(t-1,0,this.mutableValues[e].splice(t,1)[0]));const o={name:this.getPropertyPath(e),value:this.mutableValues[e]};this.$emit("valueChanged",o)},optionSelected(e){const t=this.getOptionProperties(e);if(t===void 0)return;const o=`${this.path}.${t.name}`,i={};for(const l of t.values)l.type==="fixedCollection"&&l.typeOptions!==void 0&&l.typeOptions.multipleValues===!0?i[l.name]={}:l.typeOptions!==void 0&&l.typeOptions.multipleValues===!0?(i[l.name]=P(this.nodeValues,`${this.path}.${l.name}`,[]),Array.isArray(l.default)?i[l.name].push(...c(l.default)):l.default!==""&&typeof l.default!="object"&&i[l.name].push(c(l.default))):i[l.name]=c(l.default);let h;this.multipleValues?(h=P(this.nodeValues,o,[]),h.push(i)):h=i;const V={name:o,value:h};this.$emit("valueChanged",V),this.selectedOption=void 0},valueChanged(e){this.$emit("valueChanged",e)}}}),q={key:0,class:"no-items-exist"},M={key:1},N={key:0,class:"delete-option"},G={key:2,class:"parameter-item"},K={class:"parameter-item-wrapper"},Q={key:0,class:"delete-option"},W={key:1,class:"controls"},Z={key:1,class:"add-option"};function H(e,t,o,i,h,V){const l=p("n8n-text"),k=p("n8n-input-label"),y=p("n8n-icon-button"),g=p("parameter-input-list"),T=p("n8n-button"),w=p("n8n-option"),D=p("n8n-select");return s(),n("div",{onKeydown:t[2]||(t[2]=F(()=>{},["stop"])),class:"fixed-collection-parameter"},[e.getProperties.length===0?(s(),n("div",q,[m(l,{size:"small"},{default:v(()=>[U(S(e.$locale.baseText("fixedCollectionParameter.currentlyNoItemsExist")),1)]),_:1})])):u("",!0),(s(!0),n(f,null,b(e.getProperties,a=>(s(),n("div",{key:a.name,class:"fixed-collection-parameter-property"},[a.displayName!==""&&e.parameter.options&&e.parameter.options.length!==1?(s(),d(k,{key:0,label:e.$locale.nodeText().inputLabelDisplayName(a,e.path),underline:!0,size:"small",color:"text-dark"},null,8,["label"])):u("",!0),e.multipleValues?(s(),n("div",M,[(s(!0),n(f,null,b(e.mutableValues[a.name],(R,r)=>(s(),n("div",{key:a.name+r,class:"parameter-item"},[$("div",{class:B(r?"border-top-dashed parameter-item-wrapper ":"parameter-item-wrapper")},[e.isReadOnly?u("",!0):(s(),n("div",N,[m(y,{type:"tertiary",text:"",size:"mini",icon:"trash",title:e.$locale.baseText("fixedCollectionParameter.deleteItem"),onClick:O=>e.deleteOption(a.name,r)},null,8,["title","onClick"]),e.sortable&&r!==0?(s(),d(y,{key:0,type:"tertiary",text:"",size:"mini",icon:"angle-up",title:e.$locale.baseText("fixedCollectionParameter.moveUp"),onClick:O=>e.moveOptionUp(a.name,r)},null,8,["title","onClick"])):u("",!0),e.sortable&&r!==e.mutableValues[a.name].length-1?(s(),d(y,{key:1,type:"tertiary",text:"",size:"mini",icon:"angle-down",title:e.$locale.baseText("fixedCollectionParameter.moveDown"),onClick:O=>e.moveOptionDown(a.name,r)},null,8,["title","onClick"])):u("",!0)])),(s(),d(j,null,{default:v(()=>[m(g,{parameters:a.values,nodeValues:e.nodeValues,path:e.getPropertyPath(a.name,r),hideDelete:!0,isReadOnly:e.isReadOnly,onValueChanged:e.valueChanged},null,8,["parameters","nodeValues","path","isReadOnly","onValueChanged"])]),_:2},1024))],2)]))),128))])):(s(),n("div",G,[$("div",K,[e.isReadOnly?u("",!0):(s(),n("div",Q,[m(y,{type:"tertiary",text:"",size:"mini",icon:"trash",title:e.$locale.baseText("fixedCollectionParameter.deleteItem"),onClick:R=>e.deleteOption(a.name)},null,8,["title","onClick"])])),m(g,{parameters:a.values,nodeValues:e.nodeValues,path:e.getPropertyPath(a.name),isReadOnly:e.isReadOnly,class:"parameter-item",onValueChanged:e.valueChanged,hideDelete:!0},null,8,["parameters","nodeValues","path","isReadOnly","onValueChanged"])])]))]))),128)),e.parameterOptions.length>0&&!e.isReadOnly?(s(),n("div",W,[e.parameter.options.length===1?(s(),d(T,{key:0,type:"tertiary",block:"",onClick:t[0]||(t[0]=a=>e.optionSelected(e.parameter.options[0].name)),label:e.getPlaceholderText},null,8,["label"])):(s(),n("div",Z,[m(D,{modelValue:e.selectedOption,"onUpdate:modelValue":[t[1]||(t[1]=a=>e.selectedOption=a),e.optionSelected],placeholder:e.getPlaceholderText,size:"small",filterable:""},{default:v(()=>[(s(!0),n(f,null,b(e.parameterOptions,a=>(s(),d(w,{key:a.name,label:e.$locale.nodeText().collectionOptionDisplayName(e.parameter,a,e.path),value:a.name},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","onUpdate:modelValue"])]))])):u("",!0)],32)}const re=z(E,[["render",H],["__scopeId","data-v-2ec0692c"]]);export{re as default};
|
|
2
|
+
//# sourceMappingURL=FixedCollectionParameter-tJFyljoK.js.map
|
|
3
3
|
function __vite__mapDeps(indexes) {
|
|
4
4
|
if (!__vite__mapDeps.viteFileDeps) {
|
|
5
|
-
__vite__mapDeps.viteFileDeps = ["assets/index
|
|
5
|
+
__vite__mapDeps.viteFileDeps = ["assets/index-RXjMHIPR.js","assets/vendor-2CfOYFi2.js","assets/pinia-jX93eZRS.js","assets/n8n-ZKR6bms9.js","assets/lodash-es-s_m9YyW7.js","assets/axios-QLjAsgXu.js","assets/flatted-jPn12Tq4.js","assets/esprima-next-ulPLCZ1Z.js","assets/luxon-ZRIU05qF.js","assets/@vueuse/core-viEZCtbZ.js","assets/uuid-McvpxQtQ.js","assets/vue-i18n-2T2QU_2c.js","assets/@n8n/permissions-8yMqUF1Y.js","assets/n8n-VwjxGD6F.css","assets/prettier-s3fE3Qyr.js","assets/codemirror-lang-html-n8n-qoVuUIQR.js","assets/@n8n/codemirror-lang-sql-zd5sOTQ9.js","assets/@lezer/common-aP6EPErF.js","assets/@jsplumb/util-DR0SB56A.js","assets/@jsplumb/core-MKwKlGip.js","assets/@jsplumb/common-Q5_tv_GT.js","assets/@jsplumb/connector-bezier-3dWY17R5.js","assets/@jsplumb/browser-ui-QL7QI0sV.js","assets/codemirror-lang-n8n-expression-qGXLqLTr.js","assets/fast-json-stable-stringify-RhDdw38P.js","assets/timeago.js--Bumj2r9.js","assets/qrcode.vue-f7Vn5Pkq.js","assets/vue3-touch-events-_RfbPMOD.js","assets/chart.js-JtqvIvkt.js","assets/index-G0m9nZxH.css"]
|
|
6
6
|
}
|
|
7
7
|
return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
|
|
8
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"mappings":"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","names":["ParameterInputList","defineAsyncComponent","__vitePreload","_sfc_main","defineComponent","newValues","deepCopy","placeholder","returnProperties","tempProperties","name","_a","isINodePropertyCollectionList","option","optionName","index","currentOptionsOfSameType","parameterData","newParameterValue","optionParameter","get","newValue","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_6","_hoisted_7","_hoisted_8","_resolveComponent","_openBlock","_createElementBlock","_cache","_withModifiers","_ctx","_createVNode","_component_n8n_text","_withCtx","_createCommentVNode","_Fragment","_renderList","property","_createBlock","_component_n8n_input_label","_hoisted_2","value","_normalizeClass","_component_n8n_icon_button","$event","_Suspense","_component_parameter_input_list","_createElementVNode","_hoisted_5","_component_n8n_button","_component_n8n_select","item","_component_n8n_option"],"sources":["../../src/components/FixedCollectionParameter.vue"],"sourcesContent":["<template>\n\t<div @keydown.stop class=\"fixed-collection-parameter\">\n\t\t<div v-if=\"getProperties.length === 0\" class=\"no-items-exist\">\n\t\t\t<n8n-text size=\"small\">{{\n\t\t\t\t$locale.baseText('fixedCollectionParameter.currentlyNoItemsExist')\n\t\t\t}}</n8n-text>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-for=\"property in getProperties\"\n\t\t\t:key=\"property.name\"\n\t\t\tclass=\"fixed-collection-parameter-property\"\n\t\t>\n\t\t\t<n8n-input-label\n\t\t\t\tv-if=\"property.displayName !== '' && parameter.options && parameter.options.length !== 1\"\n\t\t\t\t:label=\"$locale.nodeText().inputLabelDisplayName(property, path)\"\n\t\t\t\t:underline=\"true\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tcolor=\"text-dark\"\n\t\t\t/>\n\t\t\t<div v-if=\"multipleValues\">\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(value, index) in mutableValues[property.name]\"\n\t\t\t\t\t:key=\"property.name + index\"\n\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\t:class=\"index ? 'border-top-dashed parameter-item-wrapper ' : 'parameter-item-wrapper'\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t\t@click=\"deleteOption(property.name, index)\"\n\t\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\tv-if=\"sortable && index !== 0\"\n\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\ticon=\"angle-up\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveUp')\"\n\t\t\t\t\t\t\t\t@click=\"moveOptionUp(property.name, index)\"\n\t\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\tv-if=\"sortable && index !== mutableValues[property.name].length - 1\"\n\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\ticon=\"angle-down\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveDown')\"\n\t\t\t\t\t\t\t\t@click=\"moveOptionDown(property.name, index)\"\n\t\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Suspense>\n\t\t\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t\t\t:path=\"getPropertyPath(property.name, index)\"\n\t\t\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else class=\"parameter-item\">\n\t\t\t\t<div class=\"parameter-item-wrapper\">\n\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t@click=\"deleteOption(property.name)\"\n\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t:path=\"getPropertyPath(property.name)\"\n\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"controls\" v-if=\"parameterOptions.length > 0 && !isReadOnly\">\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"parameter.options.length === 1\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tblock\n\t\t\t\t@click=\"optionSelected(parameter.options[0].name)\"\n\t\t\t\t:label=\"getPlaceholderText\"\n\t\t\t/>\n\t\t\t<div v-else class=\"add-option\">\n\t\t\t\t<n8n-select\n\t\t\t\t\tv-model=\"selectedOption\"\n\t\t\t\t\t:placeholder=\"getPlaceholderText\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t@update:modelValue=\"optionSelected\"\n\t\t\t\t\tfilterable\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"item in parameterOptions\"\n\t\t\t\t\t\t:key=\"item.name\"\n\t\t\t\t\t\t:label=\"$locale.nodeText().collectionOptionDisplayName(parameter, item, path)\"\n\t\t\t\t\t\t:value=\"item.name\"\n\t\t\t\t\t></n8n-option>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineAsyncComponent, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport type { IUpdateInformation } from '@/Interface';\n\nimport type {\n\tINodeParameters,\n\tINodeProperties,\n\tINodePropertyCollection,\n\tNodeParameterValue,\n} from 'n8n-workflow';\nimport { deepCopy, isINodePropertyCollectionList } from 'n8n-workflow';\n\nimport { get } from 'lodash-es';\n\nconst ParameterInputList = defineAsyncComponent(async () => import('./ParameterInputList.vue'));\n\nexport default defineComponent({\n\tname: 'FixedCollectionParameter',\n\tprops: {\n\t\tnodeValues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\trequired: true,\n\t\t},\n\t\tparameter: {\n\t\t\ttype: Object as PropType<INodeProperties>,\n\t\t\trequired: true,\n\t\t},\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvalues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tisReadOnly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomponents: {\n\t\tParameterInputList,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: undefined,\n\t\t\tmutableValues: {} as Record<string, INodeParameters[]>,\n\t\t};\n\t},\n\twatch: {\n\t\tvalues: {\n\t\t\thandler(newValues: Record<string, INodeParameters[]>) {\n\t\t\t\tthis.mutableValues = deepCopy(newValues);\n\t\t\t},\n\t\t\tdeep: true,\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.mutableValues = deepCopy(this.values);\n\t},\n\tcomputed: {\n\t\tgetPlaceholderText(): string {\n\t\t\tconst placeholder = this.$locale.nodeText().placeholder(this.parameter, this.path);\n\t\t\treturn placeholder ? placeholder : this.$locale.baseText('fixedCollectionParameter.choose');\n\t\t},\n\t\tgetProperties(): INodePropertyCollection[] {\n\t\t\tconst returnProperties = [];\n\t\t\tlet tempProperties;\n\t\t\tfor (const name of this.propertyNames) {\n\t\t\t\ttempProperties = this.getOptionProperties(name);\n\t\t\t\tif (tempProperties !== undefined) {\n\t\t\t\t\treturnProperties.push(tempProperties);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn returnProperties;\n\t\t},\n\t\tmultipleValues(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.multipleValues;\n\t\t},\n\n\t\tparameterOptions(): INodePropertyCollection[] {\n\t\t\tif (this.multipleValues && isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\treturn this.parameter.options;\n\t\t\t}\n\n\t\t\treturn (this.parameter.options as INodePropertyCollection[]).filter((option) => {\n\t\t\t\treturn !this.propertyNames.includes(option.name);\n\t\t\t});\n\t\t},\n\t\tpropertyNames(): string[] {\n\t\t\treturn Object.keys(this.mutableValues || {});\n\t\t},\n\t\tsortable(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.sortable;\n\t\t},\n\t},\n\tmethods: {\n\t\tdeleteOption(optionName: string, index?: number) {\n\t\t\tconst currentOptionsOfSameType = this.mutableValues[optionName];\n\t\t\tif (!currentOptionsOfSameType || currentOptionsOfSameType.length > 1) {\n\t\t\t\t// it's not the only option of this type, so just remove it.\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName, index),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// it's the only option, so remove the whole type\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetPropertyPath(name: string, index?: number) {\n\t\t\treturn `${this.path}.${name}` + (index !== undefined ? `[${index}]` : '');\n\t\t},\n\t\tgetOptionProperties(optionName: string): INodePropertyCollection | undefined {\n\t\t\tif (isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\tfor (const option of this.parameter.options) {\n\t\t\t\t\tif (option.name === optionName) {\n\t\t\t\t\t\treturn option;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tmoveOptionDown(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues[optionName].splice(\n\t\t\t\t\tindex + 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\tmoveOptionUp(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues?.[optionName].splice(\n\t\t\t\t\tindex - 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\toptionSelected(optionName: string) {\n\t\t\tconst option = this.getOptionProperties(optionName);\n\t\t\tif (option === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst name = `${this.path}.${option.name}`;\n\n\t\t\tconst newParameterValue: INodeParameters = {};\n\n\t\t\tfor (const optionParameter of option.values) {\n\t\t\t\tif (\n\t\t\t\t\toptionParameter.type === 'fixedCollection' &&\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\tnewParameterValue[optionParameter.name] = {};\n\t\t\t\t} else if (\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\t// Multiple values are allowed so append option to array\n\t\t\t\t\tnewParameterValue[optionParameter.name] = get(\n\t\t\t\t\t\tthis.nodeValues,\n\t\t\t\t\t\t`${this.path}.${optionParameter.name}`,\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t\tif (Array.isArray(optionParameter.default)) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as INodeParameters[]).push(\n\t\t\t\t\t\t\t...deepCopy(optionParameter.default as INodeParameters[]),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\toptionParameter.default !== '' &&\n\t\t\t\t\t\ttypeof optionParameter.default !== 'object'\n\t\t\t\t\t) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as NodeParameterValue[]).push(\n\t\t\t\t\t\t\tdeepCopy(optionParameter.default),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Add a new option\n\t\t\t\t\tnewParameterValue[optionParameter.name] = deepCopy(optionParameter.default);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet newValue;\n\t\t\tif (this.multipleValues) {\n\t\t\t\tnewValue = get(this.nodeValues, name, [] as INodeParameters[]);\n\n\t\t\t\tnewValue.push(newParameterValue);\n\t\t\t} else {\n\t\t\t\tnewValue = newParameterValue;\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname,\n\t\t\t\tvalue: newValue,\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t\tthis.selectedOption = undefined;\n\t\t},\n\t\tvalueChanged(parameterData: IUpdateInformation) {\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t},\n});\n</script>\n\n<style scoped lang=\"scss\">\n.fixed-collection-parameter {\n\tpadding-left: var(--spacing-s);\n\n\t.delete-option {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t.controls {\n\t\t:deep(.button) {\n\t\t\tfont-weight: var(--font-weight-normal);\n\t\t\t--button-font-color: var(--color-text-dark);\n\t\t\t--button-border-color: var(--color-foreground-base);\n\t\t\t--button-background-color: var(--color-background-base);\n\n\t\t\t--button-hover-font-color: var(--color-text-dark);\n\t\t\t--button-hover-border-color: var(--color-foreground-base);\n\t\t\t--button-hover-background-color: var(--color-background-base);\n\n\t\t\t--button-active-font-color: var(--color-text-dark);\n\t\t\t--button-active-border-color: var(--color-foreground-base);\n\t\t\t--button-active-background-color: var(--color-background-base);\n\n\t\t\t--button-focus-font-color: var(--color-text-dark);\n\t\t\t--button-focus-border-color: var(--color-foreground-base);\n\t\t\t--button-focus-background-color: var(--color-background-base);\n\n\t\t\t&:active,\n\t\t\t&.active,\n\t\t\t&:focus {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.fixed-collection-parameter-property {\n\tmargin: var(--spacing-xs) 0;\n}\n\n.parameter-item:hover > .parameter-item-wrapper > .delete-option {\n\topacity: 1;\n}\n\n.parameter-item {\n\tposition: relative;\n\tpadding: 0 0 0 1em;\n\n\t+ .parameter-item {\n\t\t.parameter-item-wrapper {\n\t\t\t.delete-option {\n\t\t\t\ttop: 14px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.border-top-dashed {\n\tborder-top: 1px dashed #999;\n}\n\n.no-items-exist {\n\tmargin: var(--spacing-xs) 0;\n}\n</style>\n"],"file":"assets/FixedCollectionParameter-d68rB1aT.js"}
|
|
1
|
+
{"version":3,"mappings":"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","names":["ParameterInputList","defineAsyncComponent","__vitePreload","_sfc_main","defineComponent","newValues","deepCopy","placeholder","returnProperties","tempProperties","name","_a","isINodePropertyCollectionList","option","optionName","index","currentOptionsOfSameType","parameterData","newParameterValue","optionParameter","get","newValue","_hoisted_1","_hoisted_3","_hoisted_4","_hoisted_6","_hoisted_7","_hoisted_8","_resolveComponent","_openBlock","_createElementBlock","_cache","_withModifiers","_ctx","_createVNode","_component_n8n_text","_withCtx","_createCommentVNode","_Fragment","_renderList","property","_createBlock","_component_n8n_input_label","_hoisted_2","value","_normalizeClass","_component_n8n_icon_button","$event","_Suspense","_component_parameter_input_list","_createElementVNode","_hoisted_5","_component_n8n_button","_component_n8n_select","item","_component_n8n_option"],"sources":["../../src/components/FixedCollectionParameter.vue"],"sourcesContent":["<template>\n\t<div @keydown.stop class=\"fixed-collection-parameter\">\n\t\t<div v-if=\"getProperties.length === 0\" class=\"no-items-exist\">\n\t\t\t<n8n-text size=\"small\">{{\n\t\t\t\t$locale.baseText('fixedCollectionParameter.currentlyNoItemsExist')\n\t\t\t}}</n8n-text>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-for=\"property in getProperties\"\n\t\t\t:key=\"property.name\"\n\t\t\tclass=\"fixed-collection-parameter-property\"\n\t\t>\n\t\t\t<n8n-input-label\n\t\t\t\tv-if=\"property.displayName !== '' && parameter.options && parameter.options.length !== 1\"\n\t\t\t\t:label=\"$locale.nodeText().inputLabelDisplayName(property, path)\"\n\t\t\t\t:underline=\"true\"\n\t\t\t\tsize=\"small\"\n\t\t\t\tcolor=\"text-dark\"\n\t\t\t/>\n\t\t\t<div v-if=\"multipleValues\">\n\t\t\t\t<div\n\t\t\t\t\tv-for=\"(value, index) in mutableValues[property.name]\"\n\t\t\t\t\t:key=\"property.name + index\"\n\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\t:class=\"index ? 'border-top-dashed parameter-item-wrapper ' : 'parameter-item-wrapper'\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t\t@click=\"deleteOption(property.name, index)\"\n\t\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\tv-if=\"sortable && index !== 0\"\n\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\ticon=\"angle-up\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveUp')\"\n\t\t\t\t\t\t\t\t@click=\"moveOptionUp(property.name, index)\"\n\t\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\t\tv-if=\"sortable && index !== mutableValues[property.name].length - 1\"\n\t\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\t\ticon=\"angle-down\"\n\t\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.moveDown')\"\n\t\t\t\t\t\t\t\t@click=\"moveOptionDown(property.name, index)\"\n\t\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<Suspense>\n\t\t\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t\t\t:path=\"getPropertyPath(property.name, index)\"\n\t\t\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Suspense>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else class=\"parameter-item\">\n\t\t\t\t<div class=\"parameter-item-wrapper\">\n\t\t\t\t\t<div class=\"delete-option\" v-if=\"!isReadOnly\">\n\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\ttext\n\t\t\t\t\t\t\tsize=\"mini\"\n\t\t\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('fixedCollectionParameter.deleteItem')\"\n\t\t\t\t\t\t\t@click=\"deleteOption(property.name)\"\n\t\t\t\t\t\t></n8n-icon-button>\n\t\t\t\t\t</div>\n\t\t\t\t\t<parameter-input-list\n\t\t\t\t\t\t:parameters=\"property.values\"\n\t\t\t\t\t\t:nodeValues=\"nodeValues\"\n\t\t\t\t\t\t:path=\"getPropertyPath(property.name)\"\n\t\t\t\t\t\t:isReadOnly=\"isReadOnly\"\n\t\t\t\t\t\tclass=\"parameter-item\"\n\t\t\t\t\t\t@valueChanged=\"valueChanged\"\n\t\t\t\t\t\t:hideDelete=\"true\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"controls\" v-if=\"parameterOptions.length > 0 && !isReadOnly\">\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"parameter.options.length === 1\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\tblock\n\t\t\t\t@click=\"optionSelected(parameter.options[0].name)\"\n\t\t\t\t:label=\"getPlaceholderText\"\n\t\t\t/>\n\t\t\t<div v-else class=\"add-option\">\n\t\t\t\t<n8n-select\n\t\t\t\t\tv-model=\"selectedOption\"\n\t\t\t\t\t:placeholder=\"getPlaceholderText\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t@update:modelValue=\"optionSelected\"\n\t\t\t\t\tfilterable\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"item in parameterOptions\"\n\t\t\t\t\t\t:key=\"item.name\"\n\t\t\t\t\t\t:label=\"$locale.nodeText().collectionOptionDisplayName(parameter, item, path)\"\n\t\t\t\t\t\t:value=\"item.name\"\n\t\t\t\t\t></n8n-option>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineAsyncComponent, defineComponent } from 'vue';\nimport type { PropType } from 'vue';\nimport type { IUpdateInformation } from '@/Interface';\n\nimport type {\n\tINodeParameters,\n\tINodeProperties,\n\tINodePropertyCollection,\n\tNodeParameterValue,\n} from 'n8n-workflow';\nimport { deepCopy, isINodePropertyCollectionList } from 'n8n-workflow';\n\nimport { get } from 'lodash-es';\n\nconst ParameterInputList = defineAsyncComponent(async () => import('./ParameterInputList.vue'));\n\nexport default defineComponent({\n\tname: 'FixedCollectionParameter',\n\tprops: {\n\t\tnodeValues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\trequired: true,\n\t\t},\n\t\tparameter: {\n\t\t\ttype: Object as PropType<INodeProperties>,\n\t\t\trequired: true,\n\t\t},\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tvalues: {\n\t\t\ttype: Object as PropType<Record<string, INodeParameters[]>>,\n\t\t\tdefault: () => ({}),\n\t\t},\n\t\tisReadOnly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomponents: {\n\t\tParameterInputList,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tselectedOption: undefined,\n\t\t\tmutableValues: {} as Record<string, INodeParameters[]>,\n\t\t};\n\t},\n\twatch: {\n\t\tvalues: {\n\t\t\thandler(newValues: Record<string, INodeParameters[]>) {\n\t\t\t\tthis.mutableValues = deepCopy(newValues);\n\t\t\t},\n\t\t\tdeep: true,\n\t\t},\n\t},\n\tcreated() {\n\t\tthis.mutableValues = deepCopy(this.values);\n\t},\n\tcomputed: {\n\t\tgetPlaceholderText(): string {\n\t\t\tconst placeholder = this.$locale.nodeText().placeholder(this.parameter, this.path);\n\t\t\treturn placeholder ? placeholder : this.$locale.baseText('fixedCollectionParameter.choose');\n\t\t},\n\t\tgetProperties(): INodePropertyCollection[] {\n\t\t\tconst returnProperties = [];\n\t\t\tlet tempProperties;\n\t\t\tfor (const name of this.propertyNames) {\n\t\t\t\ttempProperties = this.getOptionProperties(name);\n\t\t\t\tif (tempProperties !== undefined) {\n\t\t\t\t\treturnProperties.push(tempProperties);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn returnProperties;\n\t\t},\n\t\tmultipleValues(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.multipleValues;\n\t\t},\n\n\t\tparameterOptions(): INodePropertyCollection[] {\n\t\t\tif (this.multipleValues && isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\treturn this.parameter.options;\n\t\t\t}\n\n\t\t\treturn (this.parameter.options as INodePropertyCollection[]).filter((option) => {\n\t\t\t\treturn !this.propertyNames.includes(option.name);\n\t\t\t});\n\t\t},\n\t\tpropertyNames(): string[] {\n\t\t\treturn Object.keys(this.mutableValues || {});\n\t\t},\n\t\tsortable(): boolean {\n\t\t\treturn !!this.parameter.typeOptions?.sortable;\n\t\t},\n\t},\n\tmethods: {\n\t\tdeleteOption(optionName: string, index?: number) {\n\t\t\tconst currentOptionsOfSameType = this.mutableValues[optionName];\n\t\t\tif (!currentOptionsOfSameType || currentOptionsOfSameType.length > 1) {\n\t\t\t\t// it's not the only option of this type, so just remove it.\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName, index),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// it's the only option, so remove the whole type\n\t\t\t\tthis.$emit('valueChanged', {\n\t\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\t\tvalue: undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tgetPropertyPath(name: string, index?: number) {\n\t\t\treturn `${this.path}.${name}` + (index !== undefined ? `[${index}]` : '');\n\t\t},\n\t\tgetOptionProperties(optionName: string): INodePropertyCollection | undefined {\n\t\t\tif (isINodePropertyCollectionList(this.parameter.options)) {\n\t\t\t\tfor (const option of this.parameter.options) {\n\t\t\t\t\tif (option.name === optionName) {\n\t\t\t\t\t\treturn option;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\t\tmoveOptionDown(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues[optionName].splice(\n\t\t\t\t\tindex + 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\tmoveOptionUp(optionName: string, index: number) {\n\t\t\tif (Array.isArray(this.mutableValues[optionName])) {\n\t\t\t\tthis.mutableValues?.[optionName].splice(\n\t\t\t\t\tindex - 1,\n\t\t\t\t\t0,\n\t\t\t\t\tthis.mutableValues[optionName].splice(index, 1)[0],\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname: this.getPropertyPath(optionName),\n\t\t\t\tvalue: this.mutableValues[optionName],\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t\toptionSelected(optionName: string) {\n\t\t\tconst option = this.getOptionProperties(optionName);\n\t\t\tif (option === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst name = `${this.path}.${option.name}`;\n\n\t\t\tconst newParameterValue: INodeParameters = {};\n\n\t\t\tfor (const optionParameter of option.values) {\n\t\t\t\tif (\n\t\t\t\t\toptionParameter.type === 'fixedCollection' &&\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\tnewParameterValue[optionParameter.name] = {};\n\t\t\t\t} else if (\n\t\t\t\t\toptionParameter.typeOptions !== undefined &&\n\t\t\t\t\toptionParameter.typeOptions.multipleValues === true\n\t\t\t\t) {\n\t\t\t\t\t// Multiple values are allowed so append option to array\n\t\t\t\t\tnewParameterValue[optionParameter.name] = get(\n\t\t\t\t\t\tthis.nodeValues,\n\t\t\t\t\t\t`${this.path}.${optionParameter.name}`,\n\t\t\t\t\t\t[],\n\t\t\t\t\t);\n\t\t\t\t\tif (Array.isArray(optionParameter.default)) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as INodeParameters[]).push(\n\t\t\t\t\t\t\t...deepCopy(optionParameter.default as INodeParameters[]),\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (\n\t\t\t\t\t\toptionParameter.default !== '' &&\n\t\t\t\t\t\ttypeof optionParameter.default !== 'object'\n\t\t\t\t\t) {\n\t\t\t\t\t\t(newParameterValue[optionParameter.name] as NodeParameterValue[]).push(\n\t\t\t\t\t\t\tdeepCopy(optionParameter.default),\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Add a new option\n\t\t\t\t\tnewParameterValue[optionParameter.name] = deepCopy(optionParameter.default);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet newValue;\n\t\t\tif (this.multipleValues) {\n\t\t\t\tnewValue = get(this.nodeValues, name, [] as INodeParameters[]);\n\n\t\t\t\tnewValue.push(newParameterValue);\n\t\t\t} else {\n\t\t\t\tnewValue = newParameterValue;\n\t\t\t}\n\n\t\t\tconst parameterData = {\n\t\t\t\tname,\n\t\t\t\tvalue: newValue,\n\t\t\t};\n\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t\tthis.selectedOption = undefined;\n\t\t},\n\t\tvalueChanged(parameterData: IUpdateInformation) {\n\t\t\tthis.$emit('valueChanged', parameterData);\n\t\t},\n\t},\n});\n</script>\n\n<style scoped lang=\"scss\">\n.fixed-collection-parameter {\n\tpadding-left: var(--spacing-s);\n\n\t.delete-option {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t.controls {\n\t\t:deep(.button) {\n\t\t\tfont-weight: var(--font-weight-normal);\n\t\t\t--button-font-color: var(--color-text-dark);\n\t\t\t--button-border-color: var(--color-foreground-base);\n\t\t\t--button-background-color: var(--color-background-base);\n\n\t\t\t--button-hover-font-color: var(--color-text-dark);\n\t\t\t--button-hover-border-color: var(--color-foreground-base);\n\t\t\t--button-hover-background-color: var(--color-background-base);\n\n\t\t\t--button-active-font-color: var(--color-text-dark);\n\t\t\t--button-active-border-color: var(--color-foreground-base);\n\t\t\t--button-active-background-color: var(--color-background-base);\n\n\t\t\t--button-focus-font-color: var(--color-text-dark);\n\t\t\t--button-focus-border-color: var(--color-foreground-base);\n\t\t\t--button-focus-background-color: var(--color-background-base);\n\n\t\t\t&:active,\n\t\t\t&.active,\n\t\t\t&:focus {\n\t\t\t\toutline: none;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.fixed-collection-parameter-property {\n\tmargin: var(--spacing-xs) 0;\n}\n\n.parameter-item:hover > .parameter-item-wrapper > .delete-option {\n\topacity: 1;\n}\n\n.parameter-item {\n\tposition: relative;\n\tpadding: 0 0 0 1em;\n\n\t+ .parameter-item {\n\t\t.parameter-item-wrapper {\n\t\t\t.delete-option {\n\t\t\t\ttop: 14px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.border-top-dashed {\n\tborder-top: 1px dashed #999;\n}\n\n.no-items-exist {\n\tmargin: var(--spacing-xs) 0;\n}\n</style>\n"],"file":"assets/FixedCollectionParameter-tJFyljoK.js"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A as i}from"./AuthView
|
|
2
|
-
//# sourceMappingURL=ForgotMyPasswordView-
|
|
1
|
+
import{A as i}from"./AuthView--On8E3VP.js";import{o as a,p as n,t as m,_ as p}from"./n8n-ZKR6bms9.js";import{m as l}from"./pinia-jX93eZRS.js";import{G as c,ag as u,l as d,M as f}from"./vendor-2CfOYFi2.js";import"./index-RXjMHIPR.js";import"./prettier-s3fE3Qyr.js";import"./codemirror-lang-html-n8n-qoVuUIQR.js";import"./@n8n/codemirror-lang-sql-zd5sOTQ9.js";import"./@lezer/common-aP6EPErF.js";import"./lodash-es-s_m9YyW7.js";import"./@jsplumb/util-DR0SB56A.js";import"./@jsplumb/core-MKwKlGip.js";import"./@jsplumb/common-Q5_tv_GT.js";import"./@jsplumb/connector-bezier-3dWY17R5.js";import"./@jsplumb/browser-ui-QL7QI0sV.js";import"./uuid-McvpxQtQ.js";import"./luxon-ZRIU05qF.js";import"./esprima-next-ulPLCZ1Z.js";import"./@vueuse/core-viEZCtbZ.js";import"./codemirror-lang-n8n-expression-qGXLqLTr.js";import"./fast-json-stable-stringify-RhDdw38P.js";import"./timeago.js--Bumj2r9.js";import"./qrcode.vue-f7Vn5Pkq.js";import"./vue3-touch-events-_RfbPMOD.js";import"./chart.js-JtqvIvkt.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.js";const g=c({name:"ForgotMyPasswordView",components:{AuthView:i},setup(){return{...a()}},data(){return{loading:!1}},computed:{...l(m,n),formConfig(){const t=[{name:"email",properties:{label:this.$locale.baseText("auth.email"),type:"email",required:!0,validationRules:[{name:"VALID_EMAIL"}],autocomplete:"email",capitalize:!0}}],o=[{name:"no-smtp-warning",properties:{label:this.$locale.baseText("forgotPassword.noSMTPToSendEmailWarning"),type:"info"}}],e={title:this.$locale.baseText("forgotPassword.recoverPassword"),redirectText:this.$locale.baseText("forgotPassword.returnToSignIn"),redirectLink:"/signin"};return this.settingsStore.isSmtpSetup?{...e,buttonText:this.$locale.baseText("forgotPassword.getRecoveryLink"),inputs:t}:{...e,inputs:o}}},methods:{async onSubmit(t){try{this.loading=!0,await this.usersStore.sendForgotPasswordEmail(t),this.showMessage({type:"success",title:this.$locale.baseText("forgotPassword.recoveryEmailSent"),message:this.$locale.baseText("forgotPassword.emailSentIfExists",{interpolate:{email:t.email}})})}catch(o){let e=this.$locale.baseText("forgotPassword.smtpErrorContactAdministrator");if(o.httpStatusCode){const{httpStatusCode:s}=o;s===429?e=this.$locale.baseText("forgotPassword.tooManyRequests"):o.httpStatusCode===422&&(e=this.$locale.baseText(o.message)),this.showMessage({type:"error",title:this.$locale.baseText("forgotPassword.sendingEmailError"),message:e})}}this.loading=!1}}});function h(t,o,e,s,S,w){const r=u("AuthView");return d(),f(r,{form:t.formConfig,formLoading:t.loading,onSubmit:t.onSubmit},null,8,["form","formLoading","onSubmit"])}const J=p(g,[["render",h]]);export{J as default};
|
|
2
|
+
//# sourceMappingURL=ForgotMyPasswordView-VxAVQQgB.js.map
|
package/dist/assets/{ForgotMyPasswordView-3lTe1SvY.js.map → ForgotMyPasswordView-VxAVQQgB.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ForgotMyPasswordView-
|
|
1
|
+
{"version":3,"file":"ForgotMyPasswordView-VxAVQQgB.js","sources":["../../src/views/ForgotMyPasswordView.vue"],"sourcesContent":["<template>\n\t<AuthView :form=\"formConfig\" :formLoading=\"loading\" @submit=\"onSubmit\" />\n</template>\n\n<script lang=\"ts\">\nimport AuthView from './AuthView.vue';\nimport { useToast } from '@/composables/useToast';\n\nimport { defineComponent } from 'vue';\nimport type { IFormBoxConfig } from '@/Interface';\nimport { mapStores } from 'pinia';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsersStore } from '@/stores/users.store';\n\nexport default defineComponent({\n\tname: 'ForgotMyPasswordView',\n\tcomponents: {\n\t\tAuthView,\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useToast(),\n\t\t};\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tloading: false,\n\t\t};\n\t},\n\tcomputed: {\n\t\t...mapStores(useSettingsStore, useUsersStore),\n\t\tformConfig(): IFormBoxConfig {\n\t\t\tconst EMAIL_INPUTS: IFormBoxConfig['inputs'] = [\n\t\t\t\t{\n\t\t\t\t\tname: 'email',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tlabel: this.$locale.baseText('auth.email'),\n\t\t\t\t\t\ttype: 'email',\n\t\t\t\t\t\trequired: true,\n\t\t\t\t\t\tvalidationRules: [{ name: 'VALID_EMAIL' }],\n\t\t\t\t\t\tautocomplete: 'email',\n\t\t\t\t\t\tcapitalize: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\n\t\t\tconst NO_SMTP_INPUTS: IFormBoxConfig['inputs'] = [\n\t\t\t\t{\n\t\t\t\t\tname: 'no-smtp-warning',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tlabel: this.$locale.baseText('forgotPassword.noSMTPToSendEmailWarning'),\n\t\t\t\t\t\ttype: 'info',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t];\n\n\t\t\tconst DEFAULT_FORM_CONFIG = {\n\t\t\t\ttitle: this.$locale.baseText('forgotPassword.recoverPassword'),\n\t\t\t\tredirectText: this.$locale.baseText('forgotPassword.returnToSignIn'),\n\t\t\t\tredirectLink: '/signin',\n\t\t\t};\n\n\t\t\tif (this.settingsStore.isSmtpSetup) {\n\t\t\t\treturn {\n\t\t\t\t\t...DEFAULT_FORM_CONFIG,\n\t\t\t\t\tbuttonText: this.$locale.baseText('forgotPassword.getRecoveryLink'),\n\t\t\t\t\tinputs: EMAIL_INPUTS,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...DEFAULT_FORM_CONFIG,\n\t\t\t\tinputs: NO_SMTP_INPUTS,\n\t\t\t};\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onSubmit(values: { email: string }) {\n\t\t\ttry {\n\t\t\t\tthis.loading = true;\n\t\t\t\tawait this.usersStore.sendForgotPasswordEmail(values);\n\n\t\t\t\tthis.showMessage({\n\t\t\t\t\ttype: 'success',\n\t\t\t\t\ttitle: this.$locale.baseText('forgotPassword.recoveryEmailSent'),\n\t\t\t\t\tmessage: this.$locale.baseText('forgotPassword.emailSentIfExists', {\n\t\t\t\t\t\tinterpolate: { email: values.email },\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tlet message = this.$locale.baseText('forgotPassword.smtpErrorContactAdministrator');\n\t\t\t\tif (error.httpStatusCode) {\n\t\t\t\t\tconst { httpStatusCode: status } = error;\n\t\t\t\t\tif (status === 429) {\n\t\t\t\t\t\tmessage = this.$locale.baseText('forgotPassword.tooManyRequests');\n\t\t\t\t\t} else if (error.httpStatusCode === 422) {\n\t\t\t\t\t\tmessage = this.$locale.baseText(error.message);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.showMessage({\n\t\t\t\t\t\ttype: 'error',\n\t\t\t\t\t\ttitle: this.$locale.baseText('forgotPassword.sendingEmailError'),\n\t\t\t\t\t\tmessage,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.loading = false;\n\t\t},\n\t},\n});\n</script>\n"],"names":["_sfc_main","defineComponent","AuthView","useToast","mapStores","useSettingsStore","useUsersStore","EMAIL_INPUTS","NO_SMTP_INPUTS","DEFAULT_FORM_CONFIG","values","error","message","status","_resolveComponent","_openBlock","_createBlock","_component_AuthView","_ctx"],"mappings":"8lCAcA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,uBACN,WAAY,CACX,SAAAC,CACD,EACA,OAAQ,CACA,MAAA,CACN,GAAGC,EAAS,CAAA,CAEd,EACA,MAAO,CACC,MAAA,CACN,QAAS,EAAA,CAEX,EACA,SAAU,CACT,GAAGC,EAAUC,EAAkBC,CAAa,EAC5C,YAA6B,CAC5B,MAAMC,EAAyC,CAC9C,CACC,KAAM,QACN,WAAY,CACX,MAAO,KAAK,QAAQ,SAAS,YAAY,EACzC,KAAM,QACN,SAAU,GACV,gBAAiB,CAAC,CAAE,KAAM,cAAe,EACzC,aAAc,QACd,WAAY,EACb,CACD,CAAA,EAGKC,EAA2C,CAChD,CACC,KAAM,kBACN,WAAY,CACX,MAAO,KAAK,QAAQ,SAAS,yCAAyC,EACtE,KAAM,MACP,CACD,CAAA,EAGKC,EAAsB,CAC3B,MAAO,KAAK,QAAQ,SAAS,gCAAgC,EAC7D,aAAc,KAAK,QAAQ,SAAS,+BAA+B,EACnE,aAAc,SAAA,EAGX,OAAA,KAAK,cAAc,YACf,CACN,GAAGA,EACH,WAAY,KAAK,QAAQ,SAAS,gCAAgC,EAClE,OAAQF,CAAA,EAGH,CACN,GAAGE,EACH,OAAQD,CAAA,CAEV,CACD,EACA,QAAS,CACR,MAAM,SAASE,EAA2B,CACrC,GAAA,CACH,KAAK,QAAU,GACT,MAAA,KAAK,WAAW,wBAAwBA,CAAM,EAEpD,KAAK,YAAY,CAChB,KAAM,UACN,MAAO,KAAK,QAAQ,SAAS,kCAAkC,EAC/D,QAAS,KAAK,QAAQ,SAAS,mCAAoC,CAClE,YAAa,CAAE,MAAOA,EAAO,KAAM,CAAA,CACnC,CAAA,CACD,QACOC,EAAO,CACf,IAAIC,EAAU,KAAK,QAAQ,SAAS,8CAA8C,EAClF,GAAID,EAAM,eAAgB,CACnB,KAAA,CAAE,eAAgBE,CAAW,EAAAF,EAC/BE,IAAW,IACJD,EAAA,KAAK,QAAQ,SAAS,gCAAgC,EACtDD,EAAM,iBAAmB,MACnCC,EAAU,KAAK,QAAQ,SAASD,EAAM,OAAO,GAG9C,KAAK,YAAY,CAChB,KAAM,QACN,MAAO,KAAK,QAAQ,SAAS,kCAAkC,EAC/D,QAAAC,CAAA,CACA,CACF,CACD,CACA,KAAK,QAAU,EAChB,CACD,CACD,CAAC,kCA3GAE,EAAyE,UAAA,EAA3C,OAAAC,EAAA,EAAoBC,EAAAC,EAAA,CAAG,KAAQC,EAAA,WAAA,YAAAA,EAAA"}
|