n8n-editor-ui
Version:
Workflow Editor UI for n8n
1 lines • 58.4 kB
JavaScript
!function(){try{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"n8n@2.13.4"}}catch(e){}}(),System.register(["./chunk-legacy-TXBRODOR.js","./vue.runtime.esm-bundler-legacy-IafOlCW8.js","./_MapCache-legacy-DwgdC8YO.js","./src-legacy-Dwzr7bD0.js","./_plugin-vue_export-helper-legacy-DEZAmQqp.js","./users.store-legacy-OKuN0qAC.js","./constants-legacy-DNCca_FT.js","./_baseOrderBy-legacy-PsQY_Pvh.js","./NDVEmptyState-legacy-CfqV96iU.js","./usePinnedData-legacy-CxgKkO-J.js","./nodeTransforms-legacy-CEnqyD1g.js","./Draggable-legacy-1VY-jpKk.js","./NodeIcon-legacy-B4uktMo3.js","./TextWithHighlights-legacy-SPWDY5kZ.js","./useCalloutHelpers-legacy-vHYCBchw.js","./useTelemetryContext-legacy-DP-NcoCt.js","./useRunWorkflow-legacy-D--lDsti.js"],(function(e,t){var i,a,n,s,o,r,l,c,d,u,h,p,v,m,f,g,y,b,x,w,_,z,k,S,$,T,I,D,N,E,C,M,O,R,A,V,B,P,j,F,L,U,W,H,q,G,K,Y,X,J,Z,Q,ee,te,ie,ae,ne,se,oe,re,le,ce,de,ue,he,pe,ve,me,fe,ge,ye,be,xe,we,_e,ze,ke,Se,$e,Te,Ie,De,Ne,Ee,Ce,Me,Oe,Re,Ae,Ve,Be,Pe,je,Fe,Le,Ue,We,He,qe,Ge,Ke,Ye,Xe,Je,Ze,Qe,et,tt,it,at,nt,st,ot,rt,lt,ct,dt,ut,ht,pt,vt,mt,ft,gt,yt,bt,xt,wt,_t,zt,kt,St,$t,Tt,It,Dt,Nt,Et,Ct,Mt,Ot,Rt,At,Vt,Bt,Pt,jt,Ft;function Lt(){Lt.init||(Lt.init=!0,ut=-1!==function(){var e=window.navigator.userAgent,t=e.indexOf("MSIE ");if(t>0)return parseInt(e.substring(t+5,e.indexOf(".",t)),10);if(e.indexOf("Trident/")>0){var i=e.indexOf("rv:");return parseInt(e.substring(i+3,e.indexOf(".",i)),10)}var a=e.indexOf("Edge/");return a>0?parseInt(e.substring(a+5,e.indexOf(".",a)),10):-1}())}function Ut(e){return(Ut="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Wt(e,t){for(var i=0;i<t.length;i++){var a=t[i];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function Ht(e){return function(e){if(Array.isArray(e))return qt(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return qt(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?qt(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function qt(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,a=new Array(t);i<t;i++)a[i]=e[i];return a}function Gt(e,t){if(e===t)return!0;if("object"===Ut(e)){for(var i in e)if(!Gt(e[i],t[i]))return!1;return!0}return!1}function Kt(e,t,i){var a=t.value;a&&("undefined"==typeof IntersectionObserver?console.warn("[vue-observe-visibility] IntersectionObserver API is not available in your browser. Please install this polyfill: https://github.com/w3c/IntersectionObserver/tree/master/polyfill"):e._vue_visibilityState=new mt(e,a,i))}function Yt(e,t,i){var a=t.value;if(!Gt(a,t.oldValue)){var n=e._vue_visibilityState;a?n?n.createObserver(a,i):Kt(e,{value:a},i):Xt(e)}}function Xt(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}function Jt(e,t){return null===e.parentNode?t:Jt(e.parentNode,t.concat([e]))}function Zt(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var t=Jt(e.parentNode,[]),i=0;i<t.length;i+=1)if(wt(t[i]))return t[i];return document.scrollingElement||document.documentElement}}function Qt(e){return(Qt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ei(){return this.items.length&&"object"!==Qt(this.items[0])}function ti(e,t,i,n,s,r){const l=_("ResizeObserver"),c=O("observe-visibility");return z((a(),o("div",{class:w(["vue-recycle-scroller",{ready:s.ready,"page-mode":i.pageMode,[`direction-${e.direction}`]:!0}]),onScrollPassive:t[0]||(t[0]=(...e)=>r.handleScroll&&r.handleScroll(...e))},[e.$slots.before?(a(),o("div",Tt,[D(e.$slots,"before")],512)):f("v-if",!0),(a(),B(A(i.listTag),{ref:"wrapper",style:P({["vertical"===e.direction?"minHeight":"minWidth"]:s.totalSize+"px"}),class:w(["vue-recycle-scroller__item-wrapper",i.listClass])},{default:j((()=>[(a(!0),o(x,null,R(s.pool,(t=>(a(),B(A(i.itemTag),g({key:t.nr.id,style:s.ready?{transform:`translate${"vertical"===e.direction?"Y":"X"}(${t.position}px) translate${"vertical"===e.direction?"X":"Y"}(${t.offset}px)`,width:i.gridItems?`${"vertical"===e.direction&&i.itemSecondarySize||i.itemSize}px`:void 0,height:i.gridItems?`${"horizontal"===e.direction&&i.itemSecondarySize||i.itemSize}px`:void 0}:null,class:["vue-recycle-scroller__item-view",[i.itemClass,{hover:!i.skipHover&&s.hoverKey===t.nr.key}]]},k(i.skipHover?{}:{mouseenter:()=>{s.hoverKey=t.nr.key},mouseleave:()=>{s.hoverKey=null}})),{default:j((()=>[D(e.$slots,"default",{item:t.item,index:t.nr.index,active:t.nr.used})])),_:2},1040,["style","class"])))),128)),D(e.$slots,"empty")])),_:3},8,["style","class"])),e.$slots.after?(a(),o("div",It,[D(e.$slots,"after")],512)):f("v-if",!0),N(l,{onNotify:r.handleResize},null,8,["onNotify"])],34)),[[c,r.handleVisibilityChange]])}function ii(e,t,i,n,s,o){const l=_("RecycleScroller");return a(),B(l,g({ref:"scroller",items:o.itemsWithSize,"min-item-size":i.minItemSize,direction:e.direction,"key-field":"id","list-tag":e.listTag,"item-tag":e.itemTag},e.$attrs,{onResize:o.onScrollerResize,onVisible:o.onScrollerVisible}),{default:j((({item:t,index:i,active:a})=>[D(e.$slots,"default",V(r({item:t.item,index:i,active:a,itemWithSize:t})))])),before:j((()=>[D(e.$slots,"before")])),after:j((()=>[D(e.$slots,"after")])),empty:j((()=>[D(e.$slots,"empty")])),_:3},16,["items","min-item-size","direction","list-tag","item-tag","onResize","onVisible"])}function ai(){const e=he().activeNode,{workflowObject:t,getNodeByName:i}=pe();return e&&t?t.getParentNodesByDepth(e?.name).filter((({name:t},i,a)=>t!==e.name&&a.findIndex((e=>e.name===t))===i)).map((e=>i(e.name))).filter((e=>null!==e)):[]}function ni(e,t,i=4){let a=Ct(t);const[n,s]=Mt(e,a,i);if(a=n,a=Ot(e,a,i,s),a>0)throw t}async function si(e,t,i=1){const a=function(){const e=ai(),t=e.map((e=>e?.name)),{getSchemaForExecutionData:i,getInputDataWithPinned:a}=de(),n=e.map((e=>{const t=a(e);return{nodeName:e?.name||"",schema:i(te(t),!1)}})).filter((e=>e.schema?.value.length>0));return{parentNodesNames:t,inputSchema:n.shift(),parentNodesSchemas:n}}(),n={question:e,context:{schema:a.parentNodesSchemas,inputSchema:a.inputSchema,ndvPushRef:he().pushRef,pushRef:Re().pushRef},forNode:"transform"};let s;if(!Q().isAskAiEnabled)throw new $e("AI code generation is not enabled");{const{restApiContext:e}=Re();let t="";for(;i>0;)try{const{code:i}=await ve(e,n);t=i;break}catch(o){if("string"==typeof o.message&&o.message.includes("maximum context length")){ni(n,o);continue}if(!--i)throw o}s=t}if(void 0!==s)return{name:t,value:await Ve(String(s),{parser:"babel",plugins:[Ae,Be]})}}function oi(e,t){if(t)return t;const i=[],a=[],n=window.getComputedStyle(e),s=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight),o=parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth),r=e.clientWidth-s-o,l=function(e){const t=document.createElement("canvas").getContext("2d");return t.font=`${e.fontWeight} ${e.fontSize} ${e.fontFamily}`,t}(n),c=e.value.split("\n");return c.forEach((e=>{a.push([])})),c.forEach(((e,t)=>{if(""===e)return i.push(e),void a[t].push(i.length-1);let n="";e.split(/(\s+)/).forEach((e=>{const s=n+e;l.measureText(s).width<=r?n=s:(i.push(n.trimEnd()),a[t].push(i.length-1),n=e)})),n&&(i.push(n.trimEnd()),a[t].push(i.length-1))})),{rows:i,linesToRowsMap:a}}function ri(e,t={}){const{telemetrySource:i="setupPanel",executionMode:a="inclusive",source:n="SetupPanel.ExecuteNodeButton"}=t,s=Y(),o=F(),r=oe(),d=ne(),u=ce(),h=ee(),v=pe(),m=ge(),f=he(),g=ue(),y=le(),{runWorkflow:b,stopCurrentExecution:x}=Ye({router:s}),w=l(!1),_=p((()=>c(e)??null)),z=je(_),k=p((()=>_.value?m.getNodeType(_.value.type,_.value.typeVersion):null)),S=p((()=>!!_.value&&m.isTriggerNode(_.value.type))),$=p((()=>k.value?.name===ze)),T=p((()=>k.value?.name===_e)),I=p((()=>!!_.value&&v.checkIfNodeHasChatParent(_.value.name))),D=p((()=>k.value?.name===De)),N=p((()=>!!k.value?.polling)),E=p((()=>!!k.value?.group.includes("schedule"))),C=p((()=>k.value?.name===Me)),M=p((()=>{if(!v.isWorkflowRunning||w.value)return!1;const e=v.executedNode;return y.executingNode.isNodeExecuting(_.value?.name??"")||e===_.value?.name})),O=p((()=>{const e=v.executionWaitingForWebhook,t=v.executedNode;return!!_.value&&!_.value.disabled&&S.value&&e&&(!t||t===_.value.name)})),R=p((()=>M.value&&S.value&&!E.value&&!$.value)),A=p((()=>w.value||M.value&&!O.value&&!R.value)),V=p((()=>Boolean(_.value?.issues&&(_.value.issues.parameters||_.value.issues.credentials)))),B=p((()=>O.value?"":w.value?o.baseText("ndv.execute.generatingCode"):_.value?.disabled?o.baseText("ndv.execute.nodeIsDisabled"):S.value&&V.value?o.baseText("ndv.execute.requiredFieldsMissing"):v.isWorkflowRunning&&!M.value?o.baseText("ndv.execute.workflowAlreadyRunning"):"")),P=p((()=>O.value||R.value?o.baseText("ndv.execute.stopListening"):L.value?o.baseText("ndv.execute.generateCodeAndTestNode.description"):T.value?o.baseText("ndv.execute.testChat"):C.value?o.baseText("ndv.execute.listenForTestEvent"):D.value?o.baseText("ndv.execute.testStep"):N.value||k.value?.mockManualExecution?o.baseText("ndv.execute.fetchEvent"):o.baseText("ndv.execute.testNode"))),j=p((()=>L.value?"terminal":O.value?void 0:"flask-conical")),L=p((()=>!("n8n-nodes-base.aiTransform"!==_.value?.type||!_.value?.parameters?.instructions||_.value?.parameters?.jsCode&&(!_.value?.parameters.codeGeneratedForPrompt||_.value?.parameters?.instructions.trim()===_.value?.parameters?.codeGeneratedForPrompt.trim()))));async function U(){try{await v.removeTestWebhook(v.workflowId)}catch(e){d.showError(e,"Error stopping webhook")}}return{isExecuting:A,isListening:O,isListeningForWorkflowEvents:R,buttonLabel:P,buttonIcon:j,disabledReason:B,isTriggerNode:S,hasIssues:V,shouldGenerateCode:L,execute:async function(){if(!_.value)return"noop";const e=_.value.name;if(L.value&&!(await async function(){if(!L.value||!_.value)return!0;w.value=!0;try{d.showMessage({title:o.baseText("ndv.execute.generateCode.title"),message:o.baseText("ndv.execute.generateCode.message",{interpolate:{nodeName:_.value.name}}),type:"success"});const e=_.value.parameters?.instructions,i=await si(e,`parameters.${Oe}`,5);if(!i)return w.value=!1,!1;y.updateNodeProperties({name:_.value.name,properties:{parameters:{..._.value.parameters,[Oe]:i.value,[Ie]:e}}}),t.onCodeGenerated?.({name:`parameters.${Oe}`,value:i.value}),t.onCodeGenerated?.({name:`parameters.${Ie}`,value:e}),r.trackAiTransform("generationFinished",{prompt:e,code:i.value})}catch(e){return r.trackAiTransform("generationFinished",{prompt:_.value?.parameters?.instructions,code:"",hasError:!0}),d.showMessage({type:"error",title:o.baseText("codeNodeEditor.askAi.generationFailed"),message:e.message}),w.value=!1,!1}return w.value=!1,!0}()))return"cancelled";if(T.value||I.value&&f.isInputPanelEmpty)return f.unsetActiveNodeName(),v.chatPartialExecutionDestinationNode=e,se.emit("openChat"),"opened-chat";if(O.value)return await U(),"stopped-webhook";if(R.value)return await x(),"stopped-execution";let s=!1;if(z.hasData.value&&(s=await u.confirm(o.baseText("ndv.pinData.unpinAndExecute.description"),o.baseText("ndv.pinData.unpinAndExecute.title"),{confirmButtonText:o.baseText("ndv.pinData.unpinAndExecute.confirm"),cancelButtonText:o.baseText("ndv.pinData.unpinAndExecute.cancel")})===Se,s&&z.unsetData("unpin-and-execute-modal")),!z.hasData.value||s){if(Fe(_.value))return g.openModalWithData({name:xe,data:{nodeName:e}}),"opened-modal";const t={node_type:k.value?k.value.name:null,workflow_id:v.workflowId,source:i,push_ref:f.pushRef};return r.track("User clicked execute node button",t),await h.run("nodeExecuteButton.onClick",t),await b({destinationNode:{nodeName:e,mode:c(a)},source:n}),"executed"}return"cancelled"},stopExecution:async function(){O.value?await U():R.value&&await x()}}}return e({a:ai,i:si,o:function(e,t,i,a){const n=e.getBoundingClientRect(),s=i-n.left,o=a-n.top,{lineHeight:r,font:l}=window.getComputedStyle(e),c=Rt(o,r),{rows:d}=oi(e,t);if(c<0||c>=d.length)return e.value.length;const u=d[c],h=At(u,s,l);return d.slice(0,c).reduce(((e,t)=>e+t.length+1),0)+h},r:ri,s:function(e,t,i){const a=e.target,n=a.getBoundingClientRect(),s=e.clientX-n.left,o=e.clientY-n.top,{lineHeight:r,font:l}=window.getComputedStyle(a),c=Rt(o,r),d=oi(a,t);let u=i;void 0===d.rows[c]&&(u=`${a.value} ${i}`);const{rows:h,linesToRowsMap:p}=d,v=h[c];if(""===v)h[c]=i;else{const e=At(v,s,l);h[c]=[h[c].slice(0,e).trim(),i,h[c].slice(e).trim()].join(" ").trim()}return u=p.map((e=>e.map((e=>h[e])).join(" "))).join("\n"),u}}),{setters:[function(e){i=e.o},function(e){a=e.$,n=e.A,s=e.C,o=e.E,r=e.F,l=e.Ft,c=e.Ht,d=e.I,u=e.It,h=e.N,p=e.S,v=e.Sn,m=e.St,f=e.T,g=e.U,y=e.W,b=e.Wt,x=e._,w=e._n,_=e.at,z=e.bt,k=e.ct,S=e.et,$=e.ft,T=e.gt,I=e.h,D=e.it,N=e.j,E=e.jt,C=e.l,M=e.nt,O=e.ot,R=e.rt,A=e.st,V=e.vn,B=e.w,P=e.yn,j=e.yt},function(e){F=e.bt,L=e.h,U=e.xt},function(e){W=e.$i,H=e.Mi,q=e.Qi,G=e.Xi,K=e.Zi,Y=e._t,X=e.lt},function(e){J=e.t},function(e){Z=e.$t,Q=e.As,ee=e.Dr,te=e.Ni,ie=e.Nt,ae=e.Pr,ne=e.Tr,se=e.dn,oe=e.en,re=e.ia,le=e.in,ce=e.jr,de=e.lt,ue=e.r,he=e.rn,pe=e.s,ve=e.st,me=e.ut,fe=e.va,ge=e.w},function(e){ye=e.C,be=e.Ci,xe=e.Ds,we=e.Fi,_e=e.Gt,ze=e.Mn,ke=e.P,Se=e.Ps,e.So,$e=e.Zo,Te=e._s,Ie=e.bo,De=e.gn,Ne=e.ho,Ee=e.mo,Ce=e.pl,Me=e.wr,Oe=e.xo},function(e){Re=e.r},function(e){Ae=e.i,Ve=e.o,Be=e.r,Pe=e.t},function(e){je=e.t},function(e){Fe=e.o},function(e){Le=e.t},function(e){Ue=e.t},function(e){We=e.t},function(e){He=e.t},function(e){qe=e.n,Ge=e.t},function(e){Ke=e.i,Ye=e.t}],execute:function(){(Xe=document.createElement("style")).textContent=".schema-header-wrapper[data-v-81c3a2d5]{padding-bottom:var(--spacing--2xs)}.schema-header[data-v-81c3a2d5]{cursor:pointer;align-items:center;display:flex}.toggle[data-v-81c3a2d5]{padding-left:var(--spacing--5xs);padding-right:var(--spacing--3xs);height:30px;color:var(--color--text--tint-1);justify-content:center;align-items:center;display:flex}.collapse-icon[data-v-81c3a2d5]{transition:transform .2s cubic-bezier(.19,1,.22,1)}.collapsed[data-v-81c3a2d5]{transform:rotate(-90deg)}.icon[data-v-81c3a2d5]{padding:var(--spacing--3xs);border:1px solid var(--color--foreground--tint-1);border-radius:var(--radius);background-color:var(--color--background--light-3);margin-right:var(--spacing--2xs);justify-content:center;align-items:center;display:flex}.icon-trigger[data-v-81c3a2d5]{border-radius:16px 4px 4px 16px}.title[data-v-81c3a2d5]{font-size:var(--font-size--2xs);color:var(--color--text--shade-1)}.info[data-v-81c3a2d5]{margin-left:var(--spacing--2xs);color:var(--color--text--tint-1);font-weight:var(--font-weight--regular)}.trigger-icon[data-v-81c3a2d5]{margin-left:var(--spacing--2xs);color:var(--color--primary)}.extra-info[data-v-81c3a2d5]{font-size:var(--font-size--2xs);color:var(--color--text--tint-1);white-space:nowrap;margin-left:auto}.notice[data-v-81c3a2d5]{margin-left:var(--spacing--2xl);margin-top:var(--spacing--2xs);padding-bottom:var(--spacing--2xs);color:var(--color--text);font-size:var(--font-size--2xs);line-height:var(--line-height--lg)}.schema-item[data-v-5ae9241a]{margin-left:calc(var(--spacing--lg)*var(--bae8c388));padding-bottom:var(--spacing--2xs);align-items:baseline;display:flex}.toggle-container[data-v-5ae9241a]{min-width:var(--spacing--lg);min-height:17px}.toggle[data-v-5ae9241a]{cursor:pointer;cursor:pointer;font-size:var(--font-size--sm);color:var(--color--text--tint-1);justify-content:center;display:flex}.pill[data-v-5ae9241a]{height:24px;padding:0 var(--spacing--3xs);border:1px solid var(--color--foreground--tint-1);border-radius:var(--radius);background-color:var(--color--background--light-3);font-size:var(--font-size--2xs);color:var(--color--text--shade-1);align-items:center;max-width:50%;display:inline-flex}.pill>[data-v-5ae9241a]:not(:first-child){margin-left:var(--spacing--3xs);padding-left:var(--spacing--3xs);border-left:1px solid var(--color--foreground--tint-1)}.pill.pill--preview[data-v-5ae9241a]{--schema-preview--border--dashed:url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' viewBox='0 0 400 400' fill='none' rx='4' ry='4' stroke='%230000002A' stroke-width='2' stroke-dasharray='4%2c 4' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\");--schema-preview--border--dashed--dark:url(\"data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' viewBox='0 0 400 400' fill='none' rx='4' ry='4' stroke='%23FFFFFF2A' stroke-width='2' stroke-dasharray='4%2c 4' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e\");color:var(--color--text--tint-1);background-color:var(--color--foreground--tint-1);max-width:calc(100% - var(--spacing--lg));background-image:var(--schema-preview--border--dashed);border:none}.pill.pill--preview .title[data-v-5ae9241a]{color:var(--color--text--tint-1)}@media (prefers-color-scheme:dark){body:not([data-theme]) .pill--preview[data-v-5ae9241a]{background-image:var(--schema-preview--border--dashed--dark)}}[data-theme=dark] .pill--preview[data-v-5ae9241a]{background-image:var(--schema-preview--border--dashed--dark)}.draggable .pill.pill--highlight[data-v-5ae9241a]{color:var(--color--primary);border-color:var(--color--primary--tint-1);background-color:var(--color--primary--tint-3)}.draggable .pill.pill--highlight .type-icon[data-v-5ae9241a]{color:var(--color--primary)}.draggable .pill[data-v-5ae9241a]:not(.pill--locked){cursor:grab}.draggable .pill[data-v-5ae9241a]:not(.pill--locked):hover{background-color:var(--color--background--light-2);border-color:var(--color--foreground)}.type-icon[data-v-5ae9241a]{color:var(--color--text--tint-1)}.locked-icon[data-v-5ae9241a]{color:var(--color--text--tint-1);margin-left:var(--spacing--2xs)}.title[data-v-5ae9241a]{white-space:nowrap;text-overflow:ellipsis;line-height:1.5;overflow:hidden}.text[data-v-5ae9241a]{font-weight:var(--font-weight--regular);font-size:var(--font-size--2xs);margin-left:var(--spacing--2xs);word-break:break-word}.collapse-icon[data-v-5ae9241a]{transition:transform .2s cubic-bezier(.19,1,.22,1)}.collapsed[data-v-5ae9241a]{transform:rotate(-90deg)}.tooltip[data-v-5ae9241a]{max-width:260px}.binary-controls[data-v-5ae9241a]{gap:var(--spacing--3xs);opacity:0;cursor:pointer;transition:all .2s ease-in-out;display:inline-flex}.schema-item:hover .binary-controls[data-v-5ae9241a]{opacity:1}.binary-control-pill:hover .type-icon[data-v-5ae9241a]{color:var(--color--primary)}._tooltip_1e5yq_2{max-width:260px}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:none}.vue-recycle-scroller__item-wrapper{box-sizing:border-box;flex:1;position:relative;overflow:hidden}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{will-change:transform;position:absolute;top:0;left:0}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{z-index:-1;pointer-events:none;opacity:0;background-color:transparent;border:none;width:100%;height:100%;display:block;position:absolute;top:0;left:0;overflow:hidden}.resize-observer[data-v-b329ee4c] object{pointer-events:none;z-index:-1;width:100%;height:100%;display:block;position:absolute;top:0;left:0;overflow:hidden}.full-height[data-v-8d9d68fb]{height:100%}.run-data-schema[data-v-8d9d68fb]{padding:0}.run-data-schema.no-search-results[data-v-8d9d68fb]{padding:var(--spacing--lg)0;justify-content:center;display:flex}.scroller[data-v-8d9d68fb]{padding:0 var(--ndv--spacing);padding-bottom:var(--spacing--2xl)}.compact .scroller[data-v-8d9d68fb]{padding:0 var(--spacing--2xs)}.icon[data-v-8d9d68fb]{margin-left:var(--spacing--xl);color:var(--color--text--tint-1);margin-bottom:var(--ndv--spacing);display:inline-flex}.notice[data-v-8d9d68fb]{padding-bottom:var(--spacing--xs);color:var(--color--text);font-size:var(--font-size--2xs);line-height:var(--line-height--lg);margin-left:calc(var(--spacing--lg)*var(--schema-level))}.empty-schema[data-v-8d9d68fb]{padding-bottom:var(--spacing--xs);margin-left:calc((var(--spacing--xl)*var(--schema-level)))}.callout-wrapper[data-v-8d9d68fb]{padding-bottom:var(--spacing--xs);margin-left:calc(var(--spacing--lg)*var(--schema-level))}.callout-dismiss[data-v-8d9d68fb]{margin-left:var(--spacing--xs);cursor:pointer;line-height:1}.callout-dismiss[data-v-8d9d68fb]:hover{color:var(--icon--color--hover)}\n/*$vite$:1*/",document.head.appendChild(Xe);try{t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},(r=(new t.Error).stack)&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[r]="8225a875-f330-45f1-8151-fa39eee49d63",t._sentryDebugIdIdentifier="sentry-dbid-8225a875-f330-45f1-8151-fa39eee49d63")}catch(t){}var t,r;if(Je={class:"schema-header-wrapper"},Ze={class:"schema-header","data-test-id":"run-data-schema-header"},Qe={class:"title"},et={key:0,class:"info"},tt={key:2,class:"extra-info","data-test-id":"run-data-schema-node-item-count"},it={key:3,class:"extra-info"},at=h({__name:"VirtualSchemaHeader",props:{title:{},collapsable:{type:Boolean},collapsed:{type:Boolean},itemCount:{},info:{},nodeType:{},preview:{type:Boolean},lastSuccessfulPreview:{type:Boolean}},emits:["click:toggle","execute"],setup(e,{emit:t}){const i=e,r=F(),l=p((()=>Boolean(i.nodeType?.group.includes("trigger")))),c=t;return(t,i)=>(a(),o("div",Je,[s("div",Ze,[s("div",{class:"toggle",onClickCapture:i[0]||(i[0]=I((e=>c("click:toggle")),["stop"]))},[N(b(W),{size:"medium",icon:"chevron-down",class:w({"collapse-icon":!0,collapsed:e.collapsed})},null,8,["class"])],32),e.nodeType?(a(),B(Ue,{key:0,class:w(["icon",{"icon-trigger":l.value}]),"node-type":e.nodeType,size:12},null,8,["class","node-type"])):f("",!0),s("div",Qe,[n(v(e.title)+" ",1),e.info?(a(),o("span",et,v(e.info),1)):f("",!0)]),l.value?(a(),B(b(W),{key:1,class:"trigger-icon",icon:"bolt-filled",size:"xsmall"})):f("",!0),e.itemCount&&!e.lastSuccessfulPreview?(a(),o("div",tt,v(b(r).baseText("ndv.output.items",{interpolate:{count:e.itemCount}})),1)):e.preview?(a(),o("div",it,v(b(r).baseText("dataMapping.schemaView.previewNode")),1)):f("",!0)]),e.preview&&!e.collapsed?(a(),o("div",{key:0,class:"notice","data-test-id":"schema-preview-warning",onClick:i[3]||(i[3]=I((()=>{}),["stop"]))},[e.lastSuccessfulPreview?(a(),B(b(U),{key:0,keypath:"dataMapping.schemaView.previewLastExecution",scope:"global"},{execute:j((()=>[N(b(X),{onClick:i[1]||(i[1]=()=>c("execute",e.title)),size:"small",bold:""},{default:j((()=>[n(v(b(r).baseText("dataMapping.schemaView.previewLastExecution.executePreviousNodes")),1)])),_:1})])),_:1})):(a(),B(b(U),{key:1,keypath:"dataMapping.schemaView.preview",scope:"global"},{execute:j((()=>[N(b(X),{onClick:i[2]||(i[2]=()=>c("execute",e.title)),size:"small",bold:""},{default:j((()=>[n(v(b(r).baseText("dataMapping.schemaView.preview.executeNode")),1)])),_:1})])),link:j((()=>[N(b(X),{to:b(ye),size:"small",bold:""},{default:j((()=>[n(v(b(r).baseText("generic.learnMore")),1)])),_:1},8,["to"])])),_:1}))])):f("",!0)]))}}),nt=J(at,[["__scopeId","data-v-81c3a2d5"]]),st=ae(),ot={class:"toggle-container"},rt=["data-name","data-path","data-depth","data-nest-level","data-value","data-node-type","data-target","data-node-name","data-run-index"],lt={key:2,class:"binary-controls"},ct=h({__name:"VirtualSchemaItem",props:{title:{},path:{},level:{},depth:{},expression:{},value:{},id:{},icon:{},collapsable:{type:Boolean},nodeName:{},nodeType:{},highlight:{type:Boolean},draggable:{type:Boolean},collapsed:{type:Boolean},search:{},preview:{type:Boolean},locked:{type:Boolean},lockedTooltip:{},runIndex:{},binaryData:{}},emits:["click"],setup(e,{emit:t}){C((e=>({bae8c388:e.level})));const i=e,n=F();async function r(){if(i.binaryData)try{const{id:e,fileName:t,mimeType:a,fileExtension:n}=i.binaryData,s=pe().getBinaryUrl(e,"download",t??"",a);let o=t??"file";!o.includes(".")&&n&&(o=[o,n].join("."));const r=await fetch(s);if(!r.ok)throw new Error("Error downloading file");(0,st.saveAs)(await r.blob(),o)}catch(e){ne().showMessage({title:n.baseText("runData.downloadBinaryData.error.title"),message:n.baseText("runData.downloadBinaryData.error.message"),type:"error"})}}function l(){ue().openModalWithData({name:Te,data:{binaryData:i.binaryData}})}const c=t;return(t,n)=>{const d=O("n8n-html");return a(),o("div",{class:w(["schema-item",{draggable:e.draggable}]),"data-test-id":"run-data-schema-item"},[s("div",ot,[e.collapsable?(a(),o("div",{key:0,class:"toggle",onClick:n[0]||(n[0]=e=>c("click"))},[N(b(W),{icon:"chevron-down",class:w({"collapse-icon":!0,collapsed:e.collapsed})},null,8,["class"])])):f("",!0)]),e.title?(a(),o("div",{key:0,"data-name":e.title,"data-path":e.path,"data-depth":e.depth,"data-nest-level":e.level,"data-value":e.expression,"data-node-type":e.nodeType,"data-target":!e.locked&&"mappable","data-node-name":e.nodeName,"data-run-index":e.runIndex,class:w(["pill",{"pill--highlight":e.highlight,"pill--preview":e.preview,"pill--locked":e.locked}]),"data-test-id":"run-data-schema-node-name"},[N(b(W),{class:"type-icon",icon:e.icon,size:"small"},null,8,["icon"]),N(We,{class:"title",content:e.title,search:i.search},null,8,["content","search"])],10,rt)):f("",!0),e.locked?(a(),B(b(H),{key:1,disabled:!e.lockedTooltip,"content-class":t.$style.tooltip},{content:j((()=>[z(s("span",null,null,512),[[d,e.lockedTooltip]])])),default:j((()=>[N(b(W),{class:"locked-icon",icon:"lock",size:"small"})])),_:1},8,["disabled","content-class"])):f("",!0),N(We,{"data-test-id":"run-data-schema-item-value",class:"text",content:e.value,search:i.search},null,8,["content","search"]),i.binaryData&&!e.preview?(a(),o("div",lt,[s("div",{class:w(["pill binary-control-pill",{"pill--highlight":e.highlight,"pill--preview":e.preview,"pill--locked":e.locked}]),onClick:r},[N(b(W),{class:"type-icon",icon:"download",size:"small"})],2),s("div",{class:w(["pill binary-control-pill",{"pill--highlight":e.highlight,"pill--preview":e.preview,"pill--locked":e.locked}]),onClick:l},[N(b(W),{class:"type-icon",icon:"eye",size:"small"})],2)])):f("",!0)],2)}}}),dt=J(ct,[["__cssModules",{$style:{tooltip:"_tooltip_1e5yq_2"}}],["__scopeId","data-v-5ae9241a"]]),ht={name:"ResizeObserver",props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:["notify"],mounted(){Lt(),y((()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()}));const e=document.createElement("object");this._resizeObject=e,e.setAttribute("aria-hidden","true"),e.setAttribute("tabindex",-1),e.onload=this.addResizeHandlers,e.type="text/html",ut&&this.$el.appendChild(e),e.data="about:blank",ut||this.$el.appendChild(e)},beforeUnmount(){this.removeResizeHandlers()},methods:{compareAndNotify(){(!this.ignoreWidth&&this._w!==this.$el.offsetWidth||!this.ignoreHeight&&this._h!==this.$el.offsetHeight)&&(this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitSize())},emitSize(){this.$emit("notify",{width:this._w,height:this._h})},addResizeHandlers(){this._resizeObject.contentDocument.defaultView.addEventListener("resize",this.compareAndNotify),this.compareAndNotify()},removeResizeHandlers(){this._resizeObject&&this._resizeObject.onload&&(!ut&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener("resize",this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},pt=m("data-v-b329ee4c"),M("data-v-b329ee4c"),vt={class:"resize-observer",tabindex:"-1"},S(),ht.render=pt(((e,t,i,n,s,o)=>(a(),B("div",vt)))),ht.__scopeId="data-v-b329ee4c",ht.__file="src/components/ResizeObserver.vue",mt=function(){function e(t,i,a){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.el=t,this.observer=null,this.frozen=!1,this.createObserver(i,a)}var t,i,a;return t=e,i=[{key:"createObserver",value:function(e,t){var i=this;if(this.observer&&this.destroyObserver(),!this.frozen){var a;if(this.options="function"==typeof(a=e)?{callback:a}:a,this.callback=function(e,t){i.options.callback(e,t),e&&i.options.once&&(i.frozen=!0,i.destroyObserver())},this.callback&&this.options.throttle){var n=(this.options.throttleOptions||{}).leading;this.callback=function(e,t){var i,a,n,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=function(o){for(var r=arguments.length,l=new Array(r>1?r-1:0),c=1;c<r;c++)l[c-1]=arguments[c];if(n=l,!i||o!==a){var d=s.leading;"function"==typeof d&&(d=d(o,a)),i&&o===a||!d||e.apply(void 0,[o].concat(Ht(n))),a=o,clearTimeout(i),i=setTimeout((function(){e.apply(void 0,[o].concat(Ht(n))),i=0}),t)}};return o._clear=function(){clearTimeout(i),i=null},o}(this.callback,this.options.throttle,{leading:function(e){return"both"===n||"visible"===n&&e||"hidden"===n&&!e}})}this.oldResult=void 0,this.observer=new IntersectionObserver((function(e){var t=e[0];if(e.length>1){var a=e.find((function(e){return e.isIntersecting}));a&&(t=a)}if(i.callback){var n=t.isIntersecting&&t.intersectionRatio>=i.threshold;if(n===i.oldResult)return;i.oldResult=n,i.callback(n,t)}}),this.options.intersection),y((function(){i.observer&&i.observer.observe(i.el)}))}}},{key:"destroyObserver",value:function(){this.observer&&(this.observer.disconnect(),this.observer=null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:"threshold",get:function(){return this.options.intersection&&"number"==typeof this.options.intersection.threshold?this.options.intersection.threshold:0}}],i&&Wt(t.prototype,i),a&&Wt(t,a),e}(),ft={beforeMount:Kt,updated:Yt,unmounted:Xt},gt={itemsLimit:1e3},yt=/(auto|scroll)/,bt=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},xt=function(e){return bt(e,"overflow")+bt(e,"overflow-y")+bt(e,"overflow-x")},wt=function(e){return yt.test(xt(e))},_t={items:{type:Array,required:!0},keyField:{type:String,default:"id"},direction:{type:String,default:"vertical",validator:function(e){return["vertical","horizontal"].includes(e)}},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"}},zt=!1,"undefined"!=typeof window){zt=!1;try{kt=Object.defineProperty({},"passive",{get:function(){zt=!0}}),window.addEventListener("test",null,kt)}catch(t){}}St=0,$t={name:"RecycleScroller",components:{ResizeObserver:ht},directives:{ObserveVisibility:ft},props:{..._t,itemSize:{type:Number,default:null},gridItems:{type:Number,default:void 0},itemSecondarySize:{type:Number,default:void 0},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:"size"},typeField:{type:String,default:"type"},buffer:{type:Number,default:200},pageMode:{type:Boolean,default:!1},prerender:{type:Number,default:0},emitUpdate:{type:Boolean,default:!1},updateInterval:{type:Number,default:0},skipHover:{type:Boolean,default:!1},listTag:{type:String,default:"div"},itemTag:{type:String,default:"div"},listClass:{type:[String,Object,Array],default:""},itemClass:{type:[String,Object,Array],default:""}},emits:["resize","visible","hidden","update","scroll-start","scroll-end"],data:()=>({pool:[],totalSize:0,ready:!1,hoverKey:null}),computed:{sizes(){if(null===this.itemSize){const e={"-1":{accumulator:0}},t=this.items,i=this.sizeField,a=this.minItemSize;let n,s=1e4,o=0;for(let r=0,l=t.length;r<l;r++)n=t[r][i]||a,n<s&&(s=n),o+=n,e[r]={accumulator:o,size:n};return this.$_computedMinItemSize=s,e}return[]},simpleArray:ei,itemIndexByKey(){const{keyField:e,items:t}=this,i={};for(let a=0,n=t.length;a<n;a++)i[t[a][e]]=a;return i}},watch:{items(){this.updateVisibleItems(!0)},pageMode(){this.applyPageMode(),this.updateVisibleItems(!1)},sizes:{handler(){this.updateVisibleItems(!1)},deep:!0},gridItems(){this.updateVisibleItems(!0)},itemSecondarySize(){this.updateVisibleItems(!0)}},created(){this.$_startIndex=0,this.$_endIndex=0,this.$_views=new Map,this.$_unusedViews=new Map,this.$_scrollDirty=!1,this.$_lastUpdateScrollPosition=0,this.prerender&&(this.$_prerender=!0,this.updateVisibleItems(!1)),this.gridItems&&!this.itemSize&&console.error("[vue-recycle-scroller] You must provide an itemSize when using gridItems")},mounted(){this.applyPageMode(),this.$nextTick((()=>{this.$_prerender=!1,this.updateVisibleItems(!0),this.ready=!0}))},activated(){const e=this.$_lastUpdateScrollPosition;"number"==typeof e&&this.$nextTick((()=>{this.scrollToPosition(e)}))},beforeUnmount(){this.removeListeners()},methods:{addView(e,t,i,a,n){const s=u({item:i,position:0,nr:E({id:St++,index:t,used:!0,key:a,type:n})});return e.push(s),s},unuseView(e,t=!1){const i=this.$_unusedViews,a=e.nr.type;let n=i.get(a);n||(n=[],i.set(a,n)),n.push(e),t||(e.nr.used=!1,e.position=-9999)},handleResize(){this.$emit("resize"),this.ready&&this.updateVisibleItems(!1)},handleScroll(e){if(!this.$_scrollDirty){if(this.$_scrollDirty=!0,this.$_updateTimeout)return;const e=()=>requestAnimationFrame((()=>{this.$_scrollDirty=!1;const{continuous:e}=this.updateVisibleItems(!1,!0);e||(clearTimeout(this.$_refreshTimout),this.$_refreshTimout=setTimeout(this.handleScroll,this.updateInterval+100))}));e(),this.updateInterval&&(this.$_updateTimeout=setTimeout((()=>{this.$_updateTimeout=0,this.$_scrollDirty&&e()}),this.updateInterval))}},handleVisibilityChange(e,t){this.ready&&(e||0!==t.boundingClientRect.width||0!==t.boundingClientRect.height?(this.$emit("visible"),requestAnimationFrame((()=>{this.updateVisibleItems(!1)}))):this.$emit("hidden"))},updateVisibleItems(e,t=!1){const i=this.itemSize,a=this.gridItems||1,n=this.itemSecondarySize||i,s=this.$_computedMinItemSize,o=this.typeField,r=this.simpleArray?null:this.keyField,l=this.items,c=l.length,d=this.sizes,u=this.$_views,h=this.$_unusedViews,p=this.pool,v=this.itemIndexByKey;let m,f,g,y,b,x;if(c)if(this.$_prerender)m=y=0,f=b=Math.min(this.prerender,l.length),g=null;else{const e=this.getScroll();if(t){let t=e.start-this.$_lastUpdateScrollPosition;if(t<0&&(t=-t),null===i&&t<s||t<i)return{continuous:!0}}this.$_lastUpdateScrollPosition=e.start;const n=this.buffer;e.start-=n,e.end+=n;let o=0;if(this.$refs.before&&(o=this.$refs.before.scrollHeight,e.start-=o),this.$refs.after){const t=this.$refs.after.scrollHeight;e.end+=t}if(null===i){let t,i,a=0,n=c-1,s=~~(c/2);do{i=s,t=d[s].accumulator,t<e.start?a=s:s<c-1&&d[s+1].accumulator>e.start&&(n=s),s=~~((a+n)/2)}while(s!==i);for(s<0&&(s=0),m=s,g=d[c-1].accumulator,f=s;f<c&&d[f].accumulator<e.end;f++);for(-1===f?f=l.length-1:(f++,f>c&&(f=c)),y=m;y<c&&o+d[y].accumulator<e.start;y++);for(b=y;b<c&&o+d[b].accumulator<e.end;b++);}else m=~~(e.start/i*a),m-=m%a,f=Math.ceil(e.end/i*a),y=Math.max(0,Math.floor((e.start-o)/i*a)),b=Math.floor((e.end-o)/i*a),m<0&&(m=0),f>c&&(f=c),y<0&&(y=0),b>c&&(b=c),g=Math.ceil(c/a)*i}else m=f=y=b=g=0;f-m>gt.itemsLimit&&this.itemsLimitError(),this.totalSize=g;const w=m<=this.$_endIndex&&f>=this.$_startIndex;if(w)for(let $=0,T=p.length;$<T;$++)x=p[$],x.nr.used&&(e&&(x.nr.index=v[x.item[r]]),(null==x.nr.index||x.nr.index<m||x.nr.index>=f)&&this.unuseView(x));const _=w?null:new Map;let z,k,S;for(let $=m;$<f;$++){z=l[$];const e=r?z[r]:z;if(null==e)throw new Error(`Key is ${e} on item (keyField is '${r}')`);if(x=u.get(e),!i&&!d[$].size){x&&this.unuseView(x);continue}k=z[o];let t=h.get(k),s=!1;if(x){if(!x.nr.used&&(x.nr.used=!0,s=!0,t)){const e=t.indexOf(x);-1!==e&&t.splice(e,1)}}else w?x=t&&t.length?t.pop():this.addView(p,$,z,e,k):(S=_.get(k)||0,(!t||S>=t.length)&&(x=this.addView(p,$,z,e,k),this.unuseView(x,!0),t=h.get(k)),x=t[S],_.set(k,S+1)),u.delete(x.nr.key),x.nr.used=!0,x.nr.index=$,x.nr.key=e,x.nr.type=k,u.set(e,x),s=!0;x.item=z,s&&($===l.length-1&&this.$emit("scroll-end"),0===$&&this.$emit("scroll-start")),null===i?(x.position=d[$-1].accumulator,x.offset=0):(x.position=Math.floor($/a)*i,x.offset=$%a*n)}return this.$_startIndex=m,this.$_endIndex=f,this.emitUpdate&&this.$emit("update",m,f,y,b),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:w}},getListenerTarget(){let e=Zt(this.$el);return!window.document||e!==window.document.documentElement&&e!==window.document.body||(e=window),e},getScroll(){const{$el:e,direction:t}=this,i="vertical"===t;let a;if(this.pageMode){const t=e.getBoundingClientRect(),n=i?t.height:t.width;let s=-(i?t.top:t.left),o=i?window.innerHeight:window.innerWidth;s<0&&(o+=s,s=0),s+o>n&&(o=n-s),a={start:s,end:s+o}}else a=i?{start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{start:e.scrollLeft,end:e.scrollLeft+e.clientWidth};return a},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener("scroll",this.handleScroll,!!zt&&{passive:!0}),this.listenerTarget.addEventListener("resize",this.handleResize)},removeListeners(){this.listenerTarget&&(this.listenerTarget.removeEventListener("scroll",this.handleScroll),this.listenerTarget.removeEventListener("resize",this.handleResize),this.listenerTarget=null)},scrollToItem(e){let t;const i=this.gridItems||1;t=null===this.itemSize?e>0?this.sizes[e-1].accumulator:0:Math.floor(e/i)*this.itemSize,this.scrollToPosition(t)},scrollToPosition(e){const t="vertical"===this.direction?{scroll:"scrollTop",start:"top"}:{scroll:"scrollLeft",start:"left"};let i,a,n;if(this.pageMode){const s=Zt(this.$el),o="HTML"===s.tagName?0:s[t.scroll],r=s.getBoundingClientRect(),l=this.$el.getBoundingClientRect()[t.start]-r[t.start];i=s,a=t.scroll,n=e+o+l}else i=this.$el,a=t.scroll,n=e;i[a]=n},itemsLimitError(){throw setTimeout((()=>{console.log("It seems the scroller element isn't scrolling, so it tries to render all the items at once.","Scroller:",this.$el),console.log("Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.")})),new Error("Rendered items limit reached")},sortViews(){this.pool.sort(((e,t)=>e.nr.index-t.nr.index))}}},Tt={key:0,ref:"before",class:"vue-recycle-scroller__slot"},It={key:1,ref:"after",class:"vue-recycle-scroller__slot"},$t.render=ti,$t.__file="src/components/RecycleScroller.vue",e("l",Dt={name:"DynamicScroller",components:{RecycleScroller:$t},provide(){return"undefined"!=typeof ResizeObserver&&(this.$_resizeObserver=new ResizeObserver((e=>{requestAnimationFrame((()=>{if(Array.isArray(e))for(const t of e)if(t.target&&t.target.$_vs_onResize){let e,i;if(t.borderBoxSize){const a=t.borderBoxSize[0];e=a.inlineSize,i=a.blockSize}else e=t.contentRect.width,i=t.contentRect.height;t.target.$_vs_onResize(t.target.$_vs_id,e,i)}}))}))),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},inheritAttrs:!1,props:{..._t,minItemSize:{type:[Number,String],required:!0}},emits:["resize","visible"],data(){return{vscrollData:{active:!0,sizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:ei,itemsWithSize(){const e=[],{items:t,keyField:i,simpleArray:a}=this,n=this.vscrollData.sizes,s=t.length;for(let o=0;o<s;o++){const s=t[o],r=a?o:s[i];let l=n[r];void 0!==l||this.$_undefinedMap[r]||(l=0),e.push({item:s,id:r,size:l})}return e}},watch:{items(){this.forceUpdate()},simpleArray:{handler(e){this.vscrollData.simpleArray=e},immediate:!0},direction(e){this.forceUpdate(!0)},itemsWithSize(e,t){const i=this.$el.scrollTop;let a=0,n=0;const s=Math.min(e.length,t.length);for(let r=0;r<s&&!(a>=i);r++)a+=t[r].size||this.minItemSize,n+=e[r].size||this.minItemSize;const o=n-a;0!==o&&(this.$el.scrollTop+=o)}},beforeCreate(){this.$_updates=[],this.$_undefinedSizes=0,this.$_undefinedMap={},this.$_events=function(e){return{all:e=e||new Map,on:function(t,i){var a=e.get(t);a&&a.push(i)||e.set(t,[i])},off:function(t,i){var a=e.get(t);a&&a.splice(a.indexOf(i)>>>0,1)},emit:function(t,i){(e.get(t)||[]).slice().map((function(e){e(i)})),(e.get("*")||[]).slice().map((function(e){e(t,i)}))}}}()},activated(){this.vscrollData.active=!0},deactivated(){this.vscrollData.active=!1},unmounted(){this.$_events.all.clear()},methods:{onScrollerResize(){this.$refs.scroller&&this.forceUpdate(),this.$emit("resize")},onScrollerVisible(){this.$_events.emit("vscroll:update",{force:!1}),this.$emit("visible")},forceUpdate(e=!1){(e||this.simpleArray)&&(this.vscrollData.sizes={}),this.$_events.emit("vscroll:update",{force:!0})},scrollToItem(e){const t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize(e,t){const i=this.simpleArray?null!=t?t:this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[i]||0},scrollToBottom(){if(this.$_scrollingToBottom)return;this.$_scrollingToBottom=!0;const e=this.$el;this.$nextTick((()=>{e.scrollTop=e.scrollHeight+5e3;const t=()=>{e.scrollTop=e.scrollHeight+5e3,requestAnimationFrame((()=>{e.scrollTop=e.scrollHeight+5e3,0===this.$_undefinedSizes?this.$_scrollingToBottom=!1:requestAnimationFrame(t)}))};requestAnimationFrame(t)}))}}}),Dt.render=ii,Dt.__file="src/components/DynamicScroller.vue",e("c",Nt={name:"DynamicScrollerItem",inject:["vscrollData","vscrollParent","vscrollResizeObserver"],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},emitResize:{type:Boolean,default:!1},tag:{type:String,default:"div"}},emits:["resize"],computed:{id(){if(this.vscrollData.simpleArray)return this.index;if(this.vscrollData.keyField in this.item)return this.item[this.vscrollData.keyField];throw new Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`)},size(){return this.vscrollData.sizes[this.id]||0},finalActive(){return this.active&&this.vscrollData.active}},watch:{watchData:"updateWatchData",id(e,t){if(this.$el.$_vs_id=this.id,this.size||this.onDataUpdate(),this.$_sizeObserved){const i=this.vscrollData.sizes[t],a=this.vscrollData.sizes[e];null!=i&&i!==a&&this.applySize(i)}},finalActive(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created(){if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver)){for(const e in this.sizeDependencies)this.$watch((()=>this.sizeDependencies[e]),this.onDataUpdate);this.vscrollParent.$_events.on("vscroll:update",this.onVscrollUpdate)}},mounted(){this.finalActive&&(this.updateSize(),this.observeSize())},beforeUnmount(){this.vscrollParent.$_events.off("vscroll:update",this.onVscrollUpdate),this.unobserveSize()},methods:{updateSize(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData(){this.watchData&&!this.vscrollResizeObserver?this.$_watchData=this.$watch("item",(()=>{this.onDataUpdate()}),{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate({force:e}){!this.finalActive&&e&&(this.$_pendingVScrollUpdate=this.id),this.$_forceNextVScrollUpdate!==this.id&&!e&&this.size||this.updateSize()},onDataUpdate(){this.updateSize()},computeSize(e){this.$nextTick((()=>{if(this.id===e){const e=this.$el.offsetWidth,t=this.$el.offsetHeight;this.applyWidthHeight(e,t)}this.$_pendingSizeUpdate=null}))},applyWidthHeight(e,t){const i=~~("vertical"===this.vscrollParent.direction?t:e);i&&this.size!==i&&this.applySize(i)},applySize(e){this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.vscrollData.sizes[this.id]=e,this.emitResize&&this.$emit("resize",this.id)},observeSize(){this.vscrollResizeObserver&&(this.$_sizeObserved||(this.vscrollResizeObserver.observe(this.$el),this.$el.$_vs_id=this.id,this.$el.$_vs_onResize=this.onResize,this.$_sizeObserved=!0))},unobserveSize(){this.vscrollResizeObserver&&this.$_sizeObserved&&(this.vscrollResizeObserver.unobserve(this.$el),this.$el.$_vs_onResize=void 0,this.$_sizeObserved=!1)},onResize(e,t,i){this.id===e&&this.applyWidthHeight(t,i)}},render(){return d(this.tag,this.$slots.default())}}),Nt.__file="src/components/DynamicScrollerItem.vue",Et=(e,t)=>"object"==typeof e?Math.ceil(JSON.stringify(e).length/t):0,Ct=e=>{const t=e.message.match(/\d+/g);if(!t||t.length<2)throw e;const i=parseInt(t[0],10);return parseInt(t[1],10)-i},Mt=(e,t,i)=>{let a=Et(e.context.schema,i);if(t>a&&(t-=a,e.context.schema=[]),e.context.schema.length){const n=[...e.context.schema];for(let s=0;s<n.length;s++){if(e.question.includes(n[s].nodeName))continue;const o=Et(n[s],i);if(t-=o,a-=o,e.context.schema.splice(s,1),t<=0)break}}return[t,a]},Ot=(e,t,i,a)=>{if(t<=0)return t;if(Array.isArray(e.context.inputSchema.schema.value)){const a=[...e.context.inputSchema.schema.value];for(let n=0;n<a.length;n++){const s=a[n].key;if((!s||!e.question.includes(s))&&(t-=Et(a[n],i),e.context.inputSchema.schema.value.splice(n,1),t<=0))break}}return t>0&&(e.context.schema=[],t-=a),t},Rt=(e,t)=>{const i=parseInt(t,10),a=e-i/2-1;return Math.floor(a/i)},At=(e,t,i)=>{const a=document.createElement("span");a.style.font=i,a.style.visibility="hidden",a.style.position="absolute",a.style.whiteSpace="pre",document.body.appendChild(a);let n=0,s=e.length,o=0;for(;n<=s;){const i=Math.floor((n+s)/2);a.textContent=e.substring(0,i),a.getBoundingClientRect().width<=t?(o=i,n=i+1):s=i-1}return document.body.removeChild(a),e.length===o?o:o-1},Vt="N8N_NODE_TEST_STEP_POPUP_COUNT",Bt=h({inheritAttrs:!1,__name:"NodeExecuteButton",props:{nodeName:{},telemetrySource:{},disabled:{type:Boolean,default:!1},label:{},variant:{},size:{},icon:{},square:{type:Boolean,default:!1},transparent:{type:Boolean,default:!1},hideIcon:{type:Boolean},hideLabel:{type:Boolean},tooltip:{},tooltipPlacement:{},showLoadingSpinner:{type:Boolean,default:!0},executionMode:{default:"inclusive"}},emits:["stopExecution","execute","valueChanged"],setup(e,{emit:t}){const i=e,s=t,o=$(),r=F(),c=re(),d=he(),{isExecuting:u,isListening:h,isListeningForWorkflowEvents:m,buttonLabel:f,buttonIcon:y,disabledReason:x,isTriggerNode:w,hasIssues:_,shouldGenerateCode:z,execute:k}=ri(p((()=>c?.value?.getNodeByName(i.nodeName)??null)),{telemetrySource:i.telemetrySource,executionMode:p((()=>i.executionMode)),source:"RunData.ExecuteNodeButton",onCodeGenerated:e=>s("valueChanged",e)}),S=l(0),T=p((()=>{if(w.value&&_.value){const e=d.activeNode;if(e&&e.name!==i.nodeName)return r.baseText("ndv.execute.fixPrevious")}return x.value})),I=p((()=>i.hideLabel?"":!i.label||h.value||m.value?f.value:i.label)),E=p((()=>i.icon?i.icon:i.hideIcon?void 0:y.value)),C=p((()=>z.value?r.baseText("ndv.execute.generateCodeAndTestNode.description"):T.value?T.value:i.tooltip&&!u.value&&M()<10?i.tooltip:""));function M(){return Number(localStorage.getItem(Vt))}function O(){const e=M();if(e<10&&!T.value&&C.value){const t=Date.now();(!S.value||t-S.value>=3e3)&&(localStorage.setItem(Vt,`${e+1}`),S.value=t)}}async function R(){const e=await k();"executed"===e&&s("execute"),"stopped-execution"===e&&s("stopExecution")}return(t,i)=>(a(),B(b(H),{placement:e.tooltipPlacement??"right",disabled:!C.value&&!o.persistentTooltipContent,visible:!!o.persistentTooltipContent||void 0},{content:j((()=>[D(t.$slots,"persistentTooltipContent",{},(()=>[n(v(C.value),1)]))])),default:j((()=>[N(b(q),g(t.$attrs,{loading:b(u)&&e.showLoadingSpinner,disabled:e.disabled||!!T.value||b(u)&&!e.showLoadingSpinner,label:I.value,variant:e.variant,size:e.size,icon:E.value,square:e.square,"transparent-background":e.transparent,title:b(w)||C.value?"":b(r).baseText("ndv.execute.testNode.description"),onMouseover:O,onClick:R}),null,16,["loading","disabled","label","variant","size","icon","square","transparent-background","title"])])),_:3},8,["placement","disabled","visible"]))}}),e("n",Pt=Bt),jt=i(be(),1),Ft=h({__name:"VirtualSchema",props:{nodes:{default:()=>[]},node:{default:null},data:{default:()=>[]},mappingEnabled:{type:Boolean,default:!1},paneType:{},connectionType:{default:Ne.Main},search:{default:""},compact:{type:Boolean,default:!1},outputIndex:{default:void 0},previewExecution:{default:void 0},truncateLimit:{default:600}},emits:["clear:search","execute"],setup(e,{emit:t}){const i=e,r=oe(),c=Ge(),d=F(),u=he(),h=ge(),m=pe(),y=re(),x=Ke(),_=ie(),k=Q(),{getSchemaForExecutionData:S,getSchemaForJsonSchema:$,getSchema:D,filterSchema:E}=de(),{closedNodes:C,flattenSchema:M,flattenMultipleSchemas:R,toggleNode:A}=me(),{getNodeInputData:V,getLastRunIn