UNPKG

n8n-editor-ui

Version:

Workflow Editor UI for n8n

5 lines 49.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]=`2663a345-14cf-4a54-a29b-cbf089b032b6`,e._sentryDebugIdIdentifier=`sentry-dbid-2663a345-14cf-4a54-a29b-cbf089b032b6`)})()}catch{}import{o as e}from"./chunk-DxpFCn6T.js";import{$ as t,A as n,C as r,E as i,F as a,Ft as o,Ht as s,I as c,It as l,N as u,S as d,Sn as f,St as p,T as m,U as h,W as g,Wt as _,_ as v,_n as y,at as b,bt as x,ct as S,et as C,ft as w,gt as T,h as E,it as D,j as O,jt as k,l as A,nt as j,ot as M,rt as N,st as P,vn as F,w as I,yn as L,yt as R}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{bt as z,h as ee,xt as B}from"./_MapCache-CUJwh2qp.js";import{$i as V,Mi as H,Qi as U,Xi as te,Zi as ne,_t as re,lt as W}from"./src-wni2AGA3.js";import{t as G}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import{$t as ie,As as ae,Dr as oe,Ni as K,Nt as se,Pr as ce,Tr as le,dn as ue,en as de,ia as fe,in as pe,jr as me,lt as he,r as ge,rn as q,s as J,st as _e,ut as ve,va as ye,w as be}from"./users.store-BHWXXawf.js";import{C as xe,Ci as Se,Ds as Ce,Fi as we,Gt as Te,Mn as Ee,P as De,Ps as Oe,So as ke,Zo as Ae,_s as je,bo as Me,gn as Ne,ho as Pe,mo as Fe,pl as Ie,wr as Le,xo as Y}from"./constants-CIP7tKq1.js";import{r as X}from"./_baseOrderBy-CaKruttV.js";import{i as Re,o as ze,r as Be,t as Ve}from"./NDVEmptyState-DMWlSoOG.js";import{t as He}from"./usePinnedData-bxdhY-Ce.js";import{o as Ue}from"./nodeTransforms-DgA3LbBA.js";import{t as We}from"./Draggable-B_Sok8jx.js";import{t as Ge}from"./NodeIcon-0naEDfOR.js";import{t as Ke}from"./TextWithHighlights-DREOi4W6.js";import{t as qe}from"./useCalloutHelpers-BtD3kQKI.js";import{n as Je,t as Ye}from"./useTelemetryContext-Chv8_oZ6.js";import{i as Xe,t as Ze}from"./useRunWorkflow-BbbTafql.js";var Qe={class:`schema-header-wrapper`},$e={class:`schema-header`,"data-test-id":`run-data-schema-header`},et={class:`title`},tt={key:0,class:`info`},nt={key:2,class:`extra-info`,"data-test-id":`run-data-schema-node-item-count`},rt={key:3,class:`extra-info`},it=G(u({__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:a}){let o=e,s=z(),c=d(()=>!!o.nodeType?.group.includes(`trigger`)),l=a;return(a,o)=>(t(),i(`div`,Qe,[r(`div`,$e,[r(`div`,{class:`toggle`,onClickCapture:o[0]||=E(e=>l(`click:toggle`),[`stop`])},[O(_(V),{size:`medium`,icon:`chevron-down`,class:y({"collapse-icon":!0,collapsed:e.collapsed})},null,8,[`class`])],32),e.nodeType?(t(),I(Ge,{key:0,class:y([`icon`,{"icon-trigger":c.value}]),"node-type":e.nodeType,size:12},null,8,[`class`,`node-type`])):m(``,!0),r(`div`,et,[n(f(e.title)+` `,1),e.info?(t(),i(`span`,tt,f(e.info),1)):m(``,!0)]),c.value?(t(),I(_(V),{key:1,class:`trigger-icon`,icon:`bolt-filled`,size:`xsmall`})):m(``,!0),e.itemCount&&!e.lastSuccessfulPreview?(t(),i(`div`,nt,f(_(s).baseText(`ndv.output.items`,{interpolate:{count:e.itemCount}})),1)):e.preview?(t(),i(`div`,rt,f(_(s).baseText(`dataMapping.schemaView.previewNode`)),1)):m(``,!0)]),e.preview&&!e.collapsed?(t(),i(`div`,{key:0,class:`notice`,"data-test-id":`schema-preview-warning`,onClick:o[3]||=E(()=>{},[`stop`])},[e.lastSuccessfulPreview?(t(),I(_(B),{key:0,keypath:`dataMapping.schemaView.previewLastExecution`,scope:`global`},{execute:R(()=>[O(_(W),{onClick:o[1]||=()=>l(`execute`,e.title),size:`small`,bold:``},{default:R(()=>[n(f(_(s).baseText(`dataMapping.schemaView.previewLastExecution.executePreviousNodes`)),1)]),_:1})]),_:1})):(t(),I(_(B),{key:1,keypath:`dataMapping.schemaView.preview`,scope:`global`},{execute:R(()=>[O(_(W),{onClick:o[2]||=()=>l(`execute`,e.title),size:`small`,bold:``},{default:R(()=>[n(f(_(s).baseText(`dataMapping.schemaView.preview.executeNode`)),1)]),_:1})]),link:R(()=>[O(_(W),{to:_(xe),size:`small`,bold:``},{default:R(()=>[n(f(_(s).baseText(`generic.learnMore`)),1)]),_:1},8,[`to`])]),_:1}))])):m(``,!0)]))}}),[[`__scopeId`,`data-v-81c3a2d5`]]),at=ce(),ot={class:`toggle-container`},st=[`data-name`,`data-path`,`data-depth`,`data-nest-level`,`data-value`,`data-node-type`,`data-target`,`data-node-name`,`data-run-index`],ct={key:2,class:`binary-controls`},lt=G(u({__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:n}){A(e=>({bae8c388:e.level}));let a=e,o=z();async function s(){if(a.binaryData)try{let{id:e,fileName:t,mimeType:n,fileExtension:r}=a.binaryData,i=J().getBinaryUrl(e,`download`,t??``,n),o=t??`file`;!o.includes(`.`)&&r&&(o=[o,r].join(`.`));let s=await fetch(i);if(!s.ok)throw Error(`Error downloading file`);(0,at.saveAs)(await s.blob(),o)}catch{le().showMessage({title:o.baseText(`runData.downloadBinaryData.error.title`),message:o.baseText(`runData.downloadBinaryData.error.message`),type:`error`})}}function c(){ge().openModalWithData({name:je,data:{binaryData:a.binaryData}})}let l=n;return(n,o)=>{let u=M(`n8n-html`);return t(),i(`div`,{class:y([`schema-item`,{draggable:e.draggable}]),"data-test-id":`run-data-schema-item`},[r(`div`,ot,[e.collapsable?(t(),i(`div`,{key:0,class:`toggle`,onClick:o[0]||=e=>l(`click`)},[O(_(V),{icon:`chevron-down`,class:y({"collapse-icon":!0,collapsed:e.collapsed})},null,8,[`class`])])):m(``,!0)]),e.title?(t(),i(`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:y([`pill`,{"pill--highlight":e.highlight,"pill--preview":e.preview,"pill--locked":e.locked}]),"data-test-id":`run-data-schema-node-name`},[O(_(V),{class:`type-icon`,icon:e.icon,size:`small`},null,8,[`icon`]),O(Ke,{class:`title`,content:e.title,search:a.search},null,8,[`content`,`search`])],10,st)):m(``,!0),e.locked?(t(),I(_(H),{key:1,disabled:!e.lockedTooltip,"content-class":n.$style.tooltip},{content:R(()=>[x(r(`span`,null,null,512),[[u,e.lockedTooltip]])]),default:R(()=>[O(_(V),{class:`locked-icon`,icon:`lock`,size:`small`})]),_:1},8,[`disabled`,`content-class`])):m(``,!0),O(Ke,{"data-test-id":`run-data-schema-item-value`,class:`text`,content:e.value,search:a.search},null,8,[`content`,`search`]),a.binaryData&&!e.preview?(t(),i(`div`,ct,[r(`div`,{class:y([`pill binary-control-pill`,{"pill--highlight":e.highlight,"pill--preview":e.preview,"pill--locked":e.locked}]),onClick:s},[O(_(V),{class:`type-icon`,icon:`download`,size:`small`})],2),r(`div`,{class:y([`pill binary-control-pill`,{"pill--highlight":e.highlight,"pill--preview":e.preview,"pill--locked":e.locked}]),onClick:c},[O(_(V),{class:`type-icon`,icon:`eye`,size:`small`})],2)])):m(``,!0)],2)}}}),[[`__cssModules`,{$style:{tooltip:`_tooltip_1e5yq_2`}}],[`__scopeId`,`data-v-5ae9241a`]]);function ut(){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 n=e.indexOf(`rv:`);return parseInt(e.substring(n+3,e.indexOf(`.`,n)),10)}var r=e.indexOf(`Edge/`);return r>0?parseInt(e.substring(r+5,e.indexOf(`.`,r)),10):-1}var Z;function dt(){dt.init||(dt.init=!0,Z=ut()!==-1)}var Q={name:`ResizeObserver`,props:{emitOnMount:{type:Boolean,default:!1},ignoreWidth:{type:Boolean,default:!1},ignoreHeight:{type:Boolean,default:!1}},emits:[`notify`],mounted(){dt(),g(()=>{this._w=this.$el.offsetWidth,this._h=this.$el.offsetHeight,this.emitOnMount&&this.emitSize()});let e=document.createElement(`object`);this._resizeObject=e,e.setAttribute(`aria-hidden`,`true`),e.setAttribute(`tabindex`,-1),e.onload=this.addResizeHandlers,e.type=`text/html`,Z&&this.$el.appendChild(e),e.data=`about:blank`,Z||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&&(!Z&&this._resizeObject.contentDocument&&this._resizeObject.contentDocument.defaultView.removeEventListener(`resize`,this.compareAndNotify),this.$el.removeChild(this._resizeObject),this._resizeObject.onload=null,this._resizeObject=null)}}},ft=p(`data-v-b329ee4c`);j(`data-v-b329ee4c`);var pt={class:`resize-observer`,tabindex:`-1`};C(),Q.render=ft((e,n,r,i,a,o)=>(t(),I(`div`,pt))),Q.__scopeId=`data-v-b329ee4c`,Q.__file=`src/components/ResizeObserver.vue`;function mt(e){"@babel/helpers - typeof";return mt=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},mt(e)}function ht(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function gt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _t(e,t,n){return t&&gt(e.prototype,t),n&&gt(e,n),e}function vt(e){return yt(e)||bt(e)||xt(e)||Ct()}function yt(e){if(Array.isArray(e))return St(e)}function bt(e){if(typeof Symbol<`u`&&Symbol.iterator in Object(e))return Array.from(e)}function xt(e,t){if(e){if(typeof e==`string`)return St(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return St(e,t)}}function St(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ct(){throw TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wt(e){return typeof e==`function`?{callback:e}:e}function Tt(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r,i,a,o=function(o){if(a=[...arguments].slice(1),!(r&&o===i)){var s=n.leading;typeof s==`function`&&(s=s(o,i)),(!r||o!==i)&&s&&e.apply(void 0,[o].concat(vt(a))),i=o,clearTimeout(r),r=setTimeout(function(){e.apply(void 0,[o].concat(vt(a))),r=0},t)}};return o._clear=function(){clearTimeout(r),r=null},o}function Et(e,t){if(e===t)return!0;if(mt(e)===`object`){for(var n in e)if(!Et(e[n],t[n]))return!1;return!0}return!1}var Dt=function(){function e(t,n,r){ht(this,e),this.el=t,this.observer=null,this.frozen=!1,this.createObserver(n,r)}return _t(e,[{key:`createObserver`,value:function(e,t){var n=this;if(this.observer&&this.destroyObserver(),!this.frozen){if(this.options=wt(e),this.callback=function(e,t){n.options.callback(e,t),e&&n.options.once&&(n.frozen=!0,n.destroyObserver())},this.callback&&this.options.throttle){var r=(this.options.throttleOptions||{}).leading;this.callback=Tt(this.callback,this.options.throttle,{leading:function(e){return r===`both`||r===`visible`&&e||r===`hidden`&&!e}})}this.oldResult=void 0,this.observer=new IntersectionObserver(function(e){var t=e[0];if(e.length>1){var r=e.find(function(e){return e.isIntersecting});r&&(t=r)}if(n.callback){var i=t.isIntersecting&&t.intersectionRatio>=n.threshold;if(i===n.oldResult)return;n.oldResult=i,n.callback(i,t)}},this.options.intersection),g(function(){n.observer&&n.observer.observe(n.el)})}}},{key:`destroyObserver`,value:function(){this.observer&&=(this.observer.disconnect(),null),this.callback&&this.callback._clear&&(this.callback._clear(),this.callback=null)}},{key:`threshold`,get:function(){return this.options.intersection&&typeof this.options.intersection.threshold==`number`?this.options.intersection.threshold:0}}]),e}();function Ot(e,t,n){var r=t.value;r&&(typeof IntersectionObserver>`u`?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 Dt(e,r,n))}function kt(e,t,n){var r=t.value,i=t.oldValue;if(!Et(r,i)){var a=e._vue_visibilityState;if(!r){At(e);return}a?a.createObserver(r,n):Ot(e,{value:r},n)}}function At(e){var t=e._vue_visibilityState;t&&(t.destroyObserver(),delete e._vue_visibilityState)}var jt={beforeMount:Ot,updated:kt,unmounted:At};function Mt(e){return{all:e||=new Map,on:function(t,n){var r=e.get(t);r&&r.push(n)||e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&r.splice(r.indexOf(n)>>>0,1)},emit:function(t,n){(e.get(t)||[]).slice().map(function(e){e(n)}),(e.get(`*`)||[]).slice().map(function(e){e(t,n)})}}}var Nt={itemsLimit:1e3},Pt=/(auto|scroll)/;function Ft(e,t){return e.parentNode===null?t:Ft(e.parentNode,t.concat([e]))}var It=function(e,t){return getComputedStyle(e,null).getPropertyValue(t)},Lt=function(e){return It(e,`overflow`)+It(e,`overflow-y`)+It(e,`overflow-x`)},Rt=function(e){return Pt.test(Lt(e))};function zt(e){if(e instanceof HTMLElement||e instanceof SVGElement){for(var t=Ft(e.parentNode,[]),n=0;n<t.length;n+=1)if(Rt(t[n]))return t[n];return document.scrollingElement||document.documentElement}}function Bt(e){"@babel/helpers - typeof";return Bt=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},Bt(e)}var Vt={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`}};function Ht(){return this.items.length&&Bt(this.items[0])!==`object`}var Ut=!1;if(typeof window<`u`){Ut=!1;try{var Wt=Object.defineProperty({},`passive`,{get:function(){Ut=!0}});window.addEventListener(`test`,null,Wt)}catch{}}var Gt=0,Kt={name:`RecycleScroller`,components:{ResizeObserver:Q},directives:{ObserveVisibility:jt},props:{...Vt,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(){return{pool:[],totalSize:0,ready:!1,hoverKey:null}},computed:{sizes(){if(this.itemSize===null){let e={"-1":{accumulator:0}},t=this.items,n=this.sizeField,r=this.minItemSize,i=1e4,a=0,o;for(let s=0,c=t.length;s<c;s++)o=t[s][n]||r,o<i&&(i=o),a+=o,e[s]={accumulator:a,size:o};return this.$_computedMinItemSize=i,e}return[]},simpleArray:Ht,itemIndexByKey(){let{keyField:e,items:t}=this,n={};for(let r=0,i=t.length;r<i;r++)n[t[r][e]]=r;return n}},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(){let e=this.$_lastUpdateScrollPosition;typeof e==`number`&&this.$nextTick(()=>{this.scrollToPosition(e)})},beforeUnmount(){this.removeListeners()},methods:{addView(e,t,n,r,i){let a=l({item:n,position:0,nr:k({id:Gt++,index:t,used:!0,key:r,type:i})});return e.push(a),a},unuseView(e,t=!1){let n=this.$_unusedViews,r=e.nr.type,i=n.get(r);i||(i=[],n.set(r,i)),i.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;let e=()=>requestAnimationFrame(()=>{this.$_scrollDirty=!1;let{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||t.boundingClientRect.width!==0||t.boundingClientRect.height!==0?(this.$emit(`visible`),requestAnimationFrame(()=>{this.updateVisibleItems(!1)})):this.$emit(`hidden`))},updateVisibleItems(e,t=!1){let n=this.itemSize,r=this.gridItems||1,i=this.itemSecondarySize||n,a=this.$_computedMinItemSize,o=this.typeField,s=this.simpleArray?null:this.keyField,c=this.items,l=c.length,u=this.sizes,d=this.$_views,f=this.$_unusedViews,p=this.pool,m=this.itemIndexByKey,h,g,_,v,y;if(!l)h=g=v=y=_=0;else if(this.$_prerender)h=v=0,g=y=Math.min(this.prerender,c.length),_=null;else{let e=this.getScroll();if(t){let t=e.start-this.$_lastUpdateScrollPosition;if(t<0&&(t=-t),n===null&&t<a||t<n)return{continuous:!0}}this.$_lastUpdateScrollPosition=e.start;let i=this.buffer;e.start-=i,e.end+=i;let o=0;if(this.$refs.before&&(o=this.$refs.before.scrollHeight,e.start-=o),this.$refs.after){let t=this.$refs.after.scrollHeight;e.end+=t}if(n===null){let t,n=0,r=l-1,i=~~(l/2),a;do a=i,t=u[i].accumulator,t<e.start?n=i:i<l-1&&u[i+1].accumulator>e.start&&(r=i),i=~~((n+r)/2);while(i!==a);for(i<0&&(i=0),h=i,_=u[l-1].accumulator,g=i;g<l&&u[g].accumulator<e.end;g++);for(g===-1?g=c.length-1:(g++,g>l&&(g=l)),v=h;v<l&&o+u[v].accumulator<e.start;v++);for(y=v;y<l&&o+u[y].accumulator<e.end;y++);}else{h=~~(e.start/n*r);let t=h%r;h-=t,g=Math.ceil(e.end/n*r),v=Math.max(0,Math.floor((e.start-o)/n*r)),y=Math.floor((e.end-o)/n*r),h<0&&(h=0),g>l&&(g=l),v<0&&(v=0),y>l&&(y=l),_=Math.ceil(l/r)*n}}g-h>Nt.itemsLimit&&this.itemsLimitError(),this.totalSize=_;let b,x=h<=this.$_endIndex&&g>=this.$_startIndex;if(x)for(let t=0,n=p.length;t<n;t++)b=p[t],b.nr.used&&(e&&(b.nr.index=m[b.item[s]]),(b.nr.index==null||b.nr.index<h||b.nr.index>=g)&&this.unuseView(b));let S=x?null:new Map,C,w,T;for(let e=h;e<g;e++){C=c[e];let t=s?C[s]:C;if(t==null)throw Error(`Key is ${t} on item (keyField is '${s}')`);if(b=d.get(t),!n&&!u[e].size){b&&this.unuseView(b);continue}w=C[o];let a=f.get(w),l=!1;if(!b)x?b=a&&a.length?a.pop():this.addView(p,e,C,t,w):(T=S.get(w)||0,(!a||T>=a.length)&&(b=this.addView(p,e,C,t,w),this.unuseView(b,!0),a=f.get(w)),b=a[T],S.set(w,T+1)),d.delete(b.nr.key),b.nr.used=!0,b.nr.index=e,b.nr.key=t,b.nr.type=w,d.set(t,b),l=!0;else if(!b.nr.used&&(b.nr.used=!0,l=!0,a)){let e=a.indexOf(b);e!==-1&&a.splice(e,1)}b.item=C,l&&(e===c.length-1&&this.$emit(`scroll-end`),e===0&&this.$emit(`scroll-start`)),n===null?(b.position=u[e-1].accumulator,b.offset=0):(b.position=Math.floor(e/r)*n,b.offset=e%r*i)}return this.$_startIndex=h,this.$_endIndex=g,this.emitUpdate&&this.$emit(`update`,h,g,v,y),clearTimeout(this.$_sortTimer),this.$_sortTimer=setTimeout(this.sortViews,this.updateInterval+300),{continuous:x}},getListenerTarget(){let e=zt(this.$el);return window.document&&(e===window.document.documentElement||e===window.document.body)&&(e=window),e},getScroll(){let{$el:e,direction:t}=this,n=t===`vertical`,r;if(this.pageMode){let t=e.getBoundingClientRect(),i=n?t.height:t.width,a=-(n?t.top:t.left),o=n?window.innerHeight:window.innerWidth;a<0&&(o+=a,a=0),a+o>i&&(o=i-a),r={start:a,end:a+o}}else r=n?{start:e.scrollTop,end:e.scrollTop+e.clientHeight}:{start:e.scrollLeft,end:e.scrollLeft+e.clientWidth};return r},applyPageMode(){this.pageMode?this.addListeners():this.removeListeners()},addListeners(){this.listenerTarget=this.getListenerTarget(),this.listenerTarget.addEventListener(`scroll`,this.handleScroll,Ut?{passive:!0}:!1),this.listenerTarget.addEventListener(`resize`,this.handleResize)},removeListeners(){this.listenerTarget&&=(this.listenerTarget.removeEventListener(`scroll`,this.handleScroll),this.listenerTarget.removeEventListener(`resize`,this.handleResize),null)},scrollToItem(e){let t,n=this.gridItems||1;t=this.itemSize===null?e>0?this.sizes[e-1].accumulator:0:Math.floor(e/n)*this.itemSize,this.scrollToPosition(t)},scrollToPosition(e){let t=this.direction===`vertical`?{scroll:`scrollTop`,start:`top`}:{scroll:`scrollLeft`,start:`left`},n,r,i;if(this.pageMode){let a=zt(this.$el),o=a.tagName===`HTML`?0:a[t.scroll],s=a.getBoundingClientRect(),c=this.$el.getBoundingClientRect()[t.start]-s[t.start];n=a,r=t.scroll,i=e+o+c}else n=this.$el,r=t.scroll,i=e;n[r]=i},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.`)}),Error(`Rendered items limit reached`)},sortViews(){this.pool.sort((e,t)=>e.nr.index-t.nr.index)}}},qt={key:0,ref:`before`,class:`vue-recycle-scroller__slot`},Jt={key:1,ref:`after`,class:`vue-recycle-scroller__slot`};function Yt(e,n,r,a,o,s){let c=b(`ResizeObserver`),l=M(`observe-visibility`);return x((t(),i(`div`,{class:y([`vue-recycle-scroller`,{ready:o.ready,"page-mode":r.pageMode,[`direction-${e.direction}`]:!0}]),onScrollPassive:n[0]||=(...e)=>s.handleScroll&&s.handleScroll(...e)},[e.$slots.before?(t(),i(`div`,qt,[D(e.$slots,`before`)],512)):m(`v-if`,!0),(t(),I(P(r.listTag),{ref:`wrapper`,style:L({[e.direction===`vertical`?`minHeight`:`minWidth`]:o.totalSize+`px`}),class:y([`vue-recycle-scroller__item-wrapper`,r.listClass])},{default:R(()=>[(t(!0),i(v,null,N(o.pool,n=>(t(),I(P(r.itemTag),h({key:n.nr.id,style:o.ready?{transform:`translate${e.direction===`vertical`?`Y`:`X`}(${n.position}px) translate${e.direction===`vertical`?`X`:`Y`}(${n.offset}px)`,width:r.gridItems?`${e.direction===`vertical`&&r.itemSecondarySize||r.itemSize}px`:void 0,height:r.gridItems?`${e.direction===`horizontal`&&r.itemSecondarySize||r.itemSize}px`:void 0}:null,class:[`vue-recycle-scroller__item-view`,[r.itemClass,{hover:!r.skipHover&&o.hoverKey===n.nr.key}]]},S(r.skipHover?{}:{mouseenter:()=>{o.hoverKey=n.nr.key},mouseleave:()=>{o.hoverKey=null}})),{default:R(()=>[D(e.$slots,`default`,{item:n.item,index:n.nr.index,active:n.nr.used})]),_:2},1040,[`style`,`class`]))),128)),D(e.$slots,`empty`)]),_:3},8,[`style`,`class`])),e.$slots.after?(t(),i(`div`,Jt,[D(e.$slots,`after`)],512)):m(`v-if`,!0),O(c,{onNotify:s.handleResize},null,8,[`onNotify`])],34)),[[l,s.handleVisibilityChange]])}Kt.render=Yt,Kt.__file=`src/components/RecycleScroller.vue`;var $={name:`DynamicScroller`,components:{RecycleScroller:Kt},provide(){return typeof ResizeObserver<`u`&&(this.$_resizeObserver=new ResizeObserver(e=>{requestAnimationFrame(()=>{if(Array.isArray(e)){for(let t of e)if(t.target&&t.target.$_vs_onResize){let e,n;if(t.borderBoxSize){let r=t.borderBoxSize[0];e=r.inlineSize,n=r.blockSize}else e=t.contentRect.width,n=t.contentRect.height;t.target.$_vs_onResize(t.target.$_vs_id,e,n)}}})})),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},inheritAttrs:!1,props:{...Vt,minItemSize:{type:[Number,String],required:!0}},emits:[`resize`,`visible`],data(){return{vscrollData:{active:!0,sizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray:Ht,itemsWithSize(){let e=[],{items:t,keyField:n,simpleArray:r}=this,i=this.vscrollData.sizes,a=t.length;for(let o=0;o<a;o++){let a=t[o],s=r?o:a[n],c=i[s];c===void 0&&!this.$_undefinedMap[s]&&(c=0),e.push({item:a,id:s,size:c})}return e}},watch:{items(){this.forceUpdate()},simpleArray:{handler(e){this.vscrollData.simpleArray=e},immediate:!0},direction(e){this.forceUpdate(!0)},itemsWithSize(e,t){let n=this.$el.scrollTop,r=0,i=0,a=Math.min(e.length,t.length);for(let o=0;o<a&&!(r>=n);o++)r+=t[o].size||this.minItemSize,i+=e[o].size||this.minItemSize;let o=i-r;o!==0&&(this.$el.scrollTop+=o)}},beforeCreate(){this.$_updates=[],this.$_undefinedSizes=0,this.$_undefinedMap={},this.$_events=Mt()},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){let t=this.$refs.scroller;t&&t.scrollToItem(e)},getItemSize(e,t=void 0){let n=this.simpleArray?t??this.items.indexOf(e):e[this.keyField];return this.vscrollData.sizes[n]||0},scrollToBottom(){if(this.$_scrollingToBottom)return;this.$_scrollingToBottom=!0;let e=this.$el;this.$nextTick(()=>{e.scrollTop=e.scrollHeight+5e3;let t=()=>{e.scrollTop=e.scrollHeight+5e3,requestAnimationFrame(()=>{e.scrollTop=e.scrollHeight+5e3,this.$_undefinedSizes===0?this.$_scrollingToBottom=!1:requestAnimationFrame(t)})};requestAnimationFrame(t)})}}};function Xt(e,n,r,i,o,s){let c=b(`RecycleScroller`);return t(),I(c,h({ref:`scroller`,items:s.itemsWithSize,"min-item-size":r.minItemSize,direction:e.direction,"key-field":`id`,"list-tag":e.listTag,"item-tag":e.itemTag},e.$attrs,{onResize:s.onScrollerResize,onVisible:s.onScrollerVisible}),{default:R(({item:t,index:n,active:r})=>[D(e.$slots,`default`,F(a({item:t.item,index:n,active:r,itemWithSize:t})))]),before:R(()=>[D(e.$slots,`before`)]),after:R(()=>[D(e.$slots,`after`)]),empty:R(()=>[D(e.$slots,`empty`)]),_:3},16,[`items`,`min-item-size`,`direction`,`list-tag`,`item-tag`,`onResize`,`onVisible`])}$.render=Xt,$.__file=`src/components/DynamicScroller.vue`;var Zt={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 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){let n=this.vscrollData.sizes[t],r=this.vscrollData.sizes[e];n!=null&&n!==r&&this.applySize(n)}},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(let 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(),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){let e=this.$el.offsetWidth,t=this.$el.offsetHeight;this.applyWidthHeight(e,t)}this.$_pendingSizeUpdate=null})},applyWidthHeight(e,t){let n=~~(this.vscrollParent.direction===`vertical`?t:e);n&&this.size!==n&&this.applySize(n)},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,!0))},unobserveSize(){this.vscrollResizeObserver&&(this.$_sizeObserved&&=(this.vscrollResizeObserver.unobserve(this.$el),this.$el.$_vs_onResize=void 0,!1))},onResize(e,t,n){this.id===e&&this.applyWidthHeight(t,n)}},render(){return c(this.tag,this.$slots.default())}};Zt.__file=`src/components/DynamicScrollerItem.vue`;function Qt(){let e=q().activeNode,{workflowObject:t,getNodeByName:n}=J();return!e||!t?[]:t.getParentNodesByDepth(e?.name).filter(({name:t},n,r)=>t!==e.name&&r.findIndex(e=>e.name===t)===n).map(e=>n(e.name)).filter(e=>e!==null)}function $t(){let e=Qt(),t=e.map(e=>e?.name),{getSchemaForExecutionData:n,getInputDataWithPinned:r}=he(),i=e.map(e=>{let t=r(e);return{nodeName:e?.name||``,schema:n(K(t),!1)}}).filter(e=>e.schema?.value.length>0);return{parentNodesNames:t,inputSchema:i.shift(),parentNodesSchemas:i}}var en=(e,t)=>typeof e==`object`?Math.ceil(JSON.stringify(e).length/t):0,tn=e=>{let t=e.message.match(/\d+/g);if(!t||t.length<2)throw e;let n=parseInt(t[0],10);return parseInt(t[1],10)-n},nn=(e,t,n)=>{let r=en(e.context.schema,n);if(t>r&&(t-=r,e.context.schema=[]),e.context.schema.length){let i=[...e.context.schema];for(let a=0;a<i.length;a++){if(e.question.includes(i[a].nodeName))continue;let o=en(i[a],n);if(t-=o,r-=o,e.context.schema.splice(a,1),t<=0)break}}return[t,r]},rn=(e,t,n,r)=>{if(t<=0)return t;if(Array.isArray(e.context.inputSchema.schema.value)){let r=[...e.context.inputSchema.schema.value];for(let i=0;i<r.length;i++){let a=r[i].key;if(a&&e.question.includes(a))continue;let o=en(r[i],n);if(t-=o,e.context.inputSchema.schema.value.splice(i,1),t<=0)break}}return t>0&&(e.context.schema=[],t-=r),t};function an(e,t,n=4){let r=tn(t),[i,a]=nn(e,r,n);if(r=i,r=rn(e,r,n,a),r>0)throw t}async function on(e,t,n=1){let r=$t(),i={question:e,context:{schema:r.parentNodesSchemas,inputSchema:r.inputSchema,ndvPushRef:q().pushRef,pushRef:X().pushRef},forNode:`transform`},a;if(ae().isAskAiEnabled){let{restApiContext:e}=X(),t=``;for(;n>0;)try{let{code:n}=await _e(e,i);t=n;break}catch(e){if(typeof e.message==`string`&&e.message.includes(`maximum context length`)){an(i,e);continue}if(n--,!n)throw e}a=t}else throw new Ae(`AI code generation is not enabled`);if(a!==void 0)return{name:t,value:await ze(String(a),{parser:`babel`,plugins:[Re,Be]})}}function sn(e,t){if(t)return t;let n=[],r=[],i=window.getComputedStyle(e),a=parseFloat(i.paddingLeft)+parseFloat(i.paddingRight),o=parseFloat(i.borderLeftWidth)+parseFloat(i.borderRightWidth),s=e.clientWidth-a-o,c=cn(i),l=e.value.split(` `);return l.forEach(e=>{r.push([])}),l.forEach((e,t)=>{if(e===``){n.push(e),r[t].push(n.length-1);return}let i=``;e.split(/(\s+)/).forEach(e=>{let a=i+e;c.measureText(a).width<=s?i=a:(n.push(i.trimEnd()),r[t].push(n.length-1),i=e)}),i&&(n.push(i.trimEnd()),r[t].push(n.length-1))}),{rows:n,linesToRowsMap:r}}function cn(e){let t=document.createElement(`canvas`).getContext(`2d`);return t.font=`${e.fontWeight} ${e.fontSize} ${e.fontFamily}`,t}var ln=(e,t)=>{let n=parseInt(t,10),r=e-n/2-1;return Math.floor(r/n)},un=(e,t,n)=>{let r=document.createElement(`span`);r.style.font=n,r.style.visibility=`hidden`,r.style.position=`absolute`,r.style.whiteSpace=`pre`,document.body.appendChild(r);let i=0,a=e.length,o=0;for(;i<=a;){let n=Math.floor((i+a)/2);r.textContent=e.substring(0,n),r.getBoundingClientRect().width<=t?(o=n,i=n+1):a=n-1}return document.body.removeChild(r),e.length===o?o:o-1};function dn(e,t,n){let r=e.target,i=r.getBoundingClientRect(),a=e.clientX-i.left,o=e.clientY-i.top,{lineHeight:s,font:c}=window.getComputedStyle(r),l=ln(o,s),u=sn(r,t),d=n;u.rows[l]===void 0&&(d=`${r.value} ${n}`);let{rows:f,linesToRowsMap:p}=u,m=f[l];if(m===``)f[l]=n;else{let e=un(m,a,c);f[l]=[f[l].slice(0,e).trim(),n,f[l].slice(e).trim()].join(` `).trim()}return d=p.map(e=>e.map(e=>f[e]).join(` `)).join(` `),d}function fn(e,t,n,r){let i=e.getBoundingClientRect(),a=n-i.left,o=r-i.top,{lineHeight:s,font:c}=window.getComputedStyle(e),l=ln(o,s),{rows:u}=sn(e,t);if(l<0||l>=u.length)return e.value.length;let d=u[l],f=un(d,a,c);return u.slice(0,l).reduce((e,t)=>e+t.length+1,0)+f}function pn(e,t={}){let{telemetrySource:n=`setupPanel`,executionMode:r=`inclusive`,source:i=`SetupPanel.ExecuteNodeButton`}=t,a=re(),c=z(),l=de(),u=le(),f=me(),p=oe(),m=J(),h=be(),g=q(),_=ge(),v=pe(),{runWorkflow:y,stopCurrentExecution:b}=Ze({router:a}),x=o(!1),S=d(()=>s(e)??null),C=He(S),w=d(()=>S.value?h.getNodeType(S.value.type,S.value.typeVersion):null),T=d(()=>S.value?h.isTriggerNode(S.value.type):!1),E=d(()=>w.value?.name===Ee),D=d(()=>w.value?.name===Te),O=d(()=>S.value?m.checkIfNodeHasChatParent(S.value.name):!1),k=d(()=>w.value?.name===Ne),A=d(()=>!!w.value?.polling),j=d(()=>!!w.value?.group.includes(`schedule`)),M=d(()=>w.value?.name===Le),N=d(()=>{if(!m.isWorkflowRunning||x.value)return!1;let e=m.executedNode;return v.executingNode.isNodeExecuting(S.value?.name??``)||e===S.value?.name}),P=d(()=>{let e=m.executionWaitingForWebhook,t=m.executedNode;return!!S.value&&!S.value.disabled&&T.value&&e&&(!t||t===S.value.name)}),F=d(()=>N.value&&T.value&&!j.value&&!E.value),I=d(()=>x.value||N.value&&!P.value&&!F.value),L=d(()=>!!(S.value?.issues&&(S.value.issues.parameters||S.value.issues.credentials))),R=d(()=>P.value?``:x.value?c.baseText(`ndv.execute.generatingCode`):S.value?.disabled?c.baseText(`ndv.execute.nodeIsDisabled`):T.value&&L.value?c.baseText(`ndv.execute.requiredFieldsMissing`):m.isWorkflowRunning&&!N.value?c.baseText(`ndv.execute.workflowAlreadyRunning`):``),ee=d(()=>P.value||F.value?c.baseText(`ndv.execute.stopListening`):V.value?c.baseText(`ndv.execute.generateCodeAndTestNode.description`):D.value?c.baseText(`ndv.execute.testChat`):M.value?c.baseText(`ndv.execute.listenForTestEvent`):k.value?c.baseText(`ndv.execute.testStep`):A.value||w.value?.mockManualExecution?c.baseText(`ndv.execute.fetchEvent`):c.baseText(`ndv.execute.testNode`)),B=d(()=>{if(V.value)return`terminal`;if(!P.value)return`flask-conical`}),V=d(()=>S.value?.type!==`n8n-nodes-base.aiTransform`||!S.value?.parameters?.instructions?!1:!!(!S.value?.parameters?.jsCode||S.value?.parameters.codeGeneratedForPrompt&&(S.value?.parameters?.instructions).trim()!==(S.value?.parameters?.codeGeneratedForPrompt).trim()));async function H(){try{await m.removeTestWebhook(m.workflowId)}catch(e){u.showError(e,`Error stopping webhook`)}}async function U(){if(!V.value||!S.value)return!0;x.value=!0;try{u.showMessage({title:c.baseText(`ndv.execute.generateCode.title`),message:c.baseText(`ndv.execute.generateCode.message`,{interpolate:{nodeName:S.value.name}}),type:`success`});let e=S.value.parameters?.instructions,n=await on(e,`parameters.${Y}`,5);if(!n)return x.value=!1,!1;v.updateNodeProperties({name:S.value.name,properties:{parameters:{...S.value.parameters,[Y]:n.value,[Me]:e}}}),t.onCodeGenerated?.({name:`parameters.${Y}`,value:n.value}),t.onCodeGenerated?.({name:`parameters.${Me}`,value:e}),l.trackAiTransform(`generationFinished`,{prompt:e,code:n.value})}catch(e){return l.trackAiTransform(`generationFinished`,{prompt:S.value?.parameters?.instructions,code:``,hasError:!0}),u.showMessage({type:`error`,title:c.baseText(`codeNodeEditor.askAi.generationFailed`),message:e.message}),x.value=!1,!1}return x.value=!1,!0}async function te(){if(!S.value)return`noop`;let e=S.value.name;if(V.value&&!await U())return`cancelled`;if(D.value||O.value&&g.isInputPanelEmpty)return g.unsetActiveNodeName(),m.chatPartialExecutionDestinationNode=e,ue.emit(`openChat`),`opened-chat`;if(P.value)return await H(),`stopped-webhook`;if(F.value)return await b(),`stopped-execution`;let t=!1;if(C.hasData.value&&(t=await f.confirm(c.baseText(`ndv.pinData.unpinAndExecute.description`),c.baseText(`ndv.pinData.unpinAndExecute.title`),{confirmButtonText:c.baseText(`ndv.pinData.unpinAndExecute.confirm`),cancelButtonText:c.baseText(`ndv.pinData.unpinAndExecute.cancel`)})===Oe,t&&C.unsetData(`unpin-and-execute-modal`)),!C.hasData.value||t){if(Ue(S.value))return _.openModalWithData({name:Ce,data:{nodeName:e}}),`opened-modal`;let t={node_type:w.value?w.value.name:null,workflow_id:m.workflowId,source:n,push_ref:g.pushRef};return l.track(`User clicked execute node button`,t),await p.run(`nodeExecuteButton.onClick`,t),await y({destinationNode:{nodeName:e,mode:s(r)},source:i}),`executed`}return`cancelled`}async function ne(){P.value?await H():F.value&&await b()}return{isExecuting:I,isListening:P,isListeningForWorkflowEvents:F,buttonLabel:ee,buttonIcon:B,disabledReason:R,isTriggerNode:T,hasIssues:L,shouldGenerateCode:V,execute:te,stopExecution:ne}}var mn=`N8N_NODE_TEST_STEP_POPUP_COUNT`,hn=10,gn=3e3,_n=u({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:r}){let i=e,a=r,s=w(),c=z(),l=fe(),u=q(),{isExecuting:p,isListening:m,isListeningForWorkflowEvents:g,buttonLabel:v,buttonIcon:y,disabledReason:b,isTriggerNode:x,hasIssues:S,shouldGenerateCode:C,execute:T}=pn(d(()=>l?.value?.getNodeByName(i.nodeName)??null),{telemetrySource:i.telemetrySource,executionMode:d(()=>i.executionMode),source:`RunData.ExecuteNodeButton`,onCodeGenerated:e=>a(`valueChanged`,e)}),E=o(0),k=d(()=>{if(x.value&&S.value){let e=u.activeNode;if(e&&e.name!==i.nodeName)return c.baseText(`ndv.execute.fixPrevious`)}return b.value}),A=d(()=>i.hideLabel?``:i.label&&!m.value&&!g.value?i.label:v.value),j=d(()=>{if(i.icon)return i.icon;if(!i.hideIcon)return y.value}),M=d(()=>C.value?c.baseText(`ndv.execute.generateCodeAndTestNode.description`):k.value?k.value:i.tooltip&&!p.value&&N()<hn?i.tooltip:``);function N(){return Number(localStorage.getItem(mn))}function P(){let e=N();if(e<hn&&!k.value&&M.value){let t=Date.now();(!E.value||t-E.value>=gn)&&(localStorage.setItem(mn,`${e+1}`),E.value=t)}}async function F(){let e=await T();e===`executed`&&a(`execute`),e===`stopped-execution`&&a(`stopExecution`)}return(r,i)=>(t(),I(_(H),{placement:e.tooltipPlacement??`right`,disabled:!M.value&&!s.persistentTooltipContent,visible:s.persistentTooltipContent?!0:void 0},{content:R(()=>[D(r.$slots,`persistentTooltipContent`,{},()=>[n(f(M.value),1)])]),default:R(()=>[O(_(U),h(r.$attrs,{loading:_(p)&&e.showLoadingSpinner,disabled:e.disabled||!!k.value||_(p)&&!e.showLoadingSpinner,label:A.value,variant:e.variant,size:e.size,icon:j.value,square:e.square,"transparent-background":e.transparent,title:!_(x)&&!M.value?_(c).baseText(`ndv.execute.testNode.description`):``,onMouseover:P,onClick:F}),null,16,[`loading`,`disabled`,`label`,`variant`,`size`,`icon`,`square`,`transparent-background`,`title`])]),_:3},8,[`placement`,`disabled`,`visible`]))}}),vn=e(Se(),1),yn=G(u({__name:`VirtualSchema`,props:{nodes:{default:()=>[]},node:{default:null},data:{default:()=>[]},mappingEnabled:{type:Boolean,default:!1},paneType:{},connectionType:{default:Pe.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:a}){let s=e,c=de(),l=Ye(),u=z(),p=q(),g=be(),v=J(),b=fe(),S=Xe(),C=se(),w=ae(),{getSchemaForExecutionData:D,getSchemaForJsonSchema:k,getSchema:A,filterSchema:j}=he(),{closedNodes:N,flattenSchema:P,flattenMultipleSchemas:F,toggleNode:U}=ve(),{getNodeInputData:re,getLastRunIndexWithData:W,hasNodeExecuted:G}=ie(),{dismissCallout:ce,isCalloutDismissed:le}=qe(),ue=a,pe=o(),me=o(new Set),ge=d(()=>p.canDraggableDrop),_e=d(()=>p.draggableStickyPos),xe=async e=>{await ce(e)},Se=e=>{N.value.has(e)&&(N.value=new Set(Y.value.map(e=>e.id))),U(e),pe.value?.scrollToItem(0)},Ce=async(e,t)=>{let n=b?.value?.getNodePinData(t.name),r=n?K(n):void 0,i=(r?r.length>0:!1)||G(t.name),a=!i&&s.previewExecution?s.previewExecution.data:void 0,o=t.indicies.length>0?t.indicies:[0],c=o.map(t=>({outputIndex:t,runIndex:W(e.name,t,s.connectionType,a)})).filter(({runIndex:e})=>e!==-1),l=c;s.outputIndex!==void 0&&o.length>1&&o.includes(s.outputIndex)&&(l=c.filter(({outputIndex:e})=>e===s.outputIndex));let u=l.map(({outputIndex:t,runIndex:n})=>re(e,n,t,s.paneType,s.connectionType,a)).flat(),d=u.some(e=>!ye(e.binary)),f=r??K(u),p=f.length===0||f.length===1&&Object.keys(f[0]).length===0,m=D(f),h=!p&&!!a,g=h;if(p&&!g){let t=await Ae(e);t.ok&&(m=k(t.result),g=!0)}return{schema:m,connectedOutputIndexes:o,itemsCount:p?0:f.length,runIndex:c[0]?.runIndex??0,preview:g,lastSuccessfulPreview:h,hasBinary:d,isNodeExecuted:i,isDataEmpty:p}},Te=d(()=>w.isEnterpriseFeatureEnabled[Ie.Variables]),Ee=d(()=>{let e=C.variablesAsObject;return j(A({$now:Fe.now().toISO(),$today:Fe.now().set({hour:0,minute:0,second:0,millisecond:0}).toISO(),$vars:e,$execution:{id:De,mode:`test`,resumeUrl:u.baseText(`dataMapping.schemaView.execution.resumeUrl`)},$workflow:(0,vn.default)(v.workflow,[`id`,`name`,`active`])}),s.search)}),Oe=d(()=>{let e={id:`variables`,type:`header`,title:u.baseText(`dataMapping.schemaView.variablesContextTitle`),collapsable:!0,itemCount:null};if(N.value.has(e.id))return[e];let t=Ee.value;if(!t)return[];let n=P({schema:t,depth:1,isDataEmpty:!1,truncateLimit:s.truncateLimit}).flatMap(e=>{if(e.type===`item`&&e.depth===1&&e.title===`$vars`){let t=!N.value.has(e.id);if(!Te.value)return e.collapsable=!1,e.locked=!0,e.lockedTooltip=u.baseText(`dataMapping.schemaView.variablesUpgrade`),e;if(t&&C.scopedVariables.length===0)return[e,{type:`notice`,id:`notice-variablesEmpty`,level:e.level??0,message:u.baseText(`dataMapping.schemaView.variablesEmpty`)}]}return e});return[e].concat(n)}),ke=ee(async()=>{let e=s.search;if(s.data.length===0){let t=await Ae(s.node);if(t.ok)return j(k(t.result),e)}return j(D(s.data),e)},null);async function Ae(e){if(!e)return we(Error());if(g.getNodeType(e.type,e.typeVersion)?.group.includes(`trigger`))return we(Error(`Trigger nodes do not have schema previews`));let{type:t,typeVersion:n,parameters:{resource:r,operation:i}}=e;return await S.getSchemaPreview({nodeType:t,version:n,resource:r,operation:i})}let je=ee(async()=>{let e=[],t=s.search;for(let n of s.nodes){let r=v.getNodeByName(n.name);if(!r)continue;let i=g.getNodeType(r.type,r.typeVersion);if(!i)continue;let{schema:a,connectedOutputIndexes:o,itemsCount:s,preview:c,hasBinary:l,isNodeExecuted:u,isDataEmpty:d,runIndex:f,lastSuccessfulPreview:p}=await Ce(r,n),m=j(a,t);m&&e.push({node:r,connectedOutputIndexes:o,depth:n.depth,itemsCount:s,nodeType:i,schema:m,preview:c,hasBinary:l,isNodeExecuted:u,isDataEmpty:d,runIndex:f,lastSuccessfulPreview:p})}return e},[]),Me=e=>{let t=[];e.disabled&&t.push(u.baseText(`node.disabled`));let n=p.ndvNodeInputNumber[e.name];return n&&(n.length===1?t.push(`Input ${n}`):t.push(`Inputs ${n.join(`, `)}`)),t.length?`(${t.join(` | `)})`:``},Ne=d(()=>F(je.value,Me,s.truncateLimit)),Pe=d(()=>ke.value?P({schema:ke.value,depth:0,level:-1,isDataEmpty:s.data.length===0,truncateLimit:s.truncateLimit}):[]),Le=d(()=>!s.nodes.length),Y=d(()=>{let e;return Le.value||s.paneType===`output`?(e=Pe.value,s.node?.type===`n8n-nodes-base.merge`&&s.paneType===`output`&&s.data&&s.data.length>1&&(e=[{id:`${s.node.name}-mergeNotice`,type:`callout`,level:0,message:u.baseText(`dataMapping.schemaView.mergeNotice`),theme:`info`},...e])):e=Ne.value.concat(Oe.value),e.filter(e=>e.type===`callout`?!le(e.id):!0)}),X=d(()=>!!s.search.trim()&&!Y.value.length);T(()=>!!s.search,e=>{e?(me.value=new Set(N.value),N.value.clear()):N.value.size===0&&(N.value=me.value)});let Re=T(Y,e=>{let t=e.length<2?[]:e.filter(e=>e.type===`header`).slice(1).map(e=>e.id),n=e.filter(e=>e.type===`item`&&e.binaryData).map(e=>e.id);N.value=new Set(t.concat(n)),Re()}),ze=(e,t)=>{p.draggableStartDragging({type:`mapping`,data:t??``,dimensions:e?.getBoundingClientRect()??null}),p.resetMappingTelemetry()},Be=e=>{p.draggableStopDragging(),setTimeout(()=>{let t=p.mappingTelemetry,n=je.value.find(({node:t})=>t.name===e.dataset.nodeName),r=n?.preview??!1,i=!ye(n?.node.credentials),a=Number(e.dataset.runIndex),o={src_node_type:e.dataset.nodeType,src_field_name:e.dataset.name??``,src_nodes_back:e.dataset.depth,src_run_index:a,src_runs_total:a,src_field_nest_level:e.dataset.level??0,src_view:r?`schema_preview`:`schema`,src_has_credential:i,src_element:e,success:!1,view_shown:l.view_shown,...t};oe().run(`runDataJson.onDragEnd`,o),c.track(`User dragged data for mapping`,o)},250)};return(a,o)=>{let c=M(`n8n-html`);return t(),i(`div`,{class:y([`run-data-schema`,`full-height`,{compact:s.compact,"no-search-results":X.value}])},[X.value?(t(),I(Ve,{key:0,title:_(u).baseText(`ndv.search.noNodeMatch.title`)},{default:R(()=>[O(_(B),{keypath:`ndv.search.noMatchSchema.description`,tag:`span`,scope:`global`},{link:R(()=>[r(`a`,{href:`#`,onClick:o[0]||=E(e=>ue(`clear:search`),[`prevent`])},f(_(u).baseText(`ndv.search.noMatchSchema.description.link`)),1)]),_:1})]),_:1},8,[`title`])):m(``,!0),Y.value.length?(t(),I(We,{key:1,class:`full-height`,type:`mapping`,"target-data-key":`mappable`,disabled:!e.mappingEnabled,"can-drop":ge.value,"sticky-position":_e.value,onDragstart:ze,onDragend:Be},{preview:R(({canDrop:e,el:n})=>[n?(t(),I(Je,{key:0,html:n.outerHTML,"can-drop":e},null,8,[`html`,`can-drop`])):m(``,!0)]),default:R(()=>[O(_($),{ref_key:`scroller`,ref:pe,items:Y.value,"min-item-size":38,class:`full-height scroller`},{default:R(({item:r,index:a,active:s})=>[O(_(Zt),{item:r,active:s,"size-dependencies":[r],"data-index":a},{default:R(()=>[r.type===`header`?(t(),I(it,h({key:0},r,{collapsed:_(N).has(r.id),"onClick:toggle":e=>_(U)(r.id),onClick:e=>Se(r.id),onExecute:o[1]||=e=>ue(`execute`,e)}),null,16,[`collapsed`,`onClick:toggle`,`onClick`])):r.type===`item`?(t(),I(lt,h({key:1},r,{search:e.search,draggable:e.mappingEnabled,collapsed:_(N).has(r.id),highlight:_(p).highlightDraggables,onClick:e=>_(U)(r.id)}),null,16,[`search`,`draggable`,`collapsed`,`highlight`,`onClick`])):r.type===`icon`?(t(),I(_(H),{key:2,content:r.tooltip,placement:`top`},{default:R(()=>[O(_(V),{size:`small`,icon:r.icon,class:`icon`},null,8,[`icon`])]),_:2},1032,[`content`])):r.type===`notice`?x((t(),i(`div`,{key:3,class:`notice`,style:L({"--schema-level":r.level})},null,4)),[[c,r.message]]):r.type===`callout`?(t(),i(`div`,{key:4,class:`callout-wrapper`,style:L({"--schema-level":r.level}),onClick:o[2]||=E(()=>{},[`stop`])},[O(_(te),{theme:r.theme||`info`,slim:!0,"round-corners":!0,iconless:!1},{trailingContent:R(()=>[O(_(V),{icon:`x`,title:_(u).baseText(`generic.dismiss`),size:`medium`,type:`secondary`,class:`callout-dismiss`,"data-test-id":`callout-dismiss-icon`,onClick:e=>xe(r.id)},null,8,[`title`,`onClick`])]),default:R(()=>[n(f(r.message)+` `,1)]),_:2},1032,[`theme`])],4)):r.type===`empty`?(t(),i(`div`,{key:5,class:`empty-schema`,style:L({"--schema-level":r.level})},[O(_(ne),{tag:`div`,size:`small`},{default:R(()=>[r.key===`executeSchema`?(t(),I(_(B),{key:0,tag:`span`,keypath:`dataMapping.schemaView.executeSchema`,scope:`global`},{link:R(()=>[_(p).activeNodeName?(t(),I(_n,{key:0,"node-name":_(p).activeNodeName,label:_(u).baseText(`ndv.input.noOutputData.executePrevious`),"telemetry-source":`inputs`,size:`small`,type:`secondary`,"hide-icon":``,"execution-mode":`exclusive`},null,8,[`node-name`,`label`])):m(``,!0)]),_:1})):(t(),I(_(B),{key:1,tag:`span`,keypath:`dataMapping.schemaView.${r.key}`,scope:`global`},null,8,[`keypath`]))]),_:2},1024)],4)):m(``,!0)]),_:2},1032,[`item`,`active`,`size-dependencies`,`data-index`])]),_:1},8,[`items`])]),_:1},8,[`disabled`,`can-drop`,`sticky-position`])):m(``,!0)],2)}}}),[[`__scopeId`,`data-v-8d9d68fb`]]);export{Qt as a,Zt as c,on as i,$ as l,_n as n,fn as o,pn as r,dn as s,yn as t}; //# sourceMappingURL=VirtualSchema-VZf8DCpb.js.map