UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

2 lines 35.9 kB
(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]=`7387c905-b539-4c7e-898e-1fce156e5371`,e._sentryDebugIdIdentifier=`sentry-dbid-7387c905-b539-4c7e-898e-1fce156e5371`)})()}catch{}import{o as e}from"./chunk-DxpFCn6T.js";import{$ as t,A as n,At as r,C as i,E as a,Ft as o,Ht as s,K as c,N as l,O as u,S as d,Sn as f,T as p,U as m,W as h,Wt as g,_,_n as v,gt as ee,h as te,j as y,pt as ne,rt as b,v as re,w as x,yt as S}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{$ as C,bt as ie}from"./_MapCache-CUJwh2qp.js";import{$i as w,Bt as T,Et as E,Ii as D,Mi as ae,Qi as O,St as k,Tt as oe,Zi as se,at as A,it as j,jt as ce,v as le,vt as ue}from"./src-wni2AGA3.js";import{t as M}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import"./sanitize-html-my1ogl5v.js";import"./date-picker-_u2qOcgh.js";import{$t as de,nn as fe,rn as pe,s as me}from"./users.store-BHWXXawf.js";import{I as he,a as N,d as P,r as F,t as I}from"./ParameterInputList-BFWz3KF9.js";import{Go as L,Uo as R,Wa as z,Xa as B}from"./constants-CIP7tKq1.js";import"./merge-BqvKZ38d.js";import{N as ge}from"./_baseOrderBy-CaKruttV.js";import"./dateformat-CYfyw486.js";import"./useDebounce-CTeIt-cH.js";import"./useClipboard-D72kaMkX.js";import"./executions.store-CZbPSd3l.js";import"./assistant.store-BOJw9cI0.js";import"./chatPanel.store-N5nWYKck.js";import"./RunData-CqDg79Fs.js";import"./NDVEmptyState-DMWlSoOG.js";import"./externalSecrets.ee.store-JZ2zh2En.js";import"./uniqBy-CvYQiCPx.js";import"./usePinnedData-bxdhY-Ce.js";import"./nodeIcon-BFJyt77y.js";import"./canvas.utils-BMxgA7cX.js";import"./canvas.eventBus-C-z2MFNA.js";import"./useCanvasOperations-CI7Ylcwf.js";import"./setupPanel.store-D0Kh-_X7.js";import"./nodeTransforms-DgA3LbBA.js";import"./templateTransforms-Bcjcx-gt.js";import"./useQuickConnect-CGSObYV3.js";import"./CredentialIcon-BKhP7Biv.js";import"./useDynamicCredentials-C74iW7Qx.js";import"./RunDataHtml-B-bE8ase.js";import"./Draggable-B_Sok8jx.js";import"./NodeIcon-0naEDfOR.js";import"./VirtualSchema-VZf8DCpb.js";import"./useCalloutHelpers-BtD3kQKI.js";import"./useTelemetryContext-Chv8_oZ6.js";import"./useRunWorkflow-BbbTafql.js";import"./pushConnection.store-L5aofOKN.js";import"./vue-json-pretty-CBkxkEgX.js";import"./collaboration.store-BcnGWDqh.js";import"./dateFormatter-aoRZizgK.js";import"./useExecutionHelpers-D8SD8Eej.js";import"./vue-DqU7Busn.js";var V=e(le(),1),_e=e(L(),1),ve=e(F(),1),ye=[`data-test-id`],H={key:1},be={class:`optional-value-item`},xe={class:`optional-value-item`},U=M(l({__name:`FixedCollectionParameterLegacy`,props:{nodeValues:{},parameter:{},path:{},values:{default:()=>({})},isReadOnly:{type:Boolean,default:!1},isNested:{type:Boolean},hiddenIssuesInputs:{default:()=>[]}},emits:[`valueChanged`],setup(e,{emit:r}){let s=ie(),l=de(),u=e,m=r,h=me(),ne=pe(),{activeNode:C}=ge(ne),T=o({}),ae=o(null),k=e=>{if(z(u.parameter.options))return u.parameter.options.find(t=>t.name===e)},A=(e,t)=>`${u.path}.${e}${t===void 0?``:`[${t}]`}`,j=d(()=>!!u.parameter.typeOptions?.multipleValues),ce=d(()=>!u.parameter.typeOptions?.hideEmptyMessage),le=d(()=>!!u.parameter.typeOptions?.sortable),M=d(()=>u.parameter.typeOptions?.fixedCollection?.layout),he=d(()=>s.nodeText(C.value?.type).placeholder(u.parameter,u.path)||s.baseText(`fixedCollectionParameter.choose`)),N=d(()=>new Set(Object.keys(T.value||{}))),P=d(()=>{let e=[];for(let t of N.value){let n=k(t);n&&e.push(n)}return e}),F=o(new Map),L=d(()=>z(u.parameter.options)?j.value?u.parameter.options:u.parameter.options.filter(e=>!N.value.has(e.name)):[]),R=d(()=>!!u.parameter.typeOptions?.hideOptionalFields),U=d(()=>u.parameter.typeOptions?.addOptionalFieldButtonText?s.nodeText(C.value?.type).addOptionalFieldButtonText(u.parameter):s.baseText(`fixedCollectionParameter.addField`)),W=(e,t)=>t===void 0?e:`${e}-${t}`,G=(e,t)=>{if(!t)return!1;let n=t[e.name];return n==null||typeof n==`string`&&n===``?!1:typeof n==`object`?!(0,_e.default)(n,e.default):n!==e.default},Se=()=>{if(R.value&&z(u.parameter.options)){F.value.clear();for(let e of u.parameter.options){let t=`${u.path}.${e.name}`,n=(0,V.default)(u.nodeValues,t);if(!n)continue;let r=e.values.filter(e=>e.required!==!0&&e.type!==`notice`);if(j.value&&Array.isArray(n))n.forEach((t,n)=>{let i=W(e.name,n),a=new Set;for(let e of r)G(e,t)&&a.add(e.name);a.size>0&&F.value.set(i,a)});else if(typeof n==`object`&&!Array.isArray(n)){let t=W(e.name),i=new Set;for(let e of r)G(e,n)&&i.add(e.name);i.size>0&&F.value.set(t,i)}}}},Ce=(e,t,n)=>{let r=W(e,n);return F.value.get(r)?.has(t)??!1},K=(e,t)=>{if(!R.value)return e.values;let n=W(e.name,t),r=F.value.get(n);return e.values.filter(e=>!!(e.required===!0||e.type===`notice`||r?.has(e.name)||e.typeOptions?.showEvenWhenOptional))},q=(e,t)=>{if(!R.value)return[];let n=A(e.name,t);return e.values.filter(e=>e.required===!0||e.type===`notice`||e.typeOptions?.showEvenWhenOptional?!1:l.displayParameter(u.nodeValues,e,n,C.value))},we=(e,t,n)=>{let r=W(e.name,n),i=F.value.get(r);i||(i=new Set,F.value.set(r,i));let a=e.values.find(e=>e.name===t);if(!a)return;let o=i.has(t);o?i.delete(t):i.add(t),F.value.set(r,i),m(`valueChanged`,{name:A(e.name,n)+`.${t}`,value:o?void 0:B(a.default)})};ee(()=>u.values,e=>{T.value=B(e)},{deep:!0}),c(()=>{T.value=B(u.values),Se()});let Te=(e,t)=>{let n=T.value[e];if(!n||Array.isArray(n)&&n.length>1)m(`valueChanged`,{name:A(e,t),value:void 0});else if(!j.value&&u.isNested){let e=u.path.split(`.`),t=e.slice(0,-1).join(`.`),n=e[e.length-1];m(`valueChanged`,{name:t?`${t}.${n}`:n,value:void 0})}else m(`valueChanged`,{name:A(e),value:void 0})},Ee=e=>{if(e.typeOptions?.multipleValues!==!0)return B(e.default);if(e.type===`fixedCollection`)return{};let t=(0,V.default)(u.nodeValues,[u.path,e.name],[]),n=e.default,r=Array.isArray(n)?B(n):n!==``&&typeof n!=`object`?[B(n)]:[];return t.concat(r)},J=async e=>{let t=k(e);if(!t)return;let n=`${u.path}.${t.name}`,r=t.values.reduce((e,t)=>(e[t.name]=Ee(t),e),{}),i=(0,V.default)(u.nodeValues,n,[]);m(`valueChanged`,{name:n,value:j.value?[...i,r]:r}),ae.value=void 0},De=async e=>{await J(e),u.parameter.name===`workflowInputs`&&X()},Y=e=>{m(`valueChanged`,e),u.parameter.name===`workflowInputs`&&ke(e)},Oe=e=>{m(`valueChanged`,{name:A(e),value:T.value[e],type:`optionsOrderChanged`})},ke=e=>{fe.track(`User changed workflow input field type`,{type:e.value,workflow_id:h.workflow.id,node_id:ne.activeNode?.id})},X=()=>{fe.track(`User added workflow input field`,{workflow_id:h.workflow.id,node_id:ne.activeNode?.id})};function Z(e,t){return t}return(r,o)=>(t(),a(`div`,{class:v(r.$style.fixedCollectionParameter),"data-test-id":`fixed-collection-${u.parameter?.name}`,onKeydown:o[2]||=te(()=>{},[`stop`])},[P.value.length===0?(t(),a(`div`,{key:0,class:v(r.$style.noItemsExist)},[ce.value?(t(),x(g(se),{key:0,size:`small`},{default:S(()=>[n(f(g(s).baseText(`fixedCollectionParameter.currentlyNoItemsExist`)),1)]),_:1})):p(``,!0)],2)):p(``,!0),(t(!0),a(_,null,b(P.value,n=>(t(),a(`div`,{key:n.name,class:v(r.$style.fixedCollectionParameterProperty)},[n.displayName!==``&&e.parameter.options&&e.parameter.options.length!==1?(t(),x(g(ue),{key:0,label:g(s).nodeText(g(C)?.type).inputLabelDisplayName(n,e.path),underline:!0,size:`small`,color:`text-dark`},null,8,[`label`])):p(``,!0),j.value?(t(),a(`div`,H,[y(g(ve.default),{modelValue:T.value[n.name],"onUpdate:modelValue":e=>T.value[n.name]=e,handle:`.drag-handle`,"item-key":Z,"drag-class":r.$style.dragging,"ghost-class":r.$style.ghost,"chosen-class":r.$style.chosen,onChange:e=>Oe(n.name)},{item:S(({index:o})=>[M.value===`inline`?(t(),a(`div`,{key:`inline-`+n.name+`-`+o,class:v(r.$style.inlineItem)},[y(I,{parameters:K(n,o),"node-values":e.nodeValues,path:A(n.name,o),"is-read-only":e.isReadOnly,"is-nested":e.isNested,"hide-delete":!0,layout:`inline`,"hidden-issues-inputs":e.hiddenIssuesInputs,onValueChanged:Y},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`is-nested`,`hidden-issues-inputs`]),e.isReadOnly?p(``,!0):(t(),x(g(D),{key:0,icon:`x`,variant:`ghost`,size:`small`,"data-test-id":`fixed-collection-delete-inline`,onClick:e=>Te(n.name,o)},null,8,[`onClick`]))],2)):(t(),a(`div`,{key:n.name+`-`+o,class:v(r.$style.parameterItem)},[i(`div`,{class:v([r.$style.parameterItemWrapper,{[r.$style.borderTopDashed]:o}])},[e.isReadOnly?p(``,!0):(t(),a(`div`,{key:0,class:v([r.$style.iconButton,r.$style.defaultTopPadding])},[le.value?(t(),x(g(D),{key:0,variant:`ghost`,size:`small`,icon:`grip-vertical`,title:g(s).baseText(`fixedCollectionParameter.dragItem`),class:`drag-handle`},null,8,[`title`])):p(``,!0)],2)),e.isReadOnly?p(``,!0):(t(),a(`div`,{key:1,class:v([r.$style.iconButton,r.$style.extraTopPadding])},[y(g(D),{variant:`ghost`,size:`small`,icon:`trash-2`,"data-test-id":`fixed-collection-delete`,title:g(s).baseText(`fixedCollectionParameter.deleteItem`),onClick:e=>Te(n.name,o)},null,8,[`title`,`onClick`])],2)),(t(),x(re,null,{default:S(()=>[y(I,{parameters:K(n,o),"node-values":e.nodeValues,path:A(n.name,o),"is-read-only":e.isReadOnly,"is-nested":e.isNested,"hide-delete":!0,"hidden-issues-inputs":e.hiddenIssuesInputs,onValueChanged:Y},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`is-nested`,`hidden-issues-inputs`])]),_:2},1024)),q(n,o).length>0&&!e.isReadOnly?(t(),a(`div`,{key:2,class:v(r.$style.addOption),"data-test-id":`fixed-collection-add-property`},[y(g(oe),{placeholder:U.value,size:`small`,filterable:``,"model-value":null,"onUpdate:modelValue":e=>we(n,e,o)},{default:S(()=>[(t(!0),a(_,null,b(q(n,o),e=>(t(),x(g(E),{key:e.name,label:e.displayName||e.name,value:e.name},{default:S(()=>[i(`div`,be,[i(`span`,null,f(e.displayName||e.name),1),Ce(n.name,e.name,o)?(t(),x(g(w),{key:0,icon:`check`,size:`medium`})):p(``,!0)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},1032,[`placeholder`,`onUpdate:modelValue`])],2)):p(``,!0)],2)],2))]),_:2},1032,[`modelValue`,`onUpdate:modelValue`,`drag-class`,`ghost-class`,`chosen-class`,`onChange`])])):M.value===`inline`?(t(),a(`div`,{key:2,class:v(r.$style.inlineItem)},[y(I,{parameters:K(n),"node-values":e.nodeValues,path:A(n.name),"is-read-only":e.isReadOnly,"is-nested":e.isNested,"hide-delete":!0,layout:`inline`,"hidden-issues-inputs":e.hiddenIssuesInputs,onValueChanged:Y},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`is-nested`,`hidden-issues-inputs`])],2)):(t(),a(`div`,{key:3,class:v(r.$style.parameterItem)},[i(`div`,{class:v(r.$style.parameterItemWrapper)},[e.isReadOnly?p(``,!0):(t(),a(`div`,{key:0,class:v(r.$style.iconButton)},[y(g(D),{variant:`ghost`,size:`small`,icon:`trash-2`,"data-test-id":`fixed-collection-delete`,title:g(s).baseText(`fixedCollectionParameter.deleteItem`),onClick:e=>Te(n.name)},null,8,[`title`,`onClick`])],2)),y(I,{parameters:K(n),"node-values":e.nodeValues,path:A(n.name),"is-read-only":e.isReadOnly,"is-nested":e.isNested,"hide-delete":!0,class:v(r.$style.parameterItem),"hidden-issues-inputs":e.hiddenIssuesInputs,onValueChanged:Y},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`is-nested`,`class`,`hidden-issues-inputs`]),q(n).length>0&&!e.isReadOnly?(t(),a(`div`,{key:1,class:v(r.$style.addOption),"data-test-id":`fixed-collection-add-property`},[y(g(oe),{placeholder:U.value,size:`small`,filterable:``,"model-value":null,"onUpdate:modelValue":e=>we(n,e)},{default:S(()=>[(t(!0),a(_,null,b(q(n),e=>(t(),x(g(E),{key:e.name,label:e.displayName||e.name,value:e.name},{default:S(()=>[i(`div`,xe,[i(`span`,null,f(e.displayName||e.name),1),Ce(n.name,e.name)?(t(),x(g(w),{key:0,icon:`check`,size:`medium`})):p(``,!0)])]),_:2},1032,[`label`,`value`]))),128))]),_:2},1032,[`placeholder`,`onUpdate:modelValue`])],2)):p(``,!0)],2)],2))],2))),128)),L.value.length>0&&!e.isReadOnly?(t(),a(`div`,{key:1,class:v(r.$style.controls)},[e.parameter.options&&e.parameter.options.length===1?(t(),x(g(O),{key:0,style:{width:`100%`},variant:`subtle`,size:`small`,"data-test-id":`fixed-collection-add`,label:he.value,onClick:o[0]||=t=>De(e.parameter.options[0].name)},null,8,[`label`])):(t(),a(`div`,{key:1,class:v(r.$style.addOption)},[y(g(oe),{modelValue:ae.value,"onUpdate:modelValue":[o[1]||=e=>ae.value=e,J],placeholder:he.value,size:`small`,filterable:``},{default:S(()=>[(t(!0),a(_,null,b(L.value,n=>(t(),x(g(E),{key:n.name,label:g(s).nodeText(g(C)?.type).collectionOptionDisplayName(e.parameter,n,e.path),value:n.name},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])],2))],2)):p(``,!0)],42,ye))}}),[[`__cssModules`,{$style:{inlineItem:`_inlineItem_1nekp_125`,fixedCollectionParameter:`_fixedCollectionParameter_1nekp_142`,ghost:`_ghost_1nekp_145`,dragging:`_dragging_1nekp_146`,parameterItemWrapper:`_parameterItemWrapper_1nekp_158`,controls:`_controls_1nekp_161`,active:`_active_1nekp_176`,fixedCollectionParameterProperty:`_fixedCollectionParameterProperty_1nekp_180`,iconButton:`_iconButton_1nekp_185`,parameterItem:`_parameterItem_1nekp_158`,defaultTopPadding:`_defaultTopPadding_1nekp_202`,extraTopPadding:`_extraTopPadding_1nekp_205`,borderTopDashed:`_borderTopDashed_1nekp_215`,noItemsExist:`_noItemsExist_1nekp_219`,addOption:`_addOption_1nekp_223`}}]]);function W(e,{defaultWrapperExpanded:t=!1}={}){let n=s(e),r=`n8n-fixed-collection-expanded-${n}`,i=`n8n-fixed-collection-wrapper-${n}`,a=`n8n-fixed-collection-stable-indexes-${n}`,c=o({}),l=()=>{let e=sessionStorage.getItem(a);if(!e)return{};try{return JSON.parse(e)}catch{return{}}},u=e=>{sessionStorage.setItem(a,JSON.stringify(e))},d=()=>{let e=sessionStorage.getItem(r);return e?new Set(e.split(`,`).filter(Boolean)):new Set},f=e=>{sessionStorage.setItem(r,Array.from(e).join(`,`))},p=o(d()),m=()=>{let e=sessionStorage.getItem(i);return e===null?t:e===`true`},h=e=>{sessionStorage.setItem(i,String(e))},g=o(m()),_=(e,t)=>{if(c.value[e]||(c.value[e]=[]),!c.value[e][t]){let n=l()[e]||[],r,i=!1;if(n[t]!==void 0)r=n[t];else{let t=c.value[e].map(e=>e?.stableIndex).filter(e=>e!==void 0);r=(t.length>0?Math.max(...t):-1)+1,i=!0}if(c.value[e][t]={id:R(),stableIndex:r},i){let t=l();t[e]=c.value[e].map(e=>e.stableIndex),u(t)}}return c.value[e][t].id},v=(e,t)=>(c.value[e]?.[t]||_(e,t),c.value[e][t].stableIndex);return ee(g,e=>{h(e)}),{getItemId:_,getItemStableIndex:v,getExpandedState:(e,t)=>{let n=`${e}:${v(e,t)}`;return p.value.has(n)},setExpandedState:(e,t,n)=>{let r=`${e}:${v(e,t)}`;n?p.value.add(r):p.value.delete(r),f(p.value)},initExpandedState:(e,t,n)=>{c.value[e]||(c.value[e]=[]),n&&t.forEach((t,n)=>{_(e,n)})},cleanupItem:(e,t)=>{if(c.value[e]){let n=c.value[e][t];if(c.value[e].splice(t,1),n?.stableIndex!==void 0){let t=`${e}:${n.stableIndex}`;p.value.delete(t),f(p.value)}let r=l();r[e]=c.value[e].map(e=>e.stableIndex),u(r)}},cleanupProperty:e=>{c.value[e]&&(c.value[e].map(e=>e.stableIndex).forEach(t=>{let n=`${e}:${t}`;p.value.delete(n)}),delete c.value[e]);let t=l();delete t[e],u(t),f(p.value)},trimArrays:(e,t)=>{if(c.value[e]&&c.value[e].length>t){c.value[e]=c.value[e].slice(0,t);let n=l();n[e]=c.value[e].map(e=>e.stableIndex),u(n)}},reorderItems:(e,t,n)=>{if(c.value[e]){let r=[...c.value[e]],[i]=r.splice(t,1);r.splice(n,0,i),c.value[e]=r;let a=l();a[e]=r.map(e=>e.stableIndex),u(a)}},wrapperExpanded:g}}var G=[`data-item-key`],Se=M(l({__name:`FixedCollectionItem`,props:{itemId:{},property:{},itemData:{},itemIndex:{},stableIndex:{},nodeValues:{},propertyPath:{},isReadOnly:{type:Boolean},isExpanded:{type:Boolean},sortable:{type:Boolean},disableAnimation:{type:Boolean},isDragging:{type:Boolean},titleTemplate:{},visiblePropertyValues:{},pickerPropertyValues:{},isOptionalValueAdded:{type:Function},addOptionalFieldButtonText:{},layout:{}},emits:[`update:isExpanded`,`valueChanged`,`delete`,`toggleOptionalValue`],setup(e,{emit:n}){let r=ie(),{isEnabled:i}=P(),o=e,s=n,c=d(()=>o.pickerPropertyValues.length>0&&!o.isReadOnly),l=d(()=>o.pickerPropertyValues.map(e=>({id:e.name,label:e.displayName||e.name,checked:o.isOptionalValueAdded(e.name)}))),f=d(()=>`${o.property.displayName} ${o.stableIndex+1}`),{resolvedExpression:m}=N({expression:()=>o.titleTemplate??``,additionalData:()=>({$collection:{item:{value:o.itemData,index:o.stableIndex,properties:o.property.values}}})}),h=e=>!!e&&e!==`undefined`&&e!==`null`&&typeof e==`string`,_=d(()=>{if(!o.titleTemplate)return f.value;let e=m.value;return h(e)?e:f.value}),ee=e=>s(`valueChanged`,e);return(n,o)=>e.layout===`inline`?(t(),a(`div`,{key:0,class:v(n.$style.inlineItem),"data-item-key":e.itemId},[y(I,{"hide-delete":``,"is-nested":``,layout:`inline`,parameters:e.visiblePropertyValues,"node-values":e.nodeValues,path:e.propertyPath,"is-read-only":e.isReadOnly,"remove-first-parameter-margin":!0,"remove-last-parameter-margin":!0,onValueChanged:ee},null,8,[`parameters`,`node-values`,`path`,`is-read-only`]),e.isReadOnly?p(``,!0):(t(),x(g(D),{key:0,icon:`x`,variant:`ghost`,size:`small`,"data-test-id":`fixed-collection-item-delete-inline`,onClick:o[0]||=e=>s(`delete`)}))],10,G)):(t(),x(g(ce),{key:e.itemId,"model-value":e.isExpanded,title:_.value,"data-item-key":e.itemId,"disable-animation":e.disableAnimation,"onUpdate:modelValue":o[3]||=e=>s(`update:isExpanded`,e)},u({default:S(()=>[y(I,{"hide-delete":``,"is-nested":``,parameters:e.visiblePropertyValues,"node-values":e.nodeValues,path:e.propertyPath,"is-read-only":e.isReadOnly,"remove-first-parameter-margin":g(i),"remove-last-parameter-margin":g(i),onValueChanged:ee},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`remove-first-parameter-margin`,`remove-last-parameter-margin`]),c.value?(t(),a(`div`,{key:0,class:v(n.$style.addOption),"data-test-id":`fixed-collection-add-property`},[y(g(T),{items:l.value,onSelect:o[2]||=e=>s(`toggleOptionalValue`,e)},{activator:S(()=>[y(g(O),{class:`n8n-button--highlightFill`,variant:`subtle`,icon:`plus`,size:`small`,label:e.addOptionalFieldButtonText},null,8,[`label`])]),_:1},8,[`items`])],2)):p(``,!0)]),_:2},[e.isReadOnly?void 0:{name:`actions`,fn:S(()=>[y(g(j),{icon:`trash-2`,label:g(r).baseText(`fixedCollectionParameter.deleteItem`),tooltip:g(r).baseText(`fixedCollectionParameter.deleteParameter`,{interpolate:{parameter:_.value}}),danger:``,"test-id":`fixed-collection-item-delete`,onClick:o[1]||=e=>s(`delete`)},null,8,[`label`,`tooltip`]),e.sortable?(t(),x(g(j),{key:0,icon:`grip-vertical`,label:g(r).baseText(`fixedCollectionParameter.dragItem`),class:v([`drag-handle`,n.$style.dragHandle,{[n.$style.dragging]:e.isDragging}]),"test-id":`fixed-collection-item-drag`},null,8,[`label`,`class`])):p(``,!0)]),key:`0`}]),1032,[`model-value`,`title`,`data-item-key`,`disable-animation`]))}}),[[`__cssModules`,{$style:{inlineItem:`_inlineItem_9ceom_125`,dragHandle:`_dragHandle_9ceom_139`,dragging:`_dragging_9ceom_143`,addOption:`_addOption_9ceom_147`}}]]),Ce=e(F(),1),K=400,q=M(l({__name:`FixedCollectionItemList`,props:{property:{},values:{},nodeValues:{},getPropertyPath:{type:Function},itemState:{},isReadOnly:{type:Boolean},sortable:{type:Boolean},titleTemplate:{},getVisiblePropertyValues:{type:Function},getPickerPropertyValues:{type:Function},isOptionalValueAdded:{type:Function},addOptionalFieldButtonText:{},layout:{}},emits:[`valueChanged`,`delete`,`dragChange`,`toggleOptionalValue`],setup(e,{emit:n}){let r=e,i=n,a=o(!1),s=C(a,d(()=>a.value?0:K)),c=e=>r.itemState.getItemId(r.property.name,r.values.findIndex(t=>t===e)),l=e=>{a.value=e},u=e=>i(`dragChange`,r.property.name,e),f=e=>i(`valueChanged`,e),p=e=>i(`delete`,r.property.name,e),m=(e,t)=>i(`toggleOptionalValue`,r.property.name,t,e),h=e=>t=>r.isOptionalValueAdded(r.property.name,t,e);return(n,r)=>(t(),x(g(Ce.default),{"model-value":e.values,"item-key":c,handle:`.drag-handle`,"drag-class":n.$style.dragging,"ghost-class":n.$style.ghost,onStart:r[0]||=e=>l(!0),onEnd:r[1]||=e=>l(!1),onChange:u},{item:S(({index:n})=>[(t(),x(Se,{key:e.itemState.getItemId(e.property.name,n),"item-id":e.itemState.getItemId(e.property.name,n),property:e.property,"item-data":e.values[n],"item-index":n,"stable-index":e.itemState.getItemStableIndex(e.property.name,n),"node-values":e.nodeValues,"property-path":e.getPropertyPath(e.property.name,n),"is-read-only":e.isReadOnly,"is-expanded":e.itemState.getExpandedState(e.property.name,n),"is-dragging":a.value,sortable:e.sortable,"disable-animation":g(s),"title-template":e.titleTemplate,"visible-property-values":e.getVisiblePropertyValues(e.property,n),"picker-property-values":e.getPickerPropertyValues(e.property,n),"add-optional-field-button-text":e.addOptionalFieldButtonText,"is-optional-value-added":h(n),layout:e.layout,"onUpdate:isExpanded":t=>e.itemState.setExpandedState(e.property.name,n,t),onValueChanged:f,onDelete:e=>p(n),onToggleOptionalValue:e=>m(n,e)},null,8,[`item-id`,`property`,`item-data`,`item-index`,`stable-index`,`node-values`,`property-path`,`is-read-only`,`is-expanded`,`is-dragging`,`sortable`,`disable-animation`,`title-template`,`visible-property-values`,`picker-property-values`,`add-optional-field-button-text`,`is-optional-value-added`,`layout`,`onUpdate:isExpanded`,`onDelete`,`onToggleOptionalValue`]))]),_:1},8,[`model-value`,`drag-class`,`ghost-class`]))}}),[[`__cssModules`,{$style:{ghost:`_ghost_1t7ke_125`,dragging:`_dragging_1t7ke_126`}}]]),we=e(le(),1),Te=e(L(),1),Ee=[`data-test-id`],J=M(l({__name:`FixedCollectionParameterNew`,props:{nodeValues:{},parameter:{},path:{},values:{default:()=>({})},isReadOnly:{type:Boolean,default:!1},isNested:{type:Boolean},isNewlyAdded:{type:Boolean,default:!1},canDelete:{type:Boolean,default:!1},hiddenIssuesInputs:{default:()=>[]}},emits:[`valueChanged`,`delete`],setup(e,{emit:s}){let l=ie(),m=pe(),re=me(),C=de(),{activeNode:w}=ge(m),T=e,E=s,D=o({}),oe=ne(`rootEl`),se=o(!1),A=o(new Map),le=d(()=>`${w.value?.id??`unknown`}-${T.path}`),ue=d(()=>{let e=Object.entries(T.values);if(e.length!==1)return!1;let[,t]=e[0];return Array.isArray(t)?t.length===1:Object.keys(t).length>0}),M=W(le,{defaultWrapperExpanded:T.isNewlyAdded||ue.value}),N=M.wrapperExpanded,P=e=>{if(z(T.parameter.options))return T.parameter.options.find(t=>t.name===e)},F=(e,t)=>`${T.path}.${e}${t===void 0?``:`[${t}]`}`,L=e=>Array.isArray(D.value[e]),R=e=>{let t=D.value[e];return Array.isArray(t)?t:[]},V=d(()=>!!T.parameter.typeOptions?.multipleValues),_e=d(()=>!!T.parameter.typeOptions?.sortable),ve=d(()=>T.parameter.typeOptions?.fixedCollection?.layout),ye=d(()=>new Set(Object.keys(D.value??{}))),H=d(()=>Array.from(ye.value).map(P).filter(e=>e!==void 0)),be=d(()=>z(T.parameter.options)?V.value?T.parameter.options:T.parameter.options.filter(e=>!ye.value.has(e.name)):[]),xe=d(()=>!!T.parameter.typeOptions?.hideOptionalFields),U=d(()=>T.parameter.typeOptions?.addOptionalFieldButtonText?l.nodeText(w.value?.type).addOptionalFieldButtonText(T.parameter):l.baseText(`fixedCollectionParameter.addField`)),G=(e,t)=>t===void 0?e:`${e}-${t}`,Se=(e,t)=>{if(!t)return!1;let n=t[e.name];return n==null||typeof n==`string`&&n===``?!1:typeof n==`object`?!(0,Te.default)(n,e.default):n!==e.default},Ce=()=>{if(xe.value&&z(T.parameter.options)){A.value.clear();for(let e of T.parameter.options){let t=`${T.path}.${e.name}`,n=(0,we.default)(T.nodeValues,t);if(!n)continue;let r=e.values.filter(e=>e.required!==!0&&e.type!==`notice`);if(V.value&&Array.isArray(n))n.forEach((t,n)=>{let i=G(e.name,n),a=new Set;for(let e of r)Se(e,t)&&a.add(e.name);a.size>0&&A.value.set(i,a)});else if(typeof n==`object`&&!Array.isArray(n)){let t=G(e.name),i=new Set;for(let e of r)Se(e,n)&&i.add(e.name);i.size>0&&A.value.set(t,i)}}}},K=(e,t,n)=>{let r=G(e,n);return A.value.get(r)?.has(t)??!1},J=(e,t)=>{if(!xe.value)return e.values;let n=G(e.name,t),r=A.value.get(n);return e.values.filter(e=>!!(e.required===!0||e.type===`notice`||r?.has(e.name)||e.typeOptions?.showEvenWhenOptional))},De=(e,t)=>{if(!xe.value)return[];let n=F(e.name,t);return e.values.filter(e=>e.required===!0||e.type===`notice`||e.typeOptions?.showEvenWhenOptional?!1:C.displayParameter(T.nodeValues,e,n,w.value))},Y=(e,t,n)=>{let r=G(e.name,n),i=A.value.get(r);i||(i=new Set,A.value.set(r,i));let a=e.values.find(e=>e.name===t);if(!a)return;let o=i.has(t);o?i.delete(t):i.add(t),A.value.set(r,i),E(`valueChanged`,{name:F(e.name,n)+`.${t}`,value:o?void 0:B(a.default)})},Oe=(e,t,n)=>{let r=P(e);r&&Y(r,t,n)},ke=d(()=>l.nodeText(w.value?.type).inputLabelDisplayName(T.parameter,T.path)),X=d(()=>be.value.length===0),Z=d(()=>l.nodeText(w.value?.type).placeholder(T.parameter,T.path)||l.baseText(`fixedCollectionParameter.addItem`)),Ae=d(()=>X.value?l.baseText(`fixedCollectionParameter.allOptionsAdded`):l.baseText(`fixedCollectionParameter.addParameter`,{interpolate:{parameter:ke.value}})),Q=d(()=>be.value.map(e=>({label:l.nodeText(w.value?.type).collectionOptionDisplayName(T.parameter,e,T.path),value:e.name}))),je=d(()=>!T.isNested&&T.parameter.displayName!==``),Me=d(()=>T.isNested),Ne=d(()=>be.value.length>0&&!T.isReadOnly),Pe=d(()=>je.value&&!T.isReadOnly),Fe=d(()=>Ne.value&&(je.value||Me.value&&V.value)),Ie=d(()=>Me.value&&Ne.value),Le=d(()=>Object.values(D.value).every(e=>Array.isArray(e)?e.length===0:Object.keys(e).length===0)),Re=d(()=>Q.value.length===1),ze=d(()=>Q.value.length>1),Be=(e,t)=>{if(t!==void 0)return!1;let n=D.value[e];return!n||!Array.isArray(n)||n.length<=1},Ve=()=>{let e=T.path.split(`.`),t=e.at(-1)??``,n=e.slice(0,-1).join(`.`);return n?`${n}.${t}`:t},He=(e,t)=>t===void 0?!V.value&&T.isNested?Ve():F(e):F(e,t),Ue=(e,t)=>{t===void 0?Be(e,t)&&M.cleanupProperty(e):M.cleanupItem(e,t),E(`valueChanged`,{name:He(e,t),value:void 0})},We=()=>{fe.track(`User added workflow input field`,{workflow_id:re.workflow.id,node_id:m.activeNode?.id})},Ge=e=>{fe.track(`User changed workflow input field type`,{type:e.value,workflow_id:re.workflow.id,node_id:m.activeNode?.id})},Ke=e=>Array.isArray(e)?e:[e],qe=()=>{Object.entries(D.value).forEach(([e,t])=>M.initExpandedState(e,Ke(t),V.value))};ee(()=>T.values,e=>{D.value=B(e),Object.entries(D.value).forEach(([e,t])=>M.trimArrays(e,Ke(t).length)),qe()},{deep:!0}),c(()=>{if(D.value=B(T.values),qe(),Ce(),ue.value){let e=H.value[0];if(e&&V.value){let t=D.value[e.name];Array.isArray(t)&&t.length>0&&M.setExpandedState(e.name,0,!0)}}});let Je=e=>{if(e.typeOptions?.multipleValues!==!0)return B(e.default);if(e.type===`fixedCollection`)return{};let t=(0,we.default)(T.nodeValues,[T.path,e.name],[]),n=e.default,r=e=>Array.isArray(e)?B(e):e!==``&&typeof e!=`object`?[B(e)]:[];return[...t,...r(n)]},Ye=async(e,t)=>{await h();let n=M.getItemId(e,t);(oe.value?.querySelector(`[data-item-key="${n}"]`))?.scrollIntoView({behavior:`smooth`,block:`nearest`})},$=e=>{let t=P(e);if(!t)return;let n=`${T.path}.${t.name}`,r=Object.fromEntries(t.values.map(e=>[e.name,Je(e)])),i=(0,we.default)(T.nodeValues,n,[]);E(`valueChanged`,{name:n,value:V.value?[...i,r]:r});let a=i.length;M.setExpandedState(t.name,a,!0),V.value&&Ye(t.name,a),T.parameter.name===`workflowInputs`&&We()},Xe=e=>{E(`valueChanged`,e),T.parameter.name===`workflowInputs`&&Ge(e)},Ze=(e,t)=>{if(t.moved){M.reorderItems(e,t.moved.oldIndex,t.moved.newIndex);let n=D.value[e];if(Array.isArray(n)){let r=[...n],[i]=r.splice(t.moved.oldIndex,1);r.splice(t.moved.newIndex,0,i),D.value[e]=r}E(`valueChanged`,{name:F(e),value:D.value[e],type:`optionsOrderChanged`})}},Qe=async()=>{N.value||(N.value=!0,await h()),Re.value&&Q.value[0]&&$(Q.value[0].value)},$e=()=>{Re.value&&Q.value[0]&&$(Q.value[0].value)};return(o,s)=>(t(),a(`div`,{ref_key:`rootEl`,ref:oe,class:v([o.$style.fixedCollectionParameter,{[o.$style.empty]:H.value.length===0}]),"data-test-id":`fixed-collection-${T.parameter?.name}`,onKeydown:s[4]||=te(()=>{},[`stop`])},[je.value?(t(),a(_,{key:0},[y(g(he),{title:ke.value,bordered:Le.value,class:v(o.$style.sectionHeader)},u({_:2},[Pe.value?{name:`actions`,fn:S(()=>[y(g(ae),{disabled:!X.value,"show-after":g(500)},{content:S(()=>[n(f(Ae.value),1)]),default:S(()=>[ze.value?(t(),x(g(k),{key:0,options:Q.value,disabled:X.value,"data-test-id":`fixed-collection-add-header`,onSelect:$},{trigger:S(()=>[y(g(j),{icon:`plus`,label:Z.value,disabled:X.value},null,8,[`label`,`disabled`])]),_:1},8,[`options`,`disabled`])):(t(),x(g(j),{key:1,icon:`plus`,label:Z.value,disabled:X.value,"data-test-id":`fixed-collection-add-header`,onClick:Qe},null,8,[`label`,`disabled`]))]),_:1},8,[`disabled`,`show-after`])]),key:`0`}:void 0]),1032,[`title`,`bordered`,`class`]),(t(!0),a(_,null,b(H.value,n=>(t(),a(`div`,{key:n.name,class:v(o.$style.propertySection)},[V.value&&L(n.name)?(t(),x(q,{key:0,property:n,values:R(n.name),"node-values":e.nodeValues,"get-property-path":F,"item-state":g(M),"is-read-only":!!e.isReadOnly,sortable:_e.value,"title-template":e.parameter.typeOptions?.fixedCollection?.itemTitle,"get-visible-property-values":J,"get-picker-property-values":De,"is-optional-value-added":K,"add-optional-field-button-text":U.value,layout:ve.value,onValueChanged:Xe,onDelete:Ue,onDragChange:Ze,onToggleOptionalValue:Oe},null,8,[`property`,`values`,`node-values`,`item-state`,`is-read-only`,`sortable`,`title-template`,`add-optional-field-button-text`,`layout`])):(t(),x(g(ce),{key:1,"model-value":g(M).getExpandedState(n.name,0),title:n.displayName,"data-item-key":n.name,"onUpdate:modelValue":e=>g(M).setExpandedState(n.name,0,e)},u({default:S(()=>[y(I,{"hide-delete":``,parameters:J(n),"node-values":e.nodeValues,path:F(n.name),"is-read-only":!!e.isReadOnly,"is-nested":!1,"remove-first-parameter-margin":!0,"remove-last-parameter-margin":!0,"hidden-issues-inputs":e.hiddenIssuesInputs,onValueChanged:Xe},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`hidden-issues-inputs`])]),_:2},[e.isReadOnly?void 0:{name:`actions`,fn:S(()=>[y(g(j),{icon:`trash-2`,label:g(l).baseText(`fixedCollectionParameter.deleteItem`),danger:``,onClick:e=>Ue(n.name)},null,8,[`label`,`onClick`])]),key:`0`}]),1032,[`model-value`,`title`,`data-item-key`,`onUpdate:modelValue`]))],2))),128)),Fe.value?(t(),a(`div`,{key:0,class:v(o.$style.controls)},[Re.value?(t(),x(g(O),{key:0,class:`n8n-button--highlightFill`,variant:`subtle`,icon:`plus`,size:`small`,"data-test-id":`fixed-collection-add-top-level-button`,label:Z.value,disabled:X.value,onClick:$e},null,8,[`label`,`disabled`])):ze.value?(t(),x(g(k),{key:1,options:Q.value,class:v(o.$style.dropdown),"data-test-id":`fixed-collection-add-top-level-dropdown`,disabled:X.value,onSelect:$},{trigger:S(()=>[y(g(O),{class:`n8n-button--highlightFill`,variant:`subtle`,icon:`plus`,size:`small`,label:Z.value,disabled:X.value},null,8,[`label`,`disabled`])]),_:1},8,[`options`,`class`,`disabled`])):p(``,!0)],2)):p(``,!0)],64)):Me.value?(t(),x(g(ce),{key:1,modelValue:g(N),"onUpdate:modelValue":s[3]||=e=>r(N)?N.value=e:null,title:ke.value,"show-actions-on-hover":!se.value},{actions:S(()=>[Ie.value?(t(),x(g(ae),{key:0,"show-after":g(500)},{content:S(()=>[n(f(Ae.value),1)]),default:S(()=>[ze.value?(t(),x(g(k),{key:0,options:Q.value,disabled:X.value,"data-test-id":`fixed-collection-add-header`,onSelect:$,"onUpdate:open":s[0]||=e=>se.value=e},{trigger:S(()=>[y(g(j),{icon:`plus`,label:Z.value,disabled:X.value},null,8,[`label`,`disabled`])]),_:1},8,[`options`,`disabled`])):(t(),x(g(j),{key:1,icon:`plus`,label:Z.value,disabled:X.value,"data-test-id":`fixed-collection-add-header-nested`,onClick:Qe},null,8,[`label`,`disabled`]))]),_:1},8,[`show-after`])):p(``,!0),e.canDelete&&!e.isReadOnly?(t(),x(g(j),{key:1,icon:`trash-2`,label:g(l).baseText(`fixedCollectionParameter.deleteItem`),danger:``,"data-test-id":`fixed-collection-delete-nested`,onClick:s[1]||=e=>E(`delete`)},null,8,[`label`])):p(``,!0)]),default:S(()=>[i(`div`,null,[V.value?(t(),a(_,{key:0},[(t(!0),a(_,null,b(H.value,n=>(t(),a(`div`,{key:n.name,class:v(o.$style.propertySection)},[D.value[n.name]?(t(),x(q,{key:0,property:n,values:D.value[n.name],"node-values":e.nodeValues,"get-property-path":F,"item-state":g(M),"is-read-only":!!e.isReadOnly,sortable:_e.value,"title-template":e.parameter.typeOptions?.fixedCollection?.itemTitle,"get-visible-property-values":J,"get-picker-property-values":De,"is-optional-value-added":K,"add-optional-field-button-text":U.value,layout:ve.value,onValueChanged:Xe,onDelete:Ue,onDragChange:Ze,onToggleOptionalValue:s[2]||=(e,t,n)=>Y(P(e),t,n)},null,8,[`property`,`values`,`node-values`,`item-state`,`is-read-only`,`sortable`,`title-template`,`add-optional-field-button-text`,`layout`])):p(``,!0)],2))),128)),Fe.value?(t(),a(`div`,{key:0,class:v(o.$style.controls)},[Re.value?(t(),x(g(O),{key:0,class:`n8n-button--highlightFill`,variant:`subtle`,icon:`plus`,size:`small`,"data-test-id":`fixed-collection-add-nested-button`,label:Z.value,onClick:$e},null,8,[`label`])):ze.value?(t(),x(g(k),{key:1,options:Q.value,class:v(o.$style.dropdown),"data-test-id":`fixed-collection-add-nested-dropdown`,onSelect:$},{trigger:S(()=>[y(g(O),{class:`n8n-button--highlightFill`,variant:`subtle`,icon:`plus`,size:`small`,label:Z.value},null,8,[`label`])]),_:1},8,[`options`,`class`])):p(``,!0)],2)):p(``,!0)],64)):(t(!0),a(_,{key:1},b(H.value,n=>(t(),a(`div`,{key:n.name,class:v(o.$style.propertySection)},[y(I,{"hide-delete":``,parameters:J(n),"node-values":e.nodeValues,path:F(n.name),"is-read-only":!!e.isReadOnly,"is-nested":!0,"remove-first-parameter-margin":!0,"remove-last-parameter-margin":!0,"hidden-issues-inputs":e.hiddenIssuesInputs,onValueChanged:Xe},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`hidden-issues-inputs`])],2))),128))])]),_:1},8,[`modelValue`,`title`,`show-actions-on-hover`])):(t(!0),a(_,{key:2},b(H.value,n=>(t(),a(`div`,{key:n.name,class:v(o.$style.propertySection)},[V.value&&L(n.name)?(t(),x(q,{key:0,property:n,values:R(n.name),"node-values":e.nodeValues,"get-property-path":F,"item-state":g(M),"is-read-only":!!e.isReadOnly,sortable:_e.value,"title-template":e.parameter.typeOptions?.fixedCollection?.itemTitle,"get-visible-property-values":J,"get-picker-property-values":De,"is-optional-value-added":K,"add-optional-field-button-text":U.value,layout:ve.value,onValueChanged:Xe,onDelete:Ue,onDragChange:Ze,onToggleOptionalValue:Oe},null,8,[`property`,`values`,`node-values`,`item-state`,`is-read-only`,`sortable`,`title-template`,`add-optional-field-button-text`,`layout`])):(t(),x(g(ce),{key:1,"model-value":g(M).getExpandedState(n.name,0),title:n.displayName,"data-item-key":n.name,"onUpdate:modelValue":e=>g(M).setExpandedState(n.name,0,e)},u({default:S(()=>[y(I,{"hide-delete":``,parameters:J(n),"node-values":e.nodeValues,path:F(n.name),"is-read-only":!!e.isReadOnly,"is-nested":!1,"remove-first-parameter-margin":!0,"remove-last-parameter-margin":!0,"hidden-issues-inputs":e.hiddenIssuesInputs,onValueChanged:Xe},null,8,[`parameters`,`node-values`,`path`,`is-read-only`,`hidden-issues-inputs`])]),_:2},[e.isReadOnly?void 0:{name:`actions`,fn:S(()=>[y(g(j),{icon:`trash-2`,label:g(l).baseText(`fixedCollectionParameter.deleteItem`),danger:``,onClick:e=>Ue(n.name)},null,8,[`label`,`onClick`])]),key:`0`}]),1032,[`model-value`,`title`,`data-item-key`,`onUpdate:modelValue`]))],2))),128))],42,Ee))}}),[[`__cssModules`,{$style:{fixedCollectionParameter:`_fixedCollectionParameter_du7gp_125`,propertySection:`_propertySection_du7gp_129`,sectionHeader:`_sectionHeader_du7gp_140`,controls:`_controls_du7gp_144`,dropdown:`_dropdown_du7gp_148`}}]]),De=l({__name:`FixedCollectionParameter`,props:{nodeValues:{},parameter:{},path:{},values:{default:void 0},isReadOnly:{type:Boolean},isNested:{type:Boolean},isNewlyAdded:{type:Boolean},canDelete:{type:Boolean},hiddenIssuesInputs:{default:()=>[]}},emits:[`valueChanged`,`delete`],setup(e,{emit:n}){let{isEnabled:r}=P(),i=n;return(e,n)=>g(r)?(t(),x(J,m({key:1},e.$props,{onValueChanged:n[1]||=e=>i(`valueChanged`,e),onDelete:n[2]||=e=>i(`delete`)}),null,16)):(t(),x(U,m({key:0},e.$props,{onValueChanged:n[0]||=e=>i(`valueChanged`,e)}),null,16))}});export{De as default}; //# sourceMappingURL=FixedCollectionParameter-DtJfqfo9.js.map