n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 13.7 kB
JavaScript
(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]=`b7b90324-cacb-4bec-8a8a-e47e31ca937e`,e._sentryDebugIdIdentifier=`sentry-dbid-b7b90324-cacb-4bec-8a8a-e47e31ca937e`)})()}catch{}import{$ as e,A as t,C as n,E as r,Ft as i,K as a,N as o,S as s,Sn as c,T as l,Wt as u,X as d,_ as f,_n as p,it as m,j as h,q as g,rt as _,w as v,yt as y}from"./vue.runtime.esm-bundler-D9KLAxvJ.js";import{bt as b}from"./_MapCache-CUJwh2qp.js";import{$i as x,Nt as S,R as C,Ri as w,Yi as T,Zi as E,_t as D}from"./src-wni2AGA3.js";import{t as O}from"./_plugin-vue_export-helper-Dm3nT7Ps.js";import"./sanitize-html-my1ogl5v.js";import{As as k,Tr as A,en as j,vn as M}from"./users.store-BHWXXawf.js";import"./constants-CIP7tKq1.js";import"./merge-BqvKZ38d.js";import{r as N}from"./_baseOrderBy-CaKruttV.js";import"./banners.store-D1XIK6Qv.js";import"./dateformat-CYfyw486.js";import"./useDebounce-CTeIt-cH.js";import"./versions.store-CNV-esbv.js";import{t as P}from"./usePageRedirectionHelper-Dxb_B6-R.js";import{t as F}from"./useClipboard-D72kaMkX.js";import"./executions.store-CZbPSd3l.js";import"./assistant.store-BOJw9cI0.js";import"./usePinnedData-bxdhY-Ce.js";import"./nodeIcon-BFJyt77y.js";import"./canvas.utils-BMxgA7cX.js";import"./canvas.eventBus-C-z2MFNA.js";import"./useCanvasOperations-CI7Ylcwf.js";import"./setupPanel.store-D0Kh-_X7.js";import"./nodeTransforms-DgA3LbBA.js";import"./templateTransforms-Bcjcx-gt.js";import"./useRunWorkflow-BbbTafql.js";import{t as I}from"./pushConnection.store-L5aofOKN.js";import"./folders.store-DKth0xuB.js";import{t as ee}from"./sortByProperty-Dq5DCmSA.js";import"./readyToRun.store-DpPozriV.js";import"./aiTemplatesStarterCollection.store-BmxR4DN8.js";import{t as L}from"./ConnectionTracker-DW6_ZDhd.js";import{n as te,r as R,t as z}from"./usePushConnection-DNqura4v.js";import{n as B}from"./dist-DCXTMsxp.js";function V(e){return e.reduce((e,t)=>e+t,0)/e.length}function H(e){return V(e).toFixed(2)}function U(e,t=2){return Number((e/1024/1024/1024).toFixed(t))}function W(e,t=2){return Number((e/1024/1024).toFixed(t))}var G=O(o({__name:`WorkerAccordion`,props:{icon:{default:`list-checks`},iconColor:{default:`text-dark`},initialExpanded:{type:Boolean,default:!0}},setup(t){let a=i(t.initialExpanded);function o(){a.value=!a.value}return(i,s)=>(e(),r(`div`,{class:p([`accordion`,i.$style.container])},[n(`div`,{class:p({[i.$style.header]:!0,[i.$style.expanded]:a.value}),onClick:o},[h(u(x),{icon:t.icon,color:t.iconColor,size:`small`,class:`mr-2xs`},null,8,[`icon`,`color`]),h(u(E),{class:p(i.$style.headerText),color:`text-base`,size:`small`,align:`left`,bold:``},{default:y(()=>[m(i.$slots,`title`)]),_:3},8,[`class`]),h(u(x),{icon:a.value?`chevron-up`:`chevron-down`,bold:``},null,8,[`icon`])],2),a.value?(e(),r(`div`,{key:0,class:p({[i.$style.description]:!0,[i.$style.collapsed]:!a.value})},[m(i.$slots,`content`)],2)):l(``,!0)],2))}}),[[`__cssModules`,{$style:{container:`_container_k0ymr_125`,header:`_header_k0ymr_129`,headerText:`_headerText_k0ymr_135`,expanded:`_expanded_k0ymr_139`,description:`_description_k0ymr_143`}}]]),K=[`href`],q=[`href`],J=O(o({__name:`WorkerJobAccordion`,props:{items:{}},setup(i){let a=i,o=b();function s(e){let t=Math.floor((new Date().getTime()-e.getTime())/1e3),n=Math.floor(t/3600);t-=n*3600;let r=Math.floor(t/60);return t-=r*60,`${n}h ${r}m ${Math.floor(t)}s`}return(l,d)=>(e(),v(G,{icon:`list-checks`,"icon-color":`text-dark`,"initial-expanded":!0},{title:y(()=>[t(c(u(o).baseText(`workerList.item.jobListTitle`))+` (`+c(i.items.length)+`) `,1)]),content:y(()=>[a.items.length>0?(e(),r(`div`,{key:0,class:p(l.$style.accordionItems)},[(e(!0),r(f,null,_(a.items,i=>(e(),r(`div`,{key:i.executionId,class:p(l.$style.accordionItem)},[n(`a`,{href:`/workflow/`+i.workflowId+`/executions/`+i.executionId},` Execution `+c(i.executionId)+` - `+c(i.workflowName),9,K),h(u(E),{color:`text-base`,size:`small`,align:`left`},{default:y(()=>[t(` | Started at: `+c(new Date(i.startedAt)?.toLocaleTimeString())+` | Running for `+c(s(new Date(i.startedAt)))+` `+c(i.retryOf?`| Retry of: ${i.retryOf}`:``)+` | `,1)]),_:2},1024),n(`a`,{target:`_blank`,href:`/workflow/`+i.workflowId},` (Open workflow)`,8,q)],2))),128))],2)):(e(),r(`div`,{key:1,class:p(l.$style.accordionItems)},[n(`span`,{class:p(l.$style.empty)},c(u(o).baseText(`workerList.item.jobList.empty`)),3)],2))]),_:1}))}}),[[`__cssModules`,{$style:{accordionItems:`_accordionItems_1mb6o_125`,accordionItem:`_accordionItem_1mb6o_125`,empty:`_empty_1mb6o_138`}}]]),Y=[`onClick`],X=O(o({__name:`WorkerNetAccordion`,props:{items:{}},setup(i){let a=i,o=b(),s=F(),{showMessage:d}=A();function m(e){try{s.copy(e),d({title:o.baseText(`workerList.item.copyAddressToClipboard`),type:`success`})}catch{}}return(s,d)=>(e(),v(G,{icon:`list-checks`,"icon-color":`text-dark`,"initial-expanded":!1},{title:y(()=>[t(c(u(o).baseText(`workerList.item.netListTitle`))+` (`+c(i.items.length)+`) `,1)]),content:y(()=>[a.items.length>0?(e(),r(`div`,{key:0,class:p(s.$style.accordionItems)},[(e(!0),r(f,null,_(a.items,i=>(e(),r(`div`,{key:i.address,class:p(s.$style.accordionItem),onClick:e=>m(i.address)},[t(c(i.family)+`: `,1),n(`span`,{class:p(s.$style.clickable)},c(i.address),3),t(` `+c(i.internal?`(internal)`:``),1)],10,Y))),128))],2)):l(``,!0)]),_:1}))}}),[[`__cssModules`,{$style:{accordionItems:`_accordionItems_tq3dn_125`,accordionItem:`_accordionItem_tq3dn_125`,clickable:`_clickable_tq3dn_139`}}]]),Z=O(o({__name:`WorkerChartsAccordion`,props:{workerId:{}},setup(r){let a=r,o=b(),s=(e,t,n=0)=>({datasets:[{label:e,backgroundColor:t,data:n?Array(Math.min(100,n)).fill(0):[]}],labels:Array(Math.min(100,n)).fill(``)}),l=R(),d=i(void 0),f=i(void 0),m=i(void 0),g=()=>({responsive:!0,maintainAspectRatio:!0,scales:{y:{type:`linear`,display:!0,position:`left`,min:0,suggestedMax:5}}}),_=g(),x=g();x.scales?.y&&(x.scales.y.suggestedMax=100);let S=g();S.scales?.y&&(S.scales.y.suggestedMax=100);let C=i(s(`Job Count`,`rgb(255, 111, 92)`,100)),w=i(s(`Processor Usage`,`rgb(19, 205, 103)`,100)),T=i(s(`Memory Usage (%)`,`rgb(244, 216, 174)`,100));return l.$onAction(({name:e,store:t})=>{if(e===`updateWorkerStatus`){let e=100-(t.workersHistory[a.workerId]?.length??0),n=s(`Job Count`,`rgb(255, 111, 92)`,e),r=s(`Processor Usage`,`rgb(19, 205, 103)`,e),i=s(`Memory Usage (%)`,`rgb(244, 216, 174)`,e);t.workersHistory[a.workerId]?.forEach(e=>{n.datasets[0].data.push(e.data.runningJobsSummary.length),n.labels?.push(new Date(e.timestamp).toLocaleTimeString()),r.datasets[0].data.push(V(e.data.loadAvg)),r.labels=n.labels,i.labels=n.labels;let t=e.data.isInContainer?e.data.process.memory.constraint:e.data.host.memory.total,a=(t-e.data.process.memory.available)/t*100;i.datasets[0].data.push(a)}),C.value=n,w.value=r,T.value=i}}),(r,i)=>(e(),v(G,{icon:`list-checks`,"icon-color":`text-dark`,"initial-expanded":!1},{title:y(()=>[t(c(u(o).baseText(`workerList.item.chartsTitle`)),1)]),content:y(()=>[n(`div`,{class:p(r.$style.charts)},[h(u(B),{ref_key:`chartRefJobs`,ref:d,type:`line`,data:C.value,options:u(_),class:p(r.$style.chart)},null,8,[`data`,`options`,`class`]),h(u(B),{ref_key:`chartRefCPU`,ref:f,type:`line`,data:w.value,options:u(x),class:p(r.$style.chart)},null,8,[`data`,`options`,`class`]),h(u(B),{ref_key:`chartRefMemoryUsage`,ref:m,type:`line`,data:T.value,options:u(S),class:p(r.$style.chart)},null,8,[`data`,`options`,`class`])],2)]),_:1}))}}),[[`__cssModules`,{$style:{accordionItems:`_accordionItems_16rh4_125`,accordionItem:`_accordionItem_16rh4_125`,charts:`_charts_16rh4_138`,chart:`_chart_16rh4_138`}}]]),Q={key:0},ne=O(o({__name:`WorkerMemoryMonitorAccordion`,props:{worker:{}},setup(i){let a=i,o=b();return(s,d)=>(e(),v(G,{icon:`list-checks`,"icon-color":`text-dark`,"initial-expanded":!1},{title:y(()=>[t(c(u(o).baseText(`workerList.item.memoryMonitorTitle`)),1)]),content:y(()=>[n(`div`,{class:p(s.$style[`accordion-content`])},[d[7]||=n(`strong`,null,`Host/OS Memory:`,-1),n(`table`,null,[n(`tbody`,null,[n(`tr`,null,[d[0]||=n(`th`,null,`Total (os.totalmem)`,-1),n(`td`,null,c(u(U)(a.worker.host.memory.total))+`GB`,1)]),n(`tr`,null,[d[1]||=n(`th`,null,`Free (os.freemem)`,-1),n(`td`,null,c(u(U)(a.worker.host.memory.free))+`GB`,1)])])]),d[8]||=n(`br`,null,null,-1),d[9]||=n(`strong`,null,`Process Memory:`,-1),d[10]||=n(`br`,null,null,-1),n(`table`,null,[n(`tbody`,null,[i.worker.isInContainer?(e(),r(`tr`,Q,[d[2]||=n(`th`,null,`Constraint: (process.constrainedMemory)`,-1),n(`td`,null,c(u(W)(a.worker.process.memory.constraint))+`MB`,1)])):l(``,!0),n(`tr`,null,[d[3]||=n(`th`,null,`Available: (process.availableMemory)`,-1),n(`td`,null,c(u(W)(a.worker.process.memory.available))+`MB`,1)]),n(`tr`,null,[d[4]||=n(`th`,null,`RSS: (process.memoryUsage().rss)`,-1),n(`td`,null,c(u(W)(a.worker.process.memory.rss))+`MB`,1)]),n(`tr`,null,[d[5]||=n(`th`,null,`Heap total: (process.memoryUsage().heapTotal)`,-1),n(`td`,null,c(u(W)(a.worker.process.memory.heapTotal))+`MB`,1)]),n(`tr`,null,[d[6]||=n(`th`,null,`Heap used: (process.memoryUsage().heapUsed)`,-1),n(`td`,null,c(u(W)(a.worker.process.memory.heapUsed))+`MB`,1)])])])],2)]),_:1}))}}),[[`__cssModules`,{$style:{"accordion-content":`_accordion-content_1lqir_135`}}]]),re=O(o({__name:`WorkerCard`,props:{workerId:{}},setup(r){let a,o=R(),f=b(),m=r,_=i(`0`),x=i(!1),C=s(()=>o.getWorkerStatus(m.workerId)),w=s(()=>ee(`family`,C.value?.interfaces.slice()??[]));function D(e){let t=Math.floor(e/(3600*24));e-=t*3600*24;let n=Math.floor(e/3600);e-=n*3600;let r=Math.floor(e/60);return e-=r*60,`${t}d ${n}h ${r}m ${Math.floor(e)}s`}return d(()=>{a=setInterval(()=>{let e=o.getWorkerLastUpdated(m.workerId);if(!e)return;let t=Math.ceil((Date.now()-e)/1e3);x.value=t>10,_.value=t.toFixed(0)},500)}),g(()=>{clearInterval(a)}),(r,i)=>C.value?(e(),v(u(S),{key:0,class:p(r.$style.cardLink)},{header:y(()=>[h(u(T),{tag:`h2`,bold:``,class:p(x.value?[r.$style.cardHeading,r.$style.stale]:[r.$style.cardHeading]),"data-test-id":`worker-card-name`},{default:y(()=>[t(` Name: `+c(C.value.senderId)+` (`+c(C.value.hostname)+`) `,1),i[0]||=n(`br`,null,null,-1),t(` Average Load: `+c(u(H)(C.value.loadAvg??[0]))+` | Free memory: `+c(u(U)(C.value.process.memory.available))+`GB / `+c(u(U)(C.value.isInContainer?C.value.process.memory.constraint:C.value.host.memory.total))+`GB `+c(x.value?` (stale)`:``),1)]),_:1},8,[`class`])]),append:y(()=>[n(`div`,{ref:`cardActions`,class:p(r.$style.cardActions)},null,2)]),default:y(()=>[n(`div`,{class:p(r.$style.cardDescription)},[h(u(E),{color:`text-light`,size:`small`,class:p(r.$style.container)},{default:y(()=>[n(`span`,null,c(u(f).baseText(`workerList.item.lastUpdated`))+` `+c(_.value)+`s ago | n8n-Version: `+c(C.value.version)+` | Architecture: `+c(C.value.arch)+` ( `+c(C.value.platform)+`) | Uptime: `+c(D(C.value.uptime)),1),i[1]||=n(`br`,null,null,-1),h(J,{items:C.value.runningJobsSummary},null,8,[`items`]),h(X,{items:w.value},null,8,[`items`]),h(Z,{"worker-id":C.value.senderId},null,8,[`worker-id`]),h(ne,{worker:C.value},null,8,[`worker`])]),_:1},8,[`class`])],2)]),_:1},8,[`class`])):l(``,!0)}}),[[`__cssModules`,{$style:{container:`_container_znmwg_125`,cardLink:`_cardLink_znmwg_129`,cardHeading:`_cardHeading_znmwg_139`,stale:`_stale_znmwg_145`,cardDescription:`_cardDescription_znmwg_149`,cardActions:`_cardActions_znmwg_156`}}]]),ie={key:0},ae={key:1},oe={key:0},$={key:1},se=O(o({__name:`WorkerList`,props:{autoRefreshEnabled:{type:Boolean,default:!0}},setup(i){let o=D(),l=b(),m=z({router:o}),v=M(),x=j(),S=R(),w=N(),E=I(),O=s(()=>S.initialStatusReceived),k=s(()=>Object.keys(S.workers)),A=s(()=>l.baseText(`workerList.pageTitle`));return d(()=>{v.set(A.value),x.track(`User viewed worker view`,{instance_id:w.instanceId})}),a(()=>{m.initialize(),E.pushConnect(),S.startWorkerStatusPolling()}),g(()=>{S.stopWorkerStatusPolling(),E.pushDisconnect(),m.terminate()}),(i,a)=>(e(),r(`div`,null,[h(L,{class:`actions`}),n(`div`,{class:p(i.$style.workerListHeader)},[h(u(T),{tag:`h1`,size:`2xlarge`},{default:y(()=>[t(c(A.value),1)]),_:1})],2),O.value?(e(),r(`div`,ae,[k.value.length===0?(e(),r(`div`,oe,c(u(l).baseText(`workerList.empty`)),1)):(e(),r(`div`,$,[(e(!0),r(f,null,_(k.value,t=>(e(),r(`div`,{key:t,class:p(i.$style.card)},[h(re,{"worker-id":t,"data-test-id":`worker-card`},null,8,[`worker-id`])],2))),128))]))])):(e(),r(`div`,ie,[h(u(C))]))]))}}),[[`__cssModules`,{$style:{workerListHeader:`_workerListHeader_ifjfd_125`,card:`_card_ifjfd_132`,tableLoader:`_tableLoader_ifjfd_136`}}]]),ce=[`href`],le=O(o({__name:`WorkerView`,setup(r){let i=k(),a=P(),o=b(),s=()=>{a.goToUpgrade(`worker-view`,`upgrade-worker-view`)};return(r,a)=>u(i).isQueueModeEnabled&&u(i).isWorkerViewAvailable?(e(),v(se,{key:0,"data-test-id":`worker-view-licensed`})):(e(),v(u(w),{key:1,"data-test-id":`worker-view-unlicensed`,class:p(r.$style.actionBox),description:u(o).baseText(`workerList.actionBox.description`),"button-text":u(o).baseText(`workerList.actionBox.buttonText`),"onClick:button":s},{heading:y(()=>[n(`span`,null,c(u(o).baseText(`workerList.actionBox.title`)),1)]),description:y(()=>[t(c(u(o).baseText(`workerList.actionBox.description`))+` `,1),n(`a`,{href:u(o).baseText(`workerList.docs.url`),target:`_blank`},c(u(o).baseText(`workerList.actionBox.description.link`)),9,ce)]),_:1},8,[`class`,`description`,`button-text`]))}}),[[`__cssModules`,{$style:{actionBox:`_actionBox_t24gt_125`}}]]);export{le as default};
//# sourceMappingURL=WorkerView-JkytZTn4.js.map