n8n-editor-ui
Version:
Workflow Editor UI for n8n
2 lines • 13 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.16.1`}}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]=`25c16567-22b4-4e35-9ad5-f4c30a1cf05e`,e._sentryDebugIdIdentifier=`sentry-dbid-25c16567-22b4-4e35-9ad5-f4c30a1cf05e`)})()}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-C3C09Zii.js";import{at as b}from"./core-Bz5WjPxS.js";import{Ji as x,Pi as S,Qi as C,Xi as w,k as T,lt as E,wt as D}from"./src-XqE2yCpG.js";import{t as O}from"./_plugin-vue_export-helper-CIL7EULb.js";import{Pn as k,Rt as A,fr as j}from"./users.store-xP93bV7X.js";import{t as M}from"./useRootStore-XEREVjMN.js";import{t as N}from"./settings.store-CAFiYCMH.js";import{t as P}from"./usePageRedirectionHelper-CC6sh9o0.js";import{t as F}from"./useClipboard-D2UtD35U.js";import{t as I}from"./pushConnection.store-D7Wwlyyp.js";import{t as L}from"./sortByProperty-BbL1HDkN.js";import{n as R,t as z}from"./usePushConnection-B4egyiyG.js";import{t as B}from"./ConnectionTracker-DKoLG4SI.js";import"./usePushConnection-9-wGyKnT.js";import{n as V}from"./dist-DHUGszlM.js";function H(e){return e.reduce((e,t)=>e+t,0)/e.length}function U(e){return H(e).toFixed(2)}function W(e,t=2){return Number((e/1024/1024/1024).toFixed(t))}function G(e,t=2){return Number((e/1024/1024).toFixed(t))}var K=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(C),{icon:t.icon,color:t.iconColor,size:`small`,class:`mr-2xs`},null,8,[`icon`,`color`]),h(u(w),{class:p(i.$style.headerText),color:`text-base`,size:`small`,align:`left`,bold:``},{default:y(()=>[m(i.$slots,`title`)]),_:3},8,[`class`]),h(u(C),{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`}}]]),q=[`href`],J=[`href`],Y=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(K,{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,q),h(u(w),{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,J)],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`}}]]),X=[`onClick`],Z=O(o({__name:`WorkerNetAccordion`,props:{items:{}},setup(i){let a=i,o=b(),s=F(),{showMessage:d}=k();function m(e){try{s.copy(e),d({title:o.baseText(`workerList.item.copyAddressToClipboard`),type:`success`})}catch{}}return(s,d)=>(e(),v(K,{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,X))),128))],2)):l(``,!0)]),_:1}))}}),[[`__cssModules`,{$style:{accordionItems:`_accordionItems_tq3dn_125`,accordionItem:`_accordionItem_tq3dn_125`,clickable:`_clickable_tq3dn_139`}}]]),Q=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(H(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(K,{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(V),{ref_key:`chartRefJobs`,ref:d,type:`line`,data:C.value,options:u(_),class:p(r.$style.chart)},null,8,[`data`,`options`,`class`]),h(u(V),{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(V),{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`}}]]),$={key:0},ee=O(o({__name:`WorkerMemoryMonitorAccordion`,props:{worker:{}},setup(i){let a=i,o=b();return(s,d)=>(e(),v(K,{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(W)(a.worker.host.memory.total))+`GB`,1)]),n(`tr`,null,[d[1]||=n(`th`,null,`Free (os.freemem)`,-1),n(`td`,null,c(u(W)(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`,$,[d[2]||=n(`th`,null,`Constraint: (process.constrainedMemory)`,-1),n(`td`,null,c(u(G)(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(G)(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(G)(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(G)(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(G)(a.worker.process.memory.heapUsed))+`MB`,1)])])])],2)]),_:1}))}}),[[`__cssModules`,{$style:{"accordion-content":`_accordion-content_1lqir_135`}}]]),te=O(o({__name:`WorkerCard`,props:{workerId:{}},setup(r){let a,o=R(),f=b(),m=r,_=i(`0`),S=i(!1),C=s(()=>o.getWorkerStatus(m.workerId)),T=s(()=>L(`family`,C.value?.interfaces.slice()??[]));function E(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);S.value=t>10,_.value=t.toFixed(0)},500)}),g(()=>{clearInterval(a)}),(r,i)=>C.value?(e(),v(u(D),{key:0,class:p(r.$style.cardLink)},{header:y(()=>[h(u(x),{tag:`h2`,bold:``,class:p(S.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(U)(C.value.loadAvg??[0]))+` | Free memory: `+c(u(W)(C.value.process.memory.available))+`GB / `+c(u(W)(C.value.isInContainer?C.value.process.memory.constraint:C.value.host.memory.total))+`GB `+c(S.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(w),{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(E(C.value.uptime)),1),i[1]||=n(`br`,null,null,-1),h(Y,{items:C.value.runningJobsSummary},null,8,[`items`]),h(Z,{items:T.value},null,8,[`items`]),h(Q,{"worker-id":C.value.senderId},null,8,[`worker-id`]),h(ee,{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`}}]]),ne={key:0},re={key:1},ie={key:0},ae={key:1},oe=O(o({__name:`WorkerList`,props:{autoRefreshEnabled:{type:Boolean,default:!0}},setup(i){let o=E(),l=b(),m=z({router:o}),v=A(),S=j(),C=R(),w=M(),D=I(),O=s(()=>C.initialStatusReceived),k=s(()=>Object.keys(C.workers)),N=s(()=>l.baseText(`workerList.pageTitle`));return d(()=>{v.set(N.value),S.track(`User viewed worker view`,{instance_id:w.instanceId})}),a(()=>{m.initialize(),D.pushConnect(),C.startWorkerStatusPolling()}),g(()=>{C.stopWorkerStatusPolling(),D.pushDisconnect(),m.terminate()}),(i,a)=>(e(),r(`div`,null,[h(B,{class:`actions`}),n(`div`,{class:p(i.$style.workerListHeader)},[h(u(x),{tag:`h1`,size:`2xlarge`},{default:y(()=>[t(c(N.value),1)]),_:1})],2),O.value?(e(),r(`div`,re,[k.value.length===0?(e(),r(`div`,ie,c(u(l).baseText(`workerList.empty`)),1)):(e(),r(`div`,ae,[(e(!0),r(f,null,_(k.value,t=>(e(),r(`div`,{key:t,class:p(i.$style.card)},[h(te,{"worker-id":t,"data-test-id":`worker-card`},null,8,[`worker-id`])],2))),128))]))])):(e(),r(`div`,ne,[h(u(T))]))]))}}),[[`__cssModules`,{$style:{workerListHeader:`_workerListHeader_ifjfd_125`,card:`_card_ifjfd_132`,tableLoader:`_tableLoader_ifjfd_136`}}]]),se=[`href`],ce=O(o({__name:`WorkerView`,setup(r){let i=N(),a=P(),o=b(),s=()=>{a.goToUpgrade(`worker-view`,`upgrade-worker-view`)};return(r,a)=>u(i).isQueueModeEnabled&&u(i).isWorkerViewAvailable?(e(),v(oe,{key:0,"data-test-id":`worker-view-licensed`})):(e(),v(u(S),{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,se)]),_:1},8,[`class`,`description`,`button-text`]))}}),[[`__cssModules`,{$style:{actionBox:`_actionBox_t24gt_125`}}]]);export{ce as default};
//# sourceMappingURL=WorkerView-DbRpQJz6.js.map