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,2 +1,2 @@
|
|
|
1
|
-
import{g as ie,c as le,T as re}from"./index
|
|
2
|
-
//# sourceMappingURL=ExecutionFilter-
|
|
1
|
+
import{g as ie,c as le,T as re}from"./index-RXjMHIPR.js";import{G as te,l as T,m as B,R as m,r as de,e as N,Z as H,D as ue,ag as g,M as U,O as c,T as f,S as W,Q as P,u as r,p as d,F as Y,a7 as z,I as _,a2 as q}from"./vendor-2CfOYFi2.js";import{_ as ae,fK as ce,fL as ne,fM as fe,g as me,t as pe,u as ve,R as xe,fN as be,k as n,cS as Q,O as _e}from"./n8n-ZKR6bms9.js";const ge=te({name:"ExecutionTime",mixins:[ie],props:["startTime"],computed:{time(){if(!this.startTime)return"...";const e=this.nowTime-new Date(this.startTime).getTime();return this.displayTimer(e)}},data(){return{nowTime:-1,intervalTimer:null}},mounted(){this.setNow(),this.intervalTimer=setInterval(()=>{this.setNow()},1e3)},beforeUnmount(){this.intervalTimer!==null&&clearInterval(this.intervalTimer)},methods:{setNow(){this.nowTime=new Date().getTime()}}});function Te(e,s,p,h,y,F){return T(),B("span",null,m(e.time),1)}const vt=ae(ge,[["render",Te]]);var he=ce,ke=function(){return he.Date.now()},ye=ke,we=/\s/;function De(e){for(var s=e.length;s--&&we.test(e.charAt(s)););return s}var Fe=De,Ee=Fe,Ie=/^\s+/;function Ve(e){return e&&e.slice(0,Ee(e)+1).replace(Ie,"")}var $e=Ve,Ce=$e,X=ne,Se=fe,Z=NaN,Me=/^[-+]0x[0-9a-f]+$/i,Le=/^0b[01]+$/i,Ne=/^0o[0-7]+$/i,Ue=parseInt;function Be(e){if(typeof e=="number")return e;if(Se(e))return Z;if(X(e)){var s=typeof e.valueOf=="function"?e.valueOf():e;e=X(s)?s+"":s}if(typeof e!="string")return e===0?e:+e;e=Ce(e);var p=Le.test(e);return p||Ne.test(e)?Ue(e.slice(2),p?2:8):Me.test(e)?Z:+e}var Oe=Be,Ae=ne,G=ye,J=Oe,We="Expected a function",Pe=Math.max,je=Math.min;function Re(e,s,p){var h,y,F,w,u,v,E=0,C=!1,a=!1,x=!0;if(typeof e!="function")throw new TypeError(We);s=J(s)||0,Ae(p)&&(C=!!p.leading,a="maxWait"in p,F=a?Pe(J(p.maxWait)||0,s):F,x="trailing"in p?!!p.trailing:x);function S(o){var b=h,D=y;return h=y=void 0,E=o,w=e.apply(D,b),w}function V(o){return E=o,u=setTimeout($,s),C?S(o):w}function O(o){var b=o-v,D=o-E,L=s-b;return a?je(L,F-D):L}function A(o){var b=o-v,D=o-E;return v===void 0||b>=s||b<0||a&&D>=F}function $(){var o=G();if(A(o))return M(o);u=setTimeout($,O(o))}function M(o){return u=void 0,x&&h?S(o):(h=y=void 0,w)}function t(){u!==void 0&&clearTimeout(u),E=0,h=v=y=u=void 0}function i(){return u===void 0?w:M(G())}function k(){var o=G(),b=A(o);if(h=arguments,y=this,v=o,b){if(u===void 0)return V(v);if(a)return clearTimeout(u),u=setTimeout($,s),S(v)}return u===void 0&&(u=setTimeout($,s)),w}return k.cancel=t,k.flush=i,k}var Ge=Re;const Ke=me(Ge),He={"data-test-id":"execution-filter-form"},Ye={for:"execution-filter-workflows"},ze={for:"execution-filter-tags"},qe={for:"execution-filter-status"},Qe={for:"execution-filter-start-date"},Xe={target:"_blank",href:"https://docs.n8n.io/workflows/executions/custom-executions-data/"},Ze={for:"execution-filter-saved-data-key"},Je=["onClick"],et={for:"execution-filter-saved-data-value"},tt=["onClick"],ee="YYYY-MM-DD HH:mm",at=te({__name:"ExecutionFilter",props:{workflows:{},popoverPlacement:{default:"bottom"},teleported:{type:Boolean,default:!0}},emits:["filterChanged"],setup(e,{emit:s}){const p=e,h=pe();le();const y=ve(),F=_e(),w=Ke(s,500),u=de(!1),v=N(()=>h.isEnterpriseFeatureEnabled(xe.AdvancedExecutionFilters)),E=N(()=>!1),C=()=>({status:"all",workflowId:"all",tags:[],startDate:"",endDate:"",metadata:[{key:"",value:""}]}),a=H(C()),x=H(be(a).reduce((t,i)=>(t[i]=N({get(){return a[i]},set(k){a[i]=k,s("filterChanged",a)}}),t),{})),S=N(()=>[{id:"all",name:n.baseText("executionsList.anyStatus")},{id:"error",name:n.baseText("executionsList.error")},{id:"canceled",name:n.baseText("executionsList.canceled")},{id:"running",name:n.baseText("executionsList.running")},{id:"success",name:n.baseText("executionsList.success")},{id:"waiting",name:n.baseText("executionsList.waiting")}]),V=N(()=>{let t=0;return a.status!=="all"&&t++,a.workflowId!=="all"&&t++,Q(a.tags)||t++,Q(a.metadata)||t++,a.startDate&&t++,a.endDate&&t++,t}),O=(t,i,k)=>{a.metadata[t]||(a.metadata[t]={key:"",value:""}),a.metadata[t][i]=k,u.value||(F.track("User filtered executions with custom data"),u.value=!0),w("filterChanged",a)},A=t=>{a.tags=t,s("filterChanged",a)},$=()=>{Object.assign(a,C()),s("filterChanged",a)},M=()=>{y.goToUpgrade("custom-data-filter","upgrade-custom-data-filter")};return ue(()=>{u.value=!1,s("filterChanged",a)}),(t,i)=>{const k=g("n8n-badge"),o=g("n8n-button"),b=g("n8n-option"),D=g("n8n-select"),L=g("el-date-picker"),j=g("i18n-t"),se=g("n8n-icon"),R=g("n8n-tooltip"),K=g("n8n-input"),oe=g("n8n-popover");return T(),U(oe,{trigger:"click",placement:t.popoverPlacement,width:"440"},{reference:c(()=>[f(o,{icon:"filter",type:"tertiary",active:!!V.value,"data-test-id":"executions-filter-button"},{default:c(()=>[V.value?(T(),U(k,{key:0,theme:"primary",class:"mr-4xs","data-test-id":"execution-filter-badge"},{default:c(()=>[W(m(V.value),1)]),_:1})):P("",!0),W(" "+m(r(n).baseText("executionsList.filters")),1)]),_:1},8,["active"])]),default:c(()=>[d("div",He,[t.workflows&&t.workflows.length>0?(T(),B("div",{key:0,class:_(t.$style.group)},[d("label",Ye,m(r(n).baseText("workflows.heading")),1),f(D,{id:"execution-filter-workflows",modelValue:x.workflowId,"onUpdate:modelValue":i[0]||(i[0]=l=>x.workflowId=l),placeholder:r(n).baseText("executionsFilter.selectWorkflow"),filterable:"","data-test-id":"executions-filter-workflows-select",teleported:t.teleported},{default:c(()=>[d("div",null,[(T(!0),B(Y,null,z(p.workflows,(l,I)=>(T(),U(b,{key:I,label:l.name,value:l.id},null,8,["label","value"]))),128))])]),_:1},8,["modelValue","placeholder","teleported"])],2)):P("",!0),E.value?(T(),B("div",{key:1,class:_(t.$style.group)},[d("label",ze,m(r(n).baseText("workflows.filters.tags")),1),f(re,{id:"execution-filter-tags",placeholder:r(n).baseText("workflowOpen.filterWorkflows"),modelValue:a.tags,createEnabled:!1,"onUpdate:modelValue":A,"data-test-id":"executions-filter-tags-select"},null,8,["placeholder","modelValue"])],2)):P("",!0),d("div",{class:_(t.$style.group)},[d("label",qe,m(r(n).baseText("executionsList.status")),1),f(D,{id:"execution-filter-status",modelValue:x.status,"onUpdate:modelValue":i[1]||(i[1]=l=>x.status=l),placeholder:r(n).baseText("executionsFilter.selectStatus"),filterable:"","data-test-id":"executions-filter-status-select",teleported:t.teleported},{default:c(()=>[(T(!0),B(Y,null,z(S.value,(l,I)=>(T(),U(b,{key:I,label:l.name,value:l.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","teleported"])],2),d("div",{class:_(t.$style.group)},[d("label",Qe,m(r(n).baseText("executionsFilter.start")),1),d("div",{class:_(t.$style.dates)},[f(L,{id:"execution-filter-start-date",type:"datetime",teleported:!1,modelValue:x.startDate,"onUpdate:modelValue":i[2]||(i[2]=l=>x.startDate=l),format:ee,placeholder:r(n).baseText("executionsFilter.startDate"),"data-test-id":"executions-filter-start-date-picker"},null,8,["modelValue","placeholder"]),d("span",{class:_(t.$style.divider)},"to",2),f(L,{id:"execution-filter-end-date",type:"datetime",teleported:!1,modelValue:x.endDate,"onUpdate:modelValue":i[3]||(i[3]=l=>x.endDate=l),format:ee,placeholder:r(n).baseText("executionsFilter.endDate"),"data-test-id":"executions-filter-end-date-picker"},null,8,["modelValue","placeholder"])],2)],2),d("div",{class:_(t.$style.group)},[f(R,{placement:"right"},{content:c(()=>[f(j,{tag:"span",keypath:"executionsFilter.customData.docsTooltip"},{link:c(()=>[d("a",Xe,m(r(n).baseText("executionsFilter.customData.docsTooltip.link")),1)]),_:1})]),default:c(()=>[d("span",{class:_(t.$style.label)},[W(m(r(n).baseText("executionsFilter.savedData"))+" ",1),f(se,{class:_(t.$style.tooltipIcon),icon:"question-circle",size:"small"},null,8,["class"])],2)]),_:1}),d("div",{class:_(t.$style.subGroup)},[d("label",Ze,m(r(n).baseText("executionsFilter.savedDataKey")),1),f(R,{disabled:v.value,placement:"top"},{content:c(()=>[f(j,{tag:"span",keypath:"executionsFilter.customData.inputTooltip"},{link:c(()=>[d("a",{href:"#",onClick:q(M,["prevent"]),"data-test-id":"executions-filter-view-plans-link"},m(r(n).baseText("executionsFilter.customData.inputTooltip.link")),9,Je)]),_:1})]),default:c(()=>{var l;return[f(K,{id:"execution-filter-saved-data-key",name:"execution-filter-saved-data-key",type:"text",disabled:!v.value,placeholder:r(n).baseText("executionsFilter.savedDataKeyPlaceholder"),modelValue:(l=a.metadata[0])==null?void 0:l.key,"onUpdate:modelValue":i[4]||(i[4]=I=>O(0,"key",I)),"data-test-id":"execution-filter-saved-data-key-input"},null,8,["disabled","placeholder","modelValue"])]}),_:1},8,["disabled"]),d("label",et,m(r(n).baseText("executionsFilter.savedDataValue")),1),f(R,{disabled:v.value,placement:"top"},{content:c(()=>[f(j,{tag:"span",keypath:"executionsFilter.customData.inputTooltip"},{link:c(()=>[d("a",{href:"#",onClick:q(M,["prevent"])},m(r(n).baseText("executionsFilter.customData.inputTooltip.link")),9,tt)]),_:1})]),default:c(()=>{var l;return[f(K,{id:"execution-filter-saved-data-value",name:"execution-filter-saved-data-value",type:"text",disabled:!v.value,placeholder:r(n).baseText("executionsFilter.savedDataValuePlaceholder"),modelValue:(l=a.metadata[0])==null?void 0:l.value,"onUpdate:modelValue":i[5]||(i[5]=I=>O(0,"value",I)),"data-test-id":"execution-filter-saved-data-value-input"},null,8,["disabled","placeholder","modelValue"])]}),_:1},8,["disabled"])],2)],2),V.value?(T(),U(o,{key:2,class:_(t.$style.resetBtn),onClick:$,size:"large",text:"","data-test-id":"executions-filter-reset-button"},{default:c(()=>[W(m(r(n).baseText("executionsFilter.reset")),1)]),_:1},8,["class"])):P("",!0)])]),_:1},8,["placement"])}}}),nt="_group_1153r_5",st="_label_1153r_6",ot="_subGroup_1153r_12",it="_dates_1153r_21",lt="_divider_1153r_29",rt="_resetBtn_1153r_34",dt="_tooltipIcon_1153r_39",ut={group:nt,label:st,subGroup:ot,dates:it,divider:lt,resetBtn:rt,tooltipIcon:dt},ct={$style:ut},xt=ae(at,[["__cssModules",ct],["__scopeId","data-v-321b8bf4"]]);export{vt as E,xt as a};
|
|
2
|
+
//# sourceMappingURL=ExecutionFilter-dfrYJ_Rf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionFilter-6e5m1hky.js","sources":["../../src/components/ExecutionTime.vue","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../src/components/ExecutionFilter.vue"],"sourcesContent":["<template>\n\t<span>\n\t\t{{ time }}\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { genericHelpers } from '@/mixins/genericHelpers';\n\nexport default defineComponent({\n\tname: 'ExecutionTime',\n\tmixins: [genericHelpers],\n\tprops: ['startTime'],\n\tcomputed: {\n\t\ttime(): string {\n\t\t\tif (!this.startTime) {\n\t\t\t\treturn '...';\n\t\t\t}\n\t\t\tconst msPassed = this.nowTime - new Date(this.startTime).getTime();\n\t\t\treturn this.displayTimer(msPassed);\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnowTime: -1,\n\t\t\tintervalTimer: null as null | NodeJS.Timeout,\n\t\t};\n\t},\n\tmounted() {\n\t\tthis.setNow();\n\t\tthis.intervalTimer = setInterval(() => {\n\t\t\tthis.setNow();\n\t\t}, 1000);\n\t},\n\tbeforeUnmount() {\n\t\t// Make sure that the timer gets destroyed once no longer needed\n\t\tif (this.intervalTimer !== null) {\n\t\t\tclearInterval(this.intervalTimer);\n\t\t}\n\t},\n\tmethods: {\n\t\tsetNow() {\n\t\t\tthis.nowTime = new Date().getTime();\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\">\n// .data-display-wrapper {\n\n// }\n</style>\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","<script lang=\"ts\" setup>\nimport { computed, reactive, onBeforeMount, ref } from 'vue';\nimport debounce from 'lodash/debounce';\nimport type {\n\tExecutionFilterType,\n\tExecutionFilterMetadata,\n\tIWorkflowShortResponse,\n} from '@/Interface';\nimport { i18n as locale } from '@/plugins/i18n';\nimport TagsDropdown from '@/components/TagsDropdown.vue';\nimport { getObjectKeys, isEmpty } from '@/utils/typesUtils';\nimport { EnterpriseEditionFeature } from '@/constants';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsageStore } from '@/stores/usage.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport type { Placement } from '@floating-ui/core';\n\nexport type ExecutionFilterProps = {\n\tworkflows?: IWorkflowShortResponse[];\n\tpopoverPlacement?: Placement;\n\tteleported?: boolean;\n};\n\nconst DATE_TIME_MASK = 'YYYY-MM-DD HH:mm';\n\nconst settingsStore = useSettingsStore();\nconst usageStore = useUsageStore();\nconst uiStore = useUIStore();\n\nconst telemetry = useTelemetry();\n\nconst props = withDefaults(defineProps<ExecutionFilterProps>(), {\n\tpopoverPlacement: 'bottom' as Placement,\n\tteleported: true,\n});\nconst emit = defineEmits<{\n\t(event: 'filterChanged', value: ExecutionFilterType): void;\n}>();\nconst debouncedEmit = debounce(emit, 500);\n\nconst isCustomDataFilterTracked = ref(false);\nconst isAdvancedExecutionFilterEnabled = computed(() =>\n\tsettingsStore.isEnterpriseFeatureEnabled(EnterpriseEditionFeature.AdvancedExecutionFilters),\n);\nconst showTags = computed(() => false);\n\nconst getDefaultFilter = (): ExecutionFilterType => ({\n\tstatus: 'all',\n\tworkflowId: 'all',\n\ttags: [],\n\tstartDate: '',\n\tendDate: '',\n\tmetadata: [{ key: '', value: '' }],\n});\nconst filter = reactive(getDefaultFilter());\n\n// Automatically set up v-models based on filter properties\nconst vModel = reactive(\n\tgetObjectKeys(filter).reduce(\n\t\t(acc, key) => {\n\t\t\tacc[key] = computed({\n\t\t\t\tget() {\n\t\t\t\t\treturn filter[key];\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\t// TODO: find out what exactly is typechecker complaining about\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tfilter[key] = value;\n\t\t\t\t\temit('filterChanged', filter);\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<keyof ExecutionFilterType, ReturnType<typeof computed>>,\n\t),\n);\n\nconst statuses = computed(() => [\n\t{ id: 'all', name: locale.baseText('executionsList.anyStatus') },\n\t{ id: 'error', name: locale.baseText('executionsList.error') },\n\t{ id: 'canceled', name: locale.baseText('executionsList.canceled') },\n\t{ id: 'running', name: locale.baseText('executionsList.running') },\n\t{ id: 'success', name: locale.baseText('executionsList.success') },\n\t{ id: 'waiting', name: locale.baseText('executionsList.waiting') },\n]);\n\nconst countSelectedFilterProps = computed(() => {\n\tlet count = 0;\n\tif (filter.status !== 'all') {\n\t\tcount++;\n\t}\n\tif (filter.workflowId !== 'all') {\n\t\tcount++;\n\t}\n\tif (!isEmpty(filter.tags)) {\n\t\tcount++;\n\t}\n\tif (!isEmpty(filter.metadata)) {\n\t\tcount++;\n\t}\n\tif (!!filter.startDate) {\n\t\tcount++;\n\t}\n\tif (!!filter.endDate) {\n\t\tcount++;\n\t}\n\treturn count;\n});\n\n// vModel.metadata is a text input and needs a debounced emit to avoid too many requests\n// We use the :value and @input combo instead of v-model with this event listener\nconst onFilterMetaChange = (index: number, prop: keyof ExecutionFilterMetadata, value: string) => {\n\tif (!filter.metadata[index]) {\n\t\tfilter.metadata[index] = {\n\t\t\tkey: '',\n\t\t\tvalue: '',\n\t\t};\n\t}\n\tfilter.metadata[index][prop] = value;\n\n\tif (!isCustomDataFilterTracked.value) {\n\t\ttelemetry.track('User filtered executions with custom data');\n\t\tisCustomDataFilterTracked.value = true;\n\t}\n\n\tdebouncedEmit('filterChanged', filter);\n};\n\n// Can't use v-model on TagsDropdown component and thus vModel.tags is useless\n// We just emit the updated filter\nconst onTagsChange = (tags: string[]) => {\n\tfilter.tags = tags;\n\temit('filterChanged', filter);\n};\n\nconst onFilterReset = () => {\n\tObject.assign(filter, getDefaultFilter());\n\temit('filterChanged', filter);\n};\n\nconst goToUpgrade = () => {\n\tvoid uiStore.goToUpgrade('custom-data-filter', 'upgrade-custom-data-filter');\n};\n\nonBeforeMount(() => {\n\tisCustomDataFilterTracked.value = false;\n\temit('filterChanged', filter);\n});\n</script>\n<template>\n\t<n8n-popover trigger=\"click\" :placement=\"popoverPlacement\" width=\"440\">\n\t\t<template #reference>\n\t\t\t<n8n-button\n\t\t\t\ticon=\"filter\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t:active=\"!!countSelectedFilterProps\"\n\t\t\t\tdata-test-id=\"executions-filter-button\"\n\t\t\t>\n\t\t\t\t<n8n-badge\n\t\t\t\t\tv-if=\"!!countSelectedFilterProps\"\n\t\t\t\t\ttheme=\"primary\"\n\t\t\t\t\tclass=\"mr-4xs\"\n\t\t\t\t\tdata-test-id=\"execution-filter-badge\"\n\t\t\t\t\t>{{ countSelectedFilterProps }}</n8n-badge\n\t\t\t\t>\n\t\t\t\t{{ locale.baseText('executionsList.filters') }}\n\t\t\t</n8n-button>\n\t\t</template>\n\t\t<div data-test-id=\"execution-filter-form\">\n\t\t\t<div v-if=\"workflows && workflows.length > 0\" :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-workflows\">{{ locale.baseText('workflows.heading') }}</label>\n\t\t\t\t<n8n-select\n\t\t\t\t\tid=\"execution-filter-workflows\"\n\t\t\t\t\tv-model=\"vModel.workflowId\"\n\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.selectWorkflow')\"\n\t\t\t\t\tfilterable\n\t\t\t\t\tdata-test-id=\"executions-filter-workflows-select\"\n\t\t\t\t\t:teleported=\"teleported\"\n\t\t\t\t>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<n8n-option\n\t\t\t\t\t\t\tv-for=\"(item, idx) in props.workflows\"\n\t\t\t\t\t\t\t:key=\"idx\"\n\t\t\t\t\t\t\t:label=\"item.name\"\n\t\t\t\t\t\t\t:value=\"item.id\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t\t<div v-if=\"showTags\" :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-tags\">{{ locale.baseText('workflows.filters.tags') }}</label>\n\t\t\t\t<TagsDropdown\n\t\t\t\t\tid=\"execution-filter-tags\"\n\t\t\t\t\t:placeholder=\"locale.baseText('workflowOpen.filterWorkflows')\"\n\t\t\t\t\t:modelValue=\"filter.tags\"\n\t\t\t\t\t:createEnabled=\"false\"\n\t\t\t\t\t@update:modelValue=\"onTagsChange\"\n\t\t\t\t\tdata-test-id=\"executions-filter-tags-select\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-status\">{{ locale.baseText('executionsList.status') }}</label>\n\t\t\t\t<n8n-select\n\t\t\t\t\tid=\"execution-filter-status\"\n\t\t\t\t\tv-model=\"vModel.status\"\n\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.selectStatus')\"\n\t\t\t\t\tfilterable\n\t\t\t\t\tdata-test-id=\"executions-filter-status-select\"\n\t\t\t\t\t:teleported=\"teleported\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"(item, idx) in statuses\"\n\t\t\t\t\t\t:key=\"idx\"\n\t\t\t\t\t\t:label=\"item.name\"\n\t\t\t\t\t\t:value=\"item.id\"\n\t\t\t\t\t/>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-start-date\">{{\n\t\t\t\t\tlocale.baseText('executionsFilter.start')\n\t\t\t\t}}</label>\n\t\t\t\t<div :class=\"$style.dates\">\n\t\t\t\t\t<el-date-picker\n\t\t\t\t\t\tid=\"execution-filter-start-date\"\n\t\t\t\t\t\ttype=\"datetime\"\n\t\t\t\t\t\t:teleported=\"false\"\n\t\t\t\t\t\tv-model=\"vModel.startDate\"\n\t\t\t\t\t\t:format=\"DATE_TIME_MASK\"\n\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.startDate')\"\n\t\t\t\t\t\tdata-test-id=\"executions-filter-start-date-picker\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span :class=\"$style.divider\">to</span>\n\t\t\t\t\t<el-date-picker\n\t\t\t\t\t\tid=\"execution-filter-end-date\"\n\t\t\t\t\t\ttype=\"datetime\"\n\t\t\t\t\t\t:teleported=\"false\"\n\t\t\t\t\t\tv-model=\"vModel.endDate\"\n\t\t\t\t\t\t:format=\"DATE_TIME_MASK\"\n\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.endDate')\"\n\t\t\t\t\t\tdata-test-id=\"executions-filter-end-date-picker\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.group\">\n\t\t\t\t<n8n-tooltip placement=\"right\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"executionsFilter.customData.docsTooltip\">\n\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/workflows/executions/custom-executions-data/\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{ locale.baseText('executionsFilter.customData.docsTooltip.link') }}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t</template>\n\t\t\t\t\t<span :class=\"$style.label\">\n\t\t\t\t\t\t{{ locale.baseText('executionsFilter.savedData') }}\n\t\t\t\t\t\t<n8n-icon :class=\"$style.tooltipIcon\" icon=\"question-circle\" size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<div :class=\"$style.subGroup\">\n\t\t\t\t\t<label for=\"execution-filter-saved-data-key\">{{\n\t\t\t\t\t\tlocale.baseText('executionsFilter.savedDataKey')\n\t\t\t\t\t}}</label>\n\t\t\t\t\t<n8n-tooltip :disabled=\"isAdvancedExecutionFilterEnabled\" placement=\"top\">\n\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"executionsFilter.customData.inputTooltip\">\n\t\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t\t\t\t@click.prevent=\"goToUpgrade\"\n\t\t\t\t\t\t\t\t\t\tdata-test-id=\"executions-filter-view-plans-link\"\n\t\t\t\t\t\t\t\t\t\t>{{ locale.baseText('executionsFilter.customData.inputTooltip.link') }}</a\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<n8n-input\n\t\t\t\t\t\t\tid=\"execution-filter-saved-data-key\"\n\t\t\t\t\t\t\tname=\"execution-filter-saved-data-key\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t:disabled=\"!isAdvancedExecutionFilterEnabled\"\n\t\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.savedDataKeyPlaceholder')\"\n\t\t\t\t\t\t\t:modelValue=\"filter.metadata[0]?.key\"\n\t\t\t\t\t\t\t@update:modelValue=\"onFilterMetaChange(0, 'key', $event)\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-filter-saved-data-key-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t<label for=\"execution-filter-saved-data-value\">{{\n\t\t\t\t\t\tlocale.baseText('executionsFilter.savedDataValue')\n\t\t\t\t\t}}</label>\n\t\t\t\t\t<n8n-tooltip :disabled=\"isAdvancedExecutionFilterEnabled\" placement=\"top\">\n\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"executionsFilter.customData.inputTooltip\">\n\t\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t\t<a href=\"#\" @click.prevent=\"goToUpgrade\">{{\n\t\t\t\t\t\t\t\t\t\tlocale.baseText('executionsFilter.customData.inputTooltip.link')\n\t\t\t\t\t\t\t\t\t}}</a>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<n8n-input\n\t\t\t\t\t\t\tid=\"execution-filter-saved-data-value\"\n\t\t\t\t\t\t\tname=\"execution-filter-saved-data-value\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t:disabled=\"!isAdvancedExecutionFilterEnabled\"\n\t\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.savedDataValuePlaceholder')\"\n\t\t\t\t\t\t\t:modelValue=\"filter.metadata[0]?.value\"\n\t\t\t\t\t\t\t@update:modelValue=\"onFilterMetaChange(0, 'value', $event)\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-filter-saved-data-value-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"!!countSelectedFilterProps\"\n\t\t\t\t:class=\"$style.resetBtn\"\n\t\t\t\t@click=\"onFilterReset\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ttext\n\t\t\t\tdata-test-id=\"executions-filter-reset-button\"\n\t\t\t>\n\t\t\t\t{{ locale.baseText('executionsFilter.reset') }}\n\t\t\t</n8n-button>\n\t\t</div>\n\t</n8n-popover>\n</template>\n<style lang=\"scss\" module>\n.group {\n\tlabel,\n\t.label {\n\t\tdisplay: inline-block;\n\t\tfont-size: var(--font-size-2xs);\n\t\tmargin: var(--spacing-s) 0 var(--spacing-3xs);\n\t}\n}\n\n.subGroup {\n\tpadding: 0 0 var(--spacing-xs) var(--spacing-s);\n\n\tlabel,\n\t.label {\n\t\tfont-size: var(--font-size-3xs);\n\t\tmargin: var(--spacing-4xs) 0 var(--spacing-4xs);\n\t}\n}\n\n.dates {\n\tdisplay: flex;\n\tborder: 1px solid var(--color-foreground-base);\n\tborder-radius: var(--border-radius-base);\n\twhite-space: nowrap;\n\talign-items: center;\n}\n\n.divider {\n\tpadding: 0 var(--spacing-m);\n\tline-height: 100%;\n}\n\n.resetBtn {\n\tpadding: 0;\n\tmargin: var(--spacing-xs) 0 0;\n}\n\n.tooltipIcon {\n\tcolor: var(--color-text-light);\n}\n</style>\n\n<style lang=\"scss\" scoped>\n:deep(.el-date-editor) {\n\tinput {\n\t\theight: 36px;\n\t\tborder: 0;\n\t\tpadding-right: 0;\n\t}\n\n\t.el-input__prefix {\n\t\tcolor: var(--color-foreground-dark);\n\t}\n\n\t&:last-of-type {\n\t\tinput {\n\t\t\tpadding-left: 0;\n\t\t}\n\n\t\t.el-input__prefix {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n:deep(.el-select-dropdown.el-popper[data-popper-placement^='bottom']) {\n\t> .popper__arrow {\n\t\ttop: -6px;\n\t\tleft: 50%;\n\t\tright: unset;\n\t\tmargin-bottom: 0;\n\t\tmargin-right: 3px;\n\t\tborder-left-width: 6px;\n\t\tborder-top-width: 0;\n\t\tborder-bottom-color: var(--border-color-light);\n\t\tborder-right-color: transparent;\n\n\t\t&::after {\n\t\t\ttop: 1px;\n\t\t\tleft: unset;\n\t\t\tbottom: unset;\n\t\t\tmargin-left: -6px;\n\t\t\tborder-left-width: 6px;\n\t\t\tborder-top-width: 0;\n\t\t\tborder-bottom-color: var(--color-foreground-xlight);\n\t\t\tborder-right-color: transparent;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","genericHelpers","msPassed","root","require$$0","now","now_1","reWhitespace","trimmedEndIndex","string","index","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","isObject","require$$1","isSymbol","require$$2","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","other","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","DATE_TIME_MASK","settingsStore","useSettingsStore","useUsageStore","uiStore","useUIStore","telemetry","useTelemetry","debouncedEmit","emit","isCustomDataFilterTracked","ref","isAdvancedExecutionFilterEnabled","computed","EnterpriseEditionFeature","showTags","getDefaultFilter","filter","reactive","vModel","getObjectKeys","acc","key","statuses","locale","countSelectedFilterProps","count","isEmpty","onFilterMetaChange","prop","onTagsChange","tags","onFilterReset","goToUpgrade","onBeforeMount"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5]}
|
|
1
|
+
{"version":3,"file":"ExecutionFilter-dfrYJ_Rf.js","sources":["../../src/components/ExecutionTime.vue","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../src/components/ExecutionFilter.vue"],"sourcesContent":["<template>\n\t<span>\n\t\t{{ time }}\n\t</span>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { genericHelpers } from '@/mixins/genericHelpers';\n\nexport default defineComponent({\n\tname: 'ExecutionTime',\n\tmixins: [genericHelpers],\n\tprops: ['startTime'],\n\tcomputed: {\n\t\ttime(): string {\n\t\t\tif (!this.startTime) {\n\t\t\t\treturn '...';\n\t\t\t}\n\t\t\tconst msPassed = this.nowTime - new Date(this.startTime).getTime();\n\t\t\treturn this.displayTimer(msPassed);\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tnowTime: -1,\n\t\t\tintervalTimer: null as null | NodeJS.Timeout,\n\t\t};\n\t},\n\tmounted() {\n\t\tthis.setNow();\n\t\tthis.intervalTimer = setInterval(() => {\n\t\t\tthis.setNow();\n\t\t}, 1000);\n\t},\n\tbeforeUnmount() {\n\t\t// Make sure that the timer gets destroyed once no longer needed\n\t\tif (this.intervalTimer !== null) {\n\t\t\tclearInterval(this.intervalTimer);\n\t\t}\n\t},\n\tmethods: {\n\t\tsetNow() {\n\t\t\tthis.nowTime = new Date().getTime();\n\t\t},\n\t},\n});\n</script>\n\n<style lang=\"scss\">\n// .data-display-wrapper {\n\n// }\n</style>\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","<script lang=\"ts\" setup>\nimport { computed, reactive, onBeforeMount, ref } from 'vue';\nimport debounce from 'lodash/debounce';\nimport type {\n\tExecutionFilterType,\n\tExecutionFilterMetadata,\n\tIWorkflowShortResponse,\n} from '@/Interface';\nimport { i18n as locale } from '@/plugins/i18n';\nimport TagsDropdown from '@/components/TagsDropdown.vue';\nimport { getObjectKeys, isEmpty } from '@/utils/typesUtils';\nimport { EnterpriseEditionFeature } from '@/constants';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUsageStore } from '@/stores/usage.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useTelemetry } from '@/composables/useTelemetry';\nimport type { Placement } from '@floating-ui/core';\n\nexport type ExecutionFilterProps = {\n\tworkflows?: IWorkflowShortResponse[];\n\tpopoverPlacement?: Placement;\n\tteleported?: boolean;\n};\n\nconst DATE_TIME_MASK = 'YYYY-MM-DD HH:mm';\n\nconst settingsStore = useSettingsStore();\nconst usageStore = useUsageStore();\nconst uiStore = useUIStore();\n\nconst telemetry = useTelemetry();\n\nconst props = withDefaults(defineProps<ExecutionFilterProps>(), {\n\tpopoverPlacement: 'bottom' as Placement,\n\tteleported: true,\n});\nconst emit = defineEmits<{\n\t(event: 'filterChanged', value: ExecutionFilterType): void;\n}>();\nconst debouncedEmit = debounce(emit, 500);\n\nconst isCustomDataFilterTracked = ref(false);\nconst isAdvancedExecutionFilterEnabled = computed(() =>\n\tsettingsStore.isEnterpriseFeatureEnabled(EnterpriseEditionFeature.AdvancedExecutionFilters),\n);\nconst showTags = computed(() => false);\n\nconst getDefaultFilter = (): ExecutionFilterType => ({\n\tstatus: 'all',\n\tworkflowId: 'all',\n\ttags: [],\n\tstartDate: '',\n\tendDate: '',\n\tmetadata: [{ key: '', value: '' }],\n});\nconst filter = reactive(getDefaultFilter());\n\n// Automatically set up v-models based on filter properties\nconst vModel = reactive(\n\tgetObjectKeys(filter).reduce(\n\t\t(acc, key) => {\n\t\t\tacc[key] = computed({\n\t\t\t\tget() {\n\t\t\t\t\treturn filter[key];\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\t// TODO: find out what exactly is typechecker complaining about\n\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tfilter[key] = value;\n\t\t\t\t\temit('filterChanged', filter);\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<keyof ExecutionFilterType, ReturnType<typeof computed>>,\n\t),\n);\n\nconst statuses = computed(() => [\n\t{ id: 'all', name: locale.baseText('executionsList.anyStatus') },\n\t{ id: 'error', name: locale.baseText('executionsList.error') },\n\t{ id: 'canceled', name: locale.baseText('executionsList.canceled') },\n\t{ id: 'running', name: locale.baseText('executionsList.running') },\n\t{ id: 'success', name: locale.baseText('executionsList.success') },\n\t{ id: 'waiting', name: locale.baseText('executionsList.waiting') },\n]);\n\nconst countSelectedFilterProps = computed(() => {\n\tlet count = 0;\n\tif (filter.status !== 'all') {\n\t\tcount++;\n\t}\n\tif (filter.workflowId !== 'all') {\n\t\tcount++;\n\t}\n\tif (!isEmpty(filter.tags)) {\n\t\tcount++;\n\t}\n\tif (!isEmpty(filter.metadata)) {\n\t\tcount++;\n\t}\n\tif (!!filter.startDate) {\n\t\tcount++;\n\t}\n\tif (!!filter.endDate) {\n\t\tcount++;\n\t}\n\treturn count;\n});\n\n// vModel.metadata is a text input and needs a debounced emit to avoid too many requests\n// We use the :value and @input combo instead of v-model with this event listener\nconst onFilterMetaChange = (index: number, prop: keyof ExecutionFilterMetadata, value: string) => {\n\tif (!filter.metadata[index]) {\n\t\tfilter.metadata[index] = {\n\t\t\tkey: '',\n\t\t\tvalue: '',\n\t\t};\n\t}\n\tfilter.metadata[index][prop] = value;\n\n\tif (!isCustomDataFilterTracked.value) {\n\t\ttelemetry.track('User filtered executions with custom data');\n\t\tisCustomDataFilterTracked.value = true;\n\t}\n\n\tdebouncedEmit('filterChanged', filter);\n};\n\n// Can't use v-model on TagsDropdown component and thus vModel.tags is useless\n// We just emit the updated filter\nconst onTagsChange = (tags: string[]) => {\n\tfilter.tags = tags;\n\temit('filterChanged', filter);\n};\n\nconst onFilterReset = () => {\n\tObject.assign(filter, getDefaultFilter());\n\temit('filterChanged', filter);\n};\n\nconst goToUpgrade = () => {\n\tvoid uiStore.goToUpgrade('custom-data-filter', 'upgrade-custom-data-filter');\n};\n\nonBeforeMount(() => {\n\tisCustomDataFilterTracked.value = false;\n\temit('filterChanged', filter);\n});\n</script>\n<template>\n\t<n8n-popover trigger=\"click\" :placement=\"popoverPlacement\" width=\"440\">\n\t\t<template #reference>\n\t\t\t<n8n-button\n\t\t\t\ticon=\"filter\"\n\t\t\t\ttype=\"tertiary\"\n\t\t\t\t:active=\"!!countSelectedFilterProps\"\n\t\t\t\tdata-test-id=\"executions-filter-button\"\n\t\t\t>\n\t\t\t\t<n8n-badge\n\t\t\t\t\tv-if=\"!!countSelectedFilterProps\"\n\t\t\t\t\ttheme=\"primary\"\n\t\t\t\t\tclass=\"mr-4xs\"\n\t\t\t\t\tdata-test-id=\"execution-filter-badge\"\n\t\t\t\t\t>{{ countSelectedFilterProps }}</n8n-badge\n\t\t\t\t>\n\t\t\t\t{{ locale.baseText('executionsList.filters') }}\n\t\t\t</n8n-button>\n\t\t</template>\n\t\t<div data-test-id=\"execution-filter-form\">\n\t\t\t<div v-if=\"workflows && workflows.length > 0\" :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-workflows\">{{ locale.baseText('workflows.heading') }}</label>\n\t\t\t\t<n8n-select\n\t\t\t\t\tid=\"execution-filter-workflows\"\n\t\t\t\t\tv-model=\"vModel.workflowId\"\n\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.selectWorkflow')\"\n\t\t\t\t\tfilterable\n\t\t\t\t\tdata-test-id=\"executions-filter-workflows-select\"\n\t\t\t\t\t:teleported=\"teleported\"\n\t\t\t\t>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<n8n-option\n\t\t\t\t\t\t\tv-for=\"(item, idx) in props.workflows\"\n\t\t\t\t\t\t\t:key=\"idx\"\n\t\t\t\t\t\t\t:label=\"item.name\"\n\t\t\t\t\t\t\t:value=\"item.id\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t\t<div v-if=\"showTags\" :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-tags\">{{ locale.baseText('workflows.filters.tags') }}</label>\n\t\t\t\t<TagsDropdown\n\t\t\t\t\tid=\"execution-filter-tags\"\n\t\t\t\t\t:placeholder=\"locale.baseText('workflowOpen.filterWorkflows')\"\n\t\t\t\t\t:modelValue=\"filter.tags\"\n\t\t\t\t\t:createEnabled=\"false\"\n\t\t\t\t\t@update:modelValue=\"onTagsChange\"\n\t\t\t\t\tdata-test-id=\"executions-filter-tags-select\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-status\">{{ locale.baseText('executionsList.status') }}</label>\n\t\t\t\t<n8n-select\n\t\t\t\t\tid=\"execution-filter-status\"\n\t\t\t\t\tv-model=\"vModel.status\"\n\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.selectStatus')\"\n\t\t\t\t\tfilterable\n\t\t\t\t\tdata-test-id=\"executions-filter-status-select\"\n\t\t\t\t\t:teleported=\"teleported\"\n\t\t\t\t>\n\t\t\t\t\t<n8n-option\n\t\t\t\t\t\tv-for=\"(item, idx) in statuses\"\n\t\t\t\t\t\t:key=\"idx\"\n\t\t\t\t\t\t:label=\"item.name\"\n\t\t\t\t\t\t:value=\"item.id\"\n\t\t\t\t\t/>\n\t\t\t\t</n8n-select>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.group\">\n\t\t\t\t<label for=\"execution-filter-start-date\">{{\n\t\t\t\t\tlocale.baseText('executionsFilter.start')\n\t\t\t\t}}</label>\n\t\t\t\t<div :class=\"$style.dates\">\n\t\t\t\t\t<el-date-picker\n\t\t\t\t\t\tid=\"execution-filter-start-date\"\n\t\t\t\t\t\ttype=\"datetime\"\n\t\t\t\t\t\t:teleported=\"false\"\n\t\t\t\t\t\tv-model=\"vModel.startDate\"\n\t\t\t\t\t\t:format=\"DATE_TIME_MASK\"\n\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.startDate')\"\n\t\t\t\t\t\tdata-test-id=\"executions-filter-start-date-picker\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span :class=\"$style.divider\">to</span>\n\t\t\t\t\t<el-date-picker\n\t\t\t\t\t\tid=\"execution-filter-end-date\"\n\t\t\t\t\t\ttype=\"datetime\"\n\t\t\t\t\t\t:teleported=\"false\"\n\t\t\t\t\t\tv-model=\"vModel.endDate\"\n\t\t\t\t\t\t:format=\"DATE_TIME_MASK\"\n\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.endDate')\"\n\t\t\t\t\t\tdata-test-id=\"executions-filter-end-date-picker\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div :class=\"$style.group\">\n\t\t\t\t<n8n-tooltip placement=\"right\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"executionsFilter.customData.docsTooltip\">\n\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\t\thref=\"https://docs.n8n.io/workflows/executions/custom-executions-data/\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{ locale.baseText('executionsFilter.customData.docsTooltip.link') }}\n\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t</template>\n\t\t\t\t\t<span :class=\"$style.label\">\n\t\t\t\t\t\t{{ locale.baseText('executionsFilter.savedData') }}\n\t\t\t\t\t\t<n8n-icon :class=\"$style.tooltipIcon\" icon=\"question-circle\" size=\"small\" />\n\t\t\t\t\t</span>\n\t\t\t\t</n8n-tooltip>\n\t\t\t\t<div :class=\"$style.subGroup\">\n\t\t\t\t\t<label for=\"execution-filter-saved-data-key\">{{\n\t\t\t\t\t\tlocale.baseText('executionsFilter.savedDataKey')\n\t\t\t\t\t}}</label>\n\t\t\t\t\t<n8n-tooltip :disabled=\"isAdvancedExecutionFilterEnabled\" placement=\"top\">\n\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"executionsFilter.customData.inputTooltip\">\n\t\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t\t\t\t@click.prevent=\"goToUpgrade\"\n\t\t\t\t\t\t\t\t\t\tdata-test-id=\"executions-filter-view-plans-link\"\n\t\t\t\t\t\t\t\t\t\t>{{ locale.baseText('executionsFilter.customData.inputTooltip.link') }}</a\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<n8n-input\n\t\t\t\t\t\t\tid=\"execution-filter-saved-data-key\"\n\t\t\t\t\t\t\tname=\"execution-filter-saved-data-key\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t:disabled=\"!isAdvancedExecutionFilterEnabled\"\n\t\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.savedDataKeyPlaceholder')\"\n\t\t\t\t\t\t\t:modelValue=\"filter.metadata[0]?.key\"\n\t\t\t\t\t\t\t@update:modelValue=\"onFilterMetaChange(0, 'key', $event)\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-filter-saved-data-key-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t\t<label for=\"execution-filter-saved-data-value\">{{\n\t\t\t\t\t\tlocale.baseText('executionsFilter.savedDataValue')\n\t\t\t\t\t}}</label>\n\t\t\t\t\t<n8n-tooltip :disabled=\"isAdvancedExecutionFilterEnabled\" placement=\"top\">\n\t\t\t\t\t\t<template #content>\n\t\t\t\t\t\t\t<i18n-t tag=\"span\" keypath=\"executionsFilter.customData.inputTooltip\">\n\t\t\t\t\t\t\t\t<template #link>\n\t\t\t\t\t\t\t\t\t<a href=\"#\" @click.prevent=\"goToUpgrade\">{{\n\t\t\t\t\t\t\t\t\t\tlocale.baseText('executionsFilter.customData.inputTooltip.link')\n\t\t\t\t\t\t\t\t\t}}</a>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</i18n-t>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<n8n-input\n\t\t\t\t\t\t\tid=\"execution-filter-saved-data-value\"\n\t\t\t\t\t\t\tname=\"execution-filter-saved-data-value\"\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t:disabled=\"!isAdvancedExecutionFilterEnabled\"\n\t\t\t\t\t\t\t:placeholder=\"locale.baseText('executionsFilter.savedDataValuePlaceholder')\"\n\t\t\t\t\t\t\t:modelValue=\"filter.metadata[0]?.value\"\n\t\t\t\t\t\t\t@update:modelValue=\"onFilterMetaChange(0, 'value', $event)\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-filter-saved-data-value-input\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</n8n-tooltip>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<n8n-button\n\t\t\t\tv-if=\"!!countSelectedFilterProps\"\n\t\t\t\t:class=\"$style.resetBtn\"\n\t\t\t\t@click=\"onFilterReset\"\n\t\t\t\tsize=\"large\"\n\t\t\t\ttext\n\t\t\t\tdata-test-id=\"executions-filter-reset-button\"\n\t\t\t>\n\t\t\t\t{{ locale.baseText('executionsFilter.reset') }}\n\t\t\t</n8n-button>\n\t\t</div>\n\t</n8n-popover>\n</template>\n<style lang=\"scss\" module>\n.group {\n\tlabel,\n\t.label {\n\t\tdisplay: inline-block;\n\t\tfont-size: var(--font-size-2xs);\n\t\tmargin: var(--spacing-s) 0 var(--spacing-3xs);\n\t}\n}\n\n.subGroup {\n\tpadding: 0 0 var(--spacing-xs) var(--spacing-s);\n\n\tlabel,\n\t.label {\n\t\tfont-size: var(--font-size-3xs);\n\t\tmargin: var(--spacing-4xs) 0 var(--spacing-4xs);\n\t}\n}\n\n.dates {\n\tdisplay: flex;\n\tborder: 1px solid var(--color-foreground-base);\n\tborder-radius: var(--border-radius-base);\n\twhite-space: nowrap;\n\talign-items: center;\n}\n\n.divider {\n\tpadding: 0 var(--spacing-m);\n\tline-height: 100%;\n}\n\n.resetBtn {\n\tpadding: 0;\n\tmargin: var(--spacing-xs) 0 0;\n}\n\n.tooltipIcon {\n\tcolor: var(--color-text-light);\n}\n</style>\n\n<style lang=\"scss\" scoped>\n:deep(.el-date-editor) {\n\tinput {\n\t\theight: 36px;\n\t\tborder: 0;\n\t\tpadding-right: 0;\n\t}\n\n\t.el-input__prefix {\n\t\tcolor: var(--color-foreground-dark);\n\t}\n\n\t&:last-of-type {\n\t\tinput {\n\t\t\tpadding-left: 0;\n\t\t}\n\n\t\t.el-input__prefix {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n:deep(.el-select-dropdown.el-popper[data-popper-placement^='bottom']) {\n\t> .popper__arrow {\n\t\ttop: -6px;\n\t\tleft: 50%;\n\t\tright: unset;\n\t\tmargin-bottom: 0;\n\t\tmargin-right: 3px;\n\t\tborder-left-width: 6px;\n\t\tborder-top-width: 0;\n\t\tborder-bottom-color: var(--border-color-light);\n\t\tborder-right-color: transparent;\n\n\t\t&::after {\n\t\t\ttop: 1px;\n\t\t\tleft: unset;\n\t\t\tbottom: unset;\n\t\t\tmargin-left: -6px;\n\t\t\tborder-left-width: 6px;\n\t\t\tborder-top-width: 0;\n\t\t\tborder-bottom-color: var(--color-foreground-xlight);\n\t\t\tborder-right-color: transparent;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main$1","defineComponent","genericHelpers","msPassed","root","require$$0","now","now_1","reWhitespace","trimmedEndIndex","string","index","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","isObject","require$$1","isSymbol","require$$2","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","value","other","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","DATE_TIME_MASK","settingsStore","useSettingsStore","useUsageStore","uiStore","useUIStore","telemetry","useTelemetry","debouncedEmit","emit","isCustomDataFilterTracked","ref","isAdvancedExecutionFilterEnabled","computed","EnterpriseEditionFeature","showTags","getDefaultFilter","filter","reactive","vModel","getObjectKeys","acc","key","statuses","locale","countSelectedFilterProps","count","isEmpty","onFilterMetaChange","prop","onTagsChange","tags","onFilterReset","goToUpgrade","onBeforeMount"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as h}from"./useExecutionDebugging-
|
|
2
|
-
//# sourceMappingURL=ExecutionPreview-
|
|
1
|
+
import{u as h}from"./useExecutionDebugging-Yog1CJXv.js";import{aN as C,a as T}from"./index-RXjMHIPR.js";import{e as B}from"./executionsHelpers-gnbzcx5j.js";import{fq as M,V as U,ac as L,_ as z}from"./n8n-ZKR6bms9.js";import{G as R,ag as a,l as r,m as g,p as c,T as o,I as l,O as t,M as d,Q as p,S as i,R as n}from"./vendor-2CfOYFi2.js";import"./pinia-jX93eZRS.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 V=R({name:"execution-preview",mixins:[B],components:{ElDropdown:M,WorkflowPreview:C},data(){return{VIEWS:U}},setup(){return{...T(),...h()}},computed:{executionUIDetails(){return this.activeExecution?this.getExecutionUIDetails(this.activeExecution):null},executionMode(){var e;return((e=this.activeExecution)==null?void 0:e.mode)||""},debugButtonData(){var e;return((e=this.activeExecution)==null?void 0:e.status)==="success"?{text:this.$locale.baseText("executionsList.debug.button.copyToEditor"),type:"secondary"}:{text:this.$locale.baseText("executionsList.debug.button.debugInEditor"),type:"primary"}}},methods:{async onDeleteExecution(){await this.confirm(this.$locale.baseText("executionDetails.confirmMessage.message"),this.$locale.baseText("executionDetails.confirmMessage.headline"),{type:"warning",confirmButtonText:this.$locale.baseText("executionDetails.confirmMessage.confirmButtonText"),cancelButtonText:""})===L&&this.$emit("deleteCurrentExecution")},handleRetryClick(e){this.$emit("retryExecution",{execution:this.activeExecution,command:e})},handleStopClick(){this.$emit("stopExecution")},onRetryButtonBlur(e){const m=this.$refs.retryDropdown;m&&e.relatedTarget===null&&m.handleClose()}}}),W="_previewContainer_15m41_5",N="_executionDetails_15m41_11",O="_spinner_15m41_30",S="_running_15m41_36",P="_waiting_15m41_41",F="_success_15m41_45",G="_error_15m41_49",X="_runningInfo_15m41_53",q="_runningMessage_15m41_60",A="_debugLink_15m41_66",H={previewContainer:W,executionDetails:N,spinner:O,running:S,waiting:P,success:F,error:G,runningInfo:X,runningMessage:q,debugLink:A},Q=["data-test-id"],j=c("br",null,null,-1),J=c("br",null,null,-1),K={class:"retry-button"};function Y(e,m,ee,te,ne,oe){var k,D,E,_;const y=a("n8n-spinner"),u=a("n8n-text"),x=a("n8n-button"),f=a("router-link"),w=a("n8n-icon-button"),b=a("el-dropdown-item"),I=a("el-dropdown-menu"),v=a("el-dropdown"),$=a("workflow-preview");return((k=e.executionUIDetails)==null?void 0:k.name)==="running"?(r(),g("div",{key:0,class:l(e.$style.runningInfo)},[c("div",{class:l(e.$style.spinner)},[o(y,{type:"ring"})],2),o(u,{class:l(e.$style.runningMessage),color:"text-light"},{default:t(()=>[i(n(e.$locale.baseText("executionDetails.runningMessage")),1)]),_:1},8,["class"]),o(x,{class:"mt-l",type:"tertiary",onClick:e.handleStopClick},{default:t(()=>[i(n(e.$locale.baseText("executionsList.stopExecution")),1)]),_:1},8,["onClick"])],2)):(r(),g("div",{key:1,class:l(e.$style.previewContainer)},[e.activeExecution?(r(),g("div",{key:0,class:l(e.$style.executionDetails),"data-test-id":`execution-preview-details-${e.executionId}`},[c("div",null,[o(u,{size:"large",color:"text-base",bold:!0,"data-test-id":"execution-time"},{default:t(()=>{var s;return[i(n((s=e.executionUIDetails)==null?void 0:s.startTime),1)]}),_:1}),j,((D=e.executionUIDetails)==null?void 0:D.name)==="running"?(r(),d(y,{key:0,size:"small",class:l([e.$style.spinner,"mr-4xs"])},null,8,["class"])):p("",!0),o(u,{size:"medium",class:l([e.$style.status,e.$style[e.executionUIDetails.name]]),"data-test-id":"execution-preview-label"},{default:t(()=>[i(n(e.executionUIDetails.label),1)]),_:1},8,["class"]),i(" "+n(" ")+" "),e.executionUIDetails.name==="running"?(r(),d(u,{key:1,color:"text-base",size:"medium"},{default:t(()=>{var s;return[i(n(e.$locale.baseText("executionDetails.runningTimeRunning",{interpolate:{time:(s=e.executionUIDetails)==null?void 0:s.runningTime}}))+" | ID#"+n(e.activeExecution.id),1)]}),_:1})):e.executionUIDetails.name!=="waiting"?(r(),d(u,{key:2,color:"text-base",size:"medium","data-test-id":"execution-preview-id"},{default:t(()=>{var s;return[i(n(e.$locale.baseText("executionDetails.runningTimeFinished",{interpolate:{time:((s=e.executionUIDetails)==null?void 0:s.runningTime)??"unknown"}}))+" | ID#"+n(e.activeExecution.id),1)]}),_:1})):((E=e.executionUIDetails)==null?void 0:E.name)==="waiting"?(r(),d(u,{key:3,color:"text-base",size:"medium"},{default:t(()=>[i(" | ID#"+n(e.activeExecution.id),1)]),_:1})):p("",!0),J,e.activeExecution.mode==="retry"?(r(),d(u,{key:4,color:"text-base",size:"medium"},{default:t(()=>[i(n(e.$locale.baseText("executionDetails.retry"))+" ",1),o(f,{class:l(e.$style.executionLink),to:{name:e.VIEWS.EXECUTION_PREVIEW,params:{workflowId:e.activeExecution.workflowId,executionId:e.activeExecution.retryOf}}},{default:t(()=>[i(" #"+n(e.activeExecution.retryOf),1)]),_:1},8,["class","to"])]),_:1})):p("",!0)]),c("div",null,[o(x,{size:"large",type:e.debugButtonData.type,class:l({[e.$style.debugLink]:!0,[e.$style.secondary]:e.debugButtonData.type==="secondary"})},{default:t(()=>[o(f,{to:{name:e.VIEWS.EXECUTION_DEBUG,params:{name:e.activeExecution.workflowId,executionId:e.activeExecution.id}}},{default:t(()=>[c("span",{onClick:m[0]||(m[0]=(...s)=>e.handleDebugLinkClick&&e.handleDebugLinkClick(...s)),"data-test-id":"execution-debug-button"},n(e.debugButtonData.text),1)]),_:1},8,["to"])]),_:1},8,["type","class"]),((_=e.executionUIDetails)==null?void 0:_.name)==="error"?(r(),d(v,{key:0,trigger:"click",class:"mr-xs",onCommand:e.handleRetryClick,ref:"retryDropdown"},{dropdown:t(()=>[o(I,null,{default:t(()=>[o(b,{command:"current-workflow"},{default:t(()=>[i(n(e.$locale.baseText("executionsList.retryWithCurrentlySavedWorkflow")),1)]),_:1}),o(b,{command:"original-workflow"},{default:t(()=>[i(n(e.$locale.baseText("executionsList.retryWithOriginalWorkflow")),1)]),_:1})]),_:1})]),default:t(()=>[c("span",K,[o(w,{size:"large",type:"tertiary",title:e.$locale.baseText("executionsList.retryExecution"),icon:"redo","data-test-id":"execution-preview-retry-button",onBlur:e.onRetryButtonBlur},null,8,["title","onBlur"])])]),_:1},8,["onCommand"])):p("",!0),o(w,{title:e.$locale.baseText("executionDetails.deleteExecution"),icon:"trash",size:"large",type:"tertiary","data-test-id":"execution-preview-delete-button",onClick:e.onDeleteExecution},null,8,["title","onClick"])])],10,Q)):p("",!0),o($,{mode:"execution",loaderType:"spinner",executionId:e.executionId,executionMode:e.executionMode},null,8,["executionId","executionMode"])],2))}const Z={$style:H},ze=z(V,[["render",Y],["__cssModules",Z]]);export{ze as default};
|
|
2
|
+
//# sourceMappingURL=ExecutionPreview-yFW7oTRf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionPreview-qQdwo4nO.js","sources":["../../src/components/ExecutionsView/ExecutionPreview.vue"],"sourcesContent":["<template>\n\t<div v-if=\"executionUIDetails?.name === 'running'\" :class=\"$style.runningInfo\">\n\t\t<div :class=\"$style.spinner\">\n\t\t\t<n8n-spinner type=\"ring\" />\n\t\t</div>\n\t\t<n8n-text :class=\"$style.runningMessage\" color=\"text-light\">\n\t\t\t{{ $locale.baseText('executionDetails.runningMessage') }}\n\t\t</n8n-text>\n\t\t<n8n-button class=\"mt-l\" type=\"tertiary\" @click=\"handleStopClick\">\n\t\t\t{{ $locale.baseText('executionsList.stopExecution') }}\n\t\t</n8n-button>\n\t</div>\n\t<div v-else :class=\"$style.previewContainer\">\n\t\t<div\n\t\t\t:class=\"$style.executionDetails\"\n\t\t\tv-if=\"activeExecution\"\n\t\t\t:data-test-id=\"`execution-preview-details-${executionId}`\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<n8n-text size=\"large\" color=\"text-base\" :bold=\"true\" data-test-id=\"execution-time\">{{\n\t\t\t\t\texecutionUIDetails?.startTime\n\t\t\t\t}}</n8n-text\n\t\t\t\t><br />\n\t\t\t\t<n8n-spinner\n\t\t\t\t\tv-if=\"executionUIDetails?.name === 'running'\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t:class=\"[$style.spinner, 'mr-4xs']\"\n\t\t\t\t/>\n\t\t\t\t<n8n-text\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t:class=\"[$style.status, $style[executionUIDetails.name]]\"\n\t\t\t\t\tdata-test-id=\"execution-preview-label\"\n\t\t\t\t>\n\t\t\t\t\t{{ executionUIDetails.label }}\n\t\t\t\t</n8n-text>\n\t\t\t\t{{ ' ' }}\n\t\t\t\t<n8n-text v-if=\"executionUIDetails.name === 'running'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeRunning', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ activeExecution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails.name !== 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tdata-test-id=\"execution-preview-id\"\n\t\t\t\t>\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeFinished', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime ?? 'unknown' },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ activeExecution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails?.name === 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t| ID#{{ activeExecution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<br /><n8n-text v-if=\"activeExecution.mode === 'retry'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{ $locale.baseText('executionDetails.retry') }}\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:class=\"$style.executionLink\"\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tworkflowId: activeExecution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: activeExecution.retryOf,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t#{{ activeExecution.retryOf }}\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<n8n-button\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t:type=\"debugButtonData.type\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t[$style.debugLink]: true,\n\t\t\t\t\t\t[$style.secondary]: debugButtonData.type === 'secondary',\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: VIEWS.EXECUTION_DEBUG,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tname: activeExecution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: activeExecution.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span @click=\"handleDebugLinkClick\" data-test-id=\"execution-debug-button\">{{\n\t\t\t\t\t\t\tdebugButtonData.text\n\t\t\t\t\t\t}}</span>\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-button>\n\n\t\t\t\t<el-dropdown\n\t\t\t\t\tv-if=\"executionUIDetails?.name === 'error'\"\n\t\t\t\t\ttrigger=\"click\"\n\t\t\t\t\tclass=\"mr-xs\"\n\t\t\t\t\t@command=\"handleRetryClick\"\n\t\t\t\t\tref=\"retryDropdown\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"retry-button\">\n\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('executionsList.retryExecution')\"\n\t\t\t\t\t\t\ticon=\"redo\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-preview-retry-button\"\n\t\t\t\t\t\t\t@blur=\"onRetryButtonBlur\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<template #dropdown>\n\t\t\t\t\t\t<el-dropdown-menu>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"current-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithCurrentlySavedWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"original-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithOriginalWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t</el-dropdown-menu>\n\t\t\t\t\t</template>\n\t\t\t\t</el-dropdown>\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\t:title=\"$locale.baseText('executionDetails.deleteExecution')\"\n\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\tdata-test-id=\"execution-preview-delete-button\"\n\t\t\t\t\t@click=\"onDeleteExecution\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t\t<workflow-preview\n\t\t\tmode=\"execution\"\n\t\t\tloaderType=\"spinner\"\n\t\t\t:executionId=\"executionId\"\n\t\t\t:executionMode=\"executionMode\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { ElDropdown } from 'element-plus';\nimport { useExecutionDebugging } from '@/composables/useExecutionDebugging';\nimport { useMessage } from '@/composables/useMessage';\nimport WorkflowPreview from '@/components/WorkflowPreview.vue';\nimport type { IExecutionUIData } from '@/mixins/executionsHelpers';\nimport { executionHelpers } from '@/mixins/executionsHelpers';\nimport { MODAL_CONFIRM, VIEWS } from '@/constants';\n\ntype RetryDropdownRef = InstanceType<typeof ElDropdown> & { hide: () => void };\n\nexport default defineComponent({\n\tname: 'execution-preview',\n\tmixins: [executionHelpers],\n\tcomponents: {\n\t\tElDropdown,\n\t\tWorkflowPreview,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tVIEWS,\n\t\t};\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useMessage(),\n\t\t\t...useExecutionDebugging(),\n\t\t};\n\t},\n\tcomputed: {\n\t\texecutionUIDetails(): IExecutionUIData | null {\n\t\t\treturn this.activeExecution ? this.getExecutionUIDetails(this.activeExecution) : null;\n\t\t},\n\t\texecutionMode(): string {\n\t\t\treturn this.activeExecution?.mode || '';\n\t\t},\n\t\tdebugButtonData(): Record<string, string> {\n\t\t\treturn this.activeExecution?.status === 'success'\n\t\t\t\t? {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.copyToEditor'),\n\t\t\t\t\t\ttype: 'secondary',\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.debugInEditor'),\n\t\t\t\t\t\ttype: 'primary',\n\t\t\t\t };\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onDeleteExecution(): Promise<void> {\n\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.message'),\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.headline'),\n\t\t\t\t{\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'executionDetails.confirmMessage.confirmButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tcancelButtonText: '',\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (deleteConfirmed !== MODAL_CONFIRM) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$emit('deleteCurrentExecution');\n\t\t},\n\t\thandleRetryClick(command: string): void {\n\t\t\tthis.$emit('retryExecution', { execution: this.activeExecution, command });\n\t\t},\n\t\thandleStopClick(): void {\n\t\t\tthis.$emit('stopExecution');\n\t\t},\n\t\tonRetryButtonBlur(event: FocusEvent): void {\n\t\t\t// Hide dropdown when clicking outside of current document\n\t\t\tconst retryDropdownRef = this.$refs.retryDropdown as RetryDropdownRef | undefined;\n\t\t\tif (retryDropdownRef && event.relatedTarget === null) {\n\t\t\t\tretryDropdownRef.handleClose();\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.previewContainer {\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n}\n\n.executionDetails {\n\tposition: absolute;\n\tpadding: var(--spacing-m);\n\tpadding-right: var(--spacing-xl);\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\ttransition: all 150ms ease-in-out;\n\tpointer-events: none;\n\n\t> div:last-child {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t& * {\n\t\tpointer-events: all;\n\t}\n}\n\n.spinner {\n\tdiv div {\n\t\twidth: 30px;\n\t\theight: 30px;\n\t\tborder-width: 2px;\n\t}\n}\n\n.running,\n.spinner {\n\tcolor: var(--color-warning);\n}\n.waiting {\n\tcolor: var(--color-secondary);\n}\n.success {\n\tcolor: var(--color-success);\n}\n.error {\n\tcolor: var(--color-danger);\n}\n\n.runningInfo {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tmargin-top: var(--spacing-4xl);\n}\n\n.runningMessage {\n\twidth: 200px;\n\tmargin-top: var(--spacing-l);\n\ttext-align: center;\n}\n\n.debugLink {\n\theight: 42px;\n\tmargin-right: var(--spacing-xs);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","executionHelpers","ElDropdown","WorkflowPreview","VIEWS","useMessage","useExecutionDebugging","_a","MODAL_CONFIRM","command","event","retryDropdownRef","_hoisted_1","_createElementVNode","_resolveComponent","_ctx","_openBlock","_createElementBlock","_normalizeClass","_createVNode","_component_n8n_spinner","_component_n8n_text","_component_n8n_button","_hoisted_2","_createBlock","_createCommentVNode","_createTextVNode","_toDisplayString","_withCtx","_c","_hoisted_3","_component_router_link","_cache","args","_d","_component_el_dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_hoisted_4","_component_n8n_icon_button","_component_workflow_preview"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutionPreview-yFW7oTRf.js","sources":["../../src/components/ExecutionsView/ExecutionPreview.vue"],"sourcesContent":["<template>\n\t<div v-if=\"executionUIDetails?.name === 'running'\" :class=\"$style.runningInfo\">\n\t\t<div :class=\"$style.spinner\">\n\t\t\t<n8n-spinner type=\"ring\" />\n\t\t</div>\n\t\t<n8n-text :class=\"$style.runningMessage\" color=\"text-light\">\n\t\t\t{{ $locale.baseText('executionDetails.runningMessage') }}\n\t\t</n8n-text>\n\t\t<n8n-button class=\"mt-l\" type=\"tertiary\" @click=\"handleStopClick\">\n\t\t\t{{ $locale.baseText('executionsList.stopExecution') }}\n\t\t</n8n-button>\n\t</div>\n\t<div v-else :class=\"$style.previewContainer\">\n\t\t<div\n\t\t\t:class=\"$style.executionDetails\"\n\t\t\tv-if=\"activeExecution\"\n\t\t\t:data-test-id=\"`execution-preview-details-${executionId}`\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<n8n-text size=\"large\" color=\"text-base\" :bold=\"true\" data-test-id=\"execution-time\">{{\n\t\t\t\t\texecutionUIDetails?.startTime\n\t\t\t\t}}</n8n-text\n\t\t\t\t><br />\n\t\t\t\t<n8n-spinner\n\t\t\t\t\tv-if=\"executionUIDetails?.name === 'running'\"\n\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t:class=\"[$style.spinner, 'mr-4xs']\"\n\t\t\t\t/>\n\t\t\t\t<n8n-text\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\t:class=\"[$style.status, $style[executionUIDetails.name]]\"\n\t\t\t\t\tdata-test-id=\"execution-preview-label\"\n\t\t\t\t>\n\t\t\t\t\t{{ executionUIDetails.label }}\n\t\t\t\t</n8n-text>\n\t\t\t\t{{ ' ' }}\n\t\t\t\t<n8n-text v-if=\"executionUIDetails.name === 'running'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeRunning', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ activeExecution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails.name !== 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t\tdata-test-id=\"execution-preview-id\"\n\t\t\t\t>\n\t\t\t\t\t{{\n\t\t\t\t\t\t$locale.baseText('executionDetails.runningTimeFinished', {\n\t\t\t\t\t\t\tinterpolate: { time: executionUIDetails?.runningTime ?? 'unknown' },\n\t\t\t\t\t\t})\n\t\t\t\t\t}}\n\t\t\t\t\t| ID#{{ activeExecution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-text\n\t\t\t\t\tv-else-if=\"executionUIDetails?.name === 'waiting'\"\n\t\t\t\t\tcolor=\"text-base\"\n\t\t\t\t\tsize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t| ID#{{ activeExecution.id }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<br /><n8n-text v-if=\"activeExecution.mode === 'retry'\" color=\"text-base\" size=\"medium\">\n\t\t\t\t\t{{ $locale.baseText('executionDetails.retry') }}\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:class=\"$style.executionLink\"\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: VIEWS.EXECUTION_PREVIEW,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tworkflowId: activeExecution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: activeExecution.retryOf,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t#{{ activeExecution.retryOf }}\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-text>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<n8n-button\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t:type=\"debugButtonData.type\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t[$style.debugLink]: true,\n\t\t\t\t\t\t[$style.secondary]: debugButtonData.type === 'secondary',\n\t\t\t\t\t}\"\n\t\t\t\t>\n\t\t\t\t\t<router-link\n\t\t\t\t\t\t:to=\"{\n\t\t\t\t\t\t\tname: VIEWS.EXECUTION_DEBUG,\n\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\tname: activeExecution.workflowId,\n\t\t\t\t\t\t\t\texecutionId: activeExecution.id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span @click=\"handleDebugLinkClick\" data-test-id=\"execution-debug-button\">{{\n\t\t\t\t\t\t\tdebugButtonData.text\n\t\t\t\t\t\t}}</span>\n\t\t\t\t\t</router-link>\n\t\t\t\t</n8n-button>\n\n\t\t\t\t<el-dropdown\n\t\t\t\t\tv-if=\"executionUIDetails?.name === 'error'\"\n\t\t\t\t\ttrigger=\"click\"\n\t\t\t\t\tclass=\"mr-xs\"\n\t\t\t\t\t@command=\"handleRetryClick\"\n\t\t\t\t\tref=\"retryDropdown\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"retry-button\">\n\t\t\t\t\t\t<n8n-icon-button\n\t\t\t\t\t\t\tsize=\"large\"\n\t\t\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\t\t\t:title=\"$locale.baseText('executionsList.retryExecution')\"\n\t\t\t\t\t\t\ticon=\"redo\"\n\t\t\t\t\t\t\tdata-test-id=\"execution-preview-retry-button\"\n\t\t\t\t\t\t\t@blur=\"onRetryButtonBlur\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t\t<template #dropdown>\n\t\t\t\t\t\t<el-dropdown-menu>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"current-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithCurrentlySavedWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t\t<el-dropdown-item command=\"original-workflow\">\n\t\t\t\t\t\t\t\t{{ $locale.baseText('executionsList.retryWithOriginalWorkflow') }}\n\t\t\t\t\t\t\t</el-dropdown-item>\n\t\t\t\t\t\t</el-dropdown-menu>\n\t\t\t\t\t</template>\n\t\t\t\t</el-dropdown>\n\t\t\t\t<n8n-icon-button\n\t\t\t\t\t:title=\"$locale.baseText('executionDetails.deleteExecution')\"\n\t\t\t\t\ticon=\"trash\"\n\t\t\t\t\tsize=\"large\"\n\t\t\t\t\ttype=\"tertiary\"\n\t\t\t\t\tdata-test-id=\"execution-preview-delete-button\"\n\t\t\t\t\t@click=\"onDeleteExecution\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t\t<workflow-preview\n\t\t\tmode=\"execution\"\n\t\t\tloaderType=\"spinner\"\n\t\t\t:executionId=\"executionId\"\n\t\t\t:executionMode=\"executionMode\"\n\t\t/>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { ElDropdown } from 'element-plus';\nimport { useExecutionDebugging } from '@/composables/useExecutionDebugging';\nimport { useMessage } from '@/composables/useMessage';\nimport WorkflowPreview from '@/components/WorkflowPreview.vue';\nimport type { IExecutionUIData } from '@/mixins/executionsHelpers';\nimport { executionHelpers } from '@/mixins/executionsHelpers';\nimport { MODAL_CONFIRM, VIEWS } from '@/constants';\n\ntype RetryDropdownRef = InstanceType<typeof ElDropdown> & { hide: () => void };\n\nexport default defineComponent({\n\tname: 'execution-preview',\n\tmixins: [executionHelpers],\n\tcomponents: {\n\t\tElDropdown,\n\t\tWorkflowPreview,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tVIEWS,\n\t\t};\n\t},\n\tsetup() {\n\t\treturn {\n\t\t\t...useMessage(),\n\t\t\t...useExecutionDebugging(),\n\t\t};\n\t},\n\tcomputed: {\n\t\texecutionUIDetails(): IExecutionUIData | null {\n\t\t\treturn this.activeExecution ? this.getExecutionUIDetails(this.activeExecution) : null;\n\t\t},\n\t\texecutionMode(): string {\n\t\t\treturn this.activeExecution?.mode || '';\n\t\t},\n\t\tdebugButtonData(): Record<string, string> {\n\t\t\treturn this.activeExecution?.status === 'success'\n\t\t\t\t? {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.copyToEditor'),\n\t\t\t\t\t\ttype: 'secondary',\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\ttext: this.$locale.baseText('executionsList.debug.button.debugInEditor'),\n\t\t\t\t\t\ttype: 'primary',\n\t\t\t\t };\n\t\t},\n\t},\n\tmethods: {\n\t\tasync onDeleteExecution(): Promise<void> {\n\t\t\tconst deleteConfirmed = await this.confirm(\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.message'),\n\t\t\t\tthis.$locale.baseText('executionDetails.confirmMessage.headline'),\n\t\t\t\t{\n\t\t\t\t\ttype: 'warning',\n\t\t\t\t\tconfirmButtonText: this.$locale.baseText(\n\t\t\t\t\t\t'executionDetails.confirmMessage.confirmButtonText',\n\t\t\t\t\t),\n\t\t\t\t\tcancelButtonText: '',\n\t\t\t\t},\n\t\t\t);\n\t\t\tif (deleteConfirmed !== MODAL_CONFIRM) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$emit('deleteCurrentExecution');\n\t\t},\n\t\thandleRetryClick(command: string): void {\n\t\t\tthis.$emit('retryExecution', { execution: this.activeExecution, command });\n\t\t},\n\t\thandleStopClick(): void {\n\t\t\tthis.$emit('stopExecution');\n\t\t},\n\t\tonRetryButtonBlur(event: FocusEvent): void {\n\t\t\t// Hide dropdown when clicking outside of current document\n\t\t\tconst retryDropdownRef = this.$refs.retryDropdown as RetryDropdownRef | undefined;\n\t\t\tif (retryDropdownRef && event.relatedTarget === null) {\n\t\t\t\tretryDropdownRef.handleClose();\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.previewContainer {\n\tposition: relative;\n\theight: 100%;\n\toverflow: hidden;\n}\n\n.executionDetails {\n\tposition: absolute;\n\tpadding: var(--spacing-m);\n\tpadding-right: var(--spacing-xl);\n\twidth: 100%;\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\ttransition: all 150ms ease-in-out;\n\tpointer-events: none;\n\n\t> div:last-child {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t}\n\n\t& * {\n\t\tpointer-events: all;\n\t}\n}\n\n.spinner {\n\tdiv div {\n\t\twidth: 30px;\n\t\theight: 30px;\n\t\tborder-width: 2px;\n\t}\n}\n\n.running,\n.spinner {\n\tcolor: var(--color-warning);\n}\n.waiting {\n\tcolor: var(--color-secondary);\n}\n.success {\n\tcolor: var(--color-success);\n}\n.error {\n\tcolor: var(--color-danger);\n}\n\n.runningInfo {\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n\tmargin-top: var(--spacing-4xl);\n}\n\n.runningMessage {\n\twidth: 200px;\n\tmargin-top: var(--spacing-l);\n\ttext-align: center;\n}\n\n.debugLink {\n\theight: 42px;\n\tmargin-right: var(--spacing-xs);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","executionHelpers","ElDropdown","WorkflowPreview","VIEWS","useMessage","useExecutionDebugging","_a","MODAL_CONFIRM","command","event","retryDropdownRef","_hoisted_1","_createElementVNode","_resolveComponent","_ctx","_openBlock","_createElementBlock","_normalizeClass","_createVNode","_component_n8n_spinner","_component_n8n_text","_component_n8n_button","_hoisted_2","_createBlock","_createCommentVNode","_createTextVNode","_toDisplayString","_withCtx","_c","_hoisted_3","_component_router_link","_cache","args","_d","_component_el_dropdown","_component_el_dropdown_menu","_component_el_dropdown_item","_hoisted_4","_component_n8n_icon_button","_component_workflow_preview"],"mappings":"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"}
|
package/dist/assets/{ExecutionsInfoAccordion-HQZywboM.js → ExecutionsInfoAccordion-EztI4QOE.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{m as h}from"./pinia-jX93eZRS.js";import{B as v,u as x,t as k,v as E,U as g,a5 as l,d5 as i,_ as m}from"./n8n-ZKR6bms9.js";import{w as T}from"./index
|
|
2
|
-
//# sourceMappingURL=ExecutionsInfoAccordion-
|
|
1
|
+
import{m as h}from"./pinia-jX93eZRS.js";import{B as v,u as x,t as k,v as E,U as g,a5 as l,d5 as i,_ as m}from"./n8n-ZKR6bms9.js";import{w as T}from"./index-RXjMHIPR.js";import{G as I,ag as a,l as C,M as _,O as t,I as u,p as d,S as s,R as n,T as c,a2 as f}from"./vendor-2CfOYFi2.js";const y=I({name:"executions-info-accordion",mixins:[T],props:{initiallyExpanded:{type:Boolean,default:!1}},data(){return{defaultValues:{saveFailedExecutions:"all",saveSuccessfulExecutions:"all",saveManualExecutions:!1},workflowSaveSettings:{saveFailedExecutions:!1,saveSuccessfulExecutions:!1,saveTestExecutions:!1}}},mounted(){this.defaultValues.saveFailedExecutions=this.settingsStore.saveDataErrorExecution,this.defaultValues.saveSuccessfulExecutions=this.settingsStore.saveDataSuccessExecution,this.defaultValues.saveManualExecutions=this.settingsStore.saveManualExecutions,this.updateSettings(this.workflowSettings)},watch:{workflowSettings(e){this.updateSettings(e)}},computed:{...h(E,k,x,v),accordionItems(){return[{id:"productionExecutions",label:this.$locale.baseText("executionsLandingPage.emptyState.accordion.productionExecutions"),icon:this.productionExecutionsIcon.icon,iconColor:this.productionExecutionsIcon.color,tooltip:this.productionExecutionsStatus==="unknown"?this.$locale.baseText("executionsLandingPage.emptyState.accordion.productionExecutionsWarningTooltip"):null},{id:"manualExecutions",label:this.$locale.baseText("executionsLandingPage.emptyState.accordion.testExecutions"),icon:this.workflowSaveSettings.saveTestExecutions?"check":"times",iconColor:this.workflowSaveSettings.saveTestExecutions?"success":"danger"}]},shouldExpandAccordion(){return this.initiallyExpanded?!this.workflowSaveSettings.saveFailedExecutions||!this.workflowSaveSettings.saveSuccessfulExecutions||!this.workflowSaveSettings.saveTestExecutions:!1},productionExecutionsIcon(){return this.productionExecutionsStatus==="saving"?{icon:"check",color:"success"}:this.productionExecutionsStatus==="not-saving"?{icon:"times",color:"danger"}:{icon:"exclamation-triangle",color:"warning"}},productionExecutionsStatus(){return this.workflowSaveSettings.saveSuccessfulExecutions===this.workflowSaveSettings.saveFailedExecutions?this.workflowSaveSettings.saveSuccessfulExecutions?"saving":"not-saving":"unknown"},workflowSettings(){return g(this.workflowsStore.workflowSettings)},accordionIcon(){return!this.workflowSaveSettings.saveTestExecutions||this.productionExecutionsStatus!=="saving"?{icon:"exclamation-triangle",color:"warning"}:null},currentWorkflowId(){return this.workflowsStore.workflowId},isNewWorkflow(){return!this.currentWorkflowId||this.currentWorkflowId===l||this.currentWorkflowId==="new"},workflowName(){return this.workflowsStore.workflowName},currentWorkflowTagIds(){return this.workflowsStore.workflowTags}},methods:{updateSettings(e){this.workflowSaveSettings.saveFailedExecutions=e.saveDataErrorExecution===void 0?this.defaultValues.saveFailedExecutions==="all":e.saveDataErrorExecution==="all",this.workflowSaveSettings.saveSuccessfulExecutions=e.saveDataSuccessExecution===void 0?this.defaultValues.saveSuccessfulExecutions==="all":e.saveDataSuccessExecution==="all",this.workflowSaveSettings.saveTestExecutions=e.saveManualExecutions===void 0?this.defaultValues.saveManualExecutions:e.saveManualExecutions},onAccordionClick(e){e.target instanceof HTMLAnchorElement&&(e.preventDefault(),this.uiStore.openModal(i))},onItemTooltipClick(e,o){e==="productionExecutions"&&o.target instanceof HTMLAnchorElement&&(o.preventDefault(),this.uiStore.openModal(i))},openWorkflowSettings(e){this.uiStore.openModal(i)},async onSaveWorkflowClick(e){let o;this.currentWorkflowId!==l?o=this.currentWorkflowId:this.$route.params.name&&this.$route.params.name!=="new"&&(o=this.$route.params.name),await this.saveCurrentWorkflow({id:o,name:this.workflowName,tags:this.currentWorkflowTagIds})&&await this.settingsStore.fetchPromptsData()}}}),W="_accordion_67fqb_5",b="_disabled_67fqb_31",$={accordion:W,disabled:b},L={class:"mt-2xs"};function M(e,o,w,P,N,V){const r=a("n8n-link"),S=a("n8n-tooltip"),p=a("n8n-info-accordion");return C(),_(p,{class:u([e.$style.accordion,"mt-2xl"]),title:e.$locale.baseText("executionsLandingPage.emptyState.accordion.title"),items:e.accordionItems,initiallyExpanded:e.shouldExpandAccordion,headerIcon:e.accordionIcon,"onClick:body":e.onAccordionClick,onTooltipClick:e.onItemTooltipClick},{customContent:t(()=>[d("footer",L,[s(n(e.$locale.baseText("executionsLandingPage.emptyState.accordion.footer"))+" ",1),c(S,{disabled:!e.isNewWorkflow},{content:t(()=>[d("div",null,[c(r,{onClick:f(e.onSaveWorkflowClick,["prevent"])},{default:t(()=>[s(n(e.$locale.baseText("executionsLandingPage.emptyState.accordion.footer.tooltipLink")),1)]),_:1},8,["onClick"]),s(" "+n(e.$locale.baseText("executionsLandingPage.emptyState.accordion.footer.tooltipText")),1)])]),default:t(()=>[c(r,{onClick:f(e.openWorkflowSettings,["prevent"]),class:u({[e.$style.disabled]:e.isNewWorkflow}),size:"small"},{default:t(()=>[s(n(e.$locale.baseText("executionsLandingPage.emptyState.accordion.footer.settingsLink")),1)]),_:1},8,["onClick","class"])]),_:1},8,["disabled"])])]),_:1},8,["class","title","items","initiallyExpanded","headerIcon","onClick:body","onTooltipClick"])}const D={$style:$},R=m(y,[["render",M],["__cssModules",D]]);export{R as E};
|
|
2
|
+
//# sourceMappingURL=ExecutionsInfoAccordion-EztI4QOE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionsInfoAccordion-HQZywboM.js","sources":["../../src/components/ExecutionsView/ExecutionsInfoAccordion.vue"],"sourcesContent":["<template>\n\t<n8n-info-accordion\n\t\t:class=\"[$style.accordion, 'mt-2xl']\"\n\t\t:title=\"$locale.baseText('executionsLandingPage.emptyState.accordion.title')\"\n\t\t:items=\"accordionItems\"\n\t\t:initiallyExpanded=\"shouldExpandAccordion\"\n\t\t:headerIcon=\"accordionIcon\"\n\t\t@click:body=\"onAccordionClick\"\n\t\t@tooltipClick=\"onItemTooltipClick\"\n\t>\n\t\t<template #customContent>\n\t\t\t<footer class=\"mt-2xs\">\n\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.accordion.footer') }}\n\t\t\t\t<n8n-tooltip :disabled=\"!isNewWorkflow\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<n8n-link @click.prevent=\"onSaveWorkflowClick\">{{\n\t\t\t\t\t\t\t\t$locale.baseText('executionsLandingPage.emptyState.accordion.footer.tooltipLink')\n\t\t\t\t\t\t\t}}</n8n-link>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t$locale.baseText('executionsLandingPage.emptyState.accordion.footer.tooltipText')\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-link\n\t\t\t\t\t\t@click.prevent=\"openWorkflowSettings\"\n\t\t\t\t\t\t:class=\"{ [$style.disabled]: isNewWorkflow }\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.accordion.footer.settingsLink') }}\n\t\t\t\t\t</n8n-link>\n\t\t\t\t</n8n-tooltip>\n\t\t\t</footer>\n\t\t</template>\n\t</n8n-info-accordion>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useRootStore } from '@/stores/n8nRoot.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { PLACEHOLDER_EMPTY_WORKFLOW_ID, WORKFLOW_SETTINGS_MODAL_KEY } from '@/constants';\nimport type { IWorkflowSettings } from 'n8n-workflow';\nimport { deepCopy } from 'n8n-workflow';\nimport { workflowHelpers } from '@/mixins/workflowHelpers';\n\ninterface IWorkflowSaveSettings {\n\tsaveFailedExecutions: boolean;\n\tsaveSuccessfulExecutions: boolean;\n\tsaveTestExecutions: boolean;\n}\n\nexport default defineComponent({\n\tname: 'executions-info-accordion',\n\tmixins: [workflowHelpers],\n\tprops: {\n\t\tinitiallyExpanded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tdefaultValues: {\n\t\t\t\tsaveFailedExecutions: 'all',\n\t\t\t\tsaveSuccessfulExecutions: 'all',\n\t\t\t\tsaveManualExecutions: false,\n\t\t\t},\n\t\t\tworkflowSaveSettings: {\n\t\t\t\tsaveFailedExecutions: false,\n\t\t\t\tsaveSuccessfulExecutions: false,\n\t\t\t\tsaveTestExecutions: false,\n\t\t\t} as IWorkflowSaveSettings,\n\t\t};\n\t},\n\tmounted() {\n\t\tthis.defaultValues.saveFailedExecutions = this.settingsStore.saveDataErrorExecution;\n\t\tthis.defaultValues.saveSuccessfulExecutions = this.settingsStore.saveDataSuccessExecution;\n\t\tthis.defaultValues.saveManualExecutions = this.settingsStore.saveManualExecutions;\n\t\tthis.updateSettings(this.workflowSettings);\n\t},\n\twatch: {\n\t\tworkflowSettings(newSettings: IWorkflowSettings) {\n\t\t\tthis.updateSettings(newSettings);\n\t\t},\n\t},\n\tcomputed: {\n\t\t...mapStores(useRootStore, useSettingsStore, useUIStore, useWorkflowsStore),\n\t\taccordionItems(): object[] {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: 'productionExecutions',\n\t\t\t\t\tlabel: this.$locale.baseText(\n\t\t\t\t\t\t'executionsLandingPage.emptyState.accordion.productionExecutions',\n\t\t\t\t\t),\n\t\t\t\t\ticon: this.productionExecutionsIcon.icon,\n\t\t\t\t\ticonColor: this.productionExecutionsIcon.color,\n\t\t\t\t\ttooltip:\n\t\t\t\t\t\tthis.productionExecutionsStatus === 'unknown'\n\t\t\t\t\t\t\t? this.$locale.baseText(\n\t\t\t\t\t\t\t\t\t'executionsLandingPage.emptyState.accordion.productionExecutionsWarningTooltip',\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'manualExecutions',\n\t\t\t\t\tlabel: this.$locale.baseText('executionsLandingPage.emptyState.accordion.testExecutions'),\n\t\t\t\t\ticon: this.workflowSaveSettings.saveTestExecutions ? 'check' : 'times',\n\t\t\t\t\ticonColor: this.workflowSaveSettings.saveTestExecutions ? 'success' : 'danger',\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\tshouldExpandAccordion(): boolean {\n\t\t\tif (!this.initiallyExpanded) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t!this.workflowSaveSettings.saveFailedExecutions ||\n\t\t\t\t!this.workflowSaveSettings.saveSuccessfulExecutions ||\n\t\t\t\t!this.workflowSaveSettings.saveTestExecutions\n\t\t\t);\n\t\t},\n\t\tproductionExecutionsIcon(): { icon: string; color: string } {\n\t\t\tif (this.productionExecutionsStatus === 'saving') {\n\t\t\t\treturn { icon: 'check', color: 'success' };\n\t\t\t} else if (this.productionExecutionsStatus === 'not-saving') {\n\t\t\t\treturn { icon: 'times', color: 'danger' };\n\t\t\t}\n\t\t\treturn { icon: 'exclamation-triangle', color: 'warning' };\n\t\t},\n\t\tproductionExecutionsStatus(): string {\n\t\t\tif (\n\t\t\t\tthis.workflowSaveSettings.saveSuccessfulExecutions ===\n\t\t\t\tthis.workflowSaveSettings.saveFailedExecutions\n\t\t\t) {\n\t\t\t\tif (this.workflowSaveSettings.saveSuccessfulExecutions) {\n\t\t\t\t\treturn 'saving';\n\t\t\t\t}\n\t\t\t\treturn 'not-saving';\n\t\t\t} else {\n\t\t\t\treturn 'unknown';\n\t\t\t}\n\t\t},\n\t\tworkflowSettings(): IWorkflowSettings {\n\t\t\tconst workflowSettings = deepCopy(this.workflowsStore.workflowSettings);\n\t\t\treturn workflowSettings;\n\t\t},\n\t\taccordionIcon(): { icon: string; color: string } | null {\n\t\t\tif (\n\t\t\t\t!this.workflowSaveSettings.saveTestExecutions ||\n\t\t\t\tthis.productionExecutionsStatus !== 'saving'\n\t\t\t) {\n\t\t\t\treturn { icon: 'exclamation-triangle', color: 'warning' };\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tcurrentWorkflowId(): string {\n\t\t\treturn this.workflowsStore.workflowId;\n\t\t},\n\t\tisNewWorkflow(): boolean {\n\t\t\treturn (\n\t\t\t\t!this.currentWorkflowId ||\n\t\t\t\tthis.currentWorkflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID ||\n\t\t\t\tthis.currentWorkflowId === 'new'\n\t\t\t);\n\t\t},\n\t\tworkflowName(): string {\n\t\t\treturn this.workflowsStore.workflowName;\n\t\t},\n\t\tcurrentWorkflowTagIds(): string[] {\n\t\t\treturn this.workflowsStore.workflowTags;\n\t\t},\n\t},\n\tmethods: {\n\t\tupdateSettings(workflowSettings: IWorkflowSettings): void {\n\t\t\tthis.workflowSaveSettings.saveFailedExecutions =\n\t\t\t\tworkflowSettings.saveDataErrorExecution === undefined\n\t\t\t\t\t? this.defaultValues.saveFailedExecutions === 'all'\n\t\t\t\t\t: workflowSettings.saveDataErrorExecution === 'all';\n\t\t\tthis.workflowSaveSettings.saveSuccessfulExecutions =\n\t\t\t\tworkflowSettings.saveDataSuccessExecution === undefined\n\t\t\t\t\t? this.defaultValues.saveSuccessfulExecutions === 'all'\n\t\t\t\t\t: workflowSettings.saveDataSuccessExecution === 'all';\n\t\t\tthis.workflowSaveSettings.saveTestExecutions =\n\t\t\t\tworkflowSettings.saveManualExecutions === undefined\n\t\t\t\t\t? this.defaultValues.saveManualExecutions\n\t\t\t\t\t: (workflowSettings.saveManualExecutions as boolean);\n\t\t},\n\t\tonAccordionClick(event: MouseEvent): void {\n\t\t\tif (event.target instanceof HTMLAnchorElement) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);\n\t\t\t}\n\t\t},\n\t\tonItemTooltipClick(item: string, event: MouseEvent): void {\n\t\t\tif (item === 'productionExecutions' && event.target instanceof HTMLAnchorElement) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);\n\t\t\t}\n\t\t},\n\t\topenWorkflowSettings(event: MouseEvent): void {\n\t\t\tthis.uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);\n\t\t},\n\t\tasync onSaveWorkflowClick(event: MouseEvent): void {\n\t\t\tlet currentId = undefined;\n\t\t\tif (this.currentWorkflowId !== PLACEHOLDER_EMPTY_WORKFLOW_ID) {\n\t\t\t\tcurrentId = this.currentWorkflowId;\n\t\t\t} else if (this.$route.params.name && this.$route.params.name !== 'new') {\n\t\t\t\tcurrentId = this.$route.params.name;\n\t\t\t}\n\t\t\tconst saved = await this.saveCurrentWorkflow({\n\t\t\t\tid: currentId,\n\t\t\t\tname: this.workflowName,\n\t\t\t\ttags: this.currentWorkflowTagIds,\n\t\t\t});\n\t\t\tif (saved) await this.settingsStore.fetchPromptsData();\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.accordion {\n\tbackground: none;\n\twidth: 320px;\n\n\t// Accordion header\n\t& > div:nth-child(1) {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tpadding: var(--spacing-xs);\n\t\twidth: 100%;\n\t\tuser-select: none;\n\t\tcolor: var(--color-text-base) !important;\n\t}\n\n\t// Accordion description\n\t& > div:nth-child(2) {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t\tpadding: 0 var(--spacing-l) var(--spacing-s) !important;\n\n\t\tspan {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\tfooter {\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tfont-size: var(--font-size-2xs);\n\t}\n\n\t.disabled a {\n\t\tcolor: currentColor;\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\ttext-decoration: none;\n\t}\n}\n</style>\n"],"names":["_sfc_main","defineComponent","workflowHelpers","newSettings","mapStores","useRootStore","useSettingsStore","useUIStore","useWorkflowsStore","deepCopy","PLACEHOLDER_EMPTY_WORKFLOW_ID","workflowSettings","event","WORKFLOW_SETTINGS_MODAL_KEY","item","currentId","_component_n8n_info_accordion","_resolveComponent","_openBlock","_createBlock","_normalizeClass","_ctx","_createElementVNode","_hoisted_1","_createTextVNode","_toDisplayString","_createVNode","_component_n8n_tooltip","_withCtx","_component_n8n_link","_withModifiers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExecutionsInfoAccordion-EztI4QOE.js","sources":["../../src/components/ExecutionsView/ExecutionsInfoAccordion.vue"],"sourcesContent":["<template>\n\t<n8n-info-accordion\n\t\t:class=\"[$style.accordion, 'mt-2xl']\"\n\t\t:title=\"$locale.baseText('executionsLandingPage.emptyState.accordion.title')\"\n\t\t:items=\"accordionItems\"\n\t\t:initiallyExpanded=\"shouldExpandAccordion\"\n\t\t:headerIcon=\"accordionIcon\"\n\t\t@click:body=\"onAccordionClick\"\n\t\t@tooltipClick=\"onItemTooltipClick\"\n\t>\n\t\t<template #customContent>\n\t\t\t<footer class=\"mt-2xs\">\n\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.accordion.footer') }}\n\t\t\t\t<n8n-tooltip :disabled=\"!isNewWorkflow\">\n\t\t\t\t\t<template #content>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<n8n-link @click.prevent=\"onSaveWorkflowClick\">{{\n\t\t\t\t\t\t\t\t$locale.baseText('executionsLandingPage.emptyState.accordion.footer.tooltipLink')\n\t\t\t\t\t\t\t}}</n8n-link>\n\t\t\t\t\t\t\t{{\n\t\t\t\t\t\t\t\t$locale.baseText('executionsLandingPage.emptyState.accordion.footer.tooltipText')\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<n8n-link\n\t\t\t\t\t\t@click.prevent=\"openWorkflowSettings\"\n\t\t\t\t\t\t:class=\"{ [$style.disabled]: isNewWorkflow }\"\n\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.accordion.footer.settingsLink') }}\n\t\t\t\t\t</n8n-link>\n\t\t\t\t</n8n-tooltip>\n\t\t\t</footer>\n\t\t</template>\n\t</n8n-info-accordion>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent } from 'vue';\nimport { mapStores } from 'pinia';\nimport { useRootStore } from '@/stores/n8nRoot.store';\nimport { useSettingsStore } from '@/stores/settings.store';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { PLACEHOLDER_EMPTY_WORKFLOW_ID, WORKFLOW_SETTINGS_MODAL_KEY } from '@/constants';\nimport type { IWorkflowSettings } from 'n8n-workflow';\nimport { deepCopy } from 'n8n-workflow';\nimport { workflowHelpers } from '@/mixins/workflowHelpers';\n\ninterface IWorkflowSaveSettings {\n\tsaveFailedExecutions: boolean;\n\tsaveSuccessfulExecutions: boolean;\n\tsaveTestExecutions: boolean;\n}\n\nexport default defineComponent({\n\tname: 'executions-info-accordion',\n\tmixins: [workflowHelpers],\n\tprops: {\n\t\tinitiallyExpanded: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tdefaultValues: {\n\t\t\t\tsaveFailedExecutions: 'all',\n\t\t\t\tsaveSuccessfulExecutions: 'all',\n\t\t\t\tsaveManualExecutions: false,\n\t\t\t},\n\t\t\tworkflowSaveSettings: {\n\t\t\t\tsaveFailedExecutions: false,\n\t\t\t\tsaveSuccessfulExecutions: false,\n\t\t\t\tsaveTestExecutions: false,\n\t\t\t} as IWorkflowSaveSettings,\n\t\t};\n\t},\n\tmounted() {\n\t\tthis.defaultValues.saveFailedExecutions = this.settingsStore.saveDataErrorExecution;\n\t\tthis.defaultValues.saveSuccessfulExecutions = this.settingsStore.saveDataSuccessExecution;\n\t\tthis.defaultValues.saveManualExecutions = this.settingsStore.saveManualExecutions;\n\t\tthis.updateSettings(this.workflowSettings);\n\t},\n\twatch: {\n\t\tworkflowSettings(newSettings: IWorkflowSettings) {\n\t\t\tthis.updateSettings(newSettings);\n\t\t},\n\t},\n\tcomputed: {\n\t\t...mapStores(useRootStore, useSettingsStore, useUIStore, useWorkflowsStore),\n\t\taccordionItems(): object[] {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tid: 'productionExecutions',\n\t\t\t\t\tlabel: this.$locale.baseText(\n\t\t\t\t\t\t'executionsLandingPage.emptyState.accordion.productionExecutions',\n\t\t\t\t\t),\n\t\t\t\t\ticon: this.productionExecutionsIcon.icon,\n\t\t\t\t\ticonColor: this.productionExecutionsIcon.color,\n\t\t\t\t\ttooltip:\n\t\t\t\t\t\tthis.productionExecutionsStatus === 'unknown'\n\t\t\t\t\t\t\t? this.$locale.baseText(\n\t\t\t\t\t\t\t\t\t'executionsLandingPage.emptyState.accordion.productionExecutionsWarningTooltip',\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tid: 'manualExecutions',\n\t\t\t\t\tlabel: this.$locale.baseText('executionsLandingPage.emptyState.accordion.testExecutions'),\n\t\t\t\t\ticon: this.workflowSaveSettings.saveTestExecutions ? 'check' : 'times',\n\t\t\t\t\ticonColor: this.workflowSaveSettings.saveTestExecutions ? 'success' : 'danger',\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\tshouldExpandAccordion(): boolean {\n\t\t\tif (!this.initiallyExpanded) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn (\n\t\t\t\t!this.workflowSaveSettings.saveFailedExecutions ||\n\t\t\t\t!this.workflowSaveSettings.saveSuccessfulExecutions ||\n\t\t\t\t!this.workflowSaveSettings.saveTestExecutions\n\t\t\t);\n\t\t},\n\t\tproductionExecutionsIcon(): { icon: string; color: string } {\n\t\t\tif (this.productionExecutionsStatus === 'saving') {\n\t\t\t\treturn { icon: 'check', color: 'success' };\n\t\t\t} else if (this.productionExecutionsStatus === 'not-saving') {\n\t\t\t\treturn { icon: 'times', color: 'danger' };\n\t\t\t}\n\t\t\treturn { icon: 'exclamation-triangle', color: 'warning' };\n\t\t},\n\t\tproductionExecutionsStatus(): string {\n\t\t\tif (\n\t\t\t\tthis.workflowSaveSettings.saveSuccessfulExecutions ===\n\t\t\t\tthis.workflowSaveSettings.saveFailedExecutions\n\t\t\t) {\n\t\t\t\tif (this.workflowSaveSettings.saveSuccessfulExecutions) {\n\t\t\t\t\treturn 'saving';\n\t\t\t\t}\n\t\t\t\treturn 'not-saving';\n\t\t\t} else {\n\t\t\t\treturn 'unknown';\n\t\t\t}\n\t\t},\n\t\tworkflowSettings(): IWorkflowSettings {\n\t\t\tconst workflowSettings = deepCopy(this.workflowsStore.workflowSettings);\n\t\t\treturn workflowSettings;\n\t\t},\n\t\taccordionIcon(): { icon: string; color: string } | null {\n\t\t\tif (\n\t\t\t\t!this.workflowSaveSettings.saveTestExecutions ||\n\t\t\t\tthis.productionExecutionsStatus !== 'saving'\n\t\t\t) {\n\t\t\t\treturn { icon: 'exclamation-triangle', color: 'warning' };\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tcurrentWorkflowId(): string {\n\t\t\treturn this.workflowsStore.workflowId;\n\t\t},\n\t\tisNewWorkflow(): boolean {\n\t\t\treturn (\n\t\t\t\t!this.currentWorkflowId ||\n\t\t\t\tthis.currentWorkflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID ||\n\t\t\t\tthis.currentWorkflowId === 'new'\n\t\t\t);\n\t\t},\n\t\tworkflowName(): string {\n\t\t\treturn this.workflowsStore.workflowName;\n\t\t},\n\t\tcurrentWorkflowTagIds(): string[] {\n\t\t\treturn this.workflowsStore.workflowTags;\n\t\t},\n\t},\n\tmethods: {\n\t\tupdateSettings(workflowSettings: IWorkflowSettings): void {\n\t\t\tthis.workflowSaveSettings.saveFailedExecutions =\n\t\t\t\tworkflowSettings.saveDataErrorExecution === undefined\n\t\t\t\t\t? this.defaultValues.saveFailedExecutions === 'all'\n\t\t\t\t\t: workflowSettings.saveDataErrorExecution === 'all';\n\t\t\tthis.workflowSaveSettings.saveSuccessfulExecutions =\n\t\t\t\tworkflowSettings.saveDataSuccessExecution === undefined\n\t\t\t\t\t? this.defaultValues.saveSuccessfulExecutions === 'all'\n\t\t\t\t\t: workflowSettings.saveDataSuccessExecution === 'all';\n\t\t\tthis.workflowSaveSettings.saveTestExecutions =\n\t\t\t\tworkflowSettings.saveManualExecutions === undefined\n\t\t\t\t\t? this.defaultValues.saveManualExecutions\n\t\t\t\t\t: (workflowSettings.saveManualExecutions as boolean);\n\t\t},\n\t\tonAccordionClick(event: MouseEvent): void {\n\t\t\tif (event.target instanceof HTMLAnchorElement) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);\n\t\t\t}\n\t\t},\n\t\tonItemTooltipClick(item: string, event: MouseEvent): void {\n\t\t\tif (item === 'productionExecutions' && event.target instanceof HTMLAnchorElement) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);\n\t\t\t}\n\t\t},\n\t\topenWorkflowSettings(event: MouseEvent): void {\n\t\t\tthis.uiStore.openModal(WORKFLOW_SETTINGS_MODAL_KEY);\n\t\t},\n\t\tasync onSaveWorkflowClick(event: MouseEvent): void {\n\t\t\tlet currentId = undefined;\n\t\t\tif (this.currentWorkflowId !== PLACEHOLDER_EMPTY_WORKFLOW_ID) {\n\t\t\t\tcurrentId = this.currentWorkflowId;\n\t\t\t} else if (this.$route.params.name && this.$route.params.name !== 'new') {\n\t\t\t\tcurrentId = this.$route.params.name;\n\t\t\t}\n\t\t\tconst saved = await this.saveCurrentWorkflow({\n\t\t\t\tid: currentId,\n\t\t\t\tname: this.workflowName,\n\t\t\t\ttags: this.currentWorkflowTagIds,\n\t\t\t});\n\t\t\tif (saved) await this.settingsStore.fetchPromptsData();\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.accordion {\n\tbackground: none;\n\twidth: 320px;\n\n\t// Accordion header\n\t& > div:nth-child(1) {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tpadding: var(--spacing-xs);\n\t\twidth: 100%;\n\t\tuser-select: none;\n\t\tcolor: var(--color-text-base) !important;\n\t}\n\n\t// Accordion description\n\t& > div:nth-child(2) {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\twidth: 100%;\n\t\tpadding: 0 var(--spacing-l) var(--spacing-s) !important;\n\n\t\tspan {\n\t\t\twidth: 100%;\n\t\t}\n\t}\n\n\tfooter {\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tfont-size: var(--font-size-2xs);\n\t}\n\n\t.disabled a {\n\t\tcolor: currentColor;\n\t\tcursor: not-allowed;\n\t\topacity: 0.5;\n\t\ttext-decoration: none;\n\t}\n}\n</style>\n"],"names":["_sfc_main","defineComponent","workflowHelpers","newSettings","mapStores","useRootStore","useSettingsStore","useUIStore","useWorkflowsStore","deepCopy","PLACEHOLDER_EMPTY_WORKFLOW_ID","workflowSettings","event","WORKFLOW_SETTINGS_MODAL_KEY","item","currentId","_component_n8n_info_accordion","_resolveComponent","_openBlock","_createBlock","_normalizeClass","_ctx","_createElementVNode","_hoisted_1","_createTextVNode","_toDisplayString","_createVNode","_component_n8n_tooltip","_withCtx","_component_n8n_link","_withModifiers"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{B as _,u as f,a5 as w,V as p,_ as x}from"./n8n-ZKR6bms9.js";import{m as h}from"./pinia-jX93eZRS.js";import{E as k}from"./ExecutionsInfoAccordion-
|
|
2
|
-
//# sourceMappingURL=ExecutionsLandingPage-
|
|
1
|
+
import{B as _,u as f,a5 as w,V as p,_ as x}from"./n8n-ZKR6bms9.js";import{m as h}from"./pinia-jX93eZRS.js";import{E as k}from"./ExecutionsInfoAccordion-EztI4QOE.js";import{G as S,ag as t,l as n,m as s,I as l,T as o,O as r,Q as y,S as i,R as a}from"./vendor-2CfOYFi2.js";import"./lodash-es-s_m9YyW7.js";import"./axios-QLjAsgXu.js";import"./flatted-jPn12Tq4.js";import"./esprima-next-ulPLCZ1Z.js";import"./luxon-ZRIU05qF.js";import"./@vueuse/core-viEZCtbZ.js";import"./uuid-McvpxQtQ.js";import"./vue-i18n-2T2QU_2c.js";import"./@n8n/permissions-8yMqUF1Y.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"./@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"./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";const C=S({name:"executions-landing-page",components:{ExecutionsInfoAccordion:k},computed:{...h(f,_),executionCount(){return this.workflowsStore.currentWorkflowExecutions.length},containsTrigger(){return this.workflowsStore.workflowTriggerNodes.length>0}},methods:{onSetupFirstStep(e){this.uiStore.addFirstStepOnLoad=!0;const m=this.getWorkflowRoute();this.$router.push(m)},getWorkflowRoute(){const e=this.workflowsStore.workflowId||this.$route.params.name;return e===w?{name:p.NEW_WORKFLOW,params:{}}:{name:p.WORKFLOW,params:{name:e}}}}}),$="_container_liidw_5",T="_messageContainer_liidw_15",W="_icon_liidw_26",E={container:$,messageContainer:T,icon:W},L={key:0},b={key:1};function O(e,m,v,I,P,F){const c=t("n8n-heading"),u=t("n8n-text"),d=t("n8n-button"),g=t("executions-info-accordion");return n(),s("div",{class:l(["workflow-executions-container",e.$style.container])},[e.executionCount===0?(n(),s("div",{key:0,class:l([e.$style.messageContainer,e.$style.noExecutionsMessage])},[e.containsTrigger?(n(),s("div",b,[o(c,{tag:"h2",size:"xlarge",color:"text-dark",class:"mb-2xs"},{default:r(()=>[i(a(e.$locale.baseText("executionsLandingPage.emptyState.heading")),1)]),_:1}),o(g)])):(n(),s("div",L,[o(c,{tag:"h2",size:"xlarge",color:"text-dark",class:"mb-2xs"},{default:r(()=>[i(a(e.$locale.baseText("executionsLandingPage.emptyState.noTrigger.heading")),1)]),_:1}),o(u,{size:"medium"},{default:r(()=>[i(a(e.$locale.baseText("executionsLandingPage.emptyState.message")),1)]),_:1}),o(d,{class:"mt-l",type:"tertiary",size:"large",onClick:e.onSetupFirstStep},{default:r(()=>[i(a(e.$locale.baseText("executionsLandingPage.emptyState.noTrigger.buttonText")),1)]),_:1},8,["onClick"])]))],2)):y("",!0)],2)}const R={$style:E},le=x(C,[["render",O],["__cssModules",R]]);export{le as default};
|
|
2
|
+
//# sourceMappingURL=ExecutionsLandingPage-ygQGHLu2.js.map
|
package/dist/assets/{ExecutionsLandingPage-FEiybFSK.js.map → ExecutionsLandingPage-ygQGHLu2.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExecutionsLandingPage-
|
|
1
|
+
{"version":3,"file":"ExecutionsLandingPage-ygQGHLu2.js","sources":["../../src/components/ExecutionsView/ExecutionsLandingPage.vue"],"sourcesContent":["<template>\n\t<div :class=\"['workflow-executions-container', $style.container]\">\n\t\t<div v-if=\"executionCount === 0\" :class=\"[$style.messageContainer, $style.noExecutionsMessage]\">\n\t\t\t<div v-if=\"!containsTrigger\">\n\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" color=\"text-dark\" class=\"mb-2xs\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.noTrigger.heading') }}\n\t\t\t\t</n8n-heading>\n\t\t\t\t<n8n-text size=\"medium\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.message') }}\n\t\t\t\t</n8n-text>\n\t\t\t\t<n8n-button class=\"mt-l\" type=\"tertiary\" size=\"large\" @click=\"onSetupFirstStep\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.noTrigger.buttonText') }}\n\t\t\t\t</n8n-button>\n\t\t\t</div>\n\t\t\t<div v-else>\n\t\t\t\t<n8n-heading tag=\"h2\" size=\"xlarge\" color=\"text-dark\" class=\"mb-2xs\">\n\t\t\t\t\t{{ $locale.baseText('executionsLandingPage.emptyState.heading') }}\n\t\t\t\t</n8n-heading>\n\t\t\t\t<executions-info-accordion />\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<script lang=\"ts\">\nimport { PLACEHOLDER_EMPTY_WORKFLOW_ID, VIEWS } from '@/constants';\nimport { useUIStore } from '@/stores/ui.store';\nimport { useWorkflowsStore } from '@/stores/workflows.store';\nimport { mapStores } from 'pinia';\nimport { defineComponent } from 'vue';\nimport ExecutionsInfoAccordion from './ExecutionsInfoAccordion.vue';\n\nexport default defineComponent({\n\tname: 'executions-landing-page',\n\tcomponents: {\n\t\tExecutionsInfoAccordion,\n\t},\n\tcomputed: {\n\t\t...mapStores(useUIStore, useWorkflowsStore),\n\t\texecutionCount(): number {\n\t\t\treturn this.workflowsStore.currentWorkflowExecutions.length;\n\t\t},\n\t\tcontainsTrigger(): boolean {\n\t\t\treturn this.workflowsStore.workflowTriggerNodes.length > 0;\n\t\t},\n\t},\n\tmethods: {\n\t\tonSetupFirstStep(event: MouseEvent): void {\n\t\t\tthis.uiStore.addFirstStepOnLoad = true;\n\t\t\tconst workflowRoute = this.getWorkflowRoute();\n\t\t\tvoid this.$router.push(workflowRoute);\n\t\t},\n\t\tgetWorkflowRoute(): { name: string; params: {} } {\n\t\t\tconst workflowId = this.workflowsStore.workflowId || this.$route.params.name;\n\t\t\tif (workflowId === PLACEHOLDER_EMPTY_WORKFLOW_ID) {\n\t\t\t\treturn { name: VIEWS.NEW_WORKFLOW, params: {} };\n\t\t\t} else {\n\t\t\t\treturn { name: VIEWS.WORKFLOW, params: { name: workflowId } };\n\t\t\t}\n\t\t},\n\t},\n});\n</script>\n\n<style module lang=\"scss\">\n.container {\n\twidth: 100%;\n\theight: 100%;\n\tflex: 1;\n\tbackground-color: var(--color-background-light);\n\tdisplay: flex;\n\tflex-direction: column;\n\talign-items: center;\n}\n\n.messageContainer {\n\tmargin-top: var(--spacing-4xl);\n\tcolor: var(--color-text-base);\n\n\tdiv {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\ttext-align: center;\n\t}\n}\n\n.icon {\n\tfont-size: 24px;\n\tcolor: var(--color-foreground-dark);\n}\n</style>\n"],"names":["_sfc_main","defineComponent","ExecutionsInfoAccordion","mapStores","useUIStore","useWorkflowsStore","event","workflowRoute","workflowId","PLACEHOLDER_EMPTY_WORKFLOW_ID","VIEWS","_component_executions_info_accordion","_resolveComponent","_normalizeClass","_ctx","_openBlock","_createElementBlock","_hoisted_2","_createVNode","_component_n8n_heading","_hoisted_1","_withCtx","_component_n8n_button"],"mappings":"+pCAgCA,MAAAA,EAAeC,EAAgB,CAC9B,KAAM,0BACN,WAAY,CACX,wBAAAC,CACD,EACA,SAAU,CACT,GAAGC,EAAUC,EAAYC,CAAiB,EAC1C,gBAAyB,CACjB,OAAA,KAAK,eAAe,0BAA0B,MACtD,EACA,iBAA2B,CACnB,OAAA,KAAK,eAAe,qBAAqB,OAAS,CAC1D,CACD,EACA,QAAS,CACR,iBAAiBC,EAAyB,CACzC,KAAK,QAAQ,mBAAqB,GAC5B,MAAAC,EAAgB,KAAK,mBACtB,KAAK,QAAQ,KAAKA,CAAa,CACrC,EACA,kBAAiD,CAChD,MAAMC,EAAa,KAAK,eAAe,YAAc,KAAK,OAAO,OAAO,KACxE,OAAIA,IAAeC,EACX,CAAE,KAAMC,EAAM,aAAc,OAAQ,CAAG,CAAA,EAEvC,CAAE,KAAMA,EAAM,SAAU,OAAQ,CAAE,KAAMF,GAEjD,CACD,CACD,CAAC,4NAxCMG,EAAAC,EAAA,2BAAA,4BAnBMC,EAAc,CAAA,gCAAAC,EAAA,OAAA,SAAA,CAAA,CAAA,EAAA,CAAcA,EAAA,iBAAA,GAAAC,EAAA,EAAAC,EAAG,MAAO,CAAA,IAAA,QACpCH,EAAe,CAAAC,EAAA,OAAA,iBAAAA,EAAA,OAAA,mBAAA,CAAA,CAAA,EAAA,CAC1BA,EAAA,iBAUDC,EACsB,EAAAC,EAAA,MAAAC,EAAA,CAAAC,EAAMC,EAAQ,CAAC,IAAK,KAAa,KAAK,SAAA,MAAA,qHAG3D,EAAA,CAAA,CAAA,WAdAJ,EAAqB,EAAAC,EAAA,MAAAI,EAAA,CAAAF,EAAMC,EAAQ,CAAC,IAAK,KAAa,KAAK,SAAA,MAAA,+HAG3D,EAAA,CAAA,CAAA,YACI,QAAQ,EAAA,CAAA,QAAAE,EAAA,IAAA,0EAEZ,EAAA,CAAA,CAAA,IAA8BC,EAAU,CAAC,MAAK,OAAS,KAAA,WAAA,KAAA,6IAIxD,EAAA,EAAA,CAAA,SAAA,CAAA,CAAA,CAAA"}
|