UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 82.4 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/NodeCreation-DNFdl2Qg.js","assets/_plugin-vue_export-helper-Dm3nT7Ps.js","assets/src-wni2AGA3.js","assets/CalendarDate-CgcSr8SP.js","assets/_MapCache-CUJwh2qp.js","assets/vue.runtime.esm-bundler-D9KLAxvJ.js","assets/chunk-DxpFCn6T.js","assets/sanitize-html-my1ogl5v.js","assets/en-QTm5tviq.js","assets/src-DDk97x4F.css","assets/canvas.eventBus-C-z2MFNA.js","assets/constants-CIP7tKq1.js","assets/merge-BqvKZ38d.js","assets/expression-runtime-stub-DDm9ecP_.js","assets/users.store-BHWXXawf.js","assets/_baseOrderBy-CaKruttV.js","assets/dateformat-CYfyw486.js","assets/useDebounce-CTeIt-cH.js","assets/nodeIcon-BFJyt77y.js","assets/canvas.utils-BMxgA7cX.js","assets/KeyboardShortcutTooltip-CrTbwZwY.js","assets/KeyboardShortcutTooltip-Bz9DcSWs.css","assets/useCalloutHelpers-BtD3kQKI.js","assets/assistant.store-BOJw9cI0.js","assets/chatPanel.store-N5nWYKck.js","assets/setupPanel.store-D0Kh-_X7.js","assets/useActions-CIZqXgqI.js","assets/useNodeCreatorShortcutCoachmark-jEnIrxlM.js","assets/NodeCreation-BiKEdAPr.css","assets/NodeDetailsView-BetCs_GU.js","assets/RunData-CqDg79Fs.js","assets/uniqBy-CvYQiCPx.js","assets/NDVEmptyState-DMWlSoOG.js","assets/NDVEmptyState-wmCtLnDW.css","assets/vue-json-pretty-CBkxkEgX.js","assets/useRunWorkflow-BbbTafql.js","assets/useCanvasOperations-CI7Ylcwf.js","assets/core-M4qnWLDf.js","assets/core-E7Rk_lqW.js","assets/xml-DDaPr_bf.js","assets/VueMarkdown-B-lNBlW1.js","assets/usePinnedData-bxdhY-Ce.js","assets/executions.store-CZbPSd3l.js","assets/templateTransforms-Bcjcx-gt.js","assets/nodeTransforms-DgA3LbBA.js","assets/useCanvasOperations-C5vD0y-x.css","assets/retry-CLoylW83.js","assets/pushConnection.store-L5aofOKN.js","assets/collaboration.store-BcnGWDqh.js","assets/useClipboard-D72kaMkX.js","assets/useInjectWorkflowId-BSmCE6rY.js","assets/useExecutionHelpers-D8SD8Eej.js","assets/dateFormatter-aoRZizgK.js","assets/externalSecrets.ee.store-JZ2zh2En.js","assets/RunDataHtml-B-bE8ase.js","assets/RunDataHtml-Dn-4rgtR.css","assets/RunData-DMabnn0Y.css","assets/ParameterInputList-BFWz3KF9.js","assets/exports-BizHxxJu.js","assets/vue-DqU7Busn.js","assets/comlink-Duld3UaG.js","assets/date-picker-_u2qOcgh.js","assets/flatten-aNw4vND8.js","assets/dialog-DkHaT5V1.js","assets/VirtualSchema-VZf8DCpb.js","assets/Draggable-B_Sok8jx.js","assets/Draggable-B0pfmmgs.css","assets/NodeIcon-0naEDfOR.js","assets/NodeIcon-Cd4SL1LV.css","assets/useTelemetryContext-Chv8_oZ6.js","assets/useTelemetryContext-DP1IjWBS.css","assets/TextWithHighlights-DREOi4W6.js","assets/TextWithHighlights-CnnnTpA3.css","assets/VirtualSchema-CDm-q_NY.css","assets/CredentialIcon-BKhP7Biv.js","assets/CredentialIcon-D9KQZeCk.css","assets/useQuickConnect-CGSObYV3.js","assets/useDynamicCredentials-C74iW7Qx.js","assets/ParameterInputList-FME7iR69.css","assets/NodeSettings-Duq7ydj8.js","assets/col-DUeOzW-F.js","assets/useFreeAiCredits-oLq3Ynnl.js","assets/dataTable.store-DzRmkvR8.js","assets/CommunityNodeUpdateInfo-VtIhgbTd.js","assets/semver-CG7NEUeV.js","assets/communityNodes.store-CwKzTEmt.js","assets/CommunityNodeUpdateInfo-Bi69iCuf.css","assets/ContactAdministratorToInstall-CmQ5LyOX.js","assets/ContactAdministratorToInstall-Baw4NRUI.css","assets/NodeSettings-3eAar3hw.css","assets/useLogsTreeExpand-CFu0Brhy.js","assets/AnimatedSpinner-CGTlYi1c.js","assets/AnimatedSpinner-OiUdRqev.css","assets/chatHubPanel.store-DX1OXDdC.js","assets/useLogsTreeExpand-CdQhtp-t.css","assets/CopyInput-DXwlVLzp.js","assets/CopyInput-B98-wdxU.css","assets/useExecutionData-Ce6DH0Wy.js","assets/TriggerPanel-BYaFy06N.js","assets/RunDataParsedAiContent-DJFEwHfT.js","assets/RunDataParsedAiContent-vue_dQQ_.css","assets/TriggerPanel-Cw_Wi-Qi.css","assets/NodeDetailsView-DGjkLJen.css","assets/NodeDetailsViewV2-CO-QukvL.js","assets/useKeybindings-C1FXJp2f.js","assets/NodeDetailsViewV2-CGAdHZBS.css","assets/SetupWorkflowCredentialsButton-C_7ZGWCv.js","assets/readyToRun.store-DpPozriV.js","assets/folders.store-DKth0xuB.js"])))=>i.map(i=>d[i]); (function(){try{var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{};e.SENTRY_RELEASE={id:`n8n@2.13.4`}}catch{}})();try{(function(){var e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`eb121243-e3cd-43c4-a81b-1fb52bb0e3bb`,e._sentryDebugIdIdentifier=`sentry-dbid-eb121243-e3cd-43c4-a81b-1fb52bb0e3bb`)})()}catch{}import{o as e}from"./chunk-DxpFCn6T.js";import{$ as t,A as n,At as r,Bt as i,C as a,E as o,Ft as s,H as c,Ht as l,I as u,M as d,N as f,Nt as p,O as m,S as h,Sn as g,T as _,U as v,W as y,Wt as b,X as x,Z as S,_ as C,_n as w,c as T,dt as E,gt as D,h as O,it as k,j as A,n as ee,pt as j,q as te,rt as M,tt as ne,v as N,w as P,yn as F,yt as I}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{b as L,bt as R,ct as z,et as B,h as re,st as V}from"./_MapCache-CUJwh2qp.js";import{$i as H,At as ie,F as ae,Fi as oe,Ft as se,H as ce,Ht as le,Ii as ue,Mi as U,Pt as de,Qi as W,Vt as G,Xi as fe,Zi as K,_t as pe,en as me,gt as he,h as q,ht as ge,na as _e,t as J,tt as ve,z as ye}from"./src-wni2AGA3.js";import{t as Y}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import"./sanitize-html-my1ogl5v.js";import"./date-picker-_u2qOcgh.js";import{$i as be,$t as xe,Ar as Se,Dn as Ce,Dr as we,Et as Te,Ft as Ee,Gr as De,Ki as Oe,Mr as ke,Oi as X,Or as Ae,Pt as je,Rn as Me,Sn as Ne,Tr as Pe,Un as Fe,at as Ie,cn as Le,dn as Re,en as ze,ga as Be,gi as Ve,ia as He,in as Ue,it as We,jr as Ge,jt as Ke,kt as qe,mi as Je,or as Ye,pn as Xe,r as Ze,rn as Qe,s as $e,t as et,ur as tt,vn as nt,w as rt,ya as it,yn as at}from"./users.store-BHWXXawf.js";import{D as ot,F as st,N as ct,O as lt,P as ut,a as dt,c as ft,f as pt,g as mt,s as ht,t as gt,u as _t,v as vt,x as yt,y as bt}from"./ParameterInputList-BFWz3KF9.js";import{$a as xt,Ao as St,Ct,Ds as wt,Fc as Tt,Gt as Et,Io as Dt,Ka as Ot,M as kt,Mn as At,P as jt,Po as Mt,Ps as Nt,Qn as Pt,R as Ft,So as It,Tt as Lt,_a as Rt,_o as zt,ba as Bt,bn as Vt,ec as Ht,gl as Ut,gr as Wt,ho as Gt,hs as Kt,is as qt,ja as Jt,jn as Yt,ko as Xt,ma as Zt,ms as Z,ps as Qt,va as $t,wl as en,xn as tn}from"./constants-CIP7tKq1.js";import"./merge-BqvKZ38d.js";import{N as nn}from"./_baseOrderBy-CaKruttV.js";import"./dateformat-CYfyw486.js";import"./useDebounce-CTeIt-cH.js";import"./dataTable.store-DzRmkvR8.js";import{t as rn}from"./useClipboard-D72kaMkX.js";import"./executions.store-CZbPSd3l.js";import"./assistant.store-BOJw9cI0.js";import{t as an}from"./chatPanel.store-N5nWYKck.js";import{s as on}from"./RunData-CqDg79Fs.js";import"./NDVEmptyState-DMWlSoOG.js";import"./externalSecrets.ee.store-JZ2zh2En.js";import"./uniqBy-CvYQiCPx.js";import"./communityNodes.store-CwKzTEmt.js";import"./usePinnedData-bxdhY-Ce.js";import"./nodeIcon-BFJyt77y.js";import{c as sn,l as cn}from"./canvas.utils-BMxgA7cX.js";import{n as ln,t as Q}from"./canvas.eventBus-C-z2MFNA.js";import{n as un,r as dn,t as fn}from"./useCanvasOperations-CI7Ylcwf.js";import{t as pn}from"./setupPanel.store-D0Kh-_X7.js";import{i as mn,o as hn}from"./nodeTransforms-DgA3LbBA.js";import"./templateTransforms-Bcjcx-gt.js";import"./ContactAdministratorToInstall-CmQ5LyOX.js";import"./useQuickConnect-CGSObYV3.js";import"./semver-CG7NEUeV.js";import{t as gn}from"./CredentialIcon-BKhP7Biv.js";import"./useDynamicCredentials-C74iW7Qx.js";import"./RunDataHtml-B-bE8ase.js";import"./Draggable-B_Sok8jx.js";import{t as _n}from"./NodeIcon-0naEDfOR.js";import{n as vn,r as yn}from"./VirtualSchema-VZf8DCpb.js";import"./useCalloutHelpers-BtD3kQKI.js";import{t as bn}from"./useTelemetryContext-Chv8_oZ6.js";import{n as xn,t as Sn}from"./useRunWorkflow-BbbTafql.js";import"./pushConnection.store-L5aofOKN.js";import{t as Cn}from"./useInjectWorkflowId-BSmCE6rY.js";import"./vue-json-pretty-CBkxkEgX.js";import{n as wn,t as Tn}from"./collaboration.store-BcnGWDqh.js";import"./dateFormatter-aoRZizgK.js";import"./useExecutionHelpers-D8SD8Eej.js";import"./useFreeAiCredits-oLq3Ynnl.js";import"./NodeSettings-Duq7ydj8.js";import"./CommunityNodeUpdateInfo-VtIhgbTd.js";import{t as En}from"./KeyboardShortcutTooltip-CrTbwZwY.js";import"./vue-DqU7Busn.js";import{t as Dn}from"./sourceControl.eventBus-BBs1sz7q.js";import{n as On,r as kn,t as An}from"./CanvasRunWorkflowButton-B_JNC0IF.js";import{a as jn,i as Mn,n as $,s as Nn,t as Pn}from"./useCanvasMapping-C3_cLpmK.js";import{t as Fn}from"./useKeybindings-C1FXJp2f.js";import"./useNodeCreatorShortcutCoachmark-jEnIrxlM.js";import"./useActions-CIZqXgqI.js";import{t as In}from"./chatHubPanel.store-DX1OXDdC.js";import{t as Ln}from"./useExecutionData-Ce6DH0Wy.js";import{t as Rn}from"./emptyStateBuilderPrompt.store-_iBFPMyJ.js";var zn=Y(f({inheritAttrs:!1,__name:`WorkflowCanvas`,props:{id:{default:`canvas`},workflow:{},workflowObject:{},fallbackNodes:{default:()=>[]},showFallbackNodes:{type:Boolean,default:!0},eventBus:{default:()=>ie()},readOnly:{type:Boolean},executing:{type:Boolean},suppressInteraction:{type:Boolean,default:!1},initialViewport:{}},setup(e,{expose:n}){let r=e,c=j(`canvas`),l=T(),{onNodesInitialized:u,viewport:d,viewportRef:f,getNodes:p,fitBounds:m}=tt(r.id),g=i(r,`workflow`),y=i(r,`workflowObject`),{nodes:x,connections:S}=Pn({nodes:h(()=>r.showFallbackNodes?[...r.workflow.nodes,...r.fallbackNodes]:r.workflow.nodes),connections:h(()=>r.workflow.connections),workflowObject:y}),C=s(!1),{off:E}=u(()=>{C.value||(r.initialViewport||r.eventBus.emit(`fitView`),C.value=!0,E())}),D=B(x,200),O=B(S,200);return n({executeContextMenuAction:(e,t)=>c.value?.executeContextMenuAction(e,t),ensureNodesAreVisible:e=>{let t=f.value;if(!t)return;let n=p.value.filter(t=>e.includes(t.id));if(n.length===0)return;let i=u(()=>{let a=d.value,o=t.clientWidth,s=t.clientHeight,c=Ye(n),l=c.x*a.zoom+a.x,u=c.y*a.zoom+a.y,f=c.width*a.zoom,p=c.height*a.zoom;if(!(l>=0&&u>=0&&l+f<=o&&u+p<=s)){let e={x:-a.x/a.zoom,y:-a.y/a.zoom,width:o/a.zoom,height:s/a.zoom},t=Math.min(e.x,c.x),n=Math.min(e.y,c.y),r=Math.max(e.x+e.width,c.x+c.width),i=Math.max(e.y+e.height,c.y+c.height);m({x:t,y:n,width:r-t,height:i-n},{padding:.15,duration:100})}r.eventBus.emit(`nodes:select`,{ids:e}),i.off()})}}),(n,r)=>(t(),o(`div`,{class:w(b(l).wrapper),"data-test-id":`canvas-wrapper`},[a(`div`,{id:`canvas`,class:w(b(l).canvas)},[g.value?(t(),P($,v({key:0,id:e.id,ref:`canvas`,nodes:e.executing?b(D):b(x),connections:e.executing?b(O):b(S),"event-bus":e.eventBus,"read-only":e.readOnly,executing:e.executing,"suppress-interaction":e.suppressInteraction,"initial-viewport":e.initialViewport},n.$attrs),null,16,[`id`,`nodes`,`connections`,`event-bus`,`read-only`,`executing`,`suppress-interaction`,`initial-viewport`])):_(``,!0)],2),k(n.$slots,`default`)],2))}}),[[`__cssModules`,{$style:{wrapper:`_wrapper_gh0gb_125`,canvas:`_canvas_gh0gb_133`}}]]),Bn=Y(f({__name:`FocusSidebarTabs`,props:{modelValue:{default:`setup`},tabLabels:{default:()=>({})}},emits:[`update:modelValue`],setup(e,{emit:n}){let r=R(),i=Ne(),s=e,c=n,l=h(()=>[{label:s.tabLabels?.setup??r.baseText(`setupPanel.tabs.setup`),value:`setup`},{label:s.tabLabels?.focus??r.baseText(`setupPanel.tabs.focus`),value:`focus`}]),u=e=>{c(`update:modelValue`,e)};return(n,r)=>(t(),o(`div`,{class:w(n.$style.container),"data-test-id":`setup-panel-tabs`},[A(b(ae),{"model-value":e.modelValue,options:l.value,size:`small`,"onUpdate:modelValue":u},null,8,[`model-value`,`options`]),a(`button`,{"data-test-id":`setup-panel-close`,class:w(n.$style[`close-button`]),onClick:r[0]||=e=>b(i).closeFocusPanel()},[A(b(H),{icon:`x`,size:`small`})],2)],2))}}),[[`__cssModules`,{$style:{container:`_container_1fw0v_125`,"close-button":`_close-button_1fw0v_142`}}]]);const Vn=e=>e===`n8n-nodes-base.httpRequest`||e===`n8n-nodes-base.httpRequestTool`;function Hn(e,t){let n=new Set,r=mn(e,t);for(let e of r)n.add(e.name);let i=t.issues?.credentials??{};for(let e of Object.keys(i))n.add(e);if(t.credentials)for(let e of Object.keys(t.credentials))n.add(e);return Array.from(n)}function Un(e,t){let n=e.getNodeType(t.type,t.typeVersion);if(!n)return{};let r={...t.parameters};for(let e of n.properties)!(e.name in r)&&e.default!==void 0&&(r[e.name]=e.default);let i={...t,parameters:r},a=Bt(n.properties,i,n)?.parameters??{},o=new Map(n.properties.map(e=>[e.name,e])),s={};for(let[e,t]of Object.entries(a)){let a=o.get(e);a&&a.type!==`hidden`&&(a.displayOptions&&!Zt(r,a,i,n)||(s[e]=t))}return s}function Wn(e,t,n){let r=new Map;for(let{node:i,credentialTypes:a}of e)for(let e of a){let a=Vn(i.type),o=i.parameters.url,s;if(!a)s=e;else if(zt(o)){let t=n?.(o,i.name)??null;s=t===null?`${e}:http:${i.name}`:`${e}:http:${t}`}else s=`${e}:http:${String(o??``)}`;let c=r.get(s);if(c){c.nodes.push(i);let t=i.issues?.credentials?.[e];if(t){let e=[t].flat();for(let t of e)c.issues.includes(t)||c.issues.push(t)}if(!c.selectedCredentialId){let t=i.credentials?.[e];typeof t!=`string`&&t?.id&&(c.selectedCredentialId=t.id)}}else{let n=i.credentials?.[e],a=typeof n==`string`?void 0:n?.id??void 0,o=[(i.issues?.credentials??{})[e]??[]].flat();r.set(s,{credentialType:e,credentialDisplayName:t(e),selectedCredentialId:a,issues:o,nodes:[i],isComplete:!1})}}for(let e of r.values())e.isComplete=!!e.selectedCredentialId&&e.issues.length===0;return Array.from(r.values())}function Gn(e,t,n,r){return!(e.selectedCredentialId&&e.issues.length===0)||r&&e.selectedCredentialId&&!r(e.selectedCredentialId)?!1:e.nodes.filter(e=>n(e.type)).every(e=>t(e.name))}function Kn(e,t,n,r){return{node:e,isComplete:t.every(e=>{let t=n.find(t=>t.credentialType===e);return t?!!t.selectedCredentialId&&t.issues.length===0:!0})&&r}}const qn=e=>{let t=$e(),n=Ie(),r=rt(),i=xe(),a=je(),o=Ce(),c=He(),l=h(()=>e?.value??c?.value?.allNodes??[]),u=h(()=>{if(!c?.value?.meta?.templateId)return new Map;let e=new Map;for(let t of l.value){let n=new Set,i=r.getNodeType(t.type,t.typeVersion);if(i)for(let e of i.properties)e.type===`resourceLocator`&&n.add(e.name);let a=e=>{for(let[t,r]of Object.entries(e))Ot(r)?n.add(t):typeof r==`object`&&r&&!Array.isArray(r)&&a(r)};a(t.parameters),n.size>0&&e.set(t.name,Array.from(n))}return e}),d=s(new Map),f=h(()=>{let e=new Map;for(let[t,n]of u.value)e.set(t,[...n]);for(let[t,n]of d.value){let r=e.get(t);if(r){let i=new Set([...r,...n]);e.set(t,Array.from(i))}else e.set(t,[...n])}return e}),p=e=>(f.value.get(e)?.length??0)>0,m=e=>{let t=f.value.get(e.name);if(!t||t.length===0)return!1;let n=new Set(t),r=e=>{for(let[t,i]of Object.entries(e))if(n.has(t)&&Ot(i)&&!i.value||typeof i==`object`&&i&&!Array.isArray(i)&&r(i))return!0;return!1};return r(e.parameters)};async function g(){let e=c?.value?.meta?.templateId;if(e)try{let t=o.getFullTemplateById(e)??await o.fetchTemplateById(e);if(!t?.workflow?.nodes)return;let n=new Map;for(let e of t.workflow.nodes){let t=Un(r,e),i=Object.keys(t);i.length>0&&n.set(e.name,i)}d.value=n}catch{}}g();let _=e=>n.getCredentialTypeByName(e)?.displayName??e,v=e=>n.getCredentialTypeByName(e)?.test?!0:n.getNodesWithAccess(e).some(t=>t.credentials?.some(t=>t.name===e&&t.testedBy)),y=e=>r.isTriggerNode(e.type),b=e=>{let n=t.getWorkflowResultDataByNodeName(e);return n!==null&&n.length>0},x=s(new Set),S=(e,n)=>{try{let r=t.workflowObject.expression.getParameterValue(e,null,0,0,n,[],`manual`,{$execution:{id:jt,mode:`test`,resumeUrl:jt,resumeFormUrl:jt},$vars:a.variablesAsObject});return typeof r==`string`?r:null}catch{return null}},C=new Set,w=h(()=>{let e=l.value.filter(e=>!e.disabled).map(e=>({node:e,credentialTypes:Hn(r,e),parameterIssues:Un(r,e),isTrigger:y(e)})).filter(({credentialTypes:e,isTrigger:t,parameterIssues:n,node:r})=>C.has(r.id)||e.length>0||t||Object.keys(n).length>0||p(r.name));for(let{node:t}of e)C.add(t.id);return Ke(e,t.connectionsBySourceNode,t.connectionsByDestinationNode)}),T=h(()=>w.value.find(({isTrigger:e})=>e)?.node.name??null),E=h(()=>w.value.filter(({credentialTypes:e})=>e.length>0)),O=new Set,k=h(()=>{let e=w.value.filter(({parameterIssues:e,node:t})=>O.has(t.id)||Object.keys(e).length>0||p(t.name));for(let{node:t}of e)O.add(t.id);return e}),A=new Set,ee=new Set,j=h(()=>{let e=new Set;for(let{credentialTypes:t,parameterIssues:n,node:r}of w.value)if(Object.keys(n).length>0||p(r.name))for(let n of t)e.add(n);let t=Wn(E.value.filter(({credentialTypes:t})=>!t.some(t=>e.has(t)||ee.has(t))).map(({node:e,credentialTypes:t})=>({node:e,credentialTypes:t})),_,S),i=e=>r.isTriggerNode(e);return t.map(e=>{let t=e.nodes.find(e=>y(e)&&e.name===T.value),r=t?e.nodes.filter(e=>!y(e)||e===t):e.nodes.filter(e=>!y(e)),a=v(e.credentialType)?n.isCredentialTestedOk:void 0,o=Gn({...e,nodes:r},b,i,a),s=!!e.selectedCredentialId&&x.value.has(e.selectedCredentialId);return{...e,isComplete:o,isAutoApplied:s}})}),te=h(()=>{if(!T.value)return[];let e=j.value.some(e=>e.nodes.some(e=>y(e)&&e.name===T.value)),t=M.value.some(e=>e.node.name===T.value);return e||t?[]:w.value.filter(({isTrigger:e,node:t})=>e&&t.name===T.value).map(({node:e,credentialTypes:t})=>Kn(e,t,j.value,b(e.name)))}),M=h(()=>{let e=[];for(let t of k.value){if(t.credentialTypes.length>0)continue;let{node:n,parameterIssues:r,isTrigger:i}=t;e.push({node:n,parameterIssues:r,templateParameterNames:f.value.get(n.name),isTrigger:i,isComplete:Object.keys(r).length===0&&!m(n)})}let t=new Set;for(let{credentialTypes:e,parameterIssues:n,node:r}of w.value)if(Object.keys(n).length>0||p(r.name))for(let n of e)t.add(n),ee.add(n);let i=new Map,a=new Map;for(let e of w.value){let{node:n,credentialTypes:r,parameterIssues:o}=e;if(r.length!==0)for(let s of r){if(!t.has(s)&&!ee.has(s))continue;i.has(s)||i.set(s,[]),i.get(s).some(e=>e.id===n.id)||i.get(s).push(n);let r=`${s}:${n.id}`,c=Object.keys(o).length>0,l=p(n.name),u=A.has(r);(c||l||u)&&(a.has(s)||a.set(s,[]),a.get(s).push(e))}}let o=new Set;for(let[t,s]of a){let a=!0,c=i.get(t)??[];for(let i of s){let{node:s,parameterIssues:l,isTrigger:u}=i,d=`${t}:${s.id}`;if(o.has(d))continue;o.add(d),A.add(d);let p=s.credentials?.[t],h=typeof p==`string`?void 0:p?.id??void 0,g=[(s.issues?.credentials??{})[t]??[]].flat(),y=a,S=!!h&&g.length===0,C=!h||!v(t)||n.isCredentialTestedOk(h),w=!(e=>r.isTriggerNode(e))(s.type)||s.name!==T.value||b(s.name),E=!!h&&x.value.has(h),D=Object.keys(l).length===0&&!m(s),O=w&&!E?D:S&&C&&D&&w;e.push({node:s,credentialType:t,credentialDisplayName:_(t),selectedCredentialId:h,issues:g,parameterIssues:l,templateParameterNames:f.value.get(s.name),isTrigger:u,showCredentialPicker:y,isComplete:O,allNodesUsingCredential:c,isAutoApplied:E}),a=!1}}return e}),ne=h(()=>{let e=j.value.map(e=>({node:e.nodes[0],credentialType:e.credentialType,credentialDisplayName:e.credentialDisplayName,selectedCredentialId:e.selectedCredentialId,issues:e.issues,parameterIssues:{},isTrigger:y(e.nodes[0]),showCredentialPicker:!0,isComplete:e.isComplete,isAutoApplied:e.isAutoApplied,allNodesUsingCredential:e.nodes})),t=te.value.map(e=>({node:e.node,parameterIssues:{},isTrigger:!0,isComplete:e.isComplete})),n=[...e,...t,...M.value].filter(e=>e.node.type!==At).map(e=>({state:e})),r=w.value.map(({node:e})=>e.name);return n.sort((e,t)=>r.indexOf(e.state.node.name)-r.indexOf(t.state.node.name))}),N=h(()=>j.value.filter(e=>!e.isComplete).length),P=h(()=>ne.value.length),F=h(()=>ne.value.length>0&&ne.value.every(e=>e.state.isComplete));async function I(e,t,r){if(v(r)&&!(n.isCredentialTestedOk(e)||n.isCredentialTestPending(e)))try{let i=await n.getCredentialData({id:e});if(!i?.data||typeof i.data==`string`||n.isCredentialTestedOk(e)||n.isCredentialTestPending(e))return;let{ownedBy:a,sharedWithProjects:o,oauthTokenData:s,...c}=i.data;if(s){n.credentialTestResults.set(e,`success`);return}await n.testCredential({id:e,name:t,type:r,data:c})}catch{}}let L=(e,t)=>{let n=j.value,r=t?n.find(n=>n.credentialType===e&&n.nodes.some(e=>e.name===t)):n.find(t=>t.credentialType===e);if(r)return r.nodes.map(e=>e.name);if(!t)return[];let i=M.value.find(n=>n.credentialType===e&&n.node.name===t);return i?.allNodesUsingCredential?i.allNodesUsingCredential.map(e=>e.name):[t]},R=(e,t,r,a=!1)=>{let o=n.getCredentialById(t);if(!o)return;let s={id:t,name:o.name};I(t,o.name,e);for(let t of L(e,r)){let n=c?.value?.getNodeByName(t);if(!n||a&&Vn(n.type))continue;let r=n.credentials?.[e],i=typeof r==`string`?void 0:r?.id;i&&x.value.delete(i),c?.value?.updateNodeProperties({name:t,properties:{credentials:{...n.credentials,[e]:s}}})}i.updateNodesCredentialsIssues(),Ze().markStateDirty()},z=(e,t)=>{for(let n of L(e,t)){let t=c?.value?.getNodeByName(n);if(!t)continue;let r={...t.credentials};delete r[e],c?.value?.updateNodeProperties({name:n,properties:{credentials:r}})}i.updateNodesCredentialsIssues(),Ze().markStateDirty()},B=(e,t)=>{let r=n.getCredentialsByType(e);if(r.length===0)return;let i=r.reduce((e,t)=>e.updatedAt>t.updatedAt?e:t,r[0]);x.value.add(i.id),R(e,i.id,t,!0)},re=()=>{let e=[...j.value],t=[...M.value];for(let t of e)t.selectedCredentialId||B(t.credentialType);for(let e of t)!e.credentialType||e.selectedCredentialId||B(e.credentialType,e.node.name)},V=!1;return D(w,e=>{if(V||e.length===0)return;V=!0,re();let t=new Map;for(let{node:r,credentialTypes:i}of e)for(let e of i){let i=r.credentials?.[e],a=typeof i==`string`?void 0:i?.id;if(!a||t.has(a))continue;let o=n.getCredentialById(a);o&&t.set(a,{name:o.name,type:e})}for(let[e,{name:n,type:r}]of t)I(e,n,r)},{immediate:!0}),We({store:n,onCredentialDeleted:e=>{for(let{node:t,credentialTypes:n}of w.value)for(let r of n){let n=t.credentials?.[r];(typeof n==`string`?void 0:n?.id)===e&&z(r)}}}),{setupCards:ne,credentialTypeStates:j,triggerStates:te,nodeStates:M,firstTriggerName:T,totalCredentialsMissing:N,totalCardsRequiringSetup:P,isAllComplete:F,nodesWithMissingParameters:k,autoAppliedCredentialIds:x,setCredential:R,unsetCredential:z}};var Jn=Y(f({__name:`TriggerExecuteButton`,props:{label:{},icon:{},disabled:{type:Boolean},loading:{type:Boolean},tooltipItems:{}},emits:[`click`],setup(e,{emit:n}){let r=e,i=n,a=h(()=>r.tooltipItems.length>0),s=async()=>{i(`click`)};return(n,r)=>(t(),P(b(U),{disabled:!a.value,placement:`top`},{content:I(()=>[(t(!0),o(C,null,M(e.tooltipItems,(e,r)=>(t(),o(`p`,{key:r,class:w(n.$style.tooltipItem)},g(e),3))),128))]),default:I(()=>[A(b(W),{"data-test-id":`trigger-execute-button`,label:e.label,disabled:e.disabled,loading:e.loading,icon:e.icon,size:`small`,onClick:s},null,8,[`label`,`disabled`,`loading`,`icon`])]),_:1},8,[`disabled`]))}}),[[`__cssModules`,{$style:{tooltipItem:`_tooltipItem_jpymr_125`}}]]),Yn=[`onClick`],Xn=Y(f({__name:`WebhookUrlPreview`,props:{urls:{}},setup(e){let n=R(),r=rn(),i=Pe(),c=s(!1);function l(e){r.copy(e),i.showMessage({title:n.baseText(`setupPanel.webhookUrl.copied`),type:`success`})}return(r,i)=>(t(),o(`div`,{"data-test-id":`webhook-url-preview`,class:w(r.$style.container)},[a(`div`,{class:w([r.$style.header,{[r.$style.expanded]:!c.value}]),onClick:i[0]||=e=>c.value=!c.value},[A(b(H),{icon:`chevron-right`,class:w(r.$style[`chevron-icon`])},null,8,[`class`]),a(`span`,{class:w(r.$style[`header-label`])},g(b(n).baseText(`setupPanel.webhookUrl.title`)),3)],2),A(b(me),null,{default:I(()=>[c.value?_(``,!0):(t(),o(`div`,{key:0,class:w(r.$style[`url-list`])},[(t(!0),o(C,null,M(e.urls,(e,i)=>(t(),P(b(U),{key:i,content:b(n).baseText(`setupPanel.webhookUrl.clickToCopy`),placement:`top`},{default:I(()=>[a(`div`,{"data-test-id":`webhook-url-item`,class:w(r.$style[`url-row`]),onClick:t=>l(e.url)},[e.isMethodVisible?(t(),o(`span`,{key:0,class:w(r.$style[`method-badge`])},g(e.httpMethod),3)):_(``,!0),a(`span`,{class:w(r.$style[`url-text`])},g(e.url),3)],10,Yn)]),_:2},1032,[`content`]))),128))],2))]),_:1})],2))}}),[[`__cssModules`,{$style:{container:`_container_1w8i0_125`,header:`_header_1w8i0_129`,"chevron-icon":`_chevron-icon_1w8i0_137`,expanded:`_expanded_1w8i0_141`,"header-label":`_header-label_1w8i0_145`,"url-list":`_url-list_1w8i0_149`,"url-row":`_url-row_1w8i0_157`,"method-badge":`_method-badge_1w8i0_167`,"url-text":`_url-text_1w8i0_179`}}]]);function Zn(e){let t=R(),n=rt(),r=$e(),{isExecuting:i,isListening:a,isListeningForWorkflowEvents:o,buttonLabel:s,buttonIcon:c,disabledReason:u,hasIssues:d,execute:f}=yn(e),p=h(()=>l(e)),m=h(()=>p.value?n.getNodeType(p.value.type,p.value.typeVersion):null),g=h(()=>a.value||o.value),_=h(()=>{if(!g.value||!m.value)return``;if(m.value.eventTriggerDescription)return m.value.eventTriggerDescription;let e=Oe(m.value);return t.baseText(`setupPanel.trigger.listeningHint`,{interpolate:{service:e}})}),v=h(()=>g.value?t.baseText(`ndv.execute.stopListening`):s.value),y=h(()=>p.value?r.workflowObject.getParentNodes(p.value.name,Gt.Main).some(e=>{let t=r.getNodeByName(e);return t?.issues?.parameters||t?.issues?.credentials}):!1);return{isExecuting:i,isButtonDisabled:h(()=>i.value||d.value||y.value||!!u.value),label:v,buttonIcon:c,tooltipItems:h(()=>{if(!d.value&&!y.value)return u.value?[u.value]:[];let e=[],n=p.value?.issues;return n&&e.push(...Object.values(n.credentials??{}).flat(),...Object.values(n.parameters??{}).flat()),y.value&&e.push(t.baseText(`ndv.execute.upstreamNodeHasIssues`)),e.length>0?e:[t.baseText(`ndv.execute.requiredFieldsMissing`)]}),execute:f,isInListeningState:g,listeningHint:_}}function Qn(e){let t=rt(),n=Te(),r=h(()=>l(e)),i=h(()=>r.value?t.getNodeType(r.value.type,r.value.typeVersion):null),a=h(()=>i.value?.webhooks?i.value.webhooks.filter(e=>e.restartWebhook!==!0):[]);async function o(e,t,r){let i=e[t];if(typeof i==`string`)try{return!!await n.getWebhookExpressionValue(e,t,!0,r)}catch{return!1}return!!i}async function s(e,t){let r=!e.ndvHideMethod,i=``;try{let a=await n.getWebhookExpressionValue(e,`httpMethod`,!1,t);Array.isArray(a)&&a.length!==1?r=!1:(i=Array.isArray(a)?a[0]:a,typeof e.ndvHideMethod==`string`&&(r=!await o(e,`ndvHideMethod`,t)))}catch{}return{httpMethod:i,isMethodVisible:r}}return{webhookUrls:re(async()=>{let e=r.value;if(!e||a.value.length===0)return[];let t=[];for(let r of a.value){let i=e.name;if(await o(r,`ndvHideUrl`,i))continue;let a=await n.getWebhookUrl(r,e,`test`),{httpMethod:c,isMethodVisible:l}=await s(r,i);t.push({url:a,httpMethod:c,isMethodVisible:l})}return t},[])}}var $n=[`data-test-id`],er=[`data-test-id`],tr=Y(f({__name:`SetupCard`,props:c({isComplete:{type:Boolean},loading:{type:Boolean,default:!1},cardTestId:{},title:{},showFooter:{type:Boolean,default:!0},executableNode:{default:null},isTrigger:{type:Boolean,default:!1},isTestingCredential:{type:Boolean,default:!1},highlightNodeIds:{default:()=>[]},telemetryPayload:{default:()=>({})}},{expanded:{type:Boolean,default:!1},expandedModifiers:{}}),emits:[`update:expanded`],setup(e,{expose:r}){let i=e,c=E(e,`expanded`),l=R(),u=ze(),d=pn(),f=He(),p=s(!1),m=()=>{p.value=!0},v=()=>{c.value=!c.value},y=()=>{i.highlightNodeIds.length>0&&d.setHighlightedNodes(i.highlightNodeIds)},x=()=>{i.highlightNodeIds.length>0&&d.clearHighlightedNodes()},S=h(()=>i.executableNode??null),{isExecuting:T,isButtonDisabled:O,label:j,buttonIcon:M,tooltipItems:ne,execute:N,isInListeningState:F,listeningHint:L}=Zn(S),{webhookUrls:z}=Qn(S),B=h(()=>i.isTrigger&&F.value),re=async()=>{await N(),m()};return te(()=>{d.clearHighlightedNodes()}),D(()=>i.isComplete,e=>{e&&p.value&&(u.track(`User completed setup step`,{template_id:f?.value?.meta?.templateId,workflow_id:f?.value?.workflowId,...i.telemetryPayload}),p.value=!1)}),r({markInteracted:m}),(r,i)=>(t(),o(`div`,{"data-test-id":e.cardTestId,class:w([r.$style.card,{[r.$style.collapsed]:!c.value,[r.$style.completed]:e.isComplete,[r.$style[`no-footer`]]:!e.showFooter&&c.value}]),onMouseenter:y,onMouseleave:x},[a(`header`,{"data-test-id":`${e.cardTestId}-header`,class:w(r.$style.header),onClick:v},[!c.value&&e.loading&&!e.isComplete?(t(),P(b(H),{key:0,"data-test-id":`${e.cardTestId}-loading-icon`,icon:`spinner`,spin:!0,class:w(r.$style[`loading-icon`]),size:`medium`},null,8,[`data-test-id`,`class`])):!c.value&&e.isComplete?(t(),P(b(H),{key:1,"data-test-id":`${e.cardTestId}-complete-icon`,icon:`check`,class:w(r.$style[`complete-icon`]),size:`medium`},null,8,[`data-test-id`,`class`])):k(r.$slots,`icon`,{key:2},void 0,!0),A(b(K),{class:w(r.$style[`card-title`]),size:`medium`,color:`text-dark`},{default:I(()=>[n(g(e.title),1)]),_:1},8,[`class`]),a(`div`,{class:w(r.$style[`header-extra`])},[k(r.$slots,`header-extra`,{},void 0,!0)],2),A(b(H),{class:w(r.$style.chevron),icon:c.value?`chevrons-down-up`:`chevrons-up-down`,size:`large`,color:`text-light`},null,8,[`class`,`icon`])],10,er),c.value?(t(),o(C,{key:0},[k(r.$slots,`card-description`,{},void 0,!0),A(ee,{name:`callout-fade`},{default:I(()=>[B.value?(t(),o(`div`,{key:0,class:w(r.$style[`callout-grid`])},[a(`div`,{class:w(r.$style[`callout-inner`])},[A(b(fe),{"data-test-id":`trigger-listening-callout`,theme:`secondary`,class:w(r.$style.callout)},{default:I(()=>[n(g(b(L)),1)]),_:1},8,[`class`])],2)],2)):_(``,!0)]),_:1}),e.isTrigger&&b(F)&&b(z).length>0?(t(),P(Xn,{key:0,urls:b(z)},null,8,[`urls`])):_(``,!0),k(r.$slots,`default`,{},void 0,!0),e.showFooter?(t(),o(`footer`,{key:1,class:w(r.$style.footer)},[e.isComplete?(t(),o(`div`,{key:0,class:w(r.$style[`footer-complete-check`])},[A(b(H),{icon:`check`,class:w(r.$style[`complete-icon`]),size:`large`},null,8,[`class`]),A(b(K),{size:`medium`,color:`success`},{default:I(()=>[n(g(b(l).baseText(`generic.complete`)),1)]),_:1})],2)):_(``,!0),k(r.$slots,`footer-actions`,{},void 0,!0),e.executableNode?(t(),P(Jn,{key:1,label:b(j),icon:b(M),disabled:b(O)||e.isTestingCredential,loading:b(T),"tooltip-items":b(ne),onClick:re},null,8,[`label`,`icon`,`disabled`,`loading`,`tooltip-items`])):_(``,!0)],2)):_(``,!0)],64)):_(``,!0)],42,$n))}}),[[`__cssModules`,{$style:{card:`_card_8jtb5_125`,"no-footer":`_no-footer_8jtb5_134`,header:`_header_8jtb5_138`,"header-extra":`_header-extra_8jtb5_146`,chevron:`_chevron_8jtb5_149`,collapsed:`_collapsed_8jtb5_158`,"card-title":`_card-title_8jtb5_162`,"complete-icon":`_complete-icon_8jtb5_167`,"loading-icon":`_loading-icon_8jtb5_176`,footer:`_footer_8jtb5_183`,"footer-complete-check":`_footer-complete-check_8jtb5_190`,completed:`_completed_8jtb5_210`,callout:`_callout_8jtb5_217`,"callout-grid":`_callout-grid_8jtb5_221`,"callout-inner":`_callout-inner_8jtb5_226`}}],[`__scopeId`,`data-v-42233c49`]]),nr=Y(f({__name:`NodeSetupCard`,props:c({state:{},firstTriggerName:{}},{expanded:{type:Boolean,default:!1},expandedModifiers:{}}),emits:c([`credentialSelected`,`credentialDeselected`],[`update:expanded`]),setup(e,{emit:r}){let i=e,c=E(e,`expanded`),l=r,u=R(),d=pn(),f=rt(),p=Ie(),v=xe(),y=Ue(),x=$e(),S=He(),C=s(null);ne(Tt,Mn(h(()=>i.state.node)));let T=h(()=>f.getNodeType(i.state.node.type,i.state.node.typeVersion)),O=h(()=>Vn(i.state.node.type)),k=h(()=>!!i.state.credentialType),ee=h(()=>i.state.isTrigger?!i.firstTriggerName||i.state.node.type===`n8n-nodes-base.manualTrigger`?null:i.state.node.name===i.firstTriggerName?i.state.node:null:v.isNodeExecutable(i.state.node,!0,[])?i.state.node:null),j=h(()=>{let e=i.state.selectedCredentialId;return!!e&&p.isCredentialTestPending(e)}),te=h(()=>!k.value||ee.value!==null||i.state.isComplete),M=h(()=>Object.keys(i.state.parameterIssues).length>0),N=s([]),F=h(()=>{if(!T.value?.properties)return[];let e=Object.keys(i.state.parameterIssues),t=i.state.templateParameterNames??[],n=new Set([...e,...t]);for(let e of T.value.properties)n.has(e.name)&&!N.value.includes(e)&&N.value.push(e);return N.value}),L=h(()=>N.value.length>0),z=h(()=>i.state.isTrigger&&!k.value&&!L.value),B=h(()=>k.value&&!L.value&&!z.value),re=h(()=>(i.state.allNodesUsingCredential??[]).map(e=>e.name)),V=h(()=>re.value.join(`, `)),ie=h(()=>{let e=[];return z.value&&e.push(`trigger`),k.value&&e.push(`credential`),M.value&&e.push(`param`),{type:e,template_id:S?.value?.meta?.templateId,workflow_id:x.workflow.id,node_types:(i.state.allNodesUsingCredential??[i.state.node]).map(e=>e.type),credential_type:i.state.credentialType,has_parameters:M.value,missing_parameters_count:Object.keys(i.state.parameterIssues).length}}),ae=e=>{if(!i.state.credentialType)throw Error(`Unexpected credential selection`);C.value?.markInteracted();let t=e.properties.credentials?.[i.state.credentialType],n=typeof t==`string`?void 0:t?.id;n?l(`credentialSelected`,{credentialType:i.state.credentialType,credentialId:n,nodeName:i.state.node.name}):l(`credentialDeselected`,{credentialType:i.state.credentialType,nodeName:i.state.node.name})},oe=e=>{C.value?.markInteracted(),y.updateNodeProperties({name:i.state.node.name,properties:{parameters:{...i.state.node.parameters,[e.name]:e.value}}}),v.updateNodesParameterIssues()},se=()=>{d.setHighlightedNodes((i.state.allNodesUsingCredential??[]).map(e=>e.id))},ce=()=>{d.setHighlightedNodes([i.state.node.id])},le=s(Object.keys(i.state.parameterIssues).length===0),ue=h(()=>le.value||(i.state.templateParameterNames?.length??0)>0&&Object.keys(i.state.parameterIssues).length===0),de=s(!i.state.isAutoApplied);D(()=>i.state.isAutoApplied??!1,e=>{e||(de.value=!0)}),D(c,(e,t)=>{t&&!e&&(Object.keys(i.state.parameterIssues).length===0&&(le.value=!0),i.state.isAutoApplied&&(de.value=!0))});let W=h(()=>L.value?i.state.isComplete&&ue.value&&de.value:i.state.isComplete&&de.value),G=h(()=>(i.state.allNodesUsingCredential??[i.state.node]).map(({id:e})=>e));return(r,i)=>(t(),P(tr,{ref_key:`setupCard`,ref:C,expanded:c.value,"onUpdate:expanded":i[0]||=e=>c.value=e,"is-complete":W.value,loading:j.value,title:e.state.node.name,"show-footer":te.value,"executable-node":ee.value,"is-trigger":e.state.isTrigger,"is-testing-credential":j.value,"telemetry-payload":ie.value,"highlight-node-ids":G.value,"card-test-id":`node-setup-card`},m({icon:I(()=>[B.value?(t(),P(gn,{key:0,"credential-type-name":e.state.credentialType,size:16},null,8,[`credential-type-name`])):(t(),P(_n,{key:1,"node-type":T.value,size:16},null,8,[`node-type`]))]),"card-description":I(()=>[e.state.isTrigger&&k.value&&!e.state.selectedCredentialId?(t(),P(b(K),{key:0,size:`medium`,color:`text-base`,class:`pl-xs pr-xs`},{default:I(()=>[n(g(b(u).baseText(`setupPanel.trigger.credential.note`)),1)]),_:1})):L.value?(t(),P(b(K),{key:1,size:`medium`,color:`text-base`,class:`pl-xs pr-xs`},{default:I(()=>[n(g(b(u).baseText(`setupPanel.parameter.description`)),1)]),_:1})):_(``,!0)]),default:I(()=>[z.value?_(``,!0):(t(),o(`div`,{key:0,class:w(r.$style.content)},[e.state.showCredentialPicker?(t(),o(`div`,{key:0,class:w(r.$style[`credential-container`])},[A(lt,{node:e.state.node,"override-cred-type":e.state.credentialType??``,"skip-auto-select":O.value,"hide-issues":``,onCredentialSelected:ae},m({_:2},[re.value.length>1?{name:`label-postfix`,fn:I(()=>[A(b(U),{placement:`top`},{content:I(()=>[n(g(V.value),1)]),default:I(()=>[a(`span`,{"data-test-id":`node-setup-card-nodes-hint`,class:w(r.$style[`nodes-hint`]),onMouseenter:se,onMouseleave:ce},g(b(u).baseText(`setupPanel.usedInNodes`,{interpolate:{count:String(re.value.length)}})),35)]),_:1})]),key:`0`}:void 0]),1032,[`node`,`override-cred-type`,`skip-auto-select`])],2)):_(``,!0),F.value.length>0?(t(),P(gt,{key:1,parameters:F.value,"node-values":e.state.node.parameters,"remove-first-parameter-margin":!0,node:e.state.node,"hide-delete":!0,"options-overrides":{hideExpressionSelector:!0,hideFocusPanelButton:!0},onValueChanged:oe},null,8,[`parameters`,`node-values`,`node`])):_(``,!0)],2))]),_:2},[z.value?{name:`header-extra`,fn:I(()=>[A(b(U),null,{content:I(()=>[n(g(b(u).baseText(`nodeCreator.nodeItem.triggerIconTitle`)),1)]),default:I(()=>[A(b(H),{icon:`zap`,size:`small`,color:`text-light`})]),_:1})]),key:`0`}:void 0]),1032,[`expanded`,`is-complete`,`loading`,`title`,`show-footer`,`executable-node`,`is-trigger`,`is-testing-credential`,`telemetry-payload`,`highlight-node-ids`]))}}),[[`__cssModules`,{$style:{content:`_content_1t2kp_125`,"credential-container":`_credential-container_1t2kp_132`,"nodes-hint":`_nodes-hint_1t2kp_138`}}]]),rr=Y(f({__name:`SetupPanelCards`,props:{showCompleted:{type:Boolean,default:!0}},setup(e){let r=e,i=R(),s=ze(),c=Cn(),l=He(),{setupCards:u,isAllComplete:d,setCredential:f,unsetCredential:m,firstTriggerName:v}=qn();D(d,e=>{e&&s.track(`User completed all setup steps`,{template_id:l?.value?.meta?.templateId,workflow_id:c.value})});let y=e=>{f(e.credentialType,e.credentialId,e.nodeName)},x=e=>{m(e.credentialType,e.nodeName)},S=h(()=>r.showCompleted?u.value:u.value.filter(e=>!e.state.isComplete)),T=e=>e.state.credentialType?`${e.state.credentialType}-${e.state.node.id}`:`${e.state.node.id}`,E=p({}),O=new Map,k=new Set,ee=!1,j=e=>E[e]??!1,te=(e,t)=>e.find((e,n)=>n>t&&!e.state.isComplete),ne=(e,t)=>{if(E[e]=t,!t){let t=u.value,n=t.findIndex(t=>T(t)===e);if(t[n]?.state.isComplete&&k.has(e)){let e=te(t,n);e&&(E[T(e)]=!0)}}};return D(u,e=>{for(let t of e){let e=T(t);if(k.has(e))continue;let n=t.state.templateParameterNames??[],r=Object.keys(t.state.parameterIssues);(n.length>0||r.length>0)&&k.add(e)}if(ee){let t=te(e,-1);if(t&&!O.has(T(t))){let n=e.findIndex(e=>E[T(e)]);n>e.indexOf(t)&&(E[T(e[n])]=!1,E[T(t)]=!0)}for(let t=0;t<e.length;t++){let n=e[t],r=T(n),i=O.get(r)??!1;if(n.state.isComplete&&!i&&!k.has(r)){if(E[r]=!1,!n.state.isAutoApplied||e.every((e,n)=>n===t||!E[T(e)])){let n=te(e,t);n&&(E[T(n)]=!0)}break}}}else{if(e.length===0)return;let t=te(e,-1);t&&(E[T(t)]=!0),ee=!0}O.clear();for(let t of e)O.set(T(t),t.state.isComplete)},{deep:!0,immediate:!0}),(e,r)=>(t(),o(`div`,{class:w(e.$style.container),"data-test-id":`setup-panel-cards-container`},[b(u).length===0?(t(),o(`div`,{key:0,class:w(e.$style[`empty-state`]),"data-test-id":`setup-cards-empty`},[A(b(H),{icon:`list-checks`,class:w(e.$style[`empty-icon`]),size:24,color:`text-base`},null,8,[`class`]),a(`div`,{class:w(e.$style[`empty-text`])},[A(b(K),{size:`medium`,color:`text-base`,bold:!0,"data-test-id":`setup-cards-empty-heading`},{default:I(()=>[n(g(b(i).baseText(`setupPanel.empty.heading`)),1)]),_:1}),A(b(K),{size:`medium`,color:`text-light`,"data-test-id":`setup-cards-empty-description`},{default:I(()=>[n(g(b(i).baseText(`setupPanel.empty.description`)),1)]),_:1})],2)],2)):(t(),o(`div`,{key:1,class:w(e.$style[`card-list`]),"data-test-id":`setup-cards-list`},[(t(!0),o(C,null,M(S.value,e=>(t(),P(nr,{key:T(e),state:e.state,"first-trigger-name":b(v),expanded:j(T(e)),"onUpdate:expanded":t=>ne(T(e),t),onCredentialSelected:y,onCredentialDeselected:x},null,8,[`state`,`first-trigger-name`,`expanded`,`onUpdate:expanded`]))),128)),b(d)?(t(),o(`div`,{key:0,class:w(e.$style[`complete-message`]),"data-test-id":`setup-cards-complete-message`},[A(b(K),{size:`medium`,color:`text-base`},{default:I(()=>[n(g(b(i).baseText(`setupPanel.everythingConfigured.message`)),1)]),_:1})],2)):_(``,!0)],2))],2))}}),[[`__cssModules`,{$style:{container:`_container_cicgv_125`,"card-list":`_card-list_cicgv_126`,"empty-state":`_empty-state_cicgv_134`,"empty-text":`_empty-text_cicgv_144`,"complete-message":`_complete-message_cicgv_150`}}]]),ir=Y(f({__name:`SetupPanel`,setup(e){let r=R(),i=s(!0);return(e,s)=>(t(),o(`div`,{class:w(e.$style.container),"data-test-id":`setup-panel-container`},[a(`div`,{class:w(e.$style.content),"data-test-id":`setup-panel-cards`},[A(rr,{"show-completed":i.value},null,8,[`show-completed`])],2),a(`footer`,{class:w(e.$style.footer),"data-test-id":`setup-panel-footer`},[A(b(K),{class:w(e.$style[`toggle-label`]),tag:`label`,size:`small`},{default:I(()=>[A(b(J),{modelValue:i.value,"onUpdate:modelValue":s[0]||=e=>i.value=e,size:`small`},null,8,[`modelValue`]),n(` `+g(b(r).baseText(`setupPanel.showCompleted`)),1)]),_:1},8,[`class`])],2)],2))}}),[[`__cssModules`,{$style:{container:`_container_3n09a_125`,content:`_content_3n09a_136`,footer:`_footer_3n09a_146`,"toggle-label":`_toggle-label_3n09a_156`}}]]),ar=Y(f({__name:`ExperimentalNodeDetailsDrawer`,props:{node:{},nodeIds:{},isReadOnly:{type:Boolean}},emits:[`openNdv`,`contextMenuAction`],setup(e,{emit:r}){let i=r,c=Mn(h(()=>e.node)),l=Nn(h(()=>e.nodeIds)),u=Qe(),d=s(0),f=h(()=>[e.node.id,d.value].join(`|`));return D(()=>u.activeNodeName,(e,t)=>{e===null&&t!==null&&(d.value+=1)}),ne(Tt,c),(r,s)=>(t(),o(`div`,{class:w(r.$style.component)},[e.nodeIds.length>1?(t(),P(b(K),{key:0,tag:`div`,color:`text-base`,class:w(r.$style.multipleNodes)},{default:I(()=>[a(`div`,null,g(e.nodeIds.length)+` nodes selected`,1),a(`ul`,{class:w(r.$style.multipleNodesActions)},[(t(!0),o(C,null,M(b(l),a=>(t(),o(`li`,{key:a.id,class:w(r.$style.multipleNodesAction)},[A(b(W),{variant:`subtle`,disabled:a.disabled,onClick:t=>i(`contextMenuAction`,a.id,e.nodeIds)},{default:I(()=>[n(g(a.label)+` `,1),a.shortcut?(t(),P(b(G),v({key:0,ref_for:!0},a.shortcut),null,16)):_(``,!0)]),_:2},1032,[`disabled`,`onClick`])],2))),128))],2)]),_:1},8,[`class`])):e.node?(t(),P(jn,{key:f.value,"node-id":e.node.id,"is-read-only":e.isReadOnly},null,8,[`node-id`,`is-read-only`])):_(``,!0)],2))}}),[[`__cssModules`,{$style:{component:`_component_1ef46_125`,multipleNodes:`_multipleNodes_1ef46_130`,multipleNodesActions:`_multipleNodesActions_1ef46_140`,multipleNodesAction:`_multipleNodesAction_1ef46_140`}}]]),or=Y(f({__name:`ExperimentalFocusPanelHeader`,props:{node:{},parameter:{},isExecutable:{type:Boolean},readOnly:{type:Boolean}},emits:[`execute`,`openNdv`,`clearParameter`,`renameNode`],setup(e,{emit:r}){let i=r,s=rt(),c=R(),l=h(()=>s.getNodeType(e.node.type,e.node.typeVersion));return(r,s)=>(t(),P(b(K),{tag:`header`,size:`small`,bold:``,class:w(r.$style.component)},{default:I(()=>[A(_n,{"node-type":l.value,size:16},null,8,[`node-type`]),a(`div`,{class:w(r.$style.breadcrumbs)},[e.parameter?(t(),o(C,{key:0},[A(b(K),{size:`small`,color:`text-base`,bold:``},{default:I(()=>[n(g(e.node.name),1)]),_:1}),A(b(K),{size:`small`,color:`text-light`},{default:I(()=>[...s[4]||=[n(`/`,-1)]]),_:1}),n(` `+g(e.parameter.displayName),1)],64)):(t(),P(b(q),{key:1,"model-value":e.node.name,"min-width":0,"max-width":500,placeholder:b(c).baseText(`ndv.title.rename.placeholder`),"read-only":e.readOnly,"onUpdate:modelValue":s[0]||=e=>i(`renameNode`,e)},null,8,[`model-value`,`placeholder`,`read-only`]))],2),e.parameter?(t(),P(b(ue),{key:0,variant:`ghost`,icon:`x`,size:`small`,onClick:s[1]||=e=>i(`clearParameter`)})):(t(),P(b(ue),{key:1,variant:`ghost`,icon:`expand`,size:`small`,onClick:s[2]||=e=>i(`openNdv`)})),e.isExecutable?(t(),P(vn,{key:2,"data-test-id":`node-execute-button`,"node-name":e.node.name,tooltip:`Execute ${e.node.name}`,type:`secondary`,size:`small`,icon:`play`,square:!0,"hide-label":!0,"telemetry-source":`focus`,onExecute:s[3]||=e=>i(`execute`)},null,8,[`node-name`,`tooltip`])):_(``,!0)]),_:1},8,[`class`]))}}),[[`__cssModules`,{$style:{component:`_component_1p4tv_125`,breadcrumbs:`_breadcrumbs_1p4tv_133`}}]]),sr=Y(f({name:`FocusPanel`,__name:`FocusPanel`,props:{isCanvasReadOnly:{type:Boolean}},emits:[`focus`,`saveKeyboardShortcut`,`contextMenuAction`],setup(e,{emit:r}){let c=e,l=r,u=s(),d=R(),f=xe(),p=Ne(),m=Cn(),v=$e(),x=He(),S=Ue(),T=rt(),E=pn(),O=ze(),k=ft(),ee=je(),j=un(),te=Qe(),M=tt(m.value),{renameNode:ne}=fn(),N=h(()=>p.resolvedParameter),F=s(``),L=re(async()=>{if(!N.value)return!1;let e=N.value.parameterPath.split(`.`).slice(1,-1).join(`.`);return!!N.value.parameter.disabledOptions&&await k.shouldDisplayNodeParameter(N.value.node.parameters,N.value.node,N.value.parameter,e,`disabledOptions`)},!1),z=re(async()=>{if(!N.value)return!0;let e=N.value.parameterPath.split(`.`).slice(1,-1).join(`.`);return await k.shouldDisplayNodeParameter(N.value.node.parameters,N.value.node,N.value.parameter,e,`displayOptions`)},!0),B=h(()=>{if(!j.isNdvInFocusPanelEnabled||N.value)return N.value?.node;let e=M.getSelectedNodes.value[0];return e?.data?.render.type===Ve.Default?(x?.value?.allNodes??[]).find(t=>t.id===e.id):void 0}),V=h(()=>M.getSelectedNodes.value.length>1),ie=h(()=>{if(!B.value||!z.value)return!1;let e=f.getForeignCredentialsIfSharingEnabled(B.value.credentials);return f.isNodeExecutable(B.value,!c.isCanvasReadOnly,e)}),{workflowRunData:ae}=Ln({node:B}),se=h(()=>{if(!B.value)return!0;let e=v.workflowObject.getParentNodes(B.value.name,`main`,1)[0];return!!(e&&ae.value&&Object.prototype.hasOwnProperty.bind(ae.value)(e))});function le(e){return N.value?vt(N.value.parameter,e):void 0}let ue=h(()=>N.value?.node.parameters.mode),U=h(()=>le(`editor`)??void 0),de=h(()=>U.value===`json`||N.value?.parameter.type===`json`?`json`:le(`editorLanguage`)??`javaScript`),W=h(()=>le(`rows`)),G=h(()=>N.value?T.isToolNode(N.value?.node.type):!1),fe=h(()=>!!N.value&&N.value.node.type===`n8n-nodes-base.html`),pe=h(()=>N.value&&be(N.value.parameter,N.value.value)),me=h(()=>pe.value?Ot(N.value)?N.value.value:N.value:``),he=h(()=>N.value?.node.type===It),q=h(()=>c.isCanvasReadOnly||L.value),ge=h(()=>({$vars:ee.variablesAsObject})),_e=h(()=>{if(N.value)return{nodeName:N.value.node.name,parameterPath:N.value.parameterPath}}),J=h(()=>S.executingNode.isNodeExecuting(B.value?.name??``)),ye=h(()=>M.getSelectedNodes.value.map(e=>e.id)),Y=h(()=>j.isNdvInFocusPanelEnabled?d.baseText(`nodeView.focusPanel.v2.noParameters.title`):d.baseText(`nodeView.focusPanel.noParameters.title`)),Se=h(()=>j.isNdvInFocusPanelEnabled?d.baseText(`nodeView.focusPanel.v2.noParameters.subtitle`):d.baseText(`nodeView.focusPanel.noParameters.subtitle`)),{resolvedExpression:Ce}=dt({expression:me,additionalData:ge,stringifyObject:N.value&&N.value.parameter.type!==`multiOptions`});function we(e){N.value!==void 0&&k.updateNodeParameter(i(N.value.node.parameters),{value:e,name:N.value.parameterPath},e,N.value.node,G.value)}async function Te(){await y(),u.value&&(Be(u.value)?u.value.focusOnInput():it(u.value)&&u.value.focus()),l(`focus`)}function Ee(e){if(N.value)switch(e){case`resetValue`:typeof N.value.parameter.default==`string`&&we(N.value.parameter.default),Te();break;case`addExpression`:{let e=mt(N.value.value,N.value.parameter.type);we(typeof e==`string`?e:e.value),Te();break}case`removeExpression`:{let e=yt(N.value.value,Ce.value,N.value.parameter.type,N.value.parameter.default,(N.value.parameter.options??[]).filter(bt));typeof e==`string`?we(e):e&&typeof e.value==`string`&&we(e.value),Te();break}case`formatHtml`:Xe.emit(`format-html`);break}}function De(){if((j.isNdvInFocusPanelEnabled||E.isFeatureEnabled)&&N.value){p.unsetParameters(),O.track(`User removed focused param`,{source:`closeIcon`,parameters:p.focusedNodeParametersInTelemetryFormat});return}O.track(`User closed focus panel`,{source:`closeIcon`,parameters:p.focusedNodeParametersInTelemetryFormat}),p.closeFocusPanel()}function Oe(){O.track(`User executed node from focus panel`,p.focusedNodeParametersInTelemetryFormat[0])}function ke(e){F.value=e,we(e)}function X(){setTimeout(()=>{Te()},50)}D([()=>p.lastFocusTimestamp,()=>pe.value],()=>X()),D(()=>N.value,e=>{if(e){let t=e.value;typeof t==`string`&&t!==F.value&&(F.value=t)}},{immediate:!0});function Ae(){B.value&&te.setActiveNodeName(B.value.name,`focus_panel`)}function Me(e){B.value&&ne(B.value.name,e)}return(r,i)=>(t(),o(`div`,{"data-test-id":`focus-panel`,class:w([r.$style.content,{[r.$style.isNdvInFocusPanelEnabled]:b(j).isNdvInFocusPanelEnabled}])},[b(j).isNdvInFocusPanelEnabled&&B.value&&!V.value?(t(),P(or,{key:0,node:B.value,parameter:N.value?.parameter,"is-executable":ie.value,"read-only":e.isCanvasReadOnly,onExecute:Oe,onOpenNdv:Ae,onClearParameter:De,onRenameNode:Me},null,8,[`node`,`parameter`,`is-executable`,`read-only`])):_(``,!0),N.value?(t(),o(`div`,{key:1,class:w(r.$style.content),"data-test-id":`focus-parameter`},[b(j).isNdvInFocusPanelEnabled?_(``,!0):(t(),o(`div`,{key:0,class:w(r.$style.tabHeader)},[a(`div`,{class:w(r.$style.tabHeaderText)},[A(b(K),{color:`text-dark`,size:`small`},{default:I(()=>[n(g(N.value.parameter.displayName),1)]),_:1}),A(b(K),{color:`text-base`,size:`xsmall`},{default:I(()=>[n(g(N.value.node.name),1)]),_:1})],2),a(`div`,{class:w(r.$style.buttonWrapper)},[A(vn,{"data-test-id":`node-execute-button`,"node-name":N.value.node.name,tooltip:`Execute ${N.value.node.name}`,disabled:!ie.value,size:`small`,icon:`play`,square:!0,"hide-label":!0,"telemetry-source":`focus`,onExecute:Oe},null,8,[`node-name`,`tooltip`,`disabled`]),A(b(H),{class:w(r.$style.closeButton),icon:`x`,color:`text-base`,size:`xlarge`,onClick:De},null,8,[`class`])],2)],2)),a(`div`,{class:w(r.$style.parameterDetailsWrapper)},[a(`div`,{class:w(r.$style.parameterOptionsWrapper)},[a(`div`,{class:w(r.$style.noExecutionDataTip)},[!se.value&&!J.value?(t(),P(b(ve),{key:0,class:w(r.$style.delayedShow),bold:!0},{default:I(()=>[n(g(b(d).baseText(`nodeView.focusPanel.noExecutionData`)),1)]),_:1},8,[`class`])):_(``,!0)],2),b(z)?(t(),P(pt,{key:0,parameter:N.value.parameter,value:N.value.value,"is-read-only":q.value,"onUpdate:modelValue":Ee},null,8,[`parameter`,`value`,`is-read-only`])):_(``,!0)],2),typeof N.value.value==`string`?(t(),o(`div`,{key:0,class:w(r.$style.editorContainer)},[b(z)?pe.value?(t(),P(ot,{key:1,ref_key:`inputField`,ref:u,modelValue:F.value,"onUpdate:modelValue":i[0]||=e=>F.value=e,class:w(r.$style.editor),"is-read-only":q.value,path:N.value.parameterPath,"data-test-id":`expression-modal-input`,"target-node-parameter-context":_e.value,onChange:i[1]||=e=>ke(e.value)},null,8,[`modelValue`,`class`,`is-read-only`,`path`,`target-node-parameter-context`])):[`json`,`string`].includes(N.value.parameter.type)?(t(),o(C,{key:2},[U.value===`codeNodeEditor`?(t(),P(ct,{key:0,id:N.value.parameterPath,ref_key:`inputField`,ref:u,modelValue:F.value,"onUpdate:modelValue":[i[2]||=e=>F.value=e,ke],class:w(r.$style.heightFull),mode:ue.value,"default-value":N.value.parameter.default,language:de.value,"is-read-only":q.value,"target-node-parameter-context":_e.value,"fill-parent":``,"disable-ask-ai":!0},null,8,[`id`,`modelValue`,`class`,`mode`,`default-value`,`language`,`is-read-only`,`target-node-parameter-context`])):U.value===`htmlEditor`?(t(),P(st,{key:1,ref_key:`inputField`,ref:u,modelValue:F.value,"onUpdate:modelValue":[i[3]||=e=>F.value=e,ke],"is-read-only":q.value,rows:W.value,"disable-expression-coloring":!fe.value,"disable-expression-completions":!fe.value,fullscreen:``,"target-node-parameter-context":_e.value},null,8,[`modelValue`,`is-read-only`,`rows`,