UNPKG

zwave-js-ui

Version:

Z-Wave Control Panel and MQTT Gateway

3 lines (2 loc) 5.7 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./NodeScheduler-4x4jOR7p.js","./index-B8xHYEBg.js","./index-j3oOpPBM.css","./VDataTable-DFqrHTxq.js","./sort-B85QZ63r.js","./VTable-DHfEeaF4.js","./VTable-BsI6FsWH.css","./VDataTable-CLcLRj9B.css"])))=>i.map(i=>d[i]); import{_ as b,d as k,I as v,s as _,e as y,z as u,w as o,H as r,c as g,b as c,i as m,k as p,t as f,o as h,K as V,l as S,D as w,y as x}from"./index-B8xHYEBg.js";import{V as E}from"./VDataTable-DFqrHTxq.js";import"./sort-B85QZ63r.js";import"./VTable-DHfEeaF4.js";const I={mixins:[v],props:{node:Object},components:{NodeScheduler:k(()=>x(()=>import("./NodeScheduler-4x4jOR7p.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url))},data(){return{statuses:[{title:"Available",value:0},{title:"Enabled",value:1},{title:"Disabled",value:2}],loading:!1,editingState:{}}},computed:{headers(){const t=[{title:"User Id",key:"id"},{title:"Code",key:"code"},{title:"Status",key:"status"}];return this.node.schedule&&t.push({title:"Scheduling",key:"schedule"}),t},values(){return this.node.values?.filter(t=>t.commandClass===99)||[]},userCodes(){if(!this.values)return[];const t=[];for(const e of this.values){const s=e.propertyKey,i=t[s]||this.getBaseItem(s),l=e.property;if(l==="userCode")i.code=e.value;else if(l==="userIdStatus")i.status=e.value;else continue;t[s]=i}return t.filter(e=>!!e)}},methods:{startEditing(t,e){const s=t.id;this.editingState[s]||(this.editingState[s]={editingCode:!1,newCode:"",editingStatus:!1,newStatus:""});const i=this.editingState[s];e==="code"?(i.editingCode=!0,i.newCode=t.code||""):e==="status"&&(i.editingStatus=!0,i.newStatus=t.status)},cancelEditing(t,e){const s=t.id;this.editingState[s]&&(e==="code"?this.editingState[s].editingCode=!1:e==="status"&&(this.editingState[s].editingStatus=!1))},async setEnabled(t){const e=!t.schedule.enabled;(await this.app.apiRequest("setEnabledSchedule",[this.node.id,e,t.id])).success||this.showSnackbar(`User ID ${t.id} ${e?"enabled":"disabled"}`,"success")},getStatus(t){return this.statuses.find(e=>e.value===t)?.text},getSlots(t){const e=[];for(const s in this.node.schedule)e.push(...this.node.schedule[s].slots.filter(i=>i.userId===t).map(i=>({...i,type:s})));return e},getBaseItem(t){const e={id:t};if(this.node.schedule){const s=this.getSlots(t);e.schedule={type:s.find(i=>i.enabled)?.type||"daily",slots:s,enabled:this.node.userCodes.enabled.includes(t)}}return e},getValueId(t,e){return this.values.find(s=>s.propertyKey===t&&s.property===e)},async setUserCode(t){const e=this.editingState[t.id].newCode,s=this.getValueId(t.id,"userCode");s&&(s.newValue=e,this.$emit("updateValue",s),this.cancelEditing(t,"code"))},async setUserStatus(t){const e=this.editingState[t.id].newStatus,s=this.getValueId(t.id,"userIdStatus");s&&(s.newValue=e,this.$emit("updateValue",s),this.cancelEditing(t,"status"))}}},U=["onClick"],B={key:1},D=["onClick"],M={key:1},T={class:"mb-0"},N={class:"text-capitalize"},z=["colspan"],A={key:1,class:"text-center ma-3"};function K(t,e,s,i,l,a){const C=_("node-scheduler");return u(),y(E,{headers:a.headers,items:a.userCodes,"items-per-page":-1,"mobile-breakpoint":0,"item-key":"id","footer-props":{showFirstLastPage:!0},density:"compact","show-expand":!!s.node.schedule,"expand-on-click":""},{"item.code":o(({item:d})=>[r("div",null,[l.editingState[d.id]?.editingCode?(u(),g("div",B,[c(w,{modelValue:l.editingState[d.id].newCode,"onUpdate:modelValue":n=>l.editingState[d.id].newCode=n,label:"Code",style:{"max-width":"250px"},"single-line":""},{append:o(()=>[c(S,{class:"mr-2",color:"success",style:{cursor:"pointer"},onClick:h(n=>a.setUserCode(d),["stop"])},{default:o(()=>[...e[0]||(e[0]=[p(" check ",-1)])]),_:1},8,["onClick"]),c(S,{color:"error",style:{cursor:"pointer"},onClick:h(n=>a.cancelEditing(d,"code"),["stop"])},{default:o(()=>[...e[1]||(e[1]=[p(" close ",-1)])]),_:1},8,["onClick"])]),_:2},1032,["modelValue","onUpdate:modelValue"])])):(u(),g("span",{key:0,style:{cursor:"pointer"},onClick:h(n=>a.startEditing(d,"code"),["stop"])},f(d.code||"-------"),9,U))])]),"item.status":o(({item:d})=>[r("div",null,[l.editingState[d.id]?.editingStatus?(u(),g("div",M,[c(V,{modelValue:l.editingState[d.id].newStatus,"onUpdate:modelValue":n=>l.editingState[d.id].newStatus=n,items:l.statuses,style:{"max-width":"250px"},label:"Status","single-line":""},{append:o(()=>[c(S,{class:"mr-2",color:"success",style:{cursor:"pointer"},onClick:h(n=>a.setUserStatus(d),["stop"])},{default:o(()=>[...e[2]||(e[2]=[p(" check ",-1)])]),_:1},8,["onClick"]),c(S,{color:"error",style:{cursor:"pointer"},onClick:h(n=>a.cancelEditing(d,"status"),["stop"])},{default:o(()=>[...e[3]||(e[3]=[p(" close ",-1)])]),_:1},8,["onClick"])]),_:2},1032,["modelValue","onUpdate:modelValue","items"])])):(u(),g("span",{key:0,onClick:h(n=>a.startEditing(d,"status"),["stop"])},f(a.getStatus(d.status)||"-------"),9,D))])]),"item.schedule":o(({item:d})=>[c(m,{size:"x-small",variant:"flat",color:d.schedule.enabled?"success":"error",onClick:n=>a.setEnabled(d)},{default:o(()=>[p(f(d.schedule.enabled?"Enabled":"Disabled"),1)]),_:2},1032,["color","onClick"]),r("p",T,[e[4]||(e[4]=p(" Mode: ",-1)),r("b",N,f(d.schedule.type||"---"),1),e[5]||(e[5]=p(" Slots:",-1)),r("b",null,f(d.schedule.slots.filter(n=>n.type===d.schedule.type).length),1)])]),"expanded-row":o(({columns:d,item:n})=>[r("td",{colspan:d.length},[s.node.userCodes.available.includes(n.id)?(u(),y(C,{key:0,node:s.node,_user:n,activeMode:n.schedule.type},null,8,["node","_user","activeMode"])):(u(),g("p",A,[...e[6]||(e[6]=[r("b",null,"Enable this User Id in order to set schedules",-1)])]))],8,z)]),_:2},1032,["headers","items","show-expand"])}const O=b(I,[["render",K]]);export{O as default};