UNPKG

@runeya/runeya

Version:

Monitor processes as a stack

2 lines (1 loc) 5.13 kB
import{u as G,S as d}from"./router-CdfdQZKk.js";import I from"./system-BKM6fTSw.js";import{_ as M}from"./Section-D0z9MjV4.js";import{l as U,s as V,g as S,o as r,f as O,b as c,a as u,F as A,q as L,d as E,t as _,a1 as q,m as F,p as K,v as N,r as T,j,S as m,a0 as D,c as C,a6 as x}from"./index-CXxIspfv.js";import{L as R,B as z}from"./LeftLogo-DZyE6XwZ.js";import{_ as H}from"./_plugin-vue_export-helper-DlAUqK2U.js";const J={name:"StackChooser",components:{sectionCmp:M,BackgroundStackChooser:z,LeftLogo:R},props:{embed:{default:!1}},setup(){var o,h,f;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}})}}}j(b),(o=m)==null||o.on("stack:selectConf",b),(h=m)==null||h.on("service:start",b),(f=m)==null||f.on("stack:services-reloaded",b),D(()=>{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)}})},g=e=>t.value.filter(l=>{var a;return((a=l.groups)==null?void 0:a.includes(e))||e==="All"}),y=e=>g(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=y(e);g(e).map(a=>{k(a,!l)})},save:n,isGroupSelected:y,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,g,y){const p=U("section-cmp");return s.servicesToLaunch?(r(),V(p,{key:0,class:"stack-chooser",header:"Choose all services to launch"},{default:O(()=>[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)):S("",!0),c("h3",null,[E(_(n.label)+" ",1),c("span",null,"("+_((k=n.services)==null?void 0:k.length)+")",1)])]),c("div",Y,[c("button",{onClick:q(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,[F(c("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=o=>s.search=o),onKeypress:K(o=>s.toggleService(s.servicesToLaunch.find(h=>{var f;return h.label===((f=s.displayedServices(n.services)[0])==null?void 0:f.label)})),["enter"]),placeholder:"Type+Enter to toggle..."},null,40,ae),[[N,s.search]]),(r(!0),u(A,null,L(s.displayedServices(n.services),o=>{var h,f;return r(),u("li",{key:"services-"+o.label},[c("input",{type:"checkbox",id:"input-"+o.label,value:(h=s.servicesToLaunch.find(e=>e.label===o.label))==null?void 0:h.enabled,checked:(f=s.servicesToLaunch.find(e=>e.label===o.label))==null?void 0:f.enabled,onChange:e=>s.toggleService(s.servicesToLaunch.find(l=>l.label===o.label))},null,40,se),c("label",{for:"input-"+o.label},_(o.label),9,te)])}),128))])):S("",!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(" "+_(s.oneOrMoreEnabled?"Launch":"Open without launching"),1)])])]),_:1})):S("",!0)}const fe=H(J,[["render",oe],["__scopeId","data-v-cd4be6aa"]]);export{fe as S};