@iryu54/stack-monitor
Version:
Monitor processes as a stack
2 lines (1 loc) • 5.19 kB
JavaScript
import{u as G,S as d}from"./router-BlYJbnFA.js";import I from"./system-DypTfGqd.js";import{S as M}from"./Section-CIoUqrrC.js";import{w as U,a as V,v as O}from"./vue.runtime.esm-bundler-CUmbNKcA.js";import{L as F,B as K}from"./LeftLogo-DX-EqGNF.js";import{g as N,h as j,i as y,o as r,w as q,b as c,c as u,F as A,k as L,j as E,t as g,l as D,a as T,f as R,S as m,m as z,e as C,r as x}from"./index-Dyc6L6BZ.js";import{_ as H}from"./_plugin-vue_export-helper-DlAUqK2U.js";const J={name:"StackChooser",components:{sectionCmp:M,BackgroundStackChooser:K,LeftLogo:F},props:{embed:{default:!1}},setup(){var o,f,h;const v=G(),t=T([]);async function b(){if(await d.loadServices(),!d.services.value.length)return v.push({name:"stack-single-no-view"});if(t.value=d.services.value.map(e=>{const l=localStorage.getItem(`automatic-toggle-${e.label}`);return{label:e.label,enabled:l==="true"||e.enabled||!1,groups:e.groups}}),v.currentRoute.value.name==="stack-chooser"){const e=d.services.value.find(l=>l.enabled);if(e){const l=d.services.value.find(a=>a.label===localStorage.getItem("last-service-visisted")&&a.enabled);l?v.push({name:"stack-single",params:{label:l.label}}):v.push({name:"stack-single",params:{label:e.label}})}}}R(b),(o=m)==null||o.on("stack:selectConf",b),(f=m)==null||f.on("service:start",b),(h=m)==null||h.on("stack:services-reloaded",b),z(()=>{var e,l,a;(e=m)==null||e.off("stack:selectConf",b),(l=m)==null||l.off("service:start",b),(a=m)==null||a.off("stack:services-reloaded",b)});const s=async()=>{var l,a;t.value.forEach(i=>{const w=d.services.value.find(B=>B.label===i.label);w&&(w.enabled=i.enabled)}),d.launchServices(t.value.map(i=>({label:i.label,enabled:i.enabled})));const e=await d.getEnabledServices();v.push({name:"stack-single",params:{label:((l=e[0])==null?void 0:l.label)||((a=d.services.value[0])==null?void 0:a.label)}})},S=e=>t.value.filter(l=>{var a;return((a=l.groups)==null?void 0:a.includes(e))||e==="All"}),_=e=>S(e).every(l=>l.enabled),p=T(""),n=async e=>{e!=null&&e.label&&localStorage.setItem(`automatic-toggle-${e.label}`,e.enabled==null?"false":e.enabled.toString())},k=async(e,l=null)=>{e!=null&&(e.enabled=l??!e.enabled,await n(e))};return{servicesToLaunch:t,search:p,isAllEnabled:C(()=>t.value.every(e=>e.enabled)),oneOrMoreEnabled:C(()=>t.value.some(e=>e.enabled)),groups:C(()=>{const e=t.value.reduce((l,a)=>(a.groups&&a.groups.forEach(i=>{l[i]||(l[i]=x({services:[],label:i})),l[i].services.push(a)}),l.All||(l.All=x({services:[],label:"All"})),l.All.services.push(a),l),{});return Object.keys(e).map(l=>e[l]).sort((l,a)=>l.label.localeCompare(a.label))}),toggleGroup(e){const l=_(e);S(e).map(a=>{k(a,!l)})},save:n,isGroupSelected:_,Stack:d,System:I,validate:s,displayedServices(e){return e.filter(l=>{var a;return(a=l.label)==null?void 0:a.toUpperCase().includes(p.value.toUpperCase())})},toggleService:k}}},P={class:"groups"},Q=["onClick"],W={class:"left-header"},X={key:0,class:"fas fa-chevron-down","aria-hidden":"true"},Y={class:"right-header"},Z=["onClick"],$={key:0,class:"far fa-check-square","aria-hidden":"true"},ee={key:1,class:"far fa-square","aria-hidden":"true"},le={key:0},ae=["onKeypress"],se=["id","value","checked","onChange"],te=["for"],ne={class:"actions"};function oe(v,t,b,s,S,_){const p=N("section-cmp");return s.servicesToLaunch?(r(),j(p,{key:0,class:"stack-chooser",header:"Choose all services to launch"},{default:q(()=>[c("div",P,[(r(!0),u(A,null,L(s.groups,n=>{var k;return r(),u("div",{key:n.label},[c("div",{class:"group-header",onClick:o=>n.show=!n.show},[c("div",W,[n.label!=="All"?(r(),u("i",X)):y("",!0),c("h3",null,[E(g(n.label)+" ",1),c("span",null,"("+g((k=n.services)==null?void 0:k.length)+")",1)])]),c("div",Y,[c("button",{onClick:U(o=>s.toggleGroup(n.label),["stop"]),class:"mini"},[s.isGroupSelected(n.label)?(r(),u("i",$)):(r(),u("i",ee))],8,Z)])],8,Q),n.show||n.label==="All"?(r(),u("ul",le,[D(c("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=o=>s.search=o),onKeypress:V(o=>s.toggleService(s.servicesToLaunch.find(f=>{var h;return f.label===((h=s.displayedServices(n.services)[0])==null?void 0:h.label)})),["enter"]),placeholder:"Type+Enter to toggle..."},null,40,ae),[[O,s.search]]),(r(!0),u(A,null,L(s.displayedServices(n.services),o=>{var f,h;return r(),u("li",{key:"services-"+o.label},[c("input",{type:"checkbox",id:"input-"+o.label,value:(f=s.servicesToLaunch.find(e=>e.label===o.label))==null?void 0:f.enabled,checked:(h=s.servicesToLaunch.find(e=>e.label===o.label))==null?void 0:h.enabled,onChange:e=>s.toggleService(s.servicesToLaunch.find(l=>l.label===o.label))},null,40,se),c("label",{for:"input-"+o.label},g(o.label),9,te)])}),128))])):y("",!0)])}),128))]),c("div",ne,[s.isAllEnabled?(r(),u("button",{key:1,onClick:t[2]||(t[2]=n=>s.toggleGroup("All"))},"Unselect all")):(r(),u("button",{key:0,onClick:t[1]||(t[1]=n=>s.toggleGroup("All"))},"Select all")),c("button",{onClick:t[3]||(t[3]=(...n)=>s.validate&&s.validate(...n)),class:"success"},[t[4]||(t[4]=c("i",{class:"fas fa-play","aria-hidden":"true"},null,-1)),E(" "+g(s.oneOrMoreEnabled?"Launch":"Open without launching"),1)])])]),_:1})):y("",!0)}const fe=H(J,[["render",oe],["__scopeId","data-v-cd4be6aa"]]);export{fe as S};