UNPKG

zwave-js-ui

Version:

Z-Wave Control Panel and MQTT Gateway

3 lines (2 loc) 6.74 kB
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DialogSceneValue-DzqrVSw6.js","./index-DwzE-W2i.js","./index-B2zoqM3Y.css"])))=>i.map(i=>d[i]); import{_ as k,a as y,d as x,I as g,e as p,w as t,b as a,s as C,q as S,l as r,k as l,t as b,f,h as _,V as h,K as I,i as d,u as D,x as A,y as q,z as m,am as V}from"./index-DwzE-W2i.js";import{V as R}from"./VDataTable-D8DZXD9Y.js";import"./sort-C8HQTCiq.js";import"./VTable-Cxuwit5L.js";const T={name:"Scenes",mixins:[g],components:{DialogSceneValue:x(()=>q(()=>import("./DialogSceneValue-DzqrVSw6.js"),__vite__mapDeps([0,1,2]),import.meta.url))},watch:{selectedScene(){this.refreshValues()},dialogValue(s){s||this.closeDialog()}},computed:{...y(A,["nodes"]),scenesWithId(){return this.scenes.map(s=>({...s,label:`[${s.sceneid}] ${s.label}`}))},dialogTitle(){return this.editedIndex===-1?"New Value":"Edit Value"}},data(){return{dialogValue:!1,scenes:[],selectedScene:null,scene_values:[],editedValue:{},editedIndex:-1,headers_scenes:[{title:"Value ID",key:"id"},{title:"Node",key:"nodeId"},{title:"Label",key:"label"},{title:"Value",key:"value"},{title:"Timeout",key:"timeout"},{title:"Actions",key:"actions",sortable:!1}]}},methods:{async importScenes(){if(await this.app.confirm("Attention","This operation will override all current scenes and cannot be undone","alert"))try{const{data:s}=await this.app.importFile("json");if(s instanceof Array){const e=await this.app.apiRequest("_setScenes",[s]);e.success&&(this.showSnackbar("Successfully updated scenes","success"),this.scenes=e.result)}else this.showSnackbar("Imported file not valid","error")}catch{}},exportScenes(){this.app.exportConfiguration(this.scenes,"scenes")},async refreshScenes(){const s=await this.app.apiRequest("_getScenes",[],{infoSnack:!1,errorSnack:!0});s.success&&(this.scenes=s.result,this.selectedScene||(this.selectedScene=this.scenes.length?this.scenes[0].sceneid:null))},async createScene(){const s=await this.app.confirm("New Scene","","info",{confirmText:"Create",inputs:[{type:"text",label:"Scene name",key:"name",required:!0}]});if(!s||!s.name)return;(await this.app.apiRequest("_createScene",[s.name])).success&&(this.showSnackbar("Scene created","success"),this.refreshScenes())},async removeScene(){this.selectedScene&&await this.app.confirm("Attention","Are you sure you want to delete this scene?","alert")&&(await this.app.apiRequest("_removeScene",[this.selectedScene])).success&&(this.selectedScene=null,this.showSnackbar("Scene removed","success"),this.refreshScenes())},async activateScene(){this.selectedScene&&(await this.app.apiRequest("_activateScene",[this.selectedScene])).success&&this.showSnackbar("Scene activated","success")},editItem(s){this.editedIndex=this.scene_values.indexOf(s);const e=this.nodes.find(u=>u.id===s.nodeId)||{id:s.nodeId,name:"",loc:"",values:[]};let c=e.values.find(u=>u.id===s.id);c=c?Object.assign({},c):Object.assign({},s),c.newValue=s.value,this.editedValue={node:e,value:c,timeout:s.timeout},this.dialogValue=!0},async deleteItem(s){await this.app.confirm("Attention","Are you sure you want to delete this item?","alert")&&(await this.app.apiRequest("_removeSceneValue",[this.selectedScene,s])).success&&(this.showSnackbar("Value removed","success"),this.refreshValues())},closeDialog(){this.dialogValue=!1,setTimeout(()=>{this.editedValue={},this.editedIndex=-1},300)},async saveValue(){const s=this.editedValue.value;s.value=s.newValue,(await this.app.apiRequest("_addSceneValue",[this.selectedScene,s,s.value,this.editedValue.timeout])).success&&(this.showSnackbar("Value saved","success"),this.refreshValues(),this.closeDialog())},async refreshValues(){if(this.selectedScene){const s=await this.app.apiRequest("_sceneGetValues",[this.selectedScene],{infoSnack:!1,errorSnack:!0});s.success&&(this.scene_values=s.result)}}},mounted(){this.refreshScenes()}};function N(s,e,c,u,o,i){const v=C("DialogSceneValue");return m(),p(D,{fluid:"",class:"pa-4"},{default:t(()=>[a(v,{onSave:i.saveValue,onClose:i.closeDialog,modelValue:o.dialogValue,"onUpdate:modelValue":e[0]||(e[0]=n=>o.dialogValue=n),title:i.dialogTitle,editedValue:o.editedValue,nodes:s.nodes},null,8,["onSave","onClose","modelValue","title","editedValue","nodes"]),a(R,{headers:o.headers_scenes,items:o.scene_values,class:"elevation-1"},{top:t(()=>[a(f,{class:"pt-0"},{default:t(()=>[a(h,null,{default:t(()=>[a(f,{cols:"12",sm:"6",class:"d-flex align-center"},{default:t(()=>[a(I,{modelValue:o.selectedScene,"onUpdate:modelValue":e[1]||(e[1]=n=>o.selectedScene=n),items:i.scenesWithId,"item-title":"label","item-value":"sceneid",label:"Scene",class:"ma-2","hide-details":"",variant:"outlined",style:{"max-width":"300px","min-width":"250px"},clearable:""},null,8,["modelValue","items"]),a(d,{variant:"text",color:"primary",onClick:i.createScene},{default:t(()=>[a(r,{start:""},{default:t(()=>[...e[3]||(e[3]=[l("add",-1)])]),_:1}),e[4]||(e[4]=l(" New Scene ",-1))]),_:1},8,["onClick"])]),_:1}),a(f,{cols:"12",sm:"6",class:"d-flex align-center justify-end"},{default:t(()=>[a(d,{variant:"text",onClick:i.importScenes},{default:t(()=>[e[6]||(e[6]=l(" Import ",-1)),a(r,{end:"",color:"primary"},{default:t(()=>[...e[5]||(e[5]=[l("file_upload",-1)])]),_:1})]),_:1},8,["onClick"]),a(d,{variant:"text",onClick:i.exportScenes},{default:t(()=>[e[8]||(e[8]=l(" Export ",-1)),a(r,{end:"",color:"primary"},{default:t(()=>[...e[7]||(e[7]=[l("file_download",-1)])]),_:1})]),_:1},8,["onClick"])]),_:1})]),_:1}),o.selectedScene?(m(),p(h,{key:0},{default:t(()=>[a(f,{class:"d-flex align-center"},{default:t(()=>[a(d,{color:"error",variant:"text",onClick:i.removeScene},{default:t(()=>[a(r,{start:""},{default:t(()=>[...e[9]||(e[9]=[l("delete",-1)])]),_:1}),e[10]||(e[10]=l(" Delete ",-1))]),_:1},8,["onClick"]),a(d,{color:"success",variant:"text",onClick:i.activateScene},{default:t(()=>[a(r,{start:""},{default:t(()=>[...e[11]||(e[11]=[l("play_arrow",-1)])]),_:1}),e[12]||(e[12]=l(" Activate ",-1))]),_:1},8,["onClick"]),a(d,{color:"primary",variant:"text",onClick:e[2]||(e[2]=n=>o.dialogValue=!0)},{default:t(()=>[a(r,{start:""},{default:t(()=>[...e[13]||(e[13]=[l("add",-1)])]),_:1}),e[14]||(e[14]=l(" New Value ",-1))]),_:1})]),_:1})]),_:1})):_("",!0)]),_:1})]),"item.timeout":t(({item:n})=>[l(b(n.timeout?"After "+n.timeout+"s":"No"),1)]),"item.actions":t(({item:n})=>[S((m(),p(r,{size:"small",color:"success",class:"mr-2",onClick:w=>i.editItem(n)},{default:t(()=>[...e[15]||(e[15]=[l("edit",-1)])]),_:1},8,["onClick"])),[[V,"Edit","bottom"]]),S((m(),p(r,{size:"small",color:"error",onClick:w=>i.deleteItem(n)},{default:t(()=>[...e[16]||(e[16]=[l("delete",-1)])]),_:1},8,["onClick"])),[[V,"Delete","bottom"]])]),_:2},1032,["headers","items"])]),_:1})}const z=k(T,[["render",N]]);export{z as default};