(function(){var e={5250:function(e,t,n){"use strict";n.d(t,{$:function(){return i}});var s=n(9652),i=(0,s.Z)()},9646:function(e,t,n){"use strict";n(6992),n(8674),n(9601),n(7727);var s=n(9963),i=n(6252);function r(e,t,n,s,r,a){var o=(0,i.up)("Events"),c=(0,i.up)("Notifications"),l=(0,i.up)("VoiceAssistant"),u=(0,i.up)("Pushbullet"),d=(0,i.up)("router-view");return(0,i.wg)(),(0,i.iD)(i.HY,null,[a.hasWebsocket?((0,i.wg)(),(0,i.j4)(o,{key:0,ref:"events","ws-port":r.config["backend.http"].websocket_port},null,8,["ws-port"])):(0,i.kq)("",!0),(0,i.Wm)(c,{ref:"notifications"},null,512),a.hasAssistant?((0,i.wg)(),(0,i.j4)(l,{key:1,ref:"voice-assistant"},null,512)):(0,i.kq)("",!0),a.hasPushbullet?((0,i.wg)(),(0,i.j4)(u,{key:2,ref:"pushbullet"},null,512)):(0,i.kq)("",!0),(0,i.Wm)(d)],64)}var a=n(8534),o=(n(5666),n(9254),{class:"notifications"});function c(e,t,n,s,r,a){var c=(0,i.up)("Notification");return(0,i.wg)(),(0,i.iD)("div",o,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.notifications,(function(e,t,n){return(0,i.wg)(),(0,i.j4)(c,{key:n,id:t,text:e.text,html:e.html,title:e.title,link:e.link,image:e.image,warning:e.warning,error:e.error,onClicked:a.destroy},null,8,["id","text","html","title","link","image","warning","error","onClicked"])})),128))])}n(9653);var l=n(3577),u=["textContent"],d={class:"body"},f={key:0,class:"image col-3"},p={class:"row"},h=["src"],m={key:3,class:"fa fa-exclamation"},g={key:4,class:"fa fa-times"},v=["textContent"],w=["innerHTML"],b=["textContent"],y=["innerHTML"];function k(e,t,n,s,r,a){return(0,i.wg)(),(0,i.iD)("div",{class:(0,l.C_)(["notification fade-in",{warning:n.warning,error:n.error}]),onClick:t[0]||(t[0]=function(){return a.clicked&&a.clicked.apply(a,arguments)})},[n.title?((0,i.wg)(),(0,i.iD)("div",{key:0,class:"title",textContent:(0,l.zw)(n.title)},null,8,u)):(0,i.kq)("",!0),(0,i._)("div",d,[n.image||n.warning||n.error?((0,i.wg)(),(0,i.iD)("div",f,[(0,i._)("div",p,[n.image&&n.image.src?((0,i.wg)(),(0,i.iD)("img",{key:0,src:n.image.src,alt:""},null,8,h)):n.image&&n.image.icon?((0,i.wg)(),(0,i.iD)("i",{key:1,class:(0,l.C_)(["fa","fa-"+n.image.icon]),style:(0,l.j5)(n.image.color?"--color: "+n.image.color:"")},null,6)):n.image&&n.image.iconClass?((0,i.wg)(),(0,i.iD)("i",{key:2,class:(0,l.C_)(n.image.iconClass),style:(0,l.j5)(n.image.color?"--color: "+n.image.color:"")},null,6)):n.warning?((0,i.wg)(),(0,i.iD)("i",m)):n.error?((0,i.wg)(),(0,i.iD)("i",g)):(0,i.kq)("",!0)])])):(0,i.kq)("",!0),n.text&&n.image?((0,i.wg)(),(0,i.iD)("div",{key:1,class:"text col-9",textContent:(0,l.zw)(n.text)},null,8,v)):(0,i.kq)("",!0),n.html&&n.image?((0,i.wg)(),(0,i.iD)("div",{key:2,class:"text col-9",innerHTML:n.html},null,8,w)):(0,i.kq)("",!0),n.text&&!n.image?((0,i.wg)(),(0,i.iD)("div",{key:3,class:"text row horizontal-center",textContent:(0,l.zw)(n.text)},null,8,b)):(0,i.kq)("",!0),n.html&&!n.image?((0,i.wg)(),(0,i.iD)("div",{key:4,class:"text row horizontal-center",innerHTML:n.html},null,8,y)):(0,i.kq)("",!0)])],2)}var x={name:"Notification",props:["id","text","html","title","image","link","error","warning"],methods:{clicked:function(){this.link&&window.open(this.link,"_blank"),this.$emit("clicked",this.id)}}},_=n(3744);const C=(0,_.Z)(x,[["render",k],["__scopeId","data-v-7646705e"]]);var D=C,I={name:"Notifications",components:{Notification:D},props:{duration:{type:Number,default:1e4}},data:function(){return{index:0,notifications:{},timeouts:{}}},methods:{create:function(e){var t=this.index++;this.notifications[t]=e,null==e.duration&&(e.duration=this.duration);var n=e.duration?parseInt(e.duration):0;n&&(this.timeouts[t]=setTimeout(this.destroy.bind(null,t),n))},destroy:function(e){delete this.notifications[e],delete this.timeouts[e]}}};const S=(0,_.Z)(I,[["render",c],["__scopeId","data-v-6dc8bebc"]]);var T=S,Z=n(2628);function U(e,t,n,s,r,a){return(0,i.wg)(),(0,i.iD)("div")}var R=n(6347),P=n(9584),M=(n(2479),n(2222),n(7941),n(5250)),q={name:"Events",props:{wsPort:{type:Number,default:8009}},data:function(){return{ws:null,initialized:!1,pending:!1,opened:!1,timeout:null,reconnectMsecs:3e4,handlers:{},handlerNameToEventTypes:{}}},methods:{onWebsocketTimeout:function(){console.log("Websocket reconnection timed out, retrying"),this.pending=!1,this.ws&&this.ws.close(),this.onClose()},onMessage:function(e){var t=[];if(e=e.data,"string"===typeof e)try{e=JSON.parse(e)}catch(r){console.warn("Received invalid non-JSON event"),console.warn(e)}if(console.debug(e),"event"===e.type){null in this.handlers&&t.push(this.handlers[null]),e.args.type in this.handlers&&t.push.apply(t,(0,P.Z)(Object.values(this.handlers[e.args.type])));for(var n=0,s=t;n1&&void 0!==arguments[1]?arguments[1]:6e4,s={};return"target"in e&&e["target"]||(e["target"]="localhost"),"type"in e&&e["type"]||(e["type"]="request"),n&&(s.timeout=n),new Promise((function(n,r){i().post("/execute",e,s).then((function(e){var s;if(e=e.data.response,null!==(s=e.errors)&&void 0!==s&&s.length){var i,a=(null===(i=e.errors)||void 0===i?void 0:i[0])||e;t.notify({text:a,error:!0}),r(a)}else n(e.output)})).catch((function(e){t.notify({text:e,error:!0}),r(e)}))}))},request:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:6e4;return this.execute({type:"request",action:e,args:t},n)}}};const a=r;var o=a,c=n(6084),l=(n(4916),n(3123),{name:"Cookies",methods:{getCookies:function(){return document.cookie.split(/;\s*/).reduce((function(e,t){var n=t.split("="),s=(0,c.Z)(n,2),i=s[0],r=s[1];return e[i]=r,e}),{})}}});const u=l;var d=u,f=(n(2222),{name:"DateTime",methods:{formatDate:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return"string"===typeof e&&(e=new Date(Date.parse(e))),e.toDateString().substring(0,t?15:10)},formatTime:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return"string"===typeof e&&(e=new Date(Date.parse(e))),e.toTimeString().substring(0,t?8:5)},formatDateTime:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return"string"===typeof e&&(e=new Date(Date.parse(e))),"".concat(this.formatDate(e,t),", ").concat(this.formatTime(e,n))}}});const p=f;var h=p,m=n(9584),g=(n(7714),n(2801),n(1174),n(1249),n(3948),n(5250)),v={name:"Events",computed:{_eventsReady:function(){var e;return null===(e=this.$root.$refs.events)||void 0===e?void 0:e.initialized}},methods:{subscribe:function(e,t){for(var n=this,s=arguments.length,i=new Array(s>2?s-2:0),r=2;r1024&&(i===n.length-1?t=s:e/=1024)})),"".concat(e.toFixed(2)," ").concat(t)}}});const S=I;var T=S,Z={name:"Utils",mixins:[o,d,x,b,h,D,T]};const U=Z;var R=U},1232:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var s=n(6252),i={class:"loading"},r={class:"icon"};function a(e,t){return(0,s.wg)(),(0,s.iD)("div",i,[(0,s._)("div",r,[((0,s.wg)(),(0,s.iD)(s.HY,null,(0,s.Ko)(4,(function(e){return(0,s._)("div",{key:e})})),64))])])}var o=n(3744);const c={},l=(0,o.Z)(c,[["render",a],["__scopeId","data-v-4d9c871b"]]);var u=l},9642:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var s=n(6252),i=n(3577),r=["id"],a={class:"modal"},o=["textContent"],c={class:"body"};function l(e,t,n,l,u,d){return(0,s.wg)(),(0,s.iD)("div",{class:(0,i.C_)(["modal-container fade-in",{hidden:!u.isVisible}]),id:n.id,style:(0,i.j5)({"--z-index":d.zIndex}),onClick:t[2]||(t[2]=function(){return d.close&&d.close.apply(d,arguments)})},[(0,s._)("div",a,[(0,s._)("div",{class:"content",style:(0,i.j5)({"--width":n.width,"--height":n.height}),onClick:t[1]||(t[1]=function(e){return e.stopPropagation()})},[n.title?((0,s.wg)(),(0,s.iD)("div",{key:0,class:"header",textContent:(0,i.zw)(n.title)},null,8,o)):(0,s.kq)("",!0),(0,s._)("div",c,[(0,s.WI)(e.$slots,"default",{onModalClose:t[0]||(t[0]=function(){return d.close&&d.close.apply(d,arguments)})},void 0,!0)])],4)])],14,r)}var u=n(6347),d=(n(9653),{name:"Modal",emits:["close","open"],props:{id:{type:String},title:{type:String},width:{type:[Number,String]},height:{type:[Number,String]},visible:{type:Boolean,default:!1},timeout:{type:[Number,String]},level:{type:Number,default:1}},data:function(){return{timeoutId:void 0,prevVisible:this.visible,isVisible:this.visible}},computed:{zIndex:function(){return 500+this.level}},methods:{close:function(){this.prevVisible=this.isVisible,this.isVisible=!1},hide:function(){this.close()},show:function(){this.prevVisible=this.isVisible,this.isVisible=!0},toggle:function(){this.isVisible?this.close():this.show()}},mounted:function(){var e=this,t=this,n=function(e){e?t.$emit("open"):t.$emit("close"),t.isVisible=e};this.$watch((function(){return e.visible}),n),this.$watch((function(){return e.isVisible}),n)},updated:function(){if(this.prevVisible=this.isVisible,this.isVisible){var e,t=parseInt(getComputedStyle(this.$el).zIndex),n=[],s=(0,u.Z)(document.querySelectorAll(".modal-container:not(.hidden)"));try{for(s.s();!(e=s.n()).done;){var i=e.value,r=parseInt(getComputedStyle(i).zIndex);r>t?(t=r,n=[i]):r===t&&n.push(i)}}catch(o){s.e(o)}finally{s.f()}(n.indexOf(this.$el)<0||n.length>1)&&(this.$el.style.zIndex=t+1)}if(this.isVisible&&this.timeout&&!this.timeoutId){var a=function(e){return function(){e.close(),e.timeoutId=void 0}};this.timeoutId=setTimeout(a(this),0+this.timeout)}}}),f=n(3744);const p=(0,f.Z)(d,[["render",l],["__scopeId","data-v-010fadd6"]]);var h=p},449:function(e,t,n){"use strict";n.d(t,{Z:function(){return h}});var s=n(6252),i=n(9963),r=n(3577),a={class:"dropdown-container",ref:"container"},o=["title"],c=["textContent"],l=["id"];function u(e,t,n,u,d,f){return(0,s.wg)(),(0,s.iD)("div",a,[(0,s._)("button",{title:n.title,ref:"button",onClick:t[0]||(t[0]=(0,i.iM)((function(e){return f.toggle(e)}),["stop"]))},[n.iconClass?((0,s.wg)(),(0,s.iD)("i",{key:0,class:(0,r.C_)(["icon",n.iconClass])},null,2)):(0,s.kq)("",!0),n.text?((0,s.wg)(),(0,s.iD)("span",{key:1,class:"text",textContent:(0,r.zw)(n.text)},null,8,c)):(0,s.kq)("",!0)],8,o),(0,s._)("div",{class:(0,r.C_)(["dropdown fade-in",{hidden:!d.visible}]),id:n.id,ref:"dropdown"},[(0,s.WI)(e.$slots,"default",{},void 0,!0)],10,l)],512)}var d={name:"Dropdown",emits:["click"],props:{id:{type:String},items:{type:Array,default:function(){return[]}},iconClass:{type:String,default:"fa fa-ellipsis-h"},text:{type:String},title:{type:String}},data:function(){return{visible:!1}},methods:{documentClickHndl:function(e){if(this.visible){var t=e.target;while(t){if(!this.$refs.dropdown)break;if(t===this.$refs.dropdown.element)return;t=t.parentElement}this.close()}},close:function(){this.visible=!1,document.removeEventListener("click",this.documentClickHndl)},open:function(){var e=this;document.addEventListener("click",this.documentClickHndl),this.visible=!0,setTimeout((function(){var t=e.$refs.dropdown;t.style.left=0,t.style.top=parseFloat(getComputedStyle(e.$refs.button).height)+"px",t.getBoundingClientRect().left>window.innerWidth/2&&(t.style.left=-t.clientWidth+parseFloat(getComputedStyle(e.$refs.button).width)+"px"),t.getBoundingClientRect().top>window.innerHeight/2&&(t.style.top=-t.clientHeight+parseFloat(getComputedStyle(e.$refs.button).height)+"px")}),10)},toggle:function(e){e.stopPropagation(),this.$emit("click"),this.visible?this.close():this.open()}}},f=n(3744);const p=(0,f.Z)(d,[["render",u],["__scopeId","data-v-068c53bc"]]);var h=p},6728:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var s=n(6252),i=n(3577),r={key:0,class:"col-1 icon"},a=["textContent"];function o(e,t,n,o,c,l){return(0,s.wg)(),(0,s.iD)("div",{class:(0,i.C_)(["row item",n.itemClass]),onClick:t[0]||(t[0]=function(){return l.clicked&&l.clicked.apply(l,arguments)})},[n.iconClass?((0,s.wg)(),(0,s.iD)("div",r,[(0,s._)("i",{class:(0,i.C_)(n.iconClass)},null,2)])):(0,s.kq)("",!0),(0,s._)("div",{class:(0,i.C_)(["text",{"col-11":null!=n.iconClass}]),textContent:(0,i.zw)(n.text)},null,10,a)],2)}var c={name:"DropdownItem",props:{iconClass:{type:String},text:{type:String},disabled:{type:Boolean,default:!1},itemClass:{type:String}},methods:{clicked:function(e){this.$parent.$emit("click",e),this.$parent.visible=!1}}},l=n(3744);const u=(0,l.Z)(c,[["render",o],["__scopeId","data-v-6d8973c4"]]);var d=u},5392:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Ie}});var s=n(6252),i={class:"settings-container"},r={class:"col-8"},a=["selected"],o=["selected"],c={class:"col-4 pull-right"},l=(0,s._)("i",{class:"fa fa-plus"},null,-1),u=[l];function d(e,t,n,l,d,f){var p=(0,s.up)("Users"),h=(0,s.up)("Token");return(0,s.wg)(),(0,s.iD)("div",i,[(0,s._)("header",null,[(0,s._)("div",r,[(0,s._)("select",{title:"View",onChange:t[0]||(t[0]=function(e){return d.selectedView=e.target.value})},[(0,s._)("option",{value:"users",selected:"users"===d.selectedView},"Users",8,a),(0,s._)("option",{value:"token",selected:"token"===d.selectedView},"Generate Token",8,o)],32)]),(0,s._)("div",c,["users"===d.selectedView?((0,s.wg)(),(0,s.iD)("button",{key:0,title:"Add User",onClick:t[1]||(t[1]=function(t){return e.$refs.usersView.$refs.addUserModal.show()})},u)):(0,s.kq)("",!0)])]),(0,s._)("main",null,["users"===d.selectedView?((0,s.wg)(),(0,s.j4)(p,{key:0,"session-token":d.sessionToken,"current-user":d.currentUser,ref:"usersView"},null,8,["session-token","current-user"])):"token"===d.selectedView?((0,s.wg)(),(0,s.j4)(h,{key:1,"session-token":d.sessionToken,"current-user":d.currentUser,ref:"tokenView"},null,8,["session-token","current-user"])):(0,s.kq)("",!0)])])}var f=n(8534),p=(n(5666),n(3577)),h=n(9963),m={class:"token-container"},g={class:"token-container"},v=(0,s.Uk)(" This is your generated token. Treat it carefully and do not share it with untrusted parties."),w=(0,s._)("br",null,null,-1),b=(0,s.Uk)(" Also, make sure to save it - it WILL NOT be displayed again. "),y=["textContent"],k={class:"body"},x={class:"description"},_=(0,s.Uk)("Generate a JWT authentication token that can be used for API calls to the "),C=(0,s.Uk)("/execute"),D=(0,s.Uk)(" endpoint."),I=(0,s._)("br",null,null,-1),S=(0,s._)("p",null,"You can include the token in your requests in any of the following ways:",-1),T=(0,s.Uk)("Specify it on the "),Z=(0,s.Uk)("Authorization: Bearer"),U=(0,s.Uk)(" header;"),R=(0,s.Uk)("Specify it on the "),P=(0,s.Uk)("X-Token"),M=(0,s.Uk)(" header;"),q=(0,s.Uk)("Specify it as a URL parameter: "),N=(0,s.Uk)("http://site:8008/execute?token=..."),$=(0,s.Uk)(";"),j=(0,s.Uk)("Specify it on the body of your JSON request: "),O=(0,s.Uk)('{"type":"request", "action", "...", "token":"..."}'),z=(0,s.Uk)("."),E=(0,s.Uk)(" Confirm your credentials in order to generate a new token. "),W={class:"form-container"},L=(0,s.Uk)(" Username "),A=["value"],V=(0,s._)("label",null,[(0,s.Uk)(" Password "),(0,s._)("input",{type:"password",name:"password"})],-1),H=(0,s._)("label",null,[(0,s.Uk)(" Token validity in days "),(0,s._)("input",{type:"text",name:"validityDays"}),(0,s._)("span",{class:"note"},[(0,s.Uk)(" Decimal values are also supported (e.g. "),(0,s._)("i",null,"0.5"),(0,s.Uk)(" to identify 6 hours). An empty or zero value means that the token has no expiry date. ")])],-1),F=(0,s._)("input",{type:"submit",value:"Generate token"},null,-1);function B(e,t,n,i,r,a){var o=(0,s.up)("Loading"),c=(0,s.up)("Modal"),l=(0,s.up)("tt");return(0,s.wg)(),(0,s.iD)("div",m,[r.loading?((0,s.wg)(),(0,s.j4)(o,{key:0})):(0,s.kq)("",!0),(0,s.Wm)(c,{ref:"tokenModal"},{default:(0,s.w5)((function(){return[(0,s._)("div",g,[(0,s._)("label",null,[v,w,b,(0,s._)("textarea",{class:"token",textContent:(0,p.zw)(r.token),onFocus:t[0]||(t[0]=function(){return a.onTokenSelect&&a.onTokenSelect.apply(a,arguments)})},null,40,y)])])]})),_:1},512),(0,s._)("div",k,[(0,s._)("div",x,[(0,s._)("p",null,[_,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[C]})),_:1}),D]),I,S,(0,s._)("ul",null,[(0,s._)("li",null,[T,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[Z]})),_:1}),U]),(0,s._)("li",null,[R,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[P]})),_:1}),M]),(0,s._)("li",null,[q,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[N]})),_:1}),$]),(0,s._)("li",null,[j,(0,s.Wm)(l,null,{default:(0,s.w5)((function(){return[O]})),_:1}),z])]),E]),(0,s._)("div",W,[(0,s._)("form",{onSubmit:t[1]||(t[1]=(0,h.iM)((function(){return a.generateToken&&a.generateToken.apply(a,arguments)}),["prevent"])),ref:"generateTokenForm"},[(0,s._)("label",null,[L,(0,s._)("input",{type:"text",name:"username",value:n.currentUser.username,disabled:""},null,8,A)]),V,H,F],544)])])])}n(1539),n(9714);var Y=n(9669),K=n.n(Y),G=n(1232),J=n(2628),X=n(9642),Q={name:"Token",components:{Modal:X.Z,Loading:G.Z},mixins:[J.Z],props:{currentUser:{type:Object,required:!0}},data:function(){return{loading:!1,token:null}},methods:{generateToken:function(e){var t=this;return(0,f.Z)(regeneratorRuntime.mark((function n(){var s,i,r,a,o;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:return i=t.currentUser.username,r=e.target.password.value,a=null!==(s=e.target.validityDays)&&void 0!==s&&s.length?parseInt(e.target.validityDays.value):0,a||(a=null),t.loading=!0,n.prev=5,n.next=8,K().post("/auth",{username:i,password:r,expiry_days:a});case 8:t.token=n.sent.data.token,null!==(o=t.token)&&void 0!==o&&o.length&&t.$refs.tokenModal.show(),n.next=16;break;case 12:n.prev=12,n.t0=n["catch"](5),console.error(n.t0.toString()),t.notify({text:n.t0.toString(),error:!0});case 16:return n.prev=16,t.loading=!1,n.finish(16);case 19:case"end":return n.stop()}}),n,null,[[5,12,16,19]])})))()},onTokenSelect:function(e){e.target.select(),document.execCommand("copy"),this.notify({text:"Token copied to clipboard",image:{iconClass:"fa fa-check"}})}}},ee=n(3744);const te=(0,ee.Z)(Q,[["render",B]]);var ne=te,se=["disabled"],ie=["disabled"],re=["disabled"],ae=["disabled"],oe=["value"],ce=["disabled"],le=["disabled"],ue=["disabled"],de=["disabled"],fe={class:"body"},pe={class:"users-list"},he=["onClick"],me=["textContent"],ge={class:"actions pull-right col-4"};function ve(e,t,n,i,r,a){var o=(0,s.up)("Loading"),c=(0,s.up)("Modal"),l=(0,s.up)("DropdownItem"),u=(0,s.up)("Dropdown");return(0,s.wg)(),(0,s.iD)(s.HY,null,[r.loading?((0,s.wg)(),(0,s.j4)(o,{key:0})):(0,s.kq)("",!0),(0,s.Wm)(c,{ref:"addUserModal",title:"Add User"},{default:(0,s.w5)((function(){return[(0,s._)("form",{action:"#",method:"POST",ref:"addUserForm",onSubmit:t[0]||(t[0]=function(){return a.createUser&&a.createUser.apply(a,arguments)})},[(0,s._)("label",null,[(0,s._)("input",{type:"text",name:"username",placeholder:"Username",disabled:r.commandRunning},null,8,se)]),(0,s._)("label",null,[(0,s._)("input",{type:"password",name:"password",placeholder:"Password",disabled:r.commandRunning},null,8,ie)]),(0,s._)("label",null,[(0,s._)("input",{type:"password",name:"confirm_password",placeholder:"Confirm password",disabled:r.commandRunning},null,8,re)]),(0,s._)("input",{type:"submit",value:"Create User",disabled:r.commandRunning},null,8,ae)],544)]})),_:1},512),(0,s.Wm)(c,{ref:"changePasswordModal",title:"Change Password"},{default:(0,s.w5)((function(){return[(0,s._)("form",{action:"#",method:"POST",ref:"changePasswordForm",onSubmit:t[1]||(t[1]=function(){return a.changePassword&&a.changePassword.apply(a,arguments)})},[(0,s._)("label",null,[(0,s._)("input",{type:"text",name:"username",placeholder:"Username",value:r.selectedUser,disabled:"disabled"},null,8,oe)]),(0,s._)("label",null,[(0,s._)("input",{type:"password",name:"password",placeholder:"Current password",disabled:r.commandRunning},null,8,ce)]),(0,s._)("label",null,[(0,s._)("input",{type:"password",name:"new_password",placeholder:"New password",disabled:r.commandRunning},null,8,le)]),(0,s._)("label",null,[(0,s._)("input",{type:"password",name:"confirm_new_password",placeholder:"Confirm new password",disabled:r.commandRunning},null,8,ue)]),(0,s._)("input",{type:"submit",value:"Change Password",disabled:r.commandRunning},null,8,de)],544)]})),_:1},512),(0,s._)("div",fe,[(0,s._)("ul",pe,[((0,s.wg)(!0),(0,s.iD)(s.HY,null,(0,s.Ko)(r.users,(function(t){return(0,s.wg)(),(0,s.iD)("li",{key:t.user_id,class:"item user",onClick:function(e){return r.selectedUser=t.username}},[(0,s._)("div",{class:"name col-8",textContent:(0,p.zw)(t.username)},null,8,me),(0,s._)("div",ge,[(0,s.Wm)(u,{title:"User Actions","icon-class":"fa fa-cog"},{default:(0,s.w5)((function(){return[(0,s.Wm)(l,{text:"Change Password",disabled:r.commandRunning,"icon-class":"fa fa-key",onClick:function(n){r.selectedUser=t.username,e.$refs.changePasswordModal.show()}},null,8,["disabled","onClick"]),(0,s.Wm)(l,{text:"Delete User",disabled:r.commandRunning,"icon-class":"fa fa-trash",onClick:function(e){return a.deleteUser(t)}},null,8,["disabled","onClick"])]})),_:2},1024)])],8,he)})),128))])])],64)}var we=n(9584),be=(n(8309),n(449)),ye=n(6728),ke={name:"Users",components:{DropdownItem:ye.Z,Loading:G.Z,Modal:X.Z,Dropdown:be.Z},mixins:[J.Z],props:{sessionToken:{type:String,required:!0},currentUser:{type:Object,required:!0}},data:function(){return{users:[],commandRunning:!1,loading:!1,selectedUser:null}},methods:{refresh:function(){var e=this;return(0,f.Z)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.loading=!0,t.prev=1,t.next=4,e.request("user.get_users");case 4:e.users=t.sent;case 5:return t.prev=5,e.loading=!1,t.finish(5);case 8:case"end":return t.stop()}}),t,null,[[1,,5,8]])})))()},createUser:function(e){var t=this;return(0,f.Z)(regeneratorRuntime.mark((function n(){var s;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(e.preventDefault(),s=(0,we.Z)(t.$refs.addUserForm.querySelectorAll("input[name]")).reduce((function(e,t){return e[t.name]=t.value,e}),{}),s.password===s.confirm_password){n.next=5;break}return t.notify({title:"Unable to create user",text:"Please check that the passwords match",error:!0,image:{iconClass:"fas fa-times"}}),n.abrupt("return");case 5:return t.commandRunning=!0,n.prev=6,n.next=9,t.request("user.create_user",{username:s.username,password:s.password,session_token:t.sessionToken});case 9:return n.prev=9,t.commandRunning=!1,n.finish(9);case 12:return t.notify({text:"User "+s.username+" created",image:{iconClass:"fas fa-check"}}),t.$refs.addUserModal.close(),n.next=16,t.refresh();case 16:case"end":return n.stop()}}),n,null,[[6,,9,12]])})))()},changePassword:function(e){var t=this;return(0,f.Z)(regeneratorRuntime.mark((function n(){var s,i;return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(e.preventDefault(),s=(0,we.Z)(t.$refs.changePasswordForm.querySelectorAll("input[name]")).reduce((function(e,t){return e[t.name]=t.value,e}),{}),s.new_password===s.confirm_new_password){n.next=5;break}return t.notify({title:"Unable to update password",text:"Please check that the passwords match",error:!0,image:{iconClass:"fas fa-times"}}),n.abrupt("return");case 5:return t.commandRunning=!0,i=!1,n.prev=7,n.next=10,t.request("user.update_password",{username:s.username,old_password:s.password,new_password:s.new_password});case 10:i=n.sent;case 11:return n.prev=11,t.commandRunning=!1,n.finish(11);case 14:i?(t.$refs.changePasswordModal.close(),t.notify({text:"Password successfully updated",image:{iconClass:"fas fa-check"}})):t.notify({title:"Unable to update password",text:"The current password is incorrect",error:!0,image:{iconClass:"fas fa-times"}});case 15:case"end":return n.stop()}}),n,null,[[7,,11,14]])})))()},deleteUser:function(e){var t=this;return(0,f.Z)(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){while(1)switch(n.prev=n.next){case 0:if(confirm("Are you sure that you want to remove the user "+e.username+"?")){n.next=2;break}return n.abrupt("return");case 2:return t.commandRunning=!0,n.prev=3,n.next=6,t.request("user.delete_user",{username:e.username,session_token:t.sessionToken});case 6:return n.prev=6,t.commandRunning=!1,n.finish(6);case 9:return t.notify({text:"User "+e.username+" removed",image:{iconClass:"fas fa-check"}}),n.next=12,t.refresh();case 12:case"end":return n.stop()}}),n,null,[[3,,6,9]])})))()}},mounted:function(){this.refresh()}};const xe=(0,ee.Z)(ke,[["render",ve]]);var _e=xe,Ce={name:"Settings",components:{Users:_e,Token:ne},mixins:[J.Z],data:function(){return{selectedView:"users",currentUser:null,sessionToken:null}},methods:{refresh:function(){var e=this;return(0,f.Z)(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.sessionToken=e.getCookies()["session_token"],t.next=3,e.request("user.get_user_by_session",{session_token:e.sessionToken});case 3:e.currentUser=t.sent;case 4:case"end":return t.stop()}}),t)})))()}},mounted:function(){this.refresh()}};const De=(0,ee.Z)(Ce,[["render",d]]);var Ie=De},3379:function(e,t,n){var s={"./Camera/Index":[5528,5528],"./CameraAndroidIpcam/Index":[6739,6739],"./CameraCv/Index":[8184,5528,8184],"./CameraFfmpeg/Index":[5111,5528,5111],"./CameraGstreamer/Index":[699,5528,699],"./CameraIrMlx90640/Index":[9895,5528,9895],"./CameraPi/Index":[4548,5528,4548],"./Execute/Index":[7643,7643],"./Light/Index":[1406,1474,8938,1406],"./LightHue/Index":[3674,1474,8938,1406,3674],"./Media/Index":[4196,8938,8337,7029,779,4196],"./MediaMplayer/Index":[6509,8938,8337,7029,779,4196,6509],"./MediaMpv/Index":[5895,8938,8337,7029,779,4196,5895],"./MediaOmxplayer/Index":[9633,8938,8337,7029,779,4196,9633],"./MediaVlc/Index":[767,8938,8337,7029,779,4196,767],"./Music/Index":[5781,8938,8337,7029,6833],"./MusicMpd/Index":[2957,8938,8337,7029,6833,2957],"./MusicSnapcast/Index":[2790,1474,8938,2790],"./MusicSpotify/Index":[7196,8938,8337,7029,6833,7196],"./Rtorrent/Index":[2820,8337,779,6162,2820],"./Settings/Index":[5392],"./Sound/Index":[5193,5193],"./Switches/Index":[4276,4276],"./Switches/LightHue/Index":[2844,1474,6590,2844],"./Switches/Smartthings/Index":[9196,1474,6590,9196],"./Switches/SwitchTplink/Index":[3785,1474,6590,3785],"./Switches/SwitchWemo/Index":[5210,1474,6590,5210],"./Switches/Switchbot/Index":[9694,1474,6590,9694],"./Switches/SwitchbotBluetooth/Index":[9694,1474,6590,9694],"./Switches/ZigbeeMqtt/Index":[5466,1474,6590,5466],"./Switches/Zwave/Index":[7262,1474,6590,7262],"./Switches/ZwaveMqtt/Index":[2380,1474,6590,2380],"./Torrent/Index":[9299,8337,779,6162,9299],"./Tts/Index":[2466,4021,2466],"./TtsGoogle/Index":[1938,4021,1938],"./TvSamsungWs/Index":[615,615],"./ZigbeeMqtt/Index":[4604,1474,8938,4604],"./Zwave/Index":[6027,1474,8938,6849,6027],"./ZwaveMqtt/Index":[2362,1474,8938,6849,2362]};function i(e){if(!n.o(s,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=s[e],i=t[0];return Promise.all(t.slice(1).map(n.e)).then((function(){return n(i)}))}i.keys=function(){return Object.keys(s)},i.id=3379,e.exports=i},6725:function(e,t,n){var s={"./Calendar/Index":[345,345],"./Camera/Index":[2346,2346],"./Component/Index":[5824,1474,8938,5824],"./DateTime/Index":[1595,9575,1595],"./DateTimeWeather/Index":[5779,1798,9575,5779],"./ImageCarousel/Index":[6003,1798,9575,6003],"./Music/Index":[6013,6013],"./Plugin/Index":[4826,4826],"./RssNews/Index":[7420,7420],"./Weather/Index":[1798,1798]};function i(e){if(!n.o(s,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=s[e],i=t[0];return Promise.all(t.slice(1).map(n.e)).then((function(){return n(i)}))}i.keys=function(){return Object.keys(s)},i.id=6725,e.exports=i}},t={};function n(s){var i=t[s];if(void 0!==i)return i.exports;var r=t[s]={exports:{}};return e[s](r,r.exports,n),r.exports}n.m=e,function(){var e=[];n.O=function(t,s,i,r){if(!s){var a=1/0;for(u=0;u=r)&&Object.keys(n.O).every((function(e){return n.O[e](s[c])}))?s.splice(c--,1):(o=!1,r0&&e[u-1][2]>r;u--)e[u]=e[u-1];e[u]=[s,i,r]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){n.d=function(e,t){for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,s){return n.f[s](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+e+"-legacy."+{345:"b2bdd619",615:"6fa21b8b",699:"f7552281",767:"aa1f607e",779:"f24c7394",1406:"41c0c47e",1474:"cd648f8f",1595:"ddcdc704",1798:"28cf3934",1938:"55546c0e",2346:"cc7ee826",2362:"017e03af",2380:"b3f2d86a",2466:"64778a75",2790:"df38f403",2820:"6e4e2d10",2844:"a6c67900",2957:"e1d14d10",3674:"c0844108",3785:"3401a917",4021:"56f5f27b",4196:"89b93a84",4276:"9ed76a69",4548:"15ee26de",4604:"986bbad3",4826:"580eecfe",5111:"9aab8f5e",5193:"60b8c4f6",5210:"38d0da8d",5466:"112f0d2e",5528:"4c020c46",5779:"1c9b7d67",5824:"f18a2b68",5895:"1fb25060",6003:"0b667817",6013:"90c86f45",6027:"ad9b479d",6162:"c0ad6628",6509:"28c562ac",6590:"e9c70586",6739:"f05555d2",6833:"72c66805",6849:"317026cd",7029:"22d2270b",7196:"69f37439",7262:"53030e4c",7420:"9757ff05",7643:"cebc7792",8184:"7065c6d4",8337:"4e57bdc4",8938:"64d1bec5",9196:"b3f4bc1f",9299:"cb0ed629",9575:"2bc3a9be",9633:"9232f8cd",9694:"cdda9d87",9895:"0608fab6"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+e+"."+{345:"39a334e8",615:"17632d8f",779:"c4c7f81a",1406:"9d7d27e7",1474:"75891517",1798:"f703a14d",2346:"dd5b7fec",2380:"a55977a1",2790:"b7703d2a",2844:"eabbb568",3785:"85dd63a7",4021:"f58ac074",4196:"8681eb9f",4276:"008136f7",4604:"e0765efd",4826:"c0b8e5bf",5193:"f7c1a776",5210:"2082bfa6",5466:"68827648",5528:"6de074b2",5779:"0cad5256",5824:"f7a25bb6",6003:"76b4d677",6013:"e5066be6",6162:"85849319",6590:"e2b4dcb4",6739:"f5527e3f",6833:"9c099b40",6849:"837012fe",7029:"f0a3a6c5",7262:"e379f31b",7420:"5775e7e6",7643:"74797fcd",8938:"2bbd3b5d",9196:"006b678a",9575:"34cea1a0",9694:"20e4266c"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="platypush:";n.l=function(s,i,r,a){if(e[s])e[s].push(i);else{var o,c;if(void 0!==r)for(var l=document.getElementsByTagName("script"),u=0;u