platypush/platypush/backend/http/webapp/dist/static/js/2790.73c2ca0a.js

2 lines
27 KiB
JavaScript

"use strict";(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[2790],{376:function(e,t,s){s.d(t,{Z:function(){return g}});var o=s(6252),l=s(9963),n=s(3577);const i={class:"slider-wrapper"},a=["min","max","step","disabled","value"],c={class:"track"},r={class:"track-inner",ref:"track"},u={class:"thumb",ref:"thumb"},d=["textContent"];function h(e,t,s,h,p,m){return(0,o.wg)(),(0,o.iD)("label",i,[(0,o._)("input",{class:"slider",type:"range",ref:"range",min:s.range[0],max:s.range[1],step:s.step,disabled:s.disabled,value:s.value,onInput:t[0]||(t[0]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"])),onChange:t[1]||(t[1]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"])),onMouseup:t[2]||(t[2]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"])),onMousedown:t[3]||(t[3]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"])),onTouchstart:t[4]||(t[4]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"])),onTouchend:t[5]||(t[5]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"])),onKeyup:t[6]||(t[6]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"])),onKeydown:t[7]||(t[7]=(0,l.iM)(((...e)=>m.onUpdate&&m.onUpdate(...e)),["stop"]))},null,40,a),(0,o._)("div",c,[(0,o._)("div",r,null,512)]),(0,o._)("div",u,null,512),s.withLabel?((0,o.wg)(),(0,o.iD)("span",{key:0,class:"label",textContent:(0,n.zw)(s.value)},null,8,d)):(0,o.kq)("",!0)])}var p={name:"Slider",emits:["input","change","mouseup","mousedown","touchstart","touchend","keyup","keydown"],props:{value:{type:Number},disabled:{type:Boolean,default:!1},range:{type:Array,default:()=>[0,100]},step:{type:Number,default:1},withLabel:{type:Boolean,default:!1}},methods:{onUpdate(e){this.update(e.target.value),this.$emit(e.type,{...e,target:{...e.target,value:this.$refs.range.value}})},update(e){const t=100*(e-this.range[0])/(this.range[1]-this.range[0]);this.$refs.thumb.style.left=`${t}%`,this.$refs.thumb.style.transform=`translate(-${t}%, -50%)`,this.$refs.track.style.width=`${t}%`}},mounted(){null!=this.value&&this.update(this.value)}},m=s(3744);const v=(0,m.Z)(p,[["render",h],["__scopeId","data-v-95edc28a"]]);var g=v},6:function(e,t,s){s.d(t,{Z:function(){return m}});var o=s(6252),l=s(3577),n=s(9963);const i=e=>((0,o.dD)("data-v-a6396ae8"),e=e(),(0,o.Cn)(),e),a=["checked"],c=i((()=>(0,o._)("div",{class:"switch"},[(0,o._)("div",{class:"dot"})],-1))),r={class:"label"};function u(e,t,s,i,u,d){return(0,o.wg)(),(0,o.iD)("div",{class:(0,l.C_)(["power-switch",{disabled:s.disabled}]),onClick:t[0]||(t[0]=(0,n.iM)(((...e)=>d.onInput&&d.onInput(...e)),["stop"]))},[(0,o._)("input",{type:"checkbox",checked:s.value},null,8,a),(0,o._)("label",null,[c,(0,o._)("span",r,[(0,o.WI)(e.$slots,"default",{},void 0,!0)])])],2)}var d={name:"ToggleSwitch",emits:["input"],props:{value:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},methods:{onInput(e){if(this.disabled)return!1;this.$emit("input",e)}}},h=s(3744);const p=(0,h.Z)(d,[["render",u],["__scopeId","data-v-a6396ae8"]]);var m=p},2790:function(e,t,s){s.r(t),s.d(t,{default:function(){return as}});var o=s(6252);const l={class:"music-snapcast-container"},n={class:"info"},i={class:"info"},a={class:"info"};function c(e,t,s,c,r,u){const d=(0,o.up)("Loading"),h=(0,o.up)("ModalHost"),p=(0,o.up)("Modal"),m=(0,o.up)("ModalGroup"),v=(0,o.up)("ModalClient"),g=(0,o.up)("Host");return(0,o.wg)(),(0,o.iD)("div",l,[e.loading?((0,o.wg)(),(0,o.j4)(d,{key:0})):(0,o.kq)("",!0),(0,o._)("div",n,[(0,o.Wm)(p,{title:"Server info",ref:"modalHost"},{default:(0,o.w5)((()=>[e.selectedHost?((0,o.wg)(),(0,o.j4)(h,{key:0,info:e.hosts[e.selectedHost]},null,8,["info"])):(0,o.kq)("",!0)])),_:1},512)]),(0,o._)("div",i,[(0,o.Wm)(p,{title:"Group info",ref:"modalGroup"},{default:(0,o.w5)((()=>[e.selectedGroup?((0,o.wg)(),(0,o.j4)(m,{key:0,group:e.hosts[e.selectedHost].groups[e.selectedGroup],streams:e.hosts[e.selectedHost].streams,clients:u.clientsByHost[e.selectedHost],loading:e.loading,onAddClient:u.addClientToGroup,onRemoveClient:u.removeClientFromGroup,onStreamChange:u.streamChange,onRenameGroup:t[0]||(t[0]=e=>u.renameGroup(e))},null,8,["group","streams","clients","loading","onAddClient","onRemoveClient","onStreamChange"])):(0,o.kq)("",!0)])),_:1},512)]),(0,o._)("div",a,[(0,o.Wm)(p,{title:"Client info",ref:"modalClient"},{default:(0,o.w5)((()=>[e.selectedClient?((0,o.wg)(),(0,o.j4)(v,{key:0,client:e.hosts[e.selectedHost].groups[e.selectedGroup].clients[e.selectedClient],loading:e.loading,onRemoveClient:u.removeClient,onRenameClient:t[1]||(t[1]=e=>u.renameClient(e))},null,8,["client","loading","onRemoveClient"])):(0,o.kq)("",!0)])),_:1},512)]),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.hosts,((e,s)=>((0,o.wg)(),(0,o.j4)(g,{key:s,server:e.server,streams:e.streams,groups:e.groups,onGroupMuteToggle:t[2]||(t[2]=e=>u.groupMute(e)),onClientMuteToggle:t[3]||(t[3]=e=>u.clientMute(e)),onClientVolumeChange:t[4]||(t[4]=e=>u.clientSetVolume(e)),onModalShow:t[5]||(t[5]=e=>u.onModalShow(e))},null,8,["server","streams","groups"])))),128))])}var r=s(8453),u=s(6813),d=s(3577);const h=e=>((0,o.dD)("data-v-7bce419a"),e=e(),(0,o.Cn)(),e),p={class:"host"},m={class:"header"},v=h((()=>(0,o._)("i",{class:"icon fa fa-server"},null,-1))),g={class:"col-2 buttons pull-right"},w={key:0,class:"group-container"};function f(e,t,s,l,n,i){const a=(0,o.up)("Group");return(0,o.wg)(),(0,o.iD)("div",p,[(0,o._)("div",m,[(0,o._)("div",{class:"col-10 name",onClick:t[0]||(t[0]=t=>e.$emit("modal-show",{type:"host",host:s.server.host.name}))},[v,(0,o.Uk)(" "+(0,d.zw)(s.server.host.name),1)]),(0,o._)("div",g,[(0,o._)("button",{type:"button",onClick:t[1]||(t[1]=e=>n.collapsed=!n.collapsed)},[(0,o._)("i",{class:(0,d.C_)(["icon fa",{"fa-chevron-up":!n.collapsed,"fa-chevron-down":n.collapsed}])},null,2)])])]),n.collapsed?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",w,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(s.groups,((l,n)=>((0,o.wg)(),(0,o.j4)(a,{key:n,id:l.id,name:l.name,server:s.server.host,muted:l.muted,clients:l.clients,stream:s.streams[l.stream_id],onModalShow:t[2]||(t[2]=t=>e.$emit("modal-show",t)),onGroupMuteToggle:t[3]||(t[3]=t=>e.$emit("group-mute-toggle",t)),onClientMuteToggle:t[4]||(t[4]=t=>e.$emit("client-mute-toggle",t)),onClientVolumeChange:t[5]||(t[5]=t=>e.$emit("client-volume-change",t))},null,8,["id","name","server","muted","clients","stream"])))),128))]))])}const _={class:"group"},C={class:"head"},y={class:"col-2 switch pull-right"},b={class:"body"};function k(e,t,s,l,n,i){const a=(0,o.up)("ToggleSwitch"),c=(0,o.up)("Client");return(0,o.wg)(),(0,o.iD)("div",_,[(0,o._)("div",C,[(0,o._)("div",{class:"col-10 name",onClick:t[0]||(t[0]=t=>e.$emit("modal-show",{type:"group",group:s.id,host:s.server.name}))},[(0,o._)("i",{class:(0,d.C_)(["icon fa",{"fa-play":"playing"===s.stream.status,"fa-stop":"playing"!==s.stream.status}])},null,2),(0,o.Uk)(" "+(0,d.zw)(s.name||s.stream.id||s.id),1)]),(0,o._)("div",y,[(0,o.Wm)(a,{value:!s.muted,onInput:t[1]||(t[1]=t=>e.$emit("group-mute-toggle",{host:s.server.name,group:s.id,muted:!s.muted}))},null,8,["value"])])]),(0,o._)("div",b,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(s.clients,(l=>((0,o.wg)(),(0,o.j4)(c,{key:l.id,config:l.config,connected:l.connected,server:s.server,host:l.host,groupId:s.id,id:l.id,lastSeen:l.lastSeen,snapclient:l.snapclient,onModalShow:t[2]||(t[2]=t=>e.$emit("modal-show",t)),onVolumeChange:t[3]||(t[3]=t=>e.$emit("client-volume-change",t)),onMuteToggle:t[4]||(t[4]=t=>e.$emit("client-mute-toggle",t))},null,8,["config","connected","server","host","groupId","id","lastSeen","snapclient"])))),128))])])}var x=s(6);const H=["textContent"],S={class:"col-s-12 col-m-9 controls"},D={class:"col-10 slider-container"},q={class:"col-2 switch pull-right"};function M(e,t,s,l,n,i){const a=(0,o.up)("Slider"),c=(0,o.up)("ToggleSwitch");return(0,o.wg)(),(0,o.iD)("div",{class:(0,d.C_)(["row client",{offline:!s.connected}])},[(0,o._)("div",{class:"col-s-12 col-m-3 name",textContent:(0,d.zw)(s.config.name?.length?s.config.name:s.host.name),onClick:t[0]||(t[0]=t=>e.$emit("modal-show",{type:"client",client:s.id,group:s.groupId,host:s.server.name}))},null,8,H),(0,o._)("div",S,[(0,o._)("div",D,[(0,o.Wm)(a,{range:[0,100],value:s.config.volume.percent,onMouseup:t[1]||(t[1]=t=>e.$emit("volume-change",{host:s.server.name,client:s.id,volume:t.target.value}))},null,8,["value"])]),(0,o._)("div",q,[(0,o.Wm)(c,{value:!s.config.volume.muted,onInput:t[2]||(t[2]=t=>e.$emit("mute-toggle",{host:s.server.name,client:s.id,muted:!s.config.volume.muted}))},null,8,["value"])])])],2)}var G=s(376),j={name:"Client",components:{Slider:G.Z,ToggleSwitch:x.Z},emits:["volume-change","mute-toggle","modal-show"],props:{config:{type:Object,required:!0},connected:{type:Boolean,default:!1},host:{type:Object,required:!0},id:{type:String,required:!0},groupId:{type:String,required:!0},lastSeen:{type:Object,default:()=>{}},snapclient:{type:Object,required:!0},server:{type:Object,required:!0}}},z=s(3744);const $=(0,z.Z)(j,[["render",M],["__scopeId","data-v-12b0e65b"]]);var O=$,U={name:"Group",components:{Client:O,ToggleSwitch:x.Z},emits:["group-mute-toggle","modal-show","client-volume-change","client-mute-toggle"],props:{id:{type:String},clients:{type:Object,default:()=>{}},muted:{type:Boolean},name:{type:String},stream:{type:Object},server:{type:Object}}};const I=(0,z.Z)(U,[["render",k],["__scopeId","data-v-748fccb4"]]);var Z=I,T={name:"Host",emits:["modal-show","group-mute-toggle","client-mute-toggle","client-volume-change"],components:{Group:Z},props:{groups:{type:Object,default:()=>{}},server:{type:Object,default:()=>{}},streams:{type:Object,default:()=>{}}},data(){return{collapsed:!1}}};const V=(0,z.Z)(T,[["render",f],["__scopeId","data-v-7bce419a"]]);var E=V;const A={class:"info"},B={key:0,class:"row"},R=(0,o._)("div",{class:"label col-3"},"IP Address",-1),P=["textContent"],N={key:1,class:"row"},K=(0,o._)("div",{class:"label col-3"},"MAC Address",-1),W=["textContent"],L={key:2,class:"row"},Y=(0,o._)("div",{class:"label col-3"},"Name",-1),F=["textContent"],J={key:3,class:"row"},Q=(0,o._)("div",{class:"label col-3"},"Port",-1),X=["textContent"],ee={key:4,class:"row"},te=(0,o._)("div",{class:"label col-3"},"OS",-1),se=["textContent"],oe={key:5,class:"row"},le=(0,o._)("div",{class:"label col-3"},"Architecture",-1),ne=["textContent"],ie={key:6,class:"row"},ae=(0,o._)("div",{class:"label col-3"},"Server name",-1),ce=["textContent"],re={key:7,class:"row"},ue=(0,o._)("div",{class:"label col-3"},"Server version",-1),de=["textContent"],he={key:8,class:"row"},pe=(0,o._)("div",{class:"label col-3"},"Protocol version",-1),me=["textContent"],ve={key:9,class:"row"},ge=(0,o._)("div",{class:"label col-3"},"Control protocol version",-1),we=["textContent"];function fe(e,t,s,l,n,i){return(0,o.wg)(),(0,o.iD)("div",A,[s.info?.server?.host?.ip?.length?((0,o.wg)(),(0,o.iD)("div",B,[R,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.host.ip)},null,8,P)])):(0,o.kq)("",!0),s.info?.server?.host?.mac?.length?((0,o.wg)(),(0,o.iD)("div",N,[K,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.host.mac)},null,8,W)])):(0,o.kq)("",!0),s.info?.server?.host?.name?.length?((0,o.wg)(),(0,o.iD)("div",L,[Y,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.host.name)},null,8,F)])):(0,o.kq)("",!0),s.info?.server?.host?.port?((0,o.wg)(),(0,o.iD)("div",J,[Q,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.host.port)},null,8,X)])):(0,o.kq)("",!0),s.info?.server?.host?.os?.length?((0,o.wg)(),(0,o.iD)("div",ee,[te,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.host.os)},null,8,se)])):(0,o.kq)("",!0),s.info?.server?.host?.arch?.length?((0,o.wg)(),(0,o.iD)("div",oe,[le,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.host.arch)},null,8,ne)])):(0,o.kq)("",!0),s.info?.server?.snapserver?.name?.length?((0,o.wg)(),(0,o.iD)("div",ie,[ae,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.snapserver.name)},null,8,ce)])):(0,o.kq)("",!0),s.info?.server?.snapserver?.version?.length?((0,o.wg)(),(0,o.iD)("div",re,[ue,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.snapserver.version)},null,8,de)])):(0,o.kq)("",!0),s.info?.server?.snapserver?.protocolVersion?((0,o.wg)(),(0,o.iD)("div",he,[pe,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.snapserver.protocolVersion)},null,8,me)])):(0,o.kq)("",!0),s.info?.server?.snapserver?.controlProtocolVersion?((0,o.wg)(),(0,o.iD)("div",ve,[ge,(0,o._)("div",{class:"value col-9",textContent:(0,d.zw)(s.info.server.snapserver.controlProtocolVersion)},null,8,we)])):(0,o.kq)("",!0)])}var _e={name:"HostModal",props:{info:{type:Object,default:()=>{}}}};const Ce=(0,z.Z)(_e,[["render",fe]]);var ye=Ce;const be=e=>((0,o.dD)("data-v-353ffa58"),e=e(),(0,o.Cn)(),e),ke={class:"info"},xe={class:"section name"},He=be((()=>(0,o._)("div",{class:"title"},"Name",-1))),Se={class:"row"},De={class:"name-value"},qe=["textContent"],Me=be((()=>(0,o._)("i",{class:"fa fa-edit"},null,-1))),Ge=[Me],je={key:0,class:"section clients"},ze=be((()=>(0,o._)("div",{class:"title"},"Clients",-1))),$e=["for"],Oe=["id","value","checked","disabled","onInput"],Ue={key:1,class:"section streams"},Ie=be((()=>(0,o._)("div",{class:"title"},"Stream",-1))),Ze={class:"row"},Te=be((()=>(0,o._)("div",{class:"label col-3"},"ID",-1))),Ve={class:"value col-9"},Ee=["textContent","name","value","disabled","selected"],Ae={key:0,class:"row"},Be=be((()=>(0,o._)("div",{class:"label col-m-3"},"Status",-1))),Re=["textContent"],Pe={key:1,class:"row"},Ne=be((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Host",-1))),Ke=["textContent"],We={key:2,class:"row"},Le=be((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Path",-1))),Ye=["textContent"],Fe={key:3,class:"row"},Je=be((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"URI",-1))),Qe=["textContent"];function Xe(e,t,s,l,n,i){return(0,o.wg)(),(0,o.iD)("div",ke,[(0,o._)("div",xe,[He,(0,o._)("div",Se,[(0,o._)("div",De,[(0,o._)("span",{class:"name",textContent:(0,d.zw)(s.group.name?.length?s.group.name:"default")},null,8,qe),(0,o._)("button",{class:"pull-right",title:"Rename",onClick:t[0]||(t[0]=(...e)=>i.renameGroup&&i.renameGroup(...e))},Ge)])])]),Object.keys(s.group?.clients||{}).length>0?((0,o.wg)(),(0,o.iD)("div",je,[ze,((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(s.clients||{},((t,l)=>((0,o.wg)(),(0,o.iD)("div",{class:"row",ref_for:!0,ref:"groupClients",key:l},[(0,o._)("label",{class:"client",for:"snapcast-client-"+t.id},[(0,o._)("input",{type:"checkbox",class:"client",id:`snapcast-client-${t.id}`,value:t.id,checked:t.id in s.group.clients,disabled:s.loading,onInput:s=>e.$emit(s.target.checked?"add-client":"remove-client",t.id)},null,40,Oe),(0,o.Uk)(" "+(0,d.zw)(t.host.name),1)],8,$e)])))),128))])):(0,o.kq)("",!0),s.group?.stream_id?((0,o.wg)(),(0,o.iD)("div",Ue,[Ie,(0,o._)("div",Ze,[Te,(0,o._)("div",Ve,[(0,o._)("label",null,[(0,o._)("select",{ref:"streamSelect",onChange:t[1]||(t[1]=t=>e.$emit("stream-change",t.target.value))},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(s.streams,((e,t)=>((0,o.wg)(),(0,o.iD)("option",{key:t,textContent:(0,d.zw)(s.streams[s.group.stream_id].id),name:e.id,value:e.id,disabled:s.loading,selected:e.id===s.group.stream_id},null,8,Ee)))),128))],544)])])]),s.streams?.[s.group.stream_id]?.status?((0,o.wg)(),(0,o.iD)("div",Ae,[Be,(0,o._)("div",{class:"value col-m-9",textContent:(0,d.zw)(s.streams[s.group.stream_id].status)},null,8,Re)])):(0,o.kq)("",!0),s.streams?.[s.group?.stream_id]?.uri?.host?((0,o.wg)(),(0,o.iD)("div",Pe,[Ne,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.streams[s.group.stream_id].uri.host)},null,8,Ke)])):(0,o.kq)("",!0),s.streams?.[s.group?.stream_id]?.uri?.path?((0,o.wg)(),(0,o.iD)("div",We,[Le,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.streams[s.group.stream_id].uri.path)},null,8,Ye)])):(0,o.kq)("",!0),s.streams?.[s.group?.stream_id]?.uri?.raw?((0,o.wg)(),(0,o.iD)("div",Fe,[Je,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.streams[s.group.stream_id].uri.raw)},null,8,Qe)])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])}var et={name:"GroupModal",emits:["add-client","remove-client","stream-change","rename-group"],props:{loading:{type:Boolean,default:!1},group:{type:Object},clients:{type:Object},streams:{type:Object}},methods:{renameGroup(){const e=(prompt("New group name",this.group.name)||"").trim();e?.length&&this.$emit("rename-group",e)}}};const tt=(0,z.Z)(et,[["render",Xe],["__scopeId","data-v-353ffa58"]]);var st=tt;const ot=e=>((0,o.dD)("data-v-0e55ac54"),e=e(),(0,o.Cn)(),e),lt={class:"client-modal"},nt={key:0,class:"info"},it={class:"row"},at=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"ID",-1))),ct=["textContent"],rt={key:0,class:"row"},ut=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Name",-1))),dt={class:"value col-s-12 col-m-9"},ht=["textContent"],pt=ot((()=>(0,o._)("i",{class:"fa fa-edit"},null,-1))),mt=[pt],vt={class:"row"},gt=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Connected",-1))),wt=["textContent"],ft={class:"row"},_t=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Volume",-1))),Ct={class:"value col-s-12 col-m-9"},yt={class:"row"},bt=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Muted",-1))),kt=["textContent"],xt={class:"row"},Ht=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Latency",-1))),St=["textContent"],Dt={key:1,class:"row"},qt=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"IP Address",-1))),Mt=["textContent"],Gt={key:2,class:"row"},jt=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"MAC Address",-1))),zt=["textContent"],$t={key:3,class:"row"},Ot=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"OS",-1))),Ut=["textContent"],It={key:4,class:"row"},Zt=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Architecture",-1))),Tt=["textContent"],Vt={class:"row"},Et=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Client name",-1))),At=["textContent"],Bt={class:"row"},Rt=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Client version",-1))),Pt=["textContent"],Nt={class:"row"},Kt=ot((()=>(0,o._)("div",{class:"label col-s-12 col-m-3"},"Protocol version",-1))),Wt=["textContent"],Lt={class:"buttons"},Yt={class:"row"},Ft=["disabled"],Jt=ot((()=>(0,o._)("i",{class:"fas fa-trash"},null,-1))),Qt=ot((()=>(0,o._)("span",{class:"name"},"Remove client",-1))),Xt=[Jt,Qt];function es(e,t,s,l,n,i){return(0,o.wg)(),(0,o.iD)("div",lt,[s.client?((0,o.wg)(),(0,o.iD)("div",nt,[(0,o._)("div",it,[at,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.id)},null,8,ct)]),s.client.config?.name?.length||s.client.host?.name?((0,o.wg)(),(0,o.iD)("div",rt,[ut,(0,o._)("div",dt,[(0,o._)("span",{class:"name",textContent:(0,d.zw)(s.client.config?.name||s.client.host?.name)},null,8,ht),(0,o._)("button",{title:"Rename",onClick:t[0]||(t[0]=(...e)=>i.renameClient&&i.renameClient(...e))},mt)])])):(0,o.kq)("",!0),(0,o._)("div",vt,[gt,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.connected)},null,8,wt)]),(0,o._)("div",ft,[_t,(0,o._)("div",Ct,(0,d.zw)(s.client.config.volume.percent)+"%",1)]),(0,o._)("div",yt,[bt,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.config.volume.muted)},null,8,kt)]),(0,o._)("div",xt,[Ht,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.config.latency)},null,8,St)]),s.client.host.ip&&s.client.host.ip.length?((0,o.wg)(),(0,o.iD)("div",Dt,[qt,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.host.ip)},null,8,Mt)])):(0,o.kq)("",!0),s.client.host.mac&&s.client.host.mac.length?((0,o.wg)(),(0,o.iD)("div",Gt,[jt,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.host.mac)},null,8,zt)])):(0,o.kq)("",!0),s.client.host.os&&s.client.host.os.length?((0,o.wg)(),(0,o.iD)("div",$t,[Ot,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.host.os)},null,8,Ut)])):(0,o.kq)("",!0),s.client.host.arch&&s.client.host.arch.length?((0,o.wg)(),(0,o.iD)("div",It,[Zt,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.host.arch)},null,8,Tt)])):(0,o.kq)("",!0),(0,o._)("div",Vt,[Et,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.snapclient.name)},null,8,At)]),(0,o._)("div",Bt,[Rt,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.snapclient.version)},null,8,Pt)]),(0,o._)("div",Nt,[Kt,(0,o._)("div",{class:"value col-s-12 col-m-9",textContent:(0,d.zw)(s.client.snapclient.protocolVersion)},null,8,Wt)])])):(0,o.kq)("",!0),(0,o._)("div",Lt,[(0,o._)("div",Yt,[(0,o._)("button",{type:"button",disabled:s.loading,onClick:t[1]||(t[1]=(...e)=>i.removeClient&&i.removeClient(...e))},Xt,8,Ft)])])])}var ts={name:"ClientModal",emits:["remove-client","rename-client"],props:{loading:{type:Boolean,default:!1},client:{type:Object}},methods:{removeClient(){window.confirm("Are you sure that you want to remove this client?")&&this.$emit("remove-client")},renameClient(){const e=(window.prompt("New client name",this.client.config.name?.length?this.client.config.name:this.client.host.name)||"").trim();e.length&&this.$emit("rename-client",e)}}};const ss=(0,z.Z)(ts,[["render",es],["__scopeId","data-v-0e55ac54"]]);var os=ss,ls=s(1232),ns={name:"MusicSnapcast",mixins:[u.Z],components:{Loading:ls.Z,Modal:r.Z,Host:E,ModalHost:ye,ModalGroup:st,ModalClient:os},data:function(){return{loading:!1,hosts:{},ports:{},selectedHost:null,selectedGroup:null,selectedClient:null}},computed:{clientsByHost(){return Object.entries(this.hosts).reduce(((e,[t,s])=>(e[t]={},Object.values(s.groups).forEach((s=>{Object.entries(s.clients).forEach((([s,o])=>{e[t][s]=o}))})),e)),{})}},methods:{parseServerStatus(e){e.server.host.port=this.ports[e.server.host.name],this.hosts[e.server.host.name]={...e,groups:e.groups.map((e=>({...e,clients:e.clients.reduce(((e,t)=>(e[t.id]=t,e)),{})}))).reduce(((e,t)=>(e[t.id]=t,e)),{}),streams:e.streams.reduce(((e,t)=>(e[t.id]=t,e)),{})}},async refresh(){this.loading=!0;try{const e=await this.request("music.snapcast.get_backend_hosts"),t=await Promise.all(Object.keys(e).map((async t=>this.request("music.snapcast.status",{host:t,port:e[t]}))));this.hosts={},t.forEach((t=>{this.ports[t.server.host.name]=e[t.server.host.name],this.parseServerStatus(t)}))}finally{this.loading=!1}},async refreshHost(e){e in this.hosts&&this.parseServerStatus(await this.request("music.snapcast.status",{host:e,port:this.ports[e]}))},async addClientToGroup(e){this.loading=!0;try{if(!this.selectedHost||!this.selectedGroup||!(e in this.clientsByHost[this.selectedHost]))return;const t=[...new Set([e,...Object.keys(this.hosts[this.selectedHost].groups[this.selectedGroup].clients)])];await this.request("music.snapcast.group_set_clients",{host:this.selectedHost,port:this.ports[this.selectedHost],group:this.selectedGroup,clients:t}),await this.refreshHost(this.selectedHost)}finally{this.loading=!1}},async removeClientFromGroup(e){this.loading=!0;try{if(!this.selectedHost||!this.selectedGroup||!(e in this.clientsByHost[this.selectedHost]))return;const t=new Set([...Object.keys(this.hosts[this.selectedHost].groups[this.selectedGroup].clients)]);if(!t.has(e))return;t.delete(e),await this.request("music.snapcast.group_set_clients",{host:this.selectedHost,port:this.ports[this.selectedHost],group:this.selectedGroup,clients:[...t]}),await this.refreshHost(this.selectedHost)}finally{this.loading=!1}},async renameGroup(e){this.loading=!0;try{if(!this.selectedHost||!this.selectedGroup)return;await this.request("music.snapcast.set_group_name",{host:this.selectedHost,port:this.ports[this.selectedHost],group:this.selectedGroup,name:e}),await this.refreshHost(this.selectedHost)}finally{this.loading=!1}},async renameClient(e){this.loading=!0;try{if(!this.selectedHost||!this.selectedClient)return;await this.request("music.snapcast.set_client_name",{host:this.selectedHost,port:this.ports[this.selectedHost],client:this.selectedClient,name:e}),await this.refreshHost(this.selectedHost)}finally{this.loading=!1}},async removeClient(){this.loading=!0;try{if(!this.selectedHost||!this.selectedClient)return;await this.request("music.snapcast.delete_client",{host:this.selectedHost,port:this.ports[this.selectedHost],client:this.selectedClient}),this.$refs.modalClient.close(),await this.refreshHost(this.selectedHost)}finally{this.loading=!1}},async streamChange(e){this.loading=!0;try{await this.request("music.snapcast.group_set_stream",{host:this.selectedHost,port:this.ports[this.selectedHost],group:this.selectedGroup,stream_id:e}),await this.refreshHost(this.selectedHost)}finally{this.loading=!1}},onClientUpdate(e){Object.keys(this.hosts[e.host].groups).forEach((t=>{e.client.id in this.hosts[e.host].groups[t].clients&&(this.hosts[e.host].groups[t].clients[e.client.id]=e.client)}))},onGroupStreamChange(e){this.hosts[e.host].groups[e.group].stream_id=e.stream},onServerUpdate(e){this.parseServerStatus(e.server)},onStreamUpdate(e){this.hosts[e.host].streams[e.stream.id]=e.stream},onClientVolumeChange(e){Object.keys(this.hosts[e.host].groups).forEach((t=>{e.client in this.hosts[e.host].groups[t].clients&&(null!=e.volume&&(this.hosts[e.host].groups[t].clients[e.client].config.volume.percent=e.volume),null!=e.muted&&(this.hosts[e.host].groups[t].clients[e.client].config.volume.muted=e.muted))}))},onGroupMuteChange(e){this.hosts[e.host].groups[e.group].muted=e.muted},modalShow(e){switch(e.type){case"host":this.modal[e.type].info=this.hosts[e.host];break;case"group":this.modal[e.type].info.server=this.hosts[e.host].server,this.modal[e.type].info.group=this.hosts[e.host].groups[e.group],this.modal[e.type].info.streams=this.hosts[e.host].streams,this.modal[e.type].info.clients={};for(const t of Object.values(this.hosts[e.host].groups))for(const s of Object.values(t.clients))this.modal[e.type].info.clients[s.id]=s;break;case"client":this.modal[e.type].info=this.hosts[e.host].groups[e.group].clients[e.client],this.modal[e.type].info.server=this.hosts[e.host].server;break}this.modal[e.type].visible=!0},async groupMute(e){await this.request("music.snapcast.mute",{group:e.group,host:e.host,port:this.ports[e.host],mute:e.muted}),await this.refreshHost(e.host)},async clientMute(e){await this.request("music.snapcast.mute",{client:e.client,host:e.host,port:this.ports[e.host],mute:e.muted}),await this.refreshHost(e.host)},async clientSetVolume(e){await this.request("music.snapcast.volume",{client:e.client,host:e.host,port:this.ports[e.host],volume:e.volume}),await this.refreshHost(e.host)},onModalShow(e){switch(e.type){case"host":this.selectedHost=e.host,this.$refs.modalHost.show();break;case"group":this.selectedHost=e.host,this.selectedGroup=e.group,this.$refs.modalGroup.show();break;case"client":this.selectedHost=e.host,this.selectedGroup=e.group,this.selectedClient=e.client,this.$refs.modalClient.show();break}}},mounted(){this.refresh(),this.subscribe(this.onClientUpdate,null,"platypush.message.event.music.snapcast.ClientConnectedEvent","platypush.message.event.music.snapcast.ClientDisconnectedEvent","platypush.message.event.music.snapcast.ClientNameChangeEvent"),this.subscribe(this.onGroupStreamChange,null,"platypush.message.event.music.snapcast.GroupStreamChangeEvent"),this.subscribe(this.onServerUpdate,null,"platypush.message.event.music.snapcast.ServerUpdateEvent"),this.subscribe(this.onStreamUpdate,null,"platypush.message.event.music.snapcast.StreamUpdateEvent"),this.subscribe(this.onClientVolumeChange,null,"platypush.message.event.music.snapcast.ClientVolumeChangeEvent"),this.subscribe(this.onGroupMuteChange,null,"platypush.message.event.music.snapcast.GroupMuteChangeEvent")}};const is=(0,z.Z)(ns,[["render",c],["__scopeId","data-v-40841f5a"]]);var as=is}}]);
//# sourceMappingURL=2790.73c2ca0a.js.map