UNPKG

@runeya/runeya

Version:

Monitor processes as a stack

2 lines (1 loc) 6.44 kB
import{n as q,p as A,u as H,S as B}from"./router-CdfdQZKk.js";import Y from"./system-BKM6fTSw.js";import{_ as b}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as r,o as l,b as t,u as G,h as J,n as T,a2 as K,a9 as Q,r as f,w as W,j as R,S as V,Y as E,g as p,s as _,d as X,f as c,t as C,e as u,F as Z,q as ee,ae,V as te,k as se}from"./index-CXxIspfv.js";import{P as ne,_ as oe}from"./Section-D0z9MjV4.js";import{T as le}from"./Tabs-Cgyr_8he.js";import{C as re}from"./CurrentEditor-DNhSWY_9.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./Editor-B--wgkn6.js";import"./currentEditor-D3XVS39E.js";import"./Spinner-CkmZ5Bkp.js";const ie={props:{percent:{default:0}}},ce={class:"progress progress-moved"};function ue(v,d,i,a,g,y){return l(),r("div",ce,[t("div",{class:"progress-bar",style:G({width:`${(i.percent||0)>100?100:i.percent||0}%`})},null,4)])}const N=b(ie,[["render",ue],["__scopeId","data-v-3bbda6b0"]]),de={class:"card-container"},fe={__name:"Card",props:{color:{default:"blue"},mini:{default:!1}},setup(v){return(d,i)=>(l(),r("div",{class:T(["card-root",{[v.color]:!0,mini:v.mini}])},[t("div",de,[J(d.$slots,"default",{},void 0,!0)])],2))}},S=b(fe,[["__scopeId","data-v-bebaadaf"]]),ve={__name:"NotificationBell",setup(v){const d=()=>q.openHistory.next();return(i,a)=>(l(),r("div",{class:"notification-bell-root",onClick:d},a[0]||(a[0]=[t("i",{class:"fas fa-bell","aria-hidden":"true"},null,-1)])))}},pe=b(ve,[["__scopeId","data-v-c97a762b"]]),me={class:"main"},_e={class:"header"},be={class:"left"},ge={class:"title"},ye={class:"description"},he={class:"right"},ke={class:"icons"},Ce=["href"],Se=["href"],we=["href","title"],$e={class:"sections"},Ie={key:0,class:"sections"},xe={key:1,class:"system-cards"},Oe=["disabled"],Pe={class:"tab"},Be={__name:"StackSingle",setup(v){const d=K({});A.forEach(s=>{s.cmp&&typeof s.cmp=="function"&&(d.value[s.name]=Q(()=>s.cmp()))});const i=H(),a=f(),g=f(0),y=f(0),m=f(!1);W(()=>i.currentRoute.value.params.label,async()=>{await k()});const w=s=>{s.includes(i.currentRoute.value.params.label.toString())&&k()};R(()=>{V.on("conf:update",w)}),E(()=>{V.off("conf:update",w)});let h;const $=f([]);async function k(){var s;if(await B.loadServices(),a.value=await B.getService((s=i.currentRoute.value.params.label)==null?void 0:s.toString()),a.value){const{data:e}=await se.get("/plugins/services/"+a.value.label);$.value=e.sort((n,o)=>n.order-o.order).map(n=>{var I,x,O,P;const o={label:n.name,id:n.name,icon:n.icon,hidden:n.hidden,warning:0};if(n.name==="Configuration"){const D=Object.keys(((x=(I=a.value)==null?void 0:I.spawnOptions)==null?void 0:x.overrideEnvs)||{});Object.keys(((P=(O=a.value)==null?void 0:O.spawnOptions)==null?void 0:P.env)||{}).some(M=>D.includes(M))&&(o.warning=1)}return o})}}R(async()=>{await k(),h=setInterval(async()=>{var n;if(!((n=a.value)!=null&&n.label))return;const{cpu:s,mem:e}=await Y.getInfos(a.value.label.toString());g.value=s,y.value=e},1e3)}),E(()=>{h&&clearInterval(h)}),f(!1);async function F(s,e){var n;(n=a.value)==null||n.openInVsCode(s,e)}async function L(s){var e;(e=a.value)==null||e.openFolder(s)}async function U(){var s;m.value=!0,await((s=a.value)==null?void 0:s.restart().finally(()=>m.value=!1))}async function j(){var s;await((s=a.value)==null?void 0:s.stop())}async function z(){var s;await((s=a.value)==null?void 0:s.start())}return(s,e)=>{var n;return a.value?(l(),r("div",{class:"stack-single",key:s.$route.params.label.toString()},[t("div",me,[t("div",_e,[t("div",be,[t("div",ge,[(n=a.value.container)!=null&&n.enabled?(l(),_(ne,{key:0,trigger:"mouseenter",appendTo:"parent","max-width":"50vh"},{trigger:c(()=>e[4]||(e[4]=[t("i",{class:"fab fa-docker"},null,-1)])),content:c(()=>[t("ul",null,[t("li",null,"Container name: "+C(a.value.container.name),1)])]),_:1})):p("",!0),X(" "+C(a.value.label),1)]),t("div",ye,C(a.value.description),1)]),t("div",he,[u(pe),t("div",ke,[a.value.git&&a.value.git.home?(l(),r("a",{key:0,href:a.value.git.home,target:"_blank",title:"Open git home"},e[5]||(e[5]=[t("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)]),8,Ce)):p("",!0),a.value.url?(l(),r("a",{key:1,href:a.value.url,target:"_blank",title:"Open service URL"},e[6]||(e[6]=[t("i",{class:"fas fa-globe","aria-hidden":"true"},null,-1)]),8,Se)):p("",!0),(l(!0),r(Z,null,ee(a.value.urls,o=>(l(),r("a",{key:o,href:o,target:"_blank",title:o},e[7]||(e[7]=[t("i",{class:"fas fa-globe","aria-hidden":"true"},null,-1)]),8,we))),128)),(l(),_(re,{key:"current-editor-"+a.value.label,service:a.value,onOpenEditor:e[0]||(e[0]=o=>F(a.value.rootPath,o))},null,8,["service"])),a.value.rootPath?(l(),r("i",{key:2,class:"fas fa-folder","aria-hidden":"true",title:"Open folder",onClick:e[1]||(e[1]=o=>L(a.value.rootPath))})):p("",!0)])])]),t("div",$e,[a.value.enabled?(l(),r("div",xe,[u(S,{class:"card to-hide-for-small-screen",mini:!0},{default:c(()=>[e[8]||(e[8]=t("i",{class:"fas fa-memory"},null,-1)),e[9]||(e[9]=t("div",{class:"hovered"},"Memory",-1)),u(N,{percent:y.value},null,8,["percent"])]),_:1,__:[8,9]}),u(S,{class:"card to-hide-for-small-screen",color:"purple",mini:!0},{default:c(()=>[e[10]||(e[10]=t("i",{class:"fas fa-microchip"},null,-1)),e[11]||(e[11]=t("div",{class:"hovered"},"CPU",-1)),u(N,{percent:g.value},null,8,["percent"])]),_:1,__:[10,11]}),u(S,{class:"card restart-stop-card",color:"orange",mini:!0},{default:c(()=>[t("button",{class:"small",onClick:e[2]||(e[2]=o=>U()),disabled:m.value},[t("i",{class:T(["fas fa-sync",{rotate:m.value}]),"aria-hidden":"true"},null,2),e[12]||(e[12]=t("span",null,"Restart",-1))],8,Oe),t("button",{class:"small",onClick:e[3]||(e[3]=o=>j())},e[13]||(e[13]=[t("i",{class:"fas fa-stop","aria-hidden":"true"},null,-1),t("span",null,"Stop",-1)]))]),_:1})])):(l(),r("div",Ie,[u(oe,{header:"This service is not started",actions:[{label:"Start",click:()=>z(),icon:"fas fa-play"}],class:"section-not-started"},null,8,["actions"])])),u(le,{class:"tabs",tabs:$.value,showLabels:!1,direction:"left",contentCss:{height:"100%"}},{default:c(({tab:o})=>[t("div",Pe,[(l(),_(ae,null,{default:c(()=>[(l(),_(te(d.value[o.id]||o.id),{service:a.value,key:a.value.label},null,8,["service"]))]),fallback:c(()=>e[14]||(e[14]=[t("div",{class:"dynamic-loader"},[t("div",{class:"loader-content"},[t("i",{class:"fas fa-spinner fa-spin loader-icon"}),t("span",null,"Loading component...")])],-1)])),_:2},1024))])]),_:1},8,["tabs"])])])])):p("",!0)}}},qe=b(Be,[["__scopeId","data-v-f185c830"]]);export{qe as default};